Conception compteur Mod-5 : Pourquoi 3 bascules sont requises
Fondamentaux compteur Mod-5
Un compteur modulo-5 (Mod-5) séquence à travers 5 états distincts (0, 1, 2, 3, 4) avant de recycler à 0. Le nombre minimum de bascules est déterminé par le nombre d'états.
Calcul nombre bascules
Nombre d'états = 2n où n = nombre bascules
- 2 bascules → 4 états (0-3) — insuffisant
- 3 bascules → 8 états (0-7) — suffisant
- 4 bascules → 16 états — superflu
Encodage d'états binaire
| Comptage | Q₂ Q₁ Q₀ | Décimal |
|---|---|---|
| 0 | 0 0 0 | 0 |
| 1 | 0 0 1 | 1 |
| 2 | 0 1 0 | 2 |
| 3 | 0 1 1 | 3 |
| 4 | 1 0 0 | 4 |
| 5 (reset) | 0 0 0 | → 0 |
États 5 (101), 6 (110), 7 (111) sont inutilisés/dont-care — doit assurer auto-correction si compteur y entre.
Approches implémentation
Synchrone (Recommandé)
- Toutes bascules horlogées par horloge commune
- Logique état suivant : D₂ = Q₂'Q₁'Q₀' + Q₂Q₁'Q₀' (simplifiée via Karnaugh)
- Logique reset : Détecter état 5 (101) → clear synchrone
- Avantages : Pas glitches, timing prévisible, STA plus facile
Asynchrone (Ripple)
- Bascule 0 horloge bascule 1 horloge bascule 2
- Reset : NAND(Q₂, Q₀) → clear asynchrone toutes bascules
- Inconvénients : Délai ripple, risque glitch, conditions course reset
Alternative Johnson / Anneau
- 3 bascules compteur Johnson = 6 états (en utiliser 5, détecter état 5 pour reset)
- Auto-décodage — pas logique décodage externe nécessaire
- Requiert initialisation état valide
Design logique reset
Reset synchrone au comptage 5 (101) :
Reset = Q₂ · Q₁' · Q₀
Ceci s'active quand compteur atteint 5, forçant prochaine horloge charger 000.
Checklist vérification
- Compte 0→1→2→3→4→0 ✓
- Pas blocage états inutilisés (5,6,7) — ajouter logique auto-correction
- Setup/hold respectés toutes bascules à fréquence horloge cible
- Largeur impulsion reset ≥ spec minimum
- Fan-out signal reset dans limites
Extrait VHDL (Synchrone)
process(clk, rst) begin if rst = '1' then count <= "000"; elsif rising_edge(clk) then if count = "100" then -- 4 count <= "000"; else count <= count + 1; end if; end if; end process;
Réponse : 3 bascules minimum. 2 bascules donnent seulement 4 états ; 3 bascules donnent 8 états, permettant 5 utilisés + 3 inutilisés avec logique reset appropriée.
