enonce_td3.pdf

2
TD 3 11 TD 3 - C IRCUITS SÉQUENTIELS Comparaison des circuits séquentiels élémentaires, banc de registres et registres à décalages. Page web : http://www-rocq.inria.fr/ ~ acohen/teach/archi.html Support : seq.lgf contient les circuits séquentiels de base, reg_mask.lgf propose un masque du banc de registres. Exercice 3.1 - Banc de registres On souhaite réaliser un banc de registres en DigLog. Le banc de registres vu en cours comporte : 1. un circuit séquentiel de mémorisation, généralement une bascule D, pour chaque bit de chaque registre du banc ; 2. un port d’écriture comportant un décodeur pour sélectionner le numéro de reg- istre qui doit être modifié (e.g., le résultat d’une addition) ; 3. deux ports de lecture constitués de multiplexeurs pour sélectionner les deux reg- istres que l’on souhaite lire (e.g., les opérandes d’une addition). D’autre-part, on rappelle qu’une bascule D est constituée de deux latches en séquence avec une horloge inversée; ce circuit joue le rôle d’un « sas » dont les « portes » s’ac- tivent lors des phases descendantes et ascendantes de l’horloge. Question 3.1.1 Afin de préciser les caractéristiques des latches et des bascules, comparer le com- portement des deux « chaînes » de circuits séquentiels de la figure 2 ; ces circuits sont disponible dans le fichier seq.lgf. En particulier, essayer de reproduire un motif déter- miné sur les 5 LEDs de chaque chaîne, par exemple 10011 ou 01010 (en détaillant la méthode employée). Question 3.1.2 Construire un banc de 8 registres 16-bits, avec un port d’écriture et deux ports de lecture (pour la lisibilité du circuit, on construira en fait un banc de 8 registres 1-bit que l’on utilisera 16 fois).Penser à utiliser efficacement la composition hiérarchique des éléments (bascules D, décodeur, multiplexeurs) en DigLog. 12 TD 3 DFLIPFLOP_1b DLATCH_1b DLATCH_1b DLATCH_1b RS_1b DFLIPFLOP_1b DFLIPFLOP_1b DFLIPFLOP_1b DLATCH_1b DLATCH_1b DLATCH_1b RS_1b 5 4 3 2 1 CLOCK Latches D 5 4 3 2 1 CLOCK D CLOCK D "DFLIPFLOP_1b" Flip-Flops CLOCK D "RS_1b" "DLATCH_1b" FIG. 2 – Circuit séquentiels élémentaires Exercice 3.2 - Registre à décalage Outre les registres classiques, un processeur contient souvent des registres à dé- calage utilisés pour des manipulations de bits, des calculs d’adresses et des opérations logiques. On veut maintenant construire un tel registre à décalage. Question 3.2.1 En utilisant le registre 1-bit défini dans le fichier reg_mask.lgf, réaliser un registre 4-bits capable d’effectuer un décalage de 1 bit vers la gauche ou vers la droite en un cy- cle (à partir de la valeur enregistrée). On effectuera un décalage « logique », c’est-à-dire que l’on introduira des 0 à droite ou à gauche, respectivement. Le registre doit pouvoir se comporter soit comme un registre classique, soit comme un registre à décalage ; on

Upload: koko

Post on 26-Oct-2015

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: enonce_td3.pdf

TD 3 11

TD 3 - CIRCUITS SÉQUENTIELS

Comparaison des circuits séquentiels élémentaires, banc de registres et registres àdécalages.Page web : http://www-rocq.inria.fr/~acohen/teach/archi.htmlSupport : seq.lgf contient les circuits séquentiels de base, reg_mask.lgf propose unmasque du banc de registres.

Exercice 3.1 - Banc de registres

On souhaite réaliser un banc de registres en DigLog.Le banc de registres vu en cours comporte :

1. un circuit séquentiel de mémorisation, généralement une bascule D, pour chaquebit de chaque registre du banc ;

2. un port d’écriture comportant un décodeur pour sélectionner le numéro de reg-istre qui doit être modifié (e.g., le résultat d’une addition) ;

