Vous êtes sur la page 1sur 144

Electronique Numrique

1er tome

Systmes combinatoires

Etienne Messerli
Yves Meyer
Septembre 2010
Version 1.4

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 jurassien. J'ai repris celui-ci en apportant des modifications et en compltant certains chapitres. Jai
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 supports de cours crit par M. Maurice Gaumain.
Finalement le manuel a t spar en plusieurs tomes. Le prsent tome comprend toute la partie sur le combinatoire.
Je remercie M. Yves Meyer de sa collaboration et de m'avoir permis de rutiliser son support
de cours.
Je remercie tous les utilisateurs de ce manuel de mindiquer les erreurs quil comporte. De mme, si des informations semblent manquer ou sont incompltes, elles peuvent mtre transmises, cela permettra une mise jour rgulire de ce manuel.

Etienne Messerli

Contact
Auteurs:
e-mail :
Tl:

Etienne Messerli
etienne.messerli@heig-vd.ch
+41 (0)24 / 55 76 302

Yves Meyer
yves.meyer@eiaj.ch
+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
Reconfigurable & embedded
Internet : http://www.reds.ch
Digital Systems

R DS

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/

Table des matires

Chapitre 1 Introduction

Chapitre 2 Systmes de numration et codes

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
I

Titre chapitre

Vesion du 16 septembre 2010

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

II

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.
5-2.
5-3.
5-4.
5-5.

Somme de produits ........................................................................................ 55


Simplification des circuits logiques .............................................................. 56
Simplification algbrique .............................................................................. 57
Conception de circuits logiques combinatoires ........................................... 58
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
III

Titre chapitre

6-4.
6-5.
6-6.
6-7.

Vesion du 16 septembre 2010

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
Interface CMOS - TTL .................................................................................. 94
Interface TTL - CMOS .................................................................................. 95
Collecteur ouvert ............................................................................................ 95
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 Programmable Read Only Memory) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
UV-EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
EEPROM (Electrically EPROM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

IV

Table des matires

8-3.

8-4.
8-5.
8-6.

8-7.

8-8.

8-9.

Titre

Flash EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117


Cellules SRAM transistors MOS classique . . . . . . . . . . . . . . . . . . . . 118
Architectures utilises .................................................................................. 119
8-3.1.PLD (Programmable Logic Device) . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Dsignation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
CPLD (Complex Programmable Logic Device) ........................................ 121
FPGA (Field Programmable Gate Array) ................................................. 122
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
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
ASIC (Application Specific Integrated Circuit) ........................................ 128
Les prdiffuss (gate arrays) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Les prcactriss (standard cell) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Les "fulls customs" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Comparaison et volution ............................................................................ 129

Bibliographie 133
Mdiagraphie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Lexique 135

Titre chapitre

VI

Vesion du 16 septembre 2010

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 microinformatique, 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'importance 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

dans un nombre important de secteurs (jeux, tlcommunications, automatique, etc.).


L'augmentation des possibilits d'intgration (nombre de transistors par
mm2) conduit une nouvelle volution. Les circuits logiques programmables deviennent abordables. La programmation des petites applications se
trouve remplace par de la logique cble dans ces circuits programmables. Cette volution permet d'envisager une augmentation de la vitesse de
traitement des fonctions.
Jusqu' prsent, l'apprentissage de la logique se faisait travers la dcouverte des fonctions logiques lmentaires contenues dans les circuits
intgrs des familles 74xxx, dont on peut voir quelques types dans
figure 1- 1, page 2. Les exprimentations se limitaient aux fonctions proposes par les fabricants de ces circuits. La conception de fonctions logiques regroupant plusieurs de ces circuits ncessitait un cblage
consquent, et la ralisation d'un circuit imprim de grande surface.

7404

7402

7400

14

13

12

11

5
6

7408
14

13

12

11

10

14

13

7410
14

13

13

12

12

12

11

11

11

10

10

10

10

14

14

14

13

13

13

13

12

12

12

12

12

11

11

11

11

11

10

10

10

10

10

14

13

VCC

GND

VCC

GND

7411
1

GND

7420
VCC

GND

VCC

GND

7421
VCC

GND

VCC

7432
VCC

GND

14

9
GND

7430
VCC

GND

VCC

VCC

14

9
GND

Figure 1- 1 : Circuits logiques standards de la famille 74xx

L'apparition des circuits logiques programmables de type PLD (Programmable Logic Device), CPLD (Complexe PLD, figure 1- 2, page 3) ou
FPGA (Field Programmable Gate Array, figure 1- 2, page 3) 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 limitations, la place disponible dans le circuit choisi et/ou la vitesse de fonctionnement 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.

Electronique numrique

Cours Systme numriques, Tome 1

PLD

PLD

PLD

PLD

Programmable Interconect

PLD

(a)

PLD

PLD

PLD

(b)

= logic block

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) utilis 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, Hardware Description Language) qui a t cr pour le dveloppement 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 documentation.
Le langage VERILOG qui est proche du langage VHDL et qui
est surtout utilis aux Etats-Unis.

Chapitre 1: Introduction

Version du 16 septembre 2010

Le but de ce cours, est dans un premier temps de prsenter les systmes


logiques combinatoires et squentiels. Lobjectif principal du est de matriser 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 dveloppement de systmes numrique avec le langage VHDL. Cette mthodologie 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".

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 systmes. 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 convertit 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 numriques. Il s'agit des systmes de numration octale (base de 8) et hexadcimal (base de 16) qui servent tous les deux au mme but, soit celui de
constituer un outil efficace pour reprsenter de gros nombres binaires.
5

Chapitre 2: Systmes de numration et codes

Version du 16 septembre 2010

Comme nous le verrons, ces systmes de numration ont l'avantage d'exprimer 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 binaires 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 grandement 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 parlons de numration de position, soit:
Un nombre dans une base "b" entire positive s'crit:
N b = a n a n 1 a 1 a 0, a 1 a m
ce qui correspond aux oprations:
n

NB = an b + an 1 b

n1

(1)
1

+ + a1 b + a0 b +
1

(2)

a 1 b + + a m b
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.

Electronique numrique

Cours Systme numriques, Tome 1

2-2 Conversion Binaire - Dcimal


Le systme de numration binaire est un systme de numration de position 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:

1
124

16

+ 123

+ 022

+ 121

+ 120

(binaire)

= 2710

(dcimal)

Exemple 2- 1 : Conversion de nombre binaire en dcimal

Voyons un autre exemple pour un nombre ayant un plus grand nombre


de bits.

binaire

127 + 026 + 125 + 124 + 023 + 122 + 021 + 120

128 +

32

+ 16 +

= 18110 dcimal

Exemple 2- 2 : Autre exemple de conversion

Vous remarquez que la mthode consiste trouver les poids (les puissances de 2) pour chaque position du nombre o il y a un 1, puis additionner le tout. Remarquez que le bit de poids le plus fort a un poids de 27
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 20.

2-3 Conversion Dcimal - Binaire


Nous pouvons essayer dappliquer la mme dmarche que prcdement. Nous allons exprimer le nombre dcimal en binaire en utilisant la
formule de reprsentation de nombre en numration de position.
Lexemple 2- 3 nous montre la dmarche pour le nombre 158.

Chapitre 2: Systmes de numration et codes

Version du 16 septembre 2010

1102

5101

dcimal

8100

num. position
en dcimal

0001(1010)10 + 0101(1010)01 + 1000(1010)00 = ???2

binaire

Exemple 2- 3 : Conversion dcimal-binaire avec reprsentation de numration de position

Lexemple 2- 3 nest pas utilisable pour nous. Nous devrions tre capable, pour cela, de faire le calcul en base 2! Cette mthode nest pas utilisable 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 dmarche qui est base sur la numration de position en binaire. Le nombre dcimal 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:
4510 = 32 + 8 + 4 + 1 = 25 + 0 + 23 + 22 + 0 + 20 = 1 0 1 1 0 12
Notons qu'il y a un 0 vis--vis des positions 21 et 24, puisque ces positions 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 :
n

NB = an b + an 1 b

n1

+ + a1 b + a0 b

Si nous divisons NB par la base b, nous obtenons lexpression suivante :


NB
n1
n2
0
------ = ( a n b
+ an 1 b
+ + a 1 b )et ( a 0 )
b
a0 apparat comme le reste de la division de N entier par b; a1 est le reste
de la division du quotient par b; a2 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 2510.
Nous utilisons des divisions rptitives par 2 du nombre dcimal convertir. 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 position du bit de poids le plus fort (MSB).

Electronique numrique

Cours Systme numriques, Tome 1

25/2
12/2
6/2
3/2
1/2

=
=
=
=
=

12
6
3
1
0

reste
reste
reste
reste
reste

1
0
0
1
1

Poids faible (LSB)

Poids fort (MSB)

2510 = 1 1 0 0 12
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 inverse, soit la multiplication. La partie fractionnaire dun nombre peut sexprimer comme suit :
NB = a1 b

+ a2 b

+ + a m 1 b

m1

+ am b

Si nous multiplions NB par la base b, nous obtenons lexpression suivante :


