Leçon 15 sur 18

Chapitre 15 — Compteurs

Niveau conseillé : Bac+1 / Bac+2 — Cycle préparatoire, BTS, BUT, Licence

Idée centrale

Un compteur est un circuit séquentiel qui parcourt une suite ordonnée d’états sous l’action d’une horloge. Il permet de compter des événements, diviser une fréquence, générer des temporisations, adresser des ressources ou produire des séquences de commande.

 


 

 

Présentation du chapitre

Les compteurs constituent une famille essentielle de systèmes séquentiels. À chaque impulsion d’horloge, leur état évolue selon une séquence déterminée. Le cas le plus simple est le compteur binaire, dont les sorties représentent directement le nombre d’impulsions reçues. D’autres structures sont adaptées au comptage décimal, à la commande réversible, à la division de fréquence ou à la génération de séquences cycliques.

Ce chapitre relie l’étude des bascules et des registres à la conception de systèmes séquentiels plus élaborés. Il insiste sur la différence entre compteurs asynchrones et synchrones, sur les retards de propagation, sur le choix du modulo et sur la validation expérimentale par chronogrammes.

Objectifs pédagogiques

À la fin du chapitre, l’étudiant sera capable de…

Indicateur de maîtrise

Définir un compteurExpliquer la notion de séquence d’états et de modulo.
Analyser un compteur asynchroneSuivre la propagation du comptage dans une chaîne de bascules.
Exploiter la division de fréquenceDéterminer la fréquence de chaque sortie.
Analyser un compteur synchroneIdentifier l’horloge commune et la logique d’excitation.
Concevoir un compteur binaireÉtablir les conditions de basculement de chaque bit.
Distinguer les sens de comptageComparer ascendant, descendant et réversible.
Dimensionner un compteur modulo NCalculer le nombre de bascules et gérer les états inutilisés.
Étudier les compteurs décimauxRelier un compteur BCD à un afficheur sept segments.
Analyser anneau et JohnsonDéterminer la séquence et le nombre d’états.
Valider un montageConstruire et interpréter les chronogrammes réels ou simulés.

 

Prérequis

  • connaître les bascules D, JK et T ainsi que leurs tables d’excitation ;
  • savoir lire un chronogramme et reconnaître un front actif ;
  • comprendre les entrées synchrones et asynchrones, notamment Preset et Clear ;
  • maîtriser les nombres binaires, le bit de poids fort et le bit de poids faible ;
  • connaître les registres à décalage et la notion de temps de propagation.


 

 

Organisation du chapitre

Partie

Thème

Compétence principale

15.1Compteur asynchroneComprendre la cascade des bascules et la division de fréquence.
15.2Compteur synchroneConcevoir une logique de comptage à horloge commune.
15.3Compteurs particuliersChoisir une architecture adaptée à la séquence recherchée.
15.4Compteur modulo NDimensionner, initialiser et vérifier une séquence limitée.
TPMise en œuvreSimuler, câbler et mesurer des compteurs.

 

15.1. Compteur asynchrone

Un compteur asynchrone, aussi appelé compteur à propagation ou ripple counter, est réalisé en associant plusieurs bascules configurées en mode basculement. Seule la première bascule reçoit l’horloge externe. Chaque bascule suivante est commandée par la sortie de l’étage précédent. Les sorties ne changent donc pas exactement au même instant.

Définition

Dans un compteur asynchrone, le front d’horloge ne parvient pas simultanément à toutes les bascules. Le changement se propage d’un étage au suivant, avec un retard cumulé.

 

Figure 1 — Principe d’un compteur binaire asynchrone 4 bits.

15.1.1. Association de bascules

Une bascule T bascule lorsque T=1. Une bascule JK produit le même comportement lorsque J=K=1. Il est donc possible d’obtenir un compteur en reliant chaque sortie Q à l’entrée d’horloge de l’étage suivant. Le choix de Q ou de son complément, ainsi que le front actif de la bascule, déterminent le sens de comptage.

Étage

Horloge reçue

Condition de basculement

Rôle

