You are on page 1of 7

Architecture des ordinateurs Corrig du TD 4 : Circuits combinatoires

Arnaud Giersch, Benot Meister et Frdric Vivien


1. Exprimer la fonction xor comme un produit de sommes et raliser le circuit logique correspondant. Correction : A B = (A + B) (A + B)
A B (A + B) (A + B)

Mme question en exprimant xor comme une somme de produits. Correction : A B = A B + A B


A B AB+A+B

2. La fonction nand formant un groupe logique complet, raliser, uniquement avec des portes nand, les circuits logiques not, and, or et xor (les formules sont rappeles ci-dessous). not(A) = nand(A, A) and(A, B) = nand(nand(A, B), nand(A, B)) or(A, B) = nand(nand(A, A), nand(B, B)) xor(A, B) = nand(nand(nand(A, A), B), nand(A, nand(B, B))) Correction :
A A A B A A A AB = A+B B B A AB ABAB = AB AB AB = AB

B B

AB

3. Raliser un circuit logique qui implmente la fonction F. F = (A + B +C) (A + B +C) (A + B +C) Correction :

A B C

4. Un gnrateur de parit impaire est une fonction qui retourne 1 si le nombre de bits 1 est impair et 0 sinon. Dnir cette fonction pour un mot de 4 bits. Donner un circuit logique implmentant cette fonction. Correction : La formule pour le gnrateur de parit impaire sur 4 bits (P) obtenue directement partir de la table de vrit est : P =A B C D + A B C D + A B C D + A B C D + + A B C D + A B C D + A B C D + A B C D ce qui donnerait un circuit beaucoup trop compliqu ! On remarque que pour deux bits, P = A B : A 0 0 1 1 On en dduit les circuits suivants :
A A B P C D B

B 0 1 0 1

P 0 1 1 0

ou

C P D

5. Rappeler les principes dun demi-additionneur puis dun additionneur complet. Dduire de ces principes un circuit logique qui implmente le complment 2 sur n bits. Correction : Le demi-additionneur possde deux entres (x et y) et deux sorties (R et S). S correspond au bit de rang zro du rsultat de laddition binaire de x et y, R au bit de rang 1 (retenue). x y R S 0 0 0 0 R HA S = xy 0 1 0 1 1 0 0 1 R = xy S 1 1 1 0 Un additionneur complet sobtient en enchanant des demi-additionneurs de manire propager correctement la retenue. On obtient selon le mme principe le circuit effectuant un complment deux :
yx En E3 E2 E1 E0

HA

HA

HA

HA

HA

Sn

S3

S2

S1

S0

6. Raliser un circuit pour un dcrmenteur n bits. Correction : On pourrait imaginer utiliser un soustracteur avec le deuxime oprande gal 1 pour raliser un dcrmenteur. Or la dcrmentation (comme lincrmentation) est une opration frquente sur certains registres (compteur ordinal, registre dindex, registre dadresse, . . .). Donc pour gagner du temps on souhaite construire un circuit spcialis. Considrons An1 . . . A1 A0 le nombre binaire dcrmenter. Appelons Sn1 . . . S1 S0 le rsultat de la dcrmentation. On sait que S est obtenu par soustraction de 1 et propagation de la retenue (Ri ). On a donc : S0 = A0 1 : A0 0 1 et Si = Ai Ri1 : Ai 0 0 1 1 Do le circuit :
An A3 A2 A1 A0

1 1 1

S0 1 0

R0 1 0

S0 = A0 R0 = A0

Ri1 0 1 0 1

Si 0 1 1 0

Ri 0 1 0 0

Si = Ai Ri1 Ri = Ai Ri1

Rn1

R3

R2

R1

R0

Overow

Sn

S3

S2

S1

S0

