You are on page 1of 13

ES102

1

Couches logicielles Architecture

Combinatoire

Micro-architecture Logique/Arithmétique Circuit logique Circuit analogique Dispositif Physique

LOGIQUE BOOLÉENNE

ES102 / CM2

ES102/CM2

2

LOGIQUE COMBINATOIRE
Entrées x1 ··· xn Circuit combinatoire y1 ··· yp Sorties

• Objet :
– implanter une ou plusieurs fonctions booléennes dépendant des mêmes variables : yk = fk(x0, x1, ···, xn) – au moyen de montages dédiés, où le calcul des fonctions consiste en l’établissement d’un état d’équilibre électrique stable dépendant uniquement des entrées actuelles.
• délai = temps maximal d’établissement de l’équilibre

• Prérequis :
– représenter/exprimer les fonctions booléennes pour pouvoir en dériver directement des montages compacts, rapides, ...

équivalentes : x+x’y – la proposition logique «! x ou y!». mais antagonistes a $ 0 1 0 1 c 1 0 1 0 b " CM4 a b c • Quelles règles de transformation entre représentations ? – pour les formules booléennes " Algèbre de Boole a#b#c CM1&PC1 • Des confusions à éviter : «!x+y!» peut désigner : 3 représentations du «!bit somme!» – la fonction booléenne OU – une formule booléenne parmi d’autres.ES102/CM2 3 CIRCUIT COMBINATOIRE • Ensemble de portes interconnectées.B) délais commutation non instantanée (à décroissance RC) t ES102/CM2 4 PREOCCUPATIONS BOOLÉENNES • Quelles représentations ? – compacité et unicité : propriétés précieuses. qui peut être vraie ou fausse . sans cycle (graphe orienté acyclique) ! l’état d’équilibre ne dépend que des entrées ! b c a cycle ! logique séquentielle MUX • Chronogramme : A B A B AND(A.

