Leçon 14 sur 18

Chapitre 14 — Registres

Niveau conseillé : Bac+1 / Bac+2 — Cycle préparatoire, BTS, BUT, Licence

Idée centrale

Un registre associe plusieurs bascules afin de mémoriser, déplacer ou convertir un mot binaire. Il constitue une interface essentielle entre le traitement parallèle et la transmission série.

 


 

 

Présentation du chapitre

Une bascule mémorise un bit. En regroupant plusieurs bascules commandées par une horloge commune, on obtient un registre capable de conserver un mot binaire. Selon les connexions établies entre les étages, le registre peut charger toutes ses données simultanément, recevoir les bits successivement, restituer les informations en série ou en parallèle, ou encore déplacer le contenu vers la droite ou vers la gauche.

Les registres sont utilisés dans les processeurs, les interfaces de communication, les convertisseurs série-parallèle, les systèmes de temporisation, les compteurs, les générateurs de séquences et les chaînes de traitement numériques. Leur étude permet de relier les bascules individuelles aux architectures séquentielles plus complexes.

Objectifs pédagogiques

À la fin du chapitre, l’étudiant sera capable de…

Indicateur de maîtrise

Définir un registreExpliquer le rôle de la mémoire collective et de l’horloge.
Analyser un registre parallèleDécrire le chargement et la lecture simultanés d’un mot.
Analyser un registre à décalageCalculer le contenu après chaque impulsion.
Distinguer droite et gaucheIdentifier l’entrée série et la sortie série correspondantes.
Reconnaître SISO, SIPO, PISO et PIPOChoisir le type adapté au besoin.
Comprendre le registre universelInterpréter les modes maintien, décalage et chargement.
Réaliser une conversion série-parallèleReconstruire un mot à partir d’un flux de bits.
Réaliser une conversion parallèle-sérieÉmettre un mot sur une seule ligne.
Exploiter une temporisation numériqueRelier le nombre d’étages au retard en cycles.
Générer des séquencesComprendre les registres en anneau et de Johnson.

 

Prérequis

  • connaître le fonctionnement de la bascule D et le rôle du front actif ;
  • savoir lire un chronogramme et déterminer l’état futur d’une bascule ;
  • comprendre les entrées synchrones et asynchrones ;
  • maîtriser la représentation d’un mot binaire et les notions de bit de poids fort et de poids faible ;
  • connaître les signaux d’horloge, de validation et de remise à zéro.


 

 

Organisation du chapitre

Partie

Thème

Compétence principale

14.1Registre parallèleStocker, charger et lire plusieurs bits simultanément.
14.2Registre à décalageDéplacer les bits à droite ou à gauche.
14.3Types de registresComparer les modes série et parallèle.
14.4ApplicationsConvertir, temporiser, transmettre et générer des séquences.
TD / TPMise en œuvreAnalyser des chronogrammes et vérifier un montage.

 

14.1. Registre parallèle

Un registre parallèle est un ensemble de n bascules, généralement de type D, partageant la même horloge. Il mémorise un mot de n bits. Les n bits d’entrée sont présentés simultanément et sont capturés lors du front actif. Les n sorties sont disponibles en même temps.

Définition

Un registre parallèle n bits contient n éléments mémoire. Au front actif, chaque sortie Qi reçoit l’entrée Di correspondante. Entre les fronts, le mot mémorisé reste inchangé.

 

Figure 1 — Architecture fonctionnelle d’un registre parallèle 4 bits.

14.1.1. Stockage de plusieurs bits

Chaque bascule conserve un bit du mot. Pour un registre 4 bits, les sorties peuvent être notées Q3, Q2, Q1 et Q0. Q3 représente souvent le bit de poids fort (MSB) et Q0 le bit de poids faible (LSB). Le contenu du registre s’écrit Q[3:0] ou Q3Q2Q1Q0.

Au front actif :  Q3Q2Q1Q0 ← D3D2D1D0

 

Instant

D3D2D1D0

Front actif ?

Q3Q2Q1Q0 après l’événement

t01010NonValeur précédente
t11010Oui1010
t20111Non1010
t30111Oui0111

 

