作者felghana (adol)
看板Electronics
標題Re: [問題] veriog撰寫問題
時間Fri Aug 7 00:25:06 2009
: reg incr_d;
: always @ ( posedge reset or posedge clk )
: if ( reset ) incr_d <= 1'b0;
: else incr_d <= incr;
: wire incr_p = incr & ~incr_d;
: reg decr_d;
: always @ ( posedge reset or posedge clk )
: if ( reset ) decr_d <= 1'b0;
: else decr_d <= decr;
: wire decr_p = decr & ~decr_d;
: reg [12:0] mod_n;
: always @ ( posedge reset or posedge clk )
: if ( reset ) mod_n <= 13'h000;
: else if ( incr_p ) mod_n <= mod_n + 13'h00a;
: else if ( decr_p ) mod_n <= mod_n - 13'h00a;
講一下我對這個電路的想法好了 各位大大看有沒有錯
1.假定某一時間incr=1 那麼incr_p也會立刻變為1
2.當離這個時間最接近的那一次posedge clk發生的瞬間
會同時進入三個always block 因此incr_d=1造成incr_p=0
3.同時間第三個always block也要根據incr_p的值來決定進入哪個判斷式
我的疑問就是 這樣2和3同時發生 能確定一定會跑mod_n <= mod_n + 13'h00a 嗎?
到底是incr_p先變為0 再做判斷
還是incr_p還沒變為0時 就做完判斷了
我的電路要後者才是正確的
不知道我有哪邊想錯? 還請指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.114.128.176
※ 編輯: felghana 來自: 58.114.128.176 (08/07 00:49)
1F:→ WizardRush:假如把code+testbench丟到verdi run一下 就不會有這麼 08/07 01:06
2F:→ WizardRush:多煩惱了 08/07 01:06
3F:→ WizardRush:可惜你似乎沒有學過cadtool.. 08/07 01:06