correction
Transcription
correction
ASR1 bis IUT A de Lille – USTL DUT Informatique 1A 2007–2008 Architecture des ordinateurs TD 4 : Circuits logiques Exercice 1 Circuit mystèrieux Le circuit de la Figure 1, réalisé en technologie cmos, posséde 3 entrées, x1 , x2 et s, et une sortie y. 1. Quels sont les transistors nmos et les pmos dans ce circuit ? T1 et T3 sont des nmos et sont des pmos car il y a un petit cercle dans leur représentation. C’est une histoire de convention de représentation ... 2. Déterminer la fonction de transfert du circuit, c’est-à-dire l’expression de y en fonction des entrées. Pour cela, déterminer si les transistors sont passants ou bloquants en fonction de la valeur de s. s T1 x1 T2 y s T3 x2 T4 s Fig. 1 – Circuit mystèrieux en technologie cmos. L’état des transistors en fonction de l’entrée s donné dans la Table 1 indique que si s = 1 alors x1 est déconnecté de y (T1 et T2 sont bloqués) et x2 est connecté à y (T3 et T4 sont passant), donc y = x2 , et si s = 0, c’est le contraire, y = x1 . La fonction de transfert peut donc s’écrire y = sx1 + sx2 . Ce circuit est un multiplexeur 2 → 1. L’entrée s est l’entrée de séléction, suivant sa valeur la sortie prendra la valeur de l’une ou l’autre des entrées. On peut construire des multiplexeurs 2n → 1 à n entrées de séléction qui permettent d’aiguiller l’une des 2n entrées vers la sortie y. La Figure 2 donne la représentation symbolique d’un multiplexeur 2 → 1. 3. Quel est l’intérêt de connecter les entrées à la sortie à travers à la fois des transitors nmos et pmos qui ont le même état (bloquant ou passant suivant s) au même moment ? Les transistors nmos transmettent très bien le 0 mais moins bien le 1, alors que les pmos transmettent très bien le 1 et moins bien le 1. Utiliser les deux simultanément permet donc de transmettre très bien à la fois le 1 et le 0. 1 T1 T2 T3 T4 s=1 s=0 s=1 bloqué — — bloqué x1 – –y — passant passant — x2 —–y y = x2 s=0 s=0 s=1 passant — — passant x1 —–y — bloqué bloqué — x2 – –y y = x1 Tab. 1 – Etat des transistors en fonction de l’entrée s. s x1 0 x2 1 y Fig. 2 – Schéma symbolique d’un multiplexeur 2 → 1. Exercice 2 Conception d’un additionneur-soustracteur n bits L’objectif de cet exercice est la réalisation d’un additionneur-soustracteur n bits pour des entiers naturels. 1. La première étape consiste à réaliser un additionneur 1 bit prenant en entrée les deux bits a et b à additionner. La seconde est d’utiliser ces circuits pour former un additionneur n bits. Quelles doivent être les entrées/sorties de l’additionneur 1 bit pour pouvoir l’utiliser dans la construction de l’additionneur n bits ? Représenter l’additionneur 1 bit sous forme de boı̂te en indiquant ses entrées/sorties. Pour faire une addition entre deux entiers naturels on commence par additionner les deux bits de poids faible a et b, ce qui nous donne deux informations : le bit de poids faible r du résultat de l’addition et la retenue c (carry) à utiliser pour le calcul des bits de poids 1. Pour avoir le résultat correcte de l’addition des deux bits de poids 1 il est nécessaire d’utiliser cette retenue. On déduit de celà que l’additionneur 1 bit doit avoir : – 3 entrées : a et b à additionner et une entrée e pouvant jouer le rôle de la retenue si nécessaire, – 2 sorties : r le résultat et c la retenue. 2. Donner un schema logique pour l’additionneur n bits en utilisant l’additionneur 1 bit comme circuit de base. On branche simplement la sortie ’retenue’ ci−1 de l’additionneur réalisant l’addition des bits de poids i − 1 sur l’entrée ei de l’additionneur correspondant aux bits de poids i comme sur la Figure 4. 3. Quelles informations peut-on obtenir en sortie de l’additionneur n bits ? 2 a c b additionneur 1 bit e r Fig. 3 – Entrées/Sortie de l’additionneur 1 bit. b n−1 a n−1 c n−1 additionneur 1 bit r n−1 b n−2 a n−2 c n−2 additionneur 1 bit b2 c n−3 a2 b1 a1 c 2 additionneur c 1 additionneur 1 bit 1 bit r2 r n−2 r1 b0 a0 c 0 additionneur 1 bit e0 = 0 r0 Fig. 4 – Additionneur n bits. On obtient le résultat grâce aux sorties ri , mais aussi si l’addition à donné lieux à un dépassement de capacité grâce à la sortie cn−1 . Cette sortie vaut 1 en cas de débordement et 0 sinon. 4. En utilisant les propriétés du codage des entiers relatifs en complément à deux et le mode de calcule du complément à deux, proposer une opération alternative à la soustraction. Sur n bits, soustraire deux entiers naturels A et B codés sur n bits revient à additionner A et le complément à deux de B soit 2n −B. Pour obtenir ce complément à deux, il suffit d’inverser tous les bits de B, c’est-à-dire de calculer B, et d’ajouter 1. La soustraction A − B revient donc à l’opération A + B + 1. 5. Proposer un circuit pouvant réaliser la soustraction sur n bits à partir d’un additionneur n bits. Pour calculer l’inverse B de B, il suffit d’utiliser n inverseurs, un pour chaque bit de B, avant l’entrée de l’additionneur. Pour ajouter 1 il suffit de forcer à 1 l’entrée ’retenue’ e0 de l’additionneur 1 bit correspondant au bit de poids 0. La Figure 5 représente un tel circuit. 6. Proposer un circuit utilisant un unique additionneur n bits qui peut réaliser soit l’addition soit la soustraction sur n bits suivant la valeur d’une nouvelle entrée : OP . Par exemple si OP vaut 0 le circuit réalise l’addition de A et B et si OP vaut 1, c’est la soustraction A − B qui est effectuée. Pour l’addition, l’entrée ’retenue’ e0 doit être à 0=OP et pour la soustraction e0 doit être à 1=OP , donc on peut brancher OP directement à e0 . Ensuite l’opérande B doit être inversée seulement dans le cas de la soustraction. A partir de l’entrée B il faut donc pouvoir choisir entre B et B avant l’entrée de l’additionneur suivant la valeur de OP . Pour celà nous pouvons utiliser n multiplexeurs à deux entrées, un pour choisir entre chaque bit de B et son complémantaire, ce qui donne le circuit additionneur-soustracteur de la Figure 6. 3 A n B n n 1 n R A D D C e0 Fig. 5 – Soustracteur n bits. A n B n 1 n n A D D n R C 0 e0 OP Fig. 6 – Additionneur-Soustracteur n bits. 7. Une fois que les valeurs d’entrée a, b et e de l’additionneur 1 bit sont toutes établies, un délai de ta1 unités de temps est nécessaire avant l’établissement des valeurs de sorties r et c correctes. Quel délai tan est nécessaire avant que toutes les sorties de l’additionneur n bits soient établies ? (NB : on considère que toutes les entrées ai et bi sont établies simultanément) Les sorties de l’additionneur 1 bit correspondant au bit poids fort (n−1) ne sont établies qu’apres un délai de ta1 une fois que toutes ses entrées sont établies, en particulier en−1 . Il faut donc attendre que les sorties de l’additionneur 1 bit correspondant au poids n−2 soient établies : tan = t1 + tan−1 avec tan−1 le délai d’un additionneur n − 1 bits. Le même raisonnement appliqué à l’additionneur n − 1 bits donne : tan−1 = ta1 + tan−2 . Récursivement on obtient : tan = i × ta1 + tan−i soit tan = n × ta1 . 8. Même question pour le délai maximum tas de l’additionneur-soustracteur. Soit tm le délai d’établissement des sorties du multiplexeur et tn le délai de la porte not. Une fois que l’entrée B est établie, il faut donc tn unités de temps avant que B soit disponible à l’entrée du multiplexeur. Ainsi l’opérande B ou B est disponible au plus tard après tn + tm unités de temps en sortie du multiplexeur. Il faut ensuite encore n × ta1 unités de temps pour obtenir les sorties de l’additionneur-soustracteur, soit au total : tas = tn + tm + n × ta1 . 4 x 0 0 1 1 y 0 1 0 1 and 0 0 0 1 or 0 1 1 1 nand 1 1 1 0 Tab. 2 – Table de valeur des opérateurs binaires and, or et nand. Exercice 3 Portes nand Toutes les expressions booléennes peuvent se représenter à l’aide des seuls opérateurs not, and et or. Cependant dans certaines technologies, comme la technologie cmos, il est impossible de réaliser directement les portes and et or. Il est par contre possible d’obtenir des portes nand et not. 1. Montrer comment on peut obtenir les trois opérateurs not, and et or uniquement à partir de l’opérateur nand. On commence par not car c’est le moins complexe, on peut s’en sortir uniquement en étudiant la table de vérité de nand, et ensuite on utilise le Théorème de De Morgan pour exprimer les autres en fonction de nand et de not. not : x = x.x nand (x, x) or : x + y = x + y = x.y = nand (x,y) = nand (nand (x, x),nand (y, y)) and : x.y = x.y = nand(x, y) = nand (nand (x, y),nand (x, y)) L’opérateur nand est un générateur unique. 2. Donner le schéma logique des trois opérateurs de base en utilisant uniquement des portes nand. x x+y x x (a) not x y y (b) or x.y (c) and Fig. 7 – Les opérateurs de base en fonction de portes nand uniquement. 5