Corrige-TD04

Embed Size (px)

Citation preview

  • 8/3/2019 Corrige-TD04

    1/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 : AB = (A +B) (A +B)

    (A +B) (A +B)

    A

    B

    Mme question en exprimant xor comme une somme de produits.

    Correction : AB = A B +A BA

    B

    A B +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

    B

    AA B

    A B = A B

    A

    B

    A

    B

    A B = A +B

    B

    AA

    B

    A B

    A B

    A B A B = AB

    3. Raliser un circuit logique qui implmente la fonction F.

    F = (A +B +C) (A +B +C) (A +B +C)

    Correction :

    1

  • 8/3/2019 Corrige-TD04

    2/7

    A

    B

    C

    F

    4. Un gnrateur de parit impaire est une fonction qui retourne 1 si le nombre de bits 1 est impair et 0 sinon.

    Dfinir 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 CD +A B CD +A B CD +A B CD

    +

    +A B CD +A B CD +A B CD +A B CD

    ce qui donnerait un circuit beaucoup trop compliqu !

    On remarque que pour deux bits, P = AB :

    A B P

    0 0 0

    0 1 1

    1 0 1

    1 1 0

    On en dduit les circuits suivants :

    A

    B

    C

    D

    P ou

    A

    B

    C

    D

    P

    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).

    y x

    R

    S

    HA

    x y R S

    0 0 0 0

    0 1 0 1

    1 0 0 1

    1 1 1 0

    S = xy

    R = x y

    Un additionneur complet sobtient en enchanant des demi-additionneurs de manire propager correctementla retenue.

    On obtient selon le mme principe le circuit effectuant un complment deux :En

    1

    E0E1E2E3

    Sn S3 S2 S1 S0

    HA HAHAHAHA

    2

  • 8/3/2019 Corrige-TD04

    3/7

    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 . . .A1A0 le nombre binaire dcrmenter. Appelons Sn1 . . .S1S0 le rsultat de la dcrmen-

    tation.

    On sait que S est obtenu par soustraction de 1 et propagation de la retenue (Ri). On a donc :

    S0 = A0 1 :

    A0 1 S0 R00 1 1 1

    1 1 0 0

    S0 = A0

    R0 = A0

    et Si = Ai Ri1 :

    Ai Ri1 Si Ri0 0 0 0

    0 1 1 1

    1 0 1 0

    1 1 0 0

    Si = Ai Ri1

    Ri = Ai Ri1

    Do le circuit :An

    Sn

    A3

    S3 S2

    A2 A1

    S1 S0

    A0

    Overflow

    R0R1R2R3Rn1

    7. Le soustracteur

    (a) Raliser un demi-soustracteur (table de vrit et circuit).

    Correction : Le demi-soustracteur est dfini par la table de vrit suivante (le bit B i est retranch au bit

    Ai) :

    Ai Bi Di Ri0 0 0 0

    0 1 1 1

    1 0 1 0

    1 1 0 0

    Di contient la diffrence Ai BiRi contient la retenue ventuelle

    On a donc :

    Di = Ai Bi

    Ri = Ai Bi

    Do le circuit logique :

    3

  • 8/3/2019 Corrige-TD04

    4/7

    Di = Ai Bi

    Ri = Ai Bi

    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 Ai Bi Di Ri0 0 0 0 0

    0 0 1 1 1

    0 1 0 1 0

    0 1 1 0 0

    1 0 0 1 1

    1 0 1 0 1

    1 1 0 0 0

    1 1 1 1 1

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

    = (AiBi)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

    do le circuit :Ai Bi

    Ai Bi

    Ai

    Bi

    Ri1

    Di = Ai Bi Ri1

    Ri = Ai Bi +(Ai Bi ) Ri1

    HSHS

    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 engendrerune 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 :

    Bi Ri1

    Ai

    Ri1

    Bi

    Ri = Ai (Bi Ri1)+ Bi Ri1

    Di = Ai Bi Ri1

    Bi Ri1

    Ai (Bi Ri1)

    HA

    HS

    (c) Raliser un soustracteur parallle pour mots de 8 bits.

    Correction : On utilise 8 soustracteurs complets :A0B0

    D0

    R0

    A1B1

    D1

    R1

    A2B2

    D2

    R2

    A3B3

    D3

    R3

    A4B4

    D4

    R4

    A5

    D5

    B5

    R5

    A6B6

    D6

    R6

    A7B7

    D7

    R7

    Overflow

    0FS FS FS FS FS FS FS FS

    4

  • 8/3/2019 Corrige-TD04

    5/7

    8. Le (d)multiplexeur

    Un multiplexeurest 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 configuration binaire prsente sur les n lignes de

    slection, lune des entres la sortie. Les n lignes de slection diffrencient 2n configurations binaires, chacune

    de ces configurations 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 2 n sorties et de n

    lignes de slection. Son principe de fonctionnement, linverse de celui du multiplexeur, consiste connecter,

    selon la configuration 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. fig. 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. fig. 2).

    I0

    I1

    I2

    I3

    S1 S0

    O

    FIG . 1 Multiplexeur 4 voies.

    S1 S0I

    O0

    O1

    O2

    O3

    FIG . 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

    simplification. 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.

    S2

    S1E

    S

    5

  • 8/3/2019 Corrige-TD04

    6/7

    Correction :

    S1 = E

    S2 = EE = 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

    0

    0

    0

    0

    1

    1

    1

    t

    Entre E

    Sortie S1

    Sortie S2

    Sortie S

    Correction :

    1

    0

    0

    0

    0

    1

    1

    1

    t

    Entre E

    Sortie S1

    Sortie S2

    Sortie S

    Ce circuit se comporte comme un dtecteur de transitions. Il peut tre simplifi en remplaant le nand

    et le deuxime not par un and, carnot(nand(a,b)) = and(a,b).

    (b) Exemples de mise profit 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

    S10

    E

    Correction :

    S1 = E0 = E (cest la fonction identit, mais avec un dlai)

    S = EE = 0

    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

    0

    0

    1

    Entre E

    Sortie S1

    1

    0Sortie S

    t

    6

  • 8/3/2019 Corrige-TD04

    7/7

    Correction :

    1

    0

    0

    1

    Entre E

    Sortie S1

    1

    0Sortie S

    t

    iii. Raliser un dtecteur de transitions pour lequel la dure des impulsions en S est de 3t.

    Correction : Il suffit 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.

    S4

    32

    1E

    0

    31E

    S

    0 2

    4

    (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 filtrent ensuite les cas souhaits. Ici, on utilise une porte not etand.

    S1

    SE 1

    2

    1

    0

    0

    1

    Entre E

    Sortie S1

    1

    0Sortie S

    t

    (d) Raliser un dtecteur de front descendant, cest--dire un dtecteur de transitions qui ne rpond que lorsquele signal dentre passe dun niveau haut un niveau bas.

    Correction : Ici on utilise une porte logique not etnor.

    S1

    SE

    1

    0

    0

    1

    Entre E

    Sortie S1

    1

    0Sortie S

    t

    7