Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 7

Résume logique séquentielle

Les circuits combinatoires couverts précédemment (par exemple, les codeurs, les décodeurs, les
multiplexeurs, les générateurs/vérificateurs de parité, etc.) présentaient la propriété d'une
immédiateté de l'entrée à la sortie. Cela signifie que lorsque des données d'entrée sont appliquées à
un circuit combinatoire, la sortie réagit immédiatement. Cependant, les circuits combinatoires
manquent d'une caractéristique très importante : ils ne peuvent pas stocker d'informations. Un
dispositif numérique qui ne peut pas stocker d'informations n'est pas très intéressant, en pratique.

Pour fournir une "mémoire" aux circuits, il faut créer des dispositifs capables de saisir des données à
un moment précis. Le domaine de l'électronique numérique consacré à ce sujet est appelé logique
séquentielle. Cette branche de l'électronique est appelée séquentielle car pour que les bits de
données soient stockés et récupérés, une série d'étapes doit se produire dans un ordre particulier.
Par exemple, un ensemble typique d'étapes pourrait impliquer l'envoi d'abord une impulsion
d'activation à un dispositif de stockage, puis le chargement d'un groupe de bits de données en une
seule fois (chargement parallèle), ou peut-être le chargement d'un groupe de bits de données de
manière sérielle - ce qui nécessite un certain nombre d'étapes individuelles. À un moment ultérieur,
les bits de données peuvent avoir besoin d'être récupérés en appliquant d'abord une impulsion de
contrôle au dispositif de stockage. Une série d'autres impulsions peut être nécessaire pour extraire
les bits du dispositif de stockage.

Pour faire avancer les bits à travers les circuits séquentiels, il est généralement nécessaire d'avoir un
générateur d'horloge. Le générateur d'horloge est similaire au cœur humain. Il génère une série de
tensions élevées et basses (analogues à une série de pressions élevées et basses lorsque le cœur
pompe le sang) qui peuvent mettre les bits en action. L'horloge sert également de base de temps sur
laquelle toutes les actions séquentielles peuvent être référencées. Les générateurs d'horloge seront
discutés en détail plus tard. Maintenant, examinons le dispositif séquentiel le plus élémentaire, le
flip-flop SR.

12.6.1 Bascules SR

Le circuit de stockage de données le plus élémentaire est la bascule SR (set-reset), également


appelée verrou transparent. Il existe deux types de base de bascules SR : la bascule SR à NOR croisés
et la bascule SR à AND croisés.

Voir image sur telephone

Tout d'abord, considérons la bascule SR à NOR croisés illustrée ci-dessus. Au premier abord, il semble
impossible de comprendre ce que fait la bascule SR à NOR croisés avec seulement deux tensions
d'entrée, car chaque entrée des portes NOR dépend des sorties, et quelles sont de toute façon ces
sorties ? (Pour l'instant, supposons que Q et Q' ne soient pas des compléments mais des variables
distinctes - vous pouvez les appeler X et Y si vous le souhaitez). Eh bien, tout d'abord, vous savez
qu'une porte NOR produira une sortie haute (logique 1) uniquement si les deux entrées sont basses
(logique 0). À partir de cela, vous pouvez déduire que si S = 1 et R = 0, Q doit être 1 et Q' doit être 0,
indépendamment des sorties - on appelle cela l'état de mise. De même, par un raisonnement
similaire, nous pouvons déduire que si S = 0 et R = 1, Q doit être 0 et Q' doit être 1 - on appelle cela
l'état de réinitialisation.

Mais maintenant, que se passe-t-il lorsque R = 0 et S = 0 ? Pouvez-vous prédire les sorties


