Vous êtes sur la page 1sur 144

Etienne Messerli

Yves Meyer
Septembre 2010
Version 1.4
Electronique Numrique
1er tome
Systmes combinatoires
Mise jour de ce manuel
La base du prsent manuel a t crit par M. Yves Meyer de l'cole d'ingnieurs de l'arc juras-
sien. J 'ai repris celui-ci en apportant des modifications et en compltant certains chapitres. J ai
supprim le chapitre sur le langage VHDL. A la HEIG-VD, nous disposons dun manuel spar
pour ce langage (Manuel VHDL; synthse et simulation). J 'ai aussi repris des parties des sup-
ports de cours crit par M. Maurice Gaumain.
Finalement le manuel a t spar en plusieurs tomes. Le prsent tome comprend toute la par-
tie sur le combinatoire.
J e remercie M. Yves Meyer de sa collaboration et de m'avoir permis de rutiliser son support
de cours.
J e remercie tous les utilisateurs de ce manuel de mindiquer les erreurs quil comporte. De m-
me, si des informations semblent manquer ou sont incompltes, elles peuvent mtre transmi-
ses, cela permettra une mise jour rgulire de ce manuel.
Etienne Messerli
Contact
Auteurs: Etienne Messerli Yves Meyer
e-mail : etienne.messerli@heig-vd.ch yves.meyer@eiaj.ch
Tl: +41 (0)24 / 55 76 302 +41 (0)32 / 930 22 61
Coordonnes la HEIG-VD :
Institut REDS
HEIG-VD
Haute Ecole d'Ingnierie et de Gestion du Canton de Vaud
Route de Cheseaux 1
CH-1400 Yverdon-les-Bains
Tl : +41 (0)24 / 55 76 330
Internet : http://www.reds.ch
Coordonnes lEIAJ :
LSEM - Laboratoire de systmes embarqus
Haute Ecole ARC
Rue Baptiste-Savoye 26
CH-2610 St-Imier
Tl : +41 32 930 11 21
Internet : http://www.he-arc.ch/
R DS
Reconfigurable & embedded
Digital Systems
I
Table des matires
Chapitre 1 Introduction 1
Chapitre 2 Systmes de numration et codes 5
2-1. Reprsentation des nombres ........................................................................... 6
2-2. Conversion Binaire - Dcimal ......................................................................... 7
2-3. Conversion Dcimal - Binaire ......................................................................... 7
2-3.1.Conversion de la partie entire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2-3.2.Conversion de la partie fractionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
2-4. Systme de numration Octal ....................................................................... 10
2-4.1.Conversion octal-dcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
2-4.2.Conversion dcimal-octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
2-4.3.Conversion octal-binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
2-4.4.Conversion binaire-octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
2-5. Systme de numration Hexadcimal .......................................................... 11
2-5.1.Conversion hexadcimal-dcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2-5.2.Conversion dcimal-hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2-5.3.Conversion hexadcimal-binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2-5.4.Conversion binaire-hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2-5.5.Comptage hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2-5.6.Utilit du systme hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2-6. Code BCD, soit Binary Coded Decimal ....................................................... 15
2-6.1.Comparaison entre code BCD et nombre binaire . . . . . . . . . . . . . . . . . .15
2-6.2.Conversion BCD-binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
2-6.3.Conversion binaire-BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
2-7. Rcapitulatif de diffrents codes ................................................................... 17
2-8. Les codes alphanumriques .......................................................................... 17
2-8.1.Code ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Chapitre 3 Arithmtique binaire 21
Titre chapitre Vesion du 16 septembre 2010
II
3-1. Reprsentation des nombres entiers positifs ............................................... 22
3-2. Addition Binaire ............................................................................................. 22
3-3. Reprsentation des nombres entiers signs ................................................. 23
3-3.1.Notation en complment 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
3-3.2.Notation en complment 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
3-3.3.Etude de nombres binaires signs en complment 2 . . . . . . . . . . . . . .25
3-3.4.Cas spcial de la notation en complment 2 . . . . . . . . . . . . . . . . . . . .26
3-4. Addition en complment 2 .......................................................................... 27
3-4.1.Cas 1: deux nombres positifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
3-4.2.Cas 2: nombre positif et nombre ngatif plus petit . . . . . . . . . . . . . . . . .27
3-4.3.Cas 3: nombre positif et nombre ngatif plus grand. . . . . . . . . . . . . . . .28
3-4.4.Cas 4: deux nombres ngatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
3-4.5.Cas 5: nombres gaux et opposs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
3-5. Soustraction: complment 2 ....................................................................... 28
3-5.1.Dpassement (overflow) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
3-5.2.Multiplication de nombres binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
3-5.3.Multiplication en complment 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
3-6. Division binaire .............................................................................................. 31
3-7. Addition en BCD ............................................................................................ 32
3-7.1.Somme gale ou infrieure 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
3-7.2.Somme suprieure 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
Chapitre 4 Portes logiques et algbre boolenne 35
4-1. Dfinitions ....................................................................................................... 35
4-1.1.Les tats logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
4-1.2.Les variables logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
4-1.3.Les fonctions logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
4-2. Fonctions logiques une et deux variables .................................................. 37
4-2.1.Fonctions dune variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
4-2.2.Fonctions de deux variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
4-3. Tables de vrit ............................................................................................... 39
4-4. L'opration OU (OR) ..................................................................................... 40
4-4.1.La porte OU (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
4-5. L'OPRATION ET (AND) ........................................................................... 41
4-5.1.La porte ET (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
4-6. L'opration NON (NOT) ............................................................................... 42
4-6.1.Le circuit INVERSEUR (NOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
4-7. Les portes NON-OU (NOR) et NON-ET (NAND) ...................................... 42
4-7.1.La porte NON-OU (NOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
4-7.2.La porte NON-ET (NAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
4-8. Circuits OU-exclusif (XOR) et NON-OU-exclusif (XNOR) ....................... 44
4-8.1.La porte OU-exclusif (XOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
4-8.2.NON-OU-exclusif (XNOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
4-9. Symbolique des oprations de bases ............................................................. 46
III
Table des matires Titre
4-10. Mise sous forme algbrique des circuits logiques ....................................... 48
4-10.1.Circuits renfermant des INVERSEURS . . . . . . . . . . . . . . . . . . . . . . . .49
4-11. MATRIALISATION DE CIRCUITS PARTIR D'EXPRESSIONS
BOOLENNES 50
4-11.1.Description de circuits logiques en VHDL . . . . . . . . . . . . . . . . . . . . . .50
4-12. Algbre de BOOLE ....................................................................................... 51
4-12.1.Postulats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
4-12.2.Thormes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
4-12.3.Thormes pour plusieurs variables . . . . . . . . . . . . . . . . . . . . . . . . . . .52
4-12.4.THORMES DE DE MORGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
4-12.5.Thormes du consensus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
Chapitre 5 Circuits logiques combinatoires 55
5-1. Somme de produits ........................................................................................ 55
5-2. Simplification des circuits logiques .............................................................. 56
5-3. Simplification algbrique .............................................................................. 57
5-4. Conception de circuits logiques combinatoires ........................................... 58
5-5. La mthode des tables de Karnaugh ............................................................ 59
5-5.1.La construction de la table de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . .59
5-5.2.REUNION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
5-5.3.Runion de doublets (de paires) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
5-5.4.Runion de quartets (groupes de quatre) . . . . . . . . . . . . . . . . . . . . . . . .62
5-5.5.Runion d'octets (groupes de huit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
5-5.6.Le processus de simplification au complet . . . . . . . . . . . . . . . . . . . . . . .63
5-6. Fonctions incompltement dfinies .............................................................. 64
5-6.1.Simplification par Karnaugh des conditions indiffrentes . . . . . . . . . . .64
5-7. Les fonctions standards combinatoires ........................................................ 65
5-8. Dcodeur (X/Y) ............................................................................................... 66
5-8.1.Extension du dcodeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
5-8.2.Dcodeur en gnrateur de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . .69
5-8.3.Exemple d'application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
5-9. Multiplexeur (MUX) ...................................................................................... 70
5-9.1.Extension du multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
5-9.2.Multiplexeur en gnrateur de fonction . . . . . . . . . . . . . . . . . . . . . . . . .74
5-9.3.Exemple d'application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
5-10. Comparateur .................................................................................................. 79
5-11. Additionneur binaire parallle ..................................................................... 82
5-11.1.Conception dun additionneur complet . . . . . . . . . . . . . . . . . . . . . . . .84
Chapitre 6 Aspects techniques circuits combinatoires 87
6-1. La reprsentation des tats logiques. ........................................................... 87
6-2. Les familles logiques ...................................................................................... 88
6-3. Terminologie des circuits numriques ......................................................... 89
6-3.1.Dfinition de la terminologie courante . . . . . . . . . . . . . . . . . . . . . . . . . .90
Titre chapitre Vesion du 16 septembre 2010
IV
6-3.2.Tensions d'entre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
6-3.3.Tensions de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
6-3.4.Courant d'entre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
6-3.5.Courant de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
6-3.6.Immunit au bruit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
6-3.7.Facteur de charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
6-3.8.Les caractristiques temporelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
6-4. Interface CMOS - TTL .................................................................................. 94
6-5. Interface TTL - CMOS .................................................................................. 95
6-6. Collecteur ouvert ............................................................................................ 95
6-7. Porte trois tats ............................................................................................... 98
Chapitre 7 Mmoires 99
7-1. ROM (Read-Only Memory) .......................................................................... 99
7-2. PROM (Programmable ROM) ................................................................... 100
7-2.1.Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7-2.2.Ralisation pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
7-3. EPROM (Erasable PROM) ......................................................................... 102
7-3.1.Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
7-3.2.Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
7-3.3.Timing d'une EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
7-3.4.EPROM UV ou OTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105
7-3.5.Les mmoires du commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105
7-4. Mmoires EEPROM et FLASH .................................................................. 106
7-4.1.Mmoires EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
Exemple : la mmoire X2816 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7-4.2.Les mmoires Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107
Chapitre 8 Circuits logiques programmables et ASIC 109
8-1. Codage d'une fonction logique .................................................................... 112
8-1.1.Sommes de produits, produits de somme et matrice PLA (Programmable
Logic Array) 112
8-1.2.Mmoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
8-1.3.Multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
8-2. Technologie d'interconnexions .................................................................... 116
8-2.1.Connexions programmable une seule fois (OTP : One Time Programming)
116
Cellules fusible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Cellules antifusible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8-2.2.Cellules reprogrammables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
Cellule transistor MOS grille flottante et EPROM (Erasable Program-
mable Read Only Memory) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
UV-EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
EEPROM (Electrically EPROM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
V
Table des matires Titre
Flash EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Cellules SRAM transistors MOS classique . . . . . . . . . . . . . . . . . . . . 118
8-3. Architectures utilises .................................................................................. 119
8-3.1.PLD (Programmable Logic Device) . . . . . . . . . . . . . . . . . . . . . . . . . . .119
Dsignation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8-4. CPLD (Complex Programmable Logic Device) ........................................ 121
8-5. FPGA (Field Programmable Gate Array) ................................................. 122
8-6. Les outils de dveloppement des CPLDs et FPGAs .................................. 123
8-6.1.Techniques de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
Trois modes: fonctionnement normal, programmation et test . . . . . . . 125
Programmables in situ (ISP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8-7. PLDs, CPLDs, FPGAs : quel circuit choisir? ............................................ 127
8-7.1.Critres de performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
Puissance de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Nombre de portes quivalentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Nombre de cellules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Nombre d'entres/sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Vitesse de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Consommation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
8-8. ASIC (Application Specific Integrated Circuit) ........................................ 128
Les prdiffuss (gate arrays) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Les prcactriss (standard cell) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Les "fulls customs" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8-9. Comparaison et volution ............................................................................ 129
Bibliographie 133
Mdiagraphie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Lexique 135
Titre chapitre Vesion du 16 septembre 2010
VI
1
Chapitre 1
Introduction
L'utilisation de systmes digitaux est en pleine expansion. Pour s'en
convaincre, il n'y a qu' regarder autour de nous l'explosion de la micro-
informatique, qui s'est mme implante dans les mnages. Un nombre de
plus en plus grand de machines (tlvision, voiture, machine laver, etc.)
utilisent de l'lectronique numrique.
Nous trouvions, jusqu' l'apparition du microprocesseur, deux grands
secteurs dans le domaine des systmes digitaux. Cette division a subsist
chez les fabricants d'ordinateurs o nous trouvons encore:
le dpartement matriel (hardware)
le dpartement logiciel ou programmation (software)
L'apparition du microprocesseur a eu pour effet de diminuer l'importan-
ce du matriel et de provoquer un dplacement des moyens de traitement
des circuits aux programmes. Ce qui fait que nous nous trouvons de plus
en plus face des programmes qui cernent la machine au plus prs. Cela
oblige les programmeurs connatre de mieux en mieux le matriel pour
mieux "coller" l'application avec le programme.
Aprs avoir rduit le march de la logique cble, le microprocesseur
est parti la conqute de l'lectronique basse frquence. Il a fait son entre
Chapitre 1: Introduction Version du 16 septembre 2010
2
dans un nombre important de secteurs (jeux, tlcommunications, automa-
tique, etc.).
L'augmentation des possibilits d'intgration (nombre de transistors par
mm
2
) conduit une nouvelle volution. Les circuits logiques programma-
bles deviennent abordables. La programmation des petites applications se
trouve remplace par de la logique cble dans ces circuits programma-
bles. Cette volution permet d'envisager une augmentation de la vitesse de
traitement des fonctions.
J usqu' prsent, l'apprentissage de la logique se faisait travers la d-
couverte des fonctions logiques lmentaires contenues dans les circuits
intgrs des familles 74xxx, dont on peut voir quelques types dans
figure1- 1, page2. Les exprimentations se limitaient aux fonctions pro-
poses par les fabricants de ces circuits. La conception de fonctions logi-
ques regroupant plusieurs de ces circuits ncessitait un cblage
consquent, et la ralisation d'un circuit imprim de grande surface.
Figure 1- 1: Circuits logiques standards de la famille 74xx
L'apparition des circuits logiques programmables de type PLD (Pro-
grammable Logic Device), CPLD (Complexe PLD, figure1- 2, page3) ou
FPGA (Field Programmable Gate Array, figure1- 2, page3) a permis de
s'affranchir de cette limitation. En effet, l'utilisateur peut crer, dans ces
circuits, toutes les fonctions logiques qu'il souhaite avec comme seules li-
mitations, la place disponible dans le circuit choisi et/ou la vitesse de fonc-
tionnement de celui-ci. La taille actuelle de ces circuits permet
lintgration dun systme processeur complet. En anglais, labrviation
est SoPC pour System on Programmable Chip.
1
2
3
4
5
6
7
14
13
12
11
10
9
8 GND
VCC
7400
1
2
3
4
5
6
7
14
13
12
11
10
9
8 GND
VCC
7402
1
2
3
4
5
6
7
14
13
12
11
10
9
8 GND
VCC
7404
1
2
3
4
5
6
7
14
13
12
11
10
9
8 GND
VCC
7410
1
2
3
4
5
6
7
14
13
12
11
10
9
8 GND
VCC
7411
1
2
3
4
5
6
7
14
13
12
11
10
9
8 GND
VCC
7420
1
2
3
4
5
6
7
14
13
12
11
10
9
8 GND
VCC
7421
1
2
3
4
5
6
7
14
13
12
11
10
9
8 GND
VCC
7430
1
2
3
4
5
6
7
14
13
12
11
10
9
8 GND
VCC
7432
1
2
3
4
5
6
7
14
13
12
11
10
9
8 GND
VCC
7408
Electronique numrique Cours Systme numriques, Tome 1
3
Figure 1- 2: Circuits logiques programmable (a) CPLD; (b) FPGA
Les outils de dveloppement mis la disposition des utilisateurs doivent
donc permettre de passer de la description du comportement d'une fonction
logique son cblage dans le circuit et cela de la manire la plus simple
possible. Au dbut des annes 90, la description du comportement des
fonctions logiques tait faite par l'utilisation de langage dit de "description
de matriel". Parmi ceux-ci, on peut citer:
La premire gnration de ces langages permettaient des descriptions au
niveau logique. Il a exist deux langages:
Le CUPL utilis dans les annes 1980 1994.
Le langage ABEL (Advanced Boolean Equation Language) uti-
lis dans les annes 1990 1998
Ce langage a t cr par la socit DATA I/O et utilis ou imit
par quasiment tous les concepteurs d'outils de dveloppement
pour ce type de circuit (XABEL pour XILINX, AHDL pour
ALTERA, PLD pour ORCAD, XPLA pour PHILIPS, etc..)
Ce langage n'est plus utilis actuellement.
L'augmentation de la complexit des circuits programmable a ncessit
de disposer de langage permettant des descriptions de plus haut niveau
(comportementale). Deux langages sont apparu au dbut des annes 1990
pour la conception de circuits ASIC (circuit intgr spcialis). Ils se sont
imposes ds le milieu 1995 pour les circuits logiques programmables. Il
s'agit:
Le langage VHDL (Very High Speed Integrated Circuit, Hard-
ware Description Language) qui a t cr pour le dveloppe-
ment de circuits intgrs logiques complexes. Il doit son succs,
essentiellement, sa standardisation sous la rfrence
IEEE-1076, qui a permis d'en faire un langage unique pour la
description, la modlisation, la simulation, la synthse et la docu-
mentation.
Le langage VERILOG qui est proche du langage VHDL et qui
est surtout utilis aux Etats-Unis.
PLD PLD PLD PLD
PLD PLD PLD PLD
Programmable Interconect
(a) (b) = logic block
Chapitre 1: Introduction Version du 16 septembre 2010
4
Le but de ce cours, est dans un premier temps de prsenter les systmes
logiques combinatoires et squentiels. Lobjectif principal du est de ma-
triser la conception de tel systmes. Simultanment le langage VHDL sera
utilis tout au long du cours. Toutes les fonctions de base seront expliques
puis dcrites en VHDL. La description en VHDL sera pratique durant les
exercices.
Dans un deuxime temps, l'accent sera mis sur la mthodologie de d-
veloppement de systmes numrique avec le langage VHDL. Cette mtho-
dologie sera principalement vue pendant le laboratoire.
La prsentation des concepts et des instructions du langage VHDL est
faite dans un support spcifique. Il sagit du "Manuel VHDL, synthse et
simulation".
5
Chapitre 2
Systmes de numration et codes
Le systme de numration binaire est le plus important de ceux utiliss
dans les circuits numriques. Il est le seul que ces circuits soit capable
dutiliser. Il ne faut pour autant pas ngliger l'importance des autres syst-
mes. Le systme dcimal revt de l'importance en raison de son utilisation
universelle pour reprsenter les grandeurs du monde courant. De ce fait, il
faudra parfois convertir des valeurs dcimales en valeurs binaires avant de
pouvoir les traiter dans un circuit numrique. Par exemple, lorsque vous
composez un nombre dcimal sur votre calculatrice (ou sur le clavier de
votre ordinateur), les circuits internes convertissent ce nombre dcimal en
une valeur binaire.
De mme, il y aura des situations o des valeurs binaires donnes par
un circuit numrique devront tre converties en valeurs dcimales pour
qu'on puisse les lire. Par exemple, votre calculatrice (ou votre ordinateur)
calcule la rponse un problme au moyen du systme binaire puis con-
vertit ces rponses en des valeurs dcimales avant de les afficher.
Nous connaissons les systmes binaire et dcimal, tudions maintenant
deux autres systmes de numration trs rpandus dans les circuits num-
riques. Il s'agit des systmes de numration octale (base de 8) et hexadci-
mal (base de 16) qui servent tous les deux au mme but, soit celui de
constituer un outil efficace pour reprsenter de gros nombres binaires.
Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010
6
Comme nous le verrons, ces systmes de numration ont l'avantage d'ex-
primer les nombres de faon que leur conversion en binaire, et vice versa,
soit trs facile.
Dans un systme numrique, il peut arriver que trois ou quatre de ces
systmes de numration cohabitent, d'o l'importance de pouvoir convertir
un systme dans un autre. Le prsent chapitre se propose de vous montrer
comment effectuer de telles conversions. Certaines de ces conversions ne
seront pas appliques immdiatement dans l'tude des circuits numriques,
mais vous constaterez au moment de l'tude des microprocesseurs que c'est
une connaissance dont vous avez besoin.
Ce chapitre se veut galement une introduction certains des codes bi-
naires utiliss pour reprsenter divers genres d'information. Ces codes
agencent les 0 et les 1 de manire diffrente du systme binaire.
2-1 Reprsentation des nombres
Le nombre de symboles utiliss caractrise le numro de la base.
Ex.:
en base 10, nous avons les 10 symboles (0, 1,..,9)
en base 2, nous avons les 2 symboles (0, 1)
en base 3, nous avons les 3 symboles (0, 1, 2)
en base 16, nous avons besoin de 16 symboles,
nous utiliserons les 10 chiffres plus les lettres de A F, soit
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
N.B.: Il faut remarquer que le choix de symboles chiffres facilite gran-
dement les choses, cette facilit dcoulant de notre grande habitude du
systme dcimal (10 symboles).
Le poids d'un chiffre dpend de sa position dans le nombre. Nous par-
lons de numration de position, soit:
Un nombre dans une base "b" entire positive s'crit:
(1)
ce qui correspond aux oprations:
(2)
L'indice de b indique la base dans laquelle le nombre est calcul.
N.B.: La formule (2) donne N dans la base dans laquelle on effectue les
oprations (ici la base B). Pour nous, ce sera gnralement la base 10.
N
b
a
n
a
n 1
a
1
a
0
a
1
a
m
, =
N
B
a
n
b
n
a
n 1
b
n 1
a
1
b
1
a
0
b
0
a
1
b
1
a +
m
b
m
+
+ + + + + =
Electronique numrique Cours Systme numriques, Tome 1
7
2-2 Conversion Binaire - Dcimal
Le systme de numration binaire est un systme de numration de po-
sition o le poids de chaque bit est un multiple de puissance de 2 (base). Le
bit est affect d'un certain poids qui dpend de son rang par rapport au bit
de poids le plus faible. Ainsi tout nombre binaire peut tre transform en
son quivalent dcimal simplement en additionnant les poids des diverses
positions o se trouve une valeur 1. Voici une illustration:
Exemple 2- 1: Conversion de nombre binaire en dcimal
Voyons un autre exemple pour un nombre ayant un plus grand nombre
de bits.
Exemple 2- 2: Autre exemple de conversion
Vous remarquez que la mthode consiste trouver les poids (les puis-
sances de 2) pour chaque position du nombre o il y a un 1, puis addition-
ner le tout. Remarquez que le bit de poids le plus fort a un poids de 2
7
mme s'il s'agit du huitime bit; il en est ainsi parce que le bit de poids le
plus faible est le premier bit et que son poids est toujours 2
0
.
2-3 Conversion Dcimal - Binaire
Nous pouvons essayer dappliquer la mme dmarche que prcde-
ment. Nous allons exprimer le nombre dcimal en binaire en utilisant la
formule de reprsentation de nombre en numration de position.
Lexemple2- 3 nous montre la dmarche pour le nombre 158.
1 1 0 1 1 (binaire)
12
4
+
12
3
+
02
2

+
12
1
+
12
0
16 + 8 + 0 + 2 + 1 = 27
10
(dcimal)
1 0 1 1 0 1 0 1 binaire
12
7
+
02
6
+
12
5

+
12
4
+
02
3
+
12
2
+
02
1
+
12
0
128 + 0 + 32 + 16 + 0 + 4 + 0 + 1 =181
10
dcimal
Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010
8
Exemple 2- 3: Conversion dcimal-binaire avec reprsentation de numration de position
Lexemple2- 3 nest pas utilisable pour nous. Nous devrions tre capa-
ble, pour cela, de faire le calcul en base 2! Cette mthode nest pas utilisa-
ble pour nous car nous savons faire les calculs uniquement en dcimal.
Il existe deux faons de convertir un nombre dcimal en son quivalent
binaire. Une mthode qui convient bien aux petits nombres est une dmar-
che qui est base sur la numration de position en binaire. Le nombre d-
cimal est simplement exprim comme une somme de puissances de 2, puis
on inscrit des 1 et des 0 vis--vis des positions binaires appropries. Voici
un exemple:
45
10
=32 +8 +4 +1 =2
5
+0 +2
3
+2
2
+0 +2
0
=1 0 1 1 0 1
2
Notons qu'il y a un 0 vis--vis des positions 2
1
et 2
4
, puisque ces posi-
tions ne sont pas utilises pour trouver la somme en question. Il sagit
dune mthode par essais successifs (ttonnement).
2-3.1 Conversion de la partie entire
L'autre mthode convient mieux aux grands nombres dcimaux; il s'agit
de rpter la division par 2. La partie entire dun nombre peut sexprimer
comme suit :
Si nous divisons N
B
par la base b, nous obtenons lexpression suivante :
a
0
apparat comme le reste de la division de N entier par b; a
1
est le reste
de la division du quotient par b; a
2
est le reste de la division du nouveau
quotient par b. On opre donc par divisions successives par b.
Cette mthode de conversion est illustre ci-aprs pour le nombre 25
10
.
Nous utilisons des divisions rptitives par 2 du nombre dcimal conver-
tir. A chaque division nous obtenons un quotient et un reste. Nous devons
effectuer les divisions jusqu obtenir un quotient nul. Il est important de
noter que le nombre binaire rsultant s'obtient en crivant le premier reste
la position du bit de poids le plus faible (LSB) et le dernier reste la po-
sition du bit de poids le plus fort (MSB).
1 5 8 dcimal
110
2
+
510
1
+
810
0

num. position
en dcimal
0001(1010)
10
+
0101(1010)
01
+
1000(1010)
00
= ???
2
binaire
N
B
a
n
b
n
a
n 1
b
n 1
a
1
b
1
a
0
b
0
+ + + + =
N
B
b
------ a (
n
b
n 1
a
n 1
b
n 2
a
1
b
0
)et a
0
( ) + + + =
Electronique numrique Cours Systme numriques, Tome 1
9
25/2 = 12 reste 1 Poids faible (LSB)
12/2 = 6 reste 0
6/2 = 3 reste 0
3/2 = 1 reste 1
1/2 = 0 reste 1 Poids fort (MSB)
25
10
= 1 1 0 0 1
2
Exemple 2- 4: Conversion de 25 dcimal en binaire
2-3.2 Conversion de la partie fractionnaire
La conversion de la partie fractionnaire sobtient par loprateur inver-
se, soit la multiplication. La partie fractionnaire dun nombre peut sexpri-
mer comme suit :
Si nous multiplions N
B
par la base b, nous obtenons lexpression sui-
vante :
a
-1
apparat comme la partie entire de la multiplication de N fraction-
naire par b; a
-2
est la partie entire de la multiplication par b du reste; a
-3
est la partie entire de la multiplication par nouveau reste par b. On opre
donc par multiplication successives par b.
Cette mthode de conversion est illustre ci-aprs pour le nombre
0,375
10
. Nous utilisons des multiplications successives par 2 du nombre
dcimal convertir. A chaque multiplication nous obtenons une partie en-
tire et un reste. Il est important de noter que le nombre binaire rsultant
s'obtient en crivant le premier chiffre la position du bit de poids le plus
fort (MSB).
0,375 x 2 = 0,75 partie entire = 0 Poids fort (MSB)
reste = 0,75
0,75 x 2 = 1,5 partie entire = 1
reste = 0,5
0,5 x 2 = 1,0 partie entire = 1
reste = 0
N
10
= 0,375 correspond N
2
= 0,011
Exemple 2- 5: Conversion du nombre fractionnaire dcimal 0,375 en binaire
On peut remarquer qu'un nombre fini dans une base peut conduire
une suite infinie dans une autre.
N
B
a
1
b
1
a
2
b
2
a
m 1
b
m 1
a
m
b
m
+ + + + =
b N
B
a
1
a
2
b
1
a
m 1
b
m 2
a
m
b
m 1
+ + + ( ) =
Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010
10
2-4 Systme de numration Octal
Le systme de numration octal a comme base huit, ce qui signifie qu'il
comprend huit symboles possibles, soit 0, 1, 2, 3, 4, 5, 6 et 7. Ainsi, chaque
chiffre dans un nombre octal a une valeur comprise entre 0 et 7. Voici les
poids de chacune des positions d'un nombre octal.
2-4.1 Conversion octal-dcimal
On convertit un nombre octal en son quivalent dcimal en multipliant
chaque chiffre octal par son poids positionnel. Voici un exemple:
372
8
= 3(8
2
) + 7(8
1
) + 2(8
0
)
= 364 + 78 + 21
= 250
10
Exemple 2- 6: Conversion octal-dcimal
2-4.2 Conversion dcimal-octal
Il est possible de convertir un nombre dcimal entier en son quivalent
octal en employant la mthode de la rptition de divisions, la mme qu'on
a utilise pour la conversion dcimal-binaire, mais cette fois-ci en divisant
par 8 plutt que par 2. Voici un exemple:
266/8 = 33 reste 2
33/8 = 4 reste 1
4/8 = 0 reste 4
266
10
= 412
8
Exemple 2- 7: Conversion dcimal-octal
Notez que le premier reste devient le chiffre de poids le plus faible du
nombre octal et que le dernier reste devient le chiffre de poids le plus fort.
Si on utilise une calculatrice pour faire les divisions, on aura comme r-
sultat un nombre avec une partie fractionnaire plutt qu'un reste. On calcu-
le toutefois le reste en multipliant la fraction dcimale par 8. Par exemple,
avec la calculatrice, la rponse de la division 266/8, est 33,25. En multi-
pliant la partie dcimale par 8, on trouve un reste de 0,25 X 8 =2. De m-
me, 33 / 8 donne 4,125, d'o un reste de 0, 125 X 8 =1.
2-4.3 Conversion octal-binaire
Le principal avantage du systme de numration octal rside dans la fa-
cilit avec laquelle il est possible de passer d'un nombre octal un nombre
binaire. Cette conversion s'effectue en transformant chaque chiffre du
.
8
3
8
2
8
1
8
0
.
8
-1
8
-2
8
-3
.
Electronique numrique Cours Systme numriques, Tome 1
11
nombre octal en son quivalent binaire de trois chiffres. Voyez dans le ta-
bleau ci-dessous les huit symboles octaux exprims en binaire.
Au moyen de ce tableau, tout nombre octal est converti en binaire par la
transformation de chacun des chiffres. Par exemple, la conversion de 4728
va comme suit:
4 7 2
100 111 010
Donc le nombre octal 472
8
est quivalent au nombre binaire
100111010.
2-4.4 Conversion binaire-octal
La conversion d'un nombre binaire en un nombre octal est tout simple-
ment l'inverse de la marche suivre prcdente. Il suffit de faire avec le
nombre binaire des groupes de trois bits en partant du chiffre de poids le
plus faible, puis de convertir ces triplets en leur quivalent octal (voir ta-
bleau 2-1). titre d'illustration, convertissons 100111010
2
en octal.
100 111 010
4 7 2
8
Parfois, il arrivera que le nombre binaire ne forme pas un nombre juste
de groupes de trois. Dans ce cas, on pourra ajouter un ou deux zros gau-
che du bit de poids le plus fort pour former le dernier triplet (si on lit de
droite gauche). Voici une illustration de ceci avec le nombre binaire
11010110.
011 010 110
3 2 6
8
Notez l'ajout d'un zro gauche du bit de poids le plus fort pour obtenir
un nombre juste de triplets.
2-5 Systme de numration Hexadcimal
Le systme hexadcimal a comme base 16, ce qui implique 16 symboles
de chiffres possibles, qui, dans ce cas, sont les dix chiffres 0 9 plus les
lettres majuscules A, B, C, D, E et F. Le tableau2-1 expose les rapports
entre les systmes hexadcimal, dcimal et binaire. Remarquez que chaque
chiffre hexadcimal a comme quivalent binaire un groupe de quatre bits.
Chiffre octal 0 1 2 3 4 5 6 7
quivalent binaire 000 001 010 011 100 101 110 111
Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010
12
Il ne faut surtout pas oublier que les chiffres hexadcimaux A F corres-
pondent aux valeurs dcimales 10 15.
Tableau2-1: Rapport entre hexadcimal, dcimal et binaire
La reprsentation hexadcimale est principalement utilise pour repr-
senter un nombre binaire sous forme plus compacte. Un nombre en hexa-
dcimal comprend 4 fois moins de chiffres!
2-5.1 Conversion hexadcimal-dcimal
Un nombre hexadcimal peut tre converti en son quivalent dcimal en
exploitant le fait qu' chaque position d'un chiffre hexadcimal est attribu
un poids; dans ce cas-ci le nombre 16 lev une certaine puissance. Le
chiffre de poids le plus faible a un poids de 16
0
=1, le chiffre immdiate-
ment gauche a un poids de 16
1
=16, l'autre chiffre immdiatement gau-
che, un poids de 16
2
=256, et ainsi de suite. Voici un exemple sur la faon
dont fonctionne ce processus de conversion.
Hexadcimal Dcimal Binaire
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111
Electronique numrique Cours Systme numriques, Tome 1
13
356
16
=316
2
+516
1
+616
0
=768 +80 +6
=854
10
2AF
16
=216
2
+1016
1
+1516
0
=512 +160 +15
=687
10
Exemple 2- 8: Conversion hexadcimal-dcimal
2-5.2 Conversion dcimal-hexadcimal
Vous vous rappelez peut-tre que pour la conversion dcimal-binaire
nous avons eu recours la rptition de divisions par 2, que pour la con-
version dcimal-octal, la rptition de division par 8. Donc, pour conver-
tir un nombre dcimal en un nombre hexadcimal, il faut procder de la
mme faon, mais cette fois en divisant par 16. Les exemples qui suivent
illustrent cette technique. Remarquez comment les restes des divisions de-
viennent les chiffres du nombre hexadcimal; de plus, voyez, comment les
restes suprieurs 9 sont exprims au moyen des lettres A F. Exemple,
conversion de 42310 en hexadcimal:
423/16 =26 reste 7
26/16 =1 reste 10
1/16 =0 reste 1
423
10
=1A7
16
Exemple 2- 9: Conversion dcimal-hexadcimal
2-5.3 Conversion hexadcimal-binaire
Comme le systme de numration octal, le systme de numration hexa-
dcimal se veut une faon abrge de reprsenter les nombres binaires. La
conversion d'un nombre hexadcimal en un nombre binaire ne pose vrai-
ment pas de difficult, puisque chaque chiffre hexadcimal est remplac
par son quivalent binaire de 4 bits (tableau 2-2). Voici un exemple avec
9F216.
9F2
16
= 9 F 2
1001 1111 0010
=100111110010
2
Exemple 2- 10: Conversion hexadcimal-binaire
2-5.4 Conversion binaire-hexadcimal
Cette conversion est tout simplement l'inverse de la prcdente. Le
nombre binaire est divis en groupes de quatre bits, puis on substitue cha-
Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010
14
que groupe son chiffre hexadcimal quivalent. Au besoin, on ajoute des
zros gauche pour obtenir un dernier groupe de 4 bits.
1110100110
2
= 0011 1010 0110
3 A 6
=3A6
16
Exemple 2- 11: Conversion binaire-hexadcimal
Pour passer d'un nombre hexadcimal son quivalent binaire, il faut
connatre la suite des nombres binaires de quatre bits (0000 1111) ainsi
que le nombre correspondant en hexadcimal. Ds que cette correspondan-
ce devient un rflexe automatique, les conversions se font rapidement sans
calculs. C'est ce qui explique pourquoi le systme hexadcimal est si pra-
tique pour reprsenter de grands nombres binaires.
2-5.5 Comptage hexadcimal
Lorsque l'on compte selon le systme de numration hexadcimal, la
valeur dans une position du nombre crot par pas de 1 depuis 0 jusqu' F.
Quand le chiffre dans une position est F, le chiffre suivant dans cette posi-
tion est 0 et le chiffre immdiatement gauche est augment de 1. C'est ce
qu'on voit dans les suites de nombres hexadcimaux suivantes:
a. 38, 39, 3A, 3B, 3C, 3D, 3E, 3F, 40, 41, 42
b. 6F8, 6F9, 6FA, 6FB, 6FC, 6FD, 6FE, 6FF, 700,
Notez que le chiffre qui suit 9 dans une position est A.
2-5.6 Utilit du systme hexadcimal
La facilit avec laquelle se font les conversions entre les systmes binai-
re et hexadcimal explique pourquoi le systme hexadcimal est devenu
une faon abrge d'exprimer de grands nombres binaires. Dans un ordina-
teur, il n'est pas rare de retrouver des nombres binaires ayant jusqu' 64 bits
de longueur. Ces nombres binaires, comme nous le verrons, ne sont pas
toujours des valeurs numriques, mais peuvent correspondre un certain
code reprsentant des renseignements non numriques. Dans un ordina-
teur, un nombre binaire peut tre: 1) un vrai nombre; 2) un nombre corres-
pondant un emplacement (adresse) en mmoire; 3) un code d'instruction;
4) un code correspondant un caractre alphabtique ou non numrique;
ou 5) un groupe de bits indiquant la situation dans laquelle se trouvent des
dispositifs internes et externes de l'ordinateur.
Quand on doit travailler avec beaucoup de nombres binaires trs longs,
il est plus commode et plus rapide d'crire ces nombres en hexadcimal
plutt qu'en binaire. Toutefois, ne perdez pas de vue que les circuits et les
systmes numriques fonctionnent exclusivement en binaire et que c'est
par pur souci de commodit pour les oprateurs qu'on emploie la notation
hexadcimale.
Electronique numrique Cours Systme numriques, Tome 1
15
2-6 Code BCD, soit Binary Coded Decimal
L'action de faire correspondre des nombres, des lettres ou des mots un
groupe spcial de symboles s'appelle codage et le groupe de symboles un
code. Un des codes que vous connaissez peut-tre le mieux est le code
Morse dans lequel on utilise une srie de points et de traits pour reprsenter
les lettres de l'alphabet.
Nous avons vu que tout nombre dcimal pouvait tre converti en son
quivalent binaire. Il est possible de considrer le groupe de 0 et de 1 du
nombre binaire comme un code qui reprsente le nombre dcimal. Quand
on fait correspondre un nombre dcimal son quivalent binaire, on dit
qu'on fait un codage binaire pur.
Les circuits numriques fonctionnent avec des nombres binaires expri-
ms sous une forme ou sous une autre durant leurs oprations internes,
malgr que le monde extrieur soit un monde dcimal. Cela implique qu'il
faut effectuer frquemment des conversions entre les systmes binaire et
dcimal. Nous savons que pour les grands nombres, les conversions de ce
genre peuvent tre longues et laborieuses. C'est la raison pour laquelle on
utilise dans certaines situations un codage des nombres dcimaux qui com-
bine certaines caractristiques du systme binaire et du systme dcimal.
Le BCD s'appelle en franais Code Dcimal cod Binaire (CDB). Si on
reprsente chaque chiffre d'un nombre dcimal par son quivalent binaire,
on obtient le code dit dcimal cod binaire (abrg dans le reste du texte
par BCD). Comme le plus lev des chiffres dcimaux est 9, il faut donc 4
bits pour coder les chiffres.
Illustrons le code BCD en prenant le nombre dcimal 874 et en chan-
geant chaque chiffre pour son quivalent binaire; cela donne:
8 7 4 dcimal
1000 0111 0100 BCD
De nouveau, on voit que chaque chiffre a t converti en son quivalent
binaire pur. Notez qu'on fait toujours correspondre 4 bits chaque chiffre.
Le code BCD tablit donc une correspondance entre chaque chiffre d'un
nombre dcimal et un nombre binaire de 4 bits. videmment, seuls les
groupes binaires 0000 1001 sont utiliss. Le code BCD ne fait pas usage
des groupes 1010, 1011, 1100, 1101, 1110 et 1111. Autrement dit, seuls
dix des 16 combinaisons des 4 bits sont utiliss. Si l'une des combinaisons
"inadmissibles" apparat dans une machine utilisant le code BCD, c'est g-
nralement le signe qu'une erreur s'est produite.
2-6.1 Comparaison entre code BCD et nombre binaire
Il importe de bien raliser que le code BCD n'est pas un autre systme
de numration comme les systmes octal, dcimal ou hexadcimal. En fait,
ce code est le systme dcimal dont on a converti les chiffres en leur qui-
valent binaire. En outre, il faut bien comprendre qu'un nombre BCD n'est
Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010
16
pas un nombre binaire pur. Quand on code selon le systme binaire pur, on
prend le nombre dcimal dans son intgralit et on le convertit en binaire,
sans le fractionner; par ailleurs, quand on code en BCD, c'est chaque chif-
fre individuel qui est remplac par son quivalent binaire. titre d'exem-
ple, prenons le nombre 137 et trouvons son nombre binaire pur puis son
quivalent BCD:
137
10
=10001001
2
(Binaire)
137
10
=0001 0011 0111 (BCD)
Le code BCD ncessite 12 bits pour reprsenter 137 tandis que le nom-
bre binaire pur n'a besoin que de 8 bits. Il faut plus de bits en BCD qu'en
binaire pur pour reprsenter les nombres dcimaux de plus d'un chiffre.
Comme vous le savez, il en est ainsi parce que le code BCD n'utilise pas
toutes les combinaisons possibles de groupes de 4 bits; c'est donc un code
peu efficace.
Le principal avantage du code BCD provient de la facilit relative avec
laquelle on passe de ce code un nombre dcimal, et vice versa. Il ne faut
retenir que les groupes de 4 bits des chiffres 0 9. C'est un avantage non
ngligeable du point de vue du matriel, puisque dans un systme numri-
que ce sont des circuits logiques qui ont la charge d'effectuer ces conver-
sions.
2-6.2 Conversion BCD-binaire
Une conversion est ncessaire pour convertir un nombre exprim en
BCD en binaire. La seule possibilit est de passer par la valeur dcimale.
Voici la dmarche suivre :
N
BCD
=>lexprim en dcimal =>convertir en binaire (voir 2-3, page
<$elempagenum)
Nous verrons plus tard comment une telle conversion est ralise dans
un systme numrique qui fait tous les calculs en binaire!
2-6.3 Conversion binaire-BCD
La conversion dune valeur binaire en BCD demande de passer aussi
par la valeur dcimale. Voici la dmarche suivre :
N
2
=>convertir en dcimal (voir 2-2, page <$elempagenum) =>lexprim
en BCD
Electronique numrique Cours Systme numriques, Tome 1
17
2-7 Rcapitulatif de diffrents codes
Nous donnerons un tableau des principaux codes. Il faut toutefois men-
tionner le code GRAY ou binaire rflchi. Ce code prsente l'avantage qu'il
n'y a qu'un seul bit qui change la fois. Il offre ds lors de multiples utili-
sations.
Tableau2-2: Table des codes
Les codes Excdent 3 et AIKEN ne sont pratiquement plus utiliss.
2-8 Les codes alphanumriques
Un ordinateur ne serait pas d'une bien grande utilit s'il tait incapable
de traiter l'information non numrique. On veut dire par-l qu'un ordinateur
doit reconnatre des codes qui correspondent des nombres, des lettres, des
signes de ponctuation et des caractres spciaux. Les codes de ce genre
sont dit alphanumriques. Un ensemble de caractres complet doit renfer-
mer les 26 lettres minuscules, les 26 lettres majuscules, les dix chiffres, les
7 signes de ponctuation et entre 20 40 caractres spciaux comme +, /, #,
%. On peut conclure qu'un code alphanumrique reproduit tous les carac-
Dcimal binaire octal hexadcimal Gray ou BR Excdent 3 AIKEN
00 0000 00 0 0000 0011 0000
01 0001 01 1 0001 0100 0001
02 0010 02 2 0011 0101 0010
03 0011 03 3 0010 0110 0011
04 0100 04 4 0110 0111 0100
05 0101 05 5 0111 1000 1011
06 0110 06 6 0101 1001 1100
07 0111 07 7 0100 1010 1101
08 1000 10 8 1100 1011 1110
09 1001 11 9 1101 1100 1111
10 1010 12 A 1111 sur deux dcades
11 1011 13 B 1110 sur deux dcades
12 1100 14 C 1010 sur deux dcades
13 1101 15 D 1011 sur deux dcades
14 1110 16 E 1001 sur deux dcades
15 1111 17 F 1000 sur deux dcades
Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010
18
tres et les diverses fonctions que l'on retrouve sur un clavier standard de
machine crire ou d'ordinateur.
2-8.1 Code ASCII
Le code alphanumrique le plus rpandu est le code ASCII (American
Standard Code for Information Interchange); on le retrouve dans la majo-
rit des micro-ordinateurs et des mini-ordinateurs et dans beaucoup de gros
ordinateurs. Le code ASCII (prononc "aski") standard est un code sur 7
bits, on peut donc reprsenter grce lui 2
7
=128 lments cods. C'est
amplement suffisant pour reproduire toutes les lettres courantes d'un cla-
vier et les fonctions de contrle comme (RETOUR) et (INTERLIGNE). Le
tableau2-3 contient le code ASCII standard. Dans ce dernier, en plus du
groupe binaire de chaque caractre, on a donn l'quivalent hexadcimal.
Tableau2-3: Liste partielle du code ASCII
0..3 0 1 2 3 4 5 6 7
0
NUL DLE Space 0 Nat P p
1
SOH DC1 ! 1 A Q a q
2
STX DC2 " 2 B R b r
3
ETX DC3 # 3 C S c s
4
EOT DC4 $ 4 D T d t
5
ENQ NAK % 5 E U e u
6
ACK SYN & 6 F V f v
7
BEL ETB 7 G W g w
8
BS CAN ( 8 H X h x
9
HT EM ) 9 I Y i y
A
LF SUB * : J Z j z
B
VT ESC + ; K Nat k Nat
C
FF FS , < L Nat l Nat
D
CR GS - = M Nat m Nat
E
SO RS . > N ^ n ~
F
SI US / ? O _ o DEL
Electronique numrique Cours Systme numriques, Tome 1
19
Lgende:
Le code ASCII standard ninclus pas des caractres comme les lettres
avec les accents , , , etc. Le nombre de bits utilis donc t augment
8. Nous disposons ainsi 256 lments cods. Lextension du code ASCII
nest pas standard. En franais nous avons besoin des lettres avec des ac-
cents comme , , , ... En allemand, il y a dautres caractres comme , ,
.... Il existe donc autant de variantes du code ASCII tendu sur 8 bits quil
y a de pays voir de rgions!

SOH Dbut d'en-tte US Sparateur de sous-articles
STX Dbut de texte RS Sparateur d'articles
ETX Fin de texte GS Sparateur de groupes
EOT Fin de transmission RS Sparateur de fichiers
ENQ Demande
ACK Accus de rception BEL Sonnerie
DLE Echappement de transmis-
sion
SO Hors code
NAK Accus de rception ngatif SI En code
SYN Synchronisation CAN Annulation
ETB Fin de bloc de transmission EM Fin de support
BS Espace arrire SUB Substitution
HT Tabulateur horizontal ESC Echappement
LF Interligne SP Espace
CR Retour de chariot NUL Nul
DC1 Marche lecteur DEL Oblitration
DC2 Embrayage perforateur
DC3 Arrt lecteur
DC4 Dbrayage perforateur Nat usage national
Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010
20
21
Chapitre 3
Arithmtique binaire
Les diverses oprations arithmtiques qui interviennent dans les ordina-
teurs et les calculatrices portent sur des nombres exprims en notation bi-
naire. En tant que telle, l'arithmtique numrique peut tre un sujet trs
complexe, particulirement si on veut comprendre toutes les mthodes de
calcul et la thorie sur laquelle elle s'appuie. Heureusement, il n'est pas n-
cessaire d'enseigner aux ingnieurs la thorie complte de l'arithmtique
numrique, tout au moins pas avant qu'ils soient devenus des program-
meurs expriments.
Dans ce chapitre, nous allons concentrer nos efforts sur les principes de
base qui nous permettent de comprendre comment les machines numri-
ques (c'est--dire les ordinateurs) ralisent les oprations arithmtiques de
base. Nous traiterons uniquement la reprsentation des nombres entiers,
celle des nombres fractionnaires sera tudie ultrieurement.
D'abord nous verrons comment effectuer manuellement les oprations
arithmtiques en binaire, par la suite nous tudierons les circuits logiques
rels qui matrialisent quelques unes de ces oprations dans un systme
numrique.
Chapitre 3: Arithmtique binaire Version du 16 septembre 2010
22
3-1 Reprsentation des nombres entiers positifs
Les ordinateurs travaillent en base 2. Nous devrons donc reprsenter
nos nombres dcimaux en binaire. Nous utiliserons pour les nombres en-
tiers positifs leur reprsentation quivalente en binaire. Les machines ayant
des dimensions physiques finies, un nombre de bits (variables logiques)
maximum sera admissible en fonction de la machine, ce qui nous limitera
dans la grandeur des nombres.
Dans le cas dune reprsentation sur 8 bits, nous pouvons reprsenter
256 valeurs soit les nombre de 0 255.
Dans le cas gnral dune reprsentation sur N bits, nous avons :
nombre de valeurs 2
N
de 0 2
N
-1
3-2 Addition Binaire
L'addition de deux nombres binaires est parfaitement analogue l'addi-
tion de deux nombres dcimaux. En fait, l'addition binaire est plus simple
puisqu'il y a moins de cas apprendre. Revoyons d'abord l'addition dci-
male:
On commence par additionner les chiffres du rang de poids faible, ce
qui donne 7. Les chiffres du deuxime rang sont ensuite additionns, ce qui
donne une somme de 13, soit 3 plus un report de 1 sur le troisime rang.
Pour le troisime rang, la somme des deux chiffres plus le report de 1 don-
ne 8.
Les mmes rgles s'appliquent l'addition binaire. Cependant, il n'y a
que quatre cas, qui peuvent survenir lorsqu'on additionne deux chiffres bi-
naires et cela quel que soit le rang. Ces quatre cas sont:
0 + 0 = 0
1 + 0 = 1
1 + 1 = 10 = 0 + report de 1 sur le rang de gauche
1 + 1 + 1 = 11 = 1 + report de 1 sur le rang de gauche
Le dernier cas ne se produit que lorsque, pour un certain rang, on addi-
tionne deux 1 plus un report de 1 provenant du rang de droite. Voici quel-
ques exemples d'additions de deux nombres binaires:
376
+ 461
= 837
Electronique numrique Cours Systme numriques, Tome 1
23
Il n'est pas ncessaire d'tudier des additions ayant plus de deux nom-
bres binaires, parce que dans tous les systmes numriques les circuits qui
additionnent ne traitent pas plus de deux nombres la fois. Lorsque nous
avons plus de deux nombres additionner, on trouve la somme des deux
premiers puis on additionne cette somme au troisime nombre, et ainsi de
suite. Ce n'est pas vritablement un inconvnient, puisque les machines nu-
mriques modernes peuvent gnralement raliser une opration d'addition
en quelques nanosecondes.
L'addition est l'opration arithmtique la plus importante dans les syst-
mes numriques. Les oprations de soustraction, de multiplication et de di-
vision effectues par les ordinateurs ne sont essentiellement que des
variantes de l'opration d'addition.
3-3 Reprsentation des nombres entiers signs
Nous devons dfinir une convention pour reprsenter le signe en binai-
re. La plupart des ordinateurs traitent aussi bien les nombres ngatifs que
les nombres positifs.
La premire solution consiste ajouter un bit au nombre. Celui-ci est
appel bit de signe. La convention la plus simple consiste attribuer au si-
gne positif ltat 0 et au signe ngatif ltat 1. Nous appelons cette conven-
tion comme tant une reprsentation signe-grandeur. Nous pouvons voir
un exemple de cette reprsentation la figure3- 1.
On utilise le bit de signe pour indiquer si le nombre binaire mmoris
est positif ou ngatif. Les nombres reproduits la Figure 3 sont forms d'un
signe de bit et de six bits de grandeur. Ces derniers correspondent l'qui-
valent binaire exact de la valeur dcimale prsente.
011 (3) 1001 11,011
+ 110 (6) + 1111 + 10,110
= 1001 (9) = 11000 = 110,001
Chapitre 3: Arithmtique binaire Version du 16 septembre 2010
24
Figure 3- 1: Reprsentation de nombres binaires signs dans la notation signe-grandeur.
Bien que la notation signe-grandeur soit directe, les ordinateurs et les
calculatrices n'y ont gnralement pas recours, en raison de la complexit
pour raliser des oprations arithmtiques avec cette notation. On utilise
plutt dans ces machines, pour reprsenter les nombres binaires signs, la
notation en complment 2. Avant d'aborder le droulement de tout ceci,
il importe de voir comment on obtient l'quivalent en complment 1 et
l'quivalent en complment deux, d'un nombre binaire.
3-3.1 Notation en complment 1
Le complment 1 d'un nombre binaire s'obtient en changeant chaque
0 par un 1 et chaque 1 par un 0. Autrement dit, en complmentant chaque
bit du nombre. Voici une illustration de cette marche suivre:
1 0 1 1 0 1 nombre binaire initial
0 1 0 0 1 0 complment de chaque bit pour obtenir le complment 1
On dit que le complment 1 de 101101 est 010010.
Le complment 1 dun nombre est donc linversion de chaque bit
laide de la fonction logique NON. Nous pouvons donc exprimer le com-
plment 1 par lquation ci-dessous.
Complment 1 de N : C1(N) =not N (1)
3-3.2 Notation en complment 2
Le complment 2 est trs largement utilis car c'est la reprsentation
naturelle des nombres ngatifs. Si nous faisons la soustraction de 2 - 3 nous
obtenons immdiatement -1 reprsent en complment 2.
A6 A5 A4 A3 A2 A1 A0
0 1 1 0 1 0 0 =+52
10
Bit de signe Grandeur =52
10
A6 A5 A4 A3 A2 A1 A0
1 1 1 0 1 0 0 =-52
10
Bit de signe Grandeur =52
10
0010 nombre 2 en binaire sur 4 bits
- 0011 nombre 3 en binaire sur 4 bits
= 1111 rsultat de la soustraction, il y a un emprunt
Electronique numrique Cours Systme numriques, Tome 1
25
Nous allons voir que "1111" est la reprsentation du nombre -1 sur 4
bits.
Le complment 2 d'un nombre binaire s'obtient simplement en prenant
le complment 1 de ce nombre et en ajoutant 1 au bit de son rang de poids
le plus faible. Voici une illustration de cette conversion pour le cas
101101
2
=45
10
.
On dit que 010011 est le complment 2 de 101101.
Le complment 2 dun nombre est donc linversion de chaque bit
laide de la fonction logique NON, puis laddition de 1. Nous pouvons
donc exprimer le complment 2 par lquation ci-dessous.
Complment 2 de N : C2(N) =C1(N) +1 =not N +1 (2)
Voici la valeur du nombre -1 sur 4 bits. Nous commenons par exprimer
le nombre 1 sur 4 bits puis nous appliquons la rgle de calcul du compl-
ment 2.
3-3.3 Etude de nombres binaires signs en complment 2
Voici comment on crit des nombres binaires signs en utilisant la no-
tation en complment 2.
Si le nombre est positif, sa grandeur est la grandeur binaire exacte et son
bit de signe est un 0 devant le bit de poids le plus fort. C'est ce qu'on peut
voir sur la figure3- 2 pour +45
10
Figure 3- 2: criture de nombres binaires signs dans la notation en complment 2.
101101 quivalent binaire de 45
010010 inversion de chaque bit pour obtenir le complment 1
+ 1 addition de 1 pour obtenir le complment 2
= 010011 le complment 2 du nombre binaire initial
0001 quivalent binaire de 1 sur 4 bits
1110 inversion de chaque bit pour obtenir le complment 1
+ 1 addition de 1 pour obtenir le complment 2
= 1111 le complment 2 du nombre 1, soit -1
0 1 0 1 1 0 1 =+45
10
Bit de signe Grandeur exacte
1 0 1 0 0 1 1 =-45
10
Bit de signe Complment 2
Chapitre 3: Arithmtique binaire Version du 16 septembre 2010
26
Si le nombre est ngatif, sa grandeur est le complment 2 de la gran-
deur exacte et son bit de signe est un 1 gauche du bit de poids le plus fort.
Voyez la figure3- 2 la reprsentation du nombre -45
10
.
La complmentation 2 d'un nombre sign transforme un nombre posi-
tif en un nombre ngatif et vice versa.
La notation en complment 2 est employe pour exprimer les nombres
binaires signs parce que, comme nous le verrons, on parvient grce elle
soustraire en effectuant en ralit une addition. Cela n'est pas ngligeable
dans le cas des ordinateurs, puisque avec les mmes circuits, nous parve-
nons soustraire et additionner.
Dans de nombreuses situations, le nombre de bits est fix par la lon-
gueur des registres qui contiennent les nombres binaires, d'o la ncessit
d'ajouter des 0 pour avoir le nombre de bits requis:
Comme exemple nous allons exprimer +2 au moyen de 5 bits:
3-3.4 Cas spcial de la notation en complment 2
Quand un nombre sign a 1 comme bit de signe et que des 0 comme bits
de grandeur, son quivalent dcimal est -2
N-1
, o N est le nombre de bits
de la reprsentation signe. Par exemple:
1000 = -2
4-1
= -2
3
= -8
10000 = -2
5-1
= -2
4
= -16
100000 = -2
6-1
= -2
5
= -32
et ainsi de suite.
Nous pouvons analyser en dtails une reprsentation en complment
2 sur 8 bits. La valeur ngative la plus grande est :
10000000 =-2
8-1
=-2
7
=-128
La valeur positive la plus grande est :
01111111 =|10000000| - 1 =-2
7
-1 =127
Nous serions tent de conclure que le nombre total de valeurs exprime
est de 255 valeurs (128 +127). Cest sans compter le nombre 0 exprim
par "00000000". Nous avons donc bien 256 valeurs diffrentes possibles. Par
consquent, on peut affirmer que l'intervalle complet des valeurs que l'on
peut crire en complment 2 au moyen de N bits :
Il y a un total de 2
N+1
valeurs diffrentes, en comptant le zro.
Dans le cas gnral dune reprsentation sur N bits, nous avons :
nombre de valeurs diffrentes 2
N
+2 = 00010
11101 (complment 1)
+ 1 (ajouter 1)
11110 (complment 2 du chiffre +2 sur 5 bits)
Electronique numrique Cours Systme numriques, Tome 1
27
reprsentation du zro : 00000000
valeur ngative 10000000 =-128
valeur positive 01111111 =+127
Do la plage de variation des nombres entiers signs avec une repr-
sentation en complment 2 sur N bits :
-2
N-1
+(2
N-1
-1)
3-4 Addition en complment 2
La notation en complment 2 et la notation en complment 1 sont
trs semblables. Toutefois, la notation en complment 2 jouit gnrale-
ment de certains avantages quand vient le temps de construire des circuits.
Nous allons maintenant tudier comment les machines numriques addi-
tionnent et soustraient quand les nombres ngatifs sont crits dans la nota-
tion en complment 2. Dans tous les cas tudis, il est important que vous
remarquiez que le bit de signe de chaque nombre est trait sur le mme pied
que les bits de la partie grandeur.
3-4.1 Cas 1: deux nombres positifs
L'addition de deux nombres positifs est immdiate. Soit l'addition de +9
et +4:
Remarquez que les bits de signe du cumulande et du cumulateur sont 0
et que celui de la somme est aussi 0, ce qui indique un nombre positif. No-
tez aussi qu'on a fait en sorte que le cumulande et le cumulateur aient le
mme nombre de bits. Il faut toujours s'assurer de cela dans la notation en
complment 2.
3-4.2 Cas 2: nombre positif et nombre ngatif plus petit
Soit l'addition de +9 et de -4. Rappelez-vous que -4 est exprim dans la
notation en complment 2. Donc +4 (00100) doit tre converti en -4
(11100)
+9 0 1001 (cumulande)
+4 0 0100 (cumulateur)
+13 0 1101 (Somme)
Bit de signe
+9 0 1001 (cumulande)
- 4 1 1100 (cumulateur)
+5 1 0 0101
Bit de signe
Chapitre 3: Arithmtique binaire Version du 16 septembre 2010
28
Dans ce cas-ci, le bit de signe du cumulateur est 1. Remarquez que les
bits de signe sont aussi additionns. En fait, un report est produit au mo-
ment de l'addition du dernier rang. Ce report est toujours rejet d'o la som-
me finale de 00101, soit le nombre dcimal +5.
3-4.3 Cas 3: nombre positif et nombre ngatif plus grand.
Soit l'addition de -9 et de +4:
Dans ce cas-ci le bit de signe de la somme est 1, ce qui indique un nom-
bre ngatif. Comme la somme est un nombre ngatif, la rponse est le com-
plment 2 de la grandeur exacte. Donc 1011 est en ralit le complment
2 de la somme. Pour trouver la grandeur exacte de la somme, on doit
prendre le complment 2 de 1011, ce qui donne 0101 (5); la rponse est
donc 11011 =-5.
On peu galement vrifier le rsultat en additionnant le poids de chaque
bit, avec le bit de signe qui vaut -2
N
, o N est le nombre de bits de gran-
deur.
-12
4
+12
3
+02
2
+12
1
+12
0
=-16 +8 +2 +1 =-5
3-4.4 Cas 4: deux nombres ngatifs
Le rsultat dfinitif est de nouveau ngatif (-13).
3-4.5 Cas 5: nombres gaux et opposs
Le rsultat est videmment +0, comme on s'y attendait.
3-5 Soustraction: complment 2
Une opration de soustraction qui porte sur des nombres exprims dans
la notation en complment 2 est en ralit une opration d'addition qui
- 9 10111
+4 00100
- 5 11011
- 9 10111
- 4 11100
-13 110011
ce report nest pas pris en considration
-9 10111
+9 01001
0 100000
ce report nest pas pris en considration
Electronique numrique Cours Systme numriques, Tome 1
29
diffre peu des cas examins prcdemment. Quand on soustrait un nom-
bre binaire (le diminuteur) d'un autre nombre (le diminuande), la marche
suivre est comme suit:
a. Prendre le complment 2 du diminuteur, y compris son bit de
signe. Si ce dernier est un nombre positif, il deviendra un nombre
ngatif dans la notation en complment 2. Si le diminuteur est
un nombre ngatif, la complmentation 2 en fera un nombre
positif crit en grandeur exacte. Autrement dit, nous changeons
le signe du diminuteur.
b. Aprs avoir complment 2 le diminuteur, on l'additionne au
diminuande. Le diminuande conserve sa forme initiale. Le rsul-
tat de cette addition reprsente la diffrence recherche. Le bit de
signe de la diffrence indique si l rponse est positive ou nga-
tive et si on est en notation binaire exacte ou en notation en com-
plment 2.
c. Rappelez-vous que les deux nombres doivent avoir le mme
nombre de bits.
Examinons la soustraction suivante: +9 - (+4).
diminuande (+9) 01001
diminuteur (+4) 00100
Changez le diminuteur pour sa version en complment 2 (11100), ce
qui reprsente 4. Maintenant additionnez-le au diminuande.
Quand on complmente 2 le diminuteur, on obtient en ralit -4, de
sorte qu'on additionne +9 -4, ce qui est quivalent soustraire de +9 le
nombre +4. En dfinitive, toute opration de soustraction se rsume une
addition lorsqu'on utilise la notation en complment 2. Cette caractristi-
que de la notation en complment 2 explique pourquoi c'est la mthode
la plus utilise, puisqu'on peut additionner et soustraire en utilisant les m-
mes circuits.
3-5.1 Dpassement (overflow)
Dans chacun des exemples d'addition et de soustraction que l'on vient
d'tudier, les nombres que l'on a additionns taient constitus la fois d'un
bit de signe et de 4 bits de grandeur. Les rponses aussi comportaient un
bit de signe et 4 bits de grandeur. Tout report fait sur le bit de sixime rang
tait rejet. Dans tous les cas tudis, la grandeur de la rponse ne dpassait
jamais la capacit des 4 bits.Voyons l'addition de +9 +8.
+9 01001
- 4 11100
+5 100101
La retenue est rejete, le rsultat est donc 00101 =+5
Chapitre 3: Arithmtique binaire Version du 16 septembre 2010
30

Le bit de signe de la rponse est celui d'un nombre ngatif, ce qui est
manifestement une erreur. La rponse devrait tre +17. tant donn que la
grandeur est 17, il faut plus de 4 bits pour l'exprimer, et il y a donc un d-
passement (overflow) sur le rang du bit de signe. Une condition de dpas-
sement donne toujours lieu un rsultat inexact, et on la dtecte en
examinant le bit de signe du rsultat et en le comparant aux bits de signe
des nombres additionns. En additionnant deux nombres de signes diff-
rents, il ne peut pas y avoir de dpassement, par contre lorsqu'on additionne
deux nombres de mme signe, on a un dpassement si le signe du rsultat
est diffrent du signe des deux nombres additionns. Dans un ordinateur,
il existe un circuit spcialement conu pour dtecter les conditions de d-
bordement et pour indiquer que la rponse est fausse.
3-5.2 Multiplication de nombres binaires
On multiplie les nombres binaires de la mme faon qu'on multiplie les
nombres dcimaux. En ralit, le processus est plus simple car les chiffres
du multiplicateur sont toujours 0 ou 1, de sorte qu'on multiplie toujours par
0 ou par 1. Voici un exemple de multiplication de nombres binaires non si-
gns.
Dans cet exemple, le multiplicande et le multiplicateur sont en notation
binaire exacte et il n'y a pas de bit de signe. La marche suivre est exacte-
ment la mme que pour les multiplications dcimales. D'abord, examinons
le bit de poids le plus faible du multiplicateur; dans notre exemple il s'agit
d'un 1. Ce 1 multiplie le multiplicande pour donner 1001, c'est notre pre-
mier produit partiel. Ensuite, examinons le deuxime bit du multiplicateur.
Il s'agit d'un 1, ce qui donne le second produit partiel. Notez qu'en crivant
le second produit partiel on le dcale d'un rang vers la gauche par rapport
au premier. Le troisime bit du multiplicateur est 0 et notre troisime pro-
duit partiel est 0000; ce troisime produit est aussi dcal d'un rang vers la
gauche par rapport au produit partiel prcdent. Le quatrime bit du mul-
tiplicateur est 1, de sorte que le dernier produit partiel est 1001, que l'on
+9 0 1001
+8 0 1000
1 0001
Bit de signe
1 0 0 1 multiplicande =9
10
1 0 1 1 multiplicateur =11
10
1 0 0 1
1 0 0 1 produits partiels
0 0 0 0
1 0 0 1
1 1 0 0 0 1 1 produit final =99
10
Electronique numrique Cours Systme numriques, Tome 1
31
crit nouveau dcal d'un rang vers la gauche. On additionne ensuite les
quatre produits partiels pour obtenir le produit final.
La plupart des machines numriques ne peuvent additionner que deux
nombres binaires la fois. C'est la raison pour laquelle les produits partiels
d'une multiplication ne peuvent tre additionns ensemble en une seule
fois. Ils sont plutt additionns deux par deux, c'est--dire que le premier
est additionn au second, que leur somme est additionne au troisime et
ainsi de suite.
3-5.3 Multiplication en complment 2
Dans les machines qui utilisent la notation en complment 2, la mul-
tiplication est effectue de la faon dcrite ci-dessus quand le multiplican-
de et le multiplicateur sont exprims en notation binaire exacte. Si les deux
nombres multiplier sont positifs, ils sont dj dans cette notation et ils sont
multiplis tels quels. Le produit rsultant est videmment positif et son bit
de signe est 0. Quand les deux nombres sont ngatifs, ils sont donc crits
dans la notation en complment 2. Chacun de ces nombres est compl-
ment 2 pour obtenir un nombre positif et ce sont les rsultats de ces com-
plmentations qu'on multiplie. Le produit est un nombre positif dont le bit
de signe est 0.
Quand un des nombres est positif et que l'autre est ngatif, le nombre
ngatif est d'abord complment 2 pour obtenir une grandeur positive. Le
produit est exprim selon la notation en grandeur exacte. Cependant, le
produit doit tre ngatif car les nombres multiplier sont de signes oppo-
ss. Par consquent, on complmente 2 le produit et on ajoute le bit de
signe 1.
3-6 Division binaire
La division d'un nombre binaire (le dividende) par un autre (le diviseur)
est identique la division de deux nombres dcimaux. En ralit, la divi-
sion en binaire est plus simple puisque pour dterminer combien de fois le
diviseur entre dans le dividende, il n'y a que 2 possibilits 0 ou 1.
Chapitre 3: Arithmtique binaire Version du 16 septembre 2010
32
Voici deux exemples de divisions:
Dans la plupart des ordinateurs modernes, les soustractions qui ont lieu
durant une opration de division sont gnralement des soustractions avec
complment 2, c'est--dire on complmente 2 le soustracteur puis on ef-
fectue l'addition.
La division de nombres signs s'effectue de la mme faon que la mul-
tiplication. Les nombres ngatifs sont complments pour obtenir des
nombres positifs puis la division est effectue. Si le dividende et le diviseur
sont de signes opposs, le quotient est complment 2 pour obtenir un
nombre ngatif, puis on lui ajoute un bit de signe de 1. Si le dividende et le
diviseur ont le mme signe, le quotient est laiss sous sa forme positive et
on lui ajoute un bit de signe de 0.
3-7 Addition en BCD
De nombreux ordinateurs reprsentent les nombres dcimaux au moyen
du code BCD. Rappelons que ce code fait correspondre chaque chiffre
dcimal un code de 4 bits compris entre 0000 et 1001. L'addition de nom-
bres dcimaux exprims sous forme BCD se comprend mieux en tudiant
deux cas qui peuvent survenir quand on additionne deux chiffres dci-
maux.
3-7.1 Somme gale ou infrieure 9
Additionnons 5 4 en utilisant pour chacun leur reprsentation BCD
L'addition est effectue comme une addition binaire normale et la som-
me est 1001, soit le code BCD de 9. Voici un autre exemple: additionnons
45 33.
1 0 0 1 11
0 1 1 011
0 0 1 1 (9/3 =3)
1 0 1 0 ,0 100
1 0 0 10,1
0 0 1 0 0 (10/4 =2,5)
1 0 0
5 0101 BCD de 5
+ 4 + 0100 BCD de 4
9 1001 BCD de 9
Electronique numrique Cours Systme numriques, Tome 1
33
Dans cet exemple. Les codes de 4 bits associs 5 et 3 sont addition-
ns selon les rgles binaires pour donner 1000, ce qui est le code BCD de
8. De mme, l'addition des chiffres dcimaux de second rang donne en bi-
naire 0 111, ce qui est le code BCD de 7. Le total est 0111 1000, soit le
code BCD de 78.
Dans les exemples prcdents, aucune somme de deux chiffres dci-
maux ne dpassait 9; donc, il n'y a pas eu de reports dcimaux. Dans cette
situation l'addition BCD est un processus direct quivalent l'addition bi-
naire.
3-7.2 Somme suprieure 9
Additionnons 6 et 7 en BCD:
La somme 1101 n'existe pas dans le code BCD; il s'agit de l'une des six
reprsentations codes de 4 bits interdites ou non valides. Cette reprsen-
tation est apparue parce qu'on a additionn deux chiffres dont la somme d-
passe 9. Dans un tel cas, il faut corriger la somme en additionnant 6 (0110)
afin de prendre en considration le fait qu'on saute six prsentations codes
non valides:
Comme on le montre ci-dessus, l'addition de 0110 la somme non va-
lide donne la reprsentation BCD exacte. Notez qu'un report a lieu sur le
chiffre dcimal de deuxime rang. Il est obligatoire d'additionner 0110
quand la somme de deux chiffres dcimaux dpasse 9.
Voyons un autre exemple: additionnez 47 35 en BCD:
45 0100 0101 BCD de 45
+ 33 + 0011 0011 BCD de 33
78 0111 1000 BCD de 78
6 0110 BCD de 6
+ 7 + 0111 BCD de 7
13 1101 Code invalide en BCD
6 0110 BCD de 6
+ 7 + 0111 BCD de 7
13 1101 Somme non valide en BCD
+ 0110 Additionner 6 pour corriger
0001 0011 BCD de 13
47 0100 0111 BCD de 47
+ 35 + 0011 0101 BCD de 35
82 0111 1100 Somme non valide dans le 1er chiffre
+ 1 0110 Additionner 6 pour corriger
1000 0010 Somme BCD exacte
Chapitre 3: Arithmtique binaire Version du 16 septembre 2010
34
L'addition des codes de 4 bits pour 7 et 5 produit une somme non valide
que l'on corrige en additionnant 0110. Notez que ceci produit un report de
1, qui est ajout la somme BCD des chiffres du second rang.
Rcapitulation de l'addition en BCD:
a. Addition binaire ordinaire des reprsentations BCD de tous les
rangs.
b. Pour les rangs o la somme est gale ou infrieure 9, aucune
correction ne s'impose et la somme est une reprsentation BCD
valide.
c. Quand la somme des deux chiffres est suprieure 9, on ajoute
une correction de 0110 pour obtenir la reprsentation BCD
exacte. Il se produit toujours un report sur le chiffre de rang
immdiatement gauche, soit lors de l'addition initiale (premire
tape) ou de l'addition de la correction.
35
Chapitre 4
Portes logiques et algbre boolenne
Tous les circuits numriques fonctionnent en mode binaire, c'est--dire
un mode dans lequel les signaux ne peuvent prendre que deux valeurs, soit
0 ou soit 1. Les valeurs 0 et 1 correspondent des plages de tensions
dfinies l'avance. Cette caractristique des circuits logiques nous permet
de recourir l'algbre de Boole pour l'analyse et la conception de systmes
numriques. Dans ce chapitre, nous tudierons les portes logiques, qui
constituent les blocs lmentaires des circuits logiques et nous verrons
comment il est possible de dcrire leur fonctionnement grce l'algbre
boolenne. Aussi, nous vous apprendrons comment on russit construire
des circuits logiques en combinant les portes et comment l'algbre de Boo-
le parvient dcrire et analyser ces derniers.
4-1 Dfinitions
Nous allons commencer par donner quelques dfinitions.
Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010
36
4-1.1 Les tats logiques
L'algbre boolenne se distingue principalement de l'algbre ordinaire
par des constantes et des variables qui ne peuvent prendre que les deux va-
leurs possibles 0 et 1. Une variable boolenne est une grandeur qui peut,
des moments diffrents, avoir la valeur 1 ou 0. Les variables boolennes
servent souvent reprsenter un tat dun systme. Nous pouvons dire
quune lampe est soit allume, soit teinte. Nous traduirons cela en indi-
quant que la lampe est soit 1 (pour allume) ou soit 0 (pour teinte).
Nous pouvons faire de mme avec un interrupteur qui est soit ouvert (0)
ou soit ferm (1).
Ainsi, les valeurs boolennes 0 et 1 ne reprsentent pas des nombres
rels mais plutt l'tat logique d'une variable. Dans le domaine de la logi-
que numrique, on utilise d'autres expressions qui sont synonymes de 0 et
1. Certaines de ces expressions sont reprsentes dans le Tableau4-1 ci-
dessous.
Tableau4-1: Diverses appellations pour les niveaux logiques
4-1.2 Les variables logiques
Une variable logique est une grandeur qui ne peut prendre que les deux
tats logiques. Ils s'excluent mutuellement. Nous les symboliserons par 0
ou 1.
4-1.3 Les fonctions logiques
Une fonction logique est une variable logique dont la valeur dpend
d'autres variables.
L'algbre de Boole est un outil qui permet d'exprimer les effets qu'ont
les divers circuits numriques sur les variables logiques et de les manipuler
en vue de dterminer la meilleure faon de matrialiser une certaine fonc-
tion logique. Parce qu'il n'y a que deux valeurs possibles, l'algbre boolen-
ne se manipule plus aisment que l'algbre ordinaire. En algbre
boolenne, il n'y a pas de fraction, de partie dcimale, de nombre ngatif,
de racine carre, de racine cubique, de logarithmes, de nombre imaginai-
re... En fait, dans cette algbre, on ne retrouve que trois oprations lmen-
taires, voir ci-aprs.
Niv. logique 0 Niv. logique 1
Faux Vrai
Arrt Marche
Bas Haut
Non Oui
Ouvert Ferm
Electronique numrique Cours Systme numriques, Tome 1
37
a. La fonction logique OU (or)
Nous utiliserons le symbole (#)
Cette fonction est trs souvent reprsente par le symbole (+)
b. La fonction logique ET (and)
Nous utiliserons le symbole (.)
c. La fonction logique dinversion NON (not)
Nous utiliserons le symbole ( )
4-2 Fonctions logiques une et deux variables
Le fait que les variables d'entres aient un nombre de valeurs possibles
fini implique l'existence d'un nombre fini de fonctions pour un nombre
donn de variables.
Nous allons commencer par tudier les fonctions logiques possibles
avec une variable puis avec deux variables. Ltude de ces deux cas nous
permettra de dcouvrir tous les oprateurs de base de lalgbre de Boole
donc des systmes logiques.
4-2.1 Fonctions dune variable
Une variable a deux tats logiques ( 0 et 1), nous obtenons ainsi 4 fonc-
tions possibles avec cette unique variable (2
2
). La figure4- 1 nous donne
le tableau des 4 fonctions de une variable avec leur quation logique.
Figure 4- 1: Fonctions dune variable
Ltude des fonctions dune variable nous fait dcouvrir la fonction
NON (not). Cette fonction est prsente dans le paragraphe L'opration
NON (NOT), page42.
Variable Fonctions F1.0 =constante =0
A F1.0 F1.1 F1.2 F1.3 F1.1 = A
0 0 0 1 1
F1.2 =non A =not A =
1 0 1 0 1 F1.3 =constante =1
A
Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010
38
4-2.2 Fonctions de deux variables
Dans le cas de deux variables, nous avons 4 combinaisons possibles.
Nous obtenons ainsi 16 fonctions possibles avec ces deux variables (2
4
).
La figure4- 2 nous donne le tableau des 16 fonctions de deux variables
avec leur quation logique.
Figure 4- 2: Fonctions de deux variables
Nous obtenons les fonctions suivantes :
F2.0 =constante =0
F2.1 =A ET B =A . B , voir paragraphe 4-5 page 41
F2.2 =A ET NON B =
F2.3 =A
F2.4 =NON A ET B =
F2.5 =B
F2.6 =(NON A ET B) OU (A ET NON B) =
cette fonction se nomme OU-exclusif, voir paragraphe 4-8.1 page 44
F2.7 =A OU B =A #B, voir paragraphe 4-4 page 40
Les fonctions F2.8 F2.F sont respectivement les inverses des fonctions
F2.7 F2.0. Parmi ses fonctions, nous noterons au passage :
F2.8 =NON F2.7 =NON (A OU B) = voir 4-7.1 page 42
F2.9 =NON F2.6 =NON (A OU-exclusif B) = , voir 4-8.2 page 45
F2.A =NON F2.5 =NON B =
F2.B =NON F2.4
F2.C =NON F2.3 =NON A =
F2.D =NON F2.2
F2.E =NON F2.1 =NON(A ET B) = , voir 4-7.2 page 43
F2.F =NON F2.0 =constante =1
Ltude des fonctions de deux variables nous fait dcouvrir les fonc-
tions de bases ET et OU. Nous voyons aussi les fonctions composes
NON-ET, NON-OU et la fonction particulire OU-exculsive. Pour chaque
fonction, il est indiqu le numro du paragraphe qui prsente celle-ci.
Variables Fonctions F2.x
A B 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
A B
A B
A B #A B A B =
A #B A B =
A B
B
A
A B A #B =
Electronique numrique Cours Systme numriques, Tome 1
39
4-3 Tables de vrit
De nombreux circuits logiques possdent plusieurs entres mais seule-
ment une sortie. Une table de vrit nous fait connatre la raction d'un cir-
cuit logique (sa valeur de sortie) aux diverses combinaisons de niveaux
logiques appliqus aux entres. La figure4- 3 nous montre des tables de
vrit deux, trois et quatre colonnes d'entres.
Figure 4- 3: Tables de vrit: a) table deux entres; b) table trois entres; c) table
quatre entres.
Dans chacune de ces tables, toutes les combinaisons possibles de 0 et de
1 pour les entres (D, C, B, A) apparaissent gauche, tandis que le niveau
logique rsultant de la sortie, X, est donn droite. Pour le moment, il n'y
a que des "?" dans ces colonnes, car les valeurs de sortie sont diffrentes
pour chaque type de circuit.
Notez que dans la table de vrit deux entres il y a quatre lignes, que
dans celle trois entres il y a huit lignes et que dans la table quatre en-
tres, il y en a seize. Pour une table de N entres, il y a 2
N
lignes. De plus,
vous remarquez sans doute que la succession des combinaisons correspond
la suite du comptage binaire, de sorte que la dtermination de toutes les
combinaisons est directe et qu'on ne peut pas en oublier.
B A X C B A X D C B A X
0 0 ? 0 0 0 ? 0 0 0 0 ?
0 1 ? 0 0 1 ? 0 0 0 1 ?
1 0 ? 0 1 0 ? 0 0 1 0 ?
1 1 ? 0 1 1 ? 0 0 1 1 ?
a) 1 0 0 ? 0 1 0 0 ?
1 0 1 ? 0 1 0 1 ?
1 1 0 ? 0 1 1 0 ?
1 1 1 ? 0 1 1 1 ?
b) 1 0 0 0 ?
1 0 0 1 ?
1 0 1 0 ?
1 0 1 1 ?
1 1 0 0 ?
1 1 0 1 ?
1 1 1 0 ?
1 1 1 1 ?
c)
Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010
40
4-4 L'opration OU (OR)
Soit deux variables logiques indpendantes, A et B. Quand on combine
A et B au moyen de la fonction logique OU, le rsultat X satisfait lexpres-
sion suivante :
X =A #B
Dans cette quation, le signe #indique un OU logique. La fonction de
sortie est active si A OU B est actif. Le fonctionnement de cet oprateur
est dfini par la table de vrit de la figure4- 4.
Figure 4- 4: a) Table de vrit dfinissant l'opration OU; b) symbole de circuit servant
reprsenter une porte OU deux entres.
Dans de nombreuses littratures, loprateur OU et reprsent par le
symbole de laddition.
X =A +B
Nous nutiliserons pas cette symbolique afin de ne pas confondre lop-
rateur logique OU avec loprateur arithmtique daddition (+). Dans la
suite de ce manuel nous utiliserons le symbole #ou or pour loprateur lo-
gique OU.
4-4.1 La porte OU (OR)
Une porte OU deux entres est un circuit dont la sortie est active si
lune ou lautre des entres est actives. La figure4- 4 nous fait voir le sym-
bole utilis pour reprsenter une porte OU deux entres.
De manire gnrale, la fonction de sortie dune porte OU n entres
est active (niveau 1) si une seule entre est active (niveau 1). La fonction
de sortie est inactive (niveau 0) si toutes les entres sont inactives (niveau
0).
B A X=A #B
0 0 0
0 1 1
1 0 1
1 1 1
a) b) porte OU (OR)
A
B
X=A # B

Electronique numrique Cours Systme numriques, Tome 1
41
4-5 L'OPRATION ET (AND)
Soit deux variables logiques indpendantes, A et B. Quand on combine
A et B au moyen de la fonction logique ET, le rsultat X s'exprime symbo-
liquement par lexpression suivante :
X =A B
Dans cette expression, le signe signifie l'opration boolenne ET, dont
les rgles d'opration sont donnes dans la table de vrit de la figure4- 5.
Figure 4- 5: a) Table de vrit dfinissant l'opration ET; b) symbole d'une porte ET
deux entres.
D'aprs cette table, vous pouvez facilement dduire que la fonction lo-
gique ET correspond la multiplication en binaire. Quand A ou B est 0, le
produit est nul; quand A et B sont 1, leur produit est 1. Il nous est donc pos-
sible d'affirmer que dans l'opration ET la rponse est 1 si et seulement si
toutes les entres sont 1, et qu'elle est 0 dans tous les autres cas.
4-5.1 La porte ET (AND)
La figure4- 5 nous fait voir une porte ET deux entres. La sortie de
cette porte est gale au ET logique des deux entres, c'est--dire X =AB.
Exprime autrement, la porte ET est un circuit logique qui active sa sortie
(niveau 1) seulement lorsque toutes ses entres sont actives (niveau 1).
Dans tous les autres cas, la sortie de la porte ET est inactive (niveau 0)
De manire gnrale, la fonction de sortie dune porte ET n entres est
active (niveau 1) uniquement lorsque toutes les entres sont actives (ni-
veau 1). La sortie dune porte ET est inactive (niveau 0) si une seule des
entres est inactive (niveau 0).
B A X =AB
0 0 0
0 1 0
1 0 0
1 1 1
a) b) porte ET (AND)
A
B
X=AB

Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010
42
4-6 L'opration NON (NOT)
L'opration NON, contrairement aux oprations ET et OU, ne concerne
qu'une variable d'entre. Par exemple, si la variable A est soumise une
opration NON, le rsultat X est donn par l'expression:
o le trait de surlignement reprsente l'opration NON. L'opration
NON porte galement le nom d'inversion ou de complmentation. On trou-
ve un autre signe pour indiquer une inversion: il s'agit de point dexclama-
tion (!). Donc :

4-6.1 Le circuit INVERSEUR (NOT)
On peut voir la figure4- 6 le symbole d'un circuit NON, appel plus
couramment inverseur. Un tel circuit n'a toujours qu'une entre, et sa sortie
prend le niveau logique oppos du niveau logique de l'entre.
Figure 4- 6: a) La table de vrit et b) le symbole du circuit NON.
4-7 Les portes NON-OU (NOR) et NON-ET (NAND)
En technique numrique, on retrouve trs souvent deux autres types de
portes logiques: la porte NON-OU (NOR) et la porte NON-ET (NAND).
En ralit, ces portes correspondent des combinaisons d'oprations l-
mentaires ET, OU et NON, et il est relativement facile de les dcrire au
moyen des fonctions de l'algbre boolenne que vous connaissez dj.
4-7.1 La porte NON-OU (NOR)
On peut voir la figure4- 7 le symbole d'une porte NON-OU deux
entres. Vous constaterez que c'est le symbole d'une porte OU sauf qu'il y
a un petit rond la pointe. Ce petit rond correspond une opration d'in-
version. Ainsi, la porte NON-OU a un fonctionnement analogue une por-
X A =
!A A =

0 1
1 0
a) b) porte NON (NOT)
A
A X =

A X A =
Electronique numrique Cours Systme numriques, Tome 1
43
te OU suivie d'un INVERSEUR. L'expression de sortie d'une porte NON-
OU est .
La table de vrit montre la figure4- 7 nous apprenons que la sortie
d'une porte NON-OU est exactement l'inverse de celle d'une porte OU pour
toutes les combinaisons des entres.
Figure 4- 7: a) La table de vrit et b) le symbole du circuit NON-OU (NOR).
De manire gnrale, la fonction de sortie dune porte NON-OU n en-
tres est active (niveau 1) uniquement lorsque toutes les entres sont inac-
tives (niveau 0). La sortie dune porte NON-OU est inactive (niveau 0) si
une seule des entres est active (niveau 1).
Par De Morgan (voir paragraphe 4-12.4) nous pouvons montrer que la
porte NOR est quivalent :
4-7.2 La porte NON-ET (NAND)
On peut voir la figure4- 8 le symbole d'une porte NON-ET deux en-
tres. Vous voyez que c'est le symbole d'une porte ET sauf qu'il y a un petit
rond la pointe. Encore une fois, ce petit rond correspond une opration
d'inversion. Ainsi, la porte NON-ET a un fonctionnement analogue une
porte ET suivie d'un INVERSEUR. L'expression de sortie d'une porte
NON-ET est .
La table de vrit montre la figure4- 8 nous apprend que la sortie
d'une porte NON-ET est exactement l'inverse de celle d'une porte ET pour
toutes les combinaisons des entres.


