2008_1_algebre_ecriture

61
Électronique Numérique Algèbre binaire Écriture et simplification des fonctions logiques

Transcript of 2008_1_algebre_ecriture

Électronique Numérique

Algèbre binaireÉcriture et simplification des fonctions logiques

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.

les chronogrammes (2)

Plusieurs niveaux d’abstraction :

a

b

a+b

temporel

Retard temporel

a

b

a+b

les chronogrammes (3)

Plusieurs niveaux d’abstraction :

analogique symbolique

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

+