Un compteur asynchrone compte les impulsions d’horloge par des basculations en cascade, où seul le premier étage reçoit l’horloge externe et chaque étage suivant se déclenche à partir de la sortie précédente. Cette propagation en ondulation maintient la conception simple mais introduit un délai cumulatif - typiquement 5 à 15 ns par étage avec la logique standard de la série 74HC - ce qui la rend adaptée à la division de fréquence et au comptage d’événements à basse vitesse, mais problématique lorsque tous les bits de sortie doivent se mettre à jour simultanément. Ci-dessous, je vais expliquer le mécanisme de ripple, les contraintes de timing pratiques, et où cette architecture a encore du sens.
Points clés :
- Le délai d’ondulation évolue linéairement avec le nombre d’étapes ; un compteur asynchrone 4 bits construit à partir de flip-flops 74HC73 accumule environ 40 ns de propagation dans le pire des cas, limitant un fonctionnement fiable en dessous de ~10 MHz.
- Les compteurs asynchrones excellent dans la division de fréquence (chaque étage divise de moitié la fréquence d’entrée) et ne nécessitent aucun routage d’un arbre d’horloge à haute vitesse vers chaque bascule.
- Des états de dysfonctionnement temporaires lors des transitions multi-bits (par exemple, 0111→1000) peuvent provoquer de fausses déclencheurs dans la logique en aval, sauf si les sorties sont stroboscopiques après stabilisation.
- Les compteurs synchrones éliminent les délais de ripple et les bugs mais exigent plus de ressources de routage et consomment plus d’énergie en distribuant l’horloge à tous les étages.
Comment fonctionne la propagation des ondulations
Le premier bascule bascule sur chaque arête d’horloge d’entrée. Sa sortie déclenche alors le second bascule, qui bascule deux fois moins souvent. Cette sortie alimente le troisième étage, et ainsi de suite. Parce que chaque étape attend que l’étape précédente se stabilise, le bit de sortie final se met à jour en dernier - ce délai en cascade est l’effet d’ondulation signature.
D’un point de vue pratique, on voit cela clairement sur un oscilloscope : on sonde le bit le moins significatif (LSB) et il suit l’horloge d’entrée ; Sondez le bit le plus significatif (MSB) d’un compteur 4 bits et vous verrez qu’il effectue une transition d’environ quatre délais de propagation plus tard. Ce timing décalé convient pour des applications comme la génération d’un diviseur d’horloge /16, mais il casse les circuits qui échantillonnent tous les bits en parallèle - comme un microcontrôleur qui lit une valeur de comptage ou un comparateur vérifiant un comptage de bornes.
Types et direction du comptage
Compteur vers le haut : Chaque flip-flop est cadencé par la sortie non inversée de l’étage précédent, donc le comptage augmente dans la séquence binaire standard (0000, 0001, 0010, ..., 1111, puis s’enroule à 0000).
Compteur descendant : Chaque bascule est chronométré par la sortie complémentaire (Q̄) de l’étage précédent, inversant la séquence (1111, 1110, 1101, ..., 0000).
Le choix dépend de la sortie flip-flop que vous branchez à la prochaine entrée d’horloge. Les bascules J-K et T sont courantes car leur mode bascule nécessite une logique externe minimale - il suffit d’attacher J et K haut ou de maintenir T haut. Les bascules D fonctionnent mais nécessitent que la sortie inversée soit renvoyée à l’entrée D, ajoutant une porte.
Contraintes de timing que tu ne peux pas ignorer
Délai cumulatif de propagation : Chaque flip-flop ajoute son délai horloge-sortie (tp). Pour un compteur de n bits, le temps de ripple dans le pire des cas est n × tp. Avec des basculations 74HC73 (tp ≈ 10 ns à 5 V), un compteur 4 bits se stabilise en ~40 ns ; Un compteur 8 bits pousse 80 ns. Si votre application échantillonne le nombre avant qu’il ne se stabilise, vous lis des déchets.
États de bug : Lors des transitions qui inversent plusieurs bits - comme 0111→1000 - les sorties intermédiaires montrent brièvement des états illégaux (0110, 0100, 0000, 1000 en séquence). J’ai vu ces bugs comme la logique d’interruption à fausse détente dans des projets de microcontrôleurs. La solution consiste soit à stroboscopiquer les sorties avec un signal d’activation retardé qui attend la fin des ondulations, soit à passer à un compteur synchrone où tous les bits changent ensemble.
Fréquence maximale d’horloge : La période d’entrée doit dépasser le délai total de ripple plus le temps d’installation pour toute logique en aval. Pour un compteur 74HC 4 bits, la fréquence maximale pratique d’entrée est d’environ 10 à 12 MHz ; Pousse au-delà de ça et tu obtiens une métastabilité ou des comptes ratés.