b NB = a1 ( a2 b

+ + a m 1 b

m2

+ a m b

m1

a-1 apparat comme la partie entire de la multiplication de N fractionnaire 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,37510. Nous utilisons des multiplications successives par 2 du nombre
dcimal convertir. A chaque multiplication nous obtenons une partie entire 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
N10 = 0,375 correspond N2 = 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.

Chapitre 2: Systmes de numration et codes

Version du 16 septembre 2010

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.
.

83

82

81

80

8-1

8-2

8-3

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:

3728 = 3(82) + 7(81) + 2(80)


= 364 + 78 + 21
= 25010
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/8
4/8
26610

=
=
=
=

33 reste 2
4 reste 1
0 reste 4
4128

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 rsultat un nombre avec une partie fractionnaire plutt qu'un reste. On calcule 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 multipliant la partie dcimale par 8, on trouve un reste de 0,25 X 8 = 2. De mme, 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 facilit avec laquelle il est possible de passer d'un nombre octal un nombre
binaire. Cette conversion s'effectue en transformant chaque chiffre du

10

Electronique numrique

Cours Systme numriques, Tome 1

nombre octal en son quivalent binaire de trois chiffres. Voyez dans le tableau ci-dessous les huit symboles octaux exprims en binaire.
Chiffre octal

quivalent binaire

000

001

010

011

100

101

110

111

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
100

7
111

2
010

Donc le nombre octal 4728 est quivalent au nombre binaire


100111010.

2-4.4 Conversion binaire-octal


La conversion d'un nombre binaire en un nombre octal est tout simplement 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 tableau 2-1). titre d'illustration, convertissons 1001110102 en octal.
100
4

111
7

010
28

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 gauche 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
3

010
2

110
68

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 tableau 2-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.

11

Chapitre 2: Systmes de numration et codes

Version du 16 septembre 2010

Il ne faut surtout pas oublier que les chiffres hexadcimaux A F correspondent aux valeurs dcimales 10 15.
Hexadcimal

Dcimal

Binaire

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

10

1010

11

1011

12

1100

13

1101

14

1110

15

1111

Tableau 2-1 : Rapport entre hexadcimal, dcimal et binaire

La reprsentation hexadcimale est principalement utilise pour reprsenter un nombre binaire sous forme plus compacte. Un nombre en hexadcimal 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 160 = 1, le chiffre immdiatement gauche a un poids de 161 = 16, l'autre chiffre immdiatement gauche, un poids de 162 = 256, et ainsi de suite. Voici un exemple sur la faon
dont fonctionne ce processus de conversion.

12

Electronique numrique

Cours Systme numriques, Tome 1

35616

= 3162 +5161+ 6160


= 768
+ 80 + 6
= 85410

2AF16

= 2162 + 10161 + 15160


= 512
+ 160
+ 15
= 68710

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 conversion dcimal-octal, la rptition de division par 8. Donc, pour convertir 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 deviennent 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/16
1/16
42310

= 26 reste 7
= 1 reste 10
= 0 reste 1
= 1A716

Exemple 2- 9 : Conversion dcimal-hexadcimal

2-5.3 Conversion hexadcimal-binaire


Comme le systme de numration octal, le systme de numration hexadcimal se veut une faon abrge de reprsenter les nombres binaires. La
conversion d'un nombre hexadcimal en un nombre binaire ne pose vraiment pas de difficult, puisque chaque chiffre hexadcimal est remplac
par son quivalent binaire de 4 bits (tableau 2-2). Voici un exemple avec
9F216.

9F216

9
F
2
1001 1111 0010
= 1001111100102
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-

13

Chapitre 2: Systmes de numration et codes

Version du 16 septembre 2010

que groupe son chiffre hexadcimal quivalent. Au besoin, on ajoute des


zros gauche pour obtenir un dernier groupe de 4 bits.

11101001102

= 0011
3
= 3A616

1010
A

0110
6

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 correspondance devient un rflexe automatique, les conversions se font rapidement sans
calculs. C'est ce qui explique pourquoi le systme hexadcimal est si pratique 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 position 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 binaire et hexadcimal explique pourquoi le systme hexadcimal est devenu
une faon abrge d'exprimer de grands nombres binaires. Dans un ordinateur, 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 ordinateur, un nombre binaire peut tre: 1) un vrai nombre; 2) un nombre correspondant 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.
14

Electronique numrique

Cours Systme numriques, Tome 1

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 exprims 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 combine 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 changeant chaque chiffre pour son quivalent binaire; cela donne:
8
1000

7
0111

4
0100

dcimal
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 gnralement 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 quivalent binaire. En outre, il faut bien comprendre qu'un nombre BCD n'est
15

Chapitre 2: Systmes de numration et codes

Version du 16 septembre 2010

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 chiffre individuel qui est remplac par son quivalent binaire. titre d'exemple, prenons le nombre 137 et trouvons son nombre binaire pur puis son
quivalent BCD:
13710 = 100010012
13710 = 0001 0011 0111

(Binaire)
(BCD)

Le code BCD ncessite 12 bits pour reprsenter 137 tandis que le nombre 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 numrique ce sont des circuits logiques qui ont la charge d'effectuer ces conversions.

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 :
NBCD => 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 :
N2 => convertir en dcimal (voir 2-2, page <$elempagenum) => lexprim
en BCD

16

Electronique numrique

Cours Systme numriques, Tome 1

2-7 Rcapitulatif de diffrents codes


Nous donnerons un tableau des principaux codes. Il faut toutefois mentionner 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 utilisations.
Dcimal

binaire

octal

hexadcimal

Gray ou BR

Excdent 3

AIKEN

00

0000

00

0000

0011

0000

01

0001

01

0001

0100

0001

02

0010

02

0011

0101

0010

03

0011

03

0010

0110

0011

04

0100

04

0110

0111

0100

05

0101

05

0111

1000

1011

06

0110

06

0101

1001

1100

07

0111

07

0100

1010

1101

08

1000

10

1100

1011

1110

09

1001

11

1101

1100

1111

10

1010

12

1111

sur deux dcades

11

1011

13

1110

sur deux dcades

12

1100

14

1010

sur deux dcades

13

1101

15

1011

sur deux dcades

14

1110

16

1001

sur deux dcades

15

1111

17

1000

sur deux dcades

Tableau 2-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 renfermer 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-

17

Chapitre 2: Systmes de numration et codes

Version du 16 septembre 2010

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 majorit 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 27 = 128 lments cods. C'est
amplement suffisant pour reproduire toutes les lettres courantes d'un clavier et les fonctions de contrle comme (RETOUR) et (INTERLIGNE). Le
tableau 2-3 contient le code ASCII standard. Dans ce dernier, en plus du
groupe binaire de chaque caractre, on a donn l'quivalent hexadcimal.

0..3

NUL

DLE

Space

Nat

SOH

DC1

STX

DC2

"

ETX

DC3

EOT

DC4

ENQ

NAK

ACK

SYN

&

BEL

ETB

BS

CAN

HT

EM

LF

SUB

VT

ESC

Nat

Nat

FF

FS

<

Nat

Nat

CR

GS

Nat

Nat

SO

RS

>

SI

US

DEL

Tableau 2-3 : Liste partielle du code ASCII

18

Electronique numrique

Cours Systme numriques, Tome 1

Lgende:
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 transmission

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

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 accents 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!

19

Chapitre 2: Systmes de numration et codes

20

Version du 16 septembre 2010

Chapitre 3

Arithmtique binaire

Les diverses oprations arithmtiques qui interviennent dans les ordinateurs et les calculatrices portent sur des nombres exprims en notation binaire. 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 ncessaire d'enseigner aux ingnieurs la thorie complte de l'arithmtique
numrique, tout au moins pas avant qu'ils soient devenus des programmeurs expriments.
Dans ce chapitre, nous allons concentrer nos efforts sur les principes de
base qui nous permettent de comprendre comment les machines numriques (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.

21

Chapitre 3: Arithmtique binaire

Version du 16 septembre 2010

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 entiers 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 2N
de 0 2N-1

3-2 Addition Binaire


L'addition de deux nombres binaires est parfaitement analogue l'addition 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 dcimale:
376
+

461

837

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 donne 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 binaires et cela quel que soit le rang. Ces quatre cas sont:
0
1
1
1

+
+
+
+

0
= 0
0
= 1
1
= 10 = 0 + report de 1 sur le rang de gauche
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 additionne deux 1 plus un report de 1 provenant du rang de droite. Voici quelques exemples d'additions de deux nombres binaires:

22

Electronique numrique

Cours Systme numriques, Tome 1

011

(3)

1001

11,011

110

(6)

1111

10,110

1001

(9)

11000

110,001

Il n'est pas ncessaire d'tudier des additions ayant plus de deux nombres 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 numriques modernes peuvent gnralement raliser une opration d'addition
en quelques nanosecondes.
L'addition est l'opration arithmtique la plus importante dans les systmes numriques. Les oprations de soustraction, de multiplication et de division 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 binaire. 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 signe positif ltat 0 et au signe ngatif ltat 1. Nous appelons cette convention comme tant une reprsentation signe-grandeur. Nous pouvons voir
un exemple de cette reprsentation la figure 3- 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'quivalent binaire exact de la valeur dcimale prsente.

23

Chapitre 3: Arithmtique binaire

Version du 16 septembre 2010

A6

A5

A4

A3

A2

A1

A0

Bit de signe

Grandeur = 5210

A6

A5

A4

A3

A2

A1

A0

Bit de signe

= +5210

= -5210

Grandeur = 5210

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 complment 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.

24

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

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
1011012 = 4510.
101101

quivalent binaire de 45

010010

inversion de chaque bit pour obtenir le complment 1

010011

addition de 1 pour obtenir le complment 2


le complment 2 du nombre binaire initial

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 complment 2.
0001

quivalent binaire de 1 sur 4 bits

1110

inversion de chaque bit pour obtenir le complment 1

1111

addition de 1 pour obtenir le complment 2


le complment 2 du nombre 1, soit -1

3-3.3 Etude de nombres binaires signs en complment 2


Voici comment on crit des nombres binaires signs en utilisant la notation 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 figure 3- 2 pour +4510

Bit de signe

1
Bit de signe

= +4510

= -4510

Grandeur exacte

Complment 2

Figure 3- 2 : criture de nombres binaires signs dans la notation en complment 2.

25

Chapitre 3: Arithmtique binaire

Version du 16 septembre 2010

Si le nombre est ngatif, sa grandeur est le complment 2 de la grandeur exacte et son bit de signe est un 1 gauche du bit de poids le plus fort.
Voyez la figure 3- 2 la reprsentation du nombre -4510.
La complmentation 2 d'un nombre sign transforme un nombre positif 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 parvenons soustraire et additionner.
Dans de nombreuses situations, le nombre de bits est fix par la longueur 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:
+2

00010
11101

1
11110

(complment 1)
(ajouter 1)
(complment 2 du chiffre +2 sur 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 -2N-1, o N est le nombre de bits
de la reprsentation signe. Par exemple:
1000
= -24-1 = -23 = -8
10000 = -25-1 = -24 = -16
100000 = -26-1 = -25 = -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

= -28-1 = -27 = -128

La valeur positive la plus grande est :


01111111

= |10000000| - 1 = -27 -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 2N+1 valeurs diffrentes, en comptant le zro.
Dans le cas gnral dune reprsentation sur N bits, nous avons :
nombre de valeurs diffrentes 2N

26

Electronique numrique

Cours Systme numriques, Tome 1

reprsentation du zro :
valeur ngative
valeur positive

00000000
10000000 = -128
01111111 = +127

Do la plage de variation des nombres entiers signs avec une reprsentation en complment 2 sur N bits :
-2N-1 +(2N-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 gnralement de certains avantages quand vient le temps de construire des circuits.
Nous allons maintenant tudier comment les machines numriques additionnent et soustraient quand les nombres ngatifs sont crits dans la notation 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:
+9

1001

(cumulande)

+4

0100

(cumulateur)

+ 13

1101

(Somme)

Bit de signe

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. Notez 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

1001

(cumulande)

-4

1100

(cumulateur)

0101

+5

Bit de signe

27

Chapitre 3: Arithmtique binaire

Version du 16 septembre 2010

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 moment de l'addition du dernier rang. Ce report est toujours rejet d'o la somme 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:
-9

10111

+4

00100

-5

11011

Dans ce cas-ci le bit de signe de la somme est 1, ce qui indique un nombre ngatif. Comme la somme est un nombre ngatif, la rponse est le complment 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 -2N, o N est le nombre de bits de grandeur.
-124 + 123 +022 +121 +120 = -16 + 8 + 2 + 1 = -5

3-4.4 Cas 4: deux nombres ngatifs


-9

10111

-4

11100

-13

110011
ce report nest pas pris en considration

Le rsultat dfinitif est de nouveau ngatif (-13).

3-4.5 Cas 5: nombres gaux et opposs


-9

10111

+9

01001

100000
ce report nest pas pris en considration

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

28

Electronique numrique

Cours Systme numriques, Tome 1

diffre peu des cas examins prcdemment. Quand on soustrait un nombre 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 rsultat de cette addition reprsente la diffrence recherche. Le bit de
signe de la diffrence indique si l rponse est positive ou ngative et si on est en notation binaire exacte ou en notation en complment 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.
+9

01001

-4

11100

+5

100101
La retenue est rejete, le rsultat est donc 00101 = +5

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 caractristique de la notation en complment 2 explique pourquoi c'est la mthode
la plus utilise, puisqu'on peut additionner et soustraire en utilisant les mmes 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.

29

Chapitre 3: Arithmtique binaire

Version du 16 septembre 2010

+9

1001

+8

1000

0001
Bit de signe

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 dpassement (overflow) sur le rang du bit de signe. Une condition de dpassement 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 diffrents, 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 dbordement 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 signs.

1 0 0

multiplicande = 910

1 0 1

multiplicateur = 1110

1 0 0

1 0 0 1

produits partiels

0 0 0 0
1 0 0 1
1 1 0 0 0 1

produit final = 9910

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 exactement 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 premier 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 produit 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 multiplicateur est 1, de sorte que le dernier produit partiel est 1001, que l'on

30

Electronique numrique

Cours Systme numriques, Tome 1

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 multiplication est effectue de la faon dcrite ci-dessus quand le multiplicande 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 complment 2 pour obtenir un nombre positif et ce sont les rsultats de ces complmentations 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 opposs. 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 division 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.

31

Chapitre 3: Arithmtique binaire

Version du 16 septembre 2010

Voici deux exemples de divisions:


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

1 0

(10/4 = 2,5)

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 effectue l'addition.
La division de nombres signs s'effectue de la mme faon que la multiplication. 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 nombres dcimaux exprims sous forme BCD se comprend mieux en tudiant
deux cas qui peuvent survenir quand on additionne deux chiffres dcimaux.

3-7.1 Somme gale ou infrieure 9


Additionnons 5 4 en utilisant pour chacun leur reprsentation BCD
5
+

4
9

0101

BCD de 5

0100

BCD de 4

1001

BCD de 9

L'addition est effectue comme une addition binaire normale et la somme est 1001, soit le code BCD de 9. Voici un autre exemple: additionnons
45 33.

32

Electronique numrique

Cours Systme numriques, Tome 1

45
+ 33

78

0100

0101

BCD de 45

0011

0011

BCD de 33

0111

1000

BCD de 78

Dans cet exemple. Les codes de 4 bits associs 5 et 3 sont additionns 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 binaire 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 dcimaux 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 binaire.

3-7.2 Somme suprieure 9


Additionnons 6 et 7 en BCD:
6
+

13

0110

BCD de 6

0111

BCD de 7

1101

Code invalide 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 reprsentation est apparue parce qu'on a additionn deux chiffres dont la somme dpasse 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:
6
+

13
+
0001

0110

BCD de 6

0111

BCD de 7

1101

Somme non valide en BCD

0110

Additionner 6 pour corriger

0011

BCD de 13

Comme on le montre ci-dessus, l'addition de 0110 la somme non valide 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:
47
+ 35

82
+

0100

0111

BCD de 47

0011

0101

BCD de 35

0111

1100

Somme non valide dans le 1er chiffre

0110

Additionner 6 pour corriger

1000

0010

Somme BCD exacte

33

Chapitre 3: Arithmtique binaire

Version du 16 septembre 2010

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.

34

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 Boole parvient dcrire et analyser ces derniers.

4-1 Dfinitions
Nous allons commencer par donner quelques dfinitions.

35

Chapitre 4 Portes logiques et algbre boolenne

Version du 16 septembre 2010

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 valeurs 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 indiquant 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 logique numrique, on utilise d'autres expressions qui sont synonymes de 0 et
1. Certaines de ces expressions sont reprsentes dans le Tableau 4-1 cidessous.
Niv. logique 0

Niv. logique 1

Faux

Vrai

Arrt

Marche

Bas

Haut

Non

Oui

Ouvert

Ferm

Tableau 4-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 fonction logique. Parce qu'il n'y a que deux valeurs possibles, l'algbre boolenne 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 imaginaire... En fait, dans cette algbre, on ne retrouve que trois oprations lmentaires, voir ci-aprs.

36

Electronique numrique

Cours Systme numriques, Tome 1

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 fonctions possibles avec cette unique variable (22). La figure 4- 1 nous donne
le tableau des 4 fonctions de une variable avec leur quation logique.

Variable

Fonctions

F1.0 = constante = 0

F1.0

F1.1

F1.2

F1.3

F1.1 = A

F1.2 = non A = not A = A

F1.3 = constante = 1

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), page 42.

37

Chapitre 4 Portes logiques et algbre boolenne

Version du 16 septembre 2010

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 (24).
La figure 4- 2 nous donne le tableau des 16 fonctions de deux variables
avec leur quation logique.

Variables

Fonctions F2.x

A B C D E

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 = A B
F2.3 = A
F2.4 = NON A ET B = A B
F2.5 = B
F2.6 = (NON A ET B) OU (A ET NON B) = A B # A B = A 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) = A # B = A B voir 4-7.1 page 42
F2.9 = NON F2.6 =NON (A OU-exclusif B) = A B , voir 4-8.2 page 45
F2.A = NON F2.5 = NON B = B
F2.B = NON F2.4
F2.C = NON F2.3 = NON A = A
F2.D = NON F2.2
F2.E = NON F2.1 = NON(A ET B) = A B = A # B , voir 4-7.2 page 43
F2.F = NON F2.0 = constante = 1

Ltude des fonctions de deux variables nous fait dcouvrir les fonctions 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.

38

Electronique numrique

Cours Systme numriques, Tome 1

4-3 Tables de vrit


De nombreux circuits logiques possdent plusieurs entres mais seulement une sortie. Une table de vrit nous fait connatre la raction d'un circuit logique (sa valeur de sortie) aux diverses combinaisons de niveaux
logiques appliqus aux entres. La figure 4- 3 nous montre des tables de
vrit deux, trois et quatre colonnes d'entres.

a)

b)

c)
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 entres, il y en a seize. Pour une table de N entres, il y a 2N 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.

