※ 引述《baoerking (basketball)》之銘言:
: 小弟看了一下大大給的testbench,發現跟我用
: wave給的波形都一樣,結果卻大大的不同,小弟
: 想了一下,想請問大大,如果要出現0跟1的變動
: ,不就nrst也要0跟1變動才能出現。如果nrst只
: 有一段1一段0還會出現010101的現像嗎?
: 小弟覺得是quartus本身的問題,只是不知為什麼
如果沒有在sequence circuit 使用non blocking assignment
always @(posedge clk or negedge rstz)
a = clk;
特別是上面的情況下 就會發生R/W race condition
因為 當clk posedge的時候 把clk 填進a, 問題是simulator
不是電路平行執行 而是像C一樣 一條一條的執行 這時候到底是
clk先被寫到1'b1, 還是clk 先被讀到posedge?
所以就會發生Race, 執行的結果 depend on simulator 怎麼設計的
所以quartus , ncverilog兩個跑起來不依樣 甚至同個simulator
改變寫法 結果也不依樣 這也很正常
詳細情況可以參考依本書
Writing Testbenches: Functional Verification of HDL Models,
Second Edition (Hardcover) by Janick Bergeron
--
my webpage: http://www.wretch.cc/album/hsiumin
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.76.194