Quand les compteurs asynchrones ont encore du sens
Division de fréquence : Si vous ne vous intéressez qu’à la sortie MSB et ignorez les bits intermédiaires, le délai de ripple n’a pas d’importance. Un compteur 4 bits alimenté par une fréquence de 1 MHz délivre une onde carrée propre de 62,5 kHz au MSB - aucun bug, aucune synchronisation nécessaire. Je l’utilise régulièrement dans les circuits de préscaler d’horloge.
Comptage d’événements avec entrées lentes : Le comptage des fermetures mécaniques des interrupteurs, des impulsions de capteur ou tout signal en dessous de 100 kHz atteint rarement les limites de synchronisation. Un compteur double 4 bits 74HC393 coûte une fraction de l’équivalent synchrone et ne nécessite pas d’espace sur le circuit imprimé pour la distribution de l’horloge.
Faible nombre de portes dans les ASIC/FPGA : Bien que les FPGA privilégient les conceptions synchrones, les compteurs asynchrones peuvent économiser des flip-flops dans des blocs ultra-faible consommation ou à zone limitée où vous êtes prêt à gérer le timing à la main.
En quoi ils sont mauvais : Toute application qui lit le nombre complet en parallèle (génération d’adresses, multiplexage d’affichage, détection du nombre de terminaux) ou qui fonctionne au-delà de quelques mégahertz. Dans ces cas, le délai de ripple provoque soit des erreurs fonctionnelles, soit vous oblige à ajouter tellement de logique externe (verrous de sortie, génération de stroboscopes) qu’un compteur synchrone devient plus simple.
Liste de contrôle de conception
→ Calculer le délai d’ondulation dans le pire des cas : n × tp, où n est le nombre d’étapes et tp provient de la fiche technique flip-flop.
→ Vérifiez la période d’entrée ≥ délai de ripple + temps de configuration en aval + marge (j’utilise une marge de 20 %).
→ Si une logique échantillonne le compte, ajouter un stroboscope de sortie retardé d’au moins le temps de ripple, ou utiliser un compteur synchrone.
→ Pour les applications à division par 2ⁿ, tapez sur l’étage final et ignorez les sorties intermédiaires - la ripple n’a pas d’importance.
→ Confirmez que la famille des bascules (HC, AC, LV) répond à vos exigences de vitesse et de tension ; les pièces 74LS plus anciennes ont ≈ TP 20 ns et n’atteignent pas 10 MHz en configuration 4 bits.
→ Tester la séquence complète de comptage avec un analyseur logique, pas seulement une lunette ; Les bugs sont faciles à manquer sur une lunette réglée pour ralentir la base temporelle.
Asynchrone vs. Synchrone : Le vrai compromis
| Aspect | Asynchrone | Synchrone |
|---|---|---|
| Distribution de l’horloge | Seulement à la première étape | À tous les tongs |
| Synchronisation de sortie | Délai d’ondulation, les bits se mettent à jour séquentiellement | Tous les bits se mettent à jour sur la même arête (dans le décalage d’horloge) |
| Vitesse maximale | Limité par n × tp (généralement <20 MHz pour 4 bits) | Limité par un seul tp + logique combinatoire (peut dépasser 100 MHz) |
| États de glitch | Présent lors des transitions multi-bits | Absent si la conception est synchrone tout au long de |
| Nombre de portes | n tongs | n bascules + logique combinacionale pour l’état suivant |
| Puissance (dynamique) | Plus bas - seules les étapes de basculement consomment du courant | Plus haut - arbre d’horloge et toutes les tongs basculent à chaque cycle |
| Meilleur cas d’utilisation | Diviseurs de fréquence, compteurs d’événements lents, espace minimal sur le plateau | Bus processeur, chemins de données à haute vitesse, toute lecture parallèle |
Le tableau montre pourquoi les compteurs asynchrones persistent dans des rôles de niche malgré leur lenteur. Si vous divisez une horloge système de 10 MHz à 1 MHz pour un UART, un compteur asynchrone fait le travail avec trois bascules et zéro congestion de routage. Mais si vous construisez un compteur d’adresses pour le rafraîchissement DRAM ou un périphérique minuteur que le CPU lit directement, le synchrone est la seule option pratique.