Q0Horloge externeÀ chaque front actifBit de poids faible.
Q1Sortie Q0 ou son complémentÀ chaque transition active de Q0Bascule une fois pour deux impulsions.
Q2Sortie Q1 ou son complémentÀ chaque transition active de Q1Bascule une fois pour quatre impulsions.
Q3Sortie Q2 ou son complémentÀ chaque transition active de Q2Bascule une fois pour huit impulsions.

 

Attention à la polarité

Un montage qui compte vers le haut avec des bascules déclenchées sur front descendant peut compter vers le bas avec des bascules déclenchées sur front montant, si les mêmes connexions sont conservées. Il faut toujours vérifier la fiche technique et le symbole d’horloge.

 

15.1.2. Division de fréquence

Chaque bascule configurée en mode T divise par deux la fréquence du signal qui la commande. Dans une chaîne binaire, les sorties constituent donc une série de diviseurs de fréquence. Cette propriété est très utile pour produire des bases de temps lentes à partir d’une horloge rapide.

Pour l’étage k, avec Q0 comme premier bit :   f(Qk) = fCLK / 2^(k+1)

 

Figure 2 — Chronogramme idéal de division de fréquence.

Sortie

Période idéale

Fréquence pour fCLK = 1 MHz

Q02 TCLK500 kHz
Q14 TCLK250 kHz
Q28 TCLK125 kHz
Q316 TCLK62,5 kHz

 

Exemple de dimensionnement

On souhaite obtenir environ 1 kHz à partir de 1,024 MHz. Une division par 1024 est nécessaire, soit 2^10. Il faut donc dix étages et utiliser la sortie Q9.

15.1.3. Compteur binaire

Avec n bascules, un compteur binaire complet possède 2^n états. Après l’état maximal, il revient naturellement à zéro. Pour quatre bits, la séquence ascendante va de 0000 à 1111, puis recommence.

Nombre d’états = 2^n     ;     modulo du compteur binaire complet = 2^n

 

Nombre décimal

Q3 Q2 Q1 Q0

Événement

00000État initial
100011re impulsion
200102e impulsion
300113e impulsion
401004e impulsion
701117e impulsion
810008e impulsion
15111115e impulsion
0000016e impulsion : retour

 

La valeur instantanée peut être lue comme un nombre binaire non signé. Dans un compteur 4 bits, Q3 est le MSB et Q0 le LSB. La capacité maximale est 15, mais le nombre d’états parcourus est 16, car l’état 0 fait partie de la séquence.

15.1.4. Effet des retards de propagation

Une bascule ne change pas sa sortie exactement au moment du front d’horloge. Elle présente un temps de propagation t_pd. Dans un compteur asynchrone, l’étage suivant ne peut commencer à changer qu’après la transition de l’étage précédent. Les retards s’additionnent donc lors des transitions qui affectent plusieurs bits.

Retard maximal approximatif d’un compteur asynchrone n bits :  t_total ≈ n × t_pd

 

Figure 3 — Comparaison qualitative des retards asynchrones et synchrones.

La transition 0111 → 1000 est critique : dans le modèle idéal, quatre bits changent ensemble. Dans le montage réel, la propagation peut faire apparaître temporairement 0110, 0100 ou 0000 avant l’état final 1000. Ces états transitoires ne doivent pas être interprétés comme des valeurs stables.

Conséquence

Explication

Précaution

États transitoiresLes sorties ne changent pas simultanément.Attendre la stabilisation avant de décoder.
Impulsions parasitesUne logique combinatoire peut détecter brièvement un faux état.Échantillonner avec une horloge ou utiliser un compteur synchrone.
Fréquence limitéeLe prochain front ne doit pas arriver avant la fin de la propagation.Respecter la fréquence maximale calculée.
Décodage délicatLe reset asynchrone peut être activé par un état fugace.Soigner la logique de remise à zéro et les temps minimaux d’impulsion.

 

Exemple de calcul

Quatre bascules ont chacune un retard maximal de 18 ns. Le retard cumulé est environ 72 ns. Une estimation prudente de la fréquence maximale est inférieure à 1/72 ns ≈ 13,9 MHz, avant même d’ajouter les retards de décodage et une marge de sécurité.

15.2. Compteur synchrone