b) a (0. • intérêt : expression fonctionnelle facilitée ensuite • idée attribuée à Karnaugh (a. 1) b b (a. 1) (1. 1) (1.ES102/CM2 5 TABLES DE VÉRITÉ 2D FONCTIONNELLES • Exploitation différente des bords du tableau a#b b 0 1 a 0 1 0 1 1 0 a#b a 0 1 b 1 0 zone où a=1 – classiquement : valeurs des variables – notation «!fonctionnelle!» : on indique. b) a (0. {b=1} et {c=1} toutes les 3 connexes " c sacrifiée : {c=1} coupée en 2 . 0) (0. la zone où celle-ci vaut 1 • Comment loger 2 variables sur une dimension ? – ordre énumératif classique – ordre (code de Gray) rendant connexe la zone où b=1. 1) (1. 0) (0. 0) b ES102/CM2 6 ART DE LA TABLE n=2 b a n=3 z y x n=4 h u b n=5 d a d e c c q 8h+4q+2d+u impossible d’avoir les zones {a=1}. 0) (1. pour chaque variable.

c)=1 ssi [ (a=1) et ( b=1) ] ou [ ( a=1) et ( c=1) ] ou [ ( b=1) et (c=1) ] facile à identifier car la zone {b=1} est connexe ES102/CM2 8 ALGEBRE DE BOOLE : DEFINITION • La structure {B. c)=1 ssi [ ( a=1) et (b=1) et ( c=0) ] ou [ ( a=1) et (b=0) et ( c=1) ] ou [ ( a=0) et (b=1) et ( c=1) ] ou [ ( a=1) et (b=1) et ( c=1) ] formes abusivement appelées somme de produits ("#) où «!somme = OU multiple!» et «!produit = ET multiple!» également appelées formes disjonctives (OU = disjonction) Maj(a. b. &!a’.b. c) = Forme Disjonctive Minimale (FDM) a·b + a·c + b·c a 0 c 0 0 1 0 1 1 1 b Maj(a. 1 pour · chaque loi possède un élément absorbant : 0 pour ·. b.c a·(b+c)=(a·b)+(a·c) et a+(b·c)=(a+b)·(a+c) ! il existe un complément unique : %a. b. a+a’=1 et a·a’=0 ! le cardinal de B est au moins 2 (0'1) • Certaines propriétés ci-dessus sont redondantes .+. 1 pour + il y a DOUBLE distributivité : %a. c) = Forme Normale Disjonctive (FND) a·b·c’ + a·b’·c + a’·b·c + a·b·c 0 c 0 a 0 1 0 1 1 1 b Maj(a.·} est appelée algèbre de Boole si : ! ! ! ! ! + et · sont des lois internes + et · sont des lois commutatives et associatives chaque loi possède un élément neutre : 0 pour +. b.ES102/CM2 7 ESSAIS SUR LA FONCTION MAJORITÉ Maj(a.

y). (x’)’=x • Lois de De Morgan : %(x. (y·x)+x=x (y+x)·x=x • Involution : %x. induit une algèbre de Boole. • " PC2 / Exo1 ES102/CM2 ALGEBRE DE BOOLE : PRINCIPAUX THEOREMES Interprétation ensembliste ( (X!X) = X = (X"X) 10 • Idempotence : %x. muni de la relation d’implication comme ordre partiel.ES102/CM2 ALGEBRE DE BOOLE : EXEMPLES 9 • • B={0. il s’agit de l’inclusion +) L’ensemble des fonctions booléennes de n variables. x·x=x et x+x=x ! pas de puissances • Absorption : %(x. (x+y)’ = x’·y’ (x·y)’ = x’+y’ = = (Y!X)"X = X (Y"X)!X = X X"Y=X!Y X!Y=X"Y " jeu de bulles dualité : + et · échangent leur rôle à travers la complémentation .1} muni de OU et ET est une algèbre de Boole Soit E ensemble fini et P(E) ensemble des parties de E : P(E) muni de ) et * est une algèbre de Boole " interprétation ensembliste naturelle des théorèmes Booléens • + et · ne sont rien d’autre que le max et le min découlant d’un certain ordre partiel sur l’ensemble considéré (ci-dessus.y).

ES102/CM2 PRATIQUE DES MANIPULATIONS ALGEBRIQUES 2) Précédence de · sur + 11 Commodités de notation : 1) Omission de · xy Exemple d’équivalence démontrée rigoureusement : absorption distributivité complément élément neutre xy + xy’z (xy + xyz + xy’z (xy + x(y+y’)z (xy + x1z (xy + xz z x y x z y xy’z xz ES102/CM2 12 L’OPERATEUR LOGIQUE «!IMPLICATION!» • Soit a et b deux propositions logiques.A b : x. «!a!b!» en est une également – exemples : «!x>2 ! x>0!» est vrai «!x>0 ! x>2!» est faux • Ainsi «!a!b!» est une fonction booléenne de a et b : a!b = a’+ b a b Interprétation ensembliste : inclusion A B a b x.B A#B A"B=E A!B=$ E = ensemble total .E a : x.

z) + toujours faux · · 0 z’ 0 z · x -{y!z $1} = Maj(1.Y) = [ x+f(0. z) = -{x!y!z $2} = 1 si x!y!z $2 = 0 sinon addition + Expansion · x’ · y’ · z’ 0 z -{y!z $2} = Maj(0. x l’une d’elles.z) + toujours vrai · · 1 z’ 1 z -{z $0} + · 1 -{z $2} + y · · -{z $1} + y’ · 1 · z’ 0 -{z $1} + y · z Développement " x’yz + xy’z + xyz’ + xyz : c’est la FND de Maj() .Y) et f(1.Y) sont respectivement appelés cofacteurs négatif et positif de f par rapport à la variable x • Récursivité : – les cofacteurs sont des fonctions booléennes de n-1 variables.Y) + x·f(1. auxquelles l’expansion est de nouveau applicable – il en découle la forme normale disjonctive ("#) et la forme normale conjonctive (#") .y.Y) " f(x.Y) ] " formule disjonctive " formule conjonctive • f(0.ES102/CM2 FORMES NORMALES DISJONCTIVE ET CONJONCTIVE 13 • Soit n variables.Y) ] · [ x’+f(1.Y) une fonction booléenne de ces n variables • Formules d’expansion de Boole (souvent attribuées à Shannon) : " f(x. Y la liste des n-1 autres • Soit f(x.Y) = x’·f(0. ES102/CM2 14 EXPANSION DE BOOLE : EXEMPLE Maj(x.y. y.

ES102/CM2 15 FORME NORMALE DISJONCTIVE • minterme = produit des n variables. d’où des propriétés avancées intéressantes .0.Y) # [f(0. #.c) = ab + ac + a’bc ES102/CM2 16 AUTRE OUTIL : LA DÉRIVATION PARTIELLE • dérivée binaire partielle de f par rapport à x : f(0.Y)] · x dérivée • Une application récursive selon les différentes variables.Y) • Formule de Taylor à l’ordre 1 : f(x. mais pas de manière unique – exemple : Maj(a.1) correspond le minterme x’y’z • Une fonction booléenne est égale à la somme des mintermes associés à chaque point de son support f-1({1}) • Il s’agit de la Forme Normale Disjonctive (FND) … … et elle est unique à une permutation des variables près • Une fonction booléenne s’exprime souvent de façon plus concise comme somme de produits ("#) qui ne sont pas tous des mintermes.z)=(0. qui est sa fonction caractéristique : – ex.y.Y) = f(0.b.Y)#f(1.Y)#f(1. complémentées ou non • A tout point de Bn correspond un unique minterme. ·) est un anneau. suivie d’un développement. fournit la Forme de Reed-Müller de f : un OU exclusif de produits de variables non complémentées – ex : xyz # xz # xz est la FRM de x’z+yz (également dite forme de Davio) – (B. : à (x.

Y) ! f(1.Y)=1. f(1.Y) . a. b) = b si c=0 b • Symboles : moderne vs classique les valeurs licites pour le signal de commande apparaissent à l’intérieur du rectangle et désignent l’entrée sélectionnée (extension ultérieure à de la commande numérique) c a b 1 0 • Expansion de Boole % c ! MUX(c.Y) aussi " PC2 • f est croissante si elle l’est par rapport à chacune de ses variables • f est décroissante si sa fonction complémentaire f est croissante • Exemples : – – – – a+b est croissante (ab)’ est décroissante a#b n’est ni croissante ni décroissante les portes CMOS élémentaires seront décroissantes " CM4 ES102/CM2 18 MULTIPLEXEUR 2 VERS 1 • Un opérateur booléen ternaire (c?a:b) en langage C – c : commande. a et b : données multiplexées c a = a si c=1 MUX(c. partout où f(0. a.Y) croissante par rapport à x ssi f(0. b) = c’b + ca • FND : cab + cab’ + c’ab + c’a’b a 0 1 1 0 c 0 0 1 1 b .ES102/CM2 17 CROISSANCE • f(x.

mais les NAND sont des portes technologiquement privilégiées ES102/CM2 20 DIAGRAMME DE DECISION BINAIRE • La formule d’expansion de Boole peut être réécrite en utilisant l’opérateur multiplexeur 2 vers 1 : – f(x. être réappliquée aux deux cofacteurs.Y) ] • Récursivité : cette formule peut. elle aussi. f(0.ES102/CM2 19 JEU DE BULLES POUR MULTIPLEXEUR MUX(c.Y). b) = ca + c’b De Morgan a c Le procédé employé est général ! b a c b a c b a c b Toute fonction booléenne peut être implantée à partir de portes NAND uniquement Idem pour NOR.Y) = MUX[ x. a. • Il en résulte une structure de calcul arborescente de f appelée diagramme de décision binaire (BDD en anglais) • Un BDD dépend de l’ordre pris pour les variables . etc. f(1.

y.ES102/CM2 21 EXEMPLE DE BDD BRUT f(x.z) = (x+y)z x 0 1 x 0 0 0 0 z 0 1 1 1 y y 0 1 0 1 z 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 ES102/CM2 22 REDUCTION DES BDD (par l’exemple) 1) Fusion des MUX jouant le même rôle 2) Suppression des MUX à mêmes entrées 3) Regroupement 0 et 1 (cosmétique) (x+y)z x 1 y 0 1 0 1 0 1 2 y 0 0 z 0 0 1 0 0 0 1 1 z 0 0 1 1 0 0 1 1 z 1 x 0 (x+y)z 1 3 y 0 1 x 0 Unicité de la représentation (x+y)z 1 .

