Chapitre 4 : Circuits logiques combinatoires E0 E1 S0 Circuit combinatoire En Sp Un circuit est dit combinatoire si sa sortie ne dépend que de la combinaison de ses entrées. En particulier, la variable temps n’intervient pas dans la détermination de l’état des sorties (au contraire des circuits séquentiels) ; le circuit ne conserve aucune mémoire de l’état précédent. 1) Codeur binaire : Rôle : traduire un certain nombre de chiffres décimaux en binaire. 2n entrées mais 1 seule active à la fois 0 1 2 3 11 3 0 0 0 1 n sorties 10 3 CPS 0 - 0 - - 1 - 1 1 0 - - x1 x0 00 x3 x2 00 01 11 10 A0 A1 Codeur x1 x0 00 01 x3 x2 00 01 11 10 0 01 A0 = x2 x0 ou A0 = x3 + x1 1 11 10 3 CPS 0 1 - 0 - - 0 - 1 1 0 - - A1 = x1 x0 ou A1 = x3 + x2 0 0 Entrées x3 x2 x1 x0 1 2 1 0 0 0 1 0 1 0 1 0 0 0 0 0 Sorties A1 A0 0 0 1 1 0 1 0 1 2) Décodeur binaire : Rôle : décoder une information binaire. S0 n entrées E0 E1 S1 S2 S3 Décodeur 2n sorties mais 1 seule active à la fois Entrées E1 E0 Sorties S3 S2 S1 S0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 S0 = E1 E0 S1 = E1 E0 S2 = E1 E0 S3 = E1 E0 E1 E0 00 1 01 0 11 0 10 0 S0 = E1 E0 3) Transcodeur : Rôle : passer d’un code à un autre Exemple : E0 S0 Transcodeur E1 E2 Binaire naturel Binaire réfléchi E1 E0 00 E2 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 11 10 0 1 0 1 S0 = E1 E0 + E1 E0 = E1 + 0 1 0 1 2 CPP 01 11 10 0 0 1 E1 E0 00 E2 Sorties S2 S1 S0 01 E1 E0 00 E2 S1 S2 Entrées E2 E1 E0 0 1 1 1 1 0 01 11 0 0 1 0 S1 = E2 E1 + E2 E1 = E1 + 2 CPP 10 0 1 1 1 CPP S2 = E2 E0 E2 1 0 0 0 E0 E1 ……………………………………….. E7 4) Multiplexeur : n entrées adresses A2 A1 A0 2n entrées d’informations Multiplexeur Entrée validation V S S = 0 l’adresse appliquée et les entrées d’informations S = état de l’entrée d’informations adressée V=0 V=1 A2 A1 A0 E 0 E1 0 0 0 0 0 1 0 1 0 1 1 1 S = E0 A2 A1 A0 + E7 S x x x x x x x x x E0 E1 E2 x x x E7 ……………………………………….. E1 A2 A1 A0 + E2 A2 A1 A0 Rôles : - connaître l’état d’une entrée d’informations aiguilleur conversion // série générateur de fonction + ………….. …….. + E7 A2 A1 A0 aiguilleur E0 E1 n entrées adresses ……………………………………….. A2 A1 A0 E7 Multiplexeur S Entrée validation V E circuit système parallèle conversion // série E0 E1 n entrées adresses A2 A1 A0 ………………………………………. Multiplexeur S Entrée validation V E système série E7 générateur de fonction exemple : A l’aide d’un multiplexeur à 2 entrées adresses et 4 entrées d’information, générer la fonction F suivante : F(x0 , x1 , x2) = x0+ x1 x2 E0 E1 E2 E3 A1 A1 A0 0 0 0 1 1 0 1 1 Multiplexeur A0 S E0 E1 E2 E3 S S = E0 A1 A0 + E1 A1 A0 + E2 A1 A0 + E3 A1 A0 On doit tout d’abord écrire l’expression de F sous forme canonique (en faisant apparaître toutes les variables dans chaque monôme de l’expression) F(x0 , x1 , x2) = x0+ x1 x2 = x0 (x1 + x1)+ x1 x2 (x0 + x0) = x0 x1 + x0 x1 + x1 x2 x0 + x1 x2 x0 = x0 x1(x2 + x2) + x0 x1 (x2 + x2) + x1 x2 x0 + x1 x2 x0 = x0 x1 x2 + x0 x1 x2 + x0 x1 x2 + x0 x1 x2 + x1 x2 x0 + x1 x2 x0 Ensuite on va appliquer, sur les entrées adresses du multiplexeur, 2 variables de la fonction F : A0 = x0 et A1 = x1 S = E0 x1 x 0 + E1 x1 x0 + E2 x1 x0 + E3 x1 x0 Ensuite, on identifie F à S , d’où : E0 x1 x 0 = x0 x1 x2 + x0 x1 x2 = x0 x1 (x2 + x2) E1 x1 x0 = 0 E0 = x2 + x2 = 1 E1 = 0 E2 x1 x0 = x0 x1 x2 + x0 x1 x2 + x0 x1 x2 = x0 x1 (x2 + x2 + x2) E3 x1 x0 = x0 x1 x2 E2 = 1 E3 = x2 1 0 1 x1 x0 A1 A0 x2 E0 E1 E2 E3 Multiplexeur S F = x0 + x1 x2 5) Démultiplexeur : E Entrée d’information n entrées adresses Démultiplexeur A1 A0 S0 S1 S2 2n sorties S3 La sortie adressée prend l’état de l’entrée d’information A1 A0 S0 S1 S2 S3 0 0 0 1 1 0 1 1 E 0 0 E 0 0 0 0 0 0 0 0 E 0 0 E Rôles : - aiguilleur conversion série // Aiguilleur E n entrées adresses Démultiplexeur A1 A0 S0 S1 S2 S3 2n sorties Circuit 1 Circuit 2 Circuit 3 Circuit 4 Conversion série // système série E Entrée d’information entrées adresses Démultiplexeur A1 A0 S0 S1 S2 Registre de mémorisation registre système parallèle S3 6) Comparateur : Exemple : A=B A{ B Comparateur AB AB { B Rôle : comparer 2 nombres binaires 7) Additionneur binaire : a) Demi-additionneur : Ai Si ½ ADD ri Bi BiAi 0 0 0 1 1 0 1 1 Si 0 1 1 0 ri 0 0 0 1 Ai Bi Si ri BiAi 00 0 01 1 11 0 10 1 2 CPP Si = B i A i + B i A i Si =Bi + Ai ri = B i A i b) Additionneur complet: Entrées BiAi ri 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 Bi Ai ri Sorties Ai S iB ri i+1 0 0 r 1 i0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 00 01 11 10 0 1 0 1 1 0 1 0 01 11 10 0 0 1 0 0 1 1 1 Ai ri 0 1 Si = Ai Bi ri + Ai Bi ri + Ai Bi ri + Ai Bi ri = Bi (Ai ri + Ai ri) + Bi (Ai ri + Ai ri ) = Bi (Ai + ri) + Bi (Ai . ri ) = Bi (Ai + ri) + Bi (Ai + Ai + + ri Bi 0 1 + 4 CPP ri ) Ai ri ri+1 = Ai ri ADD 0 1 0 1 1 1 Bi S i= Bi Si Bi ri + Ai Bi 00 3 CPP r i +1 c) Additionneur parallèle: Exemple : Soit à additionner 2 nombres binaires représentés sur 4 bits chacun r4 r3 r2 r 1 A3 A2 A1 A0 B3 B2 B1 B0 S3 S2 S1 S0 A 3B 3 r 3 A 2B 2 r 2 A 1B 1 r 1 A 0B 0 r 0 ADD ADD ADD ADD r4 S3 r3 S2 r2 S1 r1 S0 8)Unité arithmétique et logique : C’est un circuit complexe qui réalise des opérations arithmétiques ou logiques selon l’état des commandes M et S. A3 0 Exemple : B3 0 4 A 3 0 = A0 A1 A2 A3 B3 0 = B0 B1 B2 B3 4 Retenue Cn initiale 3 S Cn+4 Retenue finale UAL 4 0 M 4 F3 0 S0 S1 S2 S3 M=1 Op.logiques M=0 Op. arithmétiques 0 0 0 0 F=A + B F=A moins B 1 0 0 1 F=A . B F=A plus B 1 1 1 1 F3 0 = F0 F1 F2 F3