3. deux ports de lecture constitués de multiplexeurs pour sélectionner les deux reg-istres que l’on souhaite lire (e.g., les opérandes d’une addition).

D’autre-part, on rappelle qu’une bascule D est constituée de deux latches en séquenceavec une horloge inversée ; ce circuit joue le rôle d’un « sas » dont les « portes » s’ac-tivent lors des phases descendantes et ascendantes de l’horloge.

Question 3.1.1Afin de préciser les caractéristiques des latches et des bascules, comparer le com-

portement des deux « chaînes » de circuits séquentiels de la figure 2 ; ces circuits sontdisponible dans le fichier seq.lgf. En particulier, essayer de reproduire un motif déter-miné sur les 5 LEDs de chaque chaîne, par exemple 10011 ou 01010 (en détaillant laméthode employée).

Question 3.1.2Construire un banc de 8 registres 16-bits, avec un port d’écriture et deux ports de

lecture (pour la lisibilité du circuit, on construira en fait un banc de 8 registres 1-bitque l’on utilisera 16 fois).Penser à utiliser efficacement la composition hiérarchiquedes éléments (bascules D, décodeur, multiplexeurs) en DigLog.

12 TD 3

DFLIPFLOP_1b

DLATCH_1bDLATCH_1b

DLATCH_1b

RS_1bDFLIPFLOP_1b DFLIPFLOP_1b DFLIPFLOP_1b

DLATCH_1bDLATCH_1bDLATCH_1b

RS_1b

54321

CLOCK

Latches

D

54321

CLOCK

D

CLOCK

D

"DFLIPFLOP_1b"

Flip-Flops

CLOCK

D"RS_1b" "DLATCH_1b"

FIG. 2 – Circuit séquentiels élémentaires

Exercice 3.2 - Registre à décalage

Outre les registres classiques, un processeur contient souvent des registres à dé-calage utilisés pour des manipulations de bits, des calculs d’adresses et des opérationslogiques. On veut maintenant construire un tel registre à décalage.

Question 3.2.1En utilisant le registre 1-bit défini dans le fichier reg_mask.lgf, réaliser un registre

4-bits capable d’effectuer un décalage de 1 bit vers la gauche ou vers la droite en un cy-cle (à partir de la valeur enregistrée). On effectuera un décalage « logique », c’est-à-direque l’on introduira des 0 à droite ou à gauche, respectivement. Le registre doit pouvoirse comporter soit comme un registre classique, soit comme un registre à décalage ; on

Page 2: enonce_td3.pdf

TD 3 13

dispose pour cela d’un signal NEW (1 = registre classique, 0 = registre à décalage). Ondispose également d’un signal DIR indiquant la direction du décalage (1 = décalage àdroite, 0 = décalage à gauche).

Question 3.2.2En utilisant un circuit combinatoire réalisé à la question précédente, construisez

maintenant un circuit capable d’effectuer d décalages, 0 ≤ d < 4, à droite ou à gauchesur un mot de 4 bits, en un seul cycle. Un tel circuit s’appelle un barrel shifter.

Question 3.2.3Pour un mot de n bits, quel est le nombre de multiplexeurs qu’un bit donné doit

traverser lors d’un décalage de d bits, 0 ≤ d < n ?Quelles seraient les conséquences si l’on cherchait à réduire encore la latence de

traversée du registre à décalage ?

Exercice 3.3 (facultatif) - Compléments sur le décalage

On étend le registre à décalage avec des opérations supplémentaires.

Question 3.3.1Modifier le barrel shifter pour permettre le décalage logique, ainsi que la rotation

de d bits vers la gauche ou vers la droite.

Question 3.3.2Si l’on considère maintenant que le registre à décalage ci-dessus contient un nombre

représenté en complément à 2, quel est l’effet d’un décalage à droite ? à gauche ? Enquoi le décalage d’un nombre est-il différent du décalage logique ? Le décalage d’unnombre s’appelle le décalage « arithmétique ». Modifier le circuit ci-dessus pour qu’ilpuisse effectuer soit un décalage logique, soit un décalage arithmétique.

14 TD 3