Incrémentation d'une variable de compteur en verilog: combinatoire ou séquentielle

Je me suis mise en œuvre d'un FSM contrôleur pour un circuit du chemin de données. Le contrôleur incrémente un compteur interne. Quand j'ai simulé le programme ci-dessous, le compteur n'a jamais été mis à jour.

reg[3:0] counter;

//incrementing counter in combinational block
counter = counter + 4'b1;

Cependant, sur la création d'une variable supplémentaire, counter_next, comme décrit dans Verilog Meilleures Pratiques - Incrémentation d'une variable et en incrémentant le compteur seulement dans le bloc séquentiel, le compteur est incrémenté.

reg[3:0] counter, counter_next;

//sequential block
always @(posedge clk) 
   counter <= counter_next;

//combinational block
counter_next = counter + 4'b1;

Pourquoi ne pas le compteur incrémentée dans le cas précédent? Rien de ce que je suis absent?

OriginalL'auteur iab | 2012-12-29