看板 comm_and_RF 關於我們 聯絡資訊
※ 引述《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