求助verilog基础问题

最近在深入学习时序分析。每次看到设置清零信号或者计数器赋值,比如想在时钟的posedge赋值,但每次写的不是 alwasys @(posege clk)
而是alwasys @(posege clk or negedge rst)
if.....
别问我具体情况具体分析,我见到的清零信号全部都会or一个清零信号下降沿,我想问为什么?
视频讲解的也没提,只说在时钟上身沿我们做什么,但直接就or清零信号了。
求大神告知

alwasys @(posege clk)

写法没有错,在不需要复位的逻辑中,就直接这么写了。
比如:

reg [25:0] R_led_cnt
always @ (posedge I_lbus_clk) begin
R_led_cnt <= R_led_cnt + 26'd1 ;
end

assign O_fpga_status_led = R_led_cnt[25] ;
上面这段逻辑实现的是 1s 灯亮 1s 灯灭。

如果需要加个复位功能,只是表示在复位的时候,将寄存器的值置为某个值。
比如按键复位,则在按键的时候,灯会一直灭。等到松开了,才会 1s亮 1s灭。

always @ (posedge I_lbus_clk or negedge I_rst_n) begin
if (~I_rst_n) begin
R_led_cnt <= 26'd1 ;
end
else begin
R_led_cnt <= R_led_cnt + 26'd1 ;
end
end
温馨提示:答案为网友推荐,仅供参考
相似回答