2. Demi Additionneur
Transcription
2. Demi Additionneur
1. Les Circuits combinatoires Chapitre 4 : Les circuits combinatoires • Un circuit combinatoire est un circuit numérique dont les sorties dépendent uniquement des entrées. • Si=F(Ei) • Si=F(E1,E2,….,En) Objectifs • Apprendre la structure de quelques circuits combinatoires souvent utilisés ( demi additionneur , additionneur complet,……..). S1 E1 S2 Circuit combinatoire E2 .. .. Sm En • Apprendre comment utiliser des circuits combinatoires pour concevoir d’autres circuits plus complexes. Schéma Bloc • C’est possible d’utiliser des circuits combinatoires pour réaliser d’autres circuits plus complexes. 1 2 Exemple de Circuits combinatoires 1. 2. 3. 4. 5. 6. 7. 2. Demi Additionneur • Demi Additionneur Additionneur complet Comparateur Multiplexeur Demultiplexeur Encodeur Décodeur • Le demi additionneur est un circuit combinatoire qui permet de réaliser la somme arithmétique de deux nombres A et B chacun sur un bit. A la sotie on va avoir la somme S et la retenu R ( Carry). A B DA S R Pour trouver la structure ( le schéma ) de ce circuit on doit en premier dresser sa table de vérité 3 4 R = A.B S = A⊕ B • En binaire l’addition sur un seul bit se fait de la manière suivante: •La table de vérité associée : De la table de vérité on trouve : A B R S 0 0 0 0 R = A.B 0 1 0 1 1 0 0 1 S = A.B + A.B = A ⊕ B 1 1 1 0 5 6 1 3.1 Additionneur complet 1 bit 3. L’additionneur complet • L’additionneur complet un bit possède 3 entrées : – ai : le premier nombre sur un bit. – bi : le deuxième nombre sur un bit. – ri-1 : le retenue entrante sur un bit. • Il possède deux sorties : – Si : la somme – Ri la retenue sortante • En binaire lorsque on fait une addition il faut tenir en compte de la retenue entrante. r4 + r4 r3 a4 b4 s4 r2 a3 b3 r1 a2 b2 s3 s2 r0 = 0 a1 b1 ri-1 ai bi + s1 ai Si Additionneur complet bi ri-1 Ri r i si 7 Table de vérité d’un additionneur complet sur 1 bit 8 Si on veut simplifier les équations on obtient : ai bi ri-1 ri si 0 0 0 0 0 S i = A i . B i . R i −1 + A i . B i . R i −1 + A i . B i . R i −1 + A i . B i . R i −1 0 0 1 0 1 0 1 0 0 1 S i = A i .( B i . R i − 1 + B i . R i − 1 ) + A i .( B i . R i − 1 + B i . R i − 1 ) 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 S i = A i ( B i ⊕ R i − 1 ) + A i .( B i ⊕ R i − 1 ) S i = A i ⊕ B i ⊕ R i −1 R i = A i B i R i −1 + A i B i R i −1 + A i B i R i −1 + A i B i R i −1 R i = R i − 1 .( A i . B i + A i . B i ) + A i B i ( R i − 1 + i R i − 1 ) S i = Ai .Bi .Ri −1 + Ai .Bi .R i −1 + Ai .B i .R i −1 + Ai .Bi .Ri −1 R i = R i − 1 .( A i ⊕ B i ) + A i B i Ri = Ai Bi Ri −1 + Ai B i Ri −1 + Ai Bi R i −1 + Ai Bi Ri −1 9 3.3 Schéma d’un additionneur complet R i = A i .B i + R i −1 Si = A i ⊕ Bi ⊕ R .(B i 10 3.4 En utilisant des Demi Additionneurs R i = A i .B i + R i − 1 .(B i ⊕ A i ) ⊕ A i) S i = A i ⊕ B i ⊕ R i −1 i −1 Si on pose X = A i ⊕ B i et Y = A i B i On obtient : R i = Y + R i −1 .X S i = X ⊕ R i −1 et si on pose Z = X ⊕ R i − 1 et T = R i − 1 .X On obtient : Ri = Y +T Si = Z 11 •On remarque que X et Y sont les sorties d’un demi additionneur ayant comme entrées A et B •On remarque que Z et T sont les sorties d’un demi additionneur ayant comme entrées X et Ri-1 12 2 X = A i ⊕ Bi 3.4 Additionneur sur 4 bits Y = A iB i Z = X ⊕ R i −1 • T = R i − 1 .X Ri = Y +T En plus il tient en compte de la retenu entrante Si = Z AI Demi Add RI-1 SI En sortie on va avoir le résultat sur 4 bits ainsi que la retenu ( 5 bits en sortie ) • Donc au total le circuit possède 9 entrées et 5 sorties. • Avec 9 entrées on a 29=512 combinaisons !!!!!! Comment faire pour représenter la table de vérité ????? • Il faut trouver une solution plus facile et plus efficace pour concevoir ce circuit ? 13 14 •Lorsque on fait l’addition en binaire , on additionne bit par bit en commençant à partir du poids fiable et à chaque fois on propage la retenue sortante au bit du rang supérieur. L’addition sur un bit peut se faire par un additionneur complet sur 1 bits. r3 a4 b4 • RI Demi Add BI + Un additionneur sur 4 bits est un circuit qui permet de faire l’addition de deux nombres A et B de 4 bits chacun – A(a3a2a1a0) – B(b3b2b1b0) r2 a3 b3 r1 a2 b2 3.4.1 Additionneur 4 bits ( schéma ) r0 = 0 a1 b1 r 4 s4 r 3 s3 r 2 s2 r 1 s1 r4 s4 s3 s2 s1 Résultat final 15 16 Exercice 4. Le Comparateur • Soit une information binaire sur 5 bits ( i4i3i2i1i0). Donner le circuit qui permet de calculer le nombre de 1 dans l’information en entrée en utilisant uniquement des additionneurs complets sur 1 bit ? • Exemple : Si on a en entrée l’information ( i4i3i2i1i0) =( 10110) alors en sortie on obtient la valeur 3 en binaire ( 011) puisque il existe 3 bits qui sont à 1 dans l’information en entrée . 17 • • • C’est un circuit combinatoire qui permet de comparer entre deux nombres binaire A et B. Il possède 2 entrées : – A : sur un bit – B : sur un bit Il possède 3 sorties – fe : égalité ( A=B) – fi : inférieur ( A < B) – fs : supérieur (A > B) fi A B Comparateur 1 bit fe fs 18 3 Schéma d’un comparateur dur un bit 4.1 Comparateur sur un bit fs = A.B fi = AB A B fs fe fi 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 fe = fs + fi fs = A.B fi = AB fe = AB + AB = A ⊕ B = fs + fi 19 4.2 Comparateur 2 bits 20 A2 A1 B2 B1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 3. A<B si 1 0 1 1 0 0 1 A2 < B2 ou (A2=B2 et A1<B1) 1 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 022 1. A=B si A2=B2 et A1=B1 • Il permet de faire la comparaison entre deux nombres A (a2a1) et B(b2b1) chacun sur deux bits. fe = ( A2 ⊕ B 2).( A1 ⊕ B1) 2. A>B si A2 > B2 ou (A2=B2 et A1>B1) fs = A2.B 2 + ( A2 ⊕ B 2).( A1.B1) A1 A2 B1 fi Comparateur 2 bits fe fs B2 21 4.2.2 comparateur 2 bits avec des comparateurs 1 bit fi = A2.B 2 + ( A2 ⊕ B 2).( A1.B1) fs fe fi 1. A=B si A2=B2 et A1=B1 •C’est possible de réaliser un comparateur 2 bits en utilisant des comparateurs 1 bit et des portes logiques. fe = ( A2 ⊕ B2 ).( A1 ⊕ B1 ) = fe2.fe1 •Il faut utiliser un comparateur pour comparer les bits du poids faible et un autre pour comparer les bits du poids fort. 2. A>B si •Il faut combiner entre les sorties des deux comparateurs utilisés pour réaliser les sorties du comparateur final. a2 b2 a1 A2 > B2 ou (A2=B2 et A1>B1) fs = A2. B2 + ( A2 ⊕ B2 ).(A1. B1 ) = fs2 + fe2.fs1 b1 3. A<B si Comparateur 1 bit fs2 fe2 fi2 A2 < B2 ou (A2=B2 et A1<B1) Comparateur 1 bit fs1 fe1 fi1 fi = A2.B2 + ( A2 ⊕ B2).( A1.B1) = fi2 + fe2.fi1 23 24 4 4.2.3 Comparateur avec des entrées de mise en cascade • On remarque que : – Si A2 >B2 alors A > B – Si A2<B2 alors A < B • Par contre si A2=B2 alors il faut tenir en compte du résultat de la comparaison des bits du poids faible. • Pour cela on rajoute au comparateur des entrées qui nous indiquent le résultat de la comparaison précédente. • Ces entrées sont appelées des entrées de mise en cascade. 25 A2 B2 Es Eg Ei fs fe fs A2>B2 X X X 1 0 0 A2<B2 X X X 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 A2 B2 Comp A2=B1 fs 26 fe fi Es ( >) Eg ( =) Ei ( <) fs= (A2>B2) ou (A2=B2).Es fi= ( A2<B2) ou (A2=B2).Ei fe=(A2=B2).Eg 27 28 5. Le Multiplexeur Exercice • Réaliser un comparateur 4 bits en utilisant des comparateurs 2 bits avec des entrées de mise en cascade? • Un multiplexeur est un circuit combinatoire qui permet de sélectionner une information (1 bit) parmi 2n valeurs en entrée. • Il possède : – 2n entrées d’information – Une seule sortie – N entrées de sélection ( commandes) Em C0 C1 Cn-1 ......... Mux 2n E3 E1 E0 1 V S 29 30 5 5.1 Multiplexeur 2 1 V C0 S 0 X 0 5.2 Multiplexeur 4 1 C1 C0 S 0 0 E0 0 1 E1 1 0 E2 1 1 E3 E3 C0 C1 E1 E0 1 0 C0 E0 Mux 2 1 1 1 V E1 E2 E1 E0 Mux 4 1 S S S = C 1.C 0.( E 0 ) + C 1.C 0 .( E 1) + C 1 .C 0.( E 2 ) + C 1 .C 0 .( E 3) S = V.(C0 .E0 + C0 .E1) 31 Exemple : Réalisation d’un additionneur complet avec des multiplexeurs 8 1 5.3 Multiplexeur 8 1 C2 C1 C0 S 0 0 0 E0 0 0 1 E1 0 1 0 E2 0 1 1 E3 1 1 1 1 0 0 1 1 0 1 0 1 E4 32 •Nous avons besoin d’utiliser deux multiplexeurs :Le premier pour réaliser la fonction de la somme et l’autres pour donner la retenue. E7 E6 E5 E4 E3 C0 C1 E2 E1 E0 ai Mux 8 1 C2 E5 E6 E7 S = C 2.C1.C 0.( E 0) + C 2.C1.C 0( E1) + C 2.C1.C 0( E 2) + C 2.C1.C 0( E 3) + C 2.C1.C 0( E 4) + C 2.C1.C 0( E 5) + C 2.C1.C 0( E 6) + C 2.C1.C 0( E 7) 33 bi ri-1 ri ai bi ri-1 Si 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 34 Réalisation de la fonction de la retenue Réalisation de la fonction de la somme Si = Ai .Bi .R i −1 (0) + Ai .Bi .Ri−1 (1) + Ai .Bi .Ri −1 (1) + Ai .Bi .Ri −1 (0) + Ai .B i .Ri −1 (1) + Ai .Bi .Ri −1 (0) Ri = Ai Bi Ri−1.(0) + Ai Bi Ri−1.(0) + Ai Bi Ri−1.(0) + Ai Bi Ri−1.(1) + Ai Bi Ri−1.(0) + Ai Bi Ri−1.(1) + Ai .Bi .R i−1 (0) + Ai .Bi .Ri −1 (1) + Ai Bi Ri−1.(1) + Ai Bi Ri−1.(1) S = C 2.C1.C 0.( E 0 ) + C 2.C1.C 0 ( E1) + C 2.C1 .C 0 ( E 2 ) + C 2.C1 .C 0 ( E 3) + S = C 2.C 1.C 0.( E 0 ) + C 2.C 1.C 0 ( E 1) + C 2.C 1 .C 0 ( E 2 ) + C 2.C 1 .C 0 ( E 3) + C 2 .C1.C 0 ( E 4 ) + C 2 .C1.C 0 ( E 5) + C 2 .C1 .C 0 ( E 6 ) + C 2 .C1 .C 0 ( E 7 ) C 2 .C 1.C 0 ( E 4 ) + C 2 .C 1.C 0 ( E 5 ) + C 2 .C 1 .C 0 ( E 6 ) + C 2 .C 1 .C 0 ( E 7 ) On pose : C2=Ai C1=Bi C0=Ri-1 E0=0, E1=1, E2=1, E3=0, E4=1, E5=0, E6=0, E7=1 On pose : C2=Ai C1=Bi C0=Ri-1 E0=0, E1=0, E2=0, E3=1, E4=0, E5=1, E6=1, E7=1 35 36 6 Exercice Réalisation d’un additionneur complet avec des multiplexeurs 8 1 ‘1’ ‘1’ ‘0’ ri-1 ‘0’ E7 E6 E5 E4 E3 bi C0 C1 ai C2 E2 E1 E0 E7 E6 E5 E4 E3 ri-1 Mux 8 1 bi C0 C1 ai C2 E2 • Réaliser le circuit qui permet de trouver le maximum entre deux nombres A et B sur un Bit en utilisant le minimum de portes logiques et de circuits combinatoires? E1 E0 Mux 8 1 Ri Si 37 38 6. Demultiplexeurs 6.1 Demultiplexeur 14 • Il joue le rôle inverse d’un multiplexeurs, il permet de faire passer une information dans l’une des sorties selon les valeurs des entrées de commandes. • Il possède : – une seule entrée – 2n sorties – N entrées de sélection ( commandes) C1 C0 S3 S2 S1 S0 0 0 0 0 0 i 0 1 0 0 i 0 1 0 0 i 0 0 1 1 i 0 0 0 S 0 = C 1.C 0.( I ) S 1 = C 1.C 0 .( I ) S 2 = C 1 .C 0.( I ) S 3 = C 1 .C 0 .( I ) I I C0 C1 C0 C1 DeMux 1 4 S3 S2 S1 DeMux 1 4 S3 S0 S2 39 • C’est un circuit combinatoire qui est constitué de : – N : entrées de données – 2n sorties – Pour chaque combinaison en entrée une seule sortie est active à la fois S0 S1 S2 S3 S4 S5 S6 S7 C Un décodeur 3 8 V S0 40 Décodeur 24 7. Le décodeur binaire A B S1 41 V A B S0 S1 S2 S3 0 X X 0 0 0 0 1 0 0 1 0 0 0 S0 A S1 B S2 S3 V 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 S 0 = ( A.B ).V S 1 = ( A. B ).V S 2 = ( A. B ).V S 3 = ( A.B ).V 42 7 Décodeur 3 8 S0 S1 S2 S3 S4 S5 S6 S7 A B C Réalisation d’un additionneur complet avec des décodeurs binaire 3 8 S i = A i .B i .R i −1 + A i .B i .R i −1 + Ai .B i . R i −1 + Ai .B i .R i −1 A B C S0 S1 S2 S3 S4 S5 S6 S7 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 S 0 = A . B .C 0 1 0 0 0 1 0 0 0 0 0 S 1 = A . B .C On pose A=Ai , B =Bi , C=Ri-1 0 1 1 0 0 0 1 0 0 0 0 S 2 = A . B .C S 0 = A.B.C , S 1 = A.B.C , S 2 = A.B.C , S 3 = A.B.C , 1 0 0 0 0 0 0 1 0 0 0 S 3 = A . B .C 0 1 0 0 0 0 0 1 0 0 S 4 = A . B .C S 4 = A.B.C , S 5 = A.B.C , S 6 = A.B.C , S 7 = A.B.C 1 1 1 0 0 0 0 0 0 0 1 0 S 5 = A . B .C 1 1 1 0 0 0 0 0 0 0 1 S 6 = A . B .C S 7 = A . B .C 0 0 1 0 1 0 1 0 0 1 1 1 R i = A i B i R i −1 + A i B i R i −1 + A i B i R i −1 . + A i B i R i −1 V 0 1 1 1 0 1 1 1 0 1 1 1 Ri = S 3 + S 5 + S 6 + S 7 43 S i = S1 + S 2 + S 4 + S 7 44 L’encodeur binaire ( 4 2) 8. L’encodeur binaire • Il joue le rôle inverse d’un décodeur – Il possède 2n entrées – N sortie – Pour chaque combinaison en entrée on va avoir sont numéro ( en binaire) à la sortie. I0 I1 I2 I3 x y 0 0 0 0 0 0 1 x x x 0 0 0 1 x x 0 1 0 0 1 x 1 0 0 0 0 1 1 1 I0 I1 I2 x y I3 I0 Encodeur 4 2 I1 I2 x X = I 0.I1.( I 2 + I 3) y I3 Y = I 0.( I1 + .I 2.I 3) 45 46 Exemple : Transcodeur BCD/EXESS3 9. Le transcodeur • C’est un circuit combinatoire qui permet de transformer un code X ( sur n bits) en entrée en un code Y ( sur m bits) en sortie. A B C D X Y Z T 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 E1 S1 1 0 0 0 1 0 1 1 E2 S2 1 0 0 1 1 1 0 0 1 0 1 0 x x x x 1 0 1 1 x x x x 1 1 0 0 x x x x 1 1 0 1 x x x x 1 1 1 0 x x x x 1 1 1 1 x x x x .. En transcodeur .. Sm 47 48 8