Dans un compteur synchrone, toutes les bascules reçoivent la même horloge. Les sorties évoluent donc à partir du même front actif. Une logique combinatoire calcule, pour chaque bascule, si elle doit conserver son état ou basculer.

Figure 4 — Structure d’un compteur synchrone ascendant 4 bits.

15.2.1. Horloge commune

  • l’horloge externe est distribuée à toutes les bascules ;
  • les conditions d’excitation sont préparées avant le front ;
  • au front actif, les bascules capturent simultanément leurs commandes ;
  • les sorties changent après leur temps de propagation propre, sans cascade d’horloges ;
  • la fréquence maximale dépend du chemin combinatoire le plus long, du setup et du skew.

Condition temporelle simplifiée :  TCLK ≥ t_clk→Q + t_logique + t_setup + marge

 

15.2.2. Avantages par rapport au compteur asynchrone

Critère

Compteur asynchrone

Compteur synchrone

Distribution de l’horlogeSeulement au premier étage.À toutes les bascules.
Changement des sortiesSuccessif, par propagation.Quasi simultané après le front.
Retard globalCroît approximativement avec le nombre d’étages.Dépend surtout du chemin logique critique.
Fréquence maximalePlus faible pour de grandes tailles.Généralement plus élevée.
Complexité logiqueTrès faible.Logique d’excitation supplémentaire.
Décodage des étatsRisque élevé d’aléas transitoires.États plus propres entre les fronts.
Usage typiqueDivision simple de fréquence, petits compteurs.Systèmes rapides, processeurs, contrôleurs.

 

15.2.3. Conception d’un compteur binaire synchrone

Dans un compteur ascendant, Q0 change à chaque impulsion. Q1 change lorsque tous les bits de poids inférieur à Q1 valent 1. De manière générale, Qi bascule lorsque Q0, Q1, …, Q(i−1) sont tous égaux à 1.

T0 = 1 ; T1 = Q0 ; T2 = Q1·Q0 ; T3 = Q2·Q1·Q0

 

État présent

État futur

Bits qui basculent

Justification

00000001Q0Q0 bascule toujours.
00010010Q0, Q1Q0=1 avant le front.
00110100Q0, Q1, Q2Q1Q0=11.
01111000Q0, Q1, Q2, Q3Q2Q1Q0=111.
11110000TousRetour modulo 16.

 

Méthode avec bascules D

Avec des bascules D, il faut appliquer directement le prochain état sur chaque entrée D. Le bit Q0 est inversé à chaque cycle. Les autres bits réalisent une addition binaire de 1.

D0 = ¬Q0 ; D1 = Q1 ⊕ Q0 ; D2 = Q2 ⊕ (Q1·Q0) ; D3 = Q3 ⊕ (Q2·Q1·Q0)

 

Validation par chronogramme

  • placer l’état initial après Reset ;
  • repérer chaque front actif ;
  • évaluer la logique T ou D juste avant ce front ;
  • déterminer les sorties après le temps de propagation ;
  • vérifier que la valeur binaire augmente d’une unité à chaque cycle ;
  • contrôler le retour à zéro après l’état maximal.

Bon réflexe

La logique combinatoire doit avoir le temps de se stabiliser avant le prochain front. Un compteur synchrone n’est pas exempt de contraintes temporelles : il remplace la cascade d’horloges par un chemin de données combinatoire.

 

15.3. Compteurs particuliers

Figure 5 — Principales variantes de compteurs.

15.3.1. Compteur ascendant

Le compteur ascendant incrémente sa valeur : 0, 1, 2, … Il peut être asynchrone ou synchrone. Dans les systèmes numériques, il sert à compter des impulsions, produire une adresse croissante ou mesurer une durée en nombre de cycles.

Q(t+1) = Q(t) + 1  (modulo M)

 

15.3.2. Compteur descendant

Le compteur descendant décrémente sa valeur. Il peut être chargé avec une valeur initiale puis compter jusqu’à zéro, ce qui est utile pour les temporisateurs, les comptes à rebours et la génération d’une interruption de fin.

Q(t+1) = Q(t) − 1  (modulo M)

 

État présent 3 bits

État futur descendant

000111
111110
110101
101100
001000

 

15.3.3. Compteur réversible