La capacité d’un registre est exprimée en bits. Un registre 8 bits stocke un octet, un registre 16 bits stocke deux octets et un registre 32 bits stocke quatre octets. Dans un processeur, les registres internes peuvent atteindre 32, 64 bits ou davantage.

14.1.2. Chargement parallèle

Le chargement parallèle signifie que toutes les entrées sont transférées simultanément. Dans sa forme la plus simple, le chargement se produit à chaque front actif. Pour éviter d’écraser inutilement le contenu, on ajoute souvent une entrée LOAD ou EN.

LOAD = 1 : Q(t+1) = D     ;     LOAD = 0 : Q(t+1) = Q(t)

 

Cette fonction peut être réalisée par un multiplexeur placé devant chaque bascule D : une entrée du multiplexeur reçoit la nouvelle donnée Di, l’autre reçoit la sortie Qi en rétroaction. LOAD choisit entre chargement et maintien.

LOAD

Front actif

Action

Équation

0OuiMaintien du motQ(t+1) = Q(t)
1OuiChargement parallèleQ(t+1) = D
XNonAucun changement synchroneQ conserve sa valeur

 

Figure 2 — Exemple de chargement parallèle commandé par LOAD.

14.1.3. Lecture parallèle

La lecture parallèle consiste à exploiter simultanément toutes les sorties du registre. La lecture peut être permanente : les sorties Q reflètent continuellement le contenu mémorisé. Dans un système à bus partagé, des buffers trois états permettent de connecter le registre au bus uniquement lorsque son signal de lecture est actif.

  • lecture directe : les sorties Q sont toujours accessibles ;
  • lecture validée : un signal OE (Output Enable) autorise les sorties ;
  • sortie trois états : lorsque OE est inactif, les sorties passent en haute impédance Z ;
  • bus partagé : un seul registre doit être autorisé à piloter le bus à un instant donné.

14.1.4. Remise à zéro et initialisation

Un registre possède souvent une entrée Clear ou Reset permettant de forcer toutes les sorties à 0. Le Reset peut être synchrone, auquel cas il agit au prochain front, ou asynchrone, auquel cas il agit immédiatement. Certains registres disposent également d’un chargement initial prédéfini.

Reset

LOAD

Front

Q(t+1)

Commentaire

1XX0000Reset asynchrone actif, priorité maximale
01DChargement
00Q(t)Maintien
0XPas de frontQ(t)Aucun changement

 

14.1.5. Exemple détaillé

Un registre 4 bits est initialement à 0000. LOAD est actif lors des fronts 1, 3 et 5. Les mots d’entrée juste avant ces fronts sont respectivement 1011, 0110 et 1100. Aux fronts 2 et 4, LOAD = 0.

Front

LOAD

D3D2D1D0

Q avant

Q après

11101100001011
20001010111011
31011010110110
40111101100110
51110001101100

 

Point d’attention

Le changement de la donnée D entre deux fronts n’affecte pas le registre. Seule la valeur stable dans la fenêtre de setup/hold du front actif peut être capturée.

 

14.2. Registre à décalage

Dans un registre à décalage, les bascules sont reliées en chaîne. À chaque front actif, le contenu de chaque étage est transféré vers l’étage voisin. Une nouvelle donnée est introduite par une entrée série et un bit quitte le registre par une sortie série.

14.2.1. Principe général

  • le registre contient n bits ;
  • un décalage déplace tous les bits d’une position ;
  • un nouveau bit est injecté à une extrémité ;
  • un bit ancien est expulsé à l’autre extrémité ;
  • le sens du déplacement détermine la position de l’entrée série et de la sortie série.

Figure 3 — Registre à décalage vers la droite.

14.2.2. Décalage à droite

Dans la convention courante, un décalage à droite déplace chaque bit vers le poids immédiatement inférieur. Le nouveau bit série entre dans l’étage de poids fort. Le bit de poids faible quitte le registre.

Q3(t+1)=Sin ; Q2(t+1)=Q3(t) ; Q1(t+1)=Q2(t) ; Q0(t+1)=Q1(t) ; Sout=Q0(t)

 

