Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules R´ef´erences Alg`ebre de Boole et circuits logiques Architecture des ordinateurs (cid:73) Cours de Fr´ed´eric Goualard de l’Universit´e de Nantes Guillaume Blin http ://supports.goualard.free.fr/ (cid:73) Cours de Eric Garcia de l’IUT GTR, Montb´eliard IGM-LabInfoUMR8049, Bureau4B066 (cid:73) Emmanuel Viennet de l’IUT de Viltaneuse Universit´edeMarneLaVall´ee [email protected] http://igm.univ-mlv.fr/∼gblin logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Plan Plan Alg`ebre de Boole Alg`ebre de Boole Electronique Electronique Circuits combinatoires Circuits combinatoires UAL UAL Circuits s´equentiels : bascules Circuits s´equentiels : bascules logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Notion ensembliste Logique des propositions (cid:73) Proposition = ´enonc´e vrai ou faux (cid:73) a : les ´el`eves sont pr´esents (cid:73) b : le professeur est pr´esent (cid:73) cours si a et b (cid:73) Combinaison par des connecteurs (cid:73) ¬ (non logique) ∧ (et logique) ∨ (ou logique non exclusif) a b ¬a a∧b a∨b V V F V V V F F V F F V V V F F F V F F logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Passage `a l’alg`ebre de Boole Alg`ebre de Boole (cid:73) Il y a d’autres connecteurs et quelques lois dans la logique des propositions : ¬a∧¬b =¬(a∨b)... (cid:73) Il existes 16 fonctions `a deux variables : toutes ne sont pas int´eressantes a b ¬a ¬b ¬a∧¬b a∨b ¬(a∨b) a b a+b a+b ab ab a⊕b a⊕b V V F F F V F V F F V F V F 0 0 0 1 0 1 0 1 F V V F F V F 0 1 1 0 0 1 1 0 F F V V V F V 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 (cid:73) Georges Boole a exprim´e la logique des propositions en termes alg´ebriques (cid:73) Ou exclusif (xor) a⊕b =ab+ab (cid:73) a∨b ⇒a+b (cid:73) Non ou (nor) a+b (cid:73) a∧b ⇒a.b (cid:73) Non et (nand) ab (cid:73) ¬a⇒a=1−a logo logo (cid:73) Claude Shannon a propos´e : V = 1 et F = 0 G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Op´erations de base Th´eor`emes et axiomes (cid:73) Th´eor`eme des constantes (cid:73) Toutes les fonctions peuvent s’exprimer `a l’aide des trois a+0 =a a.0 =0 a⊕0 =a op´erations logiques et, ou, non a+1 = 1 a.1 =a a⊕1 =a (cid:73) Avec n variables on peut construire 2n fonctions (cid:73) Une fonction `a trois variables peut se d´ecompos´ee en deux (cid:73) f(a,b,c)=f(0,b,c) si a=0 et f(a,b,c)=f(1,b,c) si (cid:73) Idempotence a=1 (cid:73) f(a,b,c)=a.f(1,b,c)+a.f(0,b,c) a+a =a a.a =a a⊕a = 0 (cid:73) groupe logique complet = ensemble de fonction `a partir desquels il est possible de r´ealiser toutes les fonctions (cid:73) Compl´ementation {et,ou,non}... (cid:73) Fonctions `a n variables d´ecomposables et fonctions `a 2 a+a = 1 a.a = 0 a⊕a = 1 variables exprimable avec {et,ou,non} ⇒ r´ecurrence ... (cid:73) L’alg`ebre de Boole se construit sur les bool´eens `a partir des (cid:73) Commutativit´e trois op´erations internes : +, * et logo a+b =b+a a.b =b.a a⊕b =b⊕a logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Th´eor`emes et axiomes Table de v´erit´e et ´equation (cid:73) Distributivit´e (cid:73) Pour concevoir un circuit, il faut le mod´eliser. a+(bc) = (a+b)(a+c) (cid:73) on utilise une table de v´erit´e a(b+c) =ab+ac (cid:73) on obtient une ´equation qu’on simplifie (alg´ebrique ou Karnaugh) (cid:73) Associativit´e (cid:73) on trace le sch´ema ´electrique du circuit (cid:73) ´el´ements constitutifs d’un ordinateur : exclusivement portes a+(b+c) =(a+b)+c =a+b+c nand ou bien nor (syst`eme complet) a(bc) =(ab)c =abc (cid:73) Table de v´erit´e : pr´esente toutes les combinaisons possibles des n entr´es (2n lignes) et les ´etats de sortie correspondant (cid:73) Th´eor`eme de De Morgan (cid:73) Une fois la table de v´erit´e ´ecrite, il faut la transformer en ´equation logique ab =a+b (cid:73) somme (fonction ou) de produit (fonction et) a+b = a.b logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques F(a,b) =a.b+a.(b+b) F(a,b) =a.b+a F(a,b) =a.b+a F(a,b) =((a.b.a)) F(a,b) =((a.b.a)) F(a,b) =(a+b).a F(a,b) =(a+b).a F(a,b) =a.a+b.a F(a,b) =a.a+b.a F(a,b) =b.a F(a,b) =b.a F(a,b) =b+a F(a,b) =b+a F(a,b) =b+a F(a,b) =b+a F(a,b) =((a.b.a)) F(a,b) =(a+b).a F(a,b) =(a+b).a F(a,b) =a.a+b.a F(a,b) =a.a+b.a F(a,b) =b.a F(a,b) =b.a F(a,b) =b+a F(a,b) =b+a F(a,b) =b+a F(a,b) =b+a Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules ´ ´ Equation : exemple Equation : exemple a b F(a,b) a b F(a,b) 0 0 1 0 0 1 F(a,b) =a.b+a.(b+b) 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 F(a,b) =1 si F(a,b) =1 si a = 0 et b = 0 soit a = 1 et a = 0 et b = 0 soit a = 1 et b = 1 donc si a.b = 1 b = 1 donc si a.b = 1 a = 1 et b = 0 soit a = 1 et a = 1 et b = 0 soit a = 1 et b = 1 donc si a.b = 1 b = 1 donc si a.b = 1 a = 1 et b = 1 donc si a.b = 1 a = 1 et b = 1 donc si a.b = 1 ⇒ F(a,b) =a.b+a.b+a.b ⇒ F(a,b) =a.b+a.b+a.b logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules ´ ´ Equation : exemple Equation : exemple a b F(a,b) a b F(a,b) 0 0 1 0 0 1 F(a,b) =a.b+a.(b+b) F(a,b) =a.b+a.(b+b) 0 1 0 0 1 0 1 0 1 F(a,b) =a.b+a 1 0 1 F(a,b) =a.b+a 1 1 1 1 1 1 F(a,b) =((a.b.a)) F(a,b) =1 si F(a,b) =1 si a = 0 et b = 0 soit a = 1 et a = 0 et b = 0 soit a = 1 et b = 1 donc si a.b = 1 b = 1 donc si a.b = 1 a = 1 et b = 0 soit a = 1 et a = 1 et b = 0 soit a = 1 et b = 1 donc si a.b = 1 b = 1 donc si a.b = 1 a = 1 et b = 1 donc si a.b = 1 a = 1 et b = 1 donc si a.b = 1 ⇒ F(a,b) =a.b+a.b+a.b ⇒ F(a,b) =a.b+a.b+a.b logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques F(a,b) =a.a+b.a F(a,b) =b.a F(a,b) =b.a F(a,b) =b+a F(a,b) =b+a F(a,b) =b+a F(a,b) =b+a F(a,b) =b+a F(a,b) =b+a F(a,b) =b+a Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules ´ ´ Equation : exemple Equation : exemple a b F(a,b) a b F(a,b) 0 0 1 0 0 1 F(a,b) =a.b+a.(b+b) F(a,b) =a.b+a.(b+b) 0 1 0 0 1 0 1 0 1 F(a,b) =a.b+a 1 0 1 F(a,b) =a.b+a 1 1 1 1 1 1 F(a,b) =((a.b.a)) F(a,b) =((a.b.a)) F(a,b) =(a+b).a F(a,b) =(a+b).a F(a,b) =1 si F(a,b) =1 si F(a,b) =a.a+b.a a = 0 et b = 0 soit a = 1 et a = 0 et b = 0 soit a = 1 et b = 1 donc si a.b = 1 b = 1 donc si a.b = 1 a = 1 et b = 0 soit a = 1 et a = 1 et b = 0 soit a = 1 et b = 1 donc si a.b = 1 b = 1 donc si a.b = 1 a = 1 et b = 1 donc si a.b = 1 a = 1 et b = 1 donc si a.b = 1 ⇒ F(a,b) =a.b+a.b+a.b ⇒ F(a,b) =a.b+a.b+a.b logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules ´ ´ Equation : exemple Equation : exemple a b F(a,b) a b F(a,b) 0 0 1 0 0 1 F(a,b) =a.b+a.(b+b) F(a,b) =a.b+a.(b+b) 0 1 0 0 1 0 1 0 1 F(a,b) =a.b+a 1 0 1 F(a,b) =a.b+a 1 1 1 1 1 1 F(a,b) =((a.b.a)) F(a,b) =((a.b.a)) F(a,b) =(a+b).a F(a,b) =(a+b).a F(a,b) =1 si F(a,b) =1 si F(a,b) =a.a+b.a F(a,b) =a.a+b.a a = 0 et b = 0 soit a = 1 et a = 0 et b = 0 soit a = 1 et F(a,b) =b.a F(a,b) =b.a b = 1 donc si a.b = 1 b = 1 donc si a.b = 1 F(a,b) =b+a a = 1 et b = 0 soit a = 1 et a = 1 et b = 0 soit a = 1 et b = 1 donc si a.b = 1 b = 1 donc si a.b = 1 a = 1 et b = 1 donc si a.b = 1 a = 1 et b = 1 donc si a.b = 1 ⇒ F(a,b) =a.b+a.b+a.b ⇒ F(a,b) =a.b+a.b+a.b logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules ´ Equation : exemple Diagrammes de Karnaugh (cid:73) Table de Karnaugh : principe a b F(a,b) (cid:73) d´epart : somme de produits ou` chaque produit doit contenir 0 0 1 F(a,b) =a.b+a.(b+b) toutes les variables (pour simplifier) : (a+a)b =b 0 1 0 (cid:73) chaque colonne diff`ere de sa voisine d’un seul litt´eral 1 0 1 F(a,b) =a.b+a (cid:73) les tables de Karnaugh sont `a deux dimensions : on regroupe 1 1 1 F(a,b) =((a.b.a)) des variables (cid:73) on regroupe les 1 en morceaux rectangulaires F(a,b) =(a+b).a F(a,b) =1 si (cid:73) plus grands morceaux possibles F(a,b) =a.a+b.a a = 0 et b = 0 soit a = 1 et (cid:73) moins de morceaux possibles F(a,b) =b.a b = 1 donc si a.b = 1 (cid:73) nouveau morceau que s’il permet de regrouper des 1 non F(a,b) =b+a encore regroup´es a = 1 et b = 0 soit a = 1 et F(a,b) =b+a (cid:73) la ligne du haut et du bas ainsi que colonne de droite et de b = 1 donc si a.b = 1 gauche sont adjacentes a = 1 et b = 1 donc si a.b = 1 (cid:73) ⇒ Morceau = produit de variable : variable et son inverse dans ⇒ F(a,b) =a.b+a.b+a.b le mˆeme morceau = ´elimination de la variable logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Karnaugh : Exemple 1 Karnaugh : Exemple 2 (cid:73) F(a,b,c) =a.b.c +a.b+a.c F(a,b,c) =a.b.c +a.b.(c +c)+a.c.(b+b) (cid:73) F(a,b) =a.b+a.b+a.b F(a,b,c) =a.b.c +a.b.c +a.b.c +a.b.c +a.b.c F(a,b) : b a (cid:19)(cid:16) F(a,b,c) : 1 0 c (cid:19) (cid:16) (cid:19)(cid:39)(cid:16)(cid:36) a 1 1 (cid:18)(cid:18)(cid:17)(cid:17) 0 1 1 1 (cid:18) (cid:17) b 0 0 1 1 (cid:38) (cid:37) (cid:73) a+b (cid:73) a+b.c logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Karnaugh : Exemple 3 Karnaugh : Exemple 3 (cid:73) F(a,b,c,d) =a.b.c +a.d +a.c (cid:73) F(a,b,c,d) =a.b.c +a.d +a.c b b F(a,b,c,d) : F(a,b,c,d) : d d 0 0 0 0 0 0 0 0 (cid:39)0 1 (cid:36)5 4 (cid:39)0 1 (cid:36)5 4 1 1 0 0 1 1 0 0 c (cid:19)2 (cid:36)3 7 (cid:39)6 (cid:16) c 2 (cid:36)3 (cid:19)7 (cid:16)(cid:39)6 1 1 1 1 1 1 1 1 (cid:38)(cid:18) (cid:37) (cid:17) (cid:38) (cid:37)(cid:18)(cid:17) a 10 11 15 14 a 10 11 15 14 1 0 0 1 1 0 0 1 (cid:37) (cid:38) (cid:37) (cid:38) 8 9 13 12 8 9 13 12 (cid:73) b.c +a.b.c.d +a.d!!!!!!! (cid:73) b.c +a.b.c.d +a.d!!!!!!! logo logo (cid:73) PAS BON! (cid:73) PAS BON! G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Portes et circuits logiques Portes logiques (cid:73) Un ordinateur travaille en base 2 (cid:73) E´lectroniquement 0 correspondait `a une tension de 0 `a 0,8V et 1 `a une tension de 2,8 `a 2,5V (tensions donn´ees par les NON(a) a constructeurs de composants) (cid:73) Toute fonction binaire peut ˆetre repr´esent´ee par une expression AND(a,b) a+b bool´eenne (cid:73) Tout circuit ´electrique ou ´electronique `a deux valeurs de tension peut ˆetre repr´esent´e par une expression bool´eenne OR(a,b) a.b (cid:73) Pr´ef´erable de repr´esenter les circuits par des symboles logiques et non par des expressions bool´eennes XOR(a,b) a⊕b (cid:73) Correspondance entre les diff´erentes fonctions logiques (+,∗...) et des symboles appel´es portes logiques logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Portes logiques et circuits Portes logiques : mise en s´erie NOR(a,b) a+b NAND(a,b) a.b ID(a,b) a⊕b logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Syst`eme complet Syst`eme complet (cid:73) Porte NAND = la plus simple `a r´ealiser du point de vue (cid:73) Porte NAND = la plus simple `a r´ealiser du point de vue technologique. technologique. (cid:73) Possible de r´ealiser toutes les fonctions logiques en utilisant (cid:73) Possible de r´ealiser toutes les fonctions logiques en utilisant uniquement NAND uniquement NAND (cid:73) AND : a.b = a.b.a.b =NAND(NAND(a,b),NAND(a,b)) (cid:73) OR : a+b =a.a.b.b =NAND(NAND(a,a),NAND(b,b)) logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Syst`eme complet Syst`eme complet (cid:73) Porte NAND = la plus simple `a r´ealiser du point de vue (cid:73) Porte NAND = la plus simple `a r´ealiser du point de vue technologique. technologique. (cid:73) Possible de r´ealiser toutes les fonctions logiques en utilisant (cid:73) Possible de r´ealiser toutes les fonctions logiques en utilisant uniquement NAND uniquement NAND (cid:73) NOT : a =a.a =NAND(a,a) (cid:73) XOR : a⊕b =a.a.b.b.a.b = NAND(NAND(a,NAND(a,b)),NAND(b,NAND(a,b))) logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Syst`eme complet Plan (cid:73) Porte NAND = la plus simple `a r´ealiser du point de vue technologique. (cid:73) Possible de r´ealiser toutes les fonctions logiques en utilisant Alg`ebre de Boole uniquement NAND (cid:73) NOR : a+b =a.a.b.b.a.a.b.b = Electronique NAND(NAND(NAND(a,a),NAND(b,b)),NAND(NAND(a,a),NAND(b,b))) Circuits combinatoires UAL Circuits s´equentiels : bascules logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Transistor Circuits int´egr´es (cid:73) Un transistor est un interrupteur qui permet de r´eunir ou de s´eparer deux fils. (cid:73) L’´etat d’un transistor (passant ou non), est command´e par un (cid:73) A partir de ce dispositif on peut r´ealiser des portes de base troisi`eme fil. (NON, ET, OU ...) (cid:73) Il existe deux types de transistors : (cid:73) les transistors de type N (”non-passant par d´efaut”), pour lesquels le transistor est non passant quand le fil de commande est dans l’´etat 0, (cid:73) et les transistors de type P (”passant par d´efaut”), pour lesquels le transistor est passant quand le fil de commande est dans l’´etat 0. logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Alg`ebredeBoole Electronique Circuitscombinatoires UAL Circuitss´equentiels:bascules Circuits int´egr´es Circuits int´egr´es (cid:73) A partir de ce dispositif on peut r´ealiser des portes de base (cid:73) A partir de ce dispositif on peut r´ealiser des portes de base (NON, ET, OU ...) (NON, ET, OU ...) logo logo G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques G.Blin-Architecturedesordinateurs Alg`ebredeBooleetcircuitslogiques
Description: