[爆卦]verilog # delay是什麼?優點缺點精華區懶人包

為什麼這篇verilog # delay鄉民發文收入到精華區:因為在verilog # delay這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Emeth (Emeth)看板Electronics標題[問題] verilog delay問題...


大家好,我有一個關於delay的問題,不知何解,

程式碼如下:
https://i.imgur.com/Es4FI5x.png

我根據程式碼畫出來的波形圖是長這樣:
https://i.imgur.com/s3TT4iB.png

然後實際跑出來的結果是這樣:
https://i.imgur.com/bkf0QxD.png


我的問題是:為什麼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
wildwolf: 110ns的E變化,要等到 110+40=150ns 的時候,才去看w1和 11/07 16:32
wildwolf: E的值,所以在 150ns 的時候,D的值是 0 11/07 16:33
我明白了,謝謝!

不過這樣我又有幾個問題:
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
想請問在這張波形圖中,w1也剛好在150ns時從0變成1,
那麼在150ns要做nor時,為什麼取到的w1的值是0?而不是1?

不好意思,問題有點多……
再次感謝你的回答!

furio: 請問是用什麼跑出來的? 11/07 18:10
我用的simulator是ncverilog,
不好意思我是初學,不知道你要問的是不是這個?
※ 編輯: Emeth (123.195.36.40), 11/07/2018 21:32:22
※ 編輯: Emeth (123.195.36.40), 11/07/2018 21:33:18

你可能也想看看

搜尋相關網站