Electronics 板


LINE

我寫了一個計數器 reg [31:0] B1; 其數值在0~20000間計數。 還有一個有號數 ADC reg signed [13:0] ADC; 其數值在-8192~8192間變化 另外有一個訊號線 wire [15:0] Duty; assign Duty = ADC + 8192; 即使ADC加上一正值變為正數 輸出為PWM output PWM assign PWM = (B1 > Duty); 若計數器 B1 大於 Duty 時,則輸出為High。 但今天遇到一個問題: 若ADC為負值(ex: ADC = -1966)時,輸出訊號出現錯誤的情況,輸出全為Low。 若直接 assign Duty = (-1966)+8192; 則輸出訊號正確。 不知道為甚麼會發生這個情況,可否請板上先進不吝指導。 謝謝。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.202.20
1F:推 TroyLee:需要作 Sign Extension 嗎 12/21 23:06
2F:推 keterwang:@@ ,不是只要射個threshold嗎 12/21 23:48
3F:推 sasako:自己獨立寫個sign值運算的module吧... 12/22 01:36
4F:→ colinshih:bit-length不同如何運算, 看一下書吧 你是化工系的吧? 12/22 01:37
5F:→ peliuya:所以 sign 值的運算需要獨立建個 process囉? 12/22 02:21
6F:→ peliuya:我是電子系的 (掩面) 12/22 02:21
7F:→ sasako:對我來說 我幾乎沒有宣告過reg signed這種東西 12/22 02:24
8F:→ sasako:有所限制 詳細的只好看書 運算這種東西自己寫個module 12/22 02:26
9F:→ sasako:很快 又不太容易錯.. 12/22 02:26
10F:→ peliuya:可是因為我ADC是由輸入讀進來的…是2的補數… 12/22 02:27
11F:→ peliuya:所以 如果不用signed 這個來放的話 應該會有錯吧? 12/22 02:27
12F:→ sasako:只要瞭解1's, 2's, sign magnitude 是如何運算 不難啦.. 12/22 02:28
13F:→ sasako:告訴你 電路根本看不懂sign是啥小 不過就是人定的 12/22 02:29
14F:→ sasako:電路只懂得01010.... 12/22 02:29
15F:→ peliuya:還有想請問 我的寫法 問題是出在於? 什麼觀念沒釐清? 12/22 02:29
16F:→ sasako:不管你暫存器存什麼 就是一堆0和1的東西.. 12/22 02:30
17F:→ sasako:我只覺得有可能出現在sign這種宣告的用法 你使用錯誤而已 12/22 02:31
18F:→ sasako:不然你可以試試看 不考慮sign的運算 然後跑跑看... 12/22 02:32
19F:→ peliuya:不加sign 輸出也不對 畢竟放進去暫存器的代表數值就不同了 12/22 02:33
20F:→ peliuya:跑模擬運算都很正常 可是接上板子實測就出問題了 = = 12/22 02:34
21F:→ sasako:我覺得你還是明白我在說什麼 有些東西是人定的 12/22 02:36
22F:→ peliuya:我想你的意思是另外建個process 對他做處理後再運算? 12/22 02:37
23F:推 sasako:那你明白我說電路只懂0101..的意思嗎? 12/22 02:39
24F:→ peliuya:了解 12/22 02:42
25F:→ sasako:舉個簡單的例子 一般A+B 和 2's的A+B 演算法不同 12/22 02:42
26F:→ peliuya:我只是不太懂 為甚麼ADC為正數時都正常 負數就出問題 12/22 02:43
27F:→ sasako:那麼要如何告訴程式在作二補數運算 就是你的任務 12/22 02:44
28F:→ peliuya:嗯 我再翻翻書嘗試看看 ^^ 12/22 02:46
29F:→ sasako:你會用debussy作debug的話 就可以找到答案 12/22 02:48
30F:→ peliuya:debussy? 那是什麼? 12/22 02:49
31F:→ sasako:他可以看到每個時間點電路看到的值 12/22 02:50
32F:→ sasako:寫verilog通常不是都用工作站 那是CIC提供的軟體壓 12/22 02:50
33F:→ sasako:那是一套輔助設計者debug的工具 12/22 02:51
34F:→ peliuya:我都只用xilinx ISE 寫一寫就直接在驗證版上 run (汗) 12/22 02:52
35F:→ sasako:那你個design flow有點問題 應該都會在NCverilog環境寫好 12/22 02:53
36F:→ sasako:在用debussy debug確定function正確 再燒到板子上 12/22 02:54
37F:→ sasako:不然程式要是大一點 那你不就debug到死... 12/22 02:55
38F:→ peliuya:是有用ISE本身的模擬軟體先跑看看時序 可是看起來很正常 12/22 02:58
39F:→ peliuya:燒進去以後 卻不見得是這麼一回事 = = 12/22 02:58
40F:→ sasako:那麼你看得到模擬每個時間點的值嗎? 12/22 02:59
41F:→ sasako:因為燒進去需要作合成 合成之後又要再次驗證function 12/22 03:01
42F:→ peliuya:只能看到輸出入port的 所以我都把reg指定到輸出觀察 12/22 03:01
43F:→ sasako:才會有pre-sim這種名詞存在 12/22 03:01
44F:→ peliuya:合成的時候 也沒看到什麼奇怪的warning 12/22 03:02
45F:→ peliuya:但是對這個不太懂 所以也不知道到底合成出什麼東西來 (汗) 12/22 03:03
46F:→ sasako:所以你略過了RTL-sim這個過程..直接看pre-sim 12/22 03:03
47F:→ peliuya:嗯 我不知道我的程式到底會做出什麼 RTL 12/22 03:04
48F:→ sasako:沒有按照流程走出現問題也是應該的 你應該先確保RTL是OK的 12/22 03:04
49F:→ sasako:不先確定RTL的function 只能說你賭得很大唷 12/22 03:06
50F:→ peliuya:因為不是學這個的 就只看看書本的語法 直接下去寫 12/22 03:06
51F:→ peliuya:實在是很慚愧 -__- 12/22 03:07
52F:→ sasako:RTL指的是你原本未合成的code (應該知道吧!?) 12/22 03:07
53F:→ sasako:但是你在訓練verilog 應該是要從tool開始.. 12/22 03:09
54F:→ sasako:不然你以後找工作 跟你老闆說 你會寫 但你卻不跑RTL-sim 12/22 03:11
55F:→ peliuya:看來我需要再多花點時間才行 感謝您的指導^^ 12/22 03:11
56F:→ sasako:你真的需要在多花時間把基礎訓練好 加油 12/22 03:12
57F:推 ksmrt0123:試試看 assign Duty = {ADC[13],ADC[13],ADC} + 8192; 12/22 03:22
58F:→ peliuya:感謝樓上提供的方法^^ 順利解決這個問題 謝謝 12/22 22:14
59F:推 TroyLee:其實這個問題就是我說得...Sign Extension 12/22 22:43
60F:推 ksmrt0123: 這個問題就是T大說得..Sign Extension 12/23 00:11
61F:推 ksmrt0123:還有原Po該謝的應該是T大跟熱心的sassako 12/23 00:19
62F:→ peliuya:真的也很感謝T大和C大 十分熱心的指導我 謝謝! 12/23 02:07
63F:→ sneak: 電路只懂得01010. https://daxiv.com 11/11 14:54
64F:→ sneak: 寫verilog通常不 http://yofuk.com 01/04 21:51







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether 或 站內搜尋

TOP