LOGIQUE PROGRAMMABLE EN VERILOG
Chapitre 1. Introduction
Chapitre 2. Traitement combinatoire et syntaxe du langage
Chapitre 3. L'usage de l'outil QUARTUS II
Chapitre 4. Description comportementale
4.1. Le bloc always et le type reg
4.2. Les opérateurs conditionnels
4.3. La mémoire élémentaire
4.4. L'alternative multiple
4.5. Exemple de description par table de vérité
4.6. Traitement séquentiel par l'exemple
4.6.1. Bascule D
4.6.2. Compteur modulo 16
4.6.3. Compteur de 4 à 28
4.6.4. Compteur/décompteur modulo 16
4.6.5. Compteur modulo 16 avec entrée de validation et RAZ synchrone
4.6.6. Compteur modulo 16 à chargement asynchrone
4.6.7. Registre à décalage 6 bits (1 entrée série - 1 sortie parallèle)
4.6.8. Registre à décalage 6 bits (1 entrée série - 1 sortie série)
4.7. Exercices
4.8. Solutions des exercices
Chapitre 5. Projets : énoncés
Chapitre 6. Projets : vers la solution
Page d'accueil Table des matières Niveau supérieur Page précédente Bas de la page Page suivante

4.6.2. Compteur modulo 16

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.

Page d'accueil Table des matières Niveau supérieur Page précédente Haut de la page Page suivante