7. Le soustracteur (a) Raliser un demi-soustracteur (table de vrit et circuit). Correction : Le demi-soustracteur est dni par la table de vrit suivante (le bit Bi est retranch au bit Ai ) : Ai Bi Di Ri 0 0 0 0 Di contient la diffrence Ai Bi 0 1 1 1 Ri contient la retenue ventuelle 1 0 1 0 1 1 0 0 On a donc : Di = Ai Bi Ri = Ai Bi Do le circuit logique : 3

Ai Bi

Di = Ai Bi

Ri = Ai Bi

(b) Raliser un soustracteur binaire complet (ou tage de soustracteur) selon deux modes : i. avec deux demi-soustracteurs ; Correction : Pour obtenir un soustracteur binaire complet il faut prendre en compte lventuelle retenue prcdente Ri1 . La table de vrit est : Ri1 0 0 0 0 1 1 1 1 do le circuit :
Ai Bi Ri1 Ai Bi

Ai 0 0 1 1 0 0 1 1

Bi 0 1 0 1 0 1 0 1

Di 0 1 1 0 1 0 0 1

Ri 0 1 0 0 1 1 0 1

Di = Ri1 (Ai Bi ) + Ri1 (Ai Bi ) = (Ai Bi ) Ri1 Ri = Ri1 Ai Bi + Ri1 Ai Bi + Ri1 Ai Bi + Ri1 Ai Bi = Ai Bi (Ri1 + Ri1 ) + (Ai Bi + Ai Bi ) Ri1 = Ai Bi + (Ai Bi ) Ri1
Di = Ai Bi Ri1 Ri = Ai Bi + (Ai Bi ) Ri1

HS

Ai Bi

HS

Ce schma correspond au fait que le soustracteur est ralis en (1) retranchant Bi de Ai (1er demi-soustracteur) ; (2) puis en retranchant Rii de la diffrence obtenue. ii. avec un demi-additionneur et un demi-soustracteur. Correction : Une autre manire de procder consiste : (1) additionner Bi et Ri1 avec un demi-additionneur (cette opration peut videmment engendrer une retenue) ; (2) puis en retrancher le rsultat obtenu de Ai . Cela est obtenu par transformation des fonctions logiques : Di = Ai (Bi Ri1 ) Ri = Ai (Bi Ri1 + Bi Ri1 ) + (Ai + Ai ) Bi Ri1 = Ai (Bi Ri1 ) + Bi Ri1 do le circuit :
Ai Bi Ri1 Bi Ri1 Di = Ai Bi Ri1 Ai (Bi Ri1 ) Ri = Ai (Bi Ri1 ) + Bi Ri1

HS

HA

Bi Ri1

(c) Raliser un soustracteur parallle pour mots de 8 bits. Correction : On utilise 8 soustracteurs complets :
B7 R7 A7 R6 B6 A6 R5 B5 A5 R4 B4 A4 R3 B3 A3 R2 B2 A2 R1 B1 A1 R0 B0 A0

FS

FS

FS

FS

FS

FS

FS

FS

Overow

D7

D6

D5

D4

D3

D2

D1

D0

8. Le (d)multiplexeur Un multiplexeur est un circuit logique qui dispose de 2n entres, dune unique sortie et de n lignes de slection. Son principe de fonctionnement consiste connecter, selon la conguration binaire prsente sur les n lignes de slection, lune des entres la sortie. Les n lignes de slection diffrencient 2n congurations binaires, chacune de ces congurations correspondant lentre du multiplexeur qui doit tre connecte la sortie. Un dmultiplexeur, pour sa part, est un circuit logique qui dispose dune unique entre, de 2n sorties et de n lignes de slection. Son principe de fonctionnement, linverse de celui du multiplexeur, consiste connecter, selon la conguration binaire prsente sur les lignes de slection, lentre lune des sorties. (a) Raliser un multiplexeur quatre voies (cest--dire un multiplexeur quatre entres). Correction : Soit S0 , S1 les lignes de slection, I0 , . . . , I4 les entres et O la sortie (cf. g. 1). (b) Raliser un dmultiplexeur quatre voies (cest--dire un dmultiplexeur quatre sorties). Correction : Soit S0 , S1 les lignes de slection, I lentre et O0 , . . . , O3 les sorties (cf. g. 2).
I0