39

Chapitre 4 Portes logiques et algbre boolenne

Version du 16 septembre 2010

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 lexpression 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 figure 4- 4.

X= A # B

a)

A
X=A # B
B

b) porte OU (OR)

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 loprateur logique OU avec loprateur arithmtique daddition (+). Dans la
suite de ce manuel nous utiliserons le symbole # ou or pour loprateur logique 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 figure 4- 4 nous fait voir le symbole 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).

40

Electronique numrique

Cours Systme numriques, Tome 1

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 symboliquement par lexpression suivante :
X=AB

Dans cette expression, le signe signifie l'opration boolenne ET, dont


les rgles d'opration sont donnes dans la table de vrit de la figure 4- 5.

A X = AB

a)

A
X=AB
B

b) porte ET (AND)

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 logique 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 possible 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 figure 4- 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 (niveau 1). La sortie dune porte ET est inactive (niveau 0) si une seule des
entres est inactive (niveau 0).

41

Chapitre 4 Portes logiques et algbre boolenne

Version du 16 septembre 2010

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:
X = A
o le trait de surlignement reprsente l'opration NON. L'opration
NON porte galement le nom d'inversion ou de complmentation. On trouve un autre signe pour indiquer une inversion: il s'agit de point dexclamation (!). Donc :
!A = A

4-6.1 Le circuit INVERSEUR (NOT)


On peut voir la figure 4- 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.

A X = A
0

a)

X=A

b) porte NON (NOT)

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 lmentaires 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 figure 4- 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'inversion. Ainsi, la porte NON-OU a un fonctionnement analogue une por-

42

Electronique numrique

Cours Systme numriques, Tome 1

te OU suivie d'un INVERSEUR. L'expression de sortie d'une porte NONOU est X = A#B .
La table de vrit montre la figure 4- 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.

X = A#B

A
X=A#B

a)

b) porte NON-OU (NOR)

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 entres est active (niveau 1) uniquement lorsque toutes les entres sont inactives (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 :
X = A#B = A B

A
B

X=A . B

4-7.2 La porte NON-ET (NAND)


On peut voir la figure 4- 8 le symbole d'une porte NON-ET deux entres. 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 X = A B .
La table de vrit montre la figure 4- 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.

43

Chapitre 4 Portes logiques et algbre boolenne

Version du 16 septembre 2010

A X = AB

a)

X=A

b) porte NON-ET (NAND)

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 entres 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 :
X = AB = A#B

A
B

X=A # B

4-8 Circuits OU-exclusif (XOR) et NON-OU-exclusif


(XNOR)
Deux circuits logiques spciaux qui interviennent souvent dans les systmes 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-exclusif 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 combines pour que X = AB # AB . On abrge cette expression ainsi:
X = AB
On peut voir sur la figure 4- 9 la table de vrit ainsi que le symbole
d'une porte OU-exclusif.

44

Electronique numrique

Cours Systme numriques, Tome 1

B A X = AB
0

X = A B
B

a)

b) porte OU-exclusif (XOR)

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 indique 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 niveau haut seulement lorsque les deux entres sont des nivaux logiques
identiques. On peut voir la figure 4- 10 sa table de vrit ainsi que son
symbole logique. L'expression de ce dernier est : X = AB # AB . On abrge cette expression ainsi:
X = AB

A B X = AB
0 0

0 1

1 0

1 1

1
a)

X = A B
B
b) porte NON-OU-exclusif (XNOR)

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-exclusif 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.

45

Chapitre 4 Portes logiques et algbre boolenne

Version du 16 septembre 2010

Loprateur NON-OU-exclusif a une proprit particulire. Linversion


de la sortie peut tre reporte sur lune ou lautre des entres, soit :
A B= A B= A B
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 symboles MIL (norme amricaine) qui sont plus lisible. Par contre nous utiliserons la symbolique CEI pour indiquer linversion.

1.a
A

1
1.b
Symboles CEI

1.c
A

1.e
A

1.d
Symboles du cours

1.f
Symboles MIL

NON ou NOT
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'amplification se marque par un triangle.

46

Electronique numrique

Cours Systme numriques, Tome 1

A
B
A
B

F= A B

&
1.a
1

F= A B

1.b
Symboles CEI

F= A B

1.c

F= A B

B
1.e

F= A B

F= A B

B
1.d
Symboles du cours

1.f
Symboles MIL

ET ou AND

A
B
A
B

F= A#B

1
1.a

F= A#B

&

1.b
Symboles CEI

F= A#B

F= A#B

B
1.c

