Pour écrire la solution, on peut
reprendre le même comportement que celui du compteur
modulo 16. Le choix de pouvoir ajouter ou retrancher 1 apparait de façon supplémentaire. Ceci
se fait par une entrée (ici CDbar pour Compteur /
Décompteur complémenté (==> comptage
actif à 1))
Le résultat est :
module cptdecptmodulo16 (clk, CDbar , N)
;
input clk , CDbar ;
output[3 : 0] N ;
reg [3 : 0] N ;
always @ (posedge clk)
if (CDbar)
N = N + 1 ;
else
N = N - 1 ;
endmodule