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