Un compteur réversible possède une commande UP/DOWN qui choisit le sens du comptage. Pour une réalisation synchrone avec bascules T, un bit Qi bascule si tous les bits inférieurs valent 1 en montée ou 0 en descente.

Pour i ≥ 1 :  Ti = produit, pour j=0…i−1, de (Qj XNOR UP) ; T0 = 1

 

UP

Action

Exemple depuis 0101

1Comptage ascendant0110
0Comptage descendant0100

 

Changement de sens

La commande UP/DOWN doit être stable pendant la fenêtre de setup/hold. Une modification trop proche du front peut produire une transition incorrecte ou une métastabilité.

 

15.3.4. Compteur modulo N

Le modulo d’un compteur est le nombre d’états distincts parcourus avant répétition. Un compteur binaire n bits est naturellement modulo 2^n. Pour obtenir un modulo N différent, on limite la séquence ou on synthétise directement les transitions nécessaires.

Modulo = nombre d’états de la séquence ; fréquence de répétition = fCLK / N

 

Exemples

Un compteur modulo 6 parcourt six états, par exemple 000, 001, 010, 011, 100, 101, puis revient à 000. Un compteur modulo 24 peut compter les heures d’une journée.

15.3.5. Compteur décimal ou BCD

Un compteur décimal parcourt dix états, de 0000 à 1001. Les six combinaisons 1010 à 1111 sont inutilisées. Après 9, il revient à 0 et peut produire une retenue pour incrémenter le chiffre décimal suivant.

Figure 6 — Comptage BCD et commande d’un afficheur sept segments.

Décimal

BCD Q3Q2Q1Q0

Après l’impulsion suivante

000000001
100010010
810001001
910010000 avec retenue

 

  • un chiffre décimal nécessite quatre bits BCD ;
  • un décodeur BCD–sept segments transforme les quatre bits en commandes a à g ;
  • pour plusieurs chiffres, on cascade les compteurs au moyen de la retenue ou d’une validation synchrone ;
  • les états interdits doivent être redirigés vers un état sûr dans une conception robuste.

15.3.6. Compteur en anneau

Le compteur en anneau est un registre à décalage dont la sortie est réinjectée à l’entrée. Un seul bit 1 circule généralement dans les n bascules. Après initialisation à 100…0, il produit n états distincts et des sorties one-hot faciles à décoder.

Pour 4 bits : 1000 → 0100 → 0010 → 0001 → 1000

 

Avantage

Limite

Décodage très simple : une seule sortie active.Utilise n bascules pour seulement n états.
Séquences de phases non chevauchantes.Nécessite une initialisation correcte.
Logique de transition réduite.L’état 0000 peut rester bloqué.

 

15.3.7. Compteur de Johnson

Le compteur de Johnson, ou anneau tordu, réinjecte le complément du dernier bit dans le premier étage. Avec n bascules, il produit 2n états utiles. Les états comportent une zone de 1 consécutifs qui s’allonge puis se réduit.

Pour 4 bits : 0000 → 1000 → 1100 → 1110 → 1111 → 0111 → 0011 → 0001 → 0000

 

Caractéristique

Anneau

Johnson

RétroactionQdernier vers l’entrée¬Qdernier vers l’entrée
Nombre d’états utilesn2n
DécodageTrès simple, one-hotSimple par paires de sorties
InitialisationUn seul 1Souvent 000…0

 

15.4. Conception d’un compteur modulo N

Concevoir un compteur modulo N consiste à réaliser une machine séquentielle qui parcourt exactement N états utiles. La méthode dépend du niveau de performance recherché : compteur binaire tronqué avec remise à zéro, ou synthèse synchrone complète de la séquence.

Figure 7 — Étapes générales de conception d’un compteur modulo N.

15.4.1. Détermination du nombre de bascules

Le nombre n de bascules doit être suffisant pour coder au moins N états. On choisit le plus petit entier n tel que 2^n ≥ N.

n = ceil(log2 N)

 

N

Calcul

Nombre minimal de bascules

États binaires disponibles

États inutilisés

52^2 < 5 ≤ 2^3383
102^3 < 10 ≤ 2^44166
122^3 < 12 ≤ 2^44164
242^4 < 24 ≤ 2^55328
602^5 < 60 ≤ 2^66644

 

