Structure Machine
Suite Chapitre 1 : Les Registres

Un registre est un ensemble ordonné de n bascules qui permet de mémoriser une information sur n bits. On dit alors que la taille du registre est n.

Il y a plusieurs types de registres :


1. Registres à chargement (Load Register) :

Il existe plusieurs types de registres :


a. Réalisation d'un registre à chargement parallèle :

à suivre...

b. Réalisation d'un registre à chargement en série :

à suivre...


2. Registres à décalage (Shift Register)

Il y en a plusieurs types :

La réalisation d'un registre, de n'importe quel type, est basée essentiellement sur le circuit séquentiel de décalage élémentaire (CDE).

Réalisation du circuit de décalage élémentaire (CDE):

Le logigramme correspondant à ce circuit est :

cde

Il fonctionne selon le principe suivant :

Qi reçoit la nouvelle valeur à l'entrée Ei

Si reçoit l'ancienne valeur Qi

Pour obtenir le circuit logique - en utilisant une bascule D - nous allons dresser la table d'excitation :

Ei Qit Qit+1 Si Di
0 0 0 0 0
0 1 0 1 0
1 0 1 0 1
1 1 1 1 1

On peut écrire les expressions algébriques comme suit :

Si = Qit

Di = Ei

Le circuit logique est donc :

cde


Pour illustrer des exemples, nous allons fixer n à 3 (la taille du registre est de 3 bits ).

a. Réalisation d'un registre à décalage à gauche de taille 3 :

Le registre n'est qu'une interconnexion de 3 CDE de la façon suivante :

L'ensemble du registre est décalé d'une position vers la gauche comme suit :

Q3t Q2t Q1t Q3t+1 Q2t+1Q1t+1 S
0 0 0 0 0 0 0
0 0 1 0 1 0 0
0 1 0 1 0 0 0
0 1 1 1 1 0 0
1 0 0 0 0 0 1
1 0 1 0 1 0 1
1 1 0 1 0 0 1
1 1 1 1 1 0 1

b. Réalisation d'un registre à décalage à droite de taille 3 :

Le registre n'est qu'une interconnexion de 3 CDE de la façon suivante :

L'ensemble du registre est décalé d'une position vers la droite comme suit :

Q3t Q2t Q1t Q3t+1 Q2t+1Q1t+1 S
0 0 0 0 0 0 0
0 0 1 0 0 0 1
0 1 0 0 0 1 0
0 1 1 0 0 1 1
1 0 0 0 1 0 0
1 0 1 0 1 0 1
1 1 0 0 1 1 0
1 1 1 0 1 1 1

c. Réalisation d'un registre à décalage circulaire à gauche de taille 3 :

Le registre n'est qu'une interconnexion de 3 CDE de la façon suivante :

L'ensemble du registre est décalé d'une position vers la gauche. A chaque nouvelle transition, le bit de poids fort occupe le bit de poids faible :

Q3t Q2t Q1t Q3t+1 Q2t+1Q1t+1
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 1 0 0
0 1 1 1 1 0
1 0 0 0 0 1
1 0 1 0 1 1
1 1 0 1 0 1
1 1 1 1 1 1

d. Réalisation d'un registre à décalage circulaire à droite de taille 3 :

Le registre n'est qu'une interconnexion de 3 CDE de la façon suivante :

L'ensemble du registre est décalé d'une position vers la droite. A chaque nouvelle transition, le bit de poids faible occupe le bit de poids fort :

Q3t Q2t Q1t Q3t+1 Q2t+1Q1t+1
0 0 0 0 0 0
0 0 1 1 0 0
0 1 0 0 0 1
0 1 1 1 0 1
1 0 0 0 1 0
1 0 1 1 1 0
1 1 0 0 1 1
1 1 1 1 1 1

3. Registres arithmétiques et logiques :

Il existe plusieurs types de ces registres :


a. Réalisation d'un Registre de Complément à 1 :

Un registre Complément à 1 peut être réalisé à l'aide de bascules JK. Il consiste à inverser chaque bit xi. Le circuit peut être comme suit :

Cependant, ce circuit ne peut être utile sauf s'il est combiné avec un registre à chargement. Ainsi, on pourra y charger une valeur binaire et ensuite la complémenter à 1.


b. Réalisation d'un Additionneur Binaire

Un additionneur binaire permet d'obtenir la somme x ← x + y en binaire sur n bits. La réalisation de ce circuit est basée essentiellement sur le circuit de l'additionneur binaire élémentaire (ABE).

Note : A ne pas confondre avec les Demi et Plein-Additionneurs qui sont des circuits combinatoires.

Réalisation du circuit de l'additionneur binaire élémentaire (ABE) :

Le logigramme correspondant à ce circuit est :

cde

Il fonctionne selon le principe suivant :

xit+1 reçoit la somme binaire de xit et yi

Ri reçoit la retenue de cette somme

Pour obtenir le circuit logique, nous allons dresser la table d'excitation en utilisant des bascules T. Noter que xi réprésente la sortie de cette bascule.

Ri-1 yi xit xit+1 Ri Ti
0 0 0 0 0 0
0 0 1 1 0 0
0 1 0 1 0 1
0 1 1 0 1 1
1 0 0 1 0 1
1 0 1 0 1 1
1 1 0 0 1 0
1 1 1 1 1 0

On peut écrire les expressions algébriques comme suit :

Ti  
     yi
Ri-1xti
0 1
00 0 0
01 1 1
11 0 0
10 1 1
Ti = Ri-1 ⊕ xti

Ri  
     yi
Ri-1xti
0 1
00 0 0
01 0 1
11 1 1
10 0 1
Ri = Ri-1 xti + xti yi + Ri-1 yi

Le circuit logique de l'ABE est donc :

cde

Réalisation d'un additionneur binaire de taille 3 :

Le circuit n'est qu'une interconnexion de 3 ABE. Chaque nouvelle retenue d'un ABEi doit être passée comme une retenue d'entrée à l'ABEi+1. Nous concluons que ces deux derniers ne doivent pas travailler en même temps (en la même période horloge) mais pendant des périodes qui se suivent.

Cet additionneur binnaire réalise la somme en 3 périodes d'horloge. Supposons que x = (x3 x2 x1) = 011 et y = (y3 y2 y1) =010. La somme est réalisée comme suit :

Période CK3  CK2 CK1   x3  x2 x1 Observation
Initialement 0 0 0   0 1 1  
1 0 0 1   0 1 1 x1 ← x1 + y1 + 0 = 1
R1= 0
2 0 1 0   0 0 1 x2 ← x2 + y2 + R1 = 0
R2= 1
3 1 0 0   1 0 1 x3 ← x3 + y3 + R2 = 1
R= 0

Les 3 horloges peuvent être controlées par un décodeur 2x4. Lorsque R est égal à 1 on dit qu'il y a un dépassement de capacité (overflow).


c. Réalisation d'un Registre de Complément à 2

Le registre complément à 2 est une combinaison du registre à chargement, du complément à 1 et de l'additionneur binaire. Par exemple, pour complémenter à 2 la valeur de x = (x3 x2 x1) = 011, on suit les étapes suivantes :

  1. On charge (x3 x2 x1) dans le registre. On a 011 dans le registre.
  2. On complémente à 1. On obtient 100 dans le registre
  3. On additionne avec 1. On obtient 101dans le registre.

d. Réalisation d'un Soustracteur en Complément à 2

Le registre complément à 2 est une combinaison du registre à chargement, du complément à 1 et de l'additionneur binaire. Par exemple, pour calculer x - y, sachant que x = (x3 x2 x1) = 011 et y = (y3 y2 y1) =010, on suit les étapes suivantes :

  1. On charge y = (y3 y2 y1) dans le resgitre. On a 010 dans le registre.
  2. On complémente à 1. On obtient 101 dans le registre
  3. On additionne 1 (Complément à 2). On obtient 110 dans le registre.
  4. On additionne avec x = (x3 x2 x1). On obtient 001 dans le registre.

e. Réalisation d'un Multiplicateur Binaire

To be continued


f. Réalisation d'un Diviseur Binaire

To be continued