看板 Electronics 關於我們 聯絡資訊
有個verilog 問題困擾我很久了 就是一般always block 如下舉例 假設有兩個1bit reg a,b always @(posedge clk or negedge reset) if (~reset) a <= 1'b0; else a<=b; 那當reset是1時 會將 “clk rising 前”的b值給a 那為什麼當negedge reset產生時 以上面的推論 我們看到的應該是 reset falling前的值 即reset是1的情況 (這樣就不會進入if的第一個條件) 麻煩各位幫忙解答一下 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.25.96 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1563268842.A.575.html ※ 編輯: BaChi5566 (101.12.25.96 臺灣), 07/16/2019 17:23:33 ※ 編輯: BaChi5566 (101.12.25.96 臺灣), 07/16/2019 17:24:07 ※ 編輯: BaChi5566 (101.12.25.96 臺灣), 07/16/2019 17:24:35 ※ 編輯: BaChi5566 (101.12.25.96 臺灣), 07/16/2019 17:24:56
tkhan: 這不是C喔,而且看不懂你在講啥 07/16 18:08
haswell425: 自己畫畫看波形 07/17 08:46
bakerly: 順序應該是edge發生->進入always->檢查條件->執行敍述。 07/17 13:32
bakerly: 而不是你講的把clk rising前的b給a。 07/17 13:32
Baneling: 不知道該說語法不好還是電路不好... 你自己都說非同步了 07/17 23:16
Baneling: reset跟clk就沒有關係呀 (其實在timing上還是有...) 07/17 23:18
Baneling: 那由negedge reset觸發條件時為何reset要為1? 07/17 23:19
ViewMoon: clk rising 前 (X) -> clk rising 時 (O) 07/23 07:55
ViewMoon: reset falling前的值 (X) -> reset falling 時的值 07/23 07:56
ViewMoon: 即reset是1的情況 (X) -> 即reset是0的情況 (O) 07/23 07:56
ViewMoon: reset is edge-trig in RTL simulatoin (O) 07/23 07:57
ViewMoon: reset is level-trig in physical device (O) 07/23 07:58