0 0 1
0 1 0
1 0 0
1 1 0
a) b) porte NON-OU (NOR)
X A#B =
B A X A#B =
A
B
B A X # =

X A#B A B = =
A
B
X = A . B
X A B =
Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010
44
Figure 4- 8: a) La table de vrit et b) le symbole du circuit NON-ET (NAND).
De manire gnrale, la fonction de sortie dune porte NON-ET n en-
tres est active (niveau 1) si une seule des entres est inactive (niveau 0).
La sortie dune porte NON-ET est inactive (niveau 0) uniquement lorsque
toutes les entres sont actives (niveau 1).
Par De Morgan (paragraphe 4-12.4) nous pouvons montrer que la porte
NAND est quivalent :
4-8 Circuits OU-exclusif (XOR) et NON-OU-exclusif
(XNOR)
Deux circuits logiques spciaux qui interviennent souvent dans les sys-
tmes numriques: le circuit OU-exclusif et le circuit NON-OU-exclusif.
4-8.1 La porte OU-exclusif (XOR)
La sortie d'une porte OU-exclusif est au niveau haut seulement lorsque
les deux entres sont des niveaux logiques diffrents. Une porte OU-ex-
clusif n'a toujours que deux entres. On veut dire par l qu'il n'existe pas de
portes OU-exclusif trois ou quatre entres. Ces deux entres sont combi-
nes pour que . On abrge cette expression ainsi:

On peut voir sur la figure4- 9 la table de vrit ainsi que le symbole
d'une porte OU-exclusif.


0 0 1
0 1 1
1 0 1
1 1 0
a) b) porte NON-ET (NAND)
B A X A B =

A
B
X = A B
X A B A #B = =

A
B
X = A # B
X AB #AB =
X A B =
Electronique numrique Cours Systme numriques, Tome 1
45
Figure 4- 9: a) Table de vrit dfinissant l'opration OU-exclusif; b) symbole d'une porte
OU-exclusif.
De manire gnrale, la fonction de sortie dune porte OU-exclusif in-
dique la diffrence entre les deux signaux dentres. La sortie est active
(niveau 1) si ltat logique des entres est diffrent.
4-8.2 NON-OU-exclusif (XNOR)
Le circuit NON-OU-exclusif a un fonctionnement exactement oppos
celui du OU-exclusif. La sortie d'une porte NON-OU-exclusif est au ni-
veau haut seulement lorsque les deux entres sont des nivaux logiques
identiques. On peut voir la figure4- 10 sa table de vrit ainsi que son
symbole logique. L'expression de ce dernier est : . On abr-
ge cette expression ainsi:
Figure 4- 10: a) Table de vrit dfinissant l'opration NON-OU-exclusif; b) symbole
d'une porte NON-OU-exclusif.
De manire gnrale, la fonction de sortie dune porte NON-OU-exclu-
sif indique lgalit entre les deux signaux dentres. La sortie est active
(niveau 1) si ltat logique des entres est identique. Le fonctionnement de
cette porte correspond un comparateur un bit.
B A
0 0 0
0 1 1
1 0 1
1 1 0
a) b) porte OU-exclusif (XOR)
X A B =
A
B
B A X =

A B
0 0 1
0 1 0
1 0 0
1 1 1
a) b) porte NON-OU-exclusif (XNOR)
X AB #AB =
X A B =
X A B =
A
B
B A X =

Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010
46
Loprateur NON-OU-exclusif a une proprit particulire. Linversion
de la sortie peut tre reporte sur lune ou lautre des entres, soit :
Nous pourrons dmontrer cette proprit avec lalgbre de Boole.
4-9 Symbolique des oprations de bases
Pour reprsenter les oprations de bases, nous recourons un schma
dans lequel les oprateurs logiques seront remplacs par des symboles.
Nous allons utiliser, dans le cadre de ce cours, des symboles CEI (norme
europenne) sauf pour les oprateurs de bases o nous utiliserons les sym-
boles MIL (norme amricaine) qui sont plus lisible. Par contre nous utili-
serons la symbolique CEI pour indiquer linversion.
Figure 4- 11: Symbolique des fonctions NOT
Le grand triangle marque l'amplification, le petit triangle l'inversion. On
peut remarquer que l'inversion peut prcder ou suivre l'amplification.
Pour les symboles 1.e et 1.f, le rond marque l'inversion. Nous utiliserons
de prfrence les symboles 1.c ou 1.d. Pour les symboles CEI, l'amplifica-
tion se marque par un triangle.
A B A B A B = =
1
A
1
A
1.a
1.b
Symboles CEI
A
A
1.c
1.d
Symboles du cours
A
A
1.e
1.f
Symboles MIL
NON ou NOT
A A A
A A A
Electronique numrique Cours Systme numriques, Tome 1
47


&
A
F = A B
1
A
F = A B
1.a
1.b
Symboles CEI
A
F = A B
A
1.c
1.d
Symboles du cours
1.e
1.f
Symboles MIL
ET ou AND
B
B
B
B
F = A B
A
B
F = A B
A
B
F = A B
1
A
F = A # B
&
A
F = A # B
1.a
1.b
Symboles CEI
A
A
1.c
1.d
Symboles du cours
1.e
1.f
Symboles MIL
OU ou OR
B
B
B
B
F = A # B
A
B
A
B
F = A # B
F = A # B
F = A # B
&
A
1
A
1.a
1.b
Symboles CEI
A
A
1.c
1.d
Symboles du cours
1.e
1.f
Symboles MIL
NON-ET ou NAND
B
B
B
B
A
B
A
B
F = A
.
B F = A
.
B F = A
.
B
F = A
.
B F = A
.
B
F = A
.
B
1
A
&
A
1.a
1.b
Symboles CEI
A
A
1.c
1.d
Symboles du cours
1.e
1.f
Symboles MIL
NON-OU ou NOR
B
B
B
B
A
B
A
B
F = A # B
F = A# B F = A # B
F = A # B
F = A # B
F = A # B
Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010
48

Figure 4- 12: Symbolique des fonctions logiques de base
4-10 Mise sous forme algbrique des circuits logiques
Tout circuit logique, quelle que soit sa complexit, peut tre dcrit au
moyen des oprations boolennes dj dcrites parce que la porte ET, la
porte OU et la porte NON sont les circuits constitutifs lmentaires des
systmes numriques. A titre d'exemple, considrons le circuit de la
figure4- 13 comprenant trois entres A, B et C et une seule sortie X. En
recourant l'expression boolenne de chacune des portes, on peut facile-
ment trouver l'quation correspondant la sortie.
La sortie de la porte ET a pour expression AB; cette combinaison est
une entre de la porte OU dont l'autre entre est le signal C. Cette dernire
porte a pour effet d'additionner logiquement ses entres, ce qui donne com-
me expression de sortie X =AB #C. (Cette dernire quation aurait aussi
bien pu s'crire x =C #AB, puisque l'ordre des termes dans une fonction
OU n'a pas d'importance.)
Il est convenu que dans une expression contenant des oprateurs ET et
OU, ce sont les oprateurs ET qui sont appliqus en premier, sauf s'il y a
des parenthses; dans ce cas, il faut valuer avant toute chose l'expression
entre parenthses. Cette rgle dterminant l'ordre des oprations est la
mme que celle en vigueur dans l'algbre courante.
Figure 4- 13: Un circuit et son quation boolenne
Voici la description en VHDL synthtisable du circuit de la figure4- 13,
soit :
X <=(A and B) or C ;
=1
A
1.a
Symboles CEI
A
1.b
Symboles du cours Symboles MIL
OU EXCLUSIF ou XOR
B
B
F = A B
F = A B
A
1.c
B
F = A B
A
B
C
C B A X # =

Electronique numrique Cours Systme numriques, Tome 1
49
Comme exemple supplmentaire, considrons le circuit de la figure4-
14. Le rsultat la porte OU est simplement A #B. La sortie de cette porte
aboutit l'entre de la porte ET, alors que l'autre entre de cette dernire
reoit le signal C. L'expression de la sortie de la porte ET est donc
X =(A #B)C. Notez l'emploi des parenthses pour indiquer que lopra-
teur OU sapplique dabord sur A et B. Ensuite loprateur ET est appli-
quer sur la sortie de la porte OU et lentre C. Sans les parenthses, notre
interprtation serait errone, car X =A #BC signifie que A est runi dans
une porte OU avec le produit BC. Loprateur ET (.) est prioritaire sur
loprateur OU.
Figure 4- 14: Un circuit logique dont l'expression de sortie comporte des parenthses.
Voici la description en VHDL synthtisable du circuit ci-dessus :
X <=(A or B) and C ;
4-10.1 Circuits renfermant des INVERSEURS
Chaque fois qu'un INVERSEUR se trouve dans le schma d'un circuit
logique, son quation est simplement l'expression de son entre surmonte
d'un trait. On trouve la figure4- 16 deux exemples de circuits avec IN-
VERSEURS. Dans la figure4- 15(a), l'entre A passe par un INVERSEUR
dont la sortie est . Cette sortie de l'INVERSEUR est runie dans une por-
te OU avec B, de sorte que l'quation de sortie de cette porte est gale
.
Figure 4- 15: Circuits comprenant des INVERSEURS
Dans la figure4- 15(b), la sortie de la porte OU gale A #B, sortie qui
vient alimenter un INVERSEUR. La sortie de ce dernier est donc ,
puisque toute l'expression est inverse.
Voici la description en VHDL synthtisable des deux circuits de la
figure4- 15 :
a) X <=not A or B ;
b) X <=not (A or B) ;
A
B
C
C B) (A X # =

A
A #B
A
B
B A X # =
A
B
B A X # =

a) b)
A #B ( )
Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010
50
4-11 MATRIALISATION DE CIRCUITS PARTIR
D'EXPRESSIONS BOOLENNES
Si l'opration d'un circuit est dfinie par une expression boolenne, il est
possible de tracer directement un diagramme logique partir de cette ex-
pression. Par exemple, si on a besoin d'un circuit tel que X =ABC, on sait
immdiatement qu'il nous faut une porte ET trois entres. Le raisonne-
ment qui nous a servi pour ces cas simples peut tre tendu des circuits
plus complexes.
Supposons que l'on veuille construire un circuit dont la sortie est
. Cette expression boolenne est constitue de trois
termes ( , , ) qui sont additionns logiquement. On dduit qu'il
nous faut une porte OU trois entres auxquelles sont appliqus respecti-
vement les signaux , , . Chaque entre de la porte OU est un
produit logique, ce qui signifie qu'il a fallu trois portes ET alimentes par
les entres appropries pour produire ces termes. C'est ce qu'on peut voir
la figure4- 16 o est trac le schma final du circuit.
Figure 4- 16: Construction d'un circuit logique partir d'une expression boolenne.
Voici la description en VHDL synthtisable du circuit ci-dessus :
Y <=(A and C) or (B and not C) or (not A and B and C) ;
4-11.1 Description de circuits logiques en VHDL
La description dquations logiques en VHDL ncessite lutilisation des
parenthses. Les oprateurs logiques VHDL, soit and, or, nand, nor, xor et
xnor, ont tous la mme priorit. Seul loprateur not est prioritaire sur les
autres oprateurs logiques et ne ncessite pas de parenthses. Nous allons
donner une srie dexemples de descriptions VHDL synthtisable.
a) soit , en VHDL :
Y <=(A and C) or (B and C) ;
b) soit , en VHDL :
Y AC #BC #ABC =
AC BC ABC
AC BC ABC
A
B
C
AC
C B
BC A
BC A C B AC Y # # =

Y AC #BC =
Y AC ( ) BC) ( =
Electronique numrique Cours Systme numriques, Tome 1
51
Y <=(A and C) xor (not B and C) ;
b) soit , en VHDL :
Y <=not (A xor C) ;
4-12 Algbre de BOOLE
Nous avons vu comment l'algbre de Boole peut servir analyser un cir-
cuit logique et exprimer ce dernier sous forme mathmatique. Nous al-
lons commencer par les deux postulats qui rgissent l'algbre de BOOLE.
4-12.1 Postulats
Nous avons deux postulats :

Ces deux postulats traduisent le fait que l'inverse d'une variable ne peut
jamais prendre la mme valeur que la variable. Nous apprendrons ultrieu-
rement qu'un manquement ces postulats est possible lors de rgimes tran-
sitoires dans les circuits. Ce manquement peut entraner un comportement
alatoire sur les fonctions dpendantes de ces variables.
4-12.2 Thormes
Poursuivons maintenant notre tude de l'algbre boolenne en exami-
nant les thormes de Boole qui sont des rgles qu'on utilise pour simplifier
les expressions logiques et, par le fait mme, les circuits logiques. La
figure4- 17 prsente le premier groupe de thormes dans lesquels X est
une variable logique prenant soit la valeur 0, soit la valeur 1.
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
Figure 4- 17: Thormes de Boole pour une variable.
Avant de vous prsenter les autres thormes de Boole, nous tenons
mentionner que dans les thormes (1) (8), la variable X peut correspon-
dre une expression renfermant plus d'une variable. Par exemple, si nous
Y C B =
A #A 1 =
A A 0 =
X 0 0 =
X 1 X =
X X X =
X X 0 =
X #0 X =
X #1 1 =
X #X X =
X #X 1 =
Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010
52
avons , nous pouvons affirmer, en posant X =AB et d'aprs le
thorme (4), que lquation =0.
4-12.3 Thormes pour plusieurs variables
Les thormes suivants portent sur plus d'une variable:
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
Figure 4- 18: Thormes de Boole pour plusieurs variables
Les thormes (9) et (10) montrent que ET et OU sont des lois de com-
position commutatives, donc que l'ordre de la multiplication ou de l'addi-
tion logique de deux variables n'a pas d'importance, que le rsultat reste le
mme.
Les thormes (11) et (12) montrent que ET et OU sont des lois de com-
position associatives, qui indiquent que l'on peut grouper, comme l'on veut,
les variables dans une expression de multiplication ou d'addition logique.
Les thormes (13) et (14) font voir que la multiplication logique est
distributive par rapport l'addition logique, c'est--dire que l'on peut dve-
lopper une expression en la multipliant terme terme, tout comme dans
l'algbre ordinaire. Ces thormes dmontrent galement que l'on peut
mettre en facteur une expression. On veut dire par l que si nous avons une
somme de termes, chacun renfermant une variable commune, il est possi-
ble de mettre cette variable en facteur, comme on le fait en algbre ordinai-
re.
Il est facile de se rappeler des thormes (9) (14) puisqu'ils sont iden-
tiques ceux de l'algbre ordinaire. Par contre, les thormes (15) et (16)
ne se retrouvent pas en algbre ordinaire. On peu les dmontrer en passant
en revue toutes les possibilits de X et de Y.
Tous ces thormes sont d'une grande utilit pour simplifier une expres-
sion logique, c'est--dire pour obtenir une expression comptant moins de
termes. L'expression simplifie permet de raliser un circuit moins com-
plexe que celui correspondant l'expression originale.
4-12.4 THORMES DE DE MORGAN
Deux des plus importants thormes de l'algbre boolenne nous ont t
lgus par le mathmaticien De Morgan. Les thormes de De Morgan se
AB AB ( )
X #Y Y #X =
X Y Y X =
X # Y #Z ( ) X #Y ( ) #Z X #Y #Z = =
X YZ ( ) XY ( )Z XYZ = =
X Y #Z ( ) XY #XZ =
W #X ( ) Y #Z ( ) WY #XY #WZ #XZ =
X #XY X =
X #XY X #Y =
Electronique numrique Cours Systme numriques, Tome 1
53
rvlent d'une grande utilit pour simplifier des expressions comprenant
des sommes ou des produits de variables complments. Voici ces deux
thormes:
(17)
(18)
Le thorme (17) affirme que la somme logique complmente de deux
variables est gale au produit logique des complments de ces deux varia-
bles. De mme, le thorme (18) stipule que le produit logique compl-
ment de deux variables est gal la somme logique des complments de
ces deux variables. La dmonstration de ces deux thormes se fait simple-
ment en considrant toutes les possibilits de X et de Y.
Bien que ces thormes aient t formuls pour les variables simples X
et Y, ils demeurent aussi vrais pour les cas o X et Y sont des expressions
comprenant plusieurs variables. A titre d'illustration, appliquons ces tho-
rmes l'expression suivante :
Le rsultat trouv peut tre simplifi une autre fois, car on y retrouve en-
core un produit logique complment. En vertu du thorme (18), il vient:
Comme , le rsultat dfinitif est alors:
4-12.5 Thormes du consensus
Les thormes dfinis prcdemment pour plusieurs variables associs
avec le thorme de De Morgan permettent de dterminer les thormes du
consensus. Nous donnons ici ces thormes sans dmonstration. Vous pou-
vez dmontrer ces thormes titre dexercices.
(19)
(20)
X #Y ( ) X Y =
X Y ( ) X #Y =
AB #C ( ) AB ( ) C =
AB C A #B

( ) C =
B B

=
A #B ( ) C AC #BC =
X Y #X Z #Y Z X Y #X Z =
X ( #Y) X # ( Z) Y #Z ( ) X ( #Y) X # ( Z) =
Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010
54
55
Chapitre 5
Circuits logiques combinatoires
Au chapitre prcdent, nous nous sommes penchs sur l'tude de l'en-
semble des portes logiques lmentaires et avons russi, au moyen de l'al-
gbre boolenne, dcrire et analyser des circuits matrialiss par des
combinaisons de portes logiques. On peut qualifier ces circuits logiques de
combinatoires du fait qu' tout moment le niveau logique recueilli en sortie
ne dpend que de la combinaison des niveaux logiques appliqus aux en-
tres. Un circuit combinatoire ne possde aucun mcanisme de rtention
(mmoire); par consquent sa sortie ragit seulement aux signaux prsents
sur ses entres.
Dans ce chapitre, nous poursuivons notre tude des circuits combinatoi-
res. D'abord nous poussons plus avant la simplification (minimisation) des
circuits. Pour cela, nous utiliserons deux mthodes: les thormes de l'al-
gbre boolenne et une technique graphique, les tables de Karnaugh.
5-1 Somme de produits
Les mthodes de simplification et de conception des circuits logiques
que nous tudierons exigent que l'on exprime les quations logiques sous
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
56
la forme d'une somme de produits, dont voici quelques exemples:

Chacune de ces trois expressions d'une somme de produits est forme


d'au moins deux termes d'un produit logique (terme ET) mis en relation
avec loprateur OU. Chaque terme ET comprend une ou plusieurs varia-
bles exprimes sous sa forme normale ou sa forme complmente. Par
exemple, dans la somme de produits , le premier produit
logique est constitu des variables A, B et C non complmentes, tandis
que le second produit comprend la variable B non complmentes et les va-
riables A et C complmentes. Notez que dans une somme de produits, le
signe de complmentation ne peut pas surmonter plus d'une variable d'un
terme (par ex. on ne peut pas avoir )
5-2 Simplification des circuits logiques
Ds qu'on dispose de l'expression d'un circuit logique, il peut tre pos-
sible de la minimiser pour obtenir une quation comptant moins de termes
ou moins de variables par terme. Cette nouvelle quation peut alors servir
de modle pour construire un circuit entirement quivalent au circuit ori-
ginal mais qui requiert moins de portes.
A titre d'illustration, considrons le circuit de la figure5- 1a) que l'on a
minimis pour obtenir le circuit de la figure5- 1b). tant donn que ces
deux circuits produisent les mmes dcisions logiques, il va sans dire que
le circuit le plus simple est prfrable puisqu'il compte moins de portes; il
est aussi moins encombrant et moins coteux produire.
Figure 5- 1: Simplification d'un circuit logique.
Dans les sections suivantes, nous verrons deux faons diffrentes de
simplifier des circuits logiques. Une premire faon est fonde sur l'appli-
ABC #ABC
AB #ABC #CD #D
AB #CD #EF #GK
ABC #ABC
ABC
A
B
C
C
B
A
) BC A AB( X # =
C AB X =
a)
b)
Electronique numrique Cours Systme numriques, Tome 1
57
cation des thormes de l'algbre boolenne; cette faon, comme nous le
verrons, dpend normment de l'instinct et de l'exprience. L'autre faon
(les tables de Karnaugh), au contraire, suit une dmarche systmatique,
semblable une recette de cuisine.
5-3 Simplification algbrique
Les thormes de l'algbre boolenne tudis au chapitre prcdent peu-
vent nous tre d'un grand secours pour simplifier l'expression d'un circuit
logique. Malheureusement, il n'est pas toujours facile de savoir quels tho-
rmes il faut invoquer pour obtenir le rsultat minimal. D'ailleurs, rien ne
nous dit que l'expression simplifie est la forme minimale et qu'il n'y a pas
d'autres simplifications possibles. Pour toutes ces raisons, la simplification
algbrique est souvent un processus d'approximations successives. Il existe
cependant deux tapes essentielles :
a. Applications successives des thormes de De Morgan en vue
d'obtenir une somme de produit
b. Trouver des variables communes pour la mise en facteur de ces
dernires.
Exemple 5- 1: Simplification algbrique

thorme 18 (De Morgan)
annulation de la double complmentation

distribution du ET
thorme 3

mise en facteur
thorme 8

thorme 2
Z ABC #AB AC ( ) =
Z ABC #AB A

#C

( ) =
Z ABC #AB A #C ( ) =
Z ABC #ABA #ABC =
Z ABC #AB #ABC =
Z A = C B #B ( ) #AB
Z AC 1 ( ) #AB =
Z AC #AB =
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
58
5-4 Conception de circuits logiques combinatoires
Frquemment, le cahier des charges dun circuit logique concevoir est
donn sous forme textuelle. Cette forme nest pas utilisable pour dtermi-
ner lquation du circuit. La table de vrit permet de spcifier le fonction-
nement du circuit. Cette premire phase correspond la conception du
circuit. Les tapes suivantes nous permettrons de dterminer le schma lo-
gique. Il sagit alors des tapes de ralisation. La premire tape de con-
ception sera vue lors des exercices. Nous allons donner ici toutes les tapes
de ralisation permettant de passer de la table de vrit au schma logique
du circuit.
La table de vrit spcifie pour chaque combinaison des entres le ni-
veau logique de la sortie. Nous pouvons ensuite dterminer l'expression
boolenne du circuit partir de cette table de vrit. Voici la procdure g-
nrale qui aboutit l'expression de la sortie partir d'une table de vrit :
a. Pour chaque cas de la table qui donne 1 en sortie, on crit le pro-
duit logique (terme ET) qui lui correspond.
b. On doit retrouver toutes les variables d'entre dans chaque terme
ET soit sous forme directe soit sous forme complmente. Dans
un cas particulier, si la variable est 0, alors son symbole est com-
plment dans le terme ET correspondant.
c. On somme logiquement (oprateur OU) ensuite tous les produits
logiques constitus, ce qui donne l'expression dfinitive de la
sortie.
La table de vrit nous permet dtablir l'expression de la sortie sous la
forme d'une somme de produits. Ds lors il est possible de construire le cir-
cuit au moyen de portes ET, OU et NON. Il faut une porte ET pour chaque
produit logique et une porte OU dont les entres sont les sorties des portes
ET. Gnralement, il est possible de simplifier lexpression obtenue. Lob-
jectif est de raliser le circuit le plus simple possible. Il sera moins cher et
souvent plus rapide!
Exemple :
No C B A X Equation minterme
0 0 0 0 0
1 0 0 1 0
2 0 1 0 1
3 0 1 1 1
4 1 0 0 0
5 1 0 1 0
6 1 1 0 0
7 1 1 1 1
CBA
CBA
CBA
Electronique numrique Cours Systme numriques, Tome 1
59
On voit qu'il y a trois combinaisons qui produisent une valeur 1 pour la
sortie X. Les termes ET pour chacune de ces combinaisons figurent droi-
te de la table de vrit. Nous pouvons numroter chaque ligne de la table
de vrit. Nous parlerons de lquation dun minterme. L'expression com-
plte s'obtient en effectuant des OU logique de ces trois mintermes, ce qui
nous donne:
Nous pouvons crire cette expression logique sous une forme compacte
en indiquant uniquement le numro des mintermes 1, soit :
Nous avons maintenant une quation logique non simplifie. La pre-
mire solution est dutiliser lalgbre de Boole pour rechercher lexpres-
sion la plus simple. Cela ncessite beaucoup dexprience et de pratique. Il
existe une mthode graphique efficace : la table de Karnaugh.
5-5 La mthode des tables de Karnaugh
La table de Karnaugh est un outil graphique qui permet de simplifier de
manire mthodique une quation logique. Nous pourrons obtenir ensuite
le schma optimal correspondant au circuit logique combinatoire. Bien que
les tables de Karnaugh soient applicables des problmes ayant un nombre
quelconque de variables d'entre, en pratique, ils ne sont plus d'une grande
utilit quand le nombre de variables dpasse six. En plus, dans cette sec-
tion, nous n'allons pas aborder de problmes ayant plus de quatre entres.
Les cas de circuits ayant cinq et six entres sont des problmes d'envergu-
re. Au del, il est prfrable de rsoudre les tables de Karnaugh avec un
programme informatique.
5-5.1 La construction de la table de Karnaugh
La table de Karnaugh, tout comme la table de vrit, un instrument qui
met en vidence la correspondance entre les entres logiques et la sortie re-
cherche. La figure5- 3 nous fait voir trois exemples de tables de Karnau-
gh pour deux, trois et quatre variables, ainsi que les tables de vrit
correspondantes. La table de vrit donne la valeur de la sortie X pour cha-
cune des combinaisons des valeurs d'entre, par contre, la table Karnaugh
organise l'information de manire diffrente. A chaque ligne de la table de
vrit correspond une cellule de la table de Karnaugh. Mais les cellules
dans la table de Karnaugh ne sont pas dans le mme ordre. Par exemple,
la figure5- 3 a), la ligne BA =00 de la table de vrit correspond la cel-
lule situe au croisement de B =0 et A =0 de la table de Karnaugh. tant
donn que pour cette ligne X vaut 1, on inscrit 1 dans cette cellule. De m-
me, on associe la ligne BA =11 la cellule qui a les coordonnes B =1 et
A =1. Comme X vaut aussi 1 dans ce cas, on retrouve un 1 dans celle-ci.
X CBA #CBA #CBA =
X 2, 3, 7 =
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
60
Les autres cellules de la table de Karnaugh contiennent des 0. Le mme
raisonnement s'applique pour les tables trois et quatre variables.
Figure 5- 2: Les tables de Karnaugh pour a) deux et b) trois variables.
La construction de la table de Karnaugh garanti quil ny a quune seule
variable qui change entre deux cases voisines. Dans la table b) de la
figure5- 2 nous allons tudier le cas de la case situe au croisement de CB
=11 et A =0 qui correspond au minterme = . Nous avons trois cases
voisines, soit :
case voisine droite CB =10 et A =0, minterme =
la variable B change
case voisine gauche CB =01 et A =0, minterme =
la variable C change
case voisine en bas CB =11 et A =1, minterme =
la variable A change
Nous voyons une autre proprit de la table de Karnaugh :
Chaque case autant de cases adjacentes quil y a de variables
B A X
A