F= A#B

1.e

F= A#B

1.d
Symboles du cours

1.f
Symboles MIL

OU ou OR

A
B
A
B

F=A.B

&
1.a
1

F=A.B

1.b
Symboles CEI

F=A.B

B
A

1.c
F=A.B

F=A.B

B
A

1.e
F=A.B

1.f
Symboles MIL

1.d
Symboles du cours
NON-ET ou NAND

A
B
A
B

F=A#B

1.a
&
1.b
Symboles CEI

F=A#B

F = A# B

B
A
B

1.c

F=A#B

1.d
Symboles du cours

F=A#B

1.e
F=A#B
1.f
Symboles MIL

NON-OU ou NOR

47

Chapitre 4 Portes logiques et algbre boolenne

A
B

=1

F=A B

Version du 16 septembre 2010

F=A B

1.a

1.b

Symboles CEI

Symboles du cours

F=A B

B
1.c
Symboles MIL

OU EXCLUSIF ou XOR

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
figure 4- 13 comprenant trois entres A, B et C et une seule sortie X. En
recourant l'expression boolenne de chacune des portes, on peut facilement 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 comme 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.

A
B

X = A B # C

C
Figure 4- 13 : Un circuit et son quation boolenne

Voici la description en VHDL synthtisable du circuit de la figure 4- 13,


soit :
X <= (A and B) or C ;

48

Electronique numrique

Cours Systme numriques, Tome 1

Comme exemple supplmentaire, considrons le circuit de la figure 414. 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 loprateur OU sapplique dabord sur A et B. Ensuite loprateur ET est appliquer 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.

A
B

X = (A # B) C

C
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 figure 4- 16 deux exemples de circuits avec INVERSEURS. Dans la figure 4- 15(a), l'entre A passe par un INVERSEUR
dont la sortie est A . Cette sortie de l'INVERSEUR est runie dans une porte OU avec B, de sorte que l'quation de sortie de cette porte est gale
A # B.

X= A#B

X=A#B

a)

b)

Figure 4- 15 : Circuits comprenant des INVERSEURS

Dans la figure 4- 15(b), la sortie de la porte OU gale A # B, sortie qui


vient alimenter un INVERSEUR. La sortie de ce dernier est donc ( A # B ) ,
puisque toute l'expression est inverse.
Voici la description en VHDL synthtisable des deux circuits de la
figure 4- 15 :
a) X <= not A or B ;
b) X <= not (A or B) ;

49

Chapitre 4 Portes logiques et algbre boolenne

Version du 16 septembre 2010

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 expression. 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 raisonnement 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
Y = AC # BC # ABC . Cette expression boolenne est constitue de trois
termes ( AC , BC , ABC ) qui sont additionns logiquement. On dduit qu'il
nous faut une porte OU trois entres auxquelles sont appliqus respectivement les signaux AC , BC , ABC . 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 figure 4- 16 o est trac le schma final du circuit.

AC

BC

Y = AC # BC # ABC

ABC

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 Y = AC # BC , en VHDL :
Y <= (A and C) or (B and C) ;

b) soitY = ( AC ) ( BC ) , en VHDL :

50

Electronique numrique

Cours Systme numriques, Tome 1

Y <= (A and C) xor (not B and C) ;

b) soit

Y = C B , en VHDL :

Y <= not (A xor C) ;

4-12 Algbre de BOOLE


Nous avons vu comment l'algbre de Boole peut servir analyser un circuit logique et exprimer ce dernier sous forme mathmatique. Nous allons commencer par les deux postulats qui rgissent l'algbre de BOOLE.

4-12.1 Postulats
Nous avons deux postulats :
A#A = 1
AA = 0
Ces deux postulats traduisent le fait que l'inverse d'une variable ne peut
jamais prendre la mme valeur que la variable. Nous apprendrons ultrieurement qu'un manquement ces postulats est possible lors de rgimes transitoires 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 examinant 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
figure 4- 17 prsente le premier groupe de thormes dans lesquels X est
une variable logique prenant soit la valeur 0, soit la valeur 1.
X0 = 0
X1 = X
XX = X
XX = 0
X#0 = X
X#1 = 1
X#X = X
X#X = 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 correspondre une expression renfermant plus d'une variable. Par exemple, si nous

51

Chapitre 4 Portes logiques et algbre boolenne

Version du 16 septembre 2010

avons AB ( AB ) , 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:

X#Y = Y#X
XY = YX
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

(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 composition commutatives, donc que l'ordre de la multiplication ou de l'addition 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 composition 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 dvelopper 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 possible de mettre cette variable en facteur, comme on le fait en algbre ordinaire.
Il est facile de se rappeler des thormes (9) (14) puisqu'ils sont identiques 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 expression logique, c'est--dire pour obtenir une expression comptant moins de
termes. L'expression simplifie permet de raliser un circuit moins complexe 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

52

Electronique numrique

Cours Systme numriques, Tome 1

rvlent d'une grande utilit pour simplifier des expressions comprenant


des sommes ou des produits de variables complments. Voici ces deux
thormes:
(X # Y) = X Y
(17)
(X Y) = X # Y
(18)
Le thorme (17) affirme que la somme logique complmente de deux
variables est gale au produit logique des complments de ces deux variables. De mme, le thorme (18) stipule que le produit logique complment de deux variables est gal la somme logique des complments de
ces deux variables. La dmonstration de ces deux thormes se fait simplement 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 thormes l'expression suivante :
( AB # C ) = ( AB ) C
Le rsultat trouv peut tre simplifi une autre fois, car on y retrouve encore un produit logique complment. En vertu du thorme (18), il vient:

AB C = ( A # B ) C

Comme B = B , le rsultat dfinitif est alors:


( A # B ) C = AC # BC

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 pouvez dmontrer ces thormes titre dexercices.
XY#XZ#YZ = XY#XZ
(X # Y ) (X # Z ) (Y # Z) = (X # Y ) (X # Z )

(19)
(20)

53

Chapitre 4 Portes logiques et algbre boolenne

54

Version du 16 septembre 2010

Chapitre 5

Circuits logiques combinatoires

Au chapitre prcdent, nous nous sommes penchs sur l'tude de l'ensemble des portes logiques lmentaires et avons russi, au moyen de l'algbre 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 entres. 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 combinatoires. D'abord nous poussons plus avant la simplification (minimisation) des
circuits. Pour cela, nous utiliserons deux mthodes: les thormes de l'algbre 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
55

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

la forme d'une somme de produits, dont voici quelques exemples:

ABC # ABC

AB # ABC # CD # D

AB # CD # EF # GK

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 variables exprimes sous sa forme normale ou sa forme complmente. Par
exemple, dans la somme de produits ABC # ABC , 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 variables 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 ABC )

5-2 Simplification des circuits logiques


Ds qu'on dispose de l'expression d'un circuit logique, il peut tre possible 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 original mais qui requiert moins de portes.
A titre d'illustration, considrons le circuit de la figure 5- 1a) que l'on a
minimis pour obtenir le circuit de la figure 5- 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.

A
X = AB( A # BC)

C
a)

A
B

X = ABC
b)

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-

56

Electronique numrique

Cours Systme numriques, Tome 1

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 peuvent nous tre d'un grand secours pour simplifier l'expression d'un circuit
logique. Malheureusement, il n'est pas toujours facile de savoir quels thormes 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.

Z = ABC # AB ( AC )

Z = ABC # AB ( A # C )

thorme 18 (De Morgan)

Z = ABC # AB ( A # C )

annulation de la double complmentation

Z = ABC # ABA # ABC

distribution du ET

Z = ABC # AB # ABC
Z = A C ( B # B ) # AB

thorme 3
mise en facteur

Z = AC ( 1 ) # AB

thorme 8

Z = AC # AB

thorme 2

Exemple 5- 1 : Simplification algbrique

57

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

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 dterminer lquation du circuit. La table de vrit permet de spcifier le fonctionnement du circuit. Cette premire phase correspond la conception du
circuit. Les tapes suivantes nous permettrons de dterminer le schma logique. Il sagit alors des tapes de ralisation. La premire tape de conception 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 niveau logique de la sortie. Nous pouvons ensuite dterminer l'expression
boolenne du circuit partir de cette table de vrit. Voici la procdure gnrale 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 produit 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 complment 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 circuit 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. Lobjectif est de raliser le circuit le plus simple possible. Il sera moins cher et
souvent plus rapide!
Exemple :

58

No

Equation minterme

CBA

CBA

CBA

Electronique numrique

Cours Systme numriques, Tome 1

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 droite de la table de vrit. Nous pouvons numroter chaque ligne de la table
de vrit. Nous parlerons de lquation dun minterme. L'expression complte s'obtient en effectuant des OU logique de ces trois mintermes, ce qui
nous donne :
X = CBA # CBA # CBA

Nous pouvons crire cette expression logique sous une forme compacte
en indiquant uniquement le numro des mintermes 1, soit :
X = 2, 3, 7

Nous avons maintenant une quation logique non simplifie. La premire solution est dutiliser lalgbre de Boole pour rechercher lexpression 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 section, 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'envergure. 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 recherche. La figure 5- 3 nous fait voir trois exemples de tables de Karnaugh 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 chacune 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 figure 5- 3 a), la ligne BA = 00 de la table de vrit correspond la cellule 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 mme, 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.
59

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

Les autres cellules de la table de Karnaugh contiennent des 0. Le mme


raisonnement s'applique pour les tables trois et quatre variables.

BA

a)

BA

CB

00

01

11

10

CBA

CBA

CBA

CBA

CBA

CBA

CBA

CBA

CB

00

01

11

10

A 0

CBA

CBA

CBA

CBA

b)

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
figure 5- 2 nous allons tudier le cas de la case situe au croisement de CB
= 11 et A = 0 qui correspond au minterme = CBA . Nous avons trois cases
voisines, soit :
case voisine droite CB = 10 et A = 0, minterme = CBA
la variable B change
case voisine gauche CB = 01 et A = 0, minterme = CBA
la variable C change
case voisine en bas CB = 11 et A = 1, minterme = CBA
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

60

Electronique numrique

Cours Systme numriques, Tome 1

DC

00

01

11

10

00

01

11

10

BA

DCBA

ou

DCBA

A
1

DCBA

DCBA

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 figure 5- 4 reproduit la table Karnaugh correspondant une certaine
table de vrit trois variables. Il y a dans cette table deux 1 qui sont voisins 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 colonne de gauche avec la colonne de droite.

61

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

CB

00

01

11

10

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 logique des deux mintermes, soit :
minterme de la case du haut : CBA
minterme de la case du bas : CBA
CBA # CBA = CB ( A # A ) = CB 1

do lquation :
finalement

CB

5-5.4 Runion de quartets (groupes de quatre)


Il peut arriver qu'une table de Karnaugh contienne quatre 1 qui soient
adjacents. La figure 5- 5 regroupe plusieurs exemples de tels quartets. En
a) les quatre 1 sont voisins horizontalement, alors qu'en b), ils le sont verticalement. La table de c) renferme quatre 1 arrangs en carr qui sont considrs 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 lignes du haut et du bas et les colonnes droite et gauche sont considres
comme adjacentes.

62

Electronique numrique

Cours Systme numriques, Tome 1

DC
00
BA

01

11

10

00

01
11
10

0
1
0

0
1
0

0
1
0

0
1
0

CB
00
A
0
0
1
0

01

11

10

0
0

1
1

1
1

X = C

b)
X = BA

a)
DC
00
BA
00
0
01
0
11
0
10
0

01

11

10

0
1
1
0

0
1
1
0

0
0
0
0

DC
00
BA
00
1
01
0
11
0
10
1

X = CA

c)