AND et OR : – en mettant préalablement la fonction sous forme disjonctive • Avec des portes NAND seulement : – en utilisant les lois de De Morgan sur forme disjonctive – ou. certains étant regroupés : – fonction exprimée comme somme de produits (forme disjonctive. moins lourd que la FND. unique mais lourde • par «!liste!» astucieuse des 1 de la fonction.ES102/CM2 23 RECAPITULATIF 1 : REPRESENTATION D’UNE FONCTION BOOLEENNE • par liste brute de toutes les valeurs : – sous forme graphique " table de vérité (ou autres formes plus exotiques) • OK pour n%4 (voire 6). avec de «!simples!» interrupteurs – qui seront les transistors MOS de la prochaine séance … " logique à interrupteurs . trop lourd ensuite – aussi possible sous forme de fichier • • n=32 ! 4Gb=1/2Go de mémoire occupée par «!liste!» brute des 1 de la fonction (son support) : – auquel cas. aussi dite !") • formule algébrique. et unique pour un ordre de variables donné • représentation de choix pour la CAO électronique actuelle ES102/CM2 24 RECAPITULATIF 2 : RÉALISATION DE FONCTIONS BOOLÉENNES • Avec des portes INV. plus légère que la FND mais non unique : on cherchera à la minimiser • par arbre «!questionnaire!» – avec une question par étage : «!que vaut telle variable ?!» – forme appelée BDD (diagramme de décision binaire) – se prête à une procédure de réduction systématique " CM4 • fournissant un graphe. il faut donner la position dans Bn de chaque 1 – c’est exactement ce que fait la FND (forme normale disjonctive) • formule algébrique. de manière équivalente. par «!jeu de bulles!» • Avec des MUX (multiplexeurs) – en mettant préalablement la fonction sous forme BDD • Et bientôt.

ES102/CM2 25 LOGIQUE A INTERRUPTEURS (1) 1 interrupteur a=0 a=1 a non passant passant a entrée passant non passant a 0 Inverseur a a’ sortie ES102/CM2 26 LOGIQUE A INTERRUPTEURS (2) 1 b a montage série b a b a+b a 0 montage parallèle porte NOR2 ? porte NAND2 a·b a b (ab)’ .