Post on 24-Oct-2015
Algèbre de Boole
1854 : Georges Boole propose une algèbre(autodidacte poussé par De Morgan, enseignant à 16 ans)
Propositions vraie ou fausseset opérateurs possibles Algèbre de Boole
(traces dans l’archéologie chinoise autour de l’an 1000)Yin – Yang
• Étude des systèmes binaires :Possédant deux états s’excluant mutuellement
• C’est le cas des systèmes numériques(des sous ensembles : les circuits logiques)
Algèbre binaire
On se limite : Base de l’algèbre de BoolePropriétés indispensables aux systèmeslogiques
Définitions :
• ÉÉtats logiques :tats logiques : 0 et 1, Vrai et Faux, H et L(purement symbolique) Georges et Marcel
• Variable logique :Variable logique : Symbole pouvant prendrecomme valeur des états logiques (A,b,c, Out ...)
• Fonction logique :Fonction logique : Expression de variables et d’opérateurs( f = not(a)^ (c OR r.t) )
Éléments de base Variables dVariables d’’entrentrééee Les variables d’entrée sont celles sur lesquelles on peut agir
directement. Ce sont des variables logiques indépendantes.
Variable de sortie
Variable contenant l’état de la fonction après l’évaluation desopérateurs logiques sur les variables d’entrée.
Simplification d’une fonction logique
Trouver la représentation (l’écriture) la plus simple de lafonction réalisée: Algèbre de Boole
Formellement
Algèbre de Boole sur [0,1] = algèbre binaireStructure d’algèbre de boole
• 2 lois de composition interne• 1 application unitaire
2 LCI : ET, OU
Somme (OU, Réunion) s = a + b = a v bProduit (ET, intersection) s = a . b = ab = a ^ b
Nb: a+b se lit « a OU b » pas « a PLUS b »
Application unitaire :
Not (complémentation, inversion) s = a = not(a)NB: a se lit « a barre » ou « non a »
Fonctions logiques
Fonction logique à n variables f(a,b,c,d,...,n)
[0,1]n [0,1]
- Une fonction logique ne peut prendre que deux valeurs- Les cas possibles forment un ensemble fini (card = 2n)- Descriptions, preuves possibles par énumération
comparer f(a,b,c,..n) et g(a,b,c,..,n)= comparer les tables représentant f et g
La table de fonction logique = table de vérité
Définition : (a,b,c,...,n) = vecteur d’entrée
a
0
1
1
0
s = a
Table de vérité de ET, OU, NON
ab
s = a + b
0 1
0
1
0 1
1 1
s = a . b
ab 0 1
0
1
0 0
0 1
S est vrai si a OU best vrai.
S est vrai si a ET bsont vrais.
S est vraisi a est faux
a b s0 0 00 1 11 0 11 1 1
a b s0 0 00 1 01 0 01 1 1
a s0 11 0
Notes sur les tables de vérité
f (a,c,d, ..,n) fonction logique à N entréessera représentée par :
• une table à 2N lignes ou un tableau à 2N cases
a b c f(a,b,c)
0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 11 0 1 01 1 0 01 1 1 1
f(a,b,c)
abc
0
1
00 01 11 10
0 1 0 0
1 0 1 0
Propriétés (1) de ET,OU,NON
Commutativité
a+b = b+a
a.b = b.a
Associativité
a+(b+c) = (a+b)+c
a.(b.c) = (a.b).c
Distributivité
a.(b+c) = a.b+a.c
a+(b.c) =(a+b).(a+c)
Idempotence
a+a = a
a.a = a
Absorption
a+a.b = a
a.(a+b) = a
Involution
a = aOn garde la hiérarchie classique (. estprioritaire sur +)a + (b.c) = a + b.c != (a + b). c
Propriétés (2) de ET,OU,NON
Elément neutre
a+0 = a
a.1 = a
Elément absorbant
a+1 =1
a.0 = 0
Inverse
a+a = 1
a.a = 0
Théorème de DE Morgan
a+b = a . b
a.b = a + b
Théorème du Consensusa.x+b.x+a.b = a.x+b.x
(a+x)(b+x)(a+b)=(a+x)(b+x)
Chronogrammes : Graphe d’évolution temporelle
Il existe plusieurs niveaux d’abstraction :
a
b
a+b
fonctionnel, temporel, analogique
NB: Les chronogrammes ne sont généralement pas très efficaces pourreprésenter une fonction.
Equations logiques
On exprime f(a,b,c,...) par une expression en a,b,c..et des opérateurs Souvent le plus efficace
Exemple : f = a+b.c.(r+g.f)
Principe de dualité : Une expression reste vraie sion interverti les 1 par des 0 et les ET par des OU
Exemple : si a+b=1 alors a.b=0
Je suis riche si je suis bien payé et que je ne dépense pastout mon argent = Je suis dans le rouge si je nesuis pas bien payé ou que je dépense tout mon argent
Toute fonction logique peut s’écrire avec les opérateursET, OU et NON (par définition).
Groupe d’opérateur complet : ensemble d’opérateurpermettant d’exprimer toutes les fonctions logiques (GOC)
Corollaire : groupe d’opérateur permettant d’écrireET, OU et NON
Opérateur complet : Opérateur qui forme un GOC
Groupe d’opérateur complet
Deux autres opérateurs : NAND,NOR
s = a b = a+b
ab 0 1
0
1
1 0
0 0
S est vrai si ni a, ni bne sont vrais.
NOR (No-OR ou NI)
ab
s = a b = a.b
0 1
0
1
1 1
1 0
S est vrai si a OU best faux.
NAND (No-AND)
A l’aide du théorème de De Morgan toute fonction logique peut s’écrirequ’avec des NAND (resp des NOR).
NAND et NOR offrent des performances techniques intéressantes.
NAND est un GOC (complétude du NAND)
Preuve :
NOR est un GOC
Preuve :
a a a a a b b a b a b a b a b , ( ) ( ) , ( ) ( ) .
a a a a a b b a b a b a b a b , ( ) ( ) . , ( ) ( )
Propriétés de NOR et NAND
NAND et NOR ne sont pas associatifsUn NAND à trois entrées n’est pas équivalent à un NAND à deux entrées suivid’un autre NAND
Le calcul mal entrepris peut être TRES fastidieux
Somme de produits + 2 complémentations NAND
Produit de sommes + 2 complémentations NOR
abc abd e abc abd e abc abd e . .
( ( )) ( ( ) ) ( )a b c c a b b d e e
( ).( ) ( ).( ) ( ) ( )a b c a d a b c a d a b c a d
( ( ) ) ( ( ))a b b c a d d
Méthode d’obtention
s = a b = a.b + a.b
ab 0 1
0
1
0 1
1 0
S est vrai si a OU best vrai mais pas les deux.
XOR (Ou-Exclusif) vaut 1 si a est différent de bOpérateur de différence (disjonction)
Encore un opérateur : XOR
XOR est associatif s = a b c ..... n
vaut 1 si le nombre de variable à 1 est impaire.
Inverseur programmable : (le programme vaut 0 ou 1)
a 1 = a a 0 = a
a c b c a b
a x b x a b
Propriétés
Propriétés du XOR
XNOR
XNOR XOR vaut 1 si
s a b a b a b a b
a b
f x y z x y z x y z x y z( , , ) . . . . . .
Première forme canonique ou forme normale disjonctive
Minterme ou intersection de base
f x y z x y z x y z( , , ) ( ).( )
Deuxième forme canonique ou forme normale conjonctiveMaxterme ou réunion de base
Une fonction est sous forme canonique (ou normale) sichaque terme contient toutes les variables. L’écriture sousforme canonique est unique.Exemples :
Formes canoniques (1)
Si la fonction n’est pas sous forme normalei.e. une des variables (au moins) ne figure pas dans un des termes
La fonction est sous une forme simplifiée
f x y z xyz xyz xyz
xy z z xyz
y x xz
y x z
( , , )
( )
( )
( )
Première forme canonique
Forme simplifiée
Forme simplifiée
Forme simplifiée
Formes canoniques (2)
Première forme canonique = expression des 1 de la fonction
Deuxième forme canonique = expression des 0 de la fonction
Les deux formes canoniques sont équivalentes
On choisit celle qui donne le résultat le plus simplepeu de 0 => deuxième forme / peu de 1 => première forme
Formes canoniques : Choix
La forme mathématique la plus simple ne correspond pastoujours à la réalisation la plus simpleet/ou la plus rapide.
La prise en compte de contraintes technologiques peutimposer une complexification d’écriture de l’expression.
Simplification : avertissement
Décomposition : Problème général de la réalisationd’une fonction logique à l’aide d’opérateurs
Transformation : Passage d’une forme à une autreforme équivalente
Simplification : cas particulier d’une transformationquand on passe d’une forme canonique à une formeminimale.
Simplification : définitions
Applications des principes et propriétés de l’algèbre de Boole
Identités remarquables :
1
2
3
a b a b b (a+b) ( a+b)=b
a + a.b = a a.(a+b) = a
a + a.b = a+b a.( a b) a b
. . .
.
Démonstrations : 1 et 2 trivial
3 : a a b a a a b a a a b a a a b a b . . . . . ( ).( )
a 0
Simplification algébrique (1)
Règles de simplification :(Mintermes adjacents = 1 seule variable qui change)
1 : Deux mintermes adjacents Il reste l’intersection commune1’: Deux maxtermes adjacents Il reste la réunion commune
a b c a b c a b c c a b
a b c a b c a b c c a b
. . . . . .( ) .
( ).( ) ( )( )
2 : On ajoute des termes neutres ou déjà existant (idempotence)3 : théorème du consensus4 : On simplifie la forme canonique ayant le moins de termes
Méthode algébrique toujours possible mais démarche intuitivequi dépend de l’habileté et de l’expérience.
Simplification algébrique (suite)
Karnaugh – simplification graphique
La méthode de Karnaugh permet de visualiser une fonction et d’entirer naturellement une écriture simplifiée.
L’élément de base de cette méthode est la table de Karnaugh quireprésente toutes les combinaisons d’états possibles pour unnombre de variables donné.
La table de Karnaugh est un outil graphique qui permet de simplifierde manière méthodique des expressions booléennes. Elle offre uneméthode de simplification pratique suivant une démarchesystématique semblable à une recette de cuisine.
La construction des tables de Karnaugh exploite le codage del’information et la notion d’adjacence
Principe : Mettre en évidence sur un graphique les mintermes(ou maxtermes) adjacents. Transformer les adjacences logiquesen adjacences «géométriques».
Trois phases : transcrire la fonction dans un tableau codérecherche des adjacents pour simplification
équations des groupements effectués
Description : Table de vérité vs Tableau de Karnaugh1 ligne 1 casen variables 2n cases
Simplification graphique (suite)
a b c f0 0 0 00 0 1 10 1 0 10 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0
Exemple 1: Depuis une table de vérité
00 01 11 10
bc
a
0
1
1
Simplification graphique (suite)
00 01 11 10
0
a b c f0 0 0 00 0 1 10 1 0 10 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0
Exemple 1 Depuis une table de vérité
bc
a
1
10 11
0 0 0 0
Simplification graphique (suite)
00 01 11 10
0
a b c f0 0 0 00 0 1 10 1 0 10 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0
Exemple 1 : Depuis une table de vérité
bc
a
1
10 11
0 0 0 0
3 lettres = 3 adjacents
!Attention! Haut et Bas / Gauche et Droite liés (tore deKarnaugh)
Simplification graphique (suite)
00 01 11 10
0
Exemple 2 : Par une première forme canonique (Par les 1)
bc
a
1
f a b c a b c a b c a b c( , , ) . . . . . .
1 1
1
Simplification graphique (suite)
00 01 11 10
0
Exemple 2 : Par une deuxième forme canonique (Par les 0)
bc
a
1
f a b c a b c a b c a b c( , , ) ( ).( ).( )
0
0 0
Simplification graphique (suite)
Règles de simplification
1 : Les groupements comportent une puissance de deux cases,2 : Les 2k cases forment un rectangle,3 : Un groupement de 2k cases correspond à une simplification
de k variables et s’écrit avec (n-k) lettres,4 : Il faut utiliser au moins une fois chaque 1, le résultat est donné
par la réunion logique de chaque groupement,5 : Expression minimale si :
• les groupements les plus grands possibles• utiliser les 1 un minimum de fois
6 : Codage d’un groupe par les 1 :• n’apparaît que les variables fixes dans le groupement• forme simple si la variable vaut 1/ complémentée sinon
Simplification graphique (suite)
00 01 11 10
0
bc
a
1
10 01
1 1 1 0
Choix d’un 1 et recherchedes adjacents contenant un 1
a b c f
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1
Simplification graphique (suite)
00 01 11 10
0
bc
a
1
10 01
1 1 1 0
Recherche d’un ensemble de deux casesadjacent contenant des 1 Echec
Il faut essayer de maximiser les groupements
Simplification graphique (suite)
00 01 11 10
0
bc
a
1
10 01
1 1 1 0
Autre groupement
On choisit un des 1 restant etrecherche des 1 adjacents
Simplification graphique (suite)
Maximisation groupement
Choix d’un 1 adjacent et recherched’un groupement adjacent
OK !
00 01 11 10
0
bc
a
1
10 01
1 1 1 0
0
Simplification graphique (suite)
00 01 11 10
0
bc
a
1
10 01
1 1 1 0
Tous les 1 sont groupés !
Equation : F a b c a b c( , , ) .
Simplification graphique (suite)
00 01 11 10
0
bc
a
1
10 01
1 1 1 0
Par les 0
Equation : F a b c a c b c( , , ) ( ).( )
Simplification graphique (suite)
Difficile avec plus de 6 variables• Intérêt pédagogique• Les problèmes sont toujours découpables en pb pluspetits
Pas programmable (autres méthodes : McCluskey,Sheinman, Tison)Temps pas pris en compteDifficile minimiser plusieurs fonctions conjointement
Problème de l’aléa de propagation : si deux groupes sontadjacents
Limites de la méthode
00 01 11 10
0
bca
1
10 01
1 1 0 0F a b a c . .
Si b=0, c=1 F a a = 1 mathématiquement, mais …
a
OU
a
a
F
Retard techno
L’aléa de propagation : problème
F a b a c b c . . .
Si b=0, c=1 F a a 1 = 1 mathématiquement ettechnologiquement
00 01 11 10
0
bca
1
10 01
1 1 0 0
C’est le théorème du consensus
L’aléa de propagation : problème
000
001
011
010
110
111
101
100
abc
def 000 001 011 010 110 111 101 100
- 0 0 1 - 0 0 1
0 0 - 0 0 0 0 0
0 0 - 0 0 0 0 0
- 0 0 1 1 - 0 -
- 0 0 1 - 0 0 -
0 0 - 0 0 - 0 0
0 - 0 0 0 0 0 -
- 0 0 1 1 0 0 1
Exercice 1
000
001
011
010
110
111
101
100
abc
def
000 001 011 010 110 111 101 100
- 0 0 1 - 0 0 1
0 0 - 0 0 0 0 0
0 0 - 0 0 0 0 0
- 0 0 1 - 0 0 -
0 0 - 0 0 - 0 0
0 - 0 0 0 0 0 -
- 0 0 1 1 0 0 1
Plus de 1 ou de 0 ?Choix d’un 1Recherche des
adjacentsAdjacents éligibles ?
Si oui groupement
Groupement«augmentable» ?
- 0 0 1 1 - 0 -
Exercice 1 : Démarche
- 0 0 1 1 - 0 -
000
001
011
010
110
111
101
100
000 001 011 010 110 111 101 100
- 0 0 1 - 0 0 1
0 0 - 0 0 0 0 0
0 0 - 0 0 0 0 0
- 0 0 1 - 0 0 -
0 0 - 0 0 - 0 0
0 - 0 0 0 0 0 -
- 0 0 1 1 0 0 1
Plus de 1 ou de 0 ?Choix d’un 1Recherche des
adjacentsAdjacents éligibles ?
Si oui groupement
Groupement«augmentable» ?
abc
def
Exercice 1 : Démarche(2)
000
001
011
010
110
111
101
100
000 001 011 010 110 111 101 100
- 0 0 1 - 0 0 1
0 0 - 0 0 0 0 0
0 0 - 0 0 0 0 0
- 0 0 1 - 0 0 -
0 0 - 0 0 - 0 0
0 - 0 0 0 0 0 -
- 0 0 1 1 0 0 1
abc
def
- 0 0 1 1 - 0 -
Exercice 1 : Démarche (suite)
- 0 0 1 - 0 0 -
0 0 - 0 0 0 0 0
- 0 0 1 - 0 0 1
- 0 0 1 1 - 0 -
000
001
011
010
110
111
101
100
000 001 011 010 110 111 101 100
0 0 - 0 0 0 0 0
0 0 - 0 0 - 0 0
0 - 0 0 0 0 0 -
- 0 0 1 1 0 0 1
abc
def
Exercice 1 : Démarche (suite)
- 0 0 1 - 0 0 -
- 0 0 1 1 - 0 -
0 0 - 0 0 0 0 0
- 0 0 1 - 0 0 1000
001
011
010
110
111
101
100
000 001 011 010 110 111 101 100
0 0 - 0 0 0 0 0
0 0 - 0 0 - 0 0
0 - 0 0 0 0 0 -
- 0 0 1 1 0 0 1
abc
def
Exercice 1 : Démarche (suite)
- 0 0 1 1 - 0 -
- 0 0 1 - 0 0 -
0 0 - 0 0 0 0 0
- 0 0 1 - 0 0 1000
001
011
010
110
111
101
100
000 001 011 010 110 111 101 100
0 0 - 0 0 0 0 0
0 0 - 0 0 - 0 0
0 - 0 0 0 0 0 -
- 0 0 1 1 0 0 1
abc
def
1 seul groupement
H c f .
Exercice 1 : Solution
000
001
011
010
110
111
101
100
abc
def
000 001 011 010 110 111 101 100
1 1 0 0 1 1 1 -
1 1 1 1 - 1 1 1
1 1 1 1 1 1 - 1
1 1 0 0 - 1 1 1
1 1 0 0 1 1 - 1
1 1 1 1 - 1 1 1
1 1 1 1 1 1 1 1
1 1 0 0 1 1 1 1
Exercice 2
1 1 0 0 1 1 1 1
1 1 0 0 - 1 1 1
1 1 0 0 1 1 1 -000
001
011
010
110
111
101
100
abc
def000 001 011 010 110 111 101 100
1 1 1 1 - 1 1 1
1 1 1 1 1 1 - 1
1 1 0 0 1 1 - 1
1 1 1 1 - 1 1 1
1 1 1 1 1 1 1 1
H c d e
Exercice 2 : Solution
Tableau de Karnaugh à variable inscrite (KVI)
1111
1011
0101
1001
1110
0010
0100
0000
fcba
c01
111
c10
000
fba
- La méthode de KVI tente de pallier à ladifficulté liée aux tableaux de Karnaugh audelà de 4 variables.- Elle rajoute un niveau d’abstraction à latable de vérité de la fonction à réduire eny inscrivant une ou plusieurs variables
0
c
c
1
1c
c0a
b 0
0
1
1
1 c c
f ac bc
KVI exemple (2)
a b c d f f
0 0 0 0 00
0 0 0 1 0
0 0 1 0 1d
0 0 1 1 0
0 1 0 0 1d
0 1 0 1 0
0 1 1 0 xd + d x
0 1 1 1 1
1 0 0 0 0d x
1 0 0 1 x
1 0 1 0 1d + d x
1 0 1 1 x
1 1 0 0 1d
1 1 0 1 0
1 1 1 0 xd + d x
1 1 1 1 1
( )f cd bc bd b c d bc
(2, 4,7,12,10,15) (6,9,11,14)f R
0 d d + d x d
d x d + d x d + d x d
0
1
00 01 11 10abc
Technique de Quine-McCluskey
La méthode de Quine part de la décomposition canonique disjonctive d’une expressionBooléenne et utilise systématiquement la formule de simplification
x y xy y
où x est un littéral et y un monôme.
Intérêts :
- Implémentation machine possible- Nombre quelconque de variables- Efficace, le résultat de la simplification est minimal
Peut nécessiter un temps exponentiel pour certains circuits !
Tablevérité
Mettre la fonction sous formecanonique
Transformer les mintermes ennombres binaires
Grouper les termes selon leurpoids
(nombre des "1")
Trier par ordre croissant àl'intérieur de chaque groupe
Combiner les mintermes avecceux du groupe adjacent. *
* Deux mintermes se combinents'ils diffèrent par un seul bit.
Le minterme combiné contientun "x" à la place du bit différent
Créer un nouveau groupe avec lesmintermes combinés
Nouveaugroupe?
Identifier les impliquants #
# éléments non utilisés pourgénérer un élément du nouveau
groupe
Identifier les impliquants essentiels(représentation unique)
impliquants essentiels= toutes les solutions
Fin
Rajouter quelquesimpliquants pour avoir
toutes les solutions
Pro
cédure
de
simplifica
tion
Alg
orith
me
de
Quin
e-M
cClu
skey
Algorithme de Quine-McCluskey
Exemple – Quine (1)
Soit à simplifier
( , , , )
( , , , ) (0,2,3,6,7,8,9,12,13,14,15)
1111 1110 1101 1100 1001 1000 0111 0110 0011 0010 0000
f a b c d ab bc ac acd abd abc
f a b c d R
f abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd ab
f
cd
Exemple – Quine (2)
classes Etape 0 flag
0 0000 1
100101000
2
0011011010011100
3011111011110
4 1111
classes Etape 0 flag Etape1 flag
0 0000 1 00x0x000
1 00101000
11
001x0x10100x1x00
2 0011011010011100
1111
0x11011xx1101x01110x11x0
3 011111011110
111
x11111x1111x
4 1111 1
Exemple – Quine (3)
classes Etape 0 flag Etape 1 flag Etape 2 flag
0 0000 1 00x0x000
00
1 00101000
11
001x0x10100x1x00
1111
0x1x1x0x
00
2 0011011010011100
1111
0x11011xx1101x01110x11x0
111111
x11x11xx
00
3 011111011110
111
x11111x1111x
111
4 1111 1
Impliq
uants
pre
mie
rs
Exemple – Quine (4)
0000 0010 1000 0011 0110 1001 1100 0111 1101 1110 1111
00x0 * *x000 * *0x1x (*) [*] (*) (*)1x0x (*) [*] * (*)x11x * * * *11xx * * * *
* indique que l’impliquant couvre le terme[*] l’impliquant est essentiel à ce terme(*) terme couvert par un impliquant essentiel
ac acab abd
ab bcd
bc abd
bc bcd
+