01

11

10

0
0
0
0

0
0
0
0

1
0
0
1

X = CA

d)

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 adjacents. On peut voir la figure 5- 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.

DC

01

11

10

00

01

11

10

01

11

10

00

01

11

10

a)

DC

00

00

BA

X = A

BA

b)

X = C

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

63

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

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'limination de deux variables et une runion de huit 1, l'limination de trois
variables et ainsi de suite. La runion de 2n 1 permet de simplifier n variables. 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 correspondant 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 possibles. 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 possible d'utiliser plusieurs fois le mme 1.
f. Effectuez un OU logique entre tous les termes rsultant des runions.

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 impossibles 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 combinaisons 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 figure 5- 7.
Dans cette table aucun tat de la sortie Z ne figure pour les combinaisons CBA = 100 et CBA = 011. Nous avons not cela par un -. Ce - signifie une condition indiffrente. Plusieurs raisons peuvent expliquer la
prsence de conditions indiffrentes, la plus courante tant que dans cer-

64

Electronique numrique

Cours Systme numriques, Tome 1

taines situations ces combinaisons d'entre ne peuvent jamais survenir; par


consquent, il est inutile de prciser pour elles une valeur de sortie.

CB
A

00

01

11

10

Z=A
CB
A

00

01

11

10

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 mthodologie avec la table de vrit et la table de Karnaugh nest plus applicable. 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 mthodologie. Il sagira de dcomposer notre problme. Nous devrons tre capable
didentifier des sous-fonctions.
Nous avons besoin dtudier les principales fonctions standards combinatoires. 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

65

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

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 entre de X bits dcoder (slection), une entre de validation (enable), et 2X
(=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 dispose dune entre de 1 bit et dune entre de validation. Il dispose donc 2
sorties (21).

EN Sel
0
0
1
1

Sortie1 Sortie0

0
1
0
1

0
0
0
1

Sel

0
0
1
0

nSortie0
nSortie1

EN

X/Y
Sel

En

EN

nSortie0

nSortie1

Figure 5- 8 : Dcodeur 1 2 avec entre enable

Nous remarquons que les dcodeurs ont frquemment des sorties actives basses. Nous verrons que cela est utile dans le cas de son utilisation

66

Electronique numrique

Cours Systme numriques, Tome 1

comme gnrateur de fonction. Voir Dcodeur en gnrateur de fonctions, page 69.

ALS139
(2)
(3)

1A
1B
1in

X/Y 0
1
2
3

1
2
EN

(1)

2A (14)
2B (13)
2in (15)

(4)
(5)
(6)
(7)

1Y0
1Y1
1Y2
1Y3

(12)
(11)
(10)
(9)

2Y0
2Y1
2Y2
2Y3

ALS139 en dcodeur 2/4


Figure 5- 9 : Exemple de circuit standard avec 2 dcodeurs 2 4

La figure 5- 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 22 combinaisons possibles pour la slection. Ce dcodeur dispose dautre part dun
signal dactivation (enable). Lorsque celui-ci est inactif (tat logique 1, actif bas), toutes les sorties sont inactives (tat 0). Lorsque le signal dautorisation (enable) est actif, la sortie correspondant au code de la slection
est active.

EN Sel1 Sel0 Y3 Y2 Y1 Y0

X/Y

Sel0
Sel1

1
1
1
1

0
0
1
1

0
1
0
1

0
0
0
1

0
0
1
0

0
1
0
0

1
0
0
0

En

1
2
EN

0
1
2
3

Y0
Y1
Y2
Y3

Figure 5- 10 : Dcodeur 2 4 avec enable

Nous allons donner la description en VHDL synthtisable du dcodeur


prsent sur la figure 5- 10.

67

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

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.

ALS138

A
B
C

(1)
(2)
(3)

G1
G2A
G2B

(6)
(4)
(5)

X/Y
1
2
4
&
EN

0
1
2
3
4
5
6
7

(15)
(14)
(13)
(12)
(11)
(10)
(9)
(7)

Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7

ALS138 en dcodeur 3/8


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 ( G1, G2A, G2B ).
EN = G1 G2A G2B

68

Electronique numrique

Cours Systme numriques, Tome 1

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 activent quatre dcodeurs 3 8. Nous obtenons ainsi un dcodeur 6 32 (voir
la figure ci-dessous).

A0
A1
A2
A3
A4

Dec 3 8
1 X/Y

Dec 3 8
1 X/Y

2
4

OUT0
OUT1
......
OUT7

2
4

Dec 3 8
1 X/Y

OUT8
OUT9
......
OUT15

En

En

2
4

En

Dec 3 8
1 X/Y

2
OUT16 4
OUT17
......
OUT23

OUT24
OUT25
......
OUT31

En

Dec 2 4
1 X/Y 0
2

Enable

En

1
2
3

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.
F = CBA # CBA # CBA # ... # CBA
F = ( ( CBA ) ( CBA ) ( CBA ) ... ( CBA ) )

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 dcodage correspondant aux 1 de la fonction. Le problme nous cotera un dcodeur 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.

69

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

5-8.3 Exemple d'application


Reprenons le transcodeur BCD Excdent 3 / BCD 8421.

A
B
C
D

1
2
4

'1'

&

1
2
4
&
'0'

X/Y

X/Y

0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7

F1

F2

F3

F0

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 unique la valeur d'une de ses 2n entres de donnes, le numro de l'entre slectionne 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.

70

Electronique numrique

Cours Systme numriques, Tome 1

Sel In1 In0 Sortie


0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Sel

0
1
0
1
0
0
1
1

In0
Sortie
In1

MUX
TDV compacte
Sel

Sortie

0
1

In0
In1

Sel

In0

In1

0
1

Sortie

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 multiplexage. 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.

ALS157
G
A/B
1A
1B
2A
2B
3A
3B
4A
4B

(15)
(1)
(2)
(3)
(5)
(6)
(11)
(10)
(14)
(13)

EN
G1
1
1

MUX

(4)

1
1

(7)

1
1

(9)

1
1

(12)

1Y
2Y
3Y
4Y

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.

71

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

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 figure 5- 16 nous prsente un multiplexeur 4 1. Le signal de slection comprend 2 bits. Ds lors le nombre dentres est de 4, car il y a 22
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.

Sel1 Sel0
En Sel1 Sel0
0
1
1
1
1

0
0
1
1

Sortie

0
1
0
1

0
D0
D1
D2
D3

D0

D1

D2

MUX
Sel1..0

0
1

En

EN

D0
D1
D2
D3

0
1
2
3

Sortie

0
3

En

D3

Sortie

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


figure 5- 16. Nous utilisons linstruction with...select qui dcrit directement
le fonctionnement dun multiplexeur.

72

Electronique numrique

Cours Systme numriques, Tome 1

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 suivante.

73

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

ALS153
(14)

(2)

B
1G
1C0
1C1
1C2
1C3
2G
2C0
2C1
2C2
2C3

(1)
(6)
(5)
(4)
(3)
(15)
(10)
(11)
(12)
(13)

0
G
3
1
EN MUX
0
1
2

G
A
B
C
D0
D1
D2
D3
D4
D5
D6
D7

1Y

(9)

2Y

(7)
(11)
(10)
(9)
(4)
(3)
(2)
(1)
(15)
(14)
(13)
(12)

ALS151
0
0
1 G
7
2
0
1
2
3
4
5
6
7

(5)
(6)

Y
W

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 circuits.

A0
A1
A2
A3
A4
A5

MUX

D48
D49
......
D63

16->1

MUX

D32
D33
......
D47

16->1

MUX

D16
D17
......
D31

16->1

MUX
4->1

MUX

D0
D1
......
D15

16->1

sortie

Figure 5- 18 : Extension du multiplexeur

5-9.2 Multiplexeur en gnrateur de fonction


Le multiplexeur 16->1 rpond l'quation :
15

Y = G

Di ( DCBA )i
i=0

15

F =

i ( DCBA )i
i=0

Si l'on compare cette quation celle de la premire forme canonique


d'une fonction, on remarque la similitude des deux expressions.
74

Electronique numrique

Cours Systme numriques, Tome 1

Dans un premier temps il nous sera toujours possible de raliser une


fonction 4 variables avec un multiplexeur 16->1, en posant :
Di = i

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 fonction sous la forme suivante :
15

15

i ( DCBA )i = D i ( CBA )i # D i ( CBA )i

F =

i=0
7

i=0
7

i=8

i ( CBA )i # D ( i + 8 ) ( CBA )( i + 8 )

F = D

i=0
7

i=0

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

L'identification avec la formule de Y nous donne:


G= 1

Di = D i # ( D ( i + 8 ) )

75

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

5-9.3 Exemple d'application


Prenons comme exemple un transcodeur BCD Excdent 3 en BCD
8421
D C B A F3

F2

F1

F0

D C B A F3

F2

F1

F0

Dans une premire tape, pour nous assurer que toutes nos fonctions dpendent bien de toutes les variables, nous allons utiliser la mthode de la
table de Karnaugh.
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

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
F1

F3 = ( D C ) # ( D B A )
F2 = ( C B ) # ( C B A ) # ( C A )
F1 = ( B A ) # ( B A ) = A B

76

F2

0 0 1 1 D

B A

F0 = A

B A

B A

F0

Electronique numrique

Cours Systme numriques, Tome 1

Nous constatons que :


F3 est une fonction de D, C, B et A
F2 est une fonction de C,B et A
F1 est une fonction de B et A
F0 est une fonction de A

F3 = f(DCBA)
F2 = f(CBA)
F1 = f(BA)
F0 = f(A)

Pour tablir une comparaison, nous pouvons valuer le cot avec des
portes logiques.
portes

fonctions

Nb. entres

F3

F2

F1

0,5

0,33

0,75

0,50

0,5

0,33

0,66

F0
1

0,16

F3..0
3 0,50
7 1,75
3 1,00

4
8
total

0,83

1,16

1,08

0,16

3,25

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 infrieur 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 :

77

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

premire table

deuxime table

0 et 0

(0 et 1) ou (1 et 0)

impossible

(0 et -) ou (- et 0)

1 et 1

(1 et -) ou (- et 1)

- et -

Num.

Fx

F2

F1

Calcul pour la fonction F2 des Di = ( C i ) # ( C i + 4 )

78

!C

( i + 4 )

Di

!C

!C

!C

!C

!C

!C

!C

Electronique numrique

Cours Systme numriques, Tome 1

Calcul pour la fonction F1 des Di = ( C i ) # ( C i + 4 )

!C

!C

!C

!C

!C

(i + 4)

Di

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.

ALS153
A
B
C

(14)
(2)

0
1
EN
0
1
2
3

"0"
"1"

0
3
MUX
(7)

(9)

F2

F1

Figure 5- 19 : Schma obtenu partir des deux fonctions de lexemple

5-10 Comparateur
La fonction de comparaison de deux nombres binaires est trs frquemment utilise. Un comparateur est un circuit qui indique si deux nombres
binaires sont plus grands, gaux ou plus petits. Dans le cas dun circuit modulaire, il y a trois entres afin de savoir si les bits prcdents sont plus
grands, gaux ou plus petits.
La figure 5- 20 a) nous donne le symbole CEI dun comparateur dgalit avec lentre = pour la chanage. La figure b) nous donne le symbole
CEI dun comparateur 4 bits modulaire avec les trois sorties <, = et >.

