Le compteur Johnson : Architecture anneau torsadé & Applications
Logique séquentielle synchrone : L'anneau marcheur
Le compteur Johnson (aussi compteur anneau torsadé, compteur anneau marcheur, compteur Möbius) est un registre à décalage où la sortie complémentée du dernier étage revient à l'entrée du premier. Cette unique inversion transforme un compteur binaire à 2n états en générateur de séquence à 2n états aux propriétés uniques.
Définition structurelle
- n bascules D (ou JK) en cascade : Qi → Di+1.
- Retour : Q̅n-1 → D0 (retour inversé).
- Horloge : Horloge synchrone commune à tous étages.
- Reset : Asynchrone ou synchrone vers « 00…0 » (préféré pour démarrage déterministe).
Séquence d'états (exemple n=4)
Horloge | Q3 Q2 Q1 Q0 | Décimal | Notes ------|-------------|---------|------ 0 | 0 0 0 0 | 0 | État reset 1 | 1 0 0 0 | 8 | 0 inversé réinjecté 2 | 1 1 0 0 | 12 3 | 1 1 1 0 | 14 4 | 1 1 1 1 | 15 5 | 0 1 1 1 | 7 | 1 inversé réinjecté 6 | 0 0 1 1 | 3 7 | 0 0 0 1 | 1 8 | 0 0 0 0 | 0 | Cycle répète (8 états = 2n)
Observation clé : Un seul bit change par horloge (états adjacents code Gray). Cela élimine glitches décodage.
Caractéristiques définissantes
- Modulo = 2n : 4 bascules → Mod-8 ; 8 bascules → Mod-16.
- Auto-démarrage (avec réserves) : Depuis n'importe quel des 2n états, compteur entre cycle principal 2n en ≤ n horloges. Cependant, peut se bloquer en cycles « morts » (ex. 1010… pour n=4) sans reset. Toujours inclure reset mise sous tension.
- Décodage simplicité : Chaque état est motif one-hot unique sur bits adjacents (ex. 0001, 0011, 0111…). Portes ET 2 entrées par état décodent proprement sans glitches.
- Cycle service : Sortie de tout étage est onde carrée à fCLK / 2n avec cycle 50%.
Comparaison : Johnson vs Anneau vs Binaire
| Type compteur | Bascules (n) | États | Décodage | Freq max | Auto-start |
|---|---|---|---|---|---|
| Binaire (Ripple) | n | 2n | Complexe (portes n entrées) | Faible (délai prop) | Oui |
| Binaire (Synchrone) | n | 2n | Complexe | Élevée | Oui |
| Anneau (Droit) | n | n | Trivial (1 bascule/état) | La plus haute | Non (besoin preset) |
| Johnson (Torsadé) | n | 2n | Simple (porte ET 2 entrées) | Élevée | Oui (avec reset) |
Applications classiques
- Division fréquence : Divise-par-2n avec cycle 50% (ex. 4 étages → ÷8 horloge).
- Séquenceurs machines d'état : Commande moteur pas-à-pas (4 phases), chenillards LED, contrôleurs feux tricolores.
- Décodage sans glitch : Génération phases horloge non chevauchantes (φ1, φ2, φ3, φ4) pour pompes charge ou logique dynamique.
- Générateur motifs pseudo-aléatoires : Avec XOR retour sur prises sélectionnées, devient type LFSR mais avec runs plus longs.
- Chronométrage ADC : Séquençage contrôle registre approximation successive (SAR).
Note implémentation (74HC4017 / CD4017)
L'ubiquitaire CD4017 / 74HC4017 est compteur Johnson 5 étages (10 sorties décodées). Inclut sortie retenue (Q5̅) pour cascadage. Pour Mod-8, utiliser 4 étages (74HC164 + inverseur retour) ou gater Q8 du 4017 vers Reset.