uniquement à partir des niveaux d'entrée ? Non ! Il est impossible de prédire les sorties car les
sorties sont essentielles pour prédire les sorties - c'est un "paradoxe". Cependant, si vous connaissez
les états des sorties à l'avance, vous pouvez comprendre les choses. Par exemple, si vous configurez
d'abord la bascule (S = 1, R = 0, Q = 1, Q' = 0) et que vous appliquez ensuite S = 0, R = 0, la bascule
restera en état de mise (porte supérieure : S = 0, Q = 1 → Q' = 0 ; porte inférieure : R = 0, Q' = 0 → Q =
1). De même, si vous démarrez en mode de réinitialisation (S = 0, R = 1, Q = 0, Q' = 0) et que vous
appliquez ensuite S = 0, R = 0, la bascule reste en mode de réinitialisation (porte supérieure : S = 0, Q
= 0 → Q' = 1 ; porte inférieure : R = 0, Q' = 1 → Q = 0). En d'autres termes, la bascule se souvient, ou
se verrouille sur, l'état précédent des sorties même lorsque les deux entrées passent à l'état bas (0) -
on parle de l'état de maintien.

Le dernier choix que vous avez est S = 1, R = 1. Ici, il est facile de prédire ce qui se passera car vous
savez que tant qu'il y a au moins un niveau haut (1) appliqué à l'entrée de la porte NOR, la sortie sera
toujours 0. Par conséquent, Q = 0 et Q' = 0. Maintenant, il y a deux problèmes fondamentaux avec
l'état S = 1, R = 1. Premièrement, pourquoi voudriez-vous mettre et réinitialiser en même temps ?
Deuxièmement, lorsque vous revenez à l'état de maintien à partir de S = 1, R = 1, vous obtenez un
résultat imprévisible, à moins que vous ne sachiez quelle entrée est revenue à l'état bas en dernier.
Pourquoi ? Lorsque les entrées sont ramenées à la position de maintien (R = 0, S = 0, Q = 0, Q' = 0),
les deux portes NOR veulent être à 1 (elles veulent être maintenues). Mais disons que la sortie d'une
des portes NOR change en 1 une fraction de seconde avant l'autre. Dans ce cas, la bascule la plus
lente ne produira pas un 1 comme prévu mais produira plutôt un 0. C'est un exemple classique d'une
condition de concurrence, où la porte la plus lente perd. Mais quelle bascule est la plus lente ? Cet
état instable et imprévisible ne peut être évité et n'est tout simplement pas utilisé.

La bascule SRà NOR croisés fournit la même fonction de base que la bascule SR à NOR, mais il existe
une différence fondamentale. Ses états de maintien et indéterminés sont inversés. Cela se produit
parce que, contrairement à la porte NOR, qui ne produit une sortie basse que lorsque ses deux
entrées sont identiques, la porte NAND ne produit une sortie haute que lorsque ses deux entrées
sont identiques. Cela signifie que l'état de maintien pour la bascule SR à NAND croisés est S = 1, R = 1,
tandis que l'état indéterminé est S = 0, R = 0.

Voici deux applications simples pour les bascules SR :

1. Mémoire à un bit : Les bascules SR peuvent être utilisées pour construire une mémoire à un bit. En
connectant plusieurs bascules SR en série, vous pouvez créer une mémoire capable de stocker une
séquence de bits. Chaque bascule SR stocke un seul bit, et en utilisant des signaux de commande
appropriés, vous pouvez lire, écrire et mettre à jour les bits stockés dans la mémoire.
2. Compteur binaire : Les bascules SR peuvent également être utilisées pour construire des
compteurs binaires. En utilisant une combinaison appropriée de bascules SR, vous pouvez créer un
compteur qui peut compter de 0 à une valeur maximale déterminée par le nombre de bascules
utilisées. Les signaux d'horloge sont utilisés pour synchroniser les bascules et obtenir une séquence
de comptage correcte.

-Bascule SR à déclenchement de niveau (Le début des bascules à horloge)

Il serait maintenant intéressant de rendre la bascule SR synchrone, c'est-à-dire de rendre les entrées
S et R activées ou désactivées par une impulsion de contrôle, telle qu'une horloge. Les entrées ne
sont échantillonnées que lorsque l'impulsion d'horloge arrive. Les bascules qui répondent de cette
manière sont appelées bascules synchrones ou bascules à horloge (par opposition aux bascules
asynchrones précédentes). Pour transformer la bascule SR précédente en un dispositif synchrone ou
à horloge, il suffit de connecter des portes d'activation aux entrées de la bascule, comme indiqué
dans la figure 12.72. (Ici, l'arrangement croisé NAND est utilisé, bien qu'un arrangement croisé NOR
puisse également être utilisé.) Les entrées S et R ne sont activées que lorsque l'horloge est à l'état
haut. Lorsque l'horloge est à l'état bas, les entrées sont désactivées et la bascule est mise en mode
de maintien. Le tableau de vérité et le chronogramme ci-dessous illustrent le fonctionnement de ce
dispositif.

Voir image

Bascules SR à déclenchement sur front

La bascule SR à déclenchement de niveau précédente présente une caractéristique gênante : ses


entrées S et R doivent être maintenues dans l'état d'entrée souhaité (positionnement,
réinitialisation, pas de changement) pendant toute la durée pendant laquelle le signal d'horloge
active la bascule. Cependant, avec une légère modification, vous pouvez rendre la bascule à
déclenchement de niveau plus flexible (en termes de contrôle de synchronisation) en la transformant
en une bascule à déclenchement sur front. Une bascule à déclenchement sur front échantillonne les
entrées uniquement lors d'un front montant ou descendant de l'horloge (↑ = front montant, ↓ =
front descendant). Toutes les modifications qui se produisent avant ou après le front de l'horloge
sont ignorées - la bascule est mise en mode de maintien. Pour créer une bascule à déclenchement
sur front, introduisez un réseau générateur d'impulsion d'horloge à déclenchement de niveau positif
ou négatif dans la bascule à déclenchement de niveau précédente, comme le montre la Figure 12.73.

Dans un circuit générateur à déclenchement de niveau positif, une porte NON avec un retard de
propagation est ajoutée. Étant donné que le signal d'horloge est retardé par l'inverseur, la sortie de
la porte ET ne fournira pas un niveau bas (comme ce serait le cas sans retard de propagation), mais
fournira une impulsion qui commence au front montant du signal d'horloge et dure pendant une
durée égale au retard de propagation de la porte NON. C'est cette impulsion qui est utilisée pour
synchroniser la bascule. Dans le réseau générateur à déclenchement de niveau négatif, le signal
d'horloge est d'abord inversé, puis appliqué à travers le même réseau NON/ET. L'impulsion
commence au front descendant de l'horloge et dure pendant une durée égale au retard de
propagation de la porte NON. Le retard de propagation est généralement si faible (en nanosecondes)
que l'impulsion est essentiellement un "front".
Voir image

Bascules SR déclenchées par impulsion (bascules maître-esclave)

Une bascule SR déclenchée par impulsion est une bascule basée sur des niveaux d'horloge ;
cependant, pour que tout changement de sortie se produise, les niveaux haut et bas de l'horloge
doivent monter et descendre.

Les bascules déclenchées par impulsion sont également appelées bascules maître-esclave ; le maître
accepte les entrées initiales, puis "frappe" l'esclave avec sa sortie lorsque le flanc négatif de l'horloge
arrive. Une autre analogie souvent utilisée est de dire que lors du flanc positif, le maître est armé
(comme un pistolet), et lors du flanc négatif de l'horloge, l'esclave est déclenché. La figure 12.74
montre une bascule SR à NAND croisé simplifiée déclenchée par impulsion.

Voir image

Le maître est simplement une bascule SR horlogée qui est activée pendant l'impulsion haute de
l'horloge et produit les sorties Y et Y' (soit l'ensemble, la réinitialisation ou aucun changement).
L'esclave est similaire au maître, mais il est activé uniquement pendant l'impulsion négative de
l'horloge (grâce à l'inverseur). Dès que l'esclave est activé, il utilise les sorties Y et Y' du maître
comme entrées, puis produit le résultat final en sortie. Remarquez les entrées de préconfiguration
(PRES) et de réinitialisation (CLR). Ce sont des entrées asynchrones. Contrairement aux entrées
synchrones S et R, les entrées asynchrones ignorent l'horloge et réinitialisent (également appelé
réinitialisation asynchrone) ou préconfigurent (également appelé préréglage asynchrone) la bascule.
Lorsque CLR est haut et PRES est bas, vous obtenez une réinitialisation asynchrone, Q = 1, Q' = 0,
indépendamment des entrées CLK, S et R. Ces entrées actives à l'état bas sont généralement
maintenues à l'état haut pour les rendre inactives. Comme vous le verrez plus tard lorsque je parlerai
des applications des bascules, la capacité à appliquer des réinitialisations et des préréglages
asynchrones est souvent utilisée pour effacer des registres entiers composés d'un ensemble de
bascules.

12.6.3 Bascules D

Une bascule D (ou bascule de données) est un dispositif à une seule entrée. C'est essentiellement
une bascule SR, où S est remplacé par D et R est remplacé par D' (D inversé) - l'entrée inversée est
prélevée à partir de l'entrée D à travers un inverseur pour l'entrée R, comme illustré ci-dessous.
L'inverseur garantit que l'état indéterminé (course, ou état non utilisé, S = 1, R = 1) ne se produit
jamais. En même temps, l'inverseur élimine l'état de maintien, de sorte qu'il ne reste que les
conditions de configuration (D = 1) et de réinitialisation (D = 0). Le circuit ci-dessous représente une
bascule D déclenchée par niveau.

Voir image

Remarquez les lettres minuscules l et h dans la table de vérité de cette figure. La lettre h est similaire
à H pour un niveau de tension élevé, et la lettre l est similaire à L pour un niveau de tension bas ;
cependant, il y a une condition supplémentaire qui doit être remplie pour que la sortie de la bascule
fasse ce que la table de vérité indique. La condition supplémentaire est que l'entrée D doit rester
fixée à un niveau élevé (ou bas) pendant au moins un temps de configuration (ts) avant le front
montant de l'horloge. Cette condition découle des retards de propagation réels présents dans les
circuits intégrés de bascules ; si vous essayez de faire changer d'état la bascule trop rapidement (sans
lui laisser le temps de déplacer les électrons), vous pouvez obtenir des lectures de sortie incorrectes.
Pour le 7474, le temps de configuration est de 20 ns. Par conséquent, lors de l'utilisation de ce circuit
intégré, vous ne devez pas appliquer d'impulsions d'entrée qui se situent dans la limite des 20 ns.
D'autres bascules auront des temps de configuration différents, vous devrez donc consulter les fiches
techniques du fabricant. Je discuterai du temps de configuration et de certains autres paramètres de
synchronisation des bascules plus en détail à la fin de cette section.

