[問題] 初學者-請問關於 verilog

看板Electronics作者 (CSEE)時間13年前 (2012/09/18 15:23), 編輯推噓3(3015)
留言18則, 4人參與, 最新討論串1/1
大家好 我是verilog的初學者 想請問一些關於verilog的問題 在always @ block裡的 敘述是平行執行的 我想請問一下 像以下這段code 兩個if 以及 與statement 0, statement 1是否是同時執行的呢? 謝謝! always statement0; if ( condition1 ) statement1 if ( condition2 ) statement2 statement3; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.0.109

09/18 16:39, , 1F
基本上是,但實際上還是要看電路怎麼寫
09/18 16:39, 1F

09/18 16:41, , 2F
verilog不像C是一行一行"執行",是描述"整個"電路
09/18 16:41, 2F

09/18 22:49, , 3F
因為他是用計算機的方法去做合成 所以他還是會照順序讀取
09/18 22:49, 3F

09/18 22:50, , 4F
只是合成的時候會試著把他解釋成同時執行的電路
09/18 22:50, 4F

09/18 22:51, , 5F
模擬應該也是這樣
09/18 22:51, 5F

09/22 07:50, , 6F
begin...end是sequential block是一行一行執行的,這是
09/22 07:50, 6F

09/22 07:53, , 7F
Verilog像C的地方。Verilog中所謂的"同時"是指"模擬時間"上的
09/22 07:53, 7F

09/22 07:55, , 8F
同時。但真實時間上,若你跑模擬的CPU、simulator不支援多執
09/22 07:55, 8F

09/22 07:56, , 9F
行緒,那麼兩個模擬上同時的指令,真實時間上是不同時執行的
09/22 07:56, 9F

09/22 07:59, , 10F
所以請分清"模擬時間"與"真實時間"的差異。
09/22 07:59, 10F

09/22 08:03, , 11F
我再講的實際一點的例子,例如你在看模擬波形,某個模擬時間
09/22 08:03, 11F

09/22 08:04, , 12F
點上有兩個訊號"同時"變化,但這兩個變化實際上是CPU在不同時
09/22 08:04, 12F

09/22 08:06, , 13F
間(真實時間)算出來的,只是對"模擬"而言我們把它算為同一
09/22 08:06, 13F

09/22 08:06, , 14F
(模擬)時間。
09/22 08:06, 14F

09/22 08:18, , 15F
模擬都是假的(雖然有程度的分別),只有真正做出的那顆IC才是
09/22 08:18, 15F

09/22 08:19, , 16F
真實時間的同時運行。
09/22 08:19, 16F

08/13 19:31, , 17F
只是合成的時候會試著把 https://muxiv.com
08/13 19:31, 17F

09/17 23:24, , 18F
//muxiv.com https://daxiv.com
09/17 23:24, 18F
文章代碼(AID): #1GM25YvM (Electronics)