データパス回路にFSMコントローラーを実装しています。コントローラは内部でカウンタをインクリメントします。以下のプログラムをシミュレートしたとき、カウンターは更新されませんでした。
reg[3:0] counter;
//incrementing counter in combinational block
counter = counter + 4'b1;
ただし、 Verilogのベストプラクティス-変数をインクリメントし、シーケンシャルブロックでのみカウンターをインクリメントするで説明されているように、追加の変数counter_nextを作成すると、カウンターがインクリメントされます。
reg[3:0] counter, counter_next;
//sequential block
always @(posedge clk)
counter <= counter_next;
//combinational block
counter_next = counter + 4'b1;
前のケースでカウンターがインクリメントされないのはなぜですか?足りないものはありますか?