Les bascules D sont parfois disponibles dans la variante déclenchée par impulsion (maître-esclave).
Rappelez-vous qu'une bascule déclenchée par impulsion nécessite une impulsion d'horloge complète
avant que les sorties ne reflètent ce qui est appliqué à l'entrée (dans ce cas, l'entrée D). La figure ci-
dessous montre la structure de base d'une bascule D déclenchée par impulsion. Elle est presque
identique à la bascule SR déclenchée par impulsion, à l'exception de l'ajout d'un inverseur à l'entrée
du maître.

12.6.6 Bascules JK

Enfin, nous arrivons à la dernière des bascules, la bascule JK. Une bascule JK ressemble à une bascule
SR, où J agit comme S et K agit comme R. De même, elle a un mode d'ensemble (J = 1, K = 0), un
mode de réinitialisation (J = 0, K = 1) et un mode de maintien (J = 0, K = 0). Cependant, contrairement
à la bascule SR, qui a un mode indéterminé lorsque S = 1, R = 1, la bascule JK a un mode de
basculement lorsque J = 1, K = 1. Le basculement signifie que les sorties Q et Q' passent à leurs états
opposés à chaque front actif de l'horloge. Pour créer une bascule JK, modifiez le circuit logique
interne de la bascule SR pour inclure deux lignes de rétroaction croisée entre la sortie et l'entrée.
Cependant, cette modification signifie que la bascule JK ne peut pas être déclenchée par niveau ; elle
ne peut être déclenchée que par front montant ou par impulsion. La figure 12.85 montre comment
vous pouvez créer des bascules déclenchées par front montant basées sur la bascule SR déclenchée
par front montant et basée sur des portes NAND croisées.