15.4.2. Définition de la séquence d’états

La séquence doit être écrite explicitement, de préférence sous forme de table état présent / état futur. Pour un compteur modulo 6 ascendant, les états utiles sont 000 à 101. Les états 110 et 111 doivent être traités.

État présent

État futur souhaité

Statut

000001Utile
001010Utile
010011Utile
011100Utile
100101Utile
101000Retour
110000 ou don’t careInutilisé
111000 ou don’t careInutilisé

 

Auto-correction

Une conception robuste force les états inutilisés vers un état valide, souvent 000. Cela permet au compteur de récupérer après une perturbation, une mauvaise initialisation ou un aléa.

 

15.4.3. Réinitialisation du compteur

Une méthode simple consiste à utiliser un compteur binaire et à détecter l’état N. Le signal de détection active le Reset afin de revenir à zéro. Si le Reset est asynchrone, l’état N peut n’apparaître que brièvement. Si le Reset est synchrone, le retour se produit au front suivant.

Méthode

Avantage

Limite

Reset asynchrone par décodage de NTrès peu de logique, réaction immédiate.Risque d’impulsion courte et d’aléas ; état N transitoire.
Reset synchroneTransitions alignées sur l’horloge.L’état détecté doit être pris en compte dans la logique de prochain état.
Synthèse complète des transitionsSéquence propre, gestion des états inutilisés.Logique combinatoire plus importante.

 

Exemple modulo 10

Avec un compteur binaire 4 bits, on détecte 1010. Un reset asynchrone renvoie immédiatement le compteur à 0000. Le chronogramme observable est 0000 à 1001 ; l’état 1010 n’existe que pendant le délai de détection et de remise à zéro.

15.4.4. Analyse du chronogramme

  • identifier l’état initial imposé par Reset ;
  • numéroter les fronts actifs ;
  • écrire l’état stable après chaque front ;
  • indiquer le moment où l’état terminal est détecté ;
  • prendre en compte le retard du compteur et de la logique de décodage ;
  • vérifier la largeur minimale de l’impulsion de Reset ;
  • contrôler la répétition après exactement N impulsions.

Front

État d’un modulo 6

Commentaire

Reset000Initialisation
10011
20102
30113
41004
51015
6000Retour après six états

 

15.4.5. Fréquence de sortie et cascade

Un signal indiquant la fin de comptage se répète toutes les N impulsions. Il peut servir à valider un compteur suivant. Par exemple, un compteur modulo 10 pour les unités fournit une retenue au compteur des dizaines.

f_fin_de_compte = fCLK / N

 

Exemple de chronomètre

Avec une base de temps de 1 Hz, un compteur modulo 10 compte les secondes unités. Sa retenue alimente un compteur modulo 6 pour les dizaines de secondes. La combinaison réalise un comptage de 00 à 59.

Travaux dirigés

TD 1 — Séquence d’un compteur asynchrone

Un compteur asynchrone 4 bits est initialisé à 0000. Donner les sorties après 1, 2, 7, 8, 15 et 16 impulsions. Indiquer la valeur décimale.

TD 2 — Division de fréquence

Une horloge de 20 MHz alimente un compteur binaire 8 bits. Calculer la fréquence de Q0, Q3 et Q7 ainsi que la période de Q7.

TD 3 — Retard de propagation

Un compteur asynchrone 6 bits utilise des bascules de t_pd(max)=12 ns. Estimer le retard maximal et une limite théorique de fréquence. Expliquer pourquoi une marge est nécessaire.

TD 4 — Compteur synchrone 3 bits

Établir les équations T0, T1 et T2 d’un compteur ascendant. Compléter la séquence des huit états.

TD 5 — Comptage descendant

Écrire la séquence d’un compteur descendant 3 bits partant de 101. Donner les six états suivants.

TD 6 — Compteur réversible

À partir de 0110, appliquer UP=1 pendant trois fronts puis UP=0 pendant quatre fronts. Donner tous les états.

TD 7 — Dimensionnement modulo N

Déterminer le nombre minimal de bascules pour N=7, 10, 17, 24 et 100. Donner le nombre d’états inutilisés.

