Un registre n-bits est un circuit séquentiel possédant n entrées I0 … In-1 et n sorties A0 … An-1 ; en entrée un signal supplémentaire Load détermine le comportement du circuit (pour chaque front d'horloge) :
Un registre à décalage (shift register) est capable, comme son nom l'indique, de décaler l'information qu'il contient d'un bit vers la gauche ou vers la droite ; il est alimenté par une entrée SI (Serial Input) et possède une seule sortie SO (Serial Output).
Expliquer le fonctionnement du circuit ci-dessous ; quel est le type de circuit représenté par les rectangles du haut sur la figure ?
Etudier le fonctionnement du registre universel décrit sur la figure suivante ; les bistables D possèdent une entrée supplémentaire Clear pour les réinitialiser à zéro, et le couple de signaux S1 , S0 sert à contrôler le fonctionnement du registre.
Voici une réalisation possible d'une mémoire 1-bit avec une bascule D : il s'agit alors de mémoire statique (SRAM). La bascule possède une entrée de contrôle C, qui autorise ou non la transmission du signal d'entrée D vers la ligne de sortie Q.
Pour écrire dans la mémoire les entrées WR (Write) et CS (Chip Select) valent 1, et le signal D est transmis sur la sortie Q. Inversement si l'un au moins des signaux WR ou CS vaut 0, la valeur en mémoire (signal Q) ne change pas.
En sortie du cicuit on a un pilote de bus à trois états : lorsque CS vaut 0, la ligne Q n'est pas connectée à la sortie OUT.
Etudier le fonctionnement du circuit ci-dessous, qui réalise une RAM 4x1 : quatre adresses possibles, un seul bit en sortie. Quel est le circuit représenté dans le rectangle de gauche ?
L'automate a deux états, 0 et 1 ; il y a trois étiquettes de transitions :
Les transitions étiquetées a sont des boucles ; les transitions étiquetées b (respectivement c) ont pour cible l'état 0 (respectivement 1).
Il suffit de placer quatre registres 1-bit en parallèle, et de connecter l'entrée Load du registre 4-bits aux quatre entrées correspondantes des registres 1-bit. Le double inverseur sur le fil Load est un truc d'électronicien (il paraît qu'un inverseur a aussi le mérite d'amplifier le signal).
Il faut disposer les bistables D en série, on dit aussi en cascade :
En appelant de gauche à droite Q0, Q1, Q2, Q3 les sorties de ces bistables (on a donc par définition SO = Q3 ), les nouvelles valeurs après le front d'horloge sont données par :
Q0' = SI, Q1' = Q0, Q2' = Q1, Q3' = SO' = Q2
Lorsque Load = 0, le circuit fonctionne comme un registre à décalage (voir formules ci-dessus); lorsque Load = 1, le circuit fonctionne comme un registre ordinaire (chargement parallèle) :
Q0' = D0, Q1' = D1, Q2' = D2, Q3' = D3
Les rectangles du haut sont des multiplexeurs 2x1 : si l'adresse S vaut 0 (respectivement 1), alors Q = D0 (respectivement D1). Attention, ne pas confondre la numérotation des signaux à l'intérieur et à l'extérieur du multiplexeur : par exemple le signal externe D0 est connecté à l'entrée D1 du multiplexeur de gauche.
Fonctionnement selon la valeur de S :
Mémoire 4x4 :
Schémas (le premier est de loin le plus intéressant) :
Mémoire 256Kx8 :
Mémoire 64Kx16 :