État avant

Sin

État après

Bit sorti

1011001011
0101110101
1010001010
0101000101

 

Pour un nombre binaire non signé, un décalage logique à droite d’une position correspond à une division entière par 2. Le bit éliminé représente le reste éventuel. Pour un nombre signé en complément à 2, un décalage arithmétique doit recopier le bit de signe au lieu d’insérer 0.

14.2.3. Décalage à gauche

Le décalage à gauche déplace les bits vers les poids supérieurs. Le nouveau bit entre dans l’étage de poids faible et le bit de poids fort est expulsé.

Q3(t+1)=Q2(t) ; Q2(t+1)=Q1(t) ; Q1(t+1)=Q0(t) ; Q0(t+1)=Sin ; Sout=Q3(t)

 

État avant

Sin

État après

Bit sorti

1011001101
0110111010
1101010101
1010101011

 

Pour un nombre non signé, un décalage à gauche d’une position multiplie la valeur par 2 si aucun bit significatif n’est perdu. Le bit sorti permet de détecter un dépassement de capacité.

Figure 4 — Exemple de déplacements à droite et à gauche.

14.2.4. Entrée série et sortie série

L’entrée série Sin reçoit un bit par cycle. La sortie série Sout fournit un bit par cycle. L’ordre des bits doit être défini : une transmission peut commencer par le MSB ou par le LSB. Le transmetteur et le récepteur doivent employer la même convention.

Convention

Premier bit transmis

Avantage typique

Point de vigilance

MSB firstBit de poids fortLecture naturelle de nombreux protocolesLe câblage du registre doit respecter l’ordre.
LSB firstBit de poids faibleCompatible avec certains périphériques et calculsLe mot reconstruit peut sembler inversé.

 

14.2.5. Décalage validé et maintien

Comme pour un registre parallèle, un signal SHIFT ou ENABLE peut autoriser ou interdire le déplacement. Lorsque SHIFT = 0, chaque bascule réinjecte sa propre sortie et le contenu est conservé. Lorsque SHIFT = 1, chaque bascule reçoit le bit de l’étage précédent.

SHIFT = 0 : Q(t+1)=Q(t)     ;     SHIFT = 1 : Q(t+1)=mot décalé

 

14.2.6. Registre bidirectionnel

Un registre bidirectionnel dispose d’une commande DIR qui choisit le sens. Des multiplexeurs sélectionnent, pour chaque bascule, la donnée provenant du voisin de gauche ou du voisin de droite. Deux entrées série sont souvent prévues : SinR pour le décalage à droite et SinL pour le décalage à gauche.

DIR

Action

Source de Q2 dans un registre 4 bits

0Décalage à droiteQ3
1Décalage à gaucheQ1

 

14.3. Types de registres

La classification des registres repose sur la manière dont les données entrent et sortent. Le terme série signifie qu’un seul bit est transféré par cycle sur une ligne. Le terme parallèle signifie que plusieurs bits sont transférés simultanément sur plusieurs lignes.

Figure 5 — Classification SISO, SIPO, PISO et PIPO.

14.3.1. Registre série-série (SISO)

Le registre SISO, Serial In Serial Out, reçoit les bits en série et les restitue en série après un nombre de cycles égal au nombre d’étages. Il agit comme une ligne à retard numérique.

  • une seule entrée de données ;
  • une seule sortie de données ;
  • un bit avance d’un étage par front ;
  • un registre n bits introduit un retard de n cycles entre l’entrée et la sortie ;
  • application : temporisation et synchronisation de flux.

14.3.2. Registre série-parallèle (SIPO)

Le registre SIPO, Serial In Parallel Out, reçoit un flux série et rend disponible le mot complet sur ses sorties parallèles. Après n fronts, un mot de n bits a été reconstruit.

Figure 6 — Conversion série-parallèle avec un registre SIPO.

Cycle

Bit reçu

Contenu Q3Q2Q1Q0 après décalage

00000
111000
200100
311010
411101

 

Le tableau suppose un décalage à droite avec insertion au MSB. Une autre convention produit un ordre différent. Il faut toujours préciser le sens du décalage et l’ordre d’émission.