TD 8 — Modulo 6

Construire la table état présent / état futur d’un compteur modulo 6. Proposer un comportement pour les états 110 et 111.

TD 9 — Compteur BCD

Un compteur BCD reçoit 28 impulsions après remise à zéro. Quelle valeur affiche-t-il ? Combien de retenues a-t-il produites ?

TD 10 — Anneau et Johnson

Pour quatre bascules, écrire les séquences complètes d’un compteur en anneau initialisé à 1000 et d’un compteur de Johnson initialisé à 0000.

TD 11 — Chaîne 00 à 59

Proposer l’association de deux compteurs permettant d’afficher de 00 à 59. Préciser les modulos, les retenues et les décodeurs nécessaires.

TD 12 — Détection des aléas

Pourquoi un décodeur connecté directement aux sorties d’un compteur asynchrone peut-il produire une impulsion parasite ? Proposer deux solutions.

Travaux pratiques proposés

TP 1 — Réaliser un diviseur de fréquence

1. configurer une bascule JK avec J=K=1 ou une bascule T avec T=1 ;

2. appliquer une horloge connue et observer CLK puis Q ;

3. mesurer les périodes et vérifier la division par deux ;

4. cascader plusieurs étages et relever Q0, Q1, Q2 et Q3 ;

5. comparer les fréquences mesurées aux valeurs théoriques ;

6. observer le déphasage lié aux retards de propagation.

Mesure

Valeur théorique

Valeur mesurée

Écart / commentaire

fCLK   
fQ0fCLK/2  
fQ1fCLK/4  
fQ2fCLK/8  
fQ3fCLK/16  

 

TP 2 — Simuler un compteur binaire

1. réaliser un compteur 4 bits asynchrone ;

2. ajouter un Reset et des LED sur les sorties ;

3. lancer une horloge lente puis relever la séquence 0 à 15 ;

4. augmenter la fréquence et utiliser un analyseur logique ;

5. identifier une transition où plusieurs bits changent ;

6. refaire la simulation avec un compteur synchrone et comparer.

TP 3 — Réaliser un compteur modulo 10

1. partir d’un compteur binaire 4 bits ;

2. décoder l’état 1010 ;

3. utiliser le signal détecté pour réinitialiser le compteur ;

4. vérifier que les états stables vont de 0000 à 1001 ;

5. mesurer la largeur de l’impulsion de Reset ;

6. comparer Reset asynchrone et Reset synchrone.

TP 4 — Commander un afficheur sept segments

1. connecter les sorties BCD du compteur à un décodeur sept segments ;

2. identifier le type d’afficheur : anode commune ou cathode commune ;

3. ajouter les résistances de limitation du courant ;

4. faire varier l’horloge et observer 0 à 9 ;

5. vérifier le retour de 9 à 0 ;

6. ajouter un second chiffre si le matériel le permet.

Sécurité électrique

Chaque segment LED doit être limité en courant. Vérifier la polarité de l’afficheur, le courant maximal du décodeur et la compatibilité des niveaux logiques avant le câblage.

 

TP 5 — Étudier un registre à décalage

Ce TP relie le chapitre précédent aux compteurs particuliers. Un registre à décalage peut devenir un compteur en anneau ou de Johnson lorsque sa sortie est réinjectée.

1. réaliser un registre à décalage 4 bits ;

2. initialiser le mot 1000 puis boucler la sortie pour former un anneau ;

3. relever les quatre états ;

4. réinjecter le complément de la dernière sortie pour former un Johnson ;

5. relever les huit états ;

6. comparer la facilité de décodage et la nécessité d’initialisation.

Compte rendu de TP

Partie

Schéma / configuration

Chronogramme ou relevés

Analyse

Diviseur de fréquence   
Compteur binaire   
Modulo 10   
Affichage 7 segments   
Anneau / Johnson   

 

  • indiquer les références des circuits intégrés utilisés ;
  • préciser le front actif et la polarité du Reset ;
  • joindre les chronogrammes avec les échelles de temps ;
  • comparer calculs et mesures ;
  • expliquer les écarts et les éventuelles impulsions parasites ;
  • conclure sur le choix asynchrone ou synchrone.

