تمارين مع الحلول الخوارزميات.pdf

Upload: chetaibayoucef

Post on 09-Oct-2015

379 views

Category:

Documents


37 download

TRANSCRIPT

  • 5/19/2018 .pdf

    1/16

    Architecture des ordinateurs

    premire partie des annalesArnaud Giersch, Benot Meister et Frdric Vivien

    1 TD 1 : Arithmtique des ordinateurs et codage

    1. Donner la valeur dcimale des entiers suivants, la base dans laquelle ces entiers sont cods tant prcise.

    (a) 1011011 et 101010 en binaire (base 2) ;

    Correction :10110112=9110,1010102=4210.

    (b) A1BE et C4F3 en hexadcimal (base 16) ;Correction :A1BE16=41 40610,C4F316=50 41910.

    (c) 77210 et 31337 en octal (base 8).

    Correction :772108=32 39210,313378=13 02310.

    2. Coder lentier 2 397 successivement en base 2, 8 et 16.

    Correction :2 39710=1001010111012=45358=95D16.

    3. Donner la valeur dcimale du nombre 10101, dans le cas o il est cod en base 2, 8 ou 16.

    Correction :101012=2110,101018=4 16110,1010116=65 79310.

    Mme question avec le nombre 6535 cod en base 8 ou 16.Correction :65358=3 42110,653516=25 90910.

    4. Combien dentiers positifs peut-on coder en binaire sur un octet ?

    Correction :Un octet contient 8 bits, on peut donc coder28 =256entiers.

    Combien de bits faut-il pour reprsenter 65 563 entiers diffrents en binaire ?

    Correction :Avec b bits, on peut coder2b entiers diffrents. Pour coder n entiers, il nous faut donc m bits tels que2m1

  • 5/19/2018 .pdf

    2/16

    6. Coder en binaire sur un octet les entiers 105 et 21 puis effectuer laddition binaire des entiers ainsi cods. Vrifierque le rsultat sur un octet est correct. Mme question avec les entiers 184 et 72.

    Correction :

    1101001 (105)+ 10101 (21)

    1111110 (126)

    10111000 (184)+ 1001000 (72)

    (1)00000000 (0)Ce rsultat est correct. Ce rsultat nest pas correct (sur 8 bits).

    7. Coder en binaire sur un octet les entiers 79 et 52 puis effectuer la multiplication binaire des entiers ainsi cods.Mme question avec les entiers 135 et 46.

    Correction :

    1001111 (79) 110100 (52)

    10011111001111

    + 10011111000000001100 (4108)

    10000111 (135) 101110 (46)

    1000011110000111

    10000111

    + 100001111100001000010 (6 210)

    8. Indiquer la valeur code par le mot de 16 bits 1101100101110101 suivant quil reprsente un entier non sign, ouun entier sign.

    Correction :En non sign, la valeur est11011001011101012=55 66910. En sign, le premier bit (bit de signe)vaut 1, cest donc un nombre ngatif dont la valeur est1011001011101012= 22 90110.

    Mme question avec le mot 1001000011101101.

    Correction :En non sign, la valeur est10010000111011012=37 10110. En sign, cest un nombre ngatif dontla valeur est10000111011012= 4 33310.

    2 TD 2 : Arithmtique des ordinateurs (suite)

    1. Indiquer la valeur code par la suite 1101100101110101 qui reprsente un entier sign en complment 2 sur 16bits.

    Correction :Cest un nombre ngatif. Complment 2 : 0010011010001011 donc 9867.

    Mme question avec la suite 1001000011101101.

    Correction :Cest un nombre ngatif. Complment 2 : 0110111100010011 donc 28435.

    2. Reprsentation binaire des entiers ngatifs

    (a) Coder sur 4 bits les entiers 7, 2, 0,2, 7 et 8 avec les reprsentations suivantes : signe et valeur absolue ;

    Correction :0111, 0010, 0000 ou 1000, 1010, 1111, n/a

    complment 1;

    Correction :0111, 0010, 0000 ou 1111, 1101, 1000, n/a

    complment 2.

    Correction :0111, 0010, 0000, 1110, 1001, 1000

    (b) Coder les entiers 61 et 61 sur un octet en utilisant la reprsentation par le signe et la valeur absolue. Montrerque laddition binaire de ces entiers ainsi cods produit un rsultat incorrect. Montrer quen revanche le rsultatest correct si ces entiers sont cods en utilisant la reprsentation par le complment 2.

    2

  • 5/19/2018 .pdf

    3/16

    Correction :

    Signe et valeur absolue : Complment deux :

    00111101+ 10111101

    11111010

    (61)(61)

    (122)

    00111101+ 11000011

    00000000

    (61)(61)

    (0)

    3. Effectuer en binaire (8 bits) les oprations 12, 51 +127, 3127, 127 + 127, 6363. Prciser, pour chaqueopration, la retenue et le dbordement.

    Correction :On code les nombres ngatifs en complment 2.

    Dbordement :

    Laddition de deux nombres de signes diffrents ne produit jamais de dbordement (la valeur absolue du rsultat

    est toujours infrieure au maximum des valeurs absolues des deux oprandes).

    Laddition de deux nombres de mme signe produit un dbordement si le signe du rsultat est diffrent du signe

    des deux oprandes.

    00000001 (1)

    + 11111110 (2)11111111 (1)

    00110011 (51)

    + 01111111 (127)10110010 (78)

    11111101 (3)

    + 10000001 (127)01111110 (126)

    retenue : 0, dbordement : 0 retenue : 0, dbordement : 1 retenue : 1, dbordement : 1

    10000001 (127)+ 01111111 (127)

    00000000 (0)

    11000001 (63)+ 11000001 (63)

    10000010 (126)

    retenue : 1, dbordement : 0 retenue : 1, dbordement : 0

    4. Reprsentation des rels

    (a) En virgule fixe, dcoder le nombre binaire 11.011 puis coder en binaire le rel 11.625.

    Correction :

    11.0112=121 + 120 + 021 + 122 + 123

    10= [2 + 1 + 0.25 + 0.125]10=3.37510

    11.62510= [8 + 2 + 1 + 0.5 + 0.125]10=23 + 21 + 20 + 21 + 23

    10=1011.1012

    (b) En virgule flottante normalise, coder en binaire au format simple prcision le rel 12.575

    Correction :

    12.57510=1100.1001001 . . .2=0.11001001001. . .10100

    2

    0|10000011|11001001001100110011001|

    puis effectuer le codage inverse.Correction :bit de signe = 0 nombre positif.exposant biais =100000112=13110 exposant :1000001101111111=1002=410la mantisse est normalise : 0.11001001001100110011001

    0.1100100100110011001100110100

    2=1100.10010011001100110012

    =23 + 22 + 21 + 24 + 27 + 28 + 211

    +212 + 215 + 216 + 219

    10

    =12.574998855590820312510

    3

  • 5/19/2018 .pdf

    4/16

    5. Oprations en virgule flottante.Soita=

    0.1001010101

    2etb=

    0.11010101

    2. Calculera + betab.

    Correction :Avant de faire laddition, il faut que les deux exposants soient gaux (a =1001101, b=0.1101101). Pour faire la multiplication, on multiplie les mantisses puis on additionne les exposants. Dans les deux cas,le rsultat doit ensuite tre normalis.

    1001.0000101

    + 0.1101101

    1001.1101101

    = 0.1001110110101

    0.100110101

    0.1101101

    10011001

    + 10010.0111010110110

    = 0.111010110101

    3 TD 3 : Algbre de Boole

    1. Montrer comment loprateuret peut tre obtenu partir des oprateursouet non. De mme pour loprateur

    ouavec les oprateursetetnon.Correction :non(a ou b) = (non a) et (non b) non((non a) ou (non b)) = a et bnon(a et b) = (non a) ou (non b) non((non a) et (non b)) = a ou b

    2. On note respectivement les oprateurs ou, et, xor et non par +, , et . Montrer laide de tables de vritqueAB=A B +A Bet queAB= (A +B) (A +B)

    Correction :Tables de vrits :

    A B A B AB A B A B A B +A B1 1 0 0 0 0 0 01 0 0 1 1 0 1 1

    0 1 1 0 1 1 0 10 0 1 1 0 0 0 0

    A B A B AB A +B A +B (A +B) (A +B)1 1 0 0 0 1 0 01 0 0 1 1 1 1 10 1 1 0 1 1 1 10 0 1 1 0 0 1 0

    3. Montrer queA + (A B) =A +Bet queA (A +B) =A B

    Correction :On utilise la distributivit de loprateurou sur loprateuret, et inversement :

    A + (A B) = (A +A).(A +B) =1.(A +B) =A +B

    A (A +B) = (A A) + (A B) =0 + (A B) =A B

    4. Dterminer le complment de lexpressionA +B C

    Correction :On utilise les lois de de Morgan ; loprateuret est prioritaire :

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

    5. Montrer que les deux rgles dassociativit sont duales, i.e. montrer qu partir de la rgle dassociativit deloprateurou, on peut dduire, en utilisant les lois de de Morgan, lassociativit de loprateur et (et inverse-ment).

    4

  • 5/19/2018 .pdf

    5/16

    Correction :

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

    A, B, et C sont des variables muettes. Par changement de variable {(A A), (B B), (C)C} on obtient laproprit dassociativit du ou : A (B C) = (A B) C

    6. crire lexpressionABuniquement avec les oprateursou,etetnonCorrection :Daprs 2. :

    AB=A B +A B AB=A B +A B AB= (A +B) (A +B)

    7. Montrer que la fonction norforme un groupe logique complet.

    Correction :Pour cela, on montre que la fonctionnor permet dexprimer tous les oprateurs logiques : non: nor(A,A) =A

    et: nor(nor(A,A),nor(B,B)) =nor(A,B) =A +B=A B

    ou: nor(nor(A,B),nor(A,B)) =nor(A,B) = (A +B) = (A +B).

    8. Simplifier au maximum les expressions logiques suivantes.

    (a) A B +A BCorrection :

    A B +A B= (A +A) B=1 B=B

    (b) (A +B) (A +B)

    Correction :

    (A +B) (A +B) =A +B B=A + 0=A

    (c) A +A B

    Correction :

    A +A B=A 1 +A B=A (1 +B) =A 1=A

    (d) A (A +B)

    Correction :

    A (A +B) = (A + 0) (A +B) =A + 0 B=A + 0=A

    (e) A B +A +B +C+D

    Correction :

    A B +A +B +C+D= (A +B) (A +B +C+D)

    = (A +B) ((A +B) + (C+D))

    donc, daprs lexercice 8d,

    =A +B

    (f) A +B C+A (B C) (A D +B)

    Correction :

    A +B C+A (B C) (A D +B) = (A +B C) + (A +B C) (A D +B)

    daprs lexercice 3,

    A +B C+A (B C) (A D +B) = (A +B C) + (A D +B) = (A +A D) + (B +B C)

    daprs lexercice 8c,

    A +B C+A (B C) (A D +B) =A +B

    5

  • 5/19/2018 .pdf

    6/16

    (g) (AB) B +A B

    Correction :

    daprs lexercice 2,

    (AB) B +A B= (A B +A B) B +A B=A B +A B B +A B

    =A B +A B

    daprs lexercice 8a,

    =B

    (h) A +A B +A B

    Correction :

    A +A B +A B= (A +A B) +A B

    daprs lexcercice 3,

    A +A B +A B= (A +B) + (A +B) =1

    9. Dmontrer que toute fonction trois variablesF(A,B,C)est gale

    F(A,B,C) =A F(1,B,C) +A F(0,B,C)

    Correction :A est une variable boolenne : les deux valeurs quelle peut prendre sont0et1: si A=0,0 F(1,B,C) + 1 F(0,B,C) =F(0,B,C) =F(A,B,C) ; si A=1,1 F(1,B,C) + 0 F(0,B,C) =F(1,B,C) =F(A,B,C).

    10. Montrer que les lois de de Morgan stendent un nombre quelconque de variables.

    Correction :

    (a) A1 A2 An= A1+A2+ +An avec n 2. La dmonstration se fait par rcurrence sur n (le nombre

    de variables).n=2 cest la loi de de Morgan basique ;

    n>2 on utilise lassociativit de+ et :

    A1 A2 An= (A1 A2 An1) An

    = (A1 A2 An1) +An

    = (A1+A2+ +An1) +An

    =A1+A2+ +An1+An

    (b) A1+A2+ +An= A1 A2 Anavec n 2. Le raisonnement est similaire.

    11. Gnration et simplification dexpressions logiques

    Considrer la fonction dfinie par la table de vrit ci-dessous :A B C F(A,B,C)0 0 0 00 0 1 10 1 0 10 1 1 01 0 0 11 0 1 11 1 0 11 1 1 0

    6

  • 5/19/2018 .pdf

    7/16

    (a) Gnrer une expression logique correspondante :

    i. sous forme de sommes de produits ;

    Correction :

    A B C+A B C+A B C+A B C+A B C

    ii. sous forme de produits de sommes.Correction :

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

    (b) Simplifier les deux expressions en utilisant les rgles de lalgbre de Boole.

    Correction :

    i.

    A B C+A B C+A B C+A B C+A B C

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

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

    = (A +C) B +B C

    =A B +B C+B C

    =A B + (BC)

    ii.

    (A +B +C) (A +B +C) (A +B +C)

    = (A A +A B +A C+B A +B B +B C+CA +CB +CC) (A +B +C)

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

    =A A +A B A +A CA +A B A +A CA +B CA +B CA +

    A B +A B B +A CB +A B B +A CB +B CB +B CB +

    A C+A B C+A CC+A B C+A CC+B CC+B CC

    =A B C+A B +A B C+A B C+A C+B C+B C

    = (A B) (1 +C+C) +B C+ (A + 1) (B C)

    =A B +B C+B C

    =A B + (BC)

    (c) Construire le diagramme de Karnaugh et dterminer une expression logique associe.

    Correction :Une table de Karnaugh se construit partir de lexpression logique sous forme de sommede produits. Dans la somme de produits utilise, chaque produit doit contenir toutes les variables de

    lexpression. Par exemple, on mettra une expression dpendant de A et B sous la forme dune somme de

    produits de A, A, B, B. Pour mettre lexpression sous la forme voulue, la formule(A +A)B= B est trsutile.

    A B C+A B C+A B C+A B C+A B C

    Chaque colonne de la table de Karnaugh doit diffrer de ses voisines dun et un seul littral. Nous avons

    3 variables et les tables de Karnaugh sont 2 dimensions : il faut regrouper deux variables. Ici nous choi-

    sissons de regrouper B et C. On regroupe les 1 en morceaux rectangulaires, selon les principes suivants :

    faire les plus grands morceaux possibles,

    7

  • 5/19/2018 .pdf

    8/16

    faire le moins de morceaux possibles,

    le nombre de 1 dans un morceau doit tre une puissance de 2,

    ne faire un nouveau morceau que sil permet de regrouper des 1 qui nont pas encore t regroups,

    en se rappelant que la ligne du bas et la ligne du haut sont considres comme adjacentes, et quil en est

    de mme pour la colonne la plus droite et la colonne la plus gauche.

    BCA

    A

    1 110A

    0 1 0 1

    BCBCBC BC

    Chaque morceau donne naissance un produit de variables. Lorsquune variable et son inverse sont dans

    le mme morceau, cette variable slimine (parce que(A +A) =1).

    B C+A B +B C

    12. Considrer les fonctions logiques suivantes. Pour chacune delles, construire le diagramme de Karnaugh; utiliser le diagramme pour simplifier les expressions.

    (a) F1(A,B,C) =A B C+A B C+A B C

    Correction :La table de Karnaugh est prsente figure 1.

    BCA

    A

    1 101

    0 0 0 0

    BCBCBC BC

    A

    FIG . 1 Table de Karnaugh pourF1(A,B,C).

    BCA

    1 011A

    0 0 1 0

    BCBC BC

    A

    BC

    FIG . 2 Table de Karnaugh pourF2(A,B,C).

    Expression simplifie : F1(A,B,C) =A B +A C.

    (b) F2(A,B,C) =A B C+A B +A B C

    Correction :La table de Karnaugh est prsente figure 2.

    Expression simplifie : F2(A,B,C) =A C+B C

    (c) F3(A,B,C) =A B +A B C+B C+A B CCorrection :

    F3(A,B,C) =A B +A B C+B C+A B C

    =A B C+A B C+A B C+A B C+A B C+A B C

    La table de Karnaugh est prsente figure 3.

    Expression simplifie : F3(A,B,C) =B +A C

    (d) F4(A,B,C,D) =B CD +A B D +A B CD

    8

  • 5/19/2018 .pdf

    9/16

    BCA

    A

    1 010A

    0 1 1 1

    BCBC BCBC

    FIG . 3 Table de Karnaugh pourF3(A,B,C).

    AB

    0 110

    0 0 1 1

    CD

    A B

    A B

    0

    0 0

    0 0 0

    00

    C D C D C DC D

    A B

    A B

    FIG . 4 Table de Karnaugh pourF4(A,B,C,D).

    Correction :

    F4(A,B,C,D) =B CD +A B D +A B CD

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

    La table de Karnaugh est prsente figure 4.

    Expression simplifie : F4(A,B,C,D) =B D

    (e) F5(A,B,C,D) =A +A B +A B C+A B CD

    Correction :

    F5(A,B,C,D) =A B CD + A B CD +A B CD +A B CD +A B CD

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

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

    La table de Karnaugh est prsente figure 5.

    Expression simplifie : F5(A,B,C,D) =B +A +C

    AB

    1 111

    1 1 1 1

    CD

    A B

    A B

    1

    1 0

    1 1 1

    10A B

    A B

    C D C D C DC D

    FIG . 5 Table de Karnaugh pour F5(A,B,C,D).

    AB

    1 001

    0 0 1 1

    CD

    A B

    A B

    0

    0 0

    0 1 1

    11

    C D C DC D C D

    A B

    A B

    FIG . 6 Table de Karnaugh pourF6(A,B,C,D).

    (f) F6(A,B,C,D) =A B D +A CD +A B CD +A B D +B CD +A B CD

    Correction :

    F6(A,B,C,D) =A B CD +A B CD +A B CD +A B CD

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

    +A B CD

    9

  • 5/19/2018 .pdf

    10/16

    La table de Karnaugh est prsente figure 6.

    Expression simplifie : F6(A,B,C,D) =A D +A B D +B D

    4 TD 4 : Circuits combinatoires

    1. Exprimer la fonctionxorcomme 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 xorcomme une somme de produits.

    Correction :AB=A B +A BA

    B

    A B +A +B

    2. La fonction nandformant un groupe logique complet, raliser, uniquement avec des portes nand, les circuitslogiquesnot, and, oretxor(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 fonctionF.

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

    Correction :

    A

    B

    C

    F

    4. Ungnrateur 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.

    10

  • 5/19/2018 .pdf

    11/16

    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 00 1 11 0 11 1 0

    On en dduit les circuits suivants :

    A

    B

    C

    D

    P ou

    A

    B

    C

    DP

    5. Rappeler les principes dun demi-additionneur puis dun additionneur complet. Dduire de ces principes uncircuit logique qui implmente le complment 2 sur nbits.

    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 rang1 (retenue).

    y x

    R

    S

    HA

    x y R S

    0 0 0 00 1 0 1

    1 0 0 11 1 1 0

    S=xy

    R=x y

    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 :

    En

    1

    E0E1E2E3

    Sn S3 S2 S1 S0

    HA HAHAHAHA

    6. Raliser un circuit pour un dcrmenteur nbits.

    Correction :On pourrait imaginer utiliser un soustracteur avec le deuxime oprande gal 1 pour raliserun 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.

    11

  • 5/19/2018 .pdf

    12/16

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

    S0=A0 1:

    A0 1 S0 R0

    0 1 1 11 1 0 0

    S0=A0

    R0=A0

    et Si=Ai Ri1 :

    Ai Ri1 Si Ri0 0 0 00 1 1 11 0 1 01 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 Bi est retranch au bit

    Ai) :

    Ai Bi Di Ri0 0 0 00 1 1 11 0 1 01 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 :

    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 ;

    12

  • 5/19/2018 .pdf

    13/16

    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 00 0 1 1 1

    0 1 0 1 00 1 1 0 01 0 0 1 11 0 1 0 11 1 0 0 01 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 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 :

    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

    8. Le (d)multiplexeurUnmultiplexeurest un circuit logique qui dispose de 2n entres, dune unique sortie et denlignes de slection.Son principe de fonctionnement consiste connecter, selon la configuration binaire prsente sur les nlignes deslection, lune des entres la sortie. Lesnlignes de slection diffrencient 2n configurations binaires, chacunede 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 nlignes 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.

    13

  • 5/19/2018 .pdf

    14/16

    (a) Raliser un multiplexeur quatre voies (cest--dire un multiplexeur quatre entres).

    Correction :Soit S0,S1 les lignes de slection, I0, . . . ,I4les entres et O la sortie (cf. fig. 7).

    (b) Raliser un dmultiplexeur quatre voies (cest--dire un dmultiplexeur quatre sorties).

    Correction :Soit S0,S1 les lignes de slection, I lentre et O0, . . . ,O3les sorties (cf. fig. 8).

    I0

    I1

    I2

    I3

    S1 S0

    O

    FIG . 7 Multiplexeur 4 voies.

    S1 S0I

    O0

    O1

    O2

    O3

    FIG . 8 Dmultiplexeur 4 voies.

    9. Les hasards logiquesLetemps de passage dune porte logique est la dure entre linstant o les signaux sont appliqus lentre etcelui o leur effet se rpercute en sortie. Jusqu prsent, ce temps de passage a t ignor dans un souci desimplification. 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 attaquelune des entres de la porte logique suivante) alors le temps de passage de ltage est au moins gal la sommedes temps de passage des portes logiques qui le composent : dans ce cas, les temps de passage sajoutent. Ilen 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 lasortie. De telles impulsions parasites sont appeles hasards logiques.

    (a) Mise en vidence dun hasard logique.

    i. Exprimer la valeur de la sortieSdu circuit ci-dessous en fonction de son entreE.

    S2

    S1E

    S

    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 misesen jeu ont un mme temps de passage t).

    14

  • 5/19/2018 .pdf

    15/16

    10

    0

    0

    0

    1

    1

    1

    t

    EntreE

    SortieS1

    SortieS2

    SortieS

    Correction :

    10

    0

    0

    0

    1

    1

    1

    t

    EntreE

    SortieS1

    SortieS2

    SortieS

    Ce circuit se comporte comme un dtecteur de transitions. Il peut tre simplifi en remplaant lenandet le deuximenotpar unand, carnot(nand(a,b)) =and(a,b).

    (b) Exemples de mise profit des hasards logiques : dtecteur de transitions.

    i. Exprimer la valeur de la sortieSdu circuit ci-dessous en fonction de son entreE.

    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 premierxorimplique 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 misesen jeu ont un mme temps de passage t).

    10

    01

    EntreE

    SortieS1

    10SortieS

    t

    Correction :

    10

    01

    EntreE

    SortieS1

    10SortieS

    t

    iii. Raliser un dtecteur de transitions pour lequel la dure des impulsions enSest de 3t.

    15

  • 5/19/2018 .pdf

    16/16

    Correction :Il suffit davoir un dlai de3t entre les deux entres duxor. Ce dlai peut tre obtenuen ajoutant au circuit prcdent deux portes xor, ou laide dun autre circuit ralisant lidentitavec un dlai de3t, comme par exemple unxoret deuxnot.

    S4

    32

    1E

    0

    31E

    S

    0 2

    4

    (c) Raliser undtecteur de front montant, cest--dire un dtecteur de transitions qui ne rpond que lorsquele 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 notetand.

    S1

    SE 1

    2

    10

    01

    EntreE

    SortieS1

    1

    0SortieS

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

    S1

    SE

    10

    01

    EntreE

    SortieS1

    10SortieS

    t

    16