14.3.3. Registre parallèle-série (PISO)

Le registre PISO, Parallel In Serial Out, charge un mot complet en une seule opération, puis le transmet bit par bit. Il possède généralement une commande LOAD/SHIFT.

Commande

Action

LOAD=1Les entrées parallèles sont capturées.
LOAD=0 / SHIFT=1Le mot est décalé et un bit apparaît sur Sout.
LOAD=0 / SHIFT=0Le contenu est conservé, selon l’architecture.

 

14.3.4. Registre parallèle-parallèle (PIPO)

Le registre PIPO, Parallel In Parallel Out, est le registre parallèle classique. Il transfère un mot complet à chaque opération de chargement et conserve les données pour une utilisation ultérieure. Il est très utilisé comme registre tampon entre deux blocs fonctionnant au même rythme.

14.3.5. Registre universel

Le registre universel combine plusieurs modes : maintien, décalage à droite, décalage à gauche et chargement parallèle. Deux lignes de sélection S1 et S0 peuvent commander ces quatre modes.

S1

S0

Mode

Description

00MaintienQ(t+1)=Q(t)
01Décalage à droiteSinR entre au poids fort.
10Décalage à gaucheSinL entre au poids faible.
11Chargement parallèleQ(t+1)=D

 

Chaque entrée D d’une bascule est alors précédée d’un multiplexeur 4 vers 1. Le même code de sélection est distribué à tous les étages. Le registre universel est flexible mais exige davantage de portes et possède un délai combinatoire supplémentaire.

14.3.6. Tableau comparatif

Type

Entrée

Sortie

Fonction principale

Exemple d’utilisation

SISOSérieSérieRetarder un fluxLigne à retard
SIPOSérieParallèleReconstruire un motRéception série
PISOParallèleSérieSérialiser un motÉmission série
PIPOParallèleParallèleMémoriser un motRegistre tampon
UniverselSérie + parallèleSérie + parallèleRéaliser plusieurs modesUnité de traitement

 

14.4. Applications des registres

14.4.1. Conversion série-parallèle

Une interface série réduit le nombre de fils nécessaires : les bits circulent sur une ligne. Le registre SIPO accumule les bits reçus. Après réception du nombre prévu de bits, un signal de validation peut transférer le mot dans un second registre de sortie afin d’éviter que les sorties ne changent pendant la réception du mot suivant.

1. initialiser le registre ;

2. recevoir un bit à chaque front ;

3. compter les bits reçus ;

4. valider le mot après n cycles ;

5. conserver le mot stable pendant la trame suivante.

14.4.2. Conversion parallèle-série

La conversion parallèle-série charge d’abord les n bits dans un PISO, puis effectue n décalages. Cette technique permet d’envoyer un état de plusieurs capteurs ou une donnée de processeur sur une liaison à faible nombre de conducteurs.

Phase

LOAD

SHIFT

Résultat

Chargement10Le mot D est mémorisé.
Émission bit 101Le premier bit est présent sur Sout.
Émission bits suivants01Un bit sort à chaque front.
Fin00Le contenu final est maintenu ou le registre est rechargé.

 

14.4.3. Temporisation numérique

Un registre SISO peut retarder un signal d’un nombre entier de périodes d’horloge. Avec n bascules, un bit appliqué à l’entrée apparaît à la sortie après n fronts actifs. Le retard idéal vaut n·TCLK, auquel s’ajoute le temps de propagation de la dernière bascule.

Retard approximatif :  td ≈ n · TCLK + tCQ

 

Cette propriété est utilisée pour aligner temporellement plusieurs chemins de traitement, créer des pipelines, réaliser des filtres numériques simples et comparer une donnée à sa version retardée.

14.4.4. Transmission de données

Les registres assurent l’adaptation entre un traitement parallèle interne et une liaison série externe. Ils peuvent également introduire des buffers pour absorber les différences temporaires de rythme entre deux blocs.

  • réduction du nombre de fils ;
  • extension d’entrées/sorties d’un microcontrôleur ;
  • pilotage de matrices de LED ou d’afficheurs ;
  • acquisition de plusieurs entrées numériques ;
  • interface entre unités travaillant avec des largeurs de données différentes.

