Re: [問題] verilog reset問題

看板Electronics作者 (新竹~)時間11年前 (2014/06/01 11:47), 編輯推噓4(408)
留言12則, 4人參與, 最新討論串2/2 (看更多)
How about this? ====== reg reset_d,reset_2d; wire reset_r; always @(posedge i_clk or negedge i_rts) begin if (!i_rts) cnt <= 0 ; else if (!reset_r) cnt <= 0 ; else cnt <= cnt + 1'b1 ; end always @(posedge i_clk or negedge i_rts) begin if(!i_rts) {reset_2d,reset_d}<=2'b0; else {reset_2d,reset_d}<={reset_d,reset}; end assign reset_r = !reset_2d & reset_d; ====== ※ 引述《light0617 (期待寒假)》之銘言: : 各位大大好 : 我最近在寫碼錶上一個reset的功能 : 遇到了一個問題 : 下面是部分CODE : input reset;//按鈕reset 每按一次重設 : input i_clk; : input i_rts;//原本的東西 : reg r_reset=1'b0; : reg cnt=1'b0; : <版本一> : always @(reset) : begin : cnt<=0; : else : always @(posedge i_clk , negedge i_rts) : begin : if(i_rts==0 ) cnt<=0; : else cnt<=cnt+1b'1; : end : 我在ModelSim compile沒問題 但在Quartus 說cnt不能設定2次 : 後來改了一下 : <版本二> : always @(reset) : begin : if(cnt==0) r_reset<=1'b0; : else r_reset<=1'b1; : else : always @(posedge i_clk , negedge i_rts) : begin : if(i_rts==0 || r_reset==1'b1) cnt<=0; : else cnt<=cnt+1b'1; : end : 我在ModelSim compile沒問題 但在Quartus 說 : Error: Can't elaborate top-level user hierarchy : 應該是不能讓r_reset和cnt放在兩個always上?? : 所以 : 請教各位大大要如何實做reset按鈕呢>< -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.234.8.253 ※ 文章網址: http://www.ptt.cc/bbs/Electronics/M.1401594445.A.4A4.html

06/01 15:44, , 1F
reset好像沒宣告,敲兩T是怕metastable嗎?但是i_rst,還是
06/01 15:44, 1F

06/01 15:44, , 2F
會有問題
06/01 15:44, 2F

06/01 15:48, , 3F
sorry,原本宣告在原po的發文裡
06/01 15:48, 3F

06/01 16:24, , 4F
同步reset_r,應該是H觸發吧
06/01 16:24, 4F

06/01 20:07, , 5F
謝謝大大 回應><
06/01 20:07, 5F

06/02 07:47, , 6F
敲兩下是為了metastable和為了造rising edge。
06/02 07:47, 6F

06/02 07:47, , 7F
非同步的reset要使用本來就有其風險,就讓原po自己想像吧.
06/02 07:47, 7F

06/02 07:49, , 8F
若是想要reset進來,按住就一直reset,就不用造rising了.
06/02 07:49, 8F

06/02 07:49, , 9F
i_rst的這種寫法,你有合成過,就知道會長什麼樣子。
06/02 07:49, 9F

06/03 08:29, , 10F
else if (!reset_r) cnt <= 0 ; //這行!要拿掉才是對的。
06/03 08:29, 10F

06/03 11:44, , 11F
我的話會把RESET BUF3層 拿2.3層來用避免timing issue
06/03 11:44, 11F

06/04 07:58, , 12F
也可以,敲三次。
06/04 07:58, 12F
文章代碼(AID): #1JYg9DIa (Electronics)
討論串 (同標題文章)
文章代碼(AID): #1JYg9DIa (Electronics)