79

Chapitre 5: Circuits logiques combinatoires

0
1
2
3

COMP

Version du 16 septembre 2010

P=Q

P<Q
P=Q
P>Q

<
=
>
0
1
2
3

a)

COMP

b)

Figure 5- 20 : Symbole CEI de comparateurs

Voici la description en VHDL synthtisable du comparateur 4 bits modulaire.

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';

80

Electronique numrique

Cours Systme numriques, Tome 1

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 plusieurs comparateurs 1 bits. Cette dcomposition peut-tre srie ou parallle. La figure 5- 21 nous montre la dcomposition srie de la comparaison.
Nous commenons par les bits de poids faible. Cette dcomposition ncessite moins de matriel. Par contre le temps de propagation travers le comparateur complet est plus important. Le temps de propagation est de :
tpCOMPN = N * tpCOMP1

A(0)

'1'

B(0)

A(1)

COMP

tpCOMPn = n * tpCOMP1

P=Q

COMP

=
B(1)

P=Q

A(n-1)

P
=

B(n-1)

COMP

P=Q

A=B

Figure 5- 21 : Dcomposition srie de la comparaison

La figure 5- 22, nous montre la dcomposition parallle de la comparaison. Chaque bit est compar puis une porte ET calcule le rsultat. Cette dcomposition ncessite une porte ET N entre. Lavantage est davoir un
temps de propagation beaucoup plus petit, celui-ci est de :
tpCOMPN = 1 * tpCOMP1 + tpET

81

Chapitre 5: Circuits logiques combinatoires

A(0)

P
'1'

B(0)

Version du 16 septembre 2010

COMP

P=Q

Q
P

A(1)
'1'

B(1)

A(n-1)

P
'1'

B(n-1)

COMP

P=Q
A=B

COMP

P=Q

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 figure 5- 23
illustre l'addition de deux nombres de 5 bits.
i
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

Figure 5- 23 : Addition binaire caractristique

On commence l'addition en additionnant les bits de poids faible du cumulande 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 cumulande et du cumulateur du rang immdiatement gauche. Ainsi l'addition
au deuxime rang est 1 + 0 + 1 = 10, ce qui, nouveau produit une somme

82

Electronique numrique

Cours Systme numriques, Tome 1

de 0 et un report de 1. Ce report est ajout au bit du cumulateur et du cumulande du rang immdiatement gauche et ainsi de suite pour les autres
rangs.
chaque tape de l'addition, nous additionnons 3 bits: le bit du cumulande, 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 parvient 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 figure 5- 24.

B4
C5

B3
C4

AC
no 4
S4

A4

B2
C3

AC
no 3
S3

A3

B1
C2

AC
no 2
S2

A2

B0
C1
AC
no 0

AC
no 1
S1

A1

C0

S0

A0

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 mmoriss 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 cumulateur et du cumulande sont appliqus un circuit logique appel additionneur 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 entre 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 figure 5- 24 est appel un additionneur parallle parce
que tous les bits du cumulateur et du cumulande sont appliqus et additionns 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 manuelle, 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.

83

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

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 premier 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 figure 5- 25 dans laquelle se trouvent les
trois entres A, B et Cen et les deux sorties CS et S. trois entres correspondent 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.

Cen

Cs

B
S
Cen

AC
Cs
A

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'expression pour S:
S = ABC en # ABC en # ABC en # ABC en

Une fois simplifi par la mthode algbrique, on obtient :


S = ( A B ) C en

(6)
Maintenant intressons-nous la sortie Cs de la table de vrit, l'expression de la somme de produits correspondant Cs est :
C s = ABC en # ABC en # ABC en # ABC en = ABC en # ABC en # AB

Une fois simplifi par la mthode algbrique, on obtient :


C s = ( A B )C en # AB

(7)
Les expressions (6) et (7) sont matrialises par le circuit de la figure 526, qui reprsente un additionneur complet.

84

Electronique numrique

Cours Systme numriques, Tome 1

A
B
Cen

Cs

Figure 5- 26 : Ensemble des circuits d'un additionneur complet

85

Chapitre 5: Circuits logiques combinatoires

86

Version du 16 septembre 2010

Chapitre 6

Aspects techniques circuits combinatoires

Dans les chapitres prcdents, nous avons abord la conception des circuits 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 composants 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-

87

Chapitre 6 Aspects techniques circuits combinatoires

Version du 16 septembre 2010

tive.
Vcc
zone du niveau haut [H]VHmin
zone indtermineVLmax
zone du niveau bas [L]GND

6-2 Les familles logiques


Il existe une multitude de familles logiques. Citons les plus anciennes
dans leur ordre d'apparition sur le march.
Famille

date

type

RTL

1964

Resistor Transistor Logic

DTL

1964

Diode Transistor Logic

TTL

1969

Transistor Transistor Logic

Tableau 6-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 Semiconductor). Comme la famille TTL, l'volution des technologies conduit la cration 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)

88

Electronique numrique

Le systme MU0 et ses outils

.
Srie

commentaire

consommation
(mW)

vitesse
(ns)

usage

74

standard

10

10

dpass

74H..

High speed

20

dpass

74L..

Low power

30

dpass

74S..

Schottky

20

dpass

74AS..

Advanced
Schottky

dpass

74LS..

Low power
Schottky

10

normal

74ALS

Advanced LS

conseill

74F..

Fast

ponctuel

Tableau 6-2 : Famille TTL

Srie

commentaire

consommation (mW)

vitesse
(ns)

usage

4000

alimentation de 3...8 V

100

dpass

45..

alimentation de 3...8 V

100

normal

74C..

broche compatible TTL

50

dpass

74HC..

High speed CMOS

10

conseill

74HCT..

HC niveau compatible
TTL

10

conseill

74AC..

Advanced CMOS

nouveau

74ACT..

AC niveau compatible
TTL

nouveau

Tableau 6-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.

89

Chapitre 6 Aspects techniques circuits combinatoires

Version du 16 septembre 2010

VIH

V
I

I
O
CC

tension
courant

entre (Input)
sortie (Output)
alimentation

II
VI

Niveau d'activit

Lieu de mesure

Paramtres lectriques

H
L
LH
HL

haut (High)
bas (Low)
transition LH
transition HL

IO

GND

VO

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 numriques 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 tension entre 2 et 5V sera considre comme une entre 1.

90

Electronique numrique

Le systme MU0 et ses outils

tension d'entre

5,0

zone du niveau haut (H)

VIH(min) = 2V

2,0
0,8

zone indtermine
VIL(max)=0,8V

0,0

zone du niveau bas (L)

Figure 6- 2 : Reprsentation du niveau de la tension dentre

Il convient de noter que les valeurs de VIL (max) et VIH (min) dpendent des technologies utilises.

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

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.

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

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.

courant d'entre

74LS..

74ALS..

74HCT...*

74HC..*

IIH (max) (A)

20

20

IIL (max) (mA)

-0,4

-0,1

* VCC = 5V

91

Chapitre 6 Aspects techniques circuits combinatoires

Version du 16 septembre 2010

6-3.5 Courant de sortie


Le courant au niveau haut tant sortant sera ngatif.

courant de sortie

74LS..

74ALS..

74HCT...*

74HC.*.

IOH (max)
(mA)

-0,4

-0,4

-4

-24

IOL (max)
(mA)

* VCC = 5V

6-3.6 Immunit au bruit


Le bruit est un signal parasite induit dans le circuit qui vient se superposer au signal transmis. L'immunit au bruit est la tolrance d'amplitude que
supporte le circuit pour identifier encore correctement les signaux.

zone du niveau haut (H)


VOH(min)

zone du niveau haut (H)

VNH

VIH(min)

zone indtermine
VOL(max)
zone du niveau bas (L)
zone de tension pour une

zone indtermine
VIL(max)
zone du niveau bas (L)
VNL
zone de tension pour une

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 supposons charge par des portes du mme type. Nous examinerons deux cas.

92

Electronique numrique

Le systme MU0 et ses outils

Cas ou la sortie est au niveau bas

Cas ou la sortie est au niveau haut

IIL

IOL

IOH

IIH

VOL
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 calculs, 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 standard. 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.

Srie

Entrance (UL)

Sortance (UL)

TTL

haut

bas

haut

bas

7400

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

74ALS00

0,5

0,06

10

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

93

Chapitre 6 Aspects techniques circuits combinatoires

Version du 16 septembre 2010

Remarque: La plupart des familles ont des sortances haute et basse diffrentes. 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 logique (ALS 1,3V).

entre
sortie
tPHL

tPLH

Figure 6- 5 : Reprsentation des caractristiques temporelles

6-4 Interface CMOS - TTL

CMOS

IOL

IIL

VDD=5V
VO

TTL

CMOS

TTL

VDD=5V

TTL
au niveau bas

IOH

IIH

TTL
TTL

VO

TTL
au niveau
haut

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

94

Electronique numrique

Le systme MU0 et ses outils

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 notre problme

VCC

VCC
IR
TTL

IOL
VO
L

R
IIL

IR
CMOS

TT

IOH

R
IIH CMOS

VO
au niveau bas

au niveau
haut

Figure 6- 7 : Interface TTL-CMOS

Au niveau haut IIH = 1 A, IOH (max) = 400 A, nous aurons pratiquement 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 lments lectromcaniques (relais), les utilisateurs demandaient la possibilit 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.

95

Chapitre 6 Aspects techniques circuits combinatoires

Version du 16 septembre 2010

sortie collecteur ouvert

Ce symbole caractrise une sortie collecteur ouvert


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 plusieurs 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.

96

74LS00

74LS01

VOH (min) (V)

2.4

2.4(TTL)

VOL (max) (V)

0.4

0.4