14.4.5. Génération de séquences

En réinjectant une ou plusieurs sorties vers l’entrée série, un registre peut produire une suite cyclique. La forme de la rétroaction détermine le nombre d’états et l’ordre de la séquence.

Figure 7 — Registres à rétroaction pour la génération de séquences.

Registre en anneau

Dans un registre en anneau, la sortie du dernier étage est réinjectée à l’entrée du premier. Si un seul bit vaut 1, ce bit circule. Un registre n bits possède alors n états utiles. Il doit être initialisé correctement, car l’état 000…0 resterait bloqué.

Registre de Johnson

Le registre de Johnson réinjecte le complément de la dernière sortie. Un registre n bits peut produire 2n états distincts. Les séquences obtenues sont faciles à décoder et servent à générer des phases de commande.

Registre à rétroaction linéaire (LFSR)

Un LFSR combine par XOR certaines sorties, appelées taps, puis réinjecte le résultat. Avec un polynôme de rétroaction adapté, un registre n bits peut parcourir jusqu’à 2ⁿ−1 états non nuls. Les LFSR sont employés pour les séquences pseudo-aléatoires, les tests et certains contrôles d’erreur.

Limite importante

Une séquence produite par un LFSR est déterministe et périodique. Elle peut sembler aléatoire, mais elle ne convient pas automatiquement à un usage cryptographique.

 

14.4.6. Opérations arithmétiques simples

Les décalages peuvent accélérer certaines opérations : multiplication par 2 par décalage à gauche, division entière par 2 par décalage à droite, extraction de bits, assemblage de champs et alignement de données. Il faut cependant surveiller le bit perdu et le traitement du signe.

Opération

Décalage

Condition

×2 non signéGauche d’un bitPas de dépassement du MSB.
÷2 non signéDroite logiqueInsertion de 0 au MSB.
÷2 signéDroite arithmétiqueRecopie du bit de signe.
RotationDécalage avec réinjectionLe bit sorti revient à l’autre extrémité.

 

Exemples d’application

Exemple 1 — Réception du mot 1101

Un SIPO 4 bits, initialement à 0000, décale à droite. Les bits sont envoyés dans l’ordre LSB first : 1, 0, 1, 1. Les contenus deviennent 1000, 0100, 1010 puis 1101. Après quatre fronts, le mot parallèle est disponible.

Exemple 2 — Émission du mot 1010

Un PISO charge 1010. Si la sortie série est prise sur Q0 et que le décalage se fait à droite, les bits sortent dans l’ordre 0, 1, 0, 1. Pour transmettre MSB first, il faut choisir une autre sortie ou inverser le sens de décalage.

Exemple 3 — Retard de 5 cycles

Une horloge de 20 MHz possède une période de 50 ns. Un registre SISO de cinq étages retarde idéalement le signal de 5 × 50 ns = 250 ns, plus le temps de propagation clock-to-Q du dernier étage.

Exemple 4 — Multiplication par 4

Un mot non signé est décalé deux fois vers la gauche. La valeur est multipliée par 2² = 4 si les deux bits expulsés sont nuls. Par exemple 001011₂ = 11 devient 101100₂ = 44.

Travaux dirigés

Exercice 1 — Chargement parallèle

Un registre 4 bits est initialement à 0011. Aux quatre fronts successifs, LOAD vaut 0, 1, 0, 1 et D vaut respectivement 1100, 1010, 0111, 0101. Déterminer Q après chaque front.

Exercice 2 — Décalage à droite

Un registre 5 bits contient 10110. Effectuer quatre décalages à droite avec les bits d’entrée 0, 1, 1 et 0. Donner le contenu et le bit sorti à chaque étape.

Exercice 3 — Décalage à gauche

Un registre 4 bits contient 1101. Effectuer trois décalages à gauche avec Sin = 0, 1, 0. Indiquer les bits sortis.

Exercice 4 — Conversion série-parallèle

Un SIPO 8 bits reçoit la suite 10110110, MSB first. Définir un sens de décalage cohérent et donner le mot final.