B
0 1
0 0 1 0 1 0
0 1 0 1 0 1
1 0 0
1 1 1 a)
C B A X CB 00 01 11 10
0 0 0 1 A 0
0 0 1 1 1
0 1 0 1
0 1 1 0 CB 00 01 11 10
1 0 0 0 A 0 1 1 1 0
1 0 1 0 1 1 0 0 0
1 1 0 1
1 1 1 0 b)
BA
BA
CBA
CBA CBA CBA CBA
CBA CBA CBA CBA CBA
CBA
CBA
CBA
CBA
CBA
CBA
Electronique numrique Cours Systme numriques, Tome 1
61
Figure 5- 3: Les tables de Karnaugh pour quatre variables.
5-5.2 REUNION
Il est possible de simplifier l'expression de sortie X en combinant selon
des rgles prcises les cellules de la table de Karnaugh qui contiennent des
1. On donne ce processus de combinaison le nom de runion.
5-5.3 Runion de doublets (de paires)
La figure5- 4 reproduit la table Karnaugh correspondant une certaine
table de vrit trois variables. Il y a dans cette table deux 1 qui sont voi-
sins verticalement. Ces deux termes peuvent tre runis (combins), ce qui
a pour rsultat d'liminer la variable A. Le mme principe joue toujours
pour tout doublet de 1 voisins verticalement ou horizontalement. La ligne
du haut est considre comme adjacente la ligne du bas, idem pour la co-
lonne de gauche avec la colonne de droite.
D C B A X
DC
BA
00 01 11 10
0 0 0 0 0 00 0 0 0 0
0 0 0 1 1 01 1 1 1 0
0 0 1 0 0 11 0 0 1 0
0 0 1 1 0 10 0 0 0 0
0 1 0 0 0
0 1 0 1 1 ou
0 1 1 0 0 C
0 1 1 1 0
1 0 0 0 0 0 0 0 0
1 0 0 1 0
A
1 1 1 0
1 0 1 0 0 0 0 1 0
B
1 0 1 1 0 0 0 0 0
1 1 0 0 0
1 1 0 1 1 D
1 1 1 0 0
1 1 1 1 1
DCBA
DCBA
DCBA
DCBA
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
62
Figure 5- 4: Exemple de runion de doublet
Nous pouvons dmontrer la simplification de la variable A par lalgbre
de Boole. Lquation logique du groupement correspond la somme logi-
que des deux mintermes, soit :
minterme de la case du haut :
minterme de la case du bas :
do lquation :
finalement
5-5.4 Runion de quartets (groupes de quatre)
Il peut arriver qu'une table de Karnaugh contienne quatre 1 qui soient
adjacents. La figure5- 5 regroupe plusieurs exemples de tels quartets. En
a) les quatre 1 sont voisins horizontalement, alors qu'en b), ils le sont ver-
ticalement. La table de c) renferme quatre 1 arrangs en carr qui sont con-
sidrs adjacents les uns aux autres. Les quatre 1 de d) sont aussi adjacents,
parce que, comme nous l'avons dj dit, dans une table de Karnaugh les li-
gnes du haut et du bas et les colonnes droite et gauche sont considres
comme adjacentes.
CB
A
00 01 11 10
0 0 1 0 0
1 0 1 0 0
CBA
CBA
CBA #CBA CB A #A ( ) CB 1 = =
CB
Electronique numrique Cours Systme numriques, Tome 1
63
Figure 5- 5: Exemple de runion de quartets.
5-5.5 Runion d'octets (groupes de huit)
Quand on runit huit 1 adjacents, on dit qu'on runit un octet de 1 adja-
cents. On peut voir la figure5- 6 deux exemples de runion d'octets. La
runion d'un octet dans une table de Karnaugh quatre variables donne lieu
l'limination de trois variables.
Figure 5- 6: Exemple de runion d'octets.
5-5.6 Le processus de simplification au complet
Nous venons de voir comment la runion de doublets, de quartets et
d'octets de 1 adjacents dans une table Karnaugh aboutit une expression
DC
BA
00 01 11 10
00 0 0 0 0
CB
A
00 01 11 10
01 0 0 0 0 0 0 0 1 1
11 1 1 1 1 1 0 0 1 1
10 0 0 0 0
b)
a)
DC
BA
00 01 11 10
DC
BA
00 01 11 10
00 0 0 0 0 00 1 0 0 1
01 0 1 1 0 01 0 0 0 0
11 0 1 1 0 11 0 0 0 0
10 0 0 0 0 10 1 0 0 1
c) d)
X C =
X BA =
X CA = X CA =
DC
BA
00 01 11 10
DC
BA
00 01 11 10
00 0 0 0 0 00 1 0 0 1
01 1 1 1 1 01 1 0 0 1
11 1 1 1 1 11 1 0 0 1
10 0 0 0 0 10 1 0 0 1
a) b)
X A = X C =
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
64
simplifie. Il est clair que plus une runion regroupe de 1, plus le nombre
de variables limines est grand. Plus prcisment encore, une runion de
deux 1 provoque l'limination d'une variable, un runion de quatre 1, l'li-
mination de deux variables et une runion de huit 1, l'limination de trois
variables et ainsi de suite. La runion de 2
n
1 permet de simplifier n varia-
bles. Voici les tapes suivre pour simplifier une expression boolenne en
recourant la mthode des tables de Karnaugh:
a. Dessinez la table de Karnaugh et placez des 1 dans les carrs cor-
respondant aux lignes de la table de vrit dont la sortie est 1.
Mettez des 0 dans les autres carrs.
b. Etudiez la table de Karnaugh et reprez tous les groupes possi-
bles. Trouvez les plus grands.
c. Commencez ensuite par encercler les 1, dit isols, qui ne font
parties que d'un seul groupe. Cela signifie que pour ces 1, il
n'existe qu'une seul possibilit de groupement.
d. Continuer ensuite prendre les groupes les plus grands qui
incluent des 1 (au minimum un seul) qui ne font pas partie d'un
autre groupe.
e. Vous devez prendre tous les 1 de la table de Karnaugh. Il est pos-
sible d'utiliser plusieurs fois le mme 1.
f. Effectuez un OU logique entre tous les termes rsultant des ru-
nions.
5-6 Fonctions incompltement dfinies
Souvent les fonctions ne sont pas dfinies pour toutes les combinaisons
des variables. Il y a souvent des combinaisons des entres qui sont impos-
sibles ou inexistantes. Nous pouvons alors choisir ltat de sortie pour ces
combinaisons. Nous parlons alors dtat indiffrent pour la ou les sorties.
Nous allons voir leur utilit pour la simplification dune fonction logique.
5-6.1 Simplification par Karnaugh des conditions indiffrentes
Certains circuits logiques peuvent tre conus o pour certaines combi-
naisons d'entre ne correspondent aucun tat logique particulier pour la
sortie. La principale raison est souvent que ces combinaisons dentres ne
doivent jamais survenir. En d'autres mots, il y a certaines combinaisons des
d'entre pour lesquels il nous importe peu que la sortie soit HAUTE ou
BASSE. Une illustration de ce qu'on veut dire est donne dans la table de
vrit de la figure5- 7.
Dans cette table aucun tat de la sortie Z ne figure pour les combinai-
sons CBA =100 et CBA =011. Nous avons not cela par un -. Ce - si-
gnifie une condition indiffrente. Plusieurs raisons peuvent expliquer la
prsence de conditions indiffrentes, la plus courante tant que dans cer-
Electronique numrique Cours Systme numriques, Tome 1
65
taines situations ces combinaisons d'entre ne peuvent jamais survenir; par
consquent, il est inutile de prciser pour elles une valeur de sortie.
Figure 5- 7: Exemple d'application de Karnaugh avec des tats indiffrents
En prsence de conditions indiffrentes, nous devons dcider quel - de
sortie est remplac par un 0 et quel - est remplac par un 1. Le choix est
donn en recherchant la faon la plus efficace de grouper les 1 adjacents de
la table de Karnaugh. Lobjectif est dobtenir l'expression la plus simple.
5-7 Les fonctions standards combinatoires
Lorsque le problme rsoudre comprend plus de 4 ou 5 entres la m-
thodologie avec la table de vrit et la table de Karnaugh nest plus appli-
cable. Nous avons vu que lutilisation de la table de Karnaugh est limite
4 ou 5 variables. Il sera aussi difficile dtablir une table de vrit lorsque
le nombre dentres devient important. Si nous avons un systme avec 10
entres, la TDV aura 1024 lignes!. Nous devons adapter notre mthodolo-
gie. Il sagira de dcomposer notre problme. Nous devrons tre capable
didentifier des sous-fonctions.
Nous avons besoin dtudier les principales fonctions standards combi-
natoires. Ces fonctions sont nommes aussi fonctions MSI pour "Medium
Scale Integration". Il sagit de fonctions plus complexes que les simples
portes logiques. Ces fonctions ont t trs rapidement intgres dans des
circuits des famille TTL ou CMOS. Ces fonctions prsentaient l'avantage
d'tre moins onreuses sous la forme d'un circuit. Les fonctions les plus
couramment utilises ont t intgres.
Voici une liste des principales fonctions standards combinatoires :
le dcodage (X/Y) 1->2, 2->4, 3->8
le multiplexage (MUX) 2->1, 4->1, 8->1 et 16->1
C B A Z
CB
A
0 0 0 0 00 01 11 10
0 0 1 0 0 0 0 1 -
0 1 0 0 1 0 - 1 1
0 1 1 - Z =A
1 0 0 -
CB
A
1 0 1 1 00 01 11 10
1 1 0 1 0 0 0 1 1
1 1 1 1 1 0 0 1 1
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
66
l'encodage de priorit
la comparaison (COMP) <,=,>
les oprations arithmtiques (addition, soustraction, ...)
le transcodage de nombres :
BIN->BCD, BCD->BIN, BCD->7SEG, etc.
...
Nous allons commencer par tudier chaque fonction standard. Nous
donnerons des exemples de circuits et les symboles CEI correspondants.
Nous donnerons aussi la description en VHDL.
5-8 Dcodeur (X/Y)
Un dcodeur permet d'identifier la combinaison qui est active. Nous
parlerons du dcodage de la combinaison dentre X. Il comporte une en-
tre de X bits dcoder (slection), une entre de validation (enable), et 2
X
(=Y) sorties. La sortie, dont le numro correspond la valeur code donne
en entre, sera active si l'enable est actif. Toutes les autres sorties sont
inactives. Le dcodeur na quune seule sortie active la fois. Dans le cas
o lentre de validation est inactive toutes les sorties sont alors inactives.
Nous allons commencer par tudier un dcodeur 1 2. Ce dcodeur dis-
pose dune entre de 1 bit et dune entre de validation. Il dispose donc 2
sorties (2
1
).
Figure 5- 8: Dcodeur 1 2 avec entre enable
Nous remarquons que les dcodeurs ont frquemment des sorties acti-
ves basses. Nous verrons que cela est utile dans le cas de son utilisation
EN Sel Sortie1 Sortie0
0 0 0 0
0 1 0 0
1 0 0 1
1 1 1 0
nSortie0
X/Y
1
0
EN
1
Sel
En
nSortie1
Sel
EN
nSortie0
nSortie1
Electronique numrique Cours Systme numriques, Tome 1
67
comme gnrateur de fonction. Voir Dcodeur en gnrateur de fonc-
tions, page69.
Figure 5- 9: Exemple de circuit standard avec 2 dcodeurs 2 4
La figure5- 10 nous prsente un dcodeur 2 4. Le signal de slection
comprend 2 bits. Ds lors le nombre de sorties est de 4 car il y a 2
2
combi-
naisons possibles pour la slection. Ce dcodeur dispose dautre part dun
signal dactivation (enable). Lorsque celui-ci est inactif (tat logique 1, ac-
tif bas), toutes les sorties sont inactives (tat 0). Lorsque le signal dauto-
risation (enable) est actif, la sortie correspondant au code de la slection
est active.
Figure 5- 10: Dcodeur 2 4 avec enable
Nous allons donner la description en VHDL synthtisable du dcodeur
prsent sur la figure5- 10.
ALS139
X/Y
0
1
2
3
(4)
(5)
(6)
(7)
1Y0
1Y1
1Y2

1Y3
1
2

EN
(2)
(3)
(1)
1A
1B
1in
(12)
(11)
(10)
(9)
2Y0
2Y1
2Y2
2Y3
(14)
(13)
(15)
2A
2B
2in
ALS139 en dcodeur 2/4
EN Sel1 Sel0 Y3 Y2 Y1 Y0
0 x x 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
Y0
Y1
Y2
Y3
X/Y
1 0
2 1
2
EN 3
Sel0
Sel1
En
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
68
library IEEE;
use IEEE.Std_Logic_1164.all;
entity Dec_2a4 is
port(Sel_i : in Std_Logic_vector(1 downto 0);
-- Entrees de selection
EN_i : in Std_Logic ;
-- Entree de validation
Y_o : out Std_Logic_Vector(3 downto 0)
-- sorties
);
end Dec_2a4 ;
architecture Flot_Don of Dec_2a4 is
signal Y_s : Std_Logic_Vector(3 downto 0) ;
begin
-- determination de la valeur de sortie
with Sel_i select
Y_s <= "0001" when "00",
"0010" when "01",
"0100" when "10",
"1000" when "11",
"XXXX" when others ;-- simulation
-- affectation de la valeur de sortie
Y_o <= Y_s when (EN_i = '1') else
"0000";
end Flot_Don;
Exemple 5- 2: Description VHDL du dcodeur 2 4 avec enable
Voici un dcodeur avec 3 bits de slection. Il permet de dcoder les 8
combinaisons d'un vecteur 3 bits.
Figure 5- 11: Dcodeur avec 3 bits de slection
Dans le circuit ALS138, l'activation des sorties dpend de EN, qui est le
rsultat d'un ET entre les entres ( ).
ALS138
X/Y
0
1
2
3
(15)
(14)
(13)
(12)
Y0
Y1
Y2
Y3
1
2
EN

(1)
(2)
(3)
A
B
G2A
(11)
(10)
(9)
(7)

Y4
Y5
Y6
Y7
(6)
(4)
(5)
G1
C
G2B
ALS138 en dcodeur 3/8
&
4
4
5
6
7
G1, G2A, G2B
EN G1 G2A G2B =
Electronique numrique Cours Systme numriques, Tome 1
69
5-8.1 Extension du dcodeur
Il est toujours possible de raliser lextension dun dcodeur par une
structure pyramidale. Un premier dcodeur, ici 2 4, permet de dcoder les
poids fort. Les sorties de ce premier dcodeur seront utilises pour activer
un second tage de dcodeur. Dans notre exemple les quatre sorties acti-
vent quatre dcodeurs 3 8. Nous obtenons ainsi un dcodeur 6 32 (voir
la figure ci-dessous).
Figure 5- 12: Exemple dextension dun dcodeur
5-8.2 Dcodeur en gnrateur de fonctions
Appliquons le thorme de De Morgan la premire forme canonique
d'une fonction.
La fonction est le rsultat d'une fonction NAND portant sur l'inverse des
mintermes. Le dcodeur nous dlivrant l'inverse des mintermes, il suffira
d'adjoindre une porte NAND admettant comme entres les lignes de dco-
dage correspondant aux 1 de la fonction. Le problme nous cotera un d-
codeur plus une porte NAND n entres (n tant le nombre de 1 de la
fonction) par fonction.
Un dcodeur prsentera un cot avantageux si le nombre de fonctions
est grand et que ces fonctions ont peu de 1.
A1
A2
A3
A4
Enable
OUT0
OUT1
......
OUT7
1
2
4
1
2
0
1
2
3
OUT8
OUT9
......
OUT15
1
2
4
OUT16
OUT17
......
OUT23
1
2
4
OUT24
OUT25
......
OUT31
1
2
4
A0
Dec 3 8 Dec 3 8 Dec 3 8 Dec 3 8
X/Y X/Y X/Y X/Y
X/Y
Dec 2 4
En En En En
En
F CBA #CBA #CBA # ... #CBA =
F CBA ( ) CBA ( ) CBA ( ) ... CBA ( ) ( ) =
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
70
5-8.3 Exemple d'application
Reprenons le transcodeur BCD Excdent 3 / BCD 8421.
Figure 5- 13: Transcodeur BCD excdent 3
Ce circuit n'est pas plus conomique que la solution avec des portes. Il
cote 2 pour les dcodeurs et 1 +0,25 +0,16 =1,41 pour les portes. Ce qui
donne un total de 3,41 contre 3,25 avec des portes.
5-9 Multiplexeur (MUX)
Un multiplexeur est un systme combinatoire qui met sur sa sortie uni-
que la valeur d'une de ses 2
n
entres de donnes, le numro de l'entre s-
lectionne tant fourni sur les n entres de commande.
Nous donnons la table de vrit d'un multiplexeur 2 vers 1 (2 to 1), son
schma logique et le symbole CEI de cette fonction.
A
B
C
D
4
2
1 0
1
2
3
4
5
6
7
X / Y
4
2
1 0
1
2
3
4
5
6
7
X / Y
'0'
'1'
&
&
F0
F3
F2
F1
Electronique numrique Cours Systme numriques, Tome 1
71
Figure 5- 14: Multiplexeur 2 1; table de vrit, schma logique et symbole CEI
Voici un exemple de circuit standard qui remplit la fonction de multi-
plexage. Remarquez que nous avons 4 multiplexeurs avec le mme bloc de
commande dans le circuit standard (74ALS157). Les multiplexeurs sont
symboliss par les rectangles superposs, le premier est marqu MUX.
Figure 5- 15: Circuit ALS157 contenant 4 multiplexeurs 2 1; symbole CEI
Le bloc de commande se marque par un rectangle ayant des encoches
qui coiffe les 4 blocs. Une entre EN (ENable) supplmentaire apparat. La
sortie des multiplexeurs n'est active que si l'entre EN=1, ce qui revient
dire que la borne 15 est au niveau bas.
TDV compacte
Sel Sortie
0 In0
1 In1
Sel In1 In0 Sortie
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
Sel
In0
In1
Sortie
Sortie
MUX
0
0
Y
1
Sel
In0
In1
G
0
1
MUX
1
1
(2)
(3)
(4) 1A
1B
1Y
1
1
(5)
(6)
(7) 2A
2B
2Y
1
1
(11)
(10)
(9) 3A
3B
3Y
1
1
(14)
(13)
(12) 4A
4B
4Y
A/B
(1)
G
(15)

G1
EN
ALS157
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
72
Dans le bloc de multiplexage, l'entre marque 1 indique que la sortie
prendra la valeur de B si l'entre de slection G1, borne 1, prend la valeur
1 (niveau haut). L'entre A sera prise en compte pour G1=0. Les chiffres
entre parenthses indiquent les numros des bornes du circuit.
La figure5- 16 nous prsente un multiplexeur 4 1. Le signal de slec-
tion comprend 2 bits. Ds lors le nombre dentres est de 4, car il y a 2
2
combinaisons possibles pour la commande de slection. Ce multiplexeur
dispose dautre part dun signal dactivation (enable). Lorsque celui-ci est
inactif (tat logique 1, actif bas), la sortie du multiplexeur est inactive (tat
0). Lorsque le signal dactivation (enable) est actif, la sortie prend la valeur
de lentre slectionne.
Figure 5- 16: Multiplexeur 4 1 avec enable; TDV, schma logique et symbole CEI
Voici la description VHDL du multiplexeur 4 1 prsent dans la
figure5- 16. Nous utilisons linstruction with...select qui dcrit directement
le fonctionnement dun multiplexeur.
En Sel1 Sel0 Sortie
0 - - 0
1 0 0 D0
1 0 1 D1
1 1 0 D2
1 1 1 D3
Sortie
MUX
0 0
1 3
EN
0
1 Y
2
3
D0
D1
D2
D3
G
Sel1..0
En
Sel1 Sel0
D0
D1
D2
D3
En
Sortie
Electronique numrique Cours Systme numriques, Tome 1
73
library IEEE;
use IEEE.Std_Logic_1164.all;
entity Mux_4a1 is
port(Sel_i : in Std_Logic_vector(1 downto 0);
-- Entrees de selection
EN_i : in Std_Logic ;
-- Entree de validation
D0_i, D1_i, D2_i, D3_i : in Std_Logic;
-- Entree de donnees
Y_o : out Std_Logic
-- sortie
);
end Mux_4a1 ;
architecture Flot_Don of Mux_4a1 is
signal Y_s : Std_Logic ;
begin
-- determination de la valeur de sortie
with Sel_i select
Y_s <= D0_i when "00",
D1_i when "01",
D2_i when "10",
D3_i when "11",
'X' when others; -- simulation
-- affectation de la valeur de sortie
Y_o <= Y_s when (EN_i = '1') else
'0';
end Flot_Don;
Exemple 5- 3: Description VHDL du multiplexeur 4 2 avec enable
Nous donnons dautres exemples de multiplexeurs dans la figure sui-
vante.
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
74
Figure 5- 17: Schma de quelques multiplexeurs courants
5-9.1 Extension du multiplexeur
Le multiplexeur intgr le plus grand est le 16 ->1 qui porte le numro
ALS150. Il est possible d'aller au-del de 16 entres en cascadant les cir-
cuits.
Figure 5- 18: Extension du multiplexeur
5-9.2 Multiplexeur en gnrateur de fonction
Le multiplexeur 16->1 rpond l'quation :
Si l'on compare cette quation celle de la premire forme canonique
d'une fonction, on remarque la similitude des deux expressions.
ALS151
(7)
G
B
(10)
A
(11)
1
0
G
0
7
C 2
(9)
0
(3)
D0
D1 1
(2)
(1)
D2
D3
2
(15)
(14)
D4
D5
(13)
(12)
D6
D7
3
(4)
(5)
Y
(6)
W
MUX
EN
(1)
(6)
1G
1C0
1
(5)
(4)
1C1
1C2
1Y
3
(3)
(15)
1C3
2G
(10)
(11)
(9)
2C0
2C1
2Y
B
(2)
A
(14)
1
0
ALS153
G
0
3
(13)
2C2
2C3
(12)
0
2
4
5
6
7
A0
A1
A2
A3
A4
A5
MUX
16->1
D48
D49
......
D63
MUX
16->1
D32
D33
......
D47
MUX
16->1
D16
D17
......
D31
MUX
16->1
D0
D1
......
D15
MUX
4->1
sortie
Y G D
i
DCBA ( )
i
i 0 =
15

= F
i
DCBA ( )
i
i 0 =
15

=
Electronique numrique Cours Systme numriques, Tome 1
75
Dans un premier temps il nous sera toujours possible de raliser une
fonction 4 variables avec un multiplexeur 16->1, en posant :
G=1
Pour raliser une fonction de 4 variables avec un multiplexeur 16->1, il
est suffisant de rendre actif le circuit (EN=1) et de mettre sur les entres de
donnes les valeurs correspondant la ligne ayant le mme numro que
l'entre.
L'utilisation d'un multiplexeur 8->1 est envisageable en mettant la fonc-
tion sous la forme suivante :
L'identification avec la formule de Y nous donne:
G=1
D
i

i
=
F
i
DCBA ( )
i
i 0 =
15

D
i
CBA ( )
i
#D
i
CBA ( )
i
i 8 =
15

i 0 =
7

= =
F D
i
CBA ( )
i
#D
i 8 + ( )
CBA ( )
i 8 + ( )
i 0 =
7

i 0 =
7

=
D (
i
# D
i 8 + ( )
) C ( BA)
i
( )
i 0 =
7

=
D
i
D
i
# D
i 8 + ( )
( ) =
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
76
5-9.3 Exemple d'application
Prenons comme exemple un transcodeur BCD Excdent 3 en BCD
8421
Dans une premire tape, pour nous assurer que toutes nos fonctions d-
pendent bien de toutes les variables, nous allons utiliser la mthode de la
table de Karnaugh.
D C B A F3 F2 F1 F0 D C B A F3 F2 F1 F0
0 0 0 0 - - - - 1 0 0 0 0 1 0 1
0 0 0 1 - - - - 1 0 0 1 0 1 1 0
0 0 1 0 - - - - 1 0 1 0 0 1 1 1
0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0
0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1
0 1 0 1 0 0 1 0 1 1 0 1 - - - -
0 1 1 0 0 0 1 1 1 1 1 0 - - - -
0 1 1 1 0 1 0 0 1 1 1 1 - - - -
0 0 1 1 D 0 0 1 1 D
0 1 1 0 C 0 1 1 0 C
0 0 - 0 1 0 0 0 - 0 0 1
0 1 - 0 - 0 0 1 - 0 - 1
1 1 0 0 - 1 1 1 0 1 - 0
1 0 - 0 - 0 1 0 - 0 - 1
B A F3 B A F2
0 0 1 1 D 0 0 1 1 D
0 1 1 0 C 0 1 1 0 C
0 0 - 0 0 0 0 0 - 1 1 1
0 1 - 1 - 1 0 1 - 0 - 0
1 1 0 0 - 0 1 1 0 0 - 0
1 0 - 1 - 1 1 0 - 1 - 1
B A F1 B A F0
F3 D C ( ) # D B A ( ) =
F2 C B ( ) # C B A ( ) # C A ( ) =
F1 B A ( ) # B A ( ) A B = =
F0 A =
Electronique numrique Cours Systme numriques, Tome 1
77
Nous constatons que :
F3 est une fonction de D, C, B et A F3 =f(DCBA)
F2 est une fonction de C,B et A F2 =f(CBA)
F1 est une fonction de B et A F1 =f(BA)
F0 est une fonction de A F0 =f(A)
Pour tablir une comparaison, nous pouvons valuer le cot avec des
portes logiques.
La fonction F3 avec un multiplexeur 8->1 nous coterait 1 circuit pour
le MUX, plus ventuellement un inverseur, ce qui nous donne un prix de
revient de 1 1,16. La fonction F3 est plus conomique avec des portes. F3
pouvant tre mise sous la forme F3 =D & (C #B & A), l'entre D peut
jouer le rle de l'entre G d'un multiplexeur 4->1, la fonction F3 revient
alors 0,5 0,66
La fonction F2 qui est une fonction de 3 variables nous cote un MUX
4->1, plus ventuellement une porte non, soit un cot de 0,5 0,66 bien in-
frieur aux 1,16 de la ralisation en portes. Le demi-circuit restant pourra
tre utilis pour raliser F1.
Pour faciliter le calcul, nous tablirons dans un premier temps la table
de vrit des fonctions F2 et F1 en fonction des variables C, B et A. C'est
depuis cette table que nous nous livrerons au calcul des valeurs mettre sur
les entres de donnes des deux multiplexeurs. Dans cette table, la variable
D va disparatre, ce qui revient fusionner deux deux les lignes de notre
ancienne table.
Par exemple, la ligne numro 0 de la nouvelle table correspond aux
combinaisons -000 pour les variables, ce qui donne les deux combinaisons
0000 et 1000. Dans ces deux lignes, la fonction F2 prend les valeurs - et 1,
nous donnerons la valeur 1 dans la nouvelle table. De mme, pour F1 qui
correspond aux valeurs - et 0, ce qui nous conduira un 0 pour la nouvelle
table.
Nous pourrons avoir les cas suivants pour les valeurs des fonctions :
portes fonctions
Nb. entres F3 F2 F1 F0 F3..0
1 3 0,5 2 0,33 1 0,16 3 0,50
2 2 0,50 2 0,5 3 0,75 7 1,75
3 1 0,33 2 0,66 3 1,00
4
8
total 0,83 1,16 1,08 0,16 3,25
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
78
Calcul pour la fonction F2 des
premire table deuxime table
0 et 0 0
(0 et 1) ou (1 et 0) impossible
(0 et -) ou (- et 0) 0
1 et 1 1
(1 et -) ou (- et 1) 1
- et - -
Num. C B A Fx F2 F1
0 0 0 0

1 0
1 0 0 1

1 1
2 0 1 0

1 1
3 0 1 1

0 0
4 1 0 0

0 0
5 1 0 1

0 1
6 1 1 0

0 1
7 1 1 1

1 0
i !C

C Di
0 !C 1 C 0 !C
1 !C 1 C 0 !C
2 !C 1 C 0 !C
3 !C 0 C 1 C

7
Di C
i
( ) # C
i 4 +
( ) =

i

i 4 + ( )
Electronique numrique Cours Systme numriques, Tome 1
79
Calcul pour la fonction F1 des
On peut remarquer que les valeurs des entres sur les donnes pour la
fonction F1 ne dpendent pas de C, mais sont des constantes. Ceci tait
prvisible car F1 est une fonction des deux variables B et A.
Nous pouvons tablir le schma des deux fonctions.
Figure 5- 19: Schma obtenu partir des deux fonctions de lexemple
5-10 Comparateur
La fonction de comparaison de deux nombres binaires est trs frquem-
ment utilise. Un comparateur est un circuit qui indique si deux nombres
binaires sont plus grands, gaux ou plus petits. Dans le cas dun circuit mo-
dulaire, il y a trois entres afin de savoir si les bits prcdents sont plus
grands, gaux ou plus petits.
La figure5- 20 a) nous donne le symbole CEI dun comparateur dga-
lit avec lentre = pour la chanage. La figure b) nous donne le symbole
CEI dun comparateur 4 bits modulaire avec les trois sorties <, = et >.
i !C C Di
0 !C 0 C 0 0
1 !C 1 C 1 1
2 !C 1 C 1 1
3 !C 0 C 0 0
Di C
i
( ) # C
i 4 +
( ) =

