Le compteur décompteur est synchrone.
Il doit être chargé en présence
de l'entrée load (recopie des entrées a).
Il doit passer de 9 à 0 en comptage
et de 0 à 9 en décomptage
La solution :
module CptDecptBCDChargparall (load, cdbar,
clk, a, N) ;
input load, cdbar, clk ;
input [3 : 0] a ;
output [3 : 0] N ;
reg [3 : 0] N ;
always @ (posedge clk)
if (load)
N = a ;
else
if (cdbar)
begin
N = N+1 ;
if (N >9)
N = 0 ;
end
else
begin
N = N-1 ;
if (N == 15)
N = 9 ;
end
endmodule