為什麼這篇verilog # delay鄉民發文收入到精華區:因為在verilog # delay這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Emeth (Emeth)看板Electronics標題[問題] verilog delay問題...
大家好,我有一個關於delay的問題,不知何解,
程式碼如下:
https://i.imgur.com/Es4FI5x.png
![](https://cache.ptt.cc/c/https/i.imgur.com/Es4FI5xl.png?e=1724339396&s=yRb_UnVAehK_NK-oAdHrtw)
我根據程式碼畫出來的波形圖是長這樣:
https://i.imgur.com/s3TT4iB.png
![](https://cache.ptt.cc/c/https/i.imgur.com/s3TT4iBl.png?e=1724320053&s=oRAa75gS6MOmuFMCsXHyRA)
然後實際跑出來的結果是這樣:
https://i.imgur.com/bkf0QxD.png
![](https://cache.ptt.cc/c/https/i.imgur.com/bkf0QxDl.png?e=1724340788&s=A8VztvL0iZz_If8Jpvpgrw)
我的問題是:為什麼D在150ns~170ns之間沒有變成1?
我的想法是,因為在110ns時,E從1變成0,
那麼在delay 40ns以後,在150ns的時候,
D應該是做0和0的nor(因為在110ns時,w1和E都是0),所以D在150ns時變成1。
請問我是哪裡想錯了?
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.193.118
※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1541578742.A.99F.html
不過這樣我又有幾個問題:
1. 所以有delay的gate,例如我程式裡的nor gate,
只有在input發生改變時才會被「觸發」,
並在delay 40ns以後,才去做nor的動作嗎?
且其在執行時,所看的input的值,都是在執行當下的值嗎?
例如nor在150ns時執行,而它要看的是150ns的w1和E的值。
(用「觸發」這個詞好像有點不恰當,希望你能明白我的意思……)
2. 所以在我這個例子中,delay的意義是體現在於,
當input有所改變後,要「delay」若干ns才執行動作,
而不是input的值要「delay」若干ns後,才進gate中去執行動作。
我這樣理解是否正確?
3. 如果我把我例子中的or的#(30)改為#(50),會得到下面這張波形圖:
https://i.imgur.com/gHjkfBk.png
![](https://cache.ptt.cc/c/https/i.imgur.com/gHjkfBkl.png?e=1724318965&s=wQx7-fCVWeWPob9uK0eYIw)
那麼在150ns要做nor時,為什麼取到的w1的值是0?而不是1?
不好意思,問題有點多……
再次感謝你的回答!
不好意思我是初學,不知道你要問的是不是這個?
※ 編輯: Emeth (123.195.36.40), 11/07/2018 21:32:22
※ 編輯: Emeth (123.195.36.40), 11/07/2018 21:33:18