i

i 4 + ( )
MUX EN
C
1
(7)
F2
3
(9)
"0"
"1"
F1
B
(2)
A
(14)
1
0
ALS153
G
0
3
0
2
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
80
Figure 5- 20: Symbole CEI de comparateurs
Voici la description en VHDL synthtisable du comparateur 4 bits mo-
dulaire.
library IEEE;
use IEEE.Std_Logic_1164.all;
use IEEE.Numeric_Std.all;
entity Comp_4 is
port(Nb_P_i : in Std_Logic_Vector(3 downto 0);
-- Entree du nombre P
Nb_Q_i : in Std_Logic_Vector(3 downto 0);
-- Entree du nombre Q
PG_i, EQ_i, PP_i : in Std_Logic;
-- Entrees de chainage (module precedent)
PG_o, EQ_o, PP_o : out Std_Logic;
-- Sorties de comparaison
);
end Comp_4 ;
architecture Flot_Don of Comp_4 is
signal PG_s, EQ_s, PP_s : Std_Logic;
begin
-- Comparaison de P et Q
EQ_s <= '1' when unsigned(P_i) = unsigned(Q_i) else
'0';
PP_s <= '1' when unsigned(P_i) < unsigned(Q_i) else
'0';
PG_s <= '1' when unsigned(P_i) > unsigned(Q_i) else
'0';
-- affectation de la sortie avec l'entree chainage
EQ_o <= '1' when EQ_s = '1' and EQ_i = '1' else '0';

PP_o <= '1' when PP_s = '1' else
'1' when EQ_s = '1' and PP_i = '1' else
'0';
a) b)
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
COMP
0
1
2
3
P<Q
P=Q
P>Q
<
=
>
0
1
2
3
P
Q
COMP
0
1
2
3
P<Q
P=Q
P>Q
<
=
>
0
1
2
3
P
Q
Electronique numrique Cours Systme numriques, Tome 1
81

PG_o <= '1' when PG_s = '1' else
'1' when EQ_s = '1' and PG_i = '1' else
'0';
end Flot_don;
Exemple 5- 4: Description VHDL dun comparateur 4 bits modulaire
La fonction de comparaison de N bits peut-tre dcompose avec plu-
sieurs comparateurs 1 bits. Cette dcomposition peut-tre srie ou parall-
le. La figure5- 21 nous montre la dcomposition srie de la comparaison.
Nous commenons par les bits de poids faible. Cette dcomposition nces-
site moins de matriel. Par contre le temps de propagation travers le com-
parateur complet est plus important. Le temps de propagation est de :
tp
COMPN
=N * tp
COMP1
Figure 5- 21: Dcomposition srie de la comparaison
La figure5- 22, nous montre la dcomposition parallle de la comparai-
son. Chaque bit est compar puis une porte ET calcule le rsultat. Cette d-
composition ncessite une porte ET N entre. Lavantage est davoir un
temps de propagation beaucoup plus petit, celui-ci est de :
tp
COMPN
=1 * tp
COMP1
+tp
ET
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
A(0)
B(0)
'1'
A(1)
B(1)
COMP
P
P=Q =
Q
A(n-1)
B(n-1)
A =B
tpCOMPn =n * tpCOMP1
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
A(0)
B(0)
'1'
A(1)
B(1)
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
A(n-1)
B(n-1)
A =B
tpCOMPn =n * tpCOMP1
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
82
Figure 5- 22: Dcomposition parallle de la comparaison
5-11 Additionneur binaire parallle
Les ordinateurs ne peuvent additionner que deux nombres binaires la
fois, chacun de ces nombres pouvant avoir plusieurs bits. La figure5- 23
illustre l'addition de deux nombres de 5 bits.
i
Figure 5- 23: Addition binaire caractristique
On commence l'addition en additionnant les bits de poids faible du cu-
mulande et du cumulateur. Donc 1 +1 =10, ce qui signifie que la somme
pour ce rang est 0 avec un report de 1. Ce report est ajout au bit du cumu-
lande et du cumulateur du rang immdiatement gauche. Ainsi l'addition
au deuxime rang est 1 +0 +1 =10, ce qui, nouveau produit une somme
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
A(0)
B(0)
'1'
A(1)
B(1)
COMP
P
P=Q =
Q
A(n-1)
B(n-1)
A =B
'1'
'1'
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
A(0)
B(0)
'1'
A(1)
B(1)
COMP
P
P=Q =
Q
COMP
P
P=Q =
Q
A(n-1)
B(n-1)
A =B
'1'
'1'
cumulande 1 0 1 0 1 Mmoris dans l'accumulateur
+
cumulateur 0 0 1 1 1 Mmoris dans le registre B
somme 1 1 1 0 0
report 0 0 1 1 1
Electronique numrique Cours Systme numriques, Tome 1
83
de 0 et un report de 1. Ce report est ajout au bit du cumulateur et du cu-
mulande du rang immdiatement gauche et ainsi de suite pour les autres
rangs.
chaque tape de l'addition, nous additionnons 3 bits: le bit du cumu-
lande, le bit du cumulateur et le bit de report provenant de l'addition des
chiffres du rang prcdent. Le rsultat de l'addition de ces 3 bits est un
nombre 2 bits: le bit de somme et le bit de report, ce dernier devant tre
ajout au rang immdiatement gauche. Vous devez bien saisir que le
mme processus se rpte pour tous les rangs du nombre. Donc, si on par-
vient concevoir un circuit logique qui reproduit l'opration d'addition, il
nous restera alors simplement accoler des circuits identiques, un pour
chaque rang binaire. C'est ce que montre la figure5- 24.
Figure 5- 24: Schma fonctionnel d'un circuit additionneur parallle de 5 bits form de
5 additionneurs complets.
Sur cette figure, les variables A4, A3, A2, A1 et A0 reprsentent les bits
du cumulande mmoriss dans l'accumulateur (appel galement registre
A). Les variables B4, B3, B2, B1 et B0 sont les bits du cumulateur mmo-
riss dans le registre B. Les variables C4, C3, C2, C1 et C0 reprsentent les
bits de report des rangs correspondants. Les variables S4, S3, S2, S1 et S0
sont les bits de somme de chaque rang. Les bits correspondant du cumula-
teur et du cumulande sont appliqus un circuit logique appel addition-
neur complet, de mme que le bit de report gnr par l'addition des bits du
rang prcdent.
L'additionneur complet utilis pour chaque rang a trois entres: une en-
tre A, une entre B et une entre C, et deux sorties: une sortie somme et
une sortie report. Sur cette figure, on additionne des nombres de 5 bits;
dans les ordinateurs d'aujourd'hui les nombres s'chelonnent gnralement
de 8 128 bits.
Le montage de la figure5- 24 est appel un additionneur parallle parce
que tous les bits du cumulateur et du cumulande sont appliqus et addition-
ns simultanment. Donc les additions des bits de chacun des rangs se font
en mme temps. Il s'agit l d'une faon qui diffre de la technique manuel-
le, dans laquelle on additionne chaque rang un la fois en partant du bit de
poids faible. De toute vidence l'addition parallle est extrmement rapide.
B1 B2 B3 B4 B0
A1 A2 A3 A4 A0
S1 S2 S3 S4 S0
C0 C1 C2 C3 C4 C5
AC
n
o
0
AC
n
o
1
AC
n
o
3
AC
n
o
2
AC
n
o
4
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
84
5-11.1 Conception dun additionneur complet
Maintenant que nous savons qu'elle est la fonction d'un additionneur
complet, concevons un circuit logique qui effectue cette fonction. En pre-
mier lieu, nous devons construire une table de vrit numrant toutes les
combinaisons possibles pour les diverses valeurs d'entre et de sortie. On
peut voir cette table de vrit la figure5- 25 dans laquelle se trouvent les
trois entres A, B et Cen et les deux sorties C
S
et S. trois entres corres-
pondent 8 combinaisons possibles; pour chaque combinaison, on donne
dans la table les valeurs de sortie recherches. Comme il y a deux sorties,
nous allons concevoir indpendamment les circuits de chacune des sorties,
en commenant par celui de la sortie S.

Figure 5- 25: Table de vrit d'un additionneur complet.
La table de vrit dmontre qu'il y a 4 cas o S doit tre 1. En recourant
la mthode des sommes de produits, nous pouvons crire ainsi l'expres-
sion pour S:
Une fois simplifi par la mthode algbrique, on obtient :
(6)
Maintenant intressons-nous la sortie Cs de la table de vrit, l'expres-
sion de la somme de produits correspondant Cs est :
Une fois simplifi par la mthode algbrique, on obtient :
(7)
Les expressions (6) et (7) sont matrialises par le circuit de la figure5-
26, qui reprsente un additionneur complet.
A B
C
en
C
s
S

0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
AC
A
B
C
en
S
C
s
S ABC
en
#ABC
en
#ABC
en
#ABC
en
=
S A B ( ) C
en
=
C
s
ABC
en
#ABC
en
#ABC
en
#ABC
en
ABC
en
#ABC
en
#AB = =
C
s
A B ( )C
en
#AB =
Electronique numrique Cours Systme numriques, Tome 1
85
Figure 5- 26: Ensemble des circuits d'un additionneur complet
A
B
Cen
S
C
s
Chapitre 5: Circuits logiques combinatoires Version du 16 septembre 2010
86
87
Chapitre 6
Aspects techniques circuits combinatoires
Dans les chapitres prcdents, nous avons abord la conception des cir-
cuits logiques sans tenir compte de leurs modes de matrialisation. Il est
bon de garder en mmoire que les circuits lectroniques numriques sont
rgis par les lois de l'lectronique. Ce chapitre ne traitera que des compo-
sants pour les systmes combinatoires. Les lments squentiels seront vus
ultrieurement.
6-1 La reprsentation des tats logiques.
Comme nous n'avons reprsenter que deux tats logiques, plutt que
de leur associer chacun une tension donne, nous leur associerons une
plage de tensions. Ce mode de reprsentation prsente l'avantage de ne pas
imposer l'tablissement d'une tension prcise et permet mme d'envisager
la superposition d'un bruit sur cette tension sans quitter la plage significa-
Chapitre 6 Aspects techniques circuits combinatoires Version du 16 septembre 2010
88
tive.
6-2 Les familles logiques
Il existe une multitude de familles logiques. Citons les plus anciennes
dans leur ordre d'apparition sur le march.
Tableau6-1: Familles de circuits logiques
La famille TTL comporte plus de 800 types de circuits diffrents. Pour
faciliter son implantation (augmentation du degr d'intgration, niveau de
tension, vitesse, consommation), elle a donn naissance une srie de
sous-familles.
Ds 1976, une nouvelle technologie apparat (MOS complmentaire).
Elle porte le nom de CMOS (Complementary Metal Oxide Semiconduc-
tor). Comme la famille TTL, l'volution des technologies conduit la cra-
tion de nouvelles sous-familles.
Il faut remarquer la compatibilit des numros des circuits CMOS avec
ceux de la famille TTL. Deux sous-familles CMOS acceptent des tensions
d'alimentation diffrentes de la tension normale (5 volts)
Vcc
zone du niveau haut [H]VHmin
zone indtermineVLmax
zone du niveau bas [L]GND
Famille date type
RTL 1964 Resistor Transistor Logic
DTL 1964 Diode Transistor Logic
TTL 1969 Transistor Transistor Logic
Electronique numrique Le systme MU0 et ses outils
89
.
Tableau6-2: Famille TTL
Tableau6-3: Famille CMOS
6-3 Terminologie des circuits numriques
Pour faciliter la description des caractristiques lectriques des circuits
logiques, une convention d'criture a t adopte par les fabricants.
Srie commentaire consommation
(mW)
vitesse
(ns)
usage
74 standard 10 10 dpass
74H.. High speed 20 5 dpass
74L.. Low power 1 30 dpass
74S.. Schottky 20 3 dpass
74AS.. Advanced
Schottky
8 2 dpass
74LS.. Low power
Schottky
2 10 normal
74ALS Advanced LS 2 4 conseill
74F.. Fast 4 3 ponctuel
Srie commentaire consomma-
tion (mW)
vitesse
(ns)
usage
4000 alimentation de 3...8 V 0 100 dpass
45.. alimentation de 3...8 V 0 100 normal
74C.. broche compatible TTL 0 50 dpass
74HC.. High speed CMOS 0 10 conseill
74HCT.. HC niveau compatible
TTL
0 10 conseill
74AC.. Advanced CMOS 0 3 nouveau
74ACT.. AC niveau compatible
TTL
0 3 nouveau
Chapitre 6 Aspects techniques circuits combinatoires Version du 16 septembre 2010
90
Figure 6- 1: Caractristiques lectriques des circuits logiques
Dans ce schma, les sens des courants sont ceux des courants positifs.
Les courants entrants sont positifs.
6-3.1 Dfinition de la terminologie courante
ICC =courant d'alimentation
ICCH =courant d'alimentation pour toutes les sorties au niveau haut
ICCL =courant d'alimentation pour toutes les sorties au niveau bas
IIH =courant d'entre au niveau haut
IIL =courant d'entre au niveau bas
IOH =courant de sortie au niveau haut
IOL =courant de sortie au niveau bas
IOS =courant de court-circuit (sortie la masse)
VCC =tension d'alimentation pour le circuit TTL
VDD =tension d'alimentation pour le circuit CMOS
VIH =tension d'entre au niveau haut
VIL =tension d'entre au niveau bas
VOH =tension de sortie au niveau haut
VOL =tension de sortie au niveau bas
6-3.2 Tensions d'entre
Les tensions appliques aux bornes des entres des circuits intgrs nu-
mriques doivent appartenir aux zones de tensions admissibles. Pour un
circuit de type 74ALS00, une entre recevant une tension comprise entre 0
et 0,8 V sera considre au niveau logique 0. Une entre recevant une ten-
sion entre 2 et 5V sera considre comme une entre 1.
V I H
Paramtres lectriques
V tension
I courant
Lieu de mesure
I entre (Input)
O sortie (Output)
CC alimentation
Niveau d'activit
H haut (High)
L bas (Low)
LH transition LH
HL transition HL
I I I O
V I V O
GND
Electronique numrique Le systme MU0 et ses outils
91
Figure 6- 2: Reprsentation du niveau de la tension dentre
Il convient de noter que les valeurs de VIL (max) et VIH (min) dpen-
dent des technologies utilises.
6-3.3 Tensions de sortie
Il en est de mme pour les tensions de sortie qui seront dpendantes des
technologies. La valeur relle de la tension dpendant de la charge, nous
ne pouvons dfinir que des extrme.
6-3.4 Courant d'entre
Dans les sries TTL, le courant d'entre au niveau bas est sortant. De ce
fait, il prendra une valeur ngative.
tension d'entre srie TTL 74HCT... 74HC..
VIH (min) (V) 2,0 2,0 3,5
VIL (max) (V) 0,8 0,8 1,0
zone du niveau bas (L)
zone indtermine
VIL(max)=0,8V
zone du niveau haut (H)
VIH(min) = 2V
0,0
0,8
2,0
5,0
tension d'entre
tension de sortie 74LS.. 74ALS.. 74HCT... 74HC..
VOH (min) (V) 2,4 3,0 4,5 4,5
VOL (max) (V) 0,5 0,5 0,5 0,5
courant d'entre 74LS.. 74ALS.. 74HCT...* 74HC..*
IIH (max) (A) 20 20 1 1
IIL (max) (mA) -0,4 -0,1 0 0
* VCC =5V
Chapitre 6 Aspects techniques circuits combinatoires Version du 16 septembre 2010
92
6-3.5 Courant de sortie
Le courant au niveau haut tant sortant sera ngatif.
6-3.6 Immunit au bruit
Le bruit est un signal parasite induit dans le circuit qui vient se superpo-
ser au signal transmis. L'immunit au bruit est la tolrance d'amplitude que
supporte le circuit pour identifier encore correctement les signaux.
Figure 6- 3: Reprsentation de limmunit au bruit
La marge de sensibilit aux bruits au niveau haut VNH (Noise High) est
dfinie comme suit : VNH =VOH (min) - VIH (min)
De mme, au niveau bas, nous dfinirons VNL =VIL (max) - VOL
(max)
6-3.7 Facteur de charge
Une porte logique ne peut pas admettre un nombre illimit de portes
connectes sur sa sortie. Prenons le cas d'une porte 74ALS00 que nous sup-
posons charge par des portes du mme type. Nous examinerons deux cas.
courant de sortie 74LS.. 74ALS.. 74HCT...* 74HC.*.
IOH (max)
(mA)
-0,4 -0,4 -4 -24
IOL (max)
(mA)
8 8 4 4
* VCC =5V
zone du niveau haut (H)
VIH(min)
zone du niveau bas (L)
zone indtermine
VOL(max)
zone du niveau haut (H)
VOH(min)
zone de tension pour une
zone du niveau bas (L)
zone indtermine
VIL(max)
zone de tension pour une

VNL
VNH
Electronique numrique Le systme MU0 et ses outils
93
Figure 6- 4: Reprsentation du facteur de charge
Pour la sortie au niveau bas, nous aurons IOL =n IIL si n est le nombre
de portes. Comme IOL <IOL (max) =8 mA, et que IIL <IIL (max) =- 0,1
mA, on peut tirer une valeur maximum de n =8/0,1 =80.
Pour la sortie au niveau haut, nous avons IOH =n IIH, ce qui donne
pour les valeurs IOH =-0,4 mA et IIH =20 mA n =400/20 =20.
Nous dirons que la porte a une sortance de 20. Pour simplifier les cal-
culs, les fabricants ont dcid d'utiliser une charge unitaire correspondant
:
40 A dans l'tat haut et 1,6 mA dans l'tat bas,
Ces valeurs correspondent au courant d'entre pour la srie TTL stan-
dard. A l'tat haut, IIH (max) =40 A reprsente le courant maximum qui
circule dans une entre TTL standard. De mme, l'tat bas, IIL (max) =
1,6 mA reprsente le courant maximum dans l'entre l'tat bas. Bien que
ces caractristiques correspondent celles de la srie TTL standard, nous
les utiliserons pour exprimer les exigences d'entre/sortie des autres sries.
Exemple de calcul de la sortance d'un 74ALS00
Sortance basse =IOL (max) / 1,6 mA =8 / 1,6 =5
Sortance haute =IOH (max) / 0,04 mA =0,4 / 0,04 =10
Srie Entrance (UL) Sortance (UL)
TTL haut bas haut bas
7400 1 1 10 10
74H00 1,25 1,25 12,5 12,5
74L00 0,5 0,1 10 2,5
74S00 1,25 1,25 25 12,5
74LS00 0,5 0,25 10 5
74ALS00 0,5 0,06 10 5
Cas ou la sortie est au niveau bas
IOL
IIL
VOL
Cas ou la sortie est au niveau haut
IOH
IIH
Chapitre 6 Aspects techniques circuits combinatoires Version du 16 septembre 2010
94
Remarque: La plupart des familles ont des sortances haute et basse dif-
frentes. Lors de la conception des systmes, nous prendrons en compte
la valeur la plus dfavorable (la plus faible).
Pour les circuits CMOS, la rsistance d'entre extrmement leve fait
que ces circuits ont dans leurs familles une sortance trs grande (suprieure
50).
6-3.8 Les caractristiques temporelles
tpd =temps de commutation (tpd =tPHL ou tPLH)
tPHL =temps de commutation du niveau haut au niveau bas
tPLH =temps de commutation du niveau bas au niveau haut
Le sens de la commutation donn dans le nom est toujours celui de la
sortie. Le niveau de la tension au point de mesure dpend de la famille lo-
gique (ALS 1,3V).
Figure 6- 5: Reprsentation des caractristiques temporelles
6-4 Interface CMOS - TTL
Figure 6- 6: Interface CMOS-TTL
Au niveau bas, il nous faudra : n IIL (max) <IOL (max) et VOL <VIL
Au niveau haut, il nous faudra : n IIH <IOH et VOH >VIH
entre
sortie
tPHL tPLH
CMOS
VDD=5V
VO
IOL IIL TTL
TTL
TTL
au niveau bas
CMOS
VDD=5V
VO
IOH IIH TTL
TTL
TTL
au niveau
haut
Electronique numrique Le systme MU0 et ses outils
95
6-5 Interface TTL - CMOS
La tension de sortie du niveau haut de 2,4 V des circuits TTL n'est pas
compatible avec celle d'entre des circuits CMOS (3,5 V).
L'emploi d'une rsistance de polarisation contre VCC peut rsoudre no-
tre problme
Figure 6- 7: Interface TTL-CMOS
Au niveau haut IIH =1 A, IOH (max) =400 A, nous aurons pratique-
ment IIH =IOH et le courant dans R tant pratiquement nul, la plus petite
valeur de R nous conviendra.
Au niveau bas, IIL =0 , IOL (max) =8 mA, VO <VOL (max)
(VCC - VOL) =R * IOL
VCC - R * IOL =VOL <VOL (max)
VCC - VOL(max) <R * IOL
(VCC - VOL (max)) / IOL <R
Une autre solution consiste remplacer le circuit 74HC par un 74 HCT
dont les niveaux d'entres sont compatibles.
6-6 Collecteur ouvert
Pour faciliter la ralisation d'interfaces entre l'lectronique numrique et
l'lectronique analogique (par exemple diodes luminescentes) ou des l-
ments lectromcaniques (relais), les utilisateurs demandaient la possibili-
t de disposer de courants de sortie plus importants. Pour offrir cette
performance, les fabricants ont propos des circuits dont l'tage de sortie
est un transistor collecteur ouvert, ce qui permet l'utilisateur de disposer
de la totalit du courant dbit par le transistor.
CMOS
VCC
IR
IOL IIL TTL
R
VO
L
au niveau bas
CMOS
VO
IOH IIH TT
au niveau
haut
VCC
IR R
Chapitre 6 Aspects techniques circuits combinatoires Version du 16 septembre 2010
96
Figure 6- 8: Porte collecteur ouvert
Le circuit collecteur ouvert utilisera une charge extrieure dtermine
par le concepteur. Cette architecture offre la possibilit de coupler plu-
sieurs portes collecteur ouvert sur la mme charge et de raliser ainsi un
oprateur cbl. Le dimensionnement de la rsistance de charge dpendra
du nombre de circuits connects en entre et en sortie.
74LS00 74LS01
VOH (min) (V) 2.4 2.4(TTL)
VOL (max) (V) 0.4 0.4
VIH (min) (V) 2 2
VIL (max) (V) 0.8 0.8
IOL (max) (mA) 8 8
IOH (max) (mA) -0.4 0.1
IIL (max) (mA) -0.4 -0.4
IIH (max) (mA) 20 20
sortie collecteur ouvert
Ce symbole caractrise une sortie collecteur ouvert
Electronique numrique Le systme MU0 et ses outils
97
Figure 6- 9: Utilisation de portes collecteur ouvert
La porte en pointill marque une porte virtuelle ralise par le cblage.
Ce type de portes prsente l'avantage d'avoir ses entres/sorties sur un
mme conducteur, ce qui est particulirement avantageux si ces points sont
disperss sur diffrentes cartes. Une seule borne d'interconnexion sera n-
cessaire entre ces cartes. Le dimensionnement de Rp est possible en cri-
vant les contraintes V <VOL (max) au niveau bas, et V >VOH (min) au
niveau haut.
Dans le cas de l'exemple, le calcul donne :
V =VCC - Rp x ((3 x IOH) +(2 x IIH)) >VOH (min)
Rp <(VCC - VOH (min) ) / (( 3 x (-IOH (max)) ) +( 2 x IIH (max))
Rp <(5 - 2,4)) / (( 3 x (0,1)) +(2 x (0,02)) =(2,6) / (0,3 +0,04) =2,6 / 0,34
=7,6 KW
Une porte au niveau bas doit garantir le niveau bas, ce qui explique le
(1 x IOL) et (2 x IOH).
V =VCC - Rp x ((1 x IOL) +(2 x IOH) +(2 x IIL)) <VOL (max)
Rp >(VCC - VOL (max)) / ((IOL) +(2 x IOH) +(2 x IIL))
Rp >(5 - 0,4) / ((8) +(2 x 0,1) +(2 x (-0,1))) =4,6 / (8 +0,2 - 0,2) =4,6 / 8
=575 W
En conclusion : 575 W <Rp <7600 W
Pratiquement, bien que la valeur de Rp dpende de la configuration des
portes, une valeur de Rp entre 0,8 et 1 KW donne un rsultat satisfaisant.
V
74ALS00
A
B
C
D
E
F
74ALS01
VCC
Rp
Chapitre 6 Aspects techniques circuits combinatoires Version du 16 septembre 2010
98
6-7 Porte trois tats
Une porte trois tats est un circuit dont on se sert pour contrler le pas-
sage d'un signal logique. Il comporte trois tats de sortie (haut, bas et haute
impdance). Ce nouvel tat dit 'haute impdance' ne fait que rendre flottan-
te la ligne de sortie.
Ce type de circuits est abondamment utilis dans les processeurs pour
permettre la circulation bidirectionnelle de l'information.
Nous allons donner la description en VHDL synthtisable dune porte
trois tats.
library IEEE;
use IEEE.Std_Logic_1164.all;
entity Trois_Etats is
port(OE_i: in Std_Logic; -- Active la porte 3 etats
E_i: in Std_Logic ;-- Donnee dentree
S_o: out Std_Logic -- Sortie porte 3 etats
);
end Trois_Etats ;
architecture Flot_Don of Trois_Etats is
begin
S_o <= E_i when (OE_i = '1') else
Z;
end Flot_Don;
Exemple 6- 1: Description VHDL dune prote 3 etats
E
A Z
Porte passeur 3 tats
Symbole des sorties trois tats
E A Z
0 0 haute impdance
0 1 haute impdance
1 0 0
1 1 1
99
Chapitre 7
Mmoires
Une mmoire est un ensemble d'lments mmoires binaires. Ces l-
ments binaires (ou cases mmoires) sont de type non volatile (l'information
crite l'intrieur de chacune des cases mmoire n'est pas affecte lors de
l'ouverture du circuit d'alimentation), c'est le cas des ROM, PROM,
EPROM et EEPROM ou volatile c'est le cas des RAM.
7-1 ROM (Read-Only Memory)
Une mmoire morte (i.e. ROM) est une mmoire dont le contenu a t
dfini et ralis une bonne fois pour toutes au moment de la fabrication. La
fabrication de ROMs ne se conoit que pour des sries importantes (>
10.000 units). Cette programmation est faite directement sur le wafer (ga-
lette de silicium) l'aide des masques de programmation.
Chapitre 7: Mmoires Version du 16 septembre 2010
100
7-2 PROM (Programmable ROM)
Les PROMs sont des mmoires non volatiles, dont le contenu comme
dans le cas des ROMs, est dfini une fois pour toutes. Toutefois, contraire-
ment aux ROMs, elles sont programmables (1 seule fois) par l'utilisateur.
Il existe diffrents types de PROMs. Les noeuds de la matrice peuvent
comprendre soit des fusibles soit des jonctions ayant une faible tension de
claquage (anti-fusibles). Dans les deux cas, la programmation s'effectue en
slectionnant l'adresse dsire, en prsentant la donne sur les lignes de
sortie, et en alimentant pendant un bref instant (quelques centaines de ms)
le circuit avec une tension leve (10 15 V suivant les cas), ce qui a pour
effet de faire fondre le fusible (ouverture du circuit) ou de claquer la jonc-
tion (fermeture du circuit). Ce processus est videmment irrversible.
7-2.1 Principe
L'exemple le plus simple de mmoire morte fusibles 4x5 bits peut se
schmatiser de la faon suivante : un dcodeur 2 vers 4 (74139) avec sor-
ties actives l'tat bas permet de slectionner une ligne parmi 4. Exemple:
l'adresse A1 A0 =00, la ligne note 00 est force 0 et les autres lignes
sont 1. Dans ce cas les 5 bits de sortie ont la valeur 0. Avant programma-
tion toutes les sorties sont donc 0.