Notes pratiques sur le circuit
Préréglage et Clair : La plupart des CI compteurs (74HC393, 74HC4040) incluent des entrées claires asynchrones ; Certains ajoutent une charge synchrone. J’ai constaté que l’utilisation d’un clear asynchrone pour définir un module non puissant de deux (par exemple, compteur de décennies) fonctionne mais nécessite une porte pour décoder le nombre de terminaux et pulser le clear - surveillez les conditions de course où le clear arrive avant que toutes les étapes ne soient passées à l’état terminal.
Cascade au-delà des 4 bits : Vous pouvez chaîner des circuits intégrés compteurs 4 bits en alimentant la sortie de retenue MSB vers l’entrée d’horloge du paquet suivant. Chaque étage supplémentaire de 4 bits ajoute 40 ns de retard, donc un compteur 8 bits construit à partir de deux 74HC393 a ~80 ns de ripple et atteint réalistement une fréquence d’entrée maximale d’environ 5 MHz.
Interface avec des microcontrôleurs : Si vous devez lire un compteur asynchrone avec un microcontrôleur, utilisez soit un minuteur de capture d’entrée déclenché par le MSB (pour ne vous soucier que d’un bit), soit verrouillez les sorties avec un loquet transparent 74HC373, en maintenant l’activation du loquet bas jusqu’à la fin de la ripple. J’ai passé des heures à déboguer des erreurs de comptage « aléatoires » qui se sont avérées être l’échantillonnage du MCU en plein riffle.
Où va l’industrie
Les compteurs asynchrones apparaissent toujours dans les conceptions sensibles au coût - en particulier les pilotes LED, les minuteurs d’appareils et les circuits asboard automobiles - mais les architectures synchrones dominent tout ce qui est équipé d’un microprocesseur ou d’un FPGA. Le 74HC590 (compteur binaire 8 bits avec registre de sortie) et 74HC4040 (compteur ondulé 12 bits) restent en production, ce qui indique qu’il y a toujours de la demande, mais les nouvelles familles de CI (comme la série SN74AUP de TI) se concentrent sur les topologies synchrones car les applications mobiles et IoT privilégient la faible latence au détriment du nombre de portes.
Si vous enseignez la conception numérique, les compteurs asynchrones méritent d’être compris car ils exposent le retard de propagation et la métastabilité de manière tangible - des concepts qui comptent même dans des systèmes entièrement synchrones. Si vous concevez un produit, utilisez-les uniquement là où leurs limites n’ont pas d’importance : division de fréquence, comptage d’événements isolé, ou partout où vous pouvez tolérer (ou ne jamais observer) le délai d’ondulation. Pour tout le reste, le timing propre du compteur synchrone vaut la charge supplémentaire de l’horloge flip-flop.