Registres à décalage - Université Virtuelle de Tunis
Transcription
Registres à décalage - Université Virtuelle de Tunis
CIRCUITS LOGIQUES SEQUENTIELS Université Virtuelle de Tunis Chap-II: Registres à décalage CIRCUITS LOGIQUES SEQUENTIELS Registres à décalage TRABELSI Hichem Attention ! Ce produit pédagogique numérisé est la propriété exclusive de l'UVT. Il est strictement interdit de la reproduire à des fins commerciales. Seul le téléchargement ou impression pour un usage personnel (1 copie par utilisateur) est permis. 1 TRABELSI Hichem Université Virtuelle de Tunis CIRCUITS LOGIQUES SEQUENTIELS _____________________________________________________________________________________________________________________________________________ Chap-II : Registres à décalage REGISTRES À DÉCALAGE Introduction Un registre à décalage est un circuit séquentiel constitué d’un ensemble de N bascules, commandées par le même signal d’horloge, afin de stocker et de déplacer les données à N bits qu’il reçoit à ses entrées. La capacité d’un registre à stocker les données rend ce composant comme un élément de mémorisation important. La propriété de décalage d’un registre permet le déplacement des données de l’entrée vers la sortie du registre de différentes manières. La figure ci-dessous illustre les différents déplacements des données dans un registre à décalage. Entrée Sortie Entrée Sortie Entrée série / sortie série Entrée parallèle / sortie série Entrée Entrée Sortie Sortie Entrée série / sortie parallèle Entrée parallèle / sortie parallèle Déplacements des données dans les registres à décalage Structure d’un registre à décalage La structure du registre à décalage va dépendre de la façon dont on introduit les bits d’information, c’est à dire du chargement du registre. Ce chargement peut être sous forme série, c’est à dire les bits sont introduits les uns après les autres ou sous forme parallèle, c’est à dire simultanément. Registre à décalage à chargement série Les bits d’information sont présentés bit après bit à l’entrée de la première bascule et se propagent à travers le registre à chaque impulsion d’horloge, pour sortir par la dernière bascule, c’est donc une sortie série. 2 TRABELSI Hichem Université Virtuelle de Tunis CIRCUITS LOGIQUES SEQUENTIELS _____________________________________________________________________________________________________________________________________________ Chap-II : Registres à décalage L’applet représente un registre à décalage à 5 bits vers la droite (Shift Right) à chargement série. A chaque front montant de l’impulsion d’horloge, les sorties des bascules prennent la valeur de sortie qu’avait la bascule immédiatement à gauche avant l’application du front d’horloge. L’applet montre sur un chronogramme, comment l’application d’une succession d’impulsion d’horloge déplace les données d’entrée de gauche à droite d’une bascule à une autre. Un décalage à gauche peut être obtenu en changeant la connexion des sorties des bascules comme le montre l’applet. Dans certaines applications, il peut arriver que l’on ait besoin de décaler les données soit vers la gauche soit vers la droite, donc d’un décalage bidirectionnel. Pour réaliser cette fonction, il faut transmettre à chaque entrée de bascule soit la sortie de la bascule située à gauche (Qi-1) dans le cas d’un décalage à droite, soit la sortie située à droite (Qi+1) dans le cas d’un décalage à gauche. Pour cela, il faut disposer d’un multiplexeur 2 vers 1 commandé par un signal de commande noté SENS comme le montre l’applet. La récupération des données peut se faire d’une façon parallèle, il suffit pour cela que les sorties des différentes bascules du registre soient accessibles. La lecture du contenu du registre se fait d’une façon simultanée après que le registre soit rempli. REMARQUE: Il est indispensable que les bascules du registre aient un temps de maintien tH excessivement faible, au moins inférieur au retard de propagation tpd. Heureusement les bascules modernes déclenchées par un signal d'horloge respectent cette exigence. Registre à décalage à chargement parallèle Chargement parallèle asynchrone Dans le cas d’un chargement parallèle asynchrone, les entrées asynchrones RAZ et RAU sont utilisées pour écrire dans les bascules du registre. La figure ci-dessous montre le principe de chargement parallèle asynchrone. Le circuit additif de portes NAND est nécessaire pour charger les données d’une façon asynchrone à travers les entrées de forçage RAZ et RAU . ei-1 ei LD (Load) Di-1 RAU RAZ Qi-1 Di RAU Qi RAZ CLK Chargement parallèle asynchrone 3 TRABELSI Hichem Université Virtuelle de Tunis CIRCUITS LOGIQUES SEQUENTIELS _____________________________________________________________________________________________________________________________________________ Chap-II : Registres à décalage A l’entrée RAU de la bascule (i), on a : RAU = LD .ei A l’entrée RAZ , on a : RAZ = LD .e i .LD - Si LD = 0 on a alors : RAU = RAZ = 1. Les entrées de forçage sont inactives. - Si LD = 1 , On a alors : RAU = ei RAZ = ei Si ei = 0, c’est l’entrée RAZ qui est activée (chargement de 0). Si ei =1, c’est l’entrée RAU qui est activée (chargement de 1). L’applet représente un registre à décalage à 5 bits vers la droite (Shift Right) à chargement parallèle asynchrone. Parmi les différents registres à décalage à chargement parallèle asynchrone disponibles en circuits intégrés, on peut citer le 74165. Chargement parallèle synchrone Pour que le chargement parallèle des données ei soit synchrone avec le signal d’horloge, il faut appliquer ces données aux entrées synchrones Di. En fonction de l’ordre de chargement parallèle LD (load), chaque bascule i recopie l’entrée ei ou bien la sortie de la bascule i-1, à chaque front d’horloge. il faut donc utiliser un multiplexeur 2 vers 1 à l’entrée Di de chaque bascule, comme le montre le montage de la figure ci-dessous. ei ei-1 LD (Load) I0 S I1 I0 S MUX Z Di-1 Qi-1 I1 MUX Z Di Qi CLK Chargement parallèle synchrone 4 TRABELSI Hichem Université Virtuelle de Tunis CIRCUITS LOGIQUES SEQUENTIELS _____________________________________________________________________________________________________________________________________________ Chap-II : Registres à décalage L’équation logique de l’entrée Di : Di = Qi −1 .LD + ei .LD (équation de sortie d’un multiplexeur à deux entrées). - Si LD = 0, alors Di = Qi-1 : c’est l’opération de décalage. - Si LD = 1, alors Di = ei : c’est l’opération du chargement. L’applet représente un registre à décalage à 5 bits vers la droite (Shift Right) à chargement parallèle synchrone. Parmi les registres à décalage à chargement parallèle synchrone, on peut citer le 74178. Registre à décalage universel Un registre dit universel est un registre qui effectue le décalage à droite ou à gauche et un chargement série ou parallèle. Ce type de registre dispose d’entrées de mode de fonctionnement qui définissent le sens de décalage et le type de chargement. La figure ci-dessous représente les différentes entrées et sorties d’un registre universel procurant tous les modes de fonctionnement. Entrées parallèles Entrée série droite Chargement (Load) REGISTRE A DECALAGE UNIVERSEL Entrée série gauche Sens de décalage Horloge Sortie série décalage à gauche Sortie série décalage à droite Sorties parallèles Schéma bloc d’un registre à décalage universel Le circuit intégré 74194 est un exemple de registre universel. Registre à décalage à sorties 3 états Dans différentes applications et en particulier dans les systèmes contrôlés par microprocesseur, les différents blocs fonctionnels sont reliés les uns aux autres au moyen d’un ou plusieurs bus de données. Pour l’instant, nous allons illustrer le concept de bus dans le cas de transfert de données d’un registre à décalage à autre. Un registre à décalage à 3 états est un circuit qui possède des sorties reliées au bus par l’intermédiaire de circuits de types 3 états, commandés par un signal de validation E. Ces registres peuvent être connectés en parallèle sur le bus, comme le montre la figure ci-dessous. Etant donné que les sorties de tous ces registres sont connectées au même bus, il est indispensable que seulement un des registres à la fois ait ses sorties validées et que les sorties des autres soient déconnectées, c’est à dire en état haut impédance. S’il en est autrement, il y aura un conflit d’utilisation du bus. Le contenu de l’un des registres peut être transféré par 5 TRABELSI Hichem Université Virtuelle de Tunis CIRCUITS LOGIQUES SEQUENTIELS _____________________________________________________________________________________________________________________________________________ Chap-II : Registres à décalage l’intermédiaire du bus grâce à l’application appropriée des niveaux logiques sur les entrées de validation E des registres. Le circuit intégré 74295 est un exemple de registre à 3 états. QN-1 ……. Q1 Q0 EN ……. QN-1 ……. Q1 E2 QN-1 ……. Q1 Q0 Q0 E1 BUS Connexion de registres à 3 états à un bus de données Illustrations Nous avons vu précédemment que qu’il existe 4 types de registres à décalage : • • • • • Registre à décalage à entrée série (ou chargement série) sortie série (ou lecture série). Pour illustrer son fonctionnement lancer l’applet Registre à décalage à entrée série sortie parallèle. Pour illustrer son fonctionnement lancer l’applet Registre à décalage à entrée parallèle sortie série. Pour illustrer son fonctionnement lancer l’applet Registre à décalage à entrée parallèle sortie parallèle. Pour illustrer son fonctionnement lancer l’applet Registre à décalage universel. Pour illustrer son fonctionnement lancer l’applet Applications des registres à décalage La conversion série parallèle et parallèle série de l’information numérique constitue une application fréquente d’un registre à décalage. Conversion série parallèle d’une information Une information binaire à N bits chargée en série dans un registre à décalage, peut être récupérée en parallèle après l’entrée du dernier bit (Nème bit). Au total, N impulsions d’horloge sont nécessaires afin que cette information soit présente en sortie. On peut effectuer donc à l’aide d’un registre à décalage, la conversion de données transmises en série sur une seule ligne, en données parallèles sur plusieurs lignes. Le nombre de lignes parallèles nécessaires correspond au nombre de bits à transmettre (N). 6 TRABELSI Hichem Université Virtuelle de Tunis CIRCUITS LOGIQUES SEQUENTIELS _____________________________________________________________________________________________________________________________________________ Chap-II : Registres à décalage Entrée Série REGISTRE A DECALAGE Q0 Q1 Q2 Qn-1 Conversion série parallèle Conversion parallèle série d’une information Si l’information est disponible à l’origine sous forme parallèle, elle peut être convertie en série pour se propager bit après bit à la sortie d’un registre à décalage, au rythme du signal d’horloge. Ce type de conversion est utilisé dans le cas de la transmission à longue distance pour économiser le nombre de fils de transmission, donc du coût. La figure 6.15 résume les deux types de conversions. D0 D1 D2 DN-1 REGISTRE DECALAGE Sortie série LOAD CLK Conversion parallèle série Ligne à retard Un registre à chargement série et à lecture série peut jouer le rôle d’une ligne à retard numérique. En effet, l’information présente à l’entrée du registre à décalage à N bascules ne peut se récupérer à la sortie série qu’après N impulsions d’horloge, réalisant ainsi un retard de durée N.T, avec T période du signal d’horloge. Calcul arithmétique Le registre à décalage peut être utilisé pour effectuer certaines opérations arithmétiques sur des données numériques, opérations pouvant nécessiter ou non l’introduction de circuits combinatoires supplémentaires reliés au registre. A titre d’exemple : pour effectuer l’opération de multiplication binaire, on a besoin d’un registre à décalage gauche (voir chapitre 8). 7 TRABELSI Hichem