Compteur asynchrone et diviseur de fréquence - Logique séquentielle

Dans cette leçon de logique séquentielle, le conférencier explique le fonctionnement et la construction d’un compteur asynchrone basé sur des bascules T en mode toggle. Il commence par rappeler que la bascule JK en mode toggle (J=K=1) et la bascule T (T=1) changent d’état à chaque front d’horloge, ce qui les rend idéales comme diviseurs de fréquence : chaque bascule divise la fréquence d’entrée par deux. En cascade, N bascules T forment un diviseur de fréquence asynchrone qui réalise une division successive (½, ¼, ⅛, …) et constitue un compteur binaire ripple. Le cours détaille le schéma à 4 bascules T, montre les chronogrammes pour les fronts montants (Q1‑Q4) puis pour les fronts descendants (Q0‑Q3), et explique pourquoi le circuit est qualifié d’asynchrone (l’horloge ne pilote que la première bascule, les suivantes sont déclenchées par la sortie précédente). Le passage aux fronts descendants introduit la notation Q0‑Q3, où Q0 est le LSB, et révèle que le circuit réalise un compteur binaire modulo‑16, parcourant les 16 combinaisons de 0000 à 1111. Le conférencier montre ensuite comment adapter ce compteur pour obtenir un modulo‑10 (0‑9) en détectant la combinaison 1010 (10 décimal) et en utilisant l’entrée de reset (RST) prioritaire d’une bascule, implémentée avec une porte NAND (RST = NAND(Q3, ¬Q2, Q1, ¬Q0)). Cette logique force le compteur à revenir immédiatement à 0000, limitant le comptage à 0‑9. Enfin, il mentionne les limites pratiques des compteurs asynchrones : le retard de propagation s’accumule à chaque étage, réduisant la vitesse maximale et la fiabilité, ce qui justifie l’étude ultérieure des compteurs synchrones. La leçon se conclut par une invitation à la prochaine vidéo.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle leçon sur la logique séquentielle. Aujourd'hui, nous allons voir le compteur asynchrone. Nous avons déjà vu que la bascule JK possède un mode particulier lorsque les deux entrées sont à 1, le mode toggle, où la sortie change d'état à chaque front d'horloge. Nous avons également étudié la bascule T qui reprend ce principe en simplifiant la logique puisqu'elle ne conserve qu'une seule entrée. Une fois activé, il provoque un basculement de la sortie à chaque impulsion d'horloge. L'une des applications les plus répandues de la bascule T est le diviseur de fréquence. Comme son nom l'indique, il s'agit d'un dispositif qui réduit la fréquence d'un signal d'horloge. En pratique, chaque bascule T divise la fréquence par 2 et en les plaçant en série, on obtient une division successive par 2, par 4, par 8, etc. Ce principe simple constitue la base de compteurs asynchrones que nous allons explorer dans cette leçon. Prenons maintenant un circuit logique constitué de 4 bascules T reliées en série. La sortie principale Q de chaque bascule sert d'entrée d'horloge pour la bascule suivante. Toutes les sorties T sont fixées à 1 afin d'activer le mode toggle dans chacune des bascules. La première bascule quant à elle est directement cadencée par le signal d'horloge. Le dispositif ainsi obtenu est un diviseur de fréquence. À chaque passage d'une bascule, la fréquence est réduite de moitié. Nous allons illustrer ce fonctionnement à l'aide d'un chronogramme dans quelques instants. Mais avant cela, il est important de lever une confusion fréquente concernant la dénomination de ce circuit. On l'appelle bien diviseur de fréquence asynchrone. Pourtant, comme vous l'avez remarqué, il existe bel et bien une horloge qui commande la première bascule. Cela pourrait laisser croire qu'il s'agit d'un circuit synchrone. En réalité, la distinction est la suivante: un circuit est dit synchrone lorsque toutes les bascules partagent le même signal d'horloge en parallèle. Il est dit asynchrone lorsque la sortie d'une bascule sert d'horloge à la suivante. Ainsi, même si une horloge existe, elle ne pilote que la première bascule. Les autres bascules changent d'état uniquement en réaction au basculement de la sortie précédente, indépendamment du signal d'horloge global. C'est précisément ce qui caractérise un diviseur de fréquence asynchrone, et par conséquent un compteur asynchrone. Examinons maintenant le chronogramme de notre diviseur de fréquence constitué de 4 bascules T, toutes sensibles au front montant de l'horloge. On représente d'abord le signal d'horloge CLK, puis les différentes sorties successives Q1, Q2, Q3 et Q4. Pour tracer le signal de la sortie Q1, il suffit d'observer le signal d'horloge. Comme toutes les entrées T sont forcées à 1, la bascule fonctionne en mode toggle. Avant le premier front montant, elle reste en mode mémoire et, comme d'habitude, on suppose que son état initial est 0. Au premier front montant, la sortie bascule à 1. Au suivant, elle revient à 0, puis alterne ainsi à chaque impulsion d'horloge. Pour la sortie Q2, on observe cette fois le signal d'horloge de la deuxième bascule, qui n'est autre que la sortie Q1. Là encore, on suppose un état initial de 0. Au premier front montant de Q1, la sortie Q2 passe à 1, puis revient à 0 au front montant suivant, et ainsi de suite. En suivant exactement la même logique, on peut tracer les chronogrammes des sorties Q3 et Q4. En observant le chronogramme, on remarque que la fréquence de la sortie d'une bascule est toujours divisée par 2 par rapport à celle de la bascule précédente. Ainsi, Q1 a une fréquence égale à la moitié de celle de l'horloge. Q2 est encore divisée par 2 par rapport à Q1, et ainsi de suite pour Q3 et Q4. Ce comportement en cascade illustre parfaitement le rôle de ce circuit en tant que diviseur de fréquence, où chaque étage réduit progressivement la fréquence du signal. On peut généraliser ce principe en ajoutant davantage de bascules T en série, chacune réduit la fréquence de moitié par rapport à la sortie précédente. En règle générale, la fréquence de la sortie de la bascule numéro n est égale à la fréquence de l'horloge divisée par 2 à la puissance n. À présent, au lieu de considérer les bascules T actives sur fronts montants, nous allons supposer qu'elles sont sensibles aux fronts descendants, autrement dit, Elle change d'état à chaque fois qu'un front descendant du signal d'horloge est détecté. Dans ce nouveau contexte, nous allons modifier la dénomination des sorties. Elles seront notées Q0, Q1, Q2 et Q3. Ce choix n'est pas arbitraire. Il répond à une convention largement adoptée en électronique numérique, comme on va le voir dans quelques instants. Retraçons maintenant le chronogramme précédent, mais cette fois en tenant compte du front descendant de l'horloge. Autrement dit, les bascules T changent d'état non plus au moment où l'horloge passe de 0 à 1, mais lorsqu'elle passe de 1 à 0. On représente toujours le signal d'horloge CLK, puis les différentes sorties successives Q0, Q1, Q2 et Q3. Comme précédemment, chaque bascule est en mode toggle, donc l'entrée T est fixée à 1, et l'état initial est supposé nul. La différence essentielle est que des transitions de sortie se produisent désormais au front descendant du signal qui commande chaque bascule. Avant le premier front descendant de l'horloge, la bascule reste en mode mémoire. Comme d'habitude, on suppose que sa sortie Q0 est initialement égale à 0. Au premier front descendant de l'horloge, la bascule change d'état et la sortie Q0 passe à 1. Au front descendant suivant, elle bascule de nouveau et revient à 0, puis continue à alterner ainsi à chaque front descendant. Pour la sortie Q1, on suppose également qu'elle démarre à 0. Son signal d'horloge correspond cette fois à la sortie Q0. Au premier front descendant de Q0, la sortie Q1 passe à 1, puis au front descendant suivant, elle revient à 0 et ainsi de suite. En appliquant le même raisonnement, on peut tracer les chronogrammes des sorties Q2 et Q3. On observe alors que chaque sortie bascule à une fréquence réduite de moitié par rapport à la sortie précédente. Ce qui illustre parfaitement le fonctionnement en cascade du diviseur de fréquence. Ce qui est nouveau dans ce chronogramme, c'est qu'il ne montre plus seulement la division de fréquence, mais qu'il illustre clairement une séquence binaire de 4 bits. On observe que les sorties Q0, Q1, Q2 et Q3 évoluent de manière ordonnée. À chaque front descendant, la combinaison des 4 sorties s'incrémente d'une unité. En d'autres termes, le circuit que nous venons d'analyser correspond à un compteur binaire asynchrone modulo 16. Cela signifie qu'il génère une séquence de valeurs binaires allant de 0000 à 1111. Si l'on convertit ces résultats en décimal, on obtient un comptage de 0 à 15. Une fois arrivé à 15, le compteur revient automatiquement à 0 et recommence le cycle. Ce choix de notation s'inscrit dans une pratique courante en électronique numérique. On commence souvent la numérotation des signaux à partir de 0. Dans ce cas, Q0 correspond au LSB ou bit de poids faible et Q3 au MSB ou bit de poids fort. J'ai déjà abordé ce principe dans la série consacrée aux systèmes numériques, ce qui permet de relier naturellement cette explication à ce que vous avez déjà vu. De manière générale, un compteur asynchrone constitué de N bascules peut compter de 0 jusqu'à 2 à la puissance N- 1. Il existe une variante où l'on pourrait économiser une bascule en considérant directement le signal d'horloge comme le bit de poids faible ou LSB. Dans ce cas, on n'utilise que N-1 bascules pour obtenir N signaux. Cependant, cette pratique est rare et déconseillée, car l'horloge est considérée comme un signal externe au circuit logique. Il ne doit pas être assimilé à une sortie de bascule, afin de préserver la cohérence et la fiabilité du compteur. Imaginons maintenant que l'on souhaite réaliser un compteur asynchrone modulo 10, c'est-à-dire un circuit qui compte de 0 à 9, ou de 0000 à 9999. À 1001 en binaire, puis qui recommence. Le principe reste le même que pour le compteur modulo 16. On conserve le circuit à 4 basculetés. La différence est qu'il faut prévoir un mécanisme pour interrompre le comptage dès que la valeur 1010 ou 10 en décimal est atteinte. En pratique, cette interruption se produit tellement rapidement que l'état correspondant à 10 n'est jamais réellement perçu en sortie. On observe donc que le compteur revient directement à 0000 après avoir affiché 1001 ou Pour atteindre cet objectif, on utilise une entrée spéciale disponible dans toutes les bascules appelée RST pour reset, parfois notée CLR ou clear. Cette entrée ne participe pas directement à la logique normale de la bascule, mais elle joue un rôle essentiel. Elle force la bascule à se réinitialiser, c'est-à-dire à ramener sa sortie principale Q à son état initial, généralement 0. Il s'agit d'une entrée prioritaire. Dès qu'elle est activée, La basculerie agit immédiatement sans attendre le prochain front d'horloge. Ainsi, lorsqu'on détecte que le compteur atteint la valeur 1010 ou 10 en décimal, on active immédiatement l'entrée RST. Le circuit est alors réinitialisé et revient à 0000, ce qui permet de limiter le comptage à la plage souhaitée de 0 à 9. Dans notre étude, nous n'allons pas entrer dans les détails de la structure interne de la bascule T lorsqu'elle est équipée de l'entrée RST. Ce qui nous intéresse ici, c'est uniquement son effet observable. Donc, on retiendra simplement que le RST force la sortie à 0, ce qui permet de contrôler ou d'interrompre le comptage au moment voulu. En général, l'entrée RST est conçue pour être active à l'état bas. Cela signifie qu'elle est représentée par un symbole inversé. Concrètement, lorsque cette entrée reçoit un 0 logique, la bascule est immédiatement réinitialisée et sa sortie principale Q est forcée à 0. À l'inverse, lorsqu'elle est à 1 logique, la bascule fonctionne normalement et réagit au front d'horloge. Dans ce cas, il suffit de détecter la combinaison de sorties qui correspond à la valeur 1010 en partant du MSB vers le LSB, c'est-à-dire de Q3 à Q0. Cette combinaison est utilisée pour activer l'entrée RST et réinitialiser le compteur. Pour réaliser cette détection, on combine les états logiques des sorties à l'aide d'une porte NAND. La condition de réinitialisation peut s'écrire sous la forme suivante: RST= NAND Q3, Q2 barre, Q1, Q0 barre. Autrement dit, dès que Q3= 1, Q2= 0, Q1= 1 et Q0= 0, ce qui correspond à 1010 en binaire, la sortie de la NAND revient à 0 et active l'entrée RST. Le compteur est alors immédiatement remis à 0, ce qui permet de limiter le comptage à la plage de 0 à 9. Ainsi, il est possible de réaliser un compteur modulo N, où N peut être n'importe quel entier, et pas seulement une puissance de 2. Le principe reste le même, on utilise un compteur binaire classique, puis on ajoute un mécanisme de réinitialisation via l'entrée RST, qui interrompt le comptage dès que la valeur N est atteinte. Enfin, il faut préciser que dans la présentation des chronogrammes, nous n'avons pas pris en compte le retard de propagation propre aux bascules. Dans nos schémas, les transitions ont été appliquées exactement au moment des fronts, montants ou descendants, ce qui correspond à une vision idéale. En réalité, chaque bascule présente un temps de réponse inévitable. Ce délai peut s'accumuler d'une bascule à l'autre et limiter considérablement la vitesse et la fiabilité des compteurs asynchrones. Nous reviendrons plus en détail sur ce problème ainsi que sur l'intérêt des compteurs synchrones dans la prochaine leçon. Merci pour votre attention et à la vidéo prochaine.
More from Yamossoun

Algorithme de calcule de la racine carrée par dichotomie #dichotomy #squareroot #algorithm

Algorithme d'Euclide pour calculer le PGCD #algorithm #euclid #programming #coding #algorithms








