Vous êtes sur la page 1sur 61

lectronique Numrique

Algbre binaire
criture et simplification des fonctions logiques

Algbre de Boole
1854 : Georges Boole propose une algbre
(autodidacte pouss par De Morgan, enseignant 16 ans)

Propositions vraie ou fausses et oprateurs possibles

Algbre de Boole

(traces dans larchologie chinoise autour de lan 1000) Yin Yang

tude des systmes binaires : Possdant deux tats sexcluant mutuellement Cest le cas des systmes numriques (des sous ensembles : les circuits logiques)

Algbre binaire
On se limite : Base de lalgbre de Boole Proprits indispensables aux systmes logiques Dfinitions : tats logiques : (purement symbolique) 0 et 1, Vrai et Faux, H et L Georges et Marcel

Variable logique : Symbole pouvant prendre comme valeur des tats logiques (A,b,c, Out ...) Fonction logique : Expression de variables et doprateurs ( f = not(a)^ (c OR r.t) )

lments de base
Variables dentre
Les variables dentre sont celles sur lesquelles on peut agir directement. Ce sont des variables logiques indpendantes.

Variable de sortie
Variable contenant ltat de la fonction aprs lvaluation des oprateurs logiques sur les variables dentre.

Simplification dune fonction logique


Trouver la reprsentation (lcriture) la plus simple de la fonction ralise: Algbre de Boole