Exercice 5 — Conversion parallèle-série

Un PISO contient 01101001. La sortie série est Q0 et le registre décale à droite. Donner la suite des huit bits émis.

Exercice 6 — Registre universel

Pour S1S0 = 00, 01, 10, 11, appliquer successivement : maintien, droite avec SinR=1, gauche avec SinL=0, chargement D=1010. Le registre est initialement 0110. Donner les états successifs.

Exercice 7 — Temporisation

Calculer le retard d’un SISO 12 étages commandé à 8 MHz. Le temps clock-to-Q vaut 4 ns.

Exercice 8 — Anneau

Un registre en anneau 5 bits est initialisé à 10000. Donner les dix états suivants et la période de la séquence.

Exercice 9 — Johnson

Un registre de Johnson 4 bits est initialisé à 0000. En réinjectant le complément de Q0 au MSB lors d’un décalage à droite, déterminer les huit états.

Exercice 10 — Choix du registre

Choisir SISO, SIPO, PISO, PIPO ou universel pour : lire un capteur série, envoyer huit sorties sur deux fils, retarder un signal, mémoriser un mot interne, réaliser plusieurs modes dans une unité de calcul.

Activité pratique proposée

TP — Étude des registres et conversions série/parallèle

Cette activité peut être réalisée avec Logisim Evolution, Digital, Proteus, Multisim, une carte FPGA ou des circuits intégrés de la famille 74HC, par exemple 74HC164, 74HC165, 74HC173 ou 74HC194.

Objectifs

  • réaliser un registre parallèle 4 bits ;
  • observer un chargement commandé par LOAD ;
  • réaliser un registre à décalage dans les deux sens ;
  • convertir une donnée série en parallèle et inversement ;
  • mesurer une division temporelle en nombre de cycles ;
  • générer une séquence en anneau.

Matériel et précautions

  • alimentation compatible avec la famille logique utilisée ;
  • générateur d’horloge avec fréquence suffisamment faible pour l’observation manuelle ;
  • boutons anti-rebond ou horloge unique commandée ;
  • LED avec résistances de limitation ;
  • condensateurs de découplage de 100 nF ;
  • entrées inutilisées reliées à un niveau défini ;
  • analyseur logique ou oscilloscope si disponible.

Manipulation A — Registre parallèle

1. assembler quatre bascules D avec horloge commune ;

2. appliquer un mot d’entrée 1010 et produire un front ;

3. modifier les entrées en 0111 sans front et observer les sorties ;

4. produire un nouveau front et vérifier le chargement ;

5. ajouter un multiplexeur de maintien commandé par LOAD ;

6. vérifier le Reset et noter sa polarité.

Manipulation B — Registre à décalage

1. connecter Q3 vers D2, Q2 vers D1 et Q1 vers D0 ;

2. appliquer Sin sur D3 ;

3. envoyer la suite 1, 0, 1, 1 et relever le contenu après chaque front ;

4. identifier le bit série sortant ;

5. inverser les connexions pour obtenir un décalage à gauche ;

6. comparer les deux chronogrammes.

Manipulation C — Conversion et séquence

1. utiliser le registre comme SIPO puis comme PISO ;

2. vérifier l’ordre MSB first et LSB first ;

3. boucler la sortie sur l’entrée pour créer un anneau ;

4. initialiser une seule sortie à 1 ;

5. mesurer le nombre d’états et la période ;

6. essayer l’état 0000 et expliquer le blocage.

Tableau de relevés

Essai

Mode

État initial

Entrée / commande

États observés

Conclusion

1PIPO0000D=1010, LOAD=1  
2SIPO0000Bits 1,0,1,1  
3PISO1101SHIFT actif  
4Anneau1000Bouclage  

 

Questions d’exploitation

  • Pourquoi les quatre sorties changent-elles presque simultanément ?
  • Que se passe-t-il si la donnée série change trop près du front ?
  • Comment éviter que les sorties parallèles bougent pendant la réception ?
  • Quel est le retard entre Sin et Sout pour un registre n bits ?
  • Pourquoi un compteur en anneau doit-il être initialisé ?
  • Quelle différence existe entre décalage et rotation ?