Synthèse du chapitre

Notion

À retenir

CompteurCircuit séquentiel parcourant une suite d’états.
AsynchroneHorloge propagée d’une bascule à la suivante.
SynchroneHorloge commune et logique d’excitation.
Division de fréquenceChaque étage binaire divise la fréquence par deux.
ModuloNombre d’états avant répétition.
Ascendant / descendantIncrémentation ou décrémentation de la valeur.
RéversibleCommande permettant de choisir le sens.
BCDDix états codés de 0000 à 1001.
Anneaun états avec un bit actif circulant.
Johnson2n états avec rétroaction inversée.
Retard de propagationCause d’états transitoires dans un compteur asynchrone.
ResetInitialise le compteur et peut limiter le modulo.

 

Glossaire

Terme

Définition

ComptageÉvolution ordonnée des états sous l’action d’impulsions.
Modulo NCompteur possédant N états distincts.
Ripple counterAutre nom du compteur asynchrone.
Retenue / CarryImpulsion indiquant le passage de l’état terminal au début.
Terminal countÉtat ou signal de fin de comptage.
UP/DOWNCommande du sens de comptage.
One-hotCodage où une seule sortie vaut 1.
BCDCodage binaire d’un chiffre décimal sur quatre bits.
Reset synchroneRemise à zéro appliquée au prochain front actif.
Reset asynchroneRemise à zéro indépendante de l’horloge.
Chemin critiqueChemin présentant le retard combinatoire maximal.
Auto-correctionCapacité à rejoindre un état valide depuis un état inutilisé.

 

Exercices d’entraînement

Exercice 13 — Capacité de comptage

Quelle est la valeur maximale et le nombre d’états d’un compteur binaire 12 bits ?

Exercice 14 — Base de temps

On dispose de 32,768 kHz. Combien d’étages binaires faut-il pour obtenir 1 Hz ?

Exercice 15 — Fréquence de Q5

Une horloge de 12,8 MHz alimente un compteur. Calculer f(Q5) si Q0 est le premier étage.

Exercice 16 — Limite temporelle

Un compteur asynchrone 10 bits emploie des bascules de 9 ns. Estimer son retard cumulé et discuter une fréquence de 15 MHz.

Exercice 17 — Compteur modulo 12

Donner n, la séquence binaire naturelle et le premier état à détecter pour un reset par troncature.

Exercice 18 — Minutes

Concevoir conceptuellement un compteur de minutes 00 à 59 à partir de blocs modulo 10 et modulo 6.

Exercice 19 — Réversible

Un compteur 4 bits vaut 1110. Il reçoit deux impulsions en montée puis cinq en descente. Donner tous les états.

Exercice 20 — Johnson

Combien d’états utiles possède un Johnson 7 bits ? Donner le principe de sa séquence.

Exercice 21 — Choix technologique

Choisir asynchrone ou synchrone pour : diviseur lent simple, compteur d’instructions rapide, compteur d’événements à 10 Hz, adresse mémoire à 100 MHz.

Exercice 22 — États inutilisés

Un modulo 10 synchrone entre accidentellement dans 1110. Proposer un comportement auto-correcteur et expliquer son intérêt.

Auto-évaluation

Question

Réponse attendue

1Combien d’états possède un compteur binaire n bits ?2^n.
2Que divise une bascule T active ?La fréquence par deux.
3Pourquoi un compteur asynchrone est-il appelé ripple ?Le changement se propage d’étage en étage.
4Quel est l’avantage principal du compteur synchrone ?Les sorties changent à partir du même front, avec moins de retard cumulé.
5Combien de bascules faut-il au minimum pour un modulo 10 ?4.
6Quels états sont valides en BCD ?0000 à 1001.
7Combien d’états utiles possède un anneau n bits ?n.
8Combien d’états utiles possède un Johnson n bits ?2n.
9Que signifie UP/DOWN ?Commande du sens de comptage.
10Pourquoi traiter les états inutilisés ?Pour assurer une récupération vers une séquence valide.

 

Corrigés des travaux dirigés et exercices

Corrigé TD 1

Après 1 : 0001 (1) ; 2 : 0010 (2) ; 7 : 0111 (7) ; 8 : 1000 (8) ; 15 : 1111 (15) ; 16 : 0000 (0).

