我正在为数据路径电路实现 FSM 控制器。控制器在内部增加一个计数器。当我模拟下面的程序时,计数器从未更新。
reg[3:0] counter;
//incrementing counter in combinational block
counter = counter + 4'b1;
但是,在创建额外变量 counter_next 时,如Verilog 最佳实践 - 增加变量并仅在顺序块中增加计数器中所述,计数器会增加。
reg[3:0] counter, counter_next;
//sequential block
always @(posedge clk)
counter <= counter_next;
//combinational block
counter_next = counter + 4'b1;
为什么在前一种情况下计数器不增加?有什么我想念的吗?