You are on page 1of 28

Systme algbrique constitu de l'ensemble { 0, 1 }

Variable boolenne : variable qui prend une valeur 0 ou 1 NON / NOT ( a )

Algbre de Boole

Trois oprateurs de base


Inverse/complmente la valeur de la variable a Retourne 1 si a et b sont 1, sinon retourne 0 Retourne 1 si a ou b est 1, sinon retourne 0

ET / AND ( a.b ou ab )

OU / OR ( a+b )

Origine
Mathmaticien anglais Georges Boole, 1815 1864
2

Proprits de base

Involution Idempotence Complmentarit lments neutres Absorbants

: :

a=a a.a=a aa=1

: aa=a a. a=0

: a=a.1=1. a=a a0=0a=a : a1=1 a.0=0

Proprits de base

Associativit Distributivit

: a.b. c=a.b.c abc=abc : a.bc=a.ba.c ab.c=ab.ac

Rgles de De Morgan : ab=a . b a.b=ab Optimisations : aa b=ab abc=abac


4

Fonction logique

Fonction logique
Prend en entre une ou plusieurs variables boolennes Retourne une valeur boolenne fonction des variables d'entre Par son expression logique

Dfinition d'une fonction logique : deux mthodes


Combinaison des variables de la fonction via les oprateurs de base de l'algbre de boole Exemple : fonction f de trois variables a, b et c

fa, b,c=abbca c

Par sa table de vrit

Table qui dfinit la valeur de la fonction pour chaque combinaison 5 de valeurs possibles en entre

Tables de vrit

Table de vrit pour une fonction p variables


Pour chacune des combinaisons diffrentes de p valeurs, prciser le rsultat de la fonction

Table de vrit des oprateurs de base

_ a|aab|a+bab|a.b +++ 0|100|000|0 1|001|101|0 10|110|0 11|111|1


6

Fonction logique

Equivalence/passage entre expression logique et la table de vrit de la fonction


On peut toujours dterminer l'une partir de l'autre On peut montrer via les proprits de l'algbre de Boole que leurs expressions logiques sont identiques Leurs tables de vrit sont identiques Quand on parle de fonction logique, on parle souvent de la forme correspondant l'expression logique
7

Deux fonctions logiques sont identiques si

Note

Formes canoniques d'une fonction

Pour une fonction logique x variables


Un minterme : groupe des x variables (pouvant tre complmentes) lies par des ET Un maxterme : groupe des x variables (pouvant tre complmentes) lies par des OU Premire forme : union (OU) de mintermes Second forme : intersection (ET) de maxtermes
8

Forme canonique d'une fonction logique

Exemples de formes canoniques

Fonction 3 variables a, b et c, exemples : Mintermes : abc,a bc,a b c ,a bc ,...

Maxtermes :

abc,abc ,abc ,abc , ...

Premire forme canonique :

fa, b,c=abca bca bca bc

Seconde forme canonique :


ga, b,c=abc.abc.abc.abc

Passage aux formes canoniques

Partir de la fonction et la transformer pour faire apparatre des mintermes/maxtermes complets Pour la transformation
On s'appuie sur les proprits de l'algbre de Boole, et notamment des invariants :

x.x = 0 et x + x = 1

10

Exemple de passage la premire forme canonique


Soit fa, b,c=abbca c Premier minterme ab


Il manque la variable c Transforme ab en ab(c+c) car c+c=1

Mme chose pour les 2 autres mintermes D'o : fa , b,c=abccbcaaa cbb =abcab ca b ca b ca bc
11

Exemple de passage la seconde forme canonique


Soit fa, b,c=abbca c On passe par x = x Aprs dveloppement : f(a,b,c)=a ba bcaca bc Reste transformer les mintermes 2 variables : a ba c=a bccacbb Au final f(a,b,c)=a bca bca bc Et fa, b,c=abcabcabc
12

