Re: [問題] veriog撰寫問題
※ 引述《felghana (adol)》之銘言:
: : 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時 就做完判斷了
: 我的電路要後者才是正確的
: 不知道我有哪邊想錯? 還請指教
關於第一點是當incr正緣觸發而且時脈為stable 0 or stable 1的狀態
同時你的incr要維持至少一個clock cycle以上的時間 為stable 0 ,
incr_p才會變為1 並非incr=1 而incr_p就立刻變為1
2以及3若以這樣子的設計是會同時發生的 但是因為incr_p前面有一個and2存在會有
一些延遲 所以當時脈正緣觸瞬間incr_p不會馬上變化 仍會維持1一段時間 因此此時
正緣觸發的時脈所戳到的incr_p為高電位 所以是會執行 mod_n + 13'h00a的
只是and2以及decr_d <= decr這個暫存器所產生的延遲是否能夠維持足夠的hold time
給mod_n去做判斷呢? 那我又要如何控制其hold time讓他夠長呢 ?
放心吧 EDA工具就是為此而生的 只要你的設計是同步電路 編譯完後軟體會report fmax
只要你的時脈有符合這些問題都不會產生 軟體都幫你處理好了 只是以目前這樣子的
設計仍會有亞穩態的問題
修正一下我的說法 要解決亞穩態(metastable)應該要在加2級xDFF 用"3級"去
sampling
always @ ( posedge reset or posedge clk )
if ( reset ) begin
incr_d <= 1'b0;
incr_d1 <= 1'b0;
end else begin
incr_d <= incr;
incr_d1 <= incr_d;
end
這前兩級是先做同步化解決metastable的問題
always @ ( posedge reset or posedge clk )
if ( reset )
incr_d2 <= 1'b0;
else
incr_d2 <=incr_d1;
wire incr_p = ~ incr_d2 & incr_d1 ;
然後這邊是rising edge sampling
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.77.205
推
08/07 23:25, , 1F
08/07 23:25, 1F
※ 編輯: horsehead 來自: 61.228.77.205 (08/07 23:43)
※ 編輯: horsehead 來自: 61.228.77.205 (08/07 23:44)
→
08/07 23:48, , 2F
08/07 23:48, 2F
→
08/07 23:49, , 3F
08/07 23:49, 3F
→
08/07 23:51, , 4F
08/07 23:51, 4F
推
08/08 16:35, , 5F
08/08 16:35, 5F
→
08/08 16:35, , 6F
08/08 16:35, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 10 之 10 篇):