I1 O0 O1 O I2 O2 O3

I3

S1

S0

S1

S0

F IG . 1 Multiplexeur 4 voies.

F IG . 2 Dmultiplexeur 4 voies.

9. Les hasards logiques Le temps de passage dune porte logique est la dure entre linstant o les signaux sont appliqus lentre et celui o leur effet se rpercute en sortie. Jusqu prsent, ce temps de passage a t ignor dans un souci de simplication. Toutefois, le temps de passage dune porte logique nest jamais nul (de lordre de 5 25 ns). Si un tage logique est construit laide de portes logiques (cest--dire si la sortie dune porte logique attaque lune des entres de la porte logique suivante) alors le temps de passage de ltage est au moins gal la somme des temps de passage des portes logiques qui le composent : dans ce cas, les temps de passage sajoutent. Il en rsulte quun changement des donnes en entre dun montage, non seulement mettra un certain temps se rpercuter en sortie, mais pourra en plus provoquer des changements dtat (impulsions) non souhaits la sortie. De telles impulsions parasites sont appeles hasards logiques. (a) Mise en vidence dun hasard logique. i. Exprimer la valeur de la sortie S du circuit ci-dessous en fonction de son entre E.
S1 E S2 S

Correction : S1 = E S2 = E E = 1 S = S2 = 1 = 0

ii. Complter le chronogramme suivant de ce circuit (on considre que toutes les portes logiques mises en jeu ont un mme temps de passage t).
1 Entre E 0 Sortie S1 Sortie S2 1 0 1 0

1 Sortie S 0 t

Correction :
1 Entre E 0 Sortie S1 Sortie S2 1 0 1 0

1 Sortie S 0 t

Ce circuit se comporte comme un dtecteur de transitions. Il peut tre simpli en remplaant le nand et le deuxime not par un and, car not(nand(a, b)) = and(a, b). (b) Exemples de mise prot des hasards logiques : dtecteur de transitions. i. Exprimer la valeur de la sortie S du circuit ci-dessous en fonction de son entre E.
S E 0 S1

Correction : S1 = E 0 = E S = E E = 0 (cest la fonction identit, mais avec un dlai)

La sortie de ce circuit devrait donc toujours valoir 0. Mais le retard introduit par le premier xor implique que tout changement dun tat de E entrane une impulsion positive de S comme le montre le chronogramme ci-dessous. ii. Complter le chronogramme suivant de ce circuit (on considre que toutes les portes logiques mises en jeu ont un mme temps de passage t).
1 Entre E 0 Sortie S1 1 0

1 Sortie S 0 t

Correction :
1 Entre E 0 Sortie S1 1 0

1 Sortie S 0 t

iii. Raliser un dtecteur de transitions pour lequel la dure des impulsions en S est de 3t. Correction : Il suft davoir un dlai de 3t entre les deux entres du xor. Ce dlai peut tre obtenu en ajoutant au circuit prcdent deux portes xor, ou laide dun autre circuit ralisant lidentit avec un dlai de 3t, comme par exemple un xor et deux not.
4 S 4 E 1 0 2 E 3 0 1 2 3 S

(c) Raliser un dtecteur de front montant, cest--dire un dtecteur de transitions qui ne rpond que lorsque le signal dentre passe dun niveau bas un niveau haut. Correction : On se base toujours sur un dlai entre deux entres dune porte logique. Les portes logiques choisies ltrent ensuite les cas souhaits. Ici, on utilise une porte not et and.
1 Entre E 0 E S1 1 2 S Sortie S1 1 0

1 Sortie S 0 t

(d) Raliser un dtecteur de front descendant, cest--dire un dtecteur de transitions qui ne rpond que lorsque le signal dentre passe dun niveau haut un niveau bas. Correction : Ici on utilise une porte logique not et nor.
1 Entre E 0 E S1 S Sortie S1 1 0

1 Sortie S 0 t