VIH (min) (V)

VIL (max) (V)

0.8

0.8

IOL (max) (mA)

IOH (max) (mA)

-0.4

0.1

IIL (max) (mA)

-0.4

-0.4

IIH (max) (mA)

20

20

Electronique numrique

Le systme MU0 et ses outils

VCC
Rp
A
B
74ALS00

C
D
V

E
F
74ALS01

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 ncessaire entre ces cartes. Le dimensionnement de Rp est possible en crivant 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.

97

Chapitre 6 Aspects techniques circuits combinatoires

Version du 16 septembre 2010

6-7 Porte trois tats


Une porte trois tats est un circuit dont on se sert pour contrler le passage 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 flottante la ligne de sortie.
Ce type de circuits est abondamment utilis dans les processeurs pour
permettre la circulation bidirectionnelle de l'information.
E
A

Porte passeur 3 tats


Symbole des sorties trois tats

0
0
1
1

0
1
0
1

0
1

haute impdance
haute impdance

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
Z;

when (OE_i = '1') else

end Flot_Don;
Exemple 6- 1 : Description VHDL dune prote 3 etats

98

Chapitre 7

Mmoires

Une mmoire est un ensemble d'lments mmoires binaires. Ces lments 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 (galette de silicium) l'aide des masques de programmation.

99

Chapitre 7: Mmoires

Version du 16 septembre 2010

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, contrairement 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 jonction (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 sorties 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 programmation toutes les sorties sont donc 0.

+V

11

Adresse

10

1 ligne a0
parmi 2n

01
00
dcodeur
K bits en sortie
Figure 7- 1 : Schma dune PROM

Aprs programmation, c'est dire aprs destruction de certains fusibles,


on peut obtenir le schma suivant:

100

Electronique numrique

Cours Systme numriques, Tome 1

+V

11

Adresse

10

1 ligne a0
parmi 2n

01
00
dcodeur
K bits en sortie
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 contre, une diode est prsente, elle ramne le potentiel de la ligne sortie 0. Le
contenu de cette mmoire 20 bits est alors :
adresse

S4S3S2S1S0

11

0 1 1 0 1

10

1 0 1 1 1

01

1 0 1 1 1

00

1 1 1 1 0

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 courant depuis la ligne slectionne vers une autre qui ne l'est pas (courtcircuit):

101

Chapitre 7: Mmoires

Version du 16 septembre 2010

+V
R
1

ligne au repos
( 1)
ICC

ligne selectionne
( 0)

Sortie
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 consommation, les PROM bipolaires fusibles sont encore utilises pour les
circuits rapides. En effet les PROM bipolaires permettent des temps d'accs de l'ordre de 20 ns.

7-3 EPROM (Erasable PROM)


Les EPROMs sont des mmoires non volatiles programmables lectriquement 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 photolectrique.

102

Electronique numrique

Cours Systme numriques, Tome 1

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 programmation, on cre des lectrons chauds ou lectrons ayant une nergie suffisamment 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 rayonnements U.V. Les photons (ou particules d'nergie lumineuse) communiquent alors leur nergie aux lectrons et leur font franchir la barrire
isolante dans l'autre sens. La cellule mmoire est efface.

Aprs effacement (grve aux U.V.)

Aprs programmation

+
+
+
+
+

Circuit ouvert

Circuit ferm

Figure 7- 4 : Principe de lEPROM

7-3.2 Exemple
La mmoire propose ci-dessous est une mmoire EPROM 16 bits. Cette 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 tirage). On leur prfrera les mmoires CMOS qui ne consomment que lorsqu'elles sont sollicites (on remplace alors les rsistances de tirage par des
transistors PMOS).

103

Chapitre 7: Mmoires

Version du 16 septembre 2010

+VCC

3
7439
A1
A0

+
+
+

+
+
+

2
+
+
+

decode 1
2 vers 4

+
+
+

0
+
+
+

CS
OE

O2

O3

O1

O0

Figure 7- 5 : Mmoire EPROM 4x4 bits aprs programmation

On utilise un dcodeur 2 vers 4 pour slectionner une ligne parmi quatre. 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 donnes 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

ADDR

stable

stable

stable
tAA

max(tAA,tACS)

CS_L
tOH

tACS

OE_L
tAA

DATA

104

tOZ

valid

tOE

tOZ

valid

tOE

valid

Electronique numrique

Cours Systme numriques, Tome 1

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 portes du circuit.

7-3.4 EPROM UV ou OTP


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.

7-3.5 Les mmoires du commerce

VPP

28

Vcc

A12

27

PGM (P)

A7

26

NC

A6

25

A8

A5

24

A9

A4

23

A11

A3

22

OE(G)

A2

21

A10

A1

20

CE (E)

A0

10

19

DQ7

DQ0

11

18

DQ6

DQ1

12

17

DQ5

DQ2

13

16

DQ4

Vss

14

15

DQ3

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 rparties en 8ko ou 8kbytes). Cette mmoire
possde un bus d'adresse de 13 bits (213 =
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).

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.

105

Chapitre 7: Mmoires

Version du 16 septembre 2010

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 possibilits en termes de capacit et de cot, les mmoires flash tant moins chres et offrant des capacits bien suprieures aux mmoires E2PROM.

7-4.1 Mmoires EEPROM


Exemple : la mmoire X2816

A7

24

Vcc

A6

23

A8

A5

22

A9

A4

21

WE

A3

20

OE

A2

19

A10

A1

18

CE

A0

17

I/O0

16

I/O7

I/O1

10

15

I/O0

11

14

Vss

12

13

I/O6
I/O5

Cette mmoire de 16kbits (211x8


bits) est comparable au niveau du
brochage et du nom de chaque broche 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.

I/O4
I/O3

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 circuit 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,

106

Electronique numrique

Cours Systme numriques, Tome 1

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 technologie E2PROM prend plus de place qu'en technologie EPROM.

X BUFFERS
LATCHES AND
DECODER

16.384-BIT
E2PROM
ARRAY

A0-A10
ADDRESS
INPUTS
Y BUFFERS
LATCHES AND
DECODER

CE
OE
WE

i/o BUFFERS
AND LATCHES

I/O0-I/O7
DATA INPUTS/OUTPUTS
CONTROL
LOGIC

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'effacement total de la mmoire. En outre, certaines utilisent encore une haute tension 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 comprises 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.

107

Chapitre 7: Mmoires

Version du 16 septembre 2010

Les mmoires flash sont utilises dans les PC (BIOS), ou dans les systmes embarqus pour mmoriser les programmes importants. Les nouveaux appareils grand public (tlphones portables, cartes mmoire des
appareils de photos et camscopes...) demandent de plus en plus de capacit mmoire pour les interfaces graphiques et nouvelles fonctions. Les
mmoires flash sont donc en pleine expansion.

108

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 traitement plus long.
Aussi les fabricants de circuits intgrs numriques s'attachent-ils
fournir des circuits prsentant des densits d'intgration toujours plus leve, 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 circuits 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
109

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

composant gnrique, ils traitent l'information de manire squentielle (du


moins dans les versions classiques), ne rpondant pas toujours aux exigences de rapidit.
Au dbut des annes 70 sont apparus les premiers composants (en technologie bipolaire) entirement configurable par programmation. La nouveaut 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 microprocesseurs. L'intgration des principales fonctions numriques d'une carte
au sein d'un mme botier permet de rpondre la fois aux critres de densit 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 simple 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 voisins pouvaient tre appels diffremment par deux constructeurs concurrents, pour des raisons de brevets et de stratgies commerciales. De mme
une certaine inertie dans l'volution du vocabulaire a fait que certains circuits 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 microprocesseur. Il serait plus juste de parler pour les PLD, CPLD et FPGA
de circuits architecture programmable ou encore de circuits rseaux logiques 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-

110

Electronique numrique