Figure 7- 1: Schma dune PROM
Aprs programmation, c'est dire aprs destruction de certains fusibles,
on peut obtenir le schma suivant:
dcodeur
K bits en sortie
1 ligne a0
parmi 2
n
00
01
10
11
n
Adresse
+V
Electronique numrique Cours Systme numriques, Tome 1
101
Figure 7- 2: PROM programme
Fonctionnement
Grce la rsistance de tirage une ligne de sortie vaut 1 en l'absence de
diode (liaison dtruite) entre elle et le fil d'adresse slectionne. Si par con-
tre, une diode est prsente, elle ramne le potentiel de la ligne sortie 0. Le
contenu de cette mmoire 20 bits est alors :
Remarque: Les liaisons entre les lignes de slection d'adresse (lignes
horizontales de la matrice), et les lignes de donnes (lignes verticales de
la matrice) ne peuvent tre de simples connexions, mais doivent tre
ralises l'aide de diodes. Les diodes servent viter un retour de cou-
rant depuis la ligne slectionne vers une autre qui ne l'est pas (court-
circuit):
adresse S
4
S
3
S
2
S
1
S
0
1 1 0 1 1 0 1
1 0 1 0 1 1 1
0 1 1 0 1 1 1
0 0 1 1 1 1 0
dcodeur
K bits en sortie
1 ligne a0
parmi 2
n
00
01
10
11
n
Adresse
+V
Chapitre 7: Mmoires Version du 16 septembre 2010
102

Figure 7- 3: Liaisons entre les lignes de slection d'adresse et les lignes de donnes
7-2.2 Ralisation pratique
Les PROM fusibles, qui ont t les premires mmoires non volatiles
commercialiss, taient en technologie bipolaire (c'tait la seule matrise
l'poque). Cette technologie est toujours utilise et malgr leur forte con-
sommation, les PROM bipolaires fusibles sont encore utilises pour les
circuits rapides. En effet les PROM bipolaires permettent des temps d'ac-
cs de l'ordre de 20 ns.
7-3 EPROM (Erasable PROM)
Les EPROMs sont des mmoires non volatiles programmables lectri-
quement puis effaables par UV.
Dans ce cas, les noeuds de la matrice sont constitus de transistors MOS
grille isole. Cette grille peut tre charge par influence en appliquant
une tension importante (10 15 V) entre le drain et le substrat. Une fois
charge, elle peut conserver sa charge de manire quasiment indfinie, ce
qui rend le transistor passant.
Le processus est rversible en irradiant la puce aux rayons ultraviolets
pendant plusieurs minutes, ce qui dcharge la grille par effet photolectri-
que.
R
+V
1
0
I
CC
Sortie
ligne selectionne
( 0)
ligne au repos
( 1)
Electronique numrique Cours Systme numriques, Tome 1
103
7-3.1 Principe
Chaque lment mmoire est compos d'un transistor MOS dont la
grille est compltement isole dans une couche d'oxyde. Par application
d'un tension suffisamment leve, qui est appele tension de programma-
tion, on cre des lectrons chauds ou lectrons ayant une nergie suffisam-
ment suffisante pour traverser la mince couche d'oxyde. Ces charges
s'accumulent et se retrouvent piges dans la grille, la couche d'oxyde entre
la grille et le silicium tant trop paisse pour que les lectrons puissent la
traverser. La cellule mmoire est alors programme.
Si maintenant, on veut effacer la mmoire, on expose la puce aux rayon-
nements U.V. Les photons (ou particules d'nergie lumineuse) communi-
quent alors leur nergie aux lectrons et leur font franchir la barrire
isolante dans l'autre sens. La cellule mmoire est efface.
Figure 7- 4: Principe de lEPROM
7-3.2 Exemple
La mmoire propose ci-dessous est une mmoire EPROM 16 bits. Cet-
te mmoire est appele mmoire NMOS car les lments mmoires sont
des transistors NMOS. Le problme de ces mmoires trs peu utilises est
la consommation d'nergie mme au repos ( cause des rsistances de tira-
ge). On leur prfrera les mmoires CMOS qui ne consomment que lors-
qu'elles sont sollicites (on remplace alors les rsistances de tirage par des
transistors PMOS).
Circuit ouvert
Aprs effacement (grve aux U.V.)
Circuit ferm
Aprs programmation
+
+
+
+
+
Chapitre 7: Mmoires Version du 16 septembre 2010
104
Figure 7- 5: Mmoire EPROM 4x4 bits aprs programmation
On utilise un dcodeur 2 vers 4 pour slectionner une ligne parmi qua-
tre. Si /CS est 0 alors le dcodeur est actif et si par exemple A1 A0 =0 0
alors la ligne 0 est force 0 (les autres lignes restent 1) on obtient donc
sur le bus de donnes O3 O2 O1 O0 =1 1 1 0. En effet seul le transistor de
la ligne 0 bit O0 est programm (grille flottante charge).
On utilise un buffer 3 tats pour dconnecter la mmoire du bus de don-
nes externe. Pour envoyer les donnes sur le bus de donnes il faudra donc
activer ce buffer 3 tats (conditions /CS =0 et /OE =0).
7-3.3 Timing d'une EPROM
A1
A0
3
2
1
0
7439
decode
2 vers 4
+VCC
O3
O2 O1 O0
CS
OE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ADDR
CS_L
OE_L
DATA
t
AA
t
OZ
t
OZ
t
OE
t
OH
t
OE
t
ACS
stable stable stable
t
AA max(t
AA
,t
ACS
)
valid valid valid
Electronique numrique Cours Systme numriques, Tome 1
105
Le temps d'accs en lecture tacs correspond au temps qu'il faut pour
fournir la donne aprs activation du botier ( CS_L =0 ) et des sorties
(OE_L =0 ). Il faut de plus que l'adresse soit stable pendant tout ce temps.
Ce temps d'accs correspond aux diffrents temps de propagation des por-
tes du circuit.
7-3.4 EPROM UV ou OTP
7-3.5 Les mmoires du commerce
Le cycle d'criture se fait avec un programmateur d'EPROM. L'criture
dans la mmoire ne peut se faire qu'aprs avoir effac celle-ci dans une
lampe UV (temps d'exposition entre 5 et 10 minutes). Lors de la phase
d'criture (quelques secondes) la broche /PGM est force 0 et les tensions
Vpp=12,7V et Vcc=6,25V sont appliques.

Le botier de cette mmoire doit tre muni d'une
fentre translucide pour laisser passer les U.V.
lors de la phase d'effacement, ce qui augmente
fortement le cot de ces mmoires. Pour en
rduire le prix, il existe les mmoires OTP (One
Time Programmable) qui sont des mmoires
EPROM sans fentre d'effacement.
Il existe diffrents types de mmoires
EPROM dont la taille est comprise entre
64 kbits et 4 Mbits avec un bus de donnes
de taille 1, 4 ou 8 bits. Quelle que soit la
taille du bus de donnes, la capacit d'une
mmoire est donne en kbits ou en Mbits,
donc en nombre d'units mmoire.Les
temps d'accs en lecture varient entre 50
ns et 100 ns selon les constructeurs.Le
circuit donn ci-contre est une mmoire
trs rpandue : la 27C64 (64 kbits rpar-
ties en 8ko ou 8kbytes). Cette mmoire
possde un bus d'adresse de 13 bits (2
13
=
8192 ) et un bus de donnes de 8 bits. On
retrouve les signaux de contrle actif
l'tat bas CE (activation du botier) et OE
(Output Enable : ouverture des sorties
mmoires sur le bus de donnes).
VPP
A12
A7
A6
A5
A4
A3
A2
A1
A0
DQ0
DQ1
DQ2
Vss
DQ3
DQ4
DQ5
DQ6
DQ7
A10
A11
A9
A8
NC
OE(G)
CE (E)
Vcc
PGM (P)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
Chapitre 7: Mmoires Version du 16 septembre 2010
106
7-4 Mmoires EEPROM et FLASH
Bien qu'en thorie semblables, les mmoires EEPROM et EPROM
Flash ne s'utilisent pas de la mme faon et n'offrent pas les mmes possi-
bilits en termes de capacit et de cot, les mmoires flash tant moins ch-
res et offrant des capacits bien suprieures aux mmoires E2PROM.
7-4.1 Mmoires EEPROM
Exemple : la mmoire X2816
On peut voir une EEPROM (ou E2PROM) de 2 faons :
soit comme une EPROM effaable lectriquement, ayant donc
les mmes caractristiques en lecture qu'une EPROM et pouvant
mme tre programme par un programmateur d'EPROM (on
remarquera que la broche /PGM de l'EPROM est remplace par
la broche /WE). Pour programmer la mmoire EEPROM, le cir-
cuit gnre les tensions de programmation partir du 5 V de
l'alimentation. Nul besoin donc de fournir une tension externe de
programmation.
soit comme une mmoire SRAM dont le temps de lecture trc =
100 ns et le temps d'criture twc=1 10 ms. On retrouve donc les
mmes chronogrammes qu'une mmoire SRAM, avec comme
seule diffrence le temps d'criture qui est lev.
Remarque: On peut retrouver une compatibilit entre les brochages
d'une SRAM 6264, d'une EPROM 2764 et d'une E2PROM 2864. Ces
mmoires (64kbits) peuvent donc tre interchanges sur une carte,

Cette mmoire de 16kbits (2
11
x8
bits) est comparable au niveau du
brochage et du nom de chaque bro-
che son quivalent SRAM 6216.
Une mmoire EEPROM est donc
comparable en terme fonctionnel
une SRAM (on peut crire ou lire
dans n'importe quelle case
mmoire).La seule diffrence est la
non-volatilit de la mmoire
EEPROM.
A7
A6
A5
A4
A3
A2
A1
A0
I/O
0
I/O
1
I/O3
I/O
4
I/O
6
I/O
5
I/O
7
A10
A9
A8
OE
CE
Vcc 1
2
3
4
5
6
7
8
9
10
11
12
24
23
22
21
20
19
18
17
16
15
14
13
I/O
0
Vss
WE
Electronique numrique Cours Systme numriques, Tome 1
107
condition de respecter les chronogrammes de fonctionnement propres
chacune des mmoires.
Les mmoires EEPROM sont moins utilises que les mmoires
EPROM (OTP) car bien plus chres. En effet une cellule mmoire en tech-
nologie E2PROM prend plus de place qu'en technologie EPROM.

Figure 7- 6: Schma interne de la mmoire X2816
7-4.2 Les mmoires Flash
Les mmoires flash sont plus rapides que les mmoires E2PROM (en
terme d'effacement et de programmation) mais ne permettent que l'efface-
ment total de la mmoire. En outre, certaines utilisent encore une haute ten-
sion de programmation (Vpp) de 12V, cependant les versions monotension
commencent se gnraliser, c'est un circuit pompe de charge interne
la flash qui s'occupe de fabriquer la tension de programmation Vpp.
Les EEPROM flash utilisent comme pour les mmoires EPROM un
seul transistor MOS par bit, ce qui explique les capacits mmoires com-
prises entre 128kbits et 64 Mbits.
La dnomination des botiers suit le mme principe que les mmoires
vues prcdemment. Ainsi le 28F256 peut remplacer un 62256 (mmoire
SRAM) ou un 28256 (mmoire EPROM). Attention, ceci n'est vrai que
pour une compatibilit broche broche et non au niveau des timing et des
fonctions internes chaque technologie.
X BUFFERS
LATCHES AND
DECODER
Y BUFFERS
LATCHES AND
DECODER
CONTROL
LOGIC
16.384-BIT
E
2
PROM
ARRAY
i/o BUFFERS
AND LATCHES
A
0
-A
10
ADDRESS
INPUTS
I/O
0
-I/O
7
DATA INPUTS/OUTPUTS
CE
OE
WE
Chapitre 7: Mmoires Version du 16 septembre 2010
108
Les mmoires flash sont utilises dans les PC (BIOS), ou dans les sys-
tmes embarqus pour mmoriser les programmes importants. Les nou-
veaux appareils grand public (tlphones portables, cartes mmoire des
appareils de photos et camscopes...) demandent de plus en plus de capa-
cit mmoire pour les interfaces graphiques et nouvelles fonctions. Les
mmoires flash sont donc en pleine expansion.
109
Chapitre 8
Circuits logiques programmables et ASIC
L'lectronique moderne se tourne de plus en plus vers le numrique qui
prsente de nombreux avantages sur l'analogique : grande insensibilit aux
parasites et aux drives diverses, modularit et (re)configurabilit, facilit
de stockage de l'information, etc...
Les circuits numriques ncessitent par contre une architecture plus
lourde et leur mode de traitement de l'information met en oeuvre plus de
fonctions lmentaires que l'analogique d'o dcoule des temps de traite-
ment plus long.
Aussi les fabricants de circuits intgrs numriques s'attachent-ils
fournir des circuits prsentant des densits d'intgration toujours plus le-
ve, pour des vitesses de fonctionnement de plus en plus grandes.
D'abord ralises avec des circuits SSI (Small Scale Integration) les
fonctions logiques intgres se sont dveloppes avec la mise au point du
transistor MOS dont la facilit d'intgration a permis la ralisation de cir-
cuits MSI (Medium Scale Integration) puis LSI (Large Scale Integration)
puis VLSI (Very Large Scale Integration). Ces deux dernires gnrations
ont vu l'avnement des microprocesseurs et micro-contrleurs.
Bien que ces derniers aient rvolutionn l'lectronique numrique par la
possibilit de raliser n'importe quelle fonction par programmation d'un
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
110
composant gnrique, ils traitent l'information de manire squentielle (du
moins dans les versions classiques), ne rpondant pas toujours aux exigen-
ces de rapidit.
Au dbut des annes 70 sont apparus les premiers composants (en tech-
nologie bipolaire) entirement configurable par programmation. La nou-
veaut rsidait dans le fait qu'il tait maintenant possible d'implanter
physiquement par simple programmation, au sein du circuit, n'importe
quelle fonction logique, et non plus de se contenter de faire raliser une
opration logique par un microprocesseur dont l'architecture est fige.
D'abord ddis des fonctions simples en combinatoire (dcodage
d'adresse par exemple), ces circuits laissent aujourd'hui au concepteur la
possibilit d'implanter des composants aussi divers qu'un inverseur et un
microprocesseur au sein d'un mme botier ; le circuit n'est plus limit un
mode de traitement squentielle de l'information comme avec les micro-
processeurs. L'intgration des principales fonctions numriques d'une carte
au sein d'un mme botier permet de rpondre la fois aux critres de den-
sit et de rapidit (les capacits parasites tant plus faibles, la vitesse de
fonctionnement peut augmenter).
La plupart de ces circuits sont maintenant programms partir d'un sim-
ple ordinateur type PC directement sur la carte o ils vont tre utiliss. En
cas d'erreur, ils sont reprogrammables lectriquement sans avoir extraire
le composant de son environnement.
De nombreuses familles de circuits sont apparues depuis les annes 70
avec des noms trs divers suivant les constructeurs : des circuits trs voi-
sins pouvaient tre appels diffremment par deux constructeurs concur-
rents, pour des raisons de brevets et de stratgies commerciales. De mme
une certaine inertie dans l'volution du vocabulaire a fait que certains cir-
cuits technologiquement diffrents ont le mme nom.
Le terme mme de circuit programmable est ambigu, la programmation
d'une FPGA ne faisant pas appel aux mmes oprations que celle d'un mi-
croprocesseur. Il serait plus juste de parler pour les PLD, CPLD et FPGA
de circuits architecture programmable ou encore de circuits rseaux lo-
giques programmables.
Ce domaine de l'lectronique est aussi celui qui a certainement vu la
plus forte volution technologique ces dernires annes :
en moins de 15 ans la densit d'intgration a t multiplie par
200 (2000 20 000 portes en 85 pour 72 000 4 000 000 en
2000)
en moins de 10 ans la vitesse de fonctionnement a t multiplie
par 6 (40 MHz en 91 pour 240 MHz en 2000)
la taille d'un transistor est passe de 1,2 m en 91 0,18 m en
2000.
les technologies de conception ont fortement volu, tel cons-
Electronique numrique Cours Systme numriques, Tome 1
111
tructeur initiateur d'un procd l'abandonne pour un autre, alors
que le concurrent le reprend son compte.
la tension d'alimentation est passe de 5 V 1,8 V diminuant
ainsi la consommation.
Aussi est-il trs difficile de s'y retrouver et de donner des ordres de gran-
deurs qui puissent tre compars. Nous tenterons dans cet expos une cla-
rification des choses dont la volont de simplification pourra tre
facilement prise en dfaut.
Paralllement ces circuits, on trouvera les ASIC (Application Specific
Integrated Circuits) qui sont des composants o le concepteur intervient au
niveau du dessin de la pastille de silicium en fournissant des masques un
fondeur. On ne peut plus franchement parler de circuits programmables.
Les temps de dveloppement long ne justifient leur utilisation que pour des
grandes sries.
Les circuits prdiffuss peuvent tre dvelopps aussi rapidement
qu'une FPGA.
Le temps de fabrication est plus long (3 semaines pour le MD100) pour
un temps de dveloppement de 8 semaines (selon le circuit et sans la fabri-
cation).
Ils sont surtout utiliss pour la faible consommation (quelques A voire
mme nA) et pour les circuits analogiques/numriques (oscillateurs, sour-
ces de courants, comparateurs, etc...).
Les PLD, CPLD et FPGA sont parfois considrs comme des ASIC par
certains auteurs. Le tableau ci-aprs tente une classification possible des
circuits numriques :

Nous nous intresserons surtout aux circuits architecture programma-
ble faible temps de dveloppement. Le principe de base des circuits nous
intressant ici consiste raliser des connexions logiques programmables
entre des structures prsentant des fonctions de bases. Le premier probl-
me va donc tre d'tablir ou non suivant la volont de l'utilisateur, un con-
tact lectrique entre deux points. Aussi, nous intresserons nous, avant de
circuits logiques
standards
74HC..
...
microprocesseurs
microcontroleurs
PLD, CPLD,
FPGA
Asic pr-diffuss
Asic pr-caractriss
Asic full custom
circuits
fonctionnement
programmable
circuits
architecture
programmable et
faible temps de
dveloppement
circuits temps de
dveloppement
important
Circuits
numriques

Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
112
passer aux circuits proprement dits et leur programmation, ces techno-
logies d'interconnexion.
Mais avant toutes choses, rappelons comment coder une fonction logi-
que.
8-1 Codage d'une fonction logique
La base d'une fonction logique, est toujours une fonction combinatoire.
Pour obtenir une fonction squentielle, il suffira ensuite de rinjecter les
sorties sur les entres, ce qui donnera alors un systme asynchrone. Si on
souhaite un systme synchrone, on intercalera avant les sorties, une srie
de bascules front, dont l'horloge commune synchronisera toutes les don-
nes et vitera bien des alas de fonctionnement.
Pour coder une fonction combinatoire, trois solutions sont classique-
ment utilises.
8-1.1 Sommes de produits, produits de somme et matrice PLA
(Programmable Logic Array)
N'importe quelle fonction peut tre code par une somme de produit,
par un produit de somme ou un mlange des deux. On peut immdiatement
en dduire une structure de circuits, appel matrice PLA (Programmable
Logic Array). La figure suivante reprsente une matrice PLA 4 entres et
4 sorties :
Electronique numrique Cours Systme numriques, Tome 1
113

Chacune des 4 entres et son complmentaire arrive sur une des 16 por-
tes ET 2x4=8 entres. Afin de simplifier la reprsentation, les 8 lignes ont
t reprsentes par une seule, chaque croix reprsentant une connexion
programmable (un fusible par exemple). La figure suivante propose un
principe de ralisation des fonctions de la matrice ET; la mise au niveau
logique 0 (NL0) d'une des entres I
X
impose un NL0 en sortie :

I I I I
matrice OU
programmable
matrice ET
programmable
1 2 3 0
O O O
O
2 3 0 1
I
0 1
I I
0 1
ET
I
S
cc
ET
S
V
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
114
et de la matrice OU, sur laquelle une entre au NL1 impose un NL1 en
sortie :

Ce type de structure est utilis dans certains circuits ASIC (Application
Spcific Integrated Circuit) et demande une densit d'intgration importan-
te : en effet pour n variables en entres, il faut 2
n
fonctions ET 2n entres
et au moins un OU 2
n
entres (il y a en effet 2
n
combinaisons possibles,
chaque combinaison dpendant de l'entre et de son complmentaire).
La plupart des applications n'exigent pas une telle complexit et on peut
se contenter d'une matrice ET programmable et d'une matrice OU fige. De
mme, il est peu probable d'utiliser tous les termes produits et on peut alors
limiter le nombre d'entres de la fonction OU. C'est le principe utilis par
les circuits programmable, appels au dbut PAL (Programmable Array
Logic), mais plus communment dsigns aujourd'hui sous le terme PLD
(Programmable Logic Device).
8-1.2 Mmoires
Une fonction combinatoire associe chacune de ces combinaisons d'en-
tre une valeur en sortie dcrite par sa table de vrit. C'est le principe de
la mmoire o pour chaque adresse en entre, on associe une valeur en sor-
tie, sur un ou plusieurs bits. La structure physique des mmoires fait appel-
le une matrice PLA dont la matrice ET est fige et sert de dcodeur
d'adresse et dont la matrice OU est programme en fonction de la sortie d-
sire
ET
S
ET
S
1
0
O
0
O
0
ET
S
1
ET
S
0
Electronique numrique Cours Systme numriques, Tome 1
115

Lorsqu'une adresse est prsente, par exemple I
3
I
2
I
1
I
0
=1111, la porte
ET concerne passe au NL1 (celle du bas dans l'exemple) et suivant les fu-
sibles laisss intacts sur la matrice OU, on a un mot diffrent en O
3
O
2
O
1
O
0
(0000 si tous les fusibles sont "grills" par exemple).
Ce principe utilis pour les mmoires, l'est aussi dans les CPLDs (Com-
plex Programmable Logic Devices), mais surtout dans les FPGAs (Field
Programmable Gate Arrays) sous le nom de LUT (Look Up Table).
8-1.3 Multiplexeur
Le multiplexeur permet galement de coder une fonction combinatoire,
comme le montre la figure suivante :
I
0
I
1
I
2
I
3
matrice OU
programmable
matrice ET
fixe
O
3
O
2
O
1
O
0
liaison
fusible
intact
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
116

A chaque valeur des entres E
0
et E
1
est associ un niveau logique d-
fini dans la table de vrit pour la sortie S. Ce niveau logique est impos
sur l'entre de programmation correspondante. Ce principe est utilis dans
les FPGA.
8-2 Technologie d'interconnexions
Comme nous venons de le voir, l'un des lments cl des circuits tudis
est la connexion programmable. Du choix d'une technologie dpendra es-
sentiellement :
la densit d'intgration
la rapidit de fonctionnement une fois le composant programm,
fonction de la rsistance l'tat passant et des capacits parasites
la facilit de mise en oeuvre (programmation sur site, reprogram-
mation, etc)
la possibilit de maintien de l'information.
Passons en revue quelques technologies classiquement utilises et leurs
caractristiques. Ces technologies sont ou pourraient tre utilises pour la
ralisation de mmoires. Il faut cependant garder l'esprit qu'hormis quel-
ques cas particuliers (circuit reprogramms en cours d'utilisation), le temps
d'criture reste secondaire, le circuit tant habituellement programm une
fois pour toutes avant utilisation.
8-2.1 Connexions programmable une seule fois (OTP : One Time
Programming)
Cellules fusible
Ce sont les premires avoir t utilises et elles ont aujourd'hui disparu
au profit de technologies plus performantes. Leur principe consistait d-
truire un fusible conducteur par passage d'un courant fourni par une tension
suprieure l'alimentation (12 25 V).
Cellules antifusible
En appliquant une tension importante (16 V pendant 1 ms) un isolant
entre deux zones de semi-conducteur fortement dopes, ce dernier diffuse
dans l'isolant et le rend conducteur. Chaque cellule occupe environ 1,8
S
entres de
programmation
de la fonction
1
E E
0
Electronique numrique Cours Systme numriques, Tome 1
117
m
2
(700 m
2
pour un fusible) ; cette technologie trs en vogue permet
une haute densit d'intgration.
Hormis la non reprogrammabilit, c'est la meilleure technologie (vites-
se et surtout densit d'intgration).
8-2.2 Cellules reprogrammables
Cellule transistor MOS grille flottante et EPROM (Erasable Pro-
grammable Read Only Memory)
L'apparition du transistor MOS grille flottante a permis de rendre le
composant bloqu ou passant sans application permanente d'une tension de
commande. Le principe consiste piger ou non ( l'aide d'une tension su-
prieure la tension habituelle d'alimentation) des lectrons dans la grille.
L'extraction ventuelle des lectrons pigs permet le retour l'tat initial.
Plusieurs technologies EPROM sont en concurrence :
UV-EPROM
Les connexions sont rinitialisable par une exposition un rayonnement
ultraviolet d'une vingtaine de minutes, une fentre tant prvue sur le com-
posant. L'effacement, dont la mise en oeuvre est lourde, n'est pas slectif
et ne peut se faire sur site. Ce principe n'est pas utilis pour les circuits qui
nous intressent.
EEPROM (Electrically EPROM)
L'effacement et la programmation se font cette fois lectriquement avec
une tension de 12 V et peuvent se faire de manire slective (la reprogram-
mation de tout le composant n'est pas ncessaire).
Une cellule demande toutefois 5 transistors pour sa ralisation, ce qui
conduit une surface importante (75 100 m
2
en CMOS 0,6 m) et rduit
la densit d'intgration possible.
D'autre part le nombre de cycles de programmation est limit 100 (en
CMOS 0,6 m) ou 10 000 (en CMOS 0,8 m) cause de la dgradation
des isolants.
La programmation ou l'effacement d'une cellule dure quelques millise-
condes.
Flash EPROM
L'utilisation de deux transistors par cellule uniquement (5 pour l'EE-
PROM) et une structure verticale permettent une densit d'intgration im-
portante (25 m
2
par cellule en CMOS 0,6 m) trois quatre fois plus
importante que l'EEPROM, mais quand mme 10 fois moins que la tech-
nologie antifusible.
Le nombre de cycle d'criture (10
5
10
6
) est galement plus grand que
pour l'EEPROM car l'paisseur de l'isolant est plus importante.
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
118
Par contre, la simplicit de la cellule lmentaire n'autorise pas une re-
programmation slective (ventuellement par secteur), ce qui n'est pas g-
nant pour le type de circuits qui nous intresse.
La tension de programmation et d'effacement est de 12 V, avec un
temps de programmation de quelques dizaines de s pour un temps d'effa-
cement de quelques milli-secondes.
Un des inconvnients des cellules flash et EEPROM, la ncessit dune
alimentation supplmentaire pour la programmation et l'effacement, est
palli par les constructeurs en intgrant dans le circuit un systme pompe
de charge fournissant cette alimentation. Le composant peut alors tre pro-
gramm directement sur la carte o il est utilis. On parle alors de compo-
sants ISP : In Situ Programmation ou encore suivant les sources, In System
Programmation.
Cellules SRAM transistors MOS classique
Ce principe est classiquement choisi pour les FPGA.
Le fait d'utiliser une mmoire de type RAM (donc volatile) impose la
recharge de la configuration chaque mise sous tension : une PROM srie
mmorise gnralement les donnes.
Ce qui peut paratre un inconvnient devient un avantage si on consid-
re l'aspect volutif du systme qui peut s'adapter un environnement ext-
rieur changeant et modifier sa configuration en fonction des besoins. On
pourra d'autre part facilement intgrer de la mmoire RAM dans le circuit.
Le choix d'une cellule SRAM (Static Read Only Mmory) 6 transis-
tors permet de bnficier d'un accs slectif et rapide (quelques ns) en
cours d'utilisation.
La taille d'une cellule n'est que deux fois plus forte (50 m
2
par cellule)
qu'avec une flash EEPROM.
Cette technologie, utilise pour les autres circuits VLSI (contrairement
aux EEPROM et Flash EPROM et leurs transistors grille flottante) per-
met de bnficier directement des progrs importants raliss dans ce do-
maine.
montage du circuit
non programm
programmation sur site reprogrammation
ventuelle
Electronique numrique Cours Systme numriques, Tome 1
119
Comme nous venons de la voir, la programmation sur site de ces circuits
est une ncessit absolue.
8-3 Architectures utilises
8-3.1 PLD (Programmable Logic Device)
Comme nous l'avons vu, d'abord appel PAL lors de sa sortie, ce circuit
utilise le principe de la matrice PLA rseau ET programmable. Bien que
pas trs anciens pour les dernires gnrations, les PLDs ne sont presque
plus utiliss pour une nouvelle conception. L'un de leurs avantages, la ra-
pidit, ayant disparu, les efforts de recherche des constructeurs portent plu-
tt sur les circuits plus forte densit d'intgration que sont les CPLDs et
les FPGAs.
Le fait que les PLDs soient la base de la conception des CPLDs, trs
en vogue aujourd'hui, justifie cependant leur tude.
Initialement bipolaire, les cellules de connexion sont aujourd'hui rali-
ses en technologie MOS grille flottante. La structure de base comprend
un circuit PLA dont seule la matrice ET est programmable.

Figure 8- 1: Structure dune PLD
La partie nomme OLMC (Output Logic MacroCell, dnomination
Lattice) sur la figure peut tre:
combinatoire, une simple connexion relie alors la sortie du OU
l'entre du buffer de sortie, dont la sortie est rinjecte sur le
rseau programmable ;
squentielle, le bloc OLMC tant alors une simple bascule D ;
versatile, il est alors possible par programmation de choisir entre
les deux configurations prcdentes.
Les PLDs de dernire gnration utilisent des OLMCs versatiles, dont
on donne ci-aprs la structure :
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
120

Figure 8- 2: Structure de lOLMC
Le multiplexeur 4 vers 1 permet de mettre en circuit ou non la bascule
D, en inversant ou pas les signaux. Le multiplexeur 2 vers 1 permet de rin-
jecter soit la sortie, soit l'entre du buffer de sortie vers le rseau program-
mable.
Dsignation
Elle est de la forme PAL EE T SS o EE reprsente le nombre d'entres,
SS le nombre de sorties et T le type du PAL: exemple : PAL 22V10.
Pour les dernires gnrations, on trouvera plutt la rfrence de type
GAL EE T SS, (GAL pour Generic Array Logic) pour dsigner un circuit
transistor MOS grille flottante, donc reprogrammable lectriquement.
Programmation
Les tapes de programmation sont assistes par ordinateur et prsentent
la chronologie suivante :
description de la fonction souhaite par entre schmatique ou
syntaxique; dans ce dernier cas on utilise un langage appropri
appel HDL (Hardware Description Language) comme le lan-
gage ABEL ou ventuellement VHDL (Very high speed integra-
ted circuit HDL). On en profite pour dfinir des vecteurs de test
de la fonction ralise.
simulation logique puis temporelle de la fonction ralise et
ventuellement retour l'tape prcdente.
compilation et gnration d'un fichier de programmation (fichier
au standard J EDEC).
programmation et test physique du composant.
Electronique numrique Cours Systme numriques, Tome 1
121
8-4 CPLD (Complex Programmable Logic Device)
La ncessit de placer de plus en plus de fonctions dans un mme circuit
a conduit tout naturellement intgrer plusieurs PLDs (blocs logiques) sur
une mme pastille, relis entre eux par une matrice centrale.
Sur la figure suivante chaque bloc LAB (Logic Array Block) de 16
macrocellules est l'quivalent d'un PLD 16 OLMCs. Ils sont relis entre
eux par une matrice d'interconnexion (PIA pour Programmable Intercon-
nect Array).
Un seul point de connexion relie entre eux les blocs logiques. Les temps
de propagation d'un bloc l'autre sont donc constants et prdictibles.
La phase de placement des diffrentes fonctions au sein des macrocel-
lules n'est donc pas critique sur un CPLD, l'outil de synthse regroupant au
maximum les entres sorties utilisant des ressources communes.
Figure 8- 3: Structure dun CPLD
L'tablissement des liaisons (routage) entre les diffrentes macrocellu-
les est encore moins critique : un seul point de connexion -cause du retard-
relie les LAB entre eux. Le temps de propagation des signaux est parfaite-
ment prdictible avant que le routage ne soit fait. Ce dernier n'influence
donc pas les performances du circuit programm.
Dans l'outil de synthse, la partie s'occupant du placement et du routage
est appele le "fitter" (to fit : placer, garnir). La technologie de connexion
utilise est gnralement l'EEPROM (proche de celle des PLDs) ou EE-
PROM flash.
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
122
8-5 FPGA (Field Programmable Gate Array)
Les blocs logiques sont plus nombreux et plus simples que pour les
CPLDs, mais cette fois les interconnexions entre les blocs logiques ne sont
pas centralises.