Synthèse du chapitre

Notion

À retenir

RegistreAssociation de bascules mémorisant un mot binaire.
ParallèlePlusieurs bits transférés simultanément.
SérieUn bit transféré par cycle.
DécalageDéplacement du contenu vers un étage voisin.
SISOEntrée série et sortie série : temporisation.
SIPOEntrée série et sorties parallèles : réception.
PISOEntrées parallèles et sortie série : émission.
PIPOEntrées et sorties parallèles : stockage tampon.
UniverselMaintien, droite, gauche et chargement.
Anneau / JohnsonGénération de séquences cycliques.

 

Glossaire

Terme

Définition

Bit de poids fort — MSBBit associé au poids le plus élevé.
Bit de poids faible — LSBBit associé au poids le plus faible.
ChargementTransfert d’un mot vers les bascules.
DécalageDéplacement de tous les bits d’une position.
Entrée sérieLigne par laquelle arrive un bit par cycle.
Sortie sérieLigne par laquelle sort un bit par cycle.
LOADCommande de chargement parallèle.
SHIFTCommande autorisant le déplacement.
RotationDécalage avec réinjection du bit sorti.
Registre universelRegistre proposant plusieurs modes de fonctionnement.
LFSRRegistre à décalage avec rétroaction linéaire par XOR.
PipelineDécoupage d’un traitement en étages mémorisés.

 

Exercices d’entraînement

Exercice 11 — Équations d’un décalage

Écrire les équations de prochain état d’un registre 6 bits décalant à droite. Identifier Sin et Sout.

Exercice 12 — Multiplication et dépassement

Le mot 01101101 est décalé deux fois à gauche. Donner les états et indiquer si le résultat tient sur 8 bits.

Exercice 13 — Retard et fréquence

Un registre de 16 étages doit créer un retard de 2 µs. Déterminer la fréquence d’horloge idéale, sans tenir compte du temps de propagation.

Exercice 14 — Reconstruction d’une trame

Un SIPO reçoit 01101010 dans l’ordre LSB first, insertion au MSB. Quel mot apparaît ? Expliquer l’effet de l’ordre de transmission.

Exercice 15 — Sortie trois états

Trois registres PIPO partagent un bus 8 bits. Proposer une règle de commande des signaux OE et expliquer le risque si deux OE sont actifs.

Exercice 16 — Séquence anneau

Comparer le nombre d’états utiles d’un anneau 6 bits et d’un Johnson 6 bits.

Exercice 17 — LFSR

Pourquoi l’état entièrement nul est-il souvent interdit dans un LFSR XOR ? Quel est le nombre maximal d’états d’un LFSR 8 bits maximal ?

Exercice 18 — Conception

Proposer l’architecture d’un système recevant 12 bits en série, les présentant en parallèle puis maintenant les sorties stables pendant la réception suivante.

Auto-évaluation

Question

Réponse attendue

1Un registre 8 bits contient combien de bascules ?8
2Quel registre convertit série vers parallèle ?SIPO
3Quel registre convertit parallèle vers série ?PISO
4Combien de cycles faut-il pour remplir un SIPO 8 bits ?8 cycles
5Que fait LOAD=0 dans un registre avec maintien ?Il conserve le contenu.
6Que devient un nombre non signé lors d’un décalage gauche ?Il est multiplié par 2 si aucun bit utile n’est perdu.
7Quel retard produit un SISO n bits ?Environ n périodes d’horloge.
8Combien d’états utiles possède un anneau n bits correctement initialisé ?n états
9Combien d’états possède un Johnson n bits ?2n états
10Que signifie haute impédance ?La sortie est électriquement déconnectée du bus.

 

Corrigés des travaux dirigés et exercices

Corrigé 1 — Chargement parallèle

Q successifs : 0011 (maintien), 1010 (chargement), 1010 (maintien), 0101 (chargement).

Corrigé 2 — Décalage à droite

10110, Sin 0 → 01011, bit sorti 0 ; Sin 1 → 10101, sorti 1 ; Sin 1 → 11010, sorti 1 ; Sin 0 → 01101, sorti 0.

