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 compteur | Expliquer la notion de séquence d’états et de modulo. |
| Analyser un compteur asynchrone | Suivre la propagation du comptage dans une chaîne de bascules. |
| Exploiter la division de fréquence | Déterminer la fréquence de chaque sortie. |
| Analyser un compteur synchrone | Identifier l’horloge commune et la logique d’excitation. |
| Concevoir un compteur binaire | Établir les conditions de basculement de chaque bit. |
| Distinguer les sens de comptage | Comparer ascendant, descendant et réversible. |
| Dimensionner un compteur modulo N | Calculer le nombre de bascules et gérer les états inutilisés. |
| Étudier les compteurs décimaux | Relier un compteur BCD à un afficheur sept segments. |
| Analyser anneau et Johnson | Déterminer la séquence et le nombre d’états. |
| Valider un montage | Construire 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.1 | Compteur asynchrone | Comprendre la cascade des bascules et la division de fréquence. |
| 15.2 | Compteur synchrone | Concevoir une logique de comptage à horloge commune. |
| 15.3 | Compteurs particuliers | Choisir une architecture adaptée à la séquence recherchée. |
| 15.4 | Compteur modulo N | Dimensionner, initialiser et vérifier une séquence limitée. |
| TP | Mise en œuvre | Simuler, 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 |
|---|---|---|---|
| Q0 | Horloge externe | À chaque front actif | Bit de poids faible. |
| Q1 | Sortie Q0 ou son complément | À chaque transition active de Q0 | Bascule une fois pour deux impulsions. |
| Q2 | Sortie Q1 ou son complément | À chaque transition active de Q1 | Bascule une fois pour quatre impulsions. |
| Q3 | Sortie Q2 ou son complément | À chaque transition active de Q2 | Bascule 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 |
|---|---|---|
| Q0 | 2 TCLK | 500 kHz |
| Q1 | 4 TCLK | 250 kHz |
| Q2 | 8 TCLK | 125 kHz |
| Q3 | 16 TCLK | 62,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 |
|---|---|---|
| 0 | 0000 | État initial |
| 1 | 0001 | 1re impulsion |
| 2 | 0010 | 2e impulsion |
| 3 | 0011 | 3e impulsion |
| 4 | 0100 | 4e impulsion |
| 7 | 0111 | 7e impulsion |
| 8 | 1000 | 8e impulsion |
| 15 | 1111 | 15e impulsion |
| 0 | 0000 | 16e 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 transitoires | Les sorties ne changent pas simultanément. | Attendre la stabilisation avant de décoder. |
| Impulsions parasites | Une logique combinatoire peut détecter brièvement un faux état. | Échantillonner avec une horloge ou utiliser un compteur synchrone. |
| Fréquence limitée | Le prochain front ne doit pas arriver avant la fin de la propagation. | Respecter la fréquence maximale calculée. |
| Décodage délicat | Le 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’horloge | Seulement au premier étage. | À toutes les bascules. |
| Changement des sorties | Successif, par propagation. | Quasi simultané après le front. |
| Retard global | Croît approximativement avec le nombre d’étages. | Dépend surtout du chemin logique critique. |
| Fréquence maximale | Plus faible pour de grandes tailles. | Généralement plus élevée. |
| Complexité logique | Très faible. | Logique d’excitation supplémentaire. |
| Décodage des états | Risque élevé d’aléas transitoires. | États plus propres entre les fronts. |
| Usage typique | Division 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 |
|---|---|---|---|
| 0000 | 0001 | Q0 | Q0 bascule toujours. |
| 0001 | 0010 | Q0, Q1 | Q0=1 avant le front. |
| 0011 | 0100 | Q0, Q1, Q2 | Q1Q0=11. |
| 0111 | 1000 | Q0, Q1, Q2, Q3 | Q2Q1Q0=111. |
| 1111 | 0000 | Tous | Retour 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 |
|---|---|
| 000 | 111 |
| 111 | 110 |
| 110 | 101 |
| 101 | 100 |
| 001 | 000 |
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 |
|---|---|---|
| 1 | Comptage ascendant | 0110 |
| 0 | Comptage descendant | 0100 |
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 |
|---|---|---|
| 0 | 0000 | 0001 |
| 1 | 0001 | 0010 |
| 8 | 1000 | 1001 |
| 9 | 1001 | 0000 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étroaction | Qdernier vers l’entrée | ¬Qdernier vers l’entrée |
| Nombre d’états utiles | n | 2n |
| Décodage | Très simple, one-hot | Simple par paires de sorties |
| Initialisation | Un seul 1 | Souvent 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 |
|---|---|---|---|---|
| 5 | 2^2 < 5 ≤ 2^3 | 3 | 8 | 3 |
| 10 | 2^3 < 10 ≤ 2^4 | 4 | 16 | 6 |
| 12 | 2^3 < 12 ≤ 2^4 | 4 | 16 | 4 |
| 24 | 2^4 < 24 ≤ 2^5 | 5 | 32 | 8 |
| 60 | 2^5 < 60 ≤ 2^6 | 6 | 64 | 4 |
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 |
|---|---|---|
| 000 | 001 | Utile |
| 001 | 010 | Utile |
| 010 | 011 | Utile |
| 011 | 100 | Utile |
| 100 | 101 | Utile |
| 101 | 000 | Retour |
| 110 | 000 ou don’t care | Inutilisé |
| 111 | 000 ou don’t care | Inutilisé |
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 N | Très peu de logique, réaction immédiate. | Risque d’impulsion courte et d’aléas ; état N transitoire. |
| Reset synchrone | Transitions 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 transitions | Sé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 |
|---|---|---|
| Reset | 000 | Initialisation |
| 1 | 001 | 1 |
| 2 | 010 | 2 |
| 3 | 011 | 3 |
| 4 | 100 | 4 |
| 5 | 101 | 5 |
| 6 | 000 | Retour 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 | |||
| fQ0 | fCLK/2 | ||
| fQ1 | fCLK/4 | ||
| fQ2 | fCLK/8 | ||
| fQ3 | fCLK/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 |
|---|---|
| Compteur | Circuit séquentiel parcourant une suite d’états. |
| Asynchrone | Horloge propagée d’une bascule à la suivante. |
| Synchrone | Horloge commune et logique d’excitation. |
| Division de fréquence | Chaque étage binaire divise la fréquence par deux. |
| Modulo | Nombre d’états avant répétition. |
| Ascendant / descendant | Incrémentation ou décrémentation de la valeur. |
| Réversible | Commande permettant de choisir le sens. |
| BCD | Dix états codés de 0000 à 1001. |
| Anneau | n états avec un bit actif circulant. |
| Johnson | 2n états avec rétroaction inversée. |
| Retard de propagation | Cause d’états transitoires dans un compteur asynchrone. |
| Reset | Initialise le compteur et peut limiter le modulo. |
Glossaire
Terme | Définition |
|---|---|
| Comptage | Évolution ordonnée des états sous l’action d’impulsions. |
| Modulo N | Compteur possédant N états distincts. |
| Ripple counter | Autre nom du compteur asynchrone. |
| Retenue / Carry | Impulsion indiquant le passage de l’état terminal au début. |
| Terminal count | État ou signal de fin de comptage. |
| UP/DOWN | Commande du sens de comptage. |
| One-hot | Codage où une seule sortie vaut 1. |
| BCD | Codage binaire d’un chiffre décimal sur quatre bits. |
| Reset synchrone | Remise à zéro appliquée au prochain front actif. |
| Reset asynchrone | Remise à zéro indépendante de l’horloge. |
| Chemin critique | Chemin présentant le retard combinatoire maximal. |
| Auto-correction | Capacité à 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
N° | Question | Réponse attendue |
|---|---|---|
| 1 | Combien d’états possède un compteur binaire n bits ? | 2^n. |
| 2 | Que divise une bascule T active ? | La fréquence par deux. |
| 3 | Pourquoi un compteur asynchrone est-il appelé ripple ? | Le changement se propage d’étage en étage. |
| 4 | Quel est l’avantage principal du compteur synchrone ? | Les sorties changent à partir du même front, avec moins de retard cumulé. |
| 5 | Combien de bascules faut-il au minimum pour un modulo 10 ? | 4. |
| 6 | Quels états sont valides en BCD ? | 0000 à 1001. |
| 7 | Combien d’états utiles possède un anneau n bits ? | n. |
| 8 | Combien d’états utiles possède un Johnson n bits ? | 2n. |
| 9 | Que signifie UP/DOWN ? | Commande du sens de comptage. |
| 10 | Pourquoi 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.