Figure 8- 4: Structure dune FPGA
Le passage d'un bloc logique un autre se fera par un nombre de points
de connexion (responsables des temps de propagation) fonction de la posi-
tion relative des deux blocs logiques et de l'tat "d'encombrement" de la
matrice. Ces dlais ne sont donc pas prdictibles (contrairement aux
CPLDs) avant le placement routage.
De la phase de placement des blocs logiques et de routage des con-
nexions dpendront donc beaucoup les performances du circuit en terme de
vitesse. Sur la figure suivante, pour illustrer le phnomne, on peut voir
une liaison entre deux blocs logiques (BA et BL) loigns, mais
passant par peu de points de connexion, donc introduisant un fai-
ble retard.
une liaison entre deux blocs proches (BD et BH) mais passant
par de nombreux points de connexion, donc introduisant un
retard important.
Electronique numrique Cours Systme numriques, Tome 1
123

L'utilisation optimale des potentialits d'intgration d'un FPGA condui-
ra un routage dlicat et pnalisant en terme de vitesse.
Il convient de noter que ces retards sont dus l'interaction de la rsis-
tance de la connexion et de la capacit parasite; cela n'a rien voir avec un
retard d la propagation d'un signal sur une ligne tel qu'on le voit en haute
frquence.
Ces composants permettent une forte densit d'intgration. La petitesse
des blocs logiques autorise une meilleure utilisation des ressources du
composant (au prix d'un routage dlicat)
Il devient alors possible d'implanter dans le circuit des fonctions aussi
complexes qu'un micro-contrleur. Ces fonctions sont fournies sous forme
de programme (description VHDL du composant) par le constructeur du
composant et appeles "megafunction" ou "core". Le terme gnrique clas-
siquement utilis pour les dsigner est "proprit intellectuelle" ou IP (In-
telectual Property).
Les FPGAs utilisent gnralement les technologies SRAM ou antifusi-
ble, selon les fabricants, Xilinx utilisant la technologie SRAM et ACTEL
tout comme ALTERA la technologie antifusible de prfrence.
8-6 Les outils de dveloppement des CPLDs et FPGAs
Ces outils vont permettre au concepteur de programmer le circuit par-
tir de la description de la fonction raliser. Cette description peut tre tex-
tuelle (VHDL, Verilog) ou graphique (symboles de fonction, graphes des
tats, chronogrammes).
BA
BL
BD
BH
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
124
La compilation va permettre dans un premier temps vrifier la cohren-
ce de la description et la syntaxe du langage utilis, puis d'effectuer une si-
mulation fonctionnelle dans un premier temps.
Aprs avoir fait une simulation fonctionnelle approfondie (l'outil utilis
pour la simulation est ModelSim), c'est dire avoir valid la conception et
la description, le synthtiseur gnre la netlist du circuit logique dj fonc-
tion du circuit cible utilis. Le synthtiseur n'est pas forcment propritaire
du fabricant de chip.
Le "placeur-routeur" effectue ensuite le placement et routage des blocs
logiques. Dans le cas des CPLDs et FPGAs, le "placeur-routeur" est en g-
nral propritaire du fabricant de ces circuits logiques.
La dernire tape, pas toujours applique, pour autant que le design soit
synchrone, est la vrification du timing ou le simulateur importe les temps
de propagation calculs en fonction du placement routage. On utilise gn-
ralement le mme testbench que pour la simulation fonctionnelle.

Description textuelle du comportement du circuit
Outil permettant la traduction de la description VHDL
en logique :
le SYNTHETISEUR
Le synthtiseur nous fournit une liste d'interconnexion
de primitives. Celles-ci seront dfinies pour la techno-
logie choisie.
Le placeur-routeur permet de raliser le placement rou-
tage de la liste d'interconnexion pour une technologie
donne. Cet outil est fourni par le fabricant des circuits
utiliss.
Le programmateur permet de programmer le circuit,
FPGA ou CPLD, avec le fichier de programmation cr
par l'outil prcdent. Le fabricant propose un program-
mateur, mais il existe des solutions gnrales.
Description en VHDL
Synthse
(traduction)
Liste d'interconnexion
de primitives
(netlist logique)
Placement routage
(intgration)
Programmation circuit
Electronique numrique Cours Systme numriques, Tome 1
125
Vient enfin la programmation du circuit et la vrification du fonction-
nement sur la carte. Si la simulation et la vrification on t faites correc-
tement, aucune erreur de fonctionnement ne doit apparatre.
8-6.1 Techniques de programmation
Le placeur-routeur transforme la description structurelle du circuit en
une table des fusibles consigne dans un fichier (J EDEC dans les cas sim-
ples, LOF, POF, etc., autrement). Pour la petite histoire, signalons que cet-
te table peut contenir plusieurs centaines de milliers de bits, un par
"fusible".
Traditionnellement, la programmation du circuit, opration qui consiste
traduire la table des fusibles en une configuration matrielle, se faisait au
moyen d'un programmateur, appareil capable de gnrer les squences et
les surtensions ncessaires. La tendance actuelle est de supprimer cette ta-
pe de manipulation intermdiaire, manipulation d'autant plus malaise que
l'augmentation de la complexit des botiers va de pair avec celle des cir-
cuits. Autant il tait simple de concevoir des supports force d'insertion
nulle pour des botiers DIL (dual in line) de 20 40 broches espaces de
2,54 mm, autant il est difficile et coteux de raliser l'quivalent pour des
QFP (Quad Flat PACK) et autres BGA (Ball Grid Array), de 100 plus de
1000 broches rparties sur toute la surface du botier. Une difficult du
mme ordre se rencontre pour le test : il est devenu quasi impossible d'ac-
cder, par des moyens traditionnels tels que les pointes de contact d'une
"planche clous", aux quipotentielles d'une carte. De toute faon, les
quipotentielles du circuit imprim ne reprsentent plus qu'une faible pro-
portion des noeuds du schma global : un circuit de 250 broches peut con-
tenir 25000 bascules.
Trois modes: fonctionnement normal, programmation et test
Fonctionnement normal, programmation et test: l'ide s'est impose
d'incorporer ces trois modes de fonctionnement dans les circuits eux-m-
mes, comme partie intgrante de leur architecture. Pour le test de cartes,
une norme existe : le standard IEEE 1149.1, plus connu sous le nom de
boundary scan du consortium J TAG (join test action group). Face la qua-
si-impossibilit de tester de l'extrieur les cartes multicouches avec des
composants monts en surface, un mode de test a t dfini, pour les VLSI
numriques. Ce mode de test fait appel une machine d'tats, intgre dans
tous les circuits compatibles J TAG, qui utilise cinq broches ddies:
TCK, une entre d'horloge ddie au test, diffrente de l'horloge
du reste du circuit.
TMS, une entre de mode qui pilote l'automate de test.
TDI , une entre srie.
TDO, une sortie srie.
TRST (optionnelle), une entre de rinitialisation asynchrone de
l'automate.
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
126
L'utilisation premire de ce sous-ensemble de test est la vrification des
connexions d'une carte. Quand le mode de test est activ, via des comman-
des ad hoc sur les entres TMS et TRST, le fonctionnement normal du cir-
cuit est inhib. Les broches du circuit sont connectes des cellules
d'entre-sortie ddies aux tests, chaque cellule est capable de piloter une
broche en sortie et de capturer les donnes d'entre. Toutes les cellules de
test sont connectes en un registre dcalage, tant l'intrieur d'un circuit
qu'entre les circuits, constituant ainsi une chane de donnes, accessible en
srie, qui parcourt l'ensemble des broches de tous les circuits compatibles
J TAG d'une carte. Les oprations de test sont programmes via des com-
mandes passes aux automates et des donnes entres en srie. Les rsul-
tats des tests sont rcuprables par la dernire sortie srie.
Les automates de test permettent d'autres vrifications que celles des
connexions il est possible de les utiliser pour appliquer des vecteurs de test
internes aux circuits, par exemple. C'est souvent de cette faon que sont ef-
fectus certains des tests la fabrication. L'ide tait sduisante d'utiliser
la mme structure pour configurer les circuits programmables. C'est ce qui
est en train de se faire : la plupart des fabricants proposent des solutions
plus ou moins drives de J TAG pour viter l'utilisateur d'avoir recours
un appareillage extrieur.
Programmables in situ (ISP)
Les circuits programmables in situ se dveloppent dans le monde des
PLDs et CPLDs en technologie FLASH. Du simple 22V10, des compo-
sants de plus de 1 million de portes quivalentes, il est possible de pro-
grammer (et de modifier) l'ensemble d'une carte, sans dmontage, partir
d'un port parallle de PC. Les technologies FLASH (CPLD) conservent
leur configuration en l'absence d'alimentation.
Reconfigurables dynamiquement, les FPGAs cellules SRAM offrent
des possibilits multiples de chargement de la mmoire de configuration:
Chargement automatique, chaque mise sous tension, des don-
nes stockes dans une mmoire PROM. Les donnes peuvent
tre transmises en srie, en utilisant peu de broches du circuit, ou
en parallle octet par octet, ce qui acclre la phase de configura-
tion mais utilise, temporairement du moins, plus de broches du
circuit. Plusieurs circuits d'une mme carte peuvent tre configu-
rs en coopration, leurs automates de chargement assurent un
passage en mode normal coordonn, ce qui est videmment sou-
haitable.
Chargement, en srie ou en parallle, partir d'un processeur
matre. Ce type de structure autorise la modification rapide des
configurations en cours de fonctionnement. Cette possibilit est
intressante, par exemple, en traitement de signal.
Electronique numrique Cours Systme numriques, Tome 1
127
8-7 PLDs, CPLDs, FPGAs : quel circuit choisir?
Dans le monde des circuits numriques les chiffres voluent trs vite,
beaucoup plus vite que les concepts. Cette impression de mouvement per-
manent est accentue par les effets d'annonce des fabricants et par l'usage
systmatique de la publicit comparative, trs en vogue dans ce domaine.
Il semble que doivent se maintenir trois grandes familles :
Les PLDs et CPLDs en technologie FLASH, utilisant une archi-
tecture somme de produits. La tendance est la gnralisation de
la programmation in situ, rendant inutiles les programmateurs
sophistiqus. Rservs des fonctions simples ou moyennement
complexes, ces circuits sont rapides (jusqu' environ 200 MHz)
et leurs caractristiques temporelles sont pratiquement indpen-
dantes de la fonction ralise. Les valeurs de frquence maxi-
mum de fonctionnement de la notice sont directement
applicables.
Les FPGAs SRAM, utilisant une architecture cellulaire. Propo-
ss pratiquement par tous les fabricants, ils couvrent une gamme
extrmement large de produits, tant en densits qu'en vitesses.
Reprogrammables indfiniment, ils sont devenus reconfigurables
rapidement (200 ns par cellule), en totalit ou partiellement.
Les FPGAs antifusibles, utilisant une architecture cellulaire
granularit fine. Ces circuits tendent remplacer une bonne par-
tie des ASICs prdiffuss. Programmables une fois, ils prsen-
tent l'avantage d'une trs grande routabilit, d'o une bonne
occupation de la surface du circuit. Leur configuration est abso-
lument immuable et disponible sans aucun dlai aprs la mise
sous tension ; c'est un avantage parfois incontournable.
8-7.1 Critres de performances
Outre la technologie de programmation, capacit et vitesse sont les ma-
tres mots pour comparer deux circuits. Mais quelle capacit, et quelle vi-
tesse?
Puissance de calcul
Les premiers chiffres accessibles concernent les nombres d'oprateurs
utilisables.
Nombre de portes quivalentes
Le nombre de portes est sans doute l'argument le plus utilis dans les ef-
fets d'annonce. En 2000 la barrire des 250 000 portes est largement fran-
chie. Plus dlicate est l'estimation du nombre de portes qui seront
inutilises dans une application, donc le nombre rellement utile de portes.
Nombre de cellules
Le nombre de cellules est un chiffre plus facilement interprtable : le
constructeur du circuit a optimis son architecture, pour rendre chaque cel-
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
128
lule capable de traiter peu prs tout calcul dont la complexit est en rela-
tion avec le nombre de bascules qu'elle contient (une ou deux suivant les
architectures). Trois repres chiffrs : un 22V10 contient 10 bascules, la fa-
mille des CPLDs va de 32 bascules quelques centaines et celle des
FPGAs s'tend d'une centaine quelques dizaines de milliers.
Dans les circuits architectures cellulaires, il est souvent trs rentable
d'augmenter le nombre de bascules si cela permet d'allger les blocs com-
binatoires (pipe line, codages one hot, etc.).
Nombre d'entres/sorties
Le nombre de ports de communication entre l'intrieur et l'extrieur d'un
circuit peut varier dans un rapport deux, pour la mme architecture interne,
en fonction du botier choisi. Les chiffres vont de quelques dizaines quel-
ques centaines de broches d'entre-sorties.
Vitesse de fonctionnement
Les comportements dynamiques des FPGAs et des PLDs simples pr-
sentent des diffrences marquantes. Les premiers ont un comportement
prvisible, indpendamment de la fonction programme; les limites des se-
conds dpendent de la fonction, du placement et du routage. Une difficult
de jeunesse des FPGAs a t la non-reproductibilit des performances dy-
namiques en cas de modification, mme mineure, du contenu d'un circuit.
Les logiciels d'optimisation et les progrs des architectures internes ont
pratiquement supprim ce dfaut; mais il reste que seule une analyse et une
simulation post-synthse, qui prend en compte les paramtres dynamiques
des cellules, permet rellement de prvoir les limites de fonctionnement
d'un circuit.
Consommation
Les premiers circuits programmables avaient plutt mauvaise rputa-
tion sur ce point. Tous les circuits actuels ont fait d'importants progrs en
direction de consommations plus faibles. Exemple marquant la famille
CPLD CoolRunner II de Xilinx.
8-8 ASIC (Application Specific Integrated Circuit)
Si les composants prcdents pouvaient tre dvelopps avec un simple
ordinateur, ceux que nous abordons maintenant ncessitent l'intervention
d'un fondeur qui produira le circuit demand partir des masques fournis
par son client. Ici encore, le terme programmable n'est pas des plus judi-
cieux, les connexions entre les lments tant dessines sur les masques.
Les temps et cots de productions sont importants. On distingue trois types
d'ASIC classs par ordre croissant de configurabilit.
Electronique numrique Cours Systme numriques, Tome 1
129
Les prdiffuss (gate arrays)
Ils contiennent une nbuleuse de transistors ou de portes interconnec-
ter avec les problmes de routage et de dlais que cela comporte.
Les prcactriss (standard cell)
On utilise cette fois des bibliothques de cellules standards placer sur
le semiconducteur
Les "fulls customs"
Ils sont entirement dfinissables par le client. Ces circuits conduisent
la ralisation de tous les composants VLSI comme les microprocesseurs.
8-9 Comparaison et volution
Il est difficile de comparer les ASICs et les CPLDs/FPGAs. Les mtho-
des et temps de dveloppement ne sont pas du tout les mmes. L'utilisation
des ASICs va surtout tre justifi par la production en grande srie du cir-
cuit raliser. Il faut cependant noter que trs marginaux en 1990, les
CPLDs et FPGAs ont pris en 2000 prs de 95% du march des ASICs.
En ce qui concerne les CPLDs et FPGAs uniquement, comme nous
l'avons prcis au dbut, il est trs difficile de donner des ordres de gran-
deurs et des lments de comparaison dans un domaine qui volue aussi ra-
pidement, et o la concurrence entre les constructeurs a tendance
brouiller les pistes. Les principaux critres de choix seront :
la vitesse de fonctionnement
le nombre d'entre/sorties
le nombre de portes
la consommation
le prix
Un bon rsum de la situation prsente les FPGAs comme des circuits
forte densit d'intgration et les CPLDs comme des circuits rapides mais
petits. Le tableau8-1 donne les principales caractristiques de chaque ca-
tgorie :
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
130
Tableau8-1: Comparaison entre les diffrents types de circuits logiques
La notion de nombre de portes supposant implicitement que toutes sont
utilises, on prfre souvent parler de portes quivalentes ou utilisables
(usable gates) pour caractriser la densit d'un circuit. Il existe un rapport
2 4 entre ces deux termes.
L'utilisation des proprits intellectuelles (IP) gratuite ou payante se g-
nralise de plus en plus, et permet facilement l'intgration de fonctions
complexes comme les microprocesseurs au sein des circuits. Ces fonctions
se prsentent comme un programme, optimis ou non pour un composant.
De mme, l'intrieur des FPGAs on trouve maintenant des zones optimi-
ses pour implanter de la mmoire (20 kbits dans un FLEX10K par exem-
ple) et des microprocesseurs trs performants comme des PowerPCs dans
les Virtex Pro de Xilinx.
L'utilisation de FPGA SRAM reconfigur en cours d'utilisation pour
s'adapter l'volution de l'environnement devient galement courante.
circuit MSI
( titre de
comparaison)
PLD CPLD FPGA
nombre de portes
(ordre de grandeur)
100 150 40 000 4 000 000
vitesse de fonctionne-
ment (ordre de gran-
deur)
100 MHz 200 MHz 240 MHz 100 MHz
technologie de con-
nexion
MOS grille
flottante
MOS grille
flottante
SRAM ou anti-
fusible
codage des fonctions PLA PLA et LUT LUT et MUX
Electronique numrique Cours Systme numriques, Tome 1
131
Voici un autre tableau pour la classification des circuits logiques pro-
grammables
PLD
Circuits logiques programmables
(Programmabble Logic Device)
CPLD
Complex PLD
FPGA
Field Programmable
Gate Array
SPGA
System Programmable
Gate Array
EPROM (UV)
EEPROM
ALTERA : MAX 7000
MAX 3000
ATMEL : ATF, ATV
LATTICE : ispLSI 2000, 5000,
et 8000; ispMACH4A
XILINX : XC9500, XPLA3
CYPRESS, ICT
SRAM, Anti-fuse
EPROM
ACTEL : MX, SX, A/SX
ALTERA : ACEX 1K,
FLEX 10K, FLEX 6000
ATMEL : AT40K
XILINX : Spartan, XC3000,
XC4000, XC5200,
QUICKLOGIC, ICT
~ 500 100'000
gates
~ 5000 250'000
gates
~ 100000 5'000000
gates
SPLD
Simple PLD
~ 0 500 gates
PROM
PAL, MMI 1970
EEPROM
GAL, LATTICE 1985
(structure standard)
LATTICE, ATMEL
SRAM, Anti-fuse
FLASH-EPROM
ACTEL : ProASIC 500K
ALTERA : APEX 20K
APEX II
Excalibur (ARM)
ATMEL FPSLIC (AVR)
QUICLOGIC : ESP (PCI)
XILINX : Virtex, Virtex II
VANTIS :
rachet par LATTICE
PHILIPS :
rachet par XILINX
Chapitre 8: Circuits logiques programmables et ASIC Version du 16 septembre 2010
132
133
Annexe 1
Bibliographie
Floyd Thomas-L, Villeneuve Martin - Systemes Numeriques; 9e dition.
Reynald Goulet
Ronald J .Tocci -Circuits numriques (thorie et applications) 2me dition.
Dunod
Mesnard Emmanuel - Du binaire au processeur; 2004, Ellipse
Philippe Larcher -Introduction la synthse logique. Eyrolles
J acques Weber, Maurice Meaudre -Le langage VHDL (cours et exercices)
2me dition. Dunod
Nol Richard -Electronique numrique et squentielle (pratique des langa-
ges de description de haut niveau). Dunod
J ohn F.Wakerly -Digital design (principles & practice) third edition updated.
Prentice Hall
Maurice Gaumain - Cours de systmes logiques; Fonctions standards
combinatoires; Aspects techniques
Etienne Messerli -Manuel VHDL EIVD
Philippe Darche -Architecture des ordinateurs. Vuibert
Annexe 1: Version du 16 septembre 2010
134
Alexandre Nketsa -Circuits logiques programmables Mmoires, CPLD et
FPGA. Ellipse
Mdiagraphie
http://www.xilinx.com/
http://jeanlouis.salvat.free.fr/A7/coursWeb/ROM
http://perso.wanadoo.fr/xcotton/electron/coursetdocs.htm
http://artemmis.univ-mrs.fr/iufm-genelec-forum/VHDL/page_html/
1_asic_fpga_cpld_w2000_html.htm
135
Annexe 2
Lexique
ABEL : langage de programmation des circuits de faible densit d'intgra-
tion.
ASIC (Application Specific Integrated Circuit) : circuit non programma-
ble configur lors de sa fabrication pour une application spcifique.
CPLD (Complex Programmable Logic Device) : circuit intgrant plu-
sieurs PLD sur une mme pastille.
EEPROM ou E2PROM (Electrical Erasable Programmable Read Only
Memory) : mmoire ROM programmable et effaable lectriquement.
E2PAL (Electrical Erasable PAL) : voir GAL
EPLD (Erasable PLD) : voir GAL.
EPROM (Erasable PROM) : PROM effaable par UV.
Flash EEPROM : EEPROM utilisant 2 transistors par point mmoire ; uti-
lis pour les connexions dans les CPLD.
FPGA (Field Programmable Logic Array) : rseau programmable hau-
te densit d'intgration.
FPLD (Fiel Programmable Logic Device) : terme gnrique pour les
CPLD et FPGA.
FPLS (Fiel Programmable Logic Sequencer) : ancien nom des PAL re-
gistre.
GAL (Generic Array Logic) : PLD programmable et effaable lectrique-
ment
ISP (In Situ Programmable) : caractrise un circuit reprogrammable sur
l'application.
JEDEC : organisme de normalisation, donnant son nom aux fichiers de
programmation des PLD.
Annexe 2: Version du 16 septembre 2010
136
LSI (Large Square Integration) : circuits intgrants quelques centaines
quelques milliers de transistors.
LUT (Lock Up Table) : nom donn aux cellules mmoire ralisant les fonc-
tions combinatoires dans les CPLD et FPGA.
MSI (Medium Square Integration) : circuits intgrants quelques centai-
nes de transistors.
MUX : abrviation pour multiplexeur
PAL (Programmable Array Logic) : ancien nom des PLD.
PLA (Programmable Logic Array) : rseau matrice ET et OU permet-
tant la ralisation de fonctions combinatoires.
PLD (Programmable Logic Device) : circuit logique programmable int-
grant une matrice ET programmable, une matrice OU fixe et plusieurs cel-
lules de sortie.
PROM (Programmable Read Only Mmory) : mmoire ROM program-
mable.
SPLD (Simple PLD) : par opposition aux FPLD, voir PLD.
SRAM (Static Random Acess Memory) : technologie utilise pour les
connexions dans les CPLD et FPGA.
SSI (Small Square Integration) : circuits intgrant quelques portes.
Verilog : langage de synthse des circuits numriques
VHDL (Very high speed or scale integrated circuits Hardware Descrip-
tion Language) : langage de modlisation et de synthse des circuits nu-
mrique.