always@(posedge I_clk or negedge I_rst_n) begin if(!I_rst_n) begin S_wendu_int1 <= 4'h0 ; S_wendu_int2 <= 4'h0 ; S_wendu_dec <= 4'h0 ; S_shidu_int1 <= 4'h0 ; S_shidu_int2 <= 4'h0 ; S_shidu_dec <= 4'h0 ; end else if(S_ctrl_cnt == 4'h0) begin S_wendu_int1 <= I_disp_data[23:20] ; S_wendu_int2 <= I_disp_data[19:16] ; S_wendu_dec <= I_disp_data[15:12] ; S_shidu_int1 <= I_disp_data[11: 8] ; S_shidu_int2 <= I_disp_data[ 7: 4] ; S_shidu_dec <= I_disp_data[ 3: 0] ; end else begin S_wendu_int1 <= S_wendu_int1 ; S_wendu_int2 <= S_wendu_int2 ; S_wendu_dec <= S_wendu_dec ; S_shidu_int1 <= S_shidu_int1 ; S_shidu_int2 <= S_shidu_int2 ; S_shidu_dec <= S_shidu_dec ; end end
时间: 2023-06-17 20:07:08 浏览: 55
这是一个 Verilog 的 always 块,描述了一些状态寄存器的更新逻辑。在时钟上升沿或复位下降沿触发时,根据复位信号 I_rst_n 的状态,更新状态寄存器 S_wendu_int1、S_wendu_int2、S_wendu_dec、S_shidu_int1、S_shidu_int2 和 S_shidu_dec 的值。当 S_ctrl_cnt 为 4'h0 时,将从输入信号 I_disp_data 的不同位中获取数据。如果 S_ctrl_cnt 不为 4'h0,则状态寄存器保持原来的值不变。
相关问题
lways @(posedge sys_clk or negedge sys_rst_n) begin
这是一个 Verilog HDL 中的 always 块,用于描述一段组合逻辑或时序逻辑的执行过程。在该 always 块中,posedge sys_clk 表示在系统时钟信号 sys_clk 的上升沿触发执行;negedge sys_rst_n 表示在系统复位信号 sys_rst_n 的下降沿触发执行。也就是说,当系统时钟信号上升沿到来或系统复位信号下降沿到来时,always 块中的代码会被执行。
always @ ( posedge clk_global or negedge rst_global )
这是一个Verilog的组合逻辑语句,表示在时钟(clk_global)上升沿或复位(rst_global)下降沿时执行该语句块中的代码。具体来说,当时钟上升沿到来时,该语句块中的代码会被执行,而当复位下降沿到来时,该语句块中的代码也会被执行。这种语句块通常用于设计时序电路,例如寄存器、计数器等。在时钟上升沿时,更新寄存器中的值,而在复位下降沿时将寄存器清零或重置到默认值。