Ce compteur possède :
- une seule entrée : l’horloge
appelée clk,
- une sortie appelée N permettant
de stocker un nombre de 0 à 15 (4 bits suffisent).
Le comportement est le suivant:
- le compteur passe à la valeur
suivante sur chaque front actif d'horloge. Arrivé
à 15, il doit passer à 0 au front suivant
et ainsi de suite,
- On peut remarquer que sur 4 bits : 15
+ 1 donnera 0
Le programme sera:
module cptmodulo16 (clk, N) ;
input clk ;
output[3 : 0] N ;
reg [3 : 0] N ;
always @ (posedge clk)
N = N + 1 ;
endmodule
Pour les habitués du langage C
:
- les opérateurs ++ et –- ne sont pas implémentés
dans le langage Verilog,
- de même, aucun opérateur arithmétique
ou logique combiné du langage C n’existe (*=,
+=...).
Rappel :
- dès que l’on ajoute des nombres, des warnings
apparaissent pour signaler les troncatures éventuelles,
- il vaut mieux prévoir un registre trop grand que
trop petit. L’idéal est de toujours choisir
la bonne taille.