Re: [問題] veriog撰寫問題

看板Electronics作者 (...)時間16年前 (2009/08/06 00:19), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串4/10 (看更多)
沿用之前的code 補個rising pulse 是否是你要的? module add_sub(clk,reset,mod_n,incr,decr); input clk,incr,decr,reset; output [12:0] mod_n; reg [12:0] mod_n; reg incr_d, incr_2d; reg decr_d, decr_2d; wire incr_r = incr_d & ~incr_2d; wire decr_r = decr_d & ~decr_2d; always@(posedge clk) begin if(reset) mod_n <= 13'd2000; else mod_n <= incr_r ? mod_n-13'd10 : decr_r ? mod_n+13'd10 : mod_n; end always@(posedge clk) begin if(reset) incr_d <= 1'b0; incr_2d <= 1'b0; decr_d <= 1'b0; decr_2d <= 1'b0; else begin incr_d <= incr; incr_2d <= incr_d; decr_d <= decr; decr_2d <= decr_d; end end endmodule -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.81.57

08/06 00:23, , 1F
我猜應該就是這樣~
08/06 00:23, 1F

08/06 00:38, , 2F
這樣會不會有race的問題阿 因為incr_r變high時 是在clk
08/06 00:38, 2F

08/06 00:39, , 3F
正緣觸發 那到底是上面的always先做還是下面呢?
08/06 00:39, 3F

08/06 00:39, , 4F
要下面的先把incr_r先變high才會對
08/06 00:39, 4F
文章代碼(AID): #1AUR4MMB (Electronics)
討論串 (同標題文章)
文章代碼(AID): #1AUR4MMB (Electronics)