Vous êtes sur la page 1sur 29

Codification et représentation 𝜶-Numérique

a- Le code ASCII

Définition
Le code ASCII (American Standard Code For Information Interchange) est une norme de
codage en informatique mise au point dans les années 60. Ce code définit 128 caractères
représentés sur 8 bits.

Table des caractères ASCII

0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI

1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US

2 SP ! " # $ % & ' ( ) * + , - . /

3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

4 @ A B C D E F G H I J K L M N O

5 P Q R S T U V W X Y Z [ \ ] ^ _

6 ` a b c d e f g h i j k l m n o

7 p q r s t u v w x y z { | } ~ DEL

Cette table est présentée sous une forme condensée, fondée sur la base 16.
Chaque caractère se trouve au croisement d’une ligne et d’une colonne.
Le numéro de la ligne suivi du numéro de la colonne représentent le code du caractère en
hexadécimal.

Exemple :
La lettre M se trouve au croisement de la ligne 4 et de la colonne D
son code est 4D en hexadécimal.
Sa représentation est donc : 01001101 en code ASCII

Caractères de contrôle :
On peut considérer que l'ASCII dispose d’une trentaine de caractères de contrôle plus ou
moins utilisés.
Les caractères usuels sont NUL, LF, CR, DEL et ESC
NUL indique la fin d’une chaine de caractères notamment en langage C.
LF et CR indiquent la fin d’une ligne. On utilisera LF, CR ou les 2 selon le système
d’exploitation. Sous Linux par exemple ce sera LF, sous Mac OS on utilise CR sous Windows
ce sera CR suivi de LF.
ESC indique la sortie d’un texte.
DEL indique l’effacement d’un caractère. l

1 N.HADJI
b- Le code BCD

Définition :

Le code BCD, Binary Coded Decimal (Décimal Codé en Binaire) est un code qui s’applique
uniquement aux chiffres de la base 10. Chaque chiffre décimal est représenté directement
par sa valeur binaire sur un format de 4 bits

Table des codes BCD

DEC BCD

0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

Exemple :

( 987 )10 = ( 1001 1000 0111 )BCD

Attention! 13 par exemple s’écrit 1101 en binaire, sa représentation BCD est 0001 0011

2 N.HADJI
Définition
Le code de Gray est un code binaire qui permet de passer d’un nombre entier N au nombre
suivant (N+1) en changeant un seul digit. (On l’appelle également Code Réfléchi).
Ce code sera utilisé principalement dans les Tableaux de Karnaugh pour simplifier les
fonctions booléennes.

Table des Codes de Gray :

dec gray dec gray dec gray

0 0 20 11110 40 111100
1 1 21 11111 41 111101
2 11 22 11101 42 111111
3 10 23 11100 43 111110
4 110 24 10100 44 111010
5 111 25 10101 45 111011
6 101 26 10111 46 111001
7 100 27 10110 47 111000
8 1100 28 10010 48 101000
9 1101 29 10011 49 101001
10 1111 30 10001 50 101011
11 1110 31 10000 51 101010
12 1010 32 110000 52 101110
13 1011 33 110001 53 101111
14 1001 34 110011 54 101101
15 1000 35 110010 55 101100
16 11000 36 110110 56 100100
17 11001 37 110111 57 100101
18 11011 38 110101 58 100111
19 11010 39 110100 59 100110

Conversion du code binaire vers le code Gray

3 N.HADJI
Soit X = Bn Bn-1..... B0 représenté en binaire

Pour convertir X en code de Gray il faut suivre les règles suivantes :

Gn= Bn
Gi = 0 si Bi = Bi+1
Gi =1 si Bi ≠ Bi+1

Exemple : pour n = 4

X = 1 0 0 0 1 en binaire

B4 = 1 => G4 = 1
B3 = 0 => B3 ≠ B4 => G3 = 1
B2 = 0 => B2 = B3 => G2 = 0
B1 = 0 => B1 = B2 => G1 = 0
B0 = 1 => B0 ≠ B1 => G3 = 1

X = 1 1 0 0 1 en code Gray
3

Conversion du code Gray vers le code binaire binaire

Soit X = GnGn-1…..G0 représenté en code Gray

Pour convertir X en binaire il faut suivre les règles suivantes :

Bn = Gn
Bi = 0 si Bi+1= Gi
Bi = 1 si Bi+1 ≠ Gi

Exemple : pour n = 4

X = 1 0 1 0 1 en code Gray

G4 = 1 => B4 = 1
G3 = 0 => B4 = G3 => B3 = 1
G2 = 1 => B3 = G2 => B2 = 0
G1 = 0 => B2 = G1 => B1 = 0
G0 = 1 => B1 = G0 => B0 = 1

X=11001 en binaire

c- Le code UNICODE

4 N.HADJI
Définition :
L’Unicode est une norme de codage mise au point dans les années 90; il définit plus de
60000 caractères de plusieurs langues, codés sur 16 bits.
Le code ASCII est inclus dans l’Unicode.

Le code ASCII est uniquement basé sur les lettres anglo-saxonnes, on n’y trouve pas les
lettres accentuées de la langue française comme le à ou le é par exemple.
On peut retrouver ces lettres dans le tableau UNICODE suivant :

0 1 2 3 4 5 6 7 8 9 A B C D E F

008 PAD HOP BPH NBH IND NEL SSA ESA HTS HTJ VTS PLD PLU RI SS2 SS3

009 DCS PU1 PU2 STS CCH MW SPA EPA SOS SGCI SCI CSI ST OSC PM APC

SHY
00A NBSP ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯
-

00B ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿

00C À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï

00D Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß

00E à á â ã ä å æ ç è é ê ë ì í î ï

00F ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

Comme pour le code ASCII le code d’un caractère est donné par le numéro de la ligne suivi
du numéro de la colonne ou il se trouve.

Exemple :

Le code de ê est 00EA sa représentation en UNICODE est 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0

En plus de la table des lettres accentuées, il existe une multitude de tableaux pour coder les
lettres de toutes les langues.

Table des caractères arabes :

5 N.HADJI
‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪7‬‬ ‫‪8‬‬ ‫‪9‬‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪D‬‬ ‫‪E‬‬ ‫‪F‬‬

‫‪060‬‬ ‫؀‬ ‫؁‬ ‫؂‬ ‫؃‬ ‫‪؄‬‬ ‫‪؅‬‬ ‫‪؆‬‬ ‫‪؇‬‬ ‫‪؈‬‬ ‫‪؉‬‬ ‫‪؊‬‬ ‫‪؋‬‬ ‫‪،‬‬ ‫؍‬ ‫؎‬ ‫؏‬

‫‪061‬‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫ؖ‬


‫سؐ‬ ‫ؗ‬
‫سؐ‬ ‫سؐ‬
‫ؘ‬ ‫سؐ‬
‫ؙ‬ ‫ؚسؐ‬ ‫؛‬ ‫‪ALM‬‬ ‫؞‬ ‫؟‬

‫‪062‬‬ ‫ؠ‬ ‫ء‬ ‫آ‬ ‫أ‬ ‫ؤ‬ ‫إ‬ ‫ئ‬ ‫ا‬ ‫ب‬ ‫ة‬ ‫ت‬ ‫ث‬ ‫ج‬ ‫ح‬ ‫خ‬ ‫د‬
‫‪063‬‬ ‫ذ‬ ‫ر‬ ‫ز‬ ‫س‬ ‫ش‬ ‫ص‬ ‫ض‬ ‫ط‬ ‫ظ‬ ‫ع‬ ‫غ‬ ‫ػ‬ ‫ؼ‬ ‫ؽ‬ ‫ؾ‬ ‫ؿ‬
‫‪064‬‬ ‫ـ‬ ‫ف‬ ‫ق‬ ‫ك‬ ‫ل‬ ‫م‬ ‫ن‬ ‫ه‬ ‫و‬ ‫ى‬ ‫ي‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬
‫‪065‬‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫‪ٟ‬س‬
‫‪066‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪٢‬‬ ‫‪٣‬‬ ‫‪٤‬‬ ‫‪٥‬‬ ‫‪٦‬‬ ‫‪٧‬‬ ‫‪٨‬‬ ‫‪٩‬‬ ‫‪٪‬‬ ‫‪٫‬‬ ‫‪٬‬‬ ‫٭‬ ‫ٮ‬ ‫ٯ‬
‫‪067‬‬ ‫سؐ‬ ‫ٱ‬ ‫ٲ‬ ‫ٳ‬ ‫ٵ‬ ‫ٶ‬ ‫ٷ‬ ‫ٸ‬ ‫ٹ‬ ‫ٺ‬ ‫ٻ‬ ‫ټ‬ ‫ٽ‬ ‫پ‬ ‫ٿ‬
‫‪068‬‬ ‫ڀ‬ ‫ځ‬ ‫ڂ‬ ‫ڃ‬ ‫ڄ‬ ‫څ‬ ‫چ‬ ‫ڇ‬ ‫ڈ‬ ‫ډ‬ ‫ڊ‬ ‫ڋ‬ ‫ڌ‬ ‫ڍ‬ ‫ڎ‬ ‫ڏ‬
‫‪069‬‬ ‫ڐ‬ ‫ڑ‬ ‫ڒ‬ ‫ړ‬ ‫ڔ‬ ‫ڕ‬ ‫ږ‬ ‫ڗ‬ ‫ژ‬ ‫ڙ‬ ‫ښ‬ ‫ڛ‬ ‫ڜ‬ ‫ڝ‬ ‫ڞ‬ ‫ڟ‬
‫‪06A‬‬ ‫ڠ‬ ‫ڡ‬ ‫ڢ‬ ‫ڣ‬ ‫ڤ‬ ‫ڥ‬ ‫ڦ‬ ‫ڧ‬ ‫ڨ‬ ‫ک‬ ‫ڪ‬ ‫ګ‬ ‫ڬ‬ ‫ڭ‬ ‫ڮ‬ ‫گ‬
‫‪06B‬‬ ‫ڰ‬ ‫ڱ‬ ‫ڲ‬ ‫ڳ‬ ‫ڴ‬ ‫ڵ‬ ‫ڶ‬ ‫ڷ‬ ‫ڸ‬ ‫ڹ‬ ‫ں‬ ‫ڻ‬ ‫ڼ‬ ‫ڽ‬ ‫ھ‬ ‫ڿ‬
‫‪06C‬‬ ‫ۀ‬ ‫ه‬ ‫ۀ‬ ‫ة‬ ‫ۄ‬ ‫ۅ‬ ‫ۆ‬ ‫ۇ‬ ‫ۈ‬ ‫ۉ‬ ‫ۊ‬ ‫ۋ‬ ‫ی‬ ‫ۍ‬ ‫ێ‬ ‫ۏ‬
‫‪06D‬‬ ‫ې‬ ‫ۑ‬ ‫ے‬ ‫ۓ‬ ‫۔‬ ‫ە‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫۝‬ ‫۞‬ ‫سؐ‬
‫‪06E‬‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫ۥ‬ ‫ۦ‬ ‫سؐ‬ ‫سؐ‬ ‫۩‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫سؐ‬ ‫ۮ‬ ‫ۯ‬
‫‪06F‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪٢‬‬ ‫‪٣‬‬ ‫‪۴‬‬ ‫‪۵‬‬ ‫‪۶‬‬ ‫‪٧‬‬ ‫‪٨‬‬ ‫‪٩‬‬ ‫ۺ‬ ‫ۻ‬ ‫ۼ‬ ‫۽‬ ‫۾‬ ‫ۿ‬

‫‪Exemple :‬‬

‫‪est 062C sa représentation est 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0‬جؐؐ ‪Le code de la lettre‬‬

‫‪Algèbre de Boole‬‬

‫‪6‬‬ ‫‪N.HADJI‬‬
Introduction

L’ordinateur est constitué de circuits logiques


L’élément de base de ces circuits est le transistor, on a deux états 0 et 1
0 =Bloqué 1 = Conducteur

Les variables d’entrée sont celles sur lesquelles on peut agir directement. Ce sont des
variables logiques indépendantes.

La variable de sortie est celle qui contient l’état de la fonction après l’évaluation
des opérateurs logiques sur les variables d’entrée.

Pour réaliser ces circuits et déterminer les variables d’entrée et les variables
de sortie on utilisera l’Algèbre de Boole

Terminologie

Somme (OR) s = a + b ou bien s = a or b


Produit (AND) s = a * b ou bien s = a and b
A ceci s’ajoute une application unaire :
Complémentation (NOT) s = ̅a ou bien s = not(a)

Opérations de base

s=a.b s=a+b s = a̅

a b a.b A B a+b A a̅
0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 1 0 1
1 1 1 1 1 1

Remarque :

On peut utiliser la terminologie française :


ET pour AND
OU pour OR
NON pour NOT

Théorèmes et postulats de l’algèbre de Boole

7 N.HADJI
Une Algèbre de Boole est constituée d’un ensemble E = {0,1} et de deux lois de composition
internes (AND) et (OR)

Propriétés de l’Algèbre de Boole

1- Commutativité
a+b=b+a
a . b= b . a
2- Associativité
a +(b + c) = (a + b) + c
a . (b . c) = (a . b) . c
3- Distributivité
a . (b + c) = a. b + a .c
a + (b . c) = (a + b).( a + c )
4- Eléments neutre
a+0=a
a.1=a
5- Eléments symétrique
a + a̅ = 1
a . a̅ = 0

Propriétés déduites

1- Idempotence
a+a=a
a.a=a
2- Élément absorbant
a+1=1
a.0=0
3- Expressions usuelles simplifiées
a+a.b=a
a . (a + b) = a
a+ab=a+b

Les opérateurs NAND et NOR tables de vérité

s =a̅̅̅̅̅
.b s = ̅̅̅̅̅̅̅
a+b

a b ̅̅̅̅̅
a .b a b ̅̅̅̅̅̅̅
a+b
0 0 1 0 0 1
0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 0

Le OR exclusif et son complément


table de vérité

8 N.HADJI
s=ab a b ab ab
s = 1 si a ≠ b 0 0 0 1
s = 0 si a = b 0 1 1 0
1 0 1 0
a  b = a̅ . b + a . b̅ 1 1 0 1

a  b = a̅ . b + a . b

Expressions booléennes

Fonctions logiques et formes normales

On appelle min terme de n variables, l’un des produits de ces n variables ou de leurs
complémentaires.

Exemple : a ̅b c, a̅ b ̅c et a b c sont des min termes d’une fonction de 3 variables a, b, et c

On appelle max terme de n variables, l’une des sommes de ces n variables ou de leurs
complémentaires.

Exemple : (a + b̅ + c), (a + b + c) et (a + b + c) sont des max termes d’une fonction de 3


variables a, b, et c

Première forme normale ou forme disjonctive

Une fonction est sous forme disjonctive si elle est représentée par une somme de
min termes (somme de produits)

Exemple : F (a, b, c) = a ̅b c + a̅ b ̅
c +abc

Deuxième forme normale ou forme conjonctive

Une fonction est sous forme conjonctive si elle est représentée par un produit de
max termes (produit de sommes)

Exemple : F(a, b, c) = (a + b̅ + c) (a + b + c) (a + b + c)

Remarque : On peut passer d’une forme à l’autre en utilisant la distributivité

Lois de Morgan (A vérifier à l’aide d’une table de vérité)

̅̅̅̅̅̅̅
a + b = a̅ . b̅
̅̅̅̅̅
a . b = a̅ + b̅

Complément d’une fonction

9 N.HADJI
∀ F une fonction booléenne ∃ G tel que G = F̅
Pour calculer F̅ il faut utiliser les Lois de Morgan

Exemple : F (a, b, c) = a ̅b c + a̅ b ̅
c +abc

F (a, b, c) = a ̅b c + a̅ b ̅
c +abc

F (a, b, c) = a ̅b c * a̅ b ̅
c * abc

F (a, b, c) = ( a + b + c ) (a + b + c ) ( a + b + c )

On remarque que pour trouver F̅ il suffit d’inverser chaque variable et chaque opérateur

Circuits logiques

Un circuit logique est un ensemble de portes logiques reliées entre elles correspondant à
une expression algébrique

Portes logiques (correspondant à un opérateur logique) :

Porte Or Porte And Porte Not

A A
A
B B

Y=A+B Y=A.B ̅
Y=A

Portes dérivées :

Porte Nor Porte Nand Porte Xor Porte NXOR


A A A
A
B B B B

Y = ̅̅̅̅̅̅̅
A+B Y = ̅̅̅̅̅̅̅
A. B Y=AB Y=AB

Circuit logique correspondant à l’expression algébrique :

10 N.HADJI
S = A B + B C̅

A AB

B AB+ BC

C
BC

Table de vérité d’une fonction

La Table de Vérité d’une fonction consiste à retrouver les valeurs de celle-ci pour chaque
combinaison de variables. Pour n variables on 2n combinaisons

Soit la fonction :

F(A, B, C) = A B C + A B C + A B

F(A, B, C) = 1 si un de ses termes est égal à 1

ABC =1 si A = 0 B = 1 et C = 1 F(0 1 1) = 1

ABC=1 si A = 1 B = 0 et C = 0 F(1 0 0) = 1

AB=1 si A = 1 et B = 1 F(1 1 0) = 1 et F( 1 1 1) = 1

La Table de Vérité de F est :


A B C F Pour tirer l’expression d’une fonction à partir d’une Table de
0 0 0 0
Vérité on fait la somme des min termes où F = 1
0 0 1 0
F (A, B, C) = A B C + A B C + A B C + A B C
0 1 0 0
0 1 1 1 F (A, B, C) = A B C + A B C + A B
1 0 0 1 F (A, B, C) est obtenu en faisant la somme des min termes où F = 0
1 0 1 0
F (A, B, C) = A B C + A B C + A B C + A B C
1 1 0 1
F (A, B, C) = A B + A B C + A B C
1 1 1 1

On retrouve la forme conjonctive de cette fonction à partir de F . F (A, B, C) = F (A, B, C)

F (A, B, C) = (A + B ) (A + B + C)(A + B + C)

Simplification des fonctions booléennes

11 N.HADJI
1- Simplification algébrique

Pour simplifier algébriquement une fonction booléenne, on utilise les propriétés de l’algèbre
de Boole : idempotence, absorption, distributivité, mise en facteur …etc

Exemple :

F(a,b,c) = a b c + a b c + a b c + a b c + a b c + a b c

F(a,b,c) = b c (a +a) + b c (a + a) + a b (c + c)

F(a,b,c) = b c + b c + a b

F(a,b,c) =b (c +c) + a b

F(a,b,c) = b + a b (b + a)(b + b )

F(a,b,c) = b + a

Simplification par le tableau de Karnaugh

Un tableau de Karnaugh est une table de vérité à 2 dimensions.


La numérotation des lignes et des colonnes se fait selon le code de Gray, on passe d’une
ligne à la suivante en changeant un seul bit et d’une colonne à la suivante en changeant un
seul bit également.

CD
A B C D F AB 00 01 11 10
0 0 0 0 0 0 1 0 1
0 0 0 1 1 00
0 0 1 0 1 0 1 0 1
0 0 1 1 0 01
0 1 0 0 0 0 0 0 0
11
0 1 0 1 1
0 1 1 0 1 0 1 0 0
10
0 1 1 1 0
1 0 0 0 0
1 0 0 1 1 F (A B C D) = A B C D + A B C D + A B C D + A B C D +A B C D
1 0 1 0 0
1 0 1 1 1
Chaque case représente une combinaison.
1 1 0 0 0
Si on prend une case dans un tableau de Karnaugh, toutes
1 1 0 1 0
les cases qui lui sont adjacentes n’auront qu’un seul bit qui change
1 1 1 0 0
donc une seule variable change
1 1 1 1 0
Remarque :

12 N.HADJI
Deux cases sont adjacentes si elles ont un coté commun.
A chaque case correspondent 4 cases adjacentes.
Les cases des lignes ou des colonnes qui sont aux extrémités sont adjacentes aux cases qui
leur sont symétriques

Simplification de la fonction F
Par exemple les deux 1 de la deuxième colonne (1ère et 2ème lignes) sont adjacents, ils
représentent les combinaisons 0 0 0 1 ou A B C D et 0 1 0 1 ou A B C D .
Les 2 min termes ne diffèrent que par la variable B , les trois autres variables sont les mêmes
on peut donc regrouper ces min termes et leur somme sera égale à A C D

A B C D + A B C D = A C D (B + B) = A C D
(1)
De la même façon, on peut regrouper les 1 de la quatrième colonne pour obtenir A C D
ainsi que les deux 1 de la deuxième colonne (1ère et 4ème lignes) pour obtenir B C D

L’expression de la fonction simplifiée sera donc :

F (A B C D) = A C D + A C D + B C D

Cette simplification de la fonction est sous forme disjonctive (somme de produits).


Pour la forme conjonctive (produit de sommes) on travaille avec les zéro.

CD
AB 00 01 11 10
0 1 0 1 F (A B C D) = A B + A C + C D + C D
00
0 1 0 1 F (A B C D) = F (A B C D)
01
0 0 0 0 La forme conjonctive de F est :
11
0 1 0 0 F (A B C D) = (A + B)(A + C)(C + D)(C + D)
10

En conclusion, lorsque 2, 4 ou 8 cases c sont adjacentes, leur regroupement sera représenté


par un seul terme contenant les variables communes.

Fonction incomplète

13 N.HADJI
On dit qu’une fonction est incomplète si elle n’est pas définie en tous ses points.
Dans ce cas les points où elle n’est pas définie prendront la valeur X.
Lors de la simplification de la fonction par le tableau de Karnaugh, si une case contenant X
est adjacente à une case contenant 1, on pourra donner la valeur 1 à ce X de façon à
simplifier la fonction.

A B C D F
CD
0 0 0 0 0
AB 00 01 11 10
0 0 0 1 1
0 0 1 0 1 0 1 0 1
00
0 0 1 1 0
0 1 0 0 0 0 1 0 1
01
0 1 0 1 1
0 1 1 0 1 X X X X
11
0 1 1 1 0
0 1 X X
1 0 0 0 0 10
1 0 0 1 1
1 0 1 0 x
1 0 1 1 x F (A B C D) = C D + C D
1 1 0 0 x
1 1 0 1 x
1 1 1 0 x
1 1 1 1 x

Exemple :

Trouver la fonction simplifiée à partir


du tableau de Karnaugh suivant :

CD
AB 00 01 11 10

00 1 X

01 1 X 1

1 X 1
11
X 1 X
10

F (A B C D) = B D + A C + A B D

Remarque : Le même 1 (ou X) peuvent être utilisés dans deux regroupements différents
Application :

14 N.HADJI
Une serrure de sécurité s’ouvre en fonction de quatre clés A, B, C et D.
Le fonctionnement de la serrure est définie comme suit :
S (A B C D) = 1 si au moins deux clés sont utilisées
S(A B C D )= 0 sinon
Les clés A et D ne peuvent pas être utilisées en même temps.

Solution :

Si la clé A et la clé D sont utilisées en même temps l’état du système n’est pas déterminé.
Dans ce cas S prend la valeur X

CD
Table de vérité AB 00 01 11 10
0 0 1 0
A B C D S 00
0 0 0 0 0
01 0 1 1 1
0 0 0 1 0
0 0 1 0 0 1 X X 1
11
0 0 1 1 1
0 1 0 0 0 10 0 X X 1
0 1 0 1 1
0 1 1 0 1
CD
0 1 1 1 1 AB 00 01 11 10
1 0 0 0 0
1 0 0 1 X 0 0 1 0
00
1 0 1 0 1
1 0 1 1 x 01 0 1 1 1
1 1 0 0 1
1 1 0 1 X 11 1 X X 1
1 1 1 0 1
10 0 X X 1
1 1 1 1 X

Dans les tableaux de karnaugh, les X peuvent prendre la valeur 1 ou la valeur 0 selon les
besoins. Il est donc possible d’utiliser les X dans les regroupements, dans ce cas on leur
attribue la valeur 1.
– Dans le tableau 1, on remarque qu’il n’y a que des 1 et des X à la 3ème ligne, on prendra
donc les X de cette ligne comme des 1 et faire un regroupement qui donne le terme A B
–De même pour la 3ème colonne, on obtient le terme C D
–Il reste alors trois 1 indépendants, on les regroupera avec les 1 et les X qui leurs sont
adjacents pour obtenir les termes B D, B C et A C (tableau 2)

S(A B C D) = A B + C D + B D + B C + A C

Attention ! Il ne faut pas former des regroupements qui contiennent uniquement des X

15 N.HADJI
Utilisation des portes NAND

Pour réaliser le circuit d’une fonction à l’aide de portes NAND il faut que la fonction soit sous
forme disjonctive, il suffit alors de la complémenter 2 fois et d’utiliser les lois de Morgan.

Exemple :

F(ABC) = A B C + A B + B C

F(ABC) = A B C + A B + B C = A B C . A B . B C

A B C

B = B . B => B = B . B

F C = C . C => C = C.C

Utilisation des portes NOR

Pour réaliser le circuit d’une fonction à l’aide de portes NOR il faut la fonction soit sous
forme conjonctive, il suffit alors de la complémenter 2 fois et d’utiliser les lois de Morgan.

Exemple :

G(ABC) =( A + B ) ( A + C)

G(ABC) = ( A + B ) ( A + C) = ( A + B ) + ( A + C)

A B C

G C = C + C => C = C+C

16 N.HADJI
Afficheur à segments

Un afficheur à segments fonctionne avec sept lampes permettant d’allumer ses sept
segments. Chaque segment représente une fonction

Cette fonction est égale à 1 si le segment est allumé et à 0 si il est éteint.

Les entrées de ces fonctions sont les dix chiffres du système décimal représentés en BCD

a a

f b f b

e g c g
1 2 3 e c
4 5 6
d 7 8 9 d
0
Afficheur à Par exemple lorsque le chiffre 3 s’affiche,
segments les segments a, b, c, d et g sont allumés
leurs fonctions sont égales à 1

Les fonctions e et f sont égales à 0

Table de vérité

Chiffres en BCD Fonctions des segments

x y z t a b c d e F g
0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 0 1 1 0 0 0 0
0 0 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1
0 1 0 0 0 1 1 0 0 1 1
0 1 0 1 1 0 1 1 0 1 1
0 1 1 0 1 0 1 1 1 1 1
0 1 1 1 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 0 1 1
1 0 1 0 x X x x x X x
1 0 1 1 x X x x x X x
1 1 0 0 x X x x x X x
1 1 0 1 x X x x x X x
1 1 1 0 x X x x x X x
1 1 1 1 x X x x x X x

17 N.HADJI
ZT ZT

XY 00 01 11 10 XY 00 01 11 10
1 0 1 1 1 1 1 1
00 00
0 1 1 1 1 0 1 0
01 01
X X X X X X X X
11 11

10 1 1 X X 10 1 1 X X

a (x y z t) = x + z + y t + y t b (x y z t) = y + z t + z t

a (x y z t) = x + z + y  t b (x y z t) = y + z  t

De la même façon on trouvera :

c (x y z t) = y + z + t

d (x y z t) = x + z t + y z + y t + y z t

e (x y z t) = z t + y t

f (x y z t) = x + z t + y z + y t

g (x y z t) = x + z t + y  z

18 N.HADJI
Circuit :

X Y Z T

19 N.HADJI
L’Additionneur
Le Demi-Additionneur

Le Demi Additionneur à un bit est un circuit qui permet d’additionner 2 chiffres binaires
sans retenue rentrante

Lorsqu’on fait l’addition de 2 chiffres binaires A et B on obtient la somme S et une retenue R.

A + B = S retenue R

Table de vérité Fonctions Circuit

A B S R S=AB+AB A B
0 0 0 0 S
S=AB
0 1 1 0
1 0 1 0 R=AB R
1 1 0 1

L’Additionneur Complet

L’Additionneur complet à un bit est un circuit qui permet d’additionner 2 chiffres binaires
avec une retenue rentrante

Lorsqu’on fait l’addition de 2 nombres binaires, on travaille par rangées, on additionne les
chiffres 2 à 2 selon leurs poids (de droite à gauche). A la fin de chaque addition on obtient
une somme et une retenue sortante, cette retenue s’ajoutera à la somme de la rangée
précédente et deviendra une retenue rentrante.

C3 C2 C1 Les Ri sont les retenues sortantes


A3 A2 A1 A0 Les Ci sont les retenues rentrantes
+ B3 B2 B1 B0 Ci = Ri-1
= S3 S2 S1 S0 A1 + B1 + C1 = S1 retenue R1 C2= R1
R3 R2 R1 R0 A2 + B2 + C2 = S2 retenue R2

Il n’y a jamais de retenue rentrante sur la première rangée (bits de poids faibles)

Pour cette rangée on a donc un demi-additionneur, pour toutes les autres on aura des
additionneurs complets

20 N.HADJI
Table de vérité et fonctions

A B C S R
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

BC
A 00 01 11 10
0 0 1 0 1 S=ABC+ABC+ABC+ABC
S=A𝐁𝐂
1 1 0 1 0

BC
A 00 01 11 10
0 0 0 1 0
R=AB+AC+BC
1 0 1 1 1

Circuit logique :

A B C

21 N.HADJI
Circuits fonctionnels

Un circuit fonctionnel est un composant portant le nom de la fonction qu’il représente. Il possède
les entrées et les sorties de cette fonction

Demi Additionneur
A S A S
Additionneur Complet
B B

R R

Circuit d’un Additionneur à 4 bits

A0 Demi S0 Pour réaliser un additionneur à 4 bits il faut

B0 Additionneur connecter 4 additionneurs à un bit,

R0 un demi- additionneur et trois additionneurs

C1 complets.

A1 Additionneur S1 La connexion se fait par les retenues

B1 Complet Ci = Ri-1

R1 Ce circuits fait l’addition de deux nombres

C2 A3 A2 A1 A0 et B3 B2 B1 B0

A2 Additionneur S2 Le résultat est S3 S2 S1 S0 et la retenue


Complet
B2 finale est R3

R2

C3
Additionneur
A3 S3
Complet
B3

R3

22 N.HADJI
Le décodeur a̅ b̅

Un décodeur est un circuit combinatoire qui a a a̅ b


n entrées et 2n sorties dont une seule est égale à 1 b DEC 2x4 a b̅
L’exemple suivant représente un décodeur 2x4 ab

Réaliser un DEC 4x16 à l’aide de DEC 3x8 a a


b
Le DEC 4x16 aura comme entrées a b c d c DEC 3x8
On utilisera 2 DEC 3x8 qui auront comme entrées communes bcd d
et 16 sorties (2x8)
a sera utilisé pour valider l’un ou l’autre des 2 DEC 3x8 V1
V1 = a̅ et V2 = a
b
Si a = 0 alors V1 = 1 c’est le premier DEC qui sera actif
c DEC 3x8
Si a = 1 alors V2 = 1 c’est le deuxième DEC qui sera actif
donc une seule sortie parmi les 16 sera égale à 1 d
(celle du DEC validé)
V2

Réaliser un DEC 4x16 à l’aide de DEC 2x4

Le DEC 4x16 aura comme entrées a b c d


On utilisera 4 DEC 2x4 qui auront comme entrées communes c d
et 16 sorties (4x4)
On utilisera également un autre DEC 2x4 qui aura comme entrées a b
Les sorties de ce DEC seront connectées aux valideurs des 4 précédents .

Ex : (a b c d) = (1 0 0 1) c
DEC 2x4
d
(a b) = (1 0) => a b̅ = 1 => V3 = 1
V1
(c d) =( 0 1) => c̅ d = 1 => S = 1
c
DEC 2x4
d
a
b DEC 2x4 V2

c DEC 2x4 S
d

V3

c
DEC 2x4
d

V4

23 N.HADJI
Réaliser une fonction de n variables à l’aide d’un DEC p x 2p

1) P = n
Chaque sortie du décodeur correspond à un minterme.
On fera la somme logique (OU) de toutes les sorties du décodeur
correspondant au min termes pour lesquels la fonction est égale à 1.

Exemple : n = 3 et P=3

F(abc) = a̅ b̅ c̅ + a̅b c + a b̅ c

a b c F
0 0 0 1
0 0 1 0 a
0 1 0 0
0 1 1 1 b DEC 3x8 F
1 0 0 0
1 0 1 1 c
1 1 0 0
1 1 1 0

2) p < n

P variables seront les entrées du décodeur.


Les (n-p) variables restantes seront à l’extérieur du décodeur.
La fonction sera formée par la combinaison des sorties du décodeur et des variables
extérieures.

Exemple 1 : n = 3 et p = 2

F(abc) = a̅ b̅ c̅ + a̅b c + a b̅ c

Si on sort la variable a, les entrées du DEC 2 X 4 seront b et c

bc

b DEC 2 x 4 bc F

c bc

bc

24 N.HADJI
Exemple 2 : n = 4 et p=2

F(abc) = a b̅ c d + a̅b d + a c

Si on sort les variables a et b, les entrées du DEC 2 X 4 seront c et d

c et d sont indissociables, Il faut donc faire apparaitre c et d dans chaque terme.

F(abc) = a b̅ c d + a̅b d(c + c) + a c (d + d)

F(abc) = a b̅ c d + a̅b c d + ̅
abcd + acd +acd

F(abc) = c d (a b̅ + a̅b) + c d ( a b + a) + a c d

F(abc) = c d (a  b ) + c d (a + b) + a c d

a b

a c̅ d̅
cd

(a+b) c̅d
cd ̅
c

F
DEC 2 X 4
d
cd

cd
(a  b) cd

25 N.HADJI
Exemple 3 : n=4 p=2

Si un terme ne contient ni c ni d on utilise uniquement les variables extérieures

Par exemple F(a b c d) = a b + b c d + a c

Le premier terme (a b) ne contient ni c ni d donc on le laisse tel quel.

Le deuxième terme (a c) contient c mais pas d donc on le transforme : a c = a c (d + d)

F(a b c d) = a b + b c d + a c d + a c d

a b

cd

c cd

DEC 2 X 4 F
cd
d

cd

26 N.HADJI
Schéma logique d’un DEC 2X4

a b

S 0= a b

S1 = a b

S2 = a b

S3 = a b

Schéma logique d’un MUX 4X1

a b

e0

e1

S
e2

e3

27 N.HADJI
Les multiplexeurs a b

Un multiplexeur est un circuit combinatoire qui a e0


2n entrées , une sortie et n lignes de sélection e1 MUX 4x1 S
L’exemple suivant représente un multiplexeur 4x1 e2
si a b = 0 0 S = e0 e3
si a b = 0 1 S = e1
si a b = 1 0 S = e2
si a b = 1 1 S = e3

b c d
Réaliser un MUX 16x1 à l’aide de MUX 8x1

Le MUX 16x1 doit avoir 16 entrées , une sortie S1


et 4 lignes de sélection a b c d . MUX 8x1 a
On utilisera 2 MUX 8x1 qui auront chacun une sortie
et 3 lignes de sélection communes b c d
MUX
et un MUX 2x1 qui aura comme ligne de sélection a b c d S
Si a = 0 alors S = S1 2x1
Si a = 1 alors S = S2

MUX 8x1
S2

Réaliser un MUX 16x1 à l’aide de MUX 4x1

Le MUX 16x1 doit avoir 16 entrées , une sortie et 4 lignes de sélection a b c d


On utilisera 4 MUX 4x1 qui auront chacun 4 entrées, une sortie et 2 lignes de sélection
communes c d, on utilisera également un autre MUX 4x1 qui aura comme lignes de sélection a b
c d
Si ab = 00 S = S1

MUX 4x1 Si ab = 01 S = S2
S1
Si ab = 10 S = S3

MUX 4x1 a b Si ab = 11 S = S4
S2
2 MUX 4x1 S

. MUX 4x1
S3

. MUX 4x1
S4

28 N.HADJI
Réaliser une fonction de n variables à l’aide d’un MUX 2px1

1/ p = n

Chaque entrée du MUX représentera une valeur de la fonction

Exemple : n = 3 et P=3

F(abc) = a̅ b̅ c̅ + a̅b c + a b̅ c a b c

a b c F
0 0 0 1 1 e0 = F(000)
0 0 1 0 0 e1 = F(001)
0 1 0 0 0 e2 = F(010)
0 1 1 1 1 MUX 8x1 F e3 = F(011)
1 0 0 0 0 e4 = F(100)
1 0 1 1 1 e5= F(101)
1 1 0 0 0 e6 = F(110)
1 1 1 0 0 e7 = F(111)

2/ P < n

P variables représenteront les lignes de sélection du MUX.


Les (n-p) variables restantes seront à l’extérieur.
Chaque entrée du MUX sera représentée en fonction de ces variables .

Exemple : N = 4 et p=2

F(abcd) = ad + bd + cd + abc

On prendra c d comme lignes de sélection a b c d


et a b resteront à l’extérieur

e0 = F(a b 0 0) = 0 0

e1 = F(a b 0 1) = a + b MUX 4x1 F

e2 = F( a b 1 0) = ab

e3 = F(a b 1 1) = 1 1

29 N.HADJI