Corrigé 3 — Décalage à gauche

1101 avec Sin 0 → 1010, sorti 1 ; Sin 1 → 0101, sorti 1 ; Sin 0 → 1010, sorti 0.

Corrigé 4 — SIPO

Pour conserver le mot 10110110 avec émission MSB first, on peut décaler à gauche en insérant au LSB, ou adapter le sens afin que le premier bit finisse au MSB. Le mot final doit être 10110110.

Corrigé 5 — PISO

Avec sortie Q0 et décalage à droite, les bits sortent LSB first : 1, 0, 0, 1, 0, 1, 1, 0.

Corrigé 6 — Universel

Initial 0110. Maintien → 0110. Droite avec SinR=1 → 1011. Gauche avec SinL=0 → 0110. Chargement 1010 → 1010.

Corrigé 7 — Temporisation

T = 1/8 MHz = 125 ns. Retard = 12×125 ns + 4 ns = 1504 ns, soit environ 1,504 µs.

Corrigé 8 — Anneau

La séquence est 10000, 01000, 00100, 00010, 00001 puis recommence. Les dix états suivants répètent deux cycles. Période : 5 fronts.

Corrigé 9 — Johnson

Avec la convention donnée : 0000 → 1000 → 1100 → 1110 → 1111 → 0111 → 0011 → 0001 → 0000.

Corrigé 10 — Choix

Lire un capteur série : SIPO. Envoyer huit sorties sur peu de fils : PISO côté émission puis SIPO côté réception. Retarder : SISO. Mémoriser un mot : PIPO. Plusieurs modes : universel.

Corrigé 11 — Équations

Pour Q5…Q0, droite : Q5+=Sin, Q4+=Q5, Q3+=Q4, Q2+=Q3, Q1+=Q2, Q0+=Q1 et Sout=Q0 avant le front.

Corrigé 12 — Décalage et dépassement

01101101 → 11011010, premier bit sorti 0 ; deuxième décalage → 10110100, bit sorti 1. La valeur mathématique 109×4=436 ne tient pas sur 8 bits : dépassement.

Corrigé 13 — Fréquence

16 périodes doivent durer 2 µs. T = 2 µs/16 = 125 ns, donc f = 8 MHz.

Corrigé 14 — Trame

Avec LSB first, la suite reçue correspond à un ordre inversé par rapport à une lecture MSB first. Il faut suivre précisément le déplacement ; selon l’insertion au MSB, le premier bit migre vers le LSB après huit cycles.

Corrigé 15 — Bus

Un seul OE doit être actif. Les autres sorties doivent être en Z. Deux sorties actives avec niveaux opposés créent une contention et un courant excessif.

Corrigé 16 — Anneau / Johnson

Anneau 6 bits : 6 états utiles. Johnson 6 bits : 12 états.

Corrigé 17 — LFSR

Dans un LFSR XOR, l’état nul se réinjecte lui-même et reste bloqué. Un LFSR maximal 8 bits parcourt 2⁸−1 = 255 états.

Corrigé 18 — Conception

Utiliser un SIPO 12 bits pour recevoir la trame et un PIPO 12 bits de sortie. Après 12 bits, un signal LATCH transfère le SIPO dans le PIPO ; le SIPO peut alors recevoir la trame suivante sans modifier les sorties.

Conclusion

Les registres réunissent plusieurs bascules pour mémoriser et déplacer des mots binaires. Le registre parallèle assure le stockage et le transfert simultané de plusieurs bits. Le registre à décalage organise un transfert progressif, à droite ou à gauche, au moyen d’une entrée et d’une sortie série. Les architectures SISO, SIPO, PISO, PIPO et universelles répondent à des besoins différents de temporisation, de conversion et de traitement.

La maîtrise des registres prépare l’étude des compteurs, des unités de calcul séquentielles, des interfaces de communication et des machines à états. Dans une réalisation pratique, le concepteur doit toujours préciser le sens du décalage, l’ordre des bits, la polarité des commandes, le front actif, l’initialisation et les contraintes temporelles.