Pour chaque combinaison de valeurs possibles pour les variables, on dtermine la valeur boolenne de f(X) (X = ensemble des variables) Exemple : fa, b,c=abbca c
abc|b|c|ab|bc|ac|f(a,b,c) ++++++ 000|1|1|0|0|0|0 001|1|0|0|1|0|1 010|0|1|0|0|0|0 011|0|0|0|0|0|0 100|1|1|0|0|1|1 101|1|0|0|1|0|1 110|0|1|1|0|1|1 111|0|0|1|0|0|1

Passage de la fonction logique la table de vrit

13

Passage de la table de vrit la fonction logique

A partir de la table de vrit : fonction sous premire forme canonique


Pour chaque valeur de f(X) gale 1

On dfinit un minterme de toutes les variables tel que Si une variable Xi = 1 on note Xi, sinon on note Xi

La premire forme canonique de f(X) est le OU de ces mintermes

14

Passage de la table de vrit la fonction logique

A partir de la table de vrit : fonction sous seconde forme canonique


Pour chaque valeur de f(X) gale 0

On dfinit un minterme de toutes les variables tel que Si une variable Xi = 1 on note Xi, sinon on note Xi

Le OU de ces mintermes = f(Xi) Aprs calcul de f(Xi), on obtient la seconde forme canonique
15

Exemple de calcul de la fonction logique sous premire forme

A partir de la table de vrit de l'exemple prcdent


f(a,b,c) = 1 quand :

a = 0, b = 0 et c = 1 d'o le minterme

a bc a = 1, b = 0 et c = 0 d'o le minterme a b c a = 1, b = 0 et c = 1 d'o le minterme a b c a = 1, b = 1 et c = 0 d'o le minterme a b c a = 1, b = 1 et c = 1 d'o le minterme a b c fa, b,c=abcab ca b ca b ca bc

On fait le OU de ces mintermes

16

Exemple de calcul de la fonction logique sous seconde forme

A partir de la table de vrit de l'exemple prcdent


f(a,b,c) = 0 quand :

a = 0, b = 0 et c = 0 d'o le minterme a = 0, b = 1 et c = 0 d'o le minterme a = 0, b = 1 et c = 1 d'o le minterme

a bc a bc a bc

On fait le OU de ces mintermes

f(a,b,c)=a b ca bca bc
17

Au final :

fa, b,c=abcabcabc

Minimisation des fonctions logiques

Les formes canoniques d'une fonction logique sont une dfinition correcte de la fonction, mais elles peuvent tre simplifies
Pour crire la mme fonction avec le moins de termes et les plus simples possibles Pour raliser la fonction avec moins d'lments lectroniques (portes logiques)

Deux mthodes pour simplifier l'criture d'une fonction logique


Utiliser les proprits de l'algbre de Boole Utiliser la mthode des tableaux de Karnaugh
18

Simplification via algbre de Boole

A partir des proprits de l'algbre de Boole, transformer la fonction pour la simplifier Principes gnraux
Simplifier la fonction initiale l'aide des proprits de l'algbre de Boole

Appliquer la proprit d'involution (x = x) la fonction simplifie est parfois intressant, mais calculs longs ...

Essayer de dduire d'autres simplifications aprs chaque simplification


19

Exemple de simplification via algbre de Boole


Soit fa, b,c=abcab ca b ca b ca bc En factorisant, on obtient : fa, b,c=abccbcca b c =aa bc (car x + xy = x + y) =abc
On ne peut pas simplifier plus

20

Exemple de simplification via algbre de Boole


Autre exemple : fa , b,c=(a+b)cb c On distribue et calcule le non : fa, b,c=a bcbc En utilisant l'involution : f(a,b,c)=bc D'o : fa, b,c=bc
On aurait pu aussi simplifier en remarquant que

cbc=cb

(car x + xy = x + y et donc x + xy = x + y)
21

Simplification par la mthode des tableaux de Karnaugh