Formellement
Algbre de Boole sur [0,1] = algbre binaire Structure dalgbre de boole 2 lois de composition interne 1 application unitaire 2 LCI : ET, OU Somme (OU, Runion) s = a + b = a v b Produit (ET, intersection) s = a . b = ab = a ^ b Nb: a+b se lit a OU b pas a PLUS b Application unitaire : Not (complmentation, 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 numration comparer f(a,b,c,..n) et g(a,b,c,..,n) = comparer les tables reprsentant f et g La table de fonction logique = table de vrit Dfinition : (a,b,c,...,n) = vecteur dentre

Table de vrit de ET, OU, NON


b 0 a 0 0 1 1 b 0 a 0 0 1 0

1 1 1

1 0 1

a 0 1

1 0 s=a

s=a+b S est vrai si a OU b est vrai. ab 00 01 10 11 s 0 1 1 1

s=a.b S est vrai si a ET b sont vrais. ab 00 01 10 11 s 0 0 0 1

S est vrai si a est faux a 0 1 s 1 0

Notes sur les tables de vrit


f (a,c,d, ..,n) fonction logique N entres sera reprsente par : une table 2N lignes ou un tableau 2N cases
abc 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 0 1 0 0 1 bc

a 0 1

00 0 1

01 1 0

11 0 1

10 0 0 f(a,b,c)

Proprits (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=a
On garde la hirarchie classique (. est prioritaire sur +) a + (b.c) = a + b.c != (a + b). c

Proprits (2) de ET,OU,NON


Elment neutre a+0 = a Thorme de DE Morgan a.1 = a a+b = a . b Elment absorbant a.b = a + b a+1 =1 a.0 = 0 Thorme du Consensus Inverse a.x+b.x+a.b = a.x+b.x a+a = 1 (a+x)(b+x)(a+b)=(a+x)(b+x) a.a = 0

Chronogrammes : Graphe dvolution temporelle


Il existe plusieurs niveaux dabstraction :
fonctionnel, temporel, analogique

a+b

NB: Les chronogrammes ne sont gnralement pas trs efficaces pour reprsenter une fonction.

les chronogrammes (2)


Plusieurs niveaux dabstraction :
temporel
a

a+b

Retard temporel

les chronogrammes (3)


Plusieurs niveaux dabstraction :
analogique symbolique

a+b

Equations logiques
On exprime f(a,b,c,...) par une expression en a,b,c.. et des oprateurs Souvent le plus efficace
Exemple : f = a+b.c.(r+g.f)

Principe de dualit : Une expression reste vraie si on 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 dpense pas tout mon argent = Je suis dans le rouge si je ne suis pas bien pay ou que je dpense tout mon argent

Groupe doprateur complet


Toute fonction logique peut scrire avec les oprateurs ET, OU et NON (par dfinition). Groupe doprateur complet : ensemble doprateur permettant dexprimer toutes les fonctions logiques (GOC) Corollaire : groupe doprateur permettant dcrire ET, OU et NON Oprateur complet : Oprateur qui forme un GOC

Deux autres oprateurs : NAND,NOR


b 0 a 0 1 1 1 1 1 0 b 0 a 0 1 1 0 1 0 0

s = a b = a.b S est vrai si a OU b est faux. NAND (No-AND)

s = a b = a+b S est vrai si ni a, ni b ne sont vrais. NOR (No-OR ou NI)

A laide du thorme de De Morgan toute fonction logique peut scrire quavec des NAND (resp des NOR).

Proprits de NOR et NAND

NAND et NOR ne sont pas associatifs

Un NAND trois entres nest pas quivalent un NAND deux entres suivi dun autre NAND

NAND et NOR offrent des performances techniques intressantes. NAND est un GOC (compltude du NAND) Preuve : a a a , ( a a ) (b b ) a b , ( a b ) ( a b ) a . b NOR est un GOC Preuve :

a a a , ( a a ) (b b ) a . b , ( a b ) ( a b ) a b

Mthode dobtention
Somme de produits + 2 complmentations
abc abd e abc abd e abc. abd . e

NAND

( a b ( c c )) ( a (b b ) d ) ( e e )
Produit de sommes + 2 complmentations NOR

( a b c).( a d ) ( a b c).( a d ) ( a b c) ( a d )

( a (b b ) c) ( a ( d d ))
Le calcul mal entrepris peut tre TRES fastidieux

Encore un oprateur : XOR


b 0 a 0 0 1 1 s=a 1 1 0 b = a.b + a.b

S est vrai si a OU b est vrai mais pas les deux. XOR (Ou-Exclusif) vaut 1 si a est diffrent de b Oprateur de diffrence (disjonction)

Proprits du XOR
XOR est associatif s = a b c ..... n vaut 1 si le nombre de variable 1 est impaire.

s a b a b a b a XNOR b XNOR XOR vaut 1 si a b


Inverseur programmable : (le programme vaut 0 ou 1) a
Proprits

1=a

0=a

ac bc a b a x b x ab

Formes canoniques (1)


Une fonction est sous forme canonique (ou normale) si chaque terme contient toutes les variables. Lcriture sous forme canonique est unique. Exemples :

f ( x , y , z ) x. y. z x. y. z x. y. z
Minterme ou intersection de base Premire forme canonique ou forme normale disjonctive

f ( x , y , z ) ( x y z ).( x y z )
Maxterme ou runion de base Deuxime forme canonique ou forme normale conjonctive

Formes canoniques (2)


Si la fonction nest pas sous forme normale
i.e. une des variables (au moins) ne figure pas dans un des termes

La fonction est sous une forme simplifie

f ( x , y , z ) xyz xyz xyz xy ( z z ) xyz y ( x xz ) y ( x z)

Premire forme canonique Forme simplifie Forme simplifie Forme simplifie

Formes canoniques : Choix


Premire forme canonique = expression des 1 de la fonction Deuxime forme canonique = expression des 0 de la fonction

Les deux formes canoniques sont quivalentes


On choisit celle qui donne le rsultat le plus simple peu de 0 => deuxime forme / peu de 1 => premire forme

Simplification : avertissement
La forme mathmatique la plus simple ne correspond pas toujours la ralisation la plus simple et/ou la plus rapide. La prise en compte de contraintes technologiques peut imposer une complexification dcriture de lexpression.

Simplification : dfinitions
Dcomposition : Problme gnral de la ralisation dune fonction logique laide doprateurs Transformation : Passage dune forme une autre forme quivalente Simplification : cas particulier dune transformation quand on passe dune forme canonique une forme minimale.

Simplification algbrique (1)


Applications des principes et proprits de lalgbre de Boole Identits remarquables :
1 2 3 a.b a. b b a + a.b = a a + a.b = a+b (a+b). ( a+b)=b a.(a+b) = a a.( a b) a.b

Dmonstrations : 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 algbrique (suite)


Rgles de simplification : (Mintermes adjacents = 1 seule variable qui change)
1 : Deux mintermes adjacents 1: Deux maxtermes adjacents Il reste lintersection commune Il reste la runion 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 dj existant (idempotence) 3 : thorme du consensus 4 : On simplifie la forme canonique ayant le moins de termes Mthode algbrique toujours possible mais dmarche intuitive qui dpend de lhabilet et de lexprience.

Karnaugh simplification graphique


La mthode de Karnaugh permet de visualiser une fonction et den tirer naturellement une criture simplifie. Llment de base de cette mthode est la table de Karnaugh qui reprsente toutes les combinaisons dtats possibles pour un nombre de variables donn. La table de Karnaugh est un outil graphique qui permet de simplifier de manire mthodique des expressions boolennes. Elle offre une mthode de simplification pratique suivant une dmarche systmatique semblable une recette de cuisine. La construction des tables de Karnaugh exploite le codage de linformation et la notion dadjacence

Simplification graphique (suite)


Principe : Mettre en vidence sur un graphique les mintermes (ou maxtermes) adjacents. Transformer les adjacences logiques en adjacences gomtriques. Trois phases : transcrire la fonction dans un tableau cod recherche des adjacents pour simplification quations des groupements effectus

Description : Table de vrit vs Tableau de Karnaugh 1 ligne 1 case n variables 2n cases

Simplification graphique (suite)


Exemple 1: Depuis une table de vrit bc abc f 00 01 11 10 a 000 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1

Simplification graphique (suite)


Exemple 1 Depuis une table de vrit bc abc f 00 01 11 10 a 000 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0

Simplification graphique (suite)


Exemple 1 : Depuis une table de vrit bc abc f 00 01 11 10 a 000 0

001 1 0 0 1 1 1 010 1 011 1 1 0 0 0 0 100 0 101 0 110 0 3 lettres = 3 adjacents 111 0 !Attention! Haut et Bas / Gauche et Droite lis (tore de Karnaugh)

Simplification graphique (suite)


Exemple 2 : Par une premire forme canonique (Par les 1) bc 00 01 11 10 a 0 1 1 1 1

f ( a , b , c) a . b. c a . b. c a . b. c

Simplification graphique (suite)


Exemple 2 : Par une deuxime forme canonique (Par les 0) bc 00 01 11 10 a 0 1 0 0 0

f ( a , b , c ) ( a b c ).( a b c ).( a b c )

Simplification graphique (suite)


Rgles 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 scrit avec (n-k) lettres, 4 : Il faut utiliser au moins une fois chaque 1, le rsultat est donn par la runion logique de chaque groupement, 5 : Expression minimale si : les groupements les plus grands possibles utiliser les 1 un minimum de fois 6 : Codage dun groupe par les 1 : napparat que les variables fixes dans le groupement forme simple si la variable vaut 1/ complmente sinon

Simplification graphique (suite)

bc
a
0 0 0 0 1 1 1 1

b
0 0 1 1 0 0 1 1

c
0 1 0 1 0 1 0 1

f
0 1 0 1 1 1 0 1

a 0 1

00 0 1

01 1 1

11 1 1

10 0 0

Choix dun 1 et recherche des adjacents contenant un 1

Simplification graphique (suite)


Il faut essayer de maximiser les groupements bc 00 01 11 10 a 0 1 0 1 1 1 1 1 0 0

Recherche dun ensemble de deux cases adjacent contenant des 1 Echec

Simplification graphique (suite)


Autre groupement bc a 0 1 00 0 1 01 1 1 11 1 1 10 0 0

On choisit un des 1 restant et recherche des 1 adjacents

Simplification graphique (suite)


Maximisation groupement bc 00 a 0 1 0 1

01 1 1 1 1

11 0 0

10 0

Choix dun 1 adjacent et recherche dun groupement adjacent OK !

Simplification graphique (suite)


Tous les 1 sont groups ! bc a 0 1 00 0 1 01 1 1 1 1 11 0 0 10

Equation :

F ( a , b , c) a . b c

Simplification graphique (suite)


Par les 0 bc a 0 1 00 0 1 01 1 1 1 1 11 0 0 10

Equation :

F ( a , b , c ) ( a c ).(b c )

Limites de la mthode
Difficile avec plus de 6 variables Intrt pdagogique Les problmes sont toujours dcoupables en pb plus petits Pas programmable (autres mthodes : McCluskey, Sheinman, Tison) Temps pas pris en compte Difficile minimiser plusieurs fonctions conjointement

Problme de lala de propagation : si deux groupes sont adjacents

Lala de propagation : problme


bc 00 a 0 1 0 1 01 1 1 1 0 11 0 0 10

F a.b a. c

Si b=0, c=1 a OU

F a a = 1 mathmatiquement, mais
a a F Retard techno

Lala de propagation : problme


bc 00 a 0 1 0 1 01 1 1 1 0 11 0 0 10

F a . b a . c b. c
= 1 mathmatiquement et technologiquement

Si b=0, c=1

F a a 1

Cest le thorme du consensus

Exercice 1
def abc 000 001 011 010 110 111 101 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 000 001 011 010 110 111 101 100

Exercice 1 : Dmarche
def abc 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 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 Si oui groupement Groupement augmentable ? Plus de 1 ou de 0 ? Choix dun 1 Recherche des adjacents Adjacents ligibles ?

def abc 000 001 011 010 110 111 101 100 0 0 0 0 -

Exercice 1 : Dmarche (2) Plus de 1 ou de 0 ?


000 001 011 010 110 111 101 100 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1

Choix dun 1 Recherche des adjacents Adjacents ligibles ? Si oui groupement Groupement augmentable ?

Exercice 1 : Dmarche (suite)


def abc 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 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1

Exercice 1 : Dmarche (suite)


def abc 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 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1

Exercice 1 : Dmarche (suite)


def abc 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 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1

Exercice 1 : Solution
def abc 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 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 seul groupement

H c. f

Exercice 2
def abc 000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Exercice 2 : Solution
def abc 000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

H cd e

Tableau de Karnaugh variable inscrite (KVI)


- La mthode de KVI tente de pallier la difficult lie aux tableaux de Karnaugh au del de 4 variables. - Elle rajoute un niveau dabstraction la table de vrit de la fonction rduire en y inscrivant une ou plusieurs variables c a b 0 1

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

f 0 0 0 1 1 0 1 1

a 0 0 1 1

b 0 1 0 1

f 0 c c 1

0 1

0 c

c 1

1 c c f ac bc

KVI exemple (2)


f R (2, 4, 7,12,10,15) (6,9,11,14)
a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 f 0 0 0 1 d 0 1 d 0 x d +dx 1 0 dx x 1 d +dx x 1 d 0 x d +dx 1 f

bc

00
0

01
d

11
d+dx

10
d

1 dx

d+dx d+dx

f cd bc bd (b c)d bc

Technique de Quine-McCluskey
La mthode de Quine part de la dcomposition canonique disjonctive dune expression Boolenne et utilise systmatiquement la formule de simplification

x y xy y
o x est un littral et y un monme. Intrts : - Implmentation machine possible - Nombre quelconque de variables - Efficace, le rsultat de la simplification est minimal

Peut ncessiter un temps exponentiel pour certains circuits !

Algorithme de Quine-McCluskey
Table vrit Cr er un nouvea u groupe avec les mintermes combins Mettre la fonction sous forme canonique

Procdure de simplification Algorithme de Quine-McCluskey

Nouveau groupe? Transformer les minterme s en nombres binaires Identifier les impliquants #
Grouper les termes selon leur poids (nombre des "1") Identifier les impliquants essentiels (reprsentation unique)

Trier par ordre croissant l'intrieur de chaque groupe

impliquants essentiels = toutes les solutions

Rajouter quelques impliquants pour avoir toutes les solutions

Combiner les mintermes avec ceux du groupe adjacent. *

Fin

* Deux mintermes se combinent s'ils diffrent par un seul bit. Le minterme combin contient un "x" la place du bit diffrent

# lments non utiliss pour gnrer un lment du nouveau groupe

Exemple Quine (1)


Soit simplifier
f (a, b, c, d ) ab bc ac acd abd abc f (a, b, c, d ) R(0, 2,3, 6, 7,8,9,12,13,14,15) f abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd f 1111 1110 1101 1100 1001 1000 0111 0110 0011 0010 0000

Exemple Quine (2)


classes Etape 0 0 0000 0010 1 1000 0011 0110 2 1001 1100 0111 3 1101 1110 4 1111 flag 1 classes Etape 0 0 0000 1 0010 1000 flag 1 1 1 Etape1 00x0 x000 001x 0x10 100x 1x00 0x11 011x x110 1x01 110x 11x0 x111 11x1 111x flag

0011 0110 1001 1100

1 1 1 1

0111 1101 1110 1111

1 1 1 1

Exemple Quine (3)


Impliquants premiers
classes Etape 0 0 0000 1 0010 1000 flag 1 1 1 Etape 1 00x0 x000 001x 0x10 100x 1x00 0x11 011x x110 1x01 110x 11x0 x111 11x1 111x flag 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 Etape 2 flag

0x1x 1x0x

0 0

0011 0110 1001 1100

1 1 1 1

x11x 11xx

0 0

0111 1101 1110 1111

1 1 1 1

Exemple Quine (4)


* indique que limpliquant couvre le terme [*] limpliquant est essentiel ce terme (*) terme couvert par un impliquant essentiel
0000 00x0 x000 0x1x 1x0x x11x 11xx 0010 1000 0011 0110 1001 1100 0111 1101 1110 1111

* *

* * (*) (*) * * [*] (*) [*] * * * (*) (*) * * * *

ab abd

ac ac

ab bcd bc abd bc bcd