Cours Systme numriques, Tome 1

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 grandeurs qui puissent tre compars. Nous tenterons dans cet expos une clarification 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 fabrication).
Ils sont surtout utiliss pour la faible consommation (quelques A voire
mme nA) et pour les circuits analogiques/numriques (oscillateurs, sources 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 :

Circuits
numriques
circuits logiques
standards

74HC..
...

circuits
fonctionnement
programmable

circuits
architecture
programmable et
faible temps de
dveloppement

circuits temps de
dveloppement
important

microprocesseurs
microcontroleurs

PLD, CPLD,
FPGA

Asic pr-diffuss
Asic pr-caractriss
Asic full custom

Nous nous intresserons surtout aux circuits architecture programmable 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 problme va donc tre d'tablir ou non suivant la volont de l'utilisateur, un contact lectrique entre deux points. Aussi, nous intresserons nous, avant de

111

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

passer aux circuits proprement dits et leur programmation, ces technologies d'interconnexion.
Mais avant toutes choses, rappelons comment coder une fonction logique.

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 donnes et vitera bien des alas de fonctionnement.
Pour coder une fonction combinatoire, trois solutions sont classiquement 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 :

112

Electronique numrique

Cours Systme numriques, Tome 1

I3

I2

I1

I0
matrice OU
programmable

matrice ET
programmable
O

O
2

O
1

O
0

Chacune des 4 entres et son complmentaire arrive sur une des 16 portes 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 IX impose un NL0 en sortie :
I0

I1

Vcc

I0
SET

I1
SET

113

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

et de la matrice OU, sur laquelle une entre au NL1 impose un NL1 en


sortie :

S ET

SET

S ET

S ET

O0

O0

Ce type de structure est utilis dans certains circuits ASIC (Application


Spcific Integrated Circuit) et demande une densit d'intgration importante : en effet pour n variables en entres, il faut 2n fonctions ET 2n entres
et au moins un OU 2n entres (il y a en effet 2n 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'entre 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 sortie, sur un ou plusieurs bits. La structure physique des mmoires fait appelle 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 dsire

114

Electronique numrique

Cours Systme numriques, Tome 1

I3

I2

I1

I0

matrice OU
programmable

liaison
fusible
intact

matrice ET
fixe

O3 O2

O1 O0

Lorsqu'une adresse est prsente, par exemple I3 I2 I1 I0 = 1111, la porte


ET concerne passe au NL1 (celle du bas dans l'exemple) et suivant les fusibles laisss intacts sur la matrice OU, on a un mot diffrent en O3 O2 O1
O0 (0000 si tous les fusibles sont "grills" par exemple).
Ce principe utilis pour les mmoires, l'est aussi dans les CPLDs (Complex 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 :

115

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

entres de
programmation
de la fonction

E0 E1

A chaque valeur des entres E0 et E1 est associ un niveau logique dfini 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 essentiellement :
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, reprogrammation, 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 quelques 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 dtruire 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

116

Electronique numrique

Cours Systme numriques, Tome 1

m2 (700 m2 pour un fusible) ; cette technologie trs en vogue permet


une haute densit d'intgration.
Hormis la non reprogrammabilit, c'est la meilleure technologie (vitesse et surtout densit d'intgration).

8-2.2 Cellules reprogrammables


Cellule transistor MOS grille flottante et EPROM (Erasable Programmable 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 suprieure 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 composant. 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 reprogrammation 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 m2 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 millisecondes.
Flash EPROM
L'utilisation de deux transistors par cellule uniquement (5 pour l'EEPROM) et une structure verticale permettent une densit d'intgration importante (25 m2 par cellule en CMOS 0,6 m) trois quatre fois plus
importante que l'EEPROM, mais quand mme 10 fois moins que la technologie antifusible.
Le nombre de cycle d'criture (105 106) est galement plus grand que
pour l'EEPROM car l'paisseur de l'isolant est plus importante.

117

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

Par contre, la simplicit de la cellule lmentaire n'autorise pas une reprogrammation slective (ventuellement par secteur), ce qui n'est pas gnant 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'effacement 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 programm directement sur la carte o il est utilis. On parle alors de composants ISP : In Situ Programmation ou encore suivant les sources, In System
Programmation.

montage du circuit
non programm

programmation sur site

reprogrammation
ventuelle

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 considre l'aspect volutif du systme qui peut s'adapter un environnement extrieur 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 transistors 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 m2 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) permet de bnficier directement des progrs importants raliss dans ce domaine.

118

Electronique numrique

Cours Systme numriques, Tome 1

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 rapidit, ayant disparu, les efforts de recherche des constructeurs portent plutt 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 ralises 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 :

119

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

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 rinjecter soit la sortie, soit l'entre du buffer de sortie vers le rseau programmable.
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 langage ABEL ou ventuellement VHDL (Very high speed integrated 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 JEDEC).
programmation et test physique du composant.

120

Electronique numrique

Cours Systme numriques, Tome 1

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 Interconnect 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 macrocellules 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 macrocellules est encore moins critique : un seul point de connexion -cause du retardrelie les LAB entre eux. Le temps de propagation des signaux est parfaitement 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 EEPROM flash.

121

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

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 position 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 connexions 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 faible retard.
une liaison entre deux blocs proches (BD et BH) mais passant
par de nombreux points de connexion, donc introduisant un
retard important.

122

Electronique numrique

Cours Systme numriques, Tome 1

BA

BD
BH
BL

L'utilisation optimale des potentialits d'intgration d'un FPGA conduira un routage dlicat et pnalisant en terme de vitesse.
Il convient de noter que ces retards sont dus l'interaction de la rsistance 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 classiquement utilis pour les dsigner est "proprit intellectuelle" ou IP (Intelectual Property).
Les FPGAs utilisent gnralement les technologies SRAM ou antifusible, 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 partir de la description de la fonction raliser. Cette description peut tre textuelle (VHDL, Verilog) ou graphique (symboles de fonction, graphes des
tats, chronogrammes).

123

Chapitre 8: Circuits logiques programmables et ASIC

Description en VHDL

Version du 16 septembre 2010

Description textuelle du comportement du circuit

Synthse
(traduction)

Outil permettant la traduction de la description VHDL


en logique :
le SYNTHETISEUR

Liste d'interconnexion
de primitives
(netlist logique)

Le synthtiseur nous fournit une liste d'interconnexion


de primitives. Celles-ci seront dfinies pour la technologie choisie.

Placement routage
(intgration)

Programmation circuit

Le placeur-routeur permet de raliser le placement routage 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 programmateur, mais il existe des solutions gnrales.

La compilation va permettre dans un premier temps vrifier la cohrence de la description et la syntaxe du langage utilis, puis d'effectuer une simulation 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 fonction 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 gnral 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 gnralement le mme testbench que pour la simulation fonctionnelle.

124

Electronique numrique

Cours Systme numriques, Tome 1

Vient enfin la programmation du circuit et la vrification du fonctionnement sur la carte. Si la simulation et la vrification on t faites correctement, 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 (JEDEC dans les cas simples, LOF, POF, etc., autrement). Pour la petite histoire, signalons que cette 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 tape de manipulation intermdiaire, manipulation d'autant plus malaise que
l'augmentation de la complexit des botiers va de pair avec celle des circuits. 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'accder, 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 proportion des noeuds du schma global : un circuit de 250 broches peut contenir 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-mmes, 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 JTAG (join test action group). Face la quasi-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 JTAG, 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.

125

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

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 commandes ad hoc sur les entres TMS et TRST, le fonctionnement normal du circuit 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
JTAG d'une carte. Les oprations de test sont programmes via des commandes passes aux automates et des donnes entres en srie. Les rsultats 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 effectus 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 JTAG 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 composants de plus de 1 million de portes quivalentes, il est possible de programmer (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 donnes 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 configuration mais utilise, temporairement du moins, plus de broches du
circuit. Plusieurs circuits d'une mme carte peuvent tre configurs en coopration, leurs automates de chargement assurent un
passage en mode normal coordonn, ce qui est videmment souhaitable.
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.

126

Electronique numrique

Cours Systme numriques, Tome 1

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 permanent 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 architecture 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 indpendantes de la fonction ralise. Les valeurs de frquence maximum de fonctionnement de la notice sont directement
applicables.
Les FPGAs SRAM, utilisant une architecture cellulaire. Proposs 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 partie des ASICs prdiffuss. Programmables une fois, ils prsentent l'avantage d'une trs grande routabilit, d'o une bonne
occupation de la surface du circuit. Leur configuration est absolument 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 matres mots pour comparer deux circuits. Mais quelle capacit, et quelle vitesse?
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 effets d'annonce. En 2000 la barrire des 250 000 portes est largement franchie. 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-

127

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

lule capable de traiter peu prs tout calcul dont la complexit est en relation avec le nombre de bascules qu'elle contient (une ou deux suivant les
architectures). Trois repres chiffrs : un 22V10 contient 10 bascules, la famille 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 combinatoires (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 quelques centaines de broches d'entre-sorties.
Vitesse de fonctionnement
Les comportements dynamiques des FPGAs et des PLDs simples prsentent des diffrences marquantes. Les premiers ont un comportement
prvisible, indpendamment de la fonction programme; les limites des seconds dpendent de la fonction, du placement et du routage. Une difficult
de jeunesse des FPGAs a t la non-reproductibilit des performances dynamiques 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 rputation 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 judicieux, 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.

128

Electronique numrique

Cours Systme numriques, Tome 1

Les prdiffuss (gate arrays)


Ils contiennent une nbuleuse de transistors ou de portes interconnecter 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 mthodes 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 circuit 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 grandeurs et des lments de comparaison dans un domaine qui volue aussi rapidement, 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 tableau 8-1 donne les principales caractristiques de chaque catgorie :

129

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

circuit MSI
( titre de
comparaison)

PLD

CPLD

FPGA

nombre de portes
(ordre de grandeur)

100

150

40 000

4 000 000

vitesse de fonctionnement (ordre de grandeur)

100 MHz

200 MHz

240 MHz

100 MHz

technologie de connexion

MOS grille
flottante

MOS grille
flottante

SRAM ou antifusible

codage des fonctions

PLA

PLA et LUT

LUT et MUX

Tableau 8-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 gnralise 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 optimises pour implanter de la mmoire (20 kbits dans un FLEX10K par exemple) 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.

130

Electronique numrique

Cours Systme numriques, Tome 1

Voici un autre tableau pour la classification des circuits logiques programmables

PLD
Circuits logiques programmables
(Programmabble Logic Device)

SPLD
Simple PLD

CPLD

PROM

SPGA

Field Programmable
Gate Array

System Programmable
Gate Array

~ 500 100'000
gates

~ 5000 250'000
gates

~ 100000 5'000000
gates

~ 0 500 gates
PAL, MMI 1970

FPGA

Complex PLD

EEPROM

EPROM (UV)
EEPROM

SRAM, Anti-fuse
EPROM

SRAM, Anti-fuse
FLASH-EPROM

GAL, LATTICE 1985


(structure standard)

ALTERA : MAX 7000


MAX 3000

ACTEL :

ACTEL :

LATTICE, ATMEL

ATMEL : ATF, ATV

ALTERA : ACEX 1K,


FLEX 10K, FLEX 6000

LATTICE : ispLSI 2000, 5000,

ATMEL : AT40K

VANTIS :

rachet par LATTICE

PHILIPS :

rachet par XILINX

et 8000; ispMACH4A

XILINX : XC9500, XPLA3


CYPRESS, ICT

XILINX :

MX, SX, A/SX

ProASIC 500K

ALTERA : APEX 20K


APEX II
Excalibur (ARM)

ATMEL FPSLIC (AVR)


Spartan, XC3000,
XC4000, XC5200, QUICLOGIC : ESP (PCI)

QUICKLOGIC, ICT

XILINX :

Virtex, Virtex II

131

Chapitre 8: Circuits logiques programmables et ASIC

132

Version du 16 septembre 2010

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
Jacques Weber, Maurice Meaudre -Le langage VHDL (cours et exercices)
2me dition. Dunod
Nol Richard -Electronique numrique et squentielle (pratique des langages de description de haut niveau). Dunod
John 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
133

Annexe 1:

Version du 16 septembre 2010

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

134

Annexe 2

Lexique

ABEL : langage de programmation des circuits de faible densit d'intgration.


ASIC (Application Specific Integrated Circuit) : circuit non programmable configur lors de sa fabrication pour une application spcifique.
CPLD (Complex Programmable Logic Device) : circuit intgrant plusieurs 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 ; utilis pour les connexions dans les CPLD.
FPGA (Field Programmable Logic Array) : rseau programmable haute densit d'intgration.
FPLD (Fiel Programmable Logic Device) : terme gnrique pour les
CPLD et FPGA.
FPLS (Fiel Programmable Logic Sequencer) : ancien nom des PAL registre.
GAL (Generic Array Logic) : PLD programmable et effaable lectriquement
ISP (In Situ Programmable) : caractrise un circuit reprogrammable sur
l'application.
JEDEC : organisme de normalisation, donnant son nom aux fichiers de
programmation des PLD.
135

Annexe 2:

Version du 16 septembre 2010

LSI (Large Square Integration) : circuits intgrants quelques centaines


quelques milliers de transistors.
LUT (Lock Up Table) : nom donn aux cellules mmoire ralisant les fonctions combinatoires dans les CPLD et FPGA.
MSI (Medium Square Integration) : circuits intgrants quelques centaines de transistors.
MUX : abrviation pour multiplexeur
PAL (Programmable Array Logic) : ancien nom des PLD.
PLA (Programmable Logic Array) : rseau matrice ET et OU permettant la ralisation de fonctions combinatoires.
PLD (Programmable Logic Device) : circuit logique programmable intgrant une matrice ET programmable, une matrice OU fixe et plusieurs cellules de sortie.
PROM (Programmable Read Only Mmory) : mmoire ROM programmable.
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 Description Language) : langage de modlisation et de synthse des circuits numrique.

136

Vous aimerez peut-être aussi