Principes gnraux
Reprsentation sous une forme particulire de la table de vrit d'une fonction logique Dtermination des blocs rectangulaires de taille 2 (1, 2, 4, 8...) bits adjacents 1 On en dduit la fonction simplifie associe la table de vrit
n

22

Simplification par la mthode des tableaux de Karnaugh


On reprsente un tableau 2 dimensions Chaque dimension concerne une ou 2 variables Le passage d'une colonne une colonne adjacente ou d'une ligne une ligne adjacente modifie la valeur d'une seule variable Le tableau se referme sur lui-mme : la colonne la plus gauche est voisine de la colonne la plus droite, idem pour les lignes du haut et du bas

Pour les 2 colonnes (2 lignes) extrmes, l aussi, une seule variable doit changer de valeur entre ces 2 colonnes (lignes)

Une case du tableau contient une valeur boolenne, dtermine partir de la table de vrit et des valeurs des variables
23

Regroupement en blocs rectangulaires des bits 1 adjacents

Simplification par la mthode des tableaux de Karnaugh

Tous les bits 1 du tableau doivent tre englobs dans au moins un bloc (un bloc une taille de 1, 2, 4, 8 ... bits) Un bit 1 peut appartenir plusieurs blocs On doit crer les blocs les plus gros possibles Pour le bloc, si une une variable prend les valeurs 0 et 1, on ne la prend pas en compte On ne conserve que les variables qui ne varient pas. Si une variable a reste 1 : on note a, si reste 0 : on note a Le terme logique du bloc correspond au ET de ces variables qui ne changent pas

A chaque bloc correspond un terme form comme suit

La fonction logique simplifie est le OU de tous les termes des 24 blocs trouvs

Exemple de tableau de Karnaugh

Table pour 2 variables


\a ab|f(a,b)b\0|1| ++++ 00|00|0|1| 01|1+++ 10|11|1|1| 11|1+++

2 groupes de 2 bits adjacents :


Pour le vertical : on a toujours a = 1 donc cela donne le terme a Pour l'horizontal : idem mais avec b
25

f(a,b)=a+b

Exemple de tableau de Karnaugh

Table pour 3 variables


abc|g + 000|0\ab 001|1c\00|01|11|10| 010|0+++++ 011|00|0|0|1|1| 100|1+++++ 101|11|1|0|1|1| 110|1+++++ 111|1

Bloc le plus petit : a = 0, b = 0, c = 1


Donne le terme a bc
26

Exemple tableau de Karnaugh

Mais simplification pas suffisante


La table se referme sur elle-mme
On doit galement regrouper en bloc les plus grands possibles mmes si des bits appartiennent plusieurs blocs

Le bit seul gauche doit donc tre regroup avec la case a=1,b=0,c=1 droite en bas de la table \ab c\00|01|11|10| +++++ 0|0|0|1|1| +++++ 1|1|0|1|1| +++++ Au final pour ce bloc, on a donc :b c 27

Exemple de tableau de Karnaugh

Bloc le plus gros : a reste 1, b passe de 0 1 et c passe de 0 1 On ne conserve que les variables qui ne changent pas. Donc on a le terme : a Au final : ga , b ,c=abc Pourquoi pour le bloc de 4 on obtient juste a ?

Si on fait le OU de tous les mintermes pour lequel la valeur est 1, cela donne pour ce bloc de 4 :

bloc=abcab ca bca bc =abccbcc=a

Les variables d'un bloc prenant les valeurs de 0 et 1 sont donc systmatiquement non significatives

28

Exemple de tableau de Karnaugh

Tableau pour 4 variables


\ab cd\00|01|11|10| 3 blocs : +++++ 00|1|0|0|1| 8 cases : d +++++ 4 cases : bc 01|1|1|1|1| 2 cases : abc +++++ 11|1|1|1|1| Au final : +++++ f(a,b,c,d)=d+bc+abc 10|0|1|0|0| +++++

On doit l aussi regrouper en les plus gros blocs possibles mme si on recoupe d'autres blocs La table se referme sur elle-mme 29