Corrigé TD 2

Q0 = 10 MHz. Q3 = 20 MHz/16 = 1,25 MHz. Q7 = 20 MHz/256 = 78,125 kHz. TQ7 = 12,8 µs.

Corrigé TD 3

Retard ≈ 6×12 ns = 72 ns. Limite idéale ≈ 13,9 MHz. Il faut réduire cette valeur à cause des tolérances, du décodage et des contraintes d’impulsion.

Corrigé TD 4

T0=1, T1=Q0, T2=Q1Q0. Séquence : 000,001,010,011,100,101,110,111,000.

Corrigé TD 5

Depuis 101 : 100, 011, 010, 001, 000, 111.

Corrigé TD 6

Départ 0110. Montée : 0111, 1000, 1001. Descente : 1000, 0111, 0110, 0101.

Corrigé TD 7

N=7 : n=3, 1 état inutilisé. N=10 : n=4, 6. N=17 : n=5, 15. N=24 : n=5, 8. N=100 : n=7, 28.

Corrigé TD 8

000→001→010→011→100→101→000. Pour une conception auto-correctrice, 110→000 et 111→000.

Corrigé TD 9

28 = 2×10 + 8. Le compteur affiche 8 et a produit deux retenues.

Corrigé TD 10

Anneau : 1000,0100,0010,0001 puis répétition. Johnson : 0000,1000,1100,1110,1111,0111,0011,0001 puis 0000.

Corrigé TD 11

Unités : modulo 10. Sa retenue valide les dizaines : modulo 6. Chaque bloc alimente un décodeur BCD–sept segments et un afficheur.

Corrigé TD 12

Les retards successifs créent des combinaisons transitoires pouvant satisfaire brièvement le décodeur. Solutions : compteur synchrone, registre de sortie, échantillonnage synchronisé ou décodage sans aléas.

Corrigé Exercice 13

Un compteur 12 bits possède 4096 états et compte de 0 à 4095.

Corrigé Exercice 14

32,768 kHz = 32768 Hz = 2^15 Hz. Quinze étages donnent 1 Hz.

Corrigé Exercice 15

Q5 divise par 2^6=64. f(Q5)=12,8 MHz/64=200 kHz.

Corrigé Exercice 16

Retard ≈ 90 ns. À 15 MHz, T≈66,7 ns, inférieur au retard cumulé : fonctionnement non garanti.

Corrigé Exercice 17

n=4. Séquence 0000 à 1011. En troncature, détecter 1100, soit 12, puis remettre à zéro.

Corrigé Exercice 18

Les unités sont modulo 10. La retenue incrémente les dizaines modulo 6. Le retour après 59 donne 00.

Corrigé Exercice 19

Départ 1110. Montée : 1111,0000. Descente : 1111,1110,1101,1100,1011.

Corrigé Exercice 20

Un Johnson 7 bits possède 14 états. Une suite de 1 remplit progressivement le registre, puis une suite de 0 le vide.

Corrigé Exercice 21

Diviseur simple : asynchrone possible. Compteur d’instructions rapide : synchrone. Événements 10 Hz : l’un ou l’autre, asynchrone suffisant. Adresse mémoire 100 MHz : synchrone.

Corrigé Exercice 22

Forcer 1110 vers 0000 au prochain front. Cette transition évite un verrouillage hors de la séquence après une perturbation.

Conclusion

Les compteurs transforment une suite d’impulsions en une séquence d’états exploitable. Les compteurs asynchrones sont simples et efficaces pour la division de fréquence, mais leurs retards cumulés peuvent produire des états transitoires. Les compteurs synchrones utilisent une horloge commune et conviennent mieux aux systèmes rapides et au décodage précis.

Le choix d’un compteur dépend du modulo, du sens de comptage, de la fréquence, de l’initialisation et de la forme des sorties attendues. Les compteurs BCD facilitent l’affichage décimal, tandis que les structures en anneau et de Johnson génèrent des séquences de commande. La conception d’un modulo N doit toujours inclure le dimensionnement, la table de transitions, la gestion des états inutilisés, le Reset et la vérification temporelle.