看板 Electronics 關於我們 聯絡資訊
各位大大好 小弟最近寫到這段程式時有個小問題 以下是我這段程式碼 else if(BLK && (!DAin || (x == (colmax-1)))) begin s<=s+length;--------------(1) templen<=length;----------(2) length<=11'b0;------------(3) tempy<=y;-----------------(4) BLK<=0;-------------------(5) end 跑到這段時,我用模擬看到(1)、(3)、(5)都有實現到 但(2)和(4)卻沒有執行 請問這有可能是甚麼原因造成的,要如何解決? 謝謝各位大大 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.234.232 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1511188086.A.85D.html
tkhan: 請2f幫忙擦屁股.. 11/20 22:40
FTICR: 真的是把verilog當作程式了... 11/21 00:36
BellCranell: 模擬是用哪個模擬的 11/21 01:15
mmonkeyboyy: ............. 11/21 01:25
Jielolz: 你的判斷式 11/21 01:49
e1090128: 我是用quartus裡的vwf跑的,但跑完後發現只有上面那三個 11/21 09:22
e1090128: 有顯示出來,其他兩個腳位還是XX,所以判斷式應該沒問題 11/21 09:22
hsucheng: xx就是沒給初值 11/21 11:54
htps0763: 如果第四行結果不對,那可能是y的問題了 11/21 12:35
e1090128: 那在請問一下,如果顯示U代表甚麼意思? 11/21 14:24
michael6172: 可以改個寫法嗎? 不要把硬體當軟體寫,要有電路的概 11/21 14:51
michael6172: 念 11/21 14:51
e1090128: michael有寫過verilog嗎?你知道RTL層級的寫法嗎?你知 11/21 15:08
e1090128: 道if也是verilog裡的語法嗎? 11/21 15:08
FTICR: 樓上原PO好嗆... 就算是RTL層級寫法也還是要有電路的概念 11/21 18:17
FTICR: 這完全沒說錯啊 (知道寫出來的東西合成後會是什麼) 11/21 18:18
FTICR: Verilog中if語法大家都知道有,但沒人像你會這樣用 11/21 18:19
mmonkeyboyy: ................ 11/21 21:44
mmonkeyboyy: 這位版友....要不要先念點書? 11/21 21:46
mmonkeyboyy: U這個在書上就有寫了..... 11/21 21:53
mmonkeyboyy: XX不是沒給初值...是還沒有產生東西前的狀態unknown 11/21 21:55
mmonkeyboyy: U是uninitializd這才是沒給初值 11/21 21:57
mmonkeyboyy: BTW 我只是個路過的verilog小廢材 大家都太高深了 11/21 21:59
mmonkeyboyy: 以上資料我都是google來的' 11/21 22:01
mmonkeyboyy: 呵呵 啾咪~ 11/21 22:01
r901042004: 建議原PO把整個always block放上來,還有用到訊號的 11/21 23:45
r901042004: 也放上來,大家比較好抓錯 11/21 23:45
r901042004: ^宣告 11/21 23:46
e1090128: 請問大大if沒有像我這樣用是甚麼意思,正常的寫法是如何 11/22 00:04
mmonkeyboyy: 我建議啦 看看state machine等章節再來 11/22 00:55
mmonkeyboyy: 硬體語言的問題是合出來什麼並不一定知道 11/22 00:56
mmonkeyboyy: 再加上一堆人都很"聰明"的開各種opt下去... 11/22 00:56
mmonkeyboyy: 也許是你的老師沒教 但很多情況可以從FSM下手處理 11/22 00:57
nova06091: 為什麼會有人回那種不明所以的答案,好像自己沒當過初 11/22 01:21
nova06091: 學者一樣 11/22 01:21
mmonkeyboyy: 這個我想當一兩次初學者還好 當很多次就有點..嗯@@" 11/22 01:23
bmt891: google一下可合成性啦 11/23 06:11
htps0763: 原po可能是看書自學,因為有些觀念錯誤給老師一看就會 11/23 18:42
htps0763: 直接糾正了吧 11/23 18:42
bakerly: 我猜你的templen和tempy很有可能出現在其它的always bloc 11/23 20:18
bakerly: k 裡然後訊號打架了。 11/23 20:18
r901042004: 同意樓上 11/23 20:44
BellCranell: 應該是說 可能在兩個always內賦予同個變數兩次 11/24 01:20
hsucheng: 上面那個在compile階段就會說是multi drive了吧 11/26 20:38
ViewMoon: 給正確方向的被原PO嗆... 哈哈 11/27 12:22
bakerly: multi drive 在vcs或nc都只是warning而以。 11/27 21:05
Jielolz: 多重賦值跑合成才會error 11/28 02:15
luckyBF: 先用or,and 指令寫完基本code,再來叫我debug 11/28 13:14