Voir image

Il existe également des bascules déclenchées par impulsion (maître-esclave), bien qu'elles ne soient
pas aussi populaires que les bascules JK déclenchées par front montant, en raison d'un effet
indésirable qui se produit, et dont je vais parler dans un instant. Ces dispositifs sont similaires aux
bascules SR déclenchées par impulsion, à l'exception des connexions de rétroaction croisée
distinctives JK à partir des sorties Q et Q' de l'esclave vers les portes d'entrée du maître. La figure ci-
dessous montre une bascule JK simple déclenchée par impulsion à base de portes NAND .

Voir image

Compteur à cascade (compteur asynchrone)

Un compteur simple, appelé compteur à cascade MOD-16 (ou compteur asynchrone), peut être
construit en reliant quatre bascules JK ensemble, comme le montre la figure 12.89. (MOD-16, ou
modulo 16, signifie que le compteur a 16 états binaires.) Cela signifie qu'il peut compter de 0 à 15 - le
zéro est l'un des comptes. Le compteur à cascade ci-dessus peut également être utilisé comme un
compteur de division par 2, 4, 8, 16. Ici, vous remplacez simplement le signal d'horloge par n'importe
quel signal d'entrée souhaité que vous souhaitez diviser en fréquence. Pour obtenir un compteur de
division par 2, vous avez seulement besoin de la première bascule ; pour obtenir un compteur de
division par 8, vous avez besoin des trois premières bascules.

Des compteurs à cascade avec des valeurs MOD plus élevées peuvent être construits en ajoutant plus
de bascules au compteur MOD-16. Mais comment créez-vous un compteur à cascade avec une valeur
MOD autre que 2, 4, 8, 16, etc.? Par exemple, disons que vous voulez créer un compteur à cascade
MOD-10 (0 à 9). De même, que faites-vous si vous souhaitez arrêter le compteur après un compte
particulier et ensuite déclencher un dispositif, comme une LED ou un buzzer? La figure ci-dessous
montre un tel circuit.

Voir image

Pour créer un compteur MOD-10, il suffit de commencer avec le compteur MOD-16 et de connecter
les sorties Q0 et Q3 à une porte NAND, comme indiqué dans la figure. Lorsque le compteur atteint 9
(1001), à la fois Q0 et Q3 deviennent hauts, ce qui fait que la sortie de la porte NAND devient basse.
La porte NAND draine alors du courant, allumant la LED, tout en désactivant la porte d'horloge et en
arrêtant le comptage. (Lorsque la porte NAND est haute, il n'y a aucune différence de potentiel à
travers la LED pour l'allumer.) Pour démarrer un nouveau comptage, la ligne de remise à zéro actif-
bas est momentanément mise à bas. Maintenant, pour créer un compteur MOD-15, vous
appliqueriez la même approche de base utilisée à gauche, mais vous connecteriez Q1, Q2 et Q3 à une
porte NAND à trois entrées.

Voir image

Compteur synchrone

Il y a un problème avec le compteur à cascade dont nous avons discuté précédemment. Les étages de
sortie des bascules plus éloignées (à partir de la première bascule horlogée) mettent du temps à
répondre aux changements qui se produisent en raison du signal d'horloge initial. Cela est dû au
retard de propagation interne qui se produit au sein d'une bascule donnée. Une bascule standard TTL
peut avoir un retard de propagation interne de 30 ns. Si vous reliez quatre bascules pour créer un
compteur MOD-16, le retard de propagation cumulatif au niveau de la sortie de plus haut ordre sera
de 120 ns. Lorsqu'ils sont utilisés dans des systèmes synchrones de haute précision, de tels retards
importants peuvent entraîner des problèmes de synchronisation.

Pour éviter les retards importants, vous pouvez créer ce qu'on appelle un compteur synchrone. Les
compteurs synchrones, contrairement aux compteurs à cascade (asynchrones), contiennent des
bascules dont les entrées d'horloge sont pilotées simultanément par une ligne d'horloge commune.
Cela signifie que les transitions de sortie pour chaque bascule se produiront en même temps.
Maintenant, contrairement au compteur à cascade, vous devez utiliser un circuit logique
supplémentaire placé entre les différentes entrées et sorties des bascules pour obtenir la forme
d'onde de comptage souhaitée. Par exemple, pour créer un compteur synchrone MOD-16 à 4 bits, il
faut ajouter deux portes ET supplémentaires, comme indiqué ci-dessous. Les portes ET agissent pour
maintenir une bascule en mode maintien (si les deux entrées de la porte sont basses) ou en mode
basculement (si les deux entrées de la porte sont hautes). Ainsi, pendant le comptage de 0 à 1, la
première bascule est en mode basculement (et le reste toujours) ; toutes les autres sont maintenues
en mode maintien. Lorsqu'il est temps pour le comptage de 2 à 4, les première et deuxième bascules
sont placées en mode basculement ; les deux dernières sont maintenues en mode maintien. Lorsqu'il
est temps pour le comptage de 4 à 8, la première porte ET est activée, ce qui permet à la troisième
bascule de basculer. Lorsqu'il est temps pour le comptage de 8 à 15, la deuxième porte ET est
activée, ce qui permet à la dernière bascule de basculer. Vous pouvez étudier le circuit et les formes
d'onde de synchronisation pour comprendre les détails. Les compteurs à cascade (asynchrones) et
synchrones discutés jusqu'à présent sont simples mais rarement utilisés dans la pratique. En général,
si vous avez besoin d'un compteur, qu'il soit à cascade ou synchrone, vous achetez un circuit intégré
de compteur. Ces circuits intégrés sont souvent des compteurs MOD-16 ou MOD-10 et sont
généralement livrés avec de nombreuses fonctionnalités supplémentaires. Par exemple, de
nombreux circuits intégrés vous permettent de prérégler le comptage sur un nombre souhaité via
des lignes d'entrée parallèles. D'autres vous permettent de compter vers le haut ou vers le bas grâce
à des entrées de contrôle. Je parlerai en détail des circuits intégrés de compteur dans un instant.

Vous aimerez peut-être aussi