Registre à décalage
Le registre à décalage est un autre type de circuit logique séquentiel utilisé pour le stockage ou le transfert de données binaires.
Ce dispositif séquentiel charge les données présentes sur ses entrées puis les déplace ou les “décale” vers sa sortie à chaque cycle d’horloge, d’où le nom de registre à décalage.
Un registre à décalage se compose essentiellement de plusieurs bascules de données de type “D”, une pour chaque bit de données, soit un “0” logique soit un “1”, connectées ensemble dans une configuration série en chaîne, de sorte que la sortie d’une bascule de données devient l’entrée de la bascule suivante, et ainsi de suite.
Les bits de données peuvent être introduits ou extraits d’un registre à décalage de manière sérielle, c’est-à-dire un après l’autre, venant de la gauche ou de la droite, ou tous ensemble en configuration parallèle.
Le nombre de bascules de données individuelles nécessaires pour constituer un seul dispositif de registre à décalage est généralement déterminé par le nombre de bits à stocker, le plus commun étant 8 bits (un octet) construit à partir de huit bascules de données individuelles.
Les registres à décalage sont utilisés pour le stockage de données ou pour le déplacement de données et sont donc couramment utilisés dans les calculatrices ou les ordinateurs pour stocker des données telles que deux nombres binaires avant qu’ils ne soient additionnés, ou pour convertir les données d’un format sériel à parallèle ou vice versa. Les bascules de données individuelles qui composent un registre à décalage sont toutes entraînées par un signal d’horloge commun ( Clk ) les rendant des dispositifs synchrones.
Les circuits intégrés de registre à décalage sont généralement dotés d’une connexion de réinitialisation ou de mise à zéro afin qu’ils puissent être “CONFIGURÉS” ou “RÉINITIALISÉS” selon les besoins. En général, les registres à décalage fonctionnent selon l’un des quatre modes différents, le mouvement de base des données à travers un registre à décalage étant :
- Entrée série vers sortie parallèle (SIPO) – le registre est chargé avec des données sérielles, un bit à la fois, et les données stockées sont disponibles à la sortie sous forme parallèle.
- Entrée série vers sortie série (SISO) – les données sont déplacées séquentiellement “DANS” et “HORS” du registre, un bit à la fois dans les directions gauche ou droite sous contrôle d’horloge.
- Entrée parallèle vers sortie série (PISO) – les données parallèles sont chargées dans le registre simultanément et sont extraites du registre de manière sérielle, un bit à la fois sous contrôle d’horloge.
- Entrée parallèle vers sortie parallèle (PIPO) – les données parallèles sont chargées simultanément dans le registre, et transférées ensemble à leurs sorties respectives par la même impulsion d’horloge.
L’effet du mouvement des données de la gauche vers la droite à travers un registre à décalage peut être présenté graphiquement comme suit :
De plus, le mouvement directionnel des données à travers un registre à décalage peut être soit vers la gauche (décalage à gauche), soit vers la droite (décalage à droite), soit vers la gauche en entrée mais vers la droite en sortie (rotation), ou en décalage à la fois à gauche et à droite dans le même registre, ce qui le rend bidirectionnel. Dans ce tutoriel, on suppose que toutes les données se déplacent vers la droite (décalage à droite).
Registre à décalage Entrée série vers sortie parallèle (SIPO)
Registre à décalage 4 bits Entrée série vers sortie parallèle
L’opération est la suivante. Supposons que toutes les bascules ( FFA à FFD ) aient été juste RÉINITIALISÉES ( entrée de MISE À ZÉRO ) et que toutes les sorties QA à QD soient à un niveau logique “0”, c’est-à-dire, aucune sortie de données parallèle.
Si un “1” logique est connecté à la broche d’entrée DATA de FFA, alors lors de la première impulsion d’horloge, la sortie de FFA et donc le résultat QA seront réglés à “1” logique avec toutes les autres sorties restant encore à “0” logique. Supposons maintenant que la broche d’entrée DATA de FFA soit à nouveau à “0” logique, nous donnant une impulsion de données ou 0-1-0.
La deuxième impulsion d’horloge changera la sortie de FFA à “0” logique et la sortie de FFB et QB à “1” logique car son entrée D a maintenant le niveau “1” logique de QA. Le “1” logique s’est maintenant déplacé ou a été “décalé” d’un cran vers la droite dans le registre, car il se trouve maintenant à QA.
Lorsque la troisième impulsion d’horloge arrive, cette valeur “1” logique se déplace vers la sortie de FFC ( QC ) et ainsi de suite jusqu’à l’arrivée de la cinquième impulsion d’horloge qui remet toutes les sorties QA à QD à nouveau à “0” logique car l’entrée de FFA est restée constante à “0” logique.
L’effet de chaque impulsion d’horloge est de décaler le contenu des données de chaque étape d’un cran vers la droite, ce qui est montré dans le tableau suivant jusqu’à ce que la valeur complète des données 0-0-0-1 soit stockée dans le registre. Cette valeur de données peut maintenant être lue directement à partir des sorties de QA à QD.
Ensuite, les données ont été converties d’un signal d’entrée de données sériel à une sortie de données parallèle. Le tableau de vérité et les formes d’onde suivantes montrent la propagation de “1” logique à travers le registre de gauche à droite comme suit.
Mouvement de données de base à travers un registre à décalage
Numéro d’impulsion d’horloge | QA | QB | QC | QD |
0 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
5 | 0 | 0 | 0 | 0 |
Notez qu’après la quatrième impulsion d’horloge, les 4 bits de données ( 0-0-0-1 ) sont stockés dans le registre et y resteront tant que l’horloge du registre a été arrêtée. En pratique, les données d’entrée du registre peuvent consister en diverses combinaisons de “1” et “0” logiques. Les circuits intégrés SIPO disponibles comprennent le standard 8 bits 74LS164 ou le 74LS594.
Registre à décalage Entrée série vers sortie série (SISO)
Ce registre à décalage est très similaire au SIPO ci-dessus, sauf que les données n’étaient auparavant lues directement sous forme parallèle à partir des sorties QA à QD, cette fois-ci, les données peuvent passer à travers le registre et sortir de l’autre côté. Comme il n’y a qu’une seule sortie, les DATA quittent le registre à décalage un bit à la fois dans un modèle sériel, d’où le nom Registre à décalage Entrée série vers sortie série ou SISO.
Le registre à décalage SISO est l’un des plus simples des quatre configurations car il n’a que trois connexions : l’entrée série (SI) qui détermine ce qui entre dans la bascule de gauche, la sortie série (SO) qui est prélevée à partir de la sortie de la bascule de droite et le signal d’horloge (Clk). Le schéma logique ci-dessous montre un registre à décalage sériel d’entrée/d sortie généralisé.
Registre à décalage 4 bits Entrée série vers sortie série
Vous pourriez vous demander quel est l’intérêt d’un registre à décalage SISO si les données de sortie sont exactement les mêmes que les données d’entrée. Eh bien, ce type de registre à décalage agit également comme un dispositif de stockage temporaire ou peut servir de dispositif de retard pour les données, la quantité de retard étant contrôlée par le nombre d’étapes dans le registre, 4, 8, 16 etc., ou en variant l’application des impulsions d’horloge. Les circuits intégrés couramment disponibles incluent le 74HC595 registre à décalage 8 bits Entrée série vers sortie série, tous avec des sorties en 3 états.
Entrée parallèle vers sortie série (PISO)
Le registre à décalage entrée parallèle vers sortie série agit de manière opposée au registre à décalage entrée série vers sortie parallèle ci-dessus. Les données sont chargées dans le registre au format parallèle, où tous les bits de données entrent en même temps dans les broches d’entrée parallèle PA à PD du registre. Les données sont ensuite lues séquentiellement dans le mode normal de décalage vers la droite à partir du registre à Q représentant les données présentes à PA à PD.
Ces données sont sortantes un bit à la fois à chaque cycle d’horloge sous format série. Il est important de noter qu’avec ce type de registre de données, une impulsion d’horloge n’est pas nécessaire pour charger le registre en parallèle, car elle est déjà présente, mais quatre impulsions d’horloge sont nécessaires pour vider les données.
Entrée parallèle vers sortie série 4 bits
Comme ce type de registre à décalage convertit des données parallèles, telles qu’un mot de données de 8 bits, en format série, il peut être utilisé pour multiplexe de nombreuses lignes d’entrée différentes en un seul flux de données sériel qui peut être envoyé directement à un ordinateur ou transmis sur une ligne de communication. Les circuits intégrés couramment disponibles comprennent les registres à décalage 8 bits 74HC166 Entrée parallèle/Sortie série.
Entrée parallèle vers sortie parallèle (PIPO)
Le mode final de fonctionnement est le registre à décalage Entrée parallèle vers sortie parallèle. Ce type de registre à décalage agit également comme un dispositif de stockage temporaire ou comme un dispositif de retard de temps similaire à la configuration SISO ci-dessus. Les données sont présentées sous un format parallèle aux broches d’entrée parallèle PA à PD puis transférées ensemble directement vers leurs broches de sortie respectives QA à QD par la même impulsion d’horloge. Donc, une impulsion d’horloge charge et décharge le registre. Cet arrangement pour le chargement et le déchargement parallèles est montré ci-dessous.
Entrée parallèle vers sortie parallèle 4 bits
Le registre à décalage PIPO est la configuration la plus simple des quatre car il n’a que trois connexions : l’entrée parallèle (PI) qui détermine ce qui entre dans la bascule, la sortie parallèle (PO) et le signal d’horloge (Clk).
À l’instar du registre à décalage entrée série vers sortie série, ce type de registre agit également comme un dispositif de stockage temporaire ou comme un dispositif de délai, la quantité de délai étant variable par la fréquence des impulsions d’horloge. De plus, dans ce type de registre, il n’y a pas d’interconnexions entre les bascules individuelles, car aucun décalage sériel des données n’est requis.
Le Registre à décalage universel
Aujourd’hui, il existe de nombreux registres à décalage “universels” type bi-directionnels à grande vitesse disponibles, tels que le TTL 74LS194, 74LS195 ou le CMOS 4035 qui sont disponibles sous forme de dispositifs multifonctionnels à 4 bits capables d’être utilisés dans n’importe quelle configuration sériel-vers-sériel, décalage à gauche, décalage à droite, sériel-vers-parallèle, parallèle-vers-sériel, ou comme un registre de données multifonctionnel parallèle-vers-parallèle, d’où leur nom “Universel”.
Ces registres à décalage universels peuvent effectuer n’importe quelle combinaison d’opérations d’entrée parallèle et série-sortie mais nécessitent des entrées supplémentaires pour spécifier la fonction souhaitée et pour précharger et réinitialiser le dispositif. Un registre à décalage universel couramment utilisé est le TTL 74LS194 comme montré ci-dessous.
Registre à décalage universel 4 bits 74LS194
Les registres à décalage universels sont des dispositifs numériques très utiles. Ils peuvent être configurés pour répondre à des opérations nécessitant une forme de stockage temporaire ou pour le délai d’informations telles que les configurations SISO ou PIPO ou transférer des données d’un point à un autre en format sériel ou parallèle. Les registres à décalage universels sont fréquemment utilisés dans les opérations arithmétiques pour décaler les données vers la gauche ou la droite pour la multiplication ou la division.
Résumé du tutoriel
Pour résumer un peu sur les registres à décalage
- Un simple registre à décalage peut être fabriqué en utilisant seulement des flip-flops de type D, un flip-flop pour chaque bit de données.
- La sortie de chaque flip-flop est connectée à l’entrée D du flip-flop à sa droite.
- Les registres à décalage conservent les données dans leur mémoire qui sont déplacées ou “décalées” vers leurs positions requises à chaque impulsion d’horloge.
- Chaque impulsion d’horloge décale le contenu du registre d’une position de bit vers la gauche ou vers la droite.
- Les bits de données peuvent être chargés un par un dans une configuration d’entrée série (SI) ou être chargés simultanément dans une configuration parallèle (PI).
- Les données peuvent être retirées du registre un bit à la fois pour une sortie série (SO) ou retirées toutes en même temps à partir d’une sortie parallèle (PO).
- Une application des registres à décalage est la conversion des données entre le série et le parallèle, ou du parallèle au série.
- Les registres à décalage sont identifiés individuellement comme SIPO, SISO, PISO, PIPO, ou comme un registre à décalage universel avec toutes les fonctions combinées au sein d’un seul dispositif.
Dans le prochain tutoriel sur les circuits logiques séquentiels, nous examinerons ce qui se passe lorsque la sortie du dernier flip-flop d’un registre à décalage est connectée directement à l’entrée du premier flip-flop, produisant un circuit en boucle fermée qui recircule constamment les données autour de la boucle. Cela produit alors un autre type de circuit logique séquentiel appelé compteur à anneaux qui est utilisé comme compteurs de décennies et diviseurs.