L'électronique numérique : Les circuits séquentiels - Quiz
Les circuits séquentiels
Les circuits séquentiels sont des circuits numériques dont le fonctionnement dépend non seulement des valeurs présentes sur leurs entrées, mais également de leur état précédent.
Contrairement à un circuit combinatoire, un circuit séquentiel possède donc une forme de mémoire. Il peut conserver une information et l'utiliser pour déterminer son comportement futur.
Cette propriété permet de réaliser des systèmes capables de mémoriser des données, de compter des événements, de suivre une succession d'étapes ou de synchroniser différentes opérations.
Circuit combinatoire et circuit séquentiel
Dans un circuit combinatoire, la sortie dépend uniquement des entrées présentes :
Sortie = fonction des entrées
Dans un circuit séquentiel, la sortie dépend des entrées et de l'état mémorisé :
Sortie = fonction des entrées + état précédent
Le circuit séquentiel doit donc posséder des éléments capables de conserver un état logique.
| Circuit combinatoire | Circuit séquentiel | |
|---|---|---|
| Entrées | Oui | Oui |
| Sorties | Oui | Oui |
| Mémoire | Non | Oui |
| État précédent utilisé | Non | Oui |
| Dépendance au temps | Indirecte | Importante |
L'état d'un circuit
L'état d'un circuit correspond aux informations qu'il conserve à un instant donné.
Pour un circuit très simple, l'état peut être représenté par un seul bit :
- 0 : premier état ;
- 1 : second état.
Un circuit possédant plusieurs éléments de mémoire peut conserver plusieurs bits et donc un grand nombre d'états différents.
Avec n bits de mémoire, il est possible de représenter :
2n
états différents.
La boucle de rétroaction
La mémoire d'un circuit séquentiel repose généralement sur une rétroaction.
Une partie de la sortie du circuit est réinjectée vers son entrée. Le circuit peut ainsi utiliser son propre état actuel pour déterminer son état suivant.
On obtient une structure générale :
Entrées → Logique → Sorties
↑
│
Mémoire
La rétroaction est l'un des éléments fondamentaux permettant au circuit de conserver une information.
Un circuit capable de conserver un bit
Pour mémoriser une information binaire, il faut pouvoir conserver durablement un état logique jusqu'à ce qu'une nouvelle commande provoque son changement.
Un circuit peut ainsi être placé dans l'état 0 ou dans l'état 1, puis conserver cet état même lorsque le signal qui l'a provoqué n'est plus présent.
Ce principe constitue la base des éléments de mémoire utilisés dans les circuits numériques.
Les verrous logiques
Un verrou logique, ou latch, est un élément capable de mémoriser un bit.
Contrairement à une porte logique classique, il ne produit pas simplement une sortie déterminée par les entrées actuelles. Il peut conserver sa sortie lorsque les conditions d'entrée ne demandent pas de changement.
Le verrou constitue ainsi l'un des premiers éléments permettant de construire une véritable mémoire numérique.
Le verrou SR
Le verrou SR est l'une des formes les plus simples de mémoire logique.
Les lettres S et R correspondent généralement à :
- S : Set, qui place la mémoire à 1 ;
- R : Reset, qui place la mémoire à 0.
Le verrou possède une sortie principale Q et généralement sa sortie complémentaire Q̅.
Lorsque la commande Set est activée, le circuit mémorise l'état 1. Lorsque la commande Reset est activée, il mémorise l'état 0.
Lorsque les commandes n'imposent aucun changement, le circuit conserve son état précédent.
La sortie complémentaire
Les éléments de mémoire possèdent souvent deux sorties complémentaires :
Q̅ = NOT(Q)
Lorsque Q = 1, la sortie complémentaire vaut 0. Lorsque Q = 0, elle vaut 1.
Ces deux sorties permettent d'utiliser directement l'information mémorisée et son complément dans différentes parties d'un circuit.
La condition interdite du verrou SR
Selon la technologie utilisée pour réaliser le verrou SR, certaines combinaisons simultanées des entrées peuvent produire un état interdit.
Cette situation apparaît lorsque les commandes Set et Reset sont activées en même temps alors que le fonctionnement du circuit ne définit pas correctement l'état qui doit être mémorisé.
Les architectures suivantes ont notamment été conçues pour éviter cette ambiguïté et permettre un contrôle plus précis de la mémoire.
Le verrou D
Le verrou D simplifie le fonctionnement du verrou SR en utilisant une seule entrée de donnée, appelée D.
Une seconde entrée, souvent appelée Enable, détermine lorsque la donnée peut être prise en compte.
Lorsque le verrou est actif, la sortie suit la donnée présente sur D. Lorsqu'il n'est plus actif, la dernière valeur est conservée.
Le verrou D permet donc de mémoriser directement un bit sans avoir à gérer séparément les commandes Set et Reset.
L'horloge
De nombreux circuits séquentiels utilisent une horloge, ou clock, pour organiser les changements d'état.
L'horloge est un signal périodique qui alterne entre les niveaux logiques 0 et 1.
Elle fournit un rythme commun auquel différents éléments du circuit peuvent synchroniser leurs changements.
On peut représenter une horloge par une succession régulière :
0 → 1 → 0 → 1 → 0 → 1 → ...
La fréquence de l'horloge indique le nombre de cycles effectués chaque seconde.
Les fronts de l'horloge
Un signal d'horloge possède deux changements principaux :
- le front montant : passage de 0 vers 1 ;
- le front descendant : passage de 1 vers 0.
Certains circuits séquentiels réagissent au front montant, d'autres au front descendant.
Cela permet de déclencher une modification d'état à un instant précis du cycle d'horloge.
Les bascules
Une bascule, ou flip-flop, est un élément de mémoire conçu pour fonctionner de manière synchronisée avec une horloge.
Elle peut mémoriser un bit et ne modifier son état qu'à un moment déterminé par le signal d'horloge.
Les bascules constituent des éléments fondamentaux des circuits séquentiels synchrones.
La bascule D
La bascule D possède une entrée de donnée D et une entrée d'horloge.
Lors du front actif de l'horloge, la valeur présente sur D est mémorisée dans la bascule.
La sortie Q prend alors cette valeur et la conserve jusqu'au prochain événement de mémorisation.
On peut résumer son fonctionnement par :
Qsuivant = D
La bascule D est particulièrement utilisée pour stocker et transférer des données synchronisées.
La bascule JK
La bascule JK possède deux entrées principales, J et K, ainsi qu'une entrée d'horloge.
Selon les valeurs de J et K, la bascule peut conserver son état, le mettre à 1, le mettre à 0 ou l'inverser.
| J | K | État suivant |
|---|---|---|
| 0 | 0 | Conservation |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | Inversion |
Cette capacité d'inversion rend la bascule JK particulièrement intéressante pour certains circuits de comptage.
La bascule T
La bascule T possède une entrée T.
Lorsque T = 0, elle conserve son état.
Lorsque T = 1, elle inverse son état à chaque événement d'horloge.
| T | État suivant |
|---|---|
| 0 | Q |
| 1 | Q̅ |
Cette fonction d'inversion répétée est particulièrement adaptée à la réalisation de compteurs et de diviseurs de fréquence.
Les entrées asynchrones
Certaines bascules possèdent des entrées capables de modifier directement leur état sans attendre le prochain front d'horloge.
On trouve notamment des entrées appelées Preset et Clear, selon les composants.
Le Preset permet généralement de forcer la sortie à 1, tandis que le Clear permet de la forcer à 0.
Ces commandes sont particulièrement utiles pour initialiser un circuit dans un état connu lors de sa mise sous tension.
Les circuits synchrones
Dans un circuit séquentiel synchrone, les changements d'état sont organisés par une horloge commune.
Les différents éléments du circuit évoluent ainsi selon un rythme défini.
Cette organisation facilite la conception de systèmes complexes car les changements d'état peuvent être coordonnés avec précision.
Les circuits asynchrones
Dans un circuit séquentiel asynchrone, les changements d'état ne sont pas nécessairement commandés par une horloge commune.
Le circuit peut réagir directement aux modifications de ses entrées ou de ses états internes.
Ces circuits peuvent être rapides et économes dans certaines applications, mais leur conception est plus délicate car les temps de propagation et les changements d'état doivent être soigneusement maîtrisés.
Le registre
Plusieurs éléments de mémoire peuvent être associés pour mémoriser plusieurs bits simultanément. L'ensemble forme un registre.
Un registre de 8 bits peut par exemple conserver une valeur composée de huit bits :
10110110
Chaque bit est mémorisé par un élément de stockage, généralement une bascule.
Les registres peuvent également permettre de transférer, décaler ou charger des données selon leur architecture.
Le décalage des données
Lorsqu'un registre permet de déplacer les bits d'une position à une autre à chaque impulsion d'horloge, il constitue un registre à décalage.
Par exemple, un registre peut faire évoluer :
1011 → 0101 → 0010 → 0001
À chaque impulsion d'horloge, les bits sont déplacés selon la direction prévue par le circuit.
Les registres à décalage peuvent servir à transférer des données, convertir une transmission série en données parallèles ou effectuer certaines opérations sur des séquences binaires.
Le compteur
Un compteur numérique est un circuit séquentiel capable de modifier son état selon une succession prédéterminée à chaque impulsion d'horloge.
Un compteur binaire peut par exemple parcourir :
000 → 001 → 010 → 011 → 100 → 101 → 110 → 111 → 000
Chaque impulsion d'horloge provoque le passage à l'état suivant.
Un compteur à n bits peut représenter jusqu'à 2n états différents avant de revenir au premier état dans un compteur binaire classique.
La machine à états
Un système séquentiel peut posséder un nombre limité d'états et évoluer de l'un à l'autre selon les entrées et les événements d'horloge. On parle alors de machine à états finis.
Chaque état représente une situation particulière du système.
Les entrées déterminent les conditions permettant de passer d'un état à un autre, tandis que la logique du circuit détermine les sorties associées aux états.
Une machine peut par exemple posséder les états :
- attente ;
- démarrage ;
- fonctionnement ;
- arrêt.
Elle change d'état lorsque certaines conditions sont remplies.
Le diagramme d'états
Le fonctionnement d'une machine à états peut être représenté graphiquement par un diagramme d'états.
Chaque état est représenté par un élément graphique, généralement un cercle ou un rectangle, et les transitions entre les états sont représentées par des flèches.
Une condition peut être associée à chaque transition pour indiquer dans quelle situation le changement d'état doit avoir lieu.
La logique de prochain état
Dans un circuit séquentiel, il est utile de distinguer l'état actuel de l'état suivant.
L'état actuel est conservé par les éléments de mémoire. La logique combinatoire analyse cet état ainsi que les entrées pour déterminer l'état qui devra être mémorisé au prochain événement d'horloge.
On retrouve donc généralement deux parties :
- une logique combinatoire qui calcule les prochaines valeurs ;
- une mémoire qui conserve l'état.
La structure générale d'un circuit séquentiel synchrone
Un circuit séquentiel synchrone peut être représenté par trois éléments principaux :
Entrées → Logique combinatoire → Mémoire → Sorties
La mémoire renvoie également son état vers la logique combinatoire afin que celle-ci puisse calculer l'état suivant.
L'horloge commande le moment auquel le nouvel état est mémorisé.
Les temps de fonctionnement
Les circuits séquentiels doivent respecter certaines contraintes temporelles pour fonctionner correctement.
La donnée appliquée à l'entrée d'une bascule doit généralement rester stable pendant une certaine durée avant et après le front d'horloge.
On parle notamment de temps de setup et de temps de hold.
Si ces conditions ne sont pas respectées, la bascule peut ne pas mémoriser correctement la donnée.
La métastabilité
Lorsqu'une entrée change trop près du moment où une bascule doit l'échantillonner, son état interne peut devenir temporairement indéterminé. Ce phénomène est appelé métastabilité.
La sortie peut alors mettre un certain temps à atteindre un niveau logique stable.
Les systèmes numériques utilisent différentes techniques pour réduire le risque de propagation de cette situation, notamment lorsque des signaux provenant de domaines d'horloge différents doivent être transmis.
Les applications des circuits séquentiels
Les circuits séquentiels sont indispensables dès qu'un système doit conserver une information ou suivre une évolution dans le temps.
Ils sont notamment utilisés dans :
- les mémoires numériques ;
- les registres des processeurs ;
- les compteurs ;
- les horloges numériques ;
- les temporisateurs ;
- les contrôleurs ;
- les machines à états ;
- les systèmes de communication numérique ;
- les microprocesseurs et microcontrôleurs.
Les circuits séquentiels permettent ainsi aux systèmes numériques de conserver leur état, de suivre une succession d'étapes et de faire évoluer leur fonctionnement au cours du temps.