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

1 5

2-1. Reprsentation des nombres ........................................................................... 6 2-2. Conversion Binaire - Dcimal ......................................................................... 7 2-3. Conversion Dcimal - Binaire ......................................................................... 7 2-3.1.Conversion de la partie entire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2-3.2.Conversion de la partie fractionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2-4. Systme de numration Octal ....................................................................... 10 2-4.1.Conversion octal-dcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2-4.2.Conversion dcimal-octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2-4.3.Conversion octal-binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2-4.4.Conversion binaire-octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2-5. Systme de numration Hexadcimal .......................................................... 11 2-5.1.Conversion hexadcimal-dcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2-5.2.Conversion dcimal-hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2-5.3.Conversion hexadcimal-binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2-5.4.Conversion binaire-hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2-5.5.Comptage hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2-5.6.Utilit du systme hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2-6. Code BCD, soit Binary Coded Decimal ....................................................... 15 2-6.1.Comparaison entre code BCD et nombre binaire . . . . . . . . . . . . . . . . . . 15 2-6.2.Conversion BCD-binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2-6.3.Conversion binaire-BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2-7. Rcapitulatif de diffrents codes ................................................................... 17 2-8. Les codes alphanumriques .......................................................................... 17 2-8.1.Code ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Chapitre 3 Arithmtique binaire

21
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


5-1. 5-2. 5-3. 5-4. 5-5.

55

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

Vesion du 16 septembre 2010

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

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

Titre

8-3.

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

8-7.

8-8.

8-9.

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

Bibliographie 133 Lexique 135

Titre chapitre

Vesion du 16 septembre 2010

VI

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.

7400
1 2 3 4 5 6 7 GND VCC 14 13 12 11 10 9 8 1 2 3 4 5 6 7 GND

7402
VCC 14 13 12 11 10 9 8 1 2 3 4 5 6 7 GND

7404
VCC 14 13 12 11 10 9 8 1 2 3 4 5 6 7 GND

7408
VCC 14 13 12 11 10 9 8 1 2 3 4 5 6 7 GND

7410
VCC 14 13 12 11 10 9 8

7411
1 2 3 4 5 6 7 GND VCC 14 13 12 11 10 9 8 1 2 3 4 5 6 7 GND

7420
VCC 14 13 12 11 10 9 8 1 2 3 4 5 6 7 GND

7421
VCC 14 13 12 11 10 9 8 1 2 3 4 5 6 7 GND

7430
VCC 14 13 12 11 10 9 8 1 2 3 4 5 6 7 GND

7432
VCC 14 13 12 11 10 9 8

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

PLD

PLD

PLD

(a)

(b)

= logic b lock

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: NB = an b + an 1 b
n n1

(1)
1 0

+ + a1 b + a0 b +
1 m

(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

1 + 123 + 8

0 + 022 + 0

1 + 121 + 2

1 + 120 + 1 = 2710

(binaire)

16

(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

1
1102

5 +
5101

8 +
8100

dcimal num. position en dcimal binaire

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

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 : NB = an b + an 1 b
n 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
1

+ 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


1

+ + 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 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 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 0 1 2 3 4 5 6 7 8 9 A B C D E F Dcimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binaire 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 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 = 2162 + 10161 + 15160 = 512 + 160 + 15 = 68710

2AF16

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.

9 F 2 1001 1111 0010 = 1001111100102 Exemple 2- 10 : Conversion hexadcimal-binaire

9F216

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 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 binaire 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 octal 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 hexadcimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Gray ou BR 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 Excdent 3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 AIKEN 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111

sur deux dcades sur deux dcades sur deux dcades sur deux dcades sur deux dcades 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 0 1 2 3 4 5 6 7 8 9 A B C D E F

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

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

2 Space ! " # $ % & ( ) * + , . /

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

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

5 P Q R S T U V W X Y Z Nat Nat Nat ^ _

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

7 p q r s t u v w x y z Nat Nat Nat ~ DEL

Tableau 2-3 : Liste partielle du code ASCII

18

Electronique numrique

Cours Systme numriques, Tome 1

Lgende:
SOH STX ETX EOT ENQ ACK DLE NAK SYN ETB BS HT LF CR DC1 DC2 DC3 DC4 Dbut d'en-tte Dbut de texte Fin de texte Fin de transmission Demande Accus de rception Echappement de transmission Accus de rception ngatif Synchronisation Fin de bloc de transmission Espace arrire Tabulateur horizontal Interligne Retour de chariot Marche lecteur Embrayage perforateur Arrt lecteur Dbrayage perforateur Nat usage national BEL SO SI CAN EM SUB ESC SP NUL DEL Sonnerie Hors code En code Annulation Fin de support Substitution Echappement Espace Nul Oblitration US RS GS RS Sparateur de sous-articles Sparateur d'articles Sparateur de groupes Sparateur de fichiers

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

Version du 16 septembre 2010

20

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 + = 110 1001

(3) (6) (9) + =

1001 1111 11000 + =

11,011 10,110 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 0 Bit de signe

A5 1

A4 1

A3 0

A2 1

A1 0

A0 0 = +5210

Grandeur = 5210

A6 1 Bit de signe

A5 1

A4 1

A3 0

A2 1

A1 0

A0 0 = -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.
0010 = 0011 1111 nombre 2 en binaire sur 4 bits nombre 3 en binaire sur 4 bits rsultat de la soustraction, il y a un emprunt

24

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 010010 + = 1 010011 quivalent binaire de 45 inversion de chaque bit pour obtenir le complment 1 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 1110

quivalent binaire de 1 sur 4 bits inversion de chaque bit pour obtenir le complment 1 addition de 1 pour obtenir le complment 2 le complment 2 du nombre 1, soit -1

+ =

1 1111

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

0 Bit de signe

= +4510

Grandeur exacte

1 Bit de signe

= -4510

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 +4 + 13 0 0 0 1001 0100 1101 (cumulande) (cumulateur) (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 -4 +5 1 0 1 0 1001 1100 0101 Bit de signe (cumulande) (cumulateur)

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 +4 -5 10111 00100 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 -4 -13 10111 11100 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 +9 0 10111 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 -4 +5 01001 11100 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 +8

0 0 1

1001 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 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 produit final = 9910 1 1 1 produits partiels multiplicande = 910 multiplicateur = 1110

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 0 1 1 0 0 1 1 11 011 (9/3 = 3)

1 0 1 0 ,0 1 0 0 0 0 1 0 1 0 0 0

100 10,1 (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 0100 1001 BCD de 5 BCD de 4 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 0011 0111

0101 0011 1000

BCD de 45 BCD de 33 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 + 7 13 + 0110 0111 1101 BCD de 6 BCD de 7 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 + 7 13 + 0001 + 0110 0111 1101 0110 0011 BCD de 6 BCD de 7 Somme non valide en BCD Additionner 6 pour corriger 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 0011 0111 1 1000 0111 0101 1100 0110 0010 BCD de 47 BCD de 35 Somme non valide dans le 1er chiffre Additionner 6 pour corriger 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 Faux Arrt Bas Non Ouvert Niv. logique 1 Vrai Marche Haut Oui 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 A 0 1 F1.0 0 0

Fonctions F1.1 0 1 F1.2 1 0 F1.3 1 1

F1.0 = constante = 0 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 A 0 0 1 1 B 0 1 0 1 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1

Fonctions F2.x 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 A B C D E 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 F 1 1 1 1

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.

B 0 0 1 1

A 0 1 0 1 a)

X ? ? ? ?

C 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1 b)

A 0 1 0 1 0 1 0 1

X ? ? ? ? ? ? ? ?

D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 c)

B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

X ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

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.

B 0 0 1 1 a)

A 0 1 0 1

X= A # B 0 1 1 1 b) porte OU (OR)

A X=A # B B

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.

B 0 0 1 1 a)

A X = AB 0 1 0 1 0 0 0 1 b) porte ET (AND)

A X=AB B

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 1 a) 1 0

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.

B
0 0 1 1 a)

A
0 1 0 1

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

A
X=A#B

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
4-7.2 La porte NON-ET (NAND)

X=A . B

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

B
0 0 1 1 a)

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

A B

X=A

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 0 1 1 0 1 0 1 a) 0 1 1 0 b) porte OU-exclusif (XOR)

X = A B
B

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 a) 1 0 0 1 b) porte NON-OU-exclusif (XNOR)

X = A B
B

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

1.c
A A A A

1.e
A

1
1.b Symboles CEI

1.d Symboles du cours NON ou NOT

1.f Symboles MIL

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

& 1.a 1

F= A B

A B A B 1.c

F= A B

A B
A B

F= A B 1.e F= A B

F= A B

F= A B

1.b Symboles CEI

1.d Symboles du cours


ET ou AND

1.f Symboles MIL

A B A B

1 1.a &

F= A#B

A B A B 1.c

F= A#B

A B

F= A#B 1.e F= A#B


1.f Symboles MIL

F= A#B

F= A#B

A B

1.b Symboles CEI

1.d Symboles du cours OU ou OR

A B A B

& 1.a 1

F=A.B

A B A B 1.c

F=A.B

A B
A B

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

F=A.B

F=A.B

1.b Symboles CEI

1.d Symboles du cours


NON-ET ou NAND

A B A B

1 1.a & 1.b Symboles CEI

F=A#B

A B A B 1.c

F = A# B

A B
A

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

F=A#B

F=A#B

1.d Symboles du cours NON-OU ou NOR

47

Chapitre 4 Portes logiques et algbre boolenne

Version du 16 septembre 2010

A B

=1 1.a Symboles CEI

F=A B

A B 1.b

F=A B

A B 1.c

F=A B

Symboles du cours OU EXCLUSIF ou XOR

Symboles MIL

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 C
Figure 4- 13 : Un circuit et son quation boolenne

X = A B # C

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 C
Figure 4- 14 : Un circuit logique dont l'expression de sortie comporte des parenthses.

X = (A # B) C

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.

A B

X= A#B

A B

X=A#B

a)
Figure 4- 15 : Circuits comprenant des INVERSEURS

b)

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

B C

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
Figure 4- 17 : Thormes de Boole pour une variable.

(1) (2) (3) (4) (5) (6) (7) (8)

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


Figure 4- 18 : Thormes de Boole pour plusieurs variables

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

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

Version du 16 septembre 2010

54

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.

B C

A
X = AB( A # BC)

a) A B b)
Figure 5- 1 : Simplification d'un circuit logique.

X = ABC

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 ) Z = ABC # AB ( A # C ) Z = ABC # ABA # ABC Z = ABC # AB # ABC Z = A C ( B # B ) # AB Z = AC ( 1 ) # AB Z = AC # AB Exemple 5- 1 : Simplification algbrique

thorme 18 (De Morgan) annulation de la double complmentation distribution du ET thorme 3 mise en facteur thorme 8 thorme 2

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 :
No 0 1 2 3 4 5 6 7 C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 X 0 0 1 1 0 0 0 1
CBA CBA CBA

Equation minterme

58

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.

B 0 0 1 1

A 0 1 0 1

X 1 0 0 1
BA BA

0 1 0

1 0 1

0 1

a)

C 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

A 0 1 0 1 0 1 0 1

X 1 1 1 0 0 0 1 0
CBA CBA CBA CBA

CB A 0 1

00
CBA

01
CBA

11
CBA

10
CBA

CBA

CBA

CBA

CBA

CB A 0 1

00 1 1

01 1 0

11 1 0

10 0 0

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

D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

X 0 1 0 0 0 1 0 0 0 0
DCBA DCBA

DC BA 00 01 11 10

00 0 1 0 0

01 0 1 0 0

11 0 1 1 0

10 0 0 0 0

ou C

0 1 A 0 0

0 1 0 0

0 1 1 0

0 0 0 B 0

0 0 0 1 0 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 A 0 1

00 0 0

01 1 1

11 0 0

10 0 0

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 do lquation : finalement CB CBA # CBA = CB ( A # A ) = CB 1

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 00 01 11 10 0 0 1 0 a) DC 00 BA 00 0 01 0 11 0 10 0 c)

01 0 0 1 0

11 0 0 1 0
X = BA

10 0 0 1 0 CB 00 A 0 0 1 0 b) 01 0 0 11 1 1
X = C

10 1 1

01 0 1 1 0

11 0 1 1 0
X = CA

10 0 0 0 0

DC 00 BA 00 1 01 0 11 0 10 1 d)

01 0 0 0 0

11 0 0 0 0
X = CA

10 1 0 0 1

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 BA 00 01 11 10

00 0 1 1 0

01 0 1 1 0

11 0 1 1 0

10 0 1 1 0

DC BA 00 01 11 10

00 1 1 1 1

01 0 0 0 0

11 0 0 0 0

10 1 1 1 1

a)

X = A

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.

C 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

A 0 1 0 1 0 1 0 1

Z 0 0 0 1 1 1 A A

CB 00 0 1 0 0 01 0 11 1 1 10 1

Z=A CB 00 0 1 0 0 01 0 0 11 1 1 10 1 1

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 0 1 0 1

Sortie1 Sortie0 0 0 0 1 0 0 1 0
Sel nSortie0 nSortie1 EN

X/Y
Sel En 1 0 EN 1 nSortie1 nSortie0

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 1A 1B 1in (2) (3) (1) X/Y 0 1 2 3 (4) (5) (6) (7) (12) (11) (10) (9) 1Y0 1Y1 1Y2 1Y3 2Y0 2Y1 2Y2 2Y3

1 2 EN

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

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 0 1 1 1 1 x 0 0 1 1 x 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 Sel0 Sel1 En 1 2 EN

X/Y
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 (1) (2) (3) (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

A B C G1 G2A G2B

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 ( G 1, G 2 A , G 2 B ).
EN = G 1 G 2 A G 2 B

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

2 4

Dec 3 8 1 X/Y

OUT0 OUT1 ...... OUT7

2 4

Dec 3 8 1 X/Y

OUT8 OUT9 ...... OUT15

2 4

2 OUT16 4 OUT17 ...... OUT23

Dec 3 8 1 X/Y

OUT24 OUT25 ...... OUT31

En Dec 2 4 1 X/Y 0
2

En

En

En

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'

1 2 4 &

X/Y

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

F1

1 2 4 & '0'

X/Y

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 0 1 0 1 0 0 1 1 Sel In0 Sortie In1

MUX
TDV compacte Sel 0 1 Sortie In0 In1 In0 In1 0 Y 1 Sortie Sel 0 G 0 1

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 1 1 1 1 1 1 MUX (4) (7) (9) (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 0 1 0 1 Sortie 0 D0 D1 D2 D3

D0

D1

D2

MUX
Sel1..0 0 1 EN 0 1 2 3
G

Sortie D3 En

0 3

En D0 D1 D2 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 A B 1G 1C0 1C1 1C2 1C3 2G 2C0 2C1 2C2 2C3 (14) (2) (1) (6) (5) (4) (3) (15) (10) (11) (12) (13) 0

0 G 3 1
EN MUX 0 1 2 3

1Y

(9)

2Y

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

(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 16->1

MUX 16->1

MUX 16->1

MUX 16->1

D48 D49 ...... D63

D32 D33 ...... D47

D16 D17 ...... D31

D0 D1 ...... D15

MUX 4->1

sortie

Figure 5- 18 : Extension du multiplexeur

5-9.2 Multiplexeur en gnrateur de fonction


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

Y = G

Di ( DCBA )i
i=0

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 : G=1
Di = i

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

F =

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


i=0 7 i=0 7 i=8

F = D

i ( CBA )i # D ( i + 8 ) ( CBA )( i + 8 )
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 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 F2 0 0 0 0 1 F1 0 0 1 1 0 F0 0 1 0 1 0 D C B A F3 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 F2 1 1 1 0 0 F1 0 1 1 0 0 F0 1 0 1 0 1 -

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 1 1 0 C 0 0 - 0 1 0 0 1 - 0 - 0 1 1 0 0 - 1 1 0 - 0 - 0 B A F3 0 0 1 1 D 0 1 1 0 C 0 0 - 0 0 1 0 1 - 0 - 1 1 1 0 1 - 0 1 0 - 0 - 1 B A F2

0 0 1 1 D 0 1 1 0 C 0 0 - 0 0 0 0 1 - 1 - 1 1 1 0 0 - 0 1 0 - 1 - 1 B A
F3 = (D C) # (D B A) F2 = (C B) # (C B A) # (C A) F1 = (B A) # (B A) = A B F0 = A

0 0 1 1 D 0 1 1 0 C 0 0 - 1 1 1 0 1 - 0 - 0 1 1 0 0 - 0 1 0 - 1 - 1

F1

B A

F0

76

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 Nb. entres 1 2 3 4 8 total 0,83 1,16 1,08 0,16 3,25 2 1 0,50 0,33 F3 3 2 2 F2 0,5 0,5 0,66 2 3 fonctions F1 0,33 0,75 1 F0 0,16 F3..0 3 0,50 7 1,75 3 1,00

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 0 et 0 (0 et 1) ou (1 et 0) (0 et -) ou (- et 0) 1 et 1 (1 et -) ou (- et 1) - et -

deuxime table 0 impossible 0 1 1 -

Num. 0 1 2 3 4 5 6 7

C 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

A 0 1 0 1 0 1 0 1

Fx
0 1

F2 1 1 1 0 0 0 0 1

F1 0 1 1 0 0 1 1 0

4 5

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

i 0 1 2 3

!C !C !C !C !C

C C C C C

( i + 4 )

Di !C !C !C C

1 1 1 0

0 0 0 1

78

Electronique numrique

Cours Systme numriques, Tome 1

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

i 0 1 2 3

!C !C !C !C !C

C C C C C

(i + 4)

Di 0 1 1 0

0 1 1 0

0 1 1 0

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)

F2

(9)

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

Version du 16 septembre 2010

P = Q

COMP P=Q

0 1 2 3 < = > 0 1 2 3

COMP P

P<Q P=Q P>Q

a)
Figure 5- 20 : Symbole CEI de comparateurs

b)

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) B(1)

P = Q

COMP

P=Q

tpCOMPn = n * tpCOMP1
P = Q
COMP COMP

P=Q

A(n-1) B(n-1)

P = Q

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

Version du 16 septembre 2010

A(0) '1' B(0) A(1) '1' B(1)

P = Q P = Q

COMP

P=Q

COMP

P=Q A=B

A(n-1) '1' B(n-1)

P = Q

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 + cumulateur 0 0 1 1 1 Mmoris dans le registre B 1 0 1 0 1 Mmoris dans l'accumulateur

somme report

1 1 1 0 0 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 AC no 4 S4 S3 C4

B3 C3 AC no 3 S2

B2 C2 AC no 2 S1

B1 C1 AC no 1 S0

B0 C0 AC no 0

A4

A3

A2

A1

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.

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

Cen 0 1 0 1 0 1 0 1

Cs 0 0 0 1 0 1 1 1

S 0 1 1 0 1 0 0 1
A Cen AC Cs B S

Figure 5- 25 : Table de vrit d'un additionneur complet.

La table de vrit dmontre qu'il y a 4 cas o S doit tre 1. En recourant la mthode des sommes de produits, nous pouvons crire ainsi l'expression pour S:
S = ABC en # ABC en # ABC en # ABC en

Une fois simplifi par la mthode algbrique, on obtient : (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 S = ( A B ) C en

Une fois simplifi par la mthode algbrique, on obtient : (7) Les expressions (6) et (7) sont matrialises par le circuit de la figure 526, qui reprsente un additionneur complet.
C s = ( A B ) C en # AB

84

Electronique numrique

Cours Systme numriques, Tome 1

A B Cen S

Cs

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

85

Chapitre 5: Circuits logiques combinatoires

Version du 16 septembre 2010

86

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 RTL DTL TTL date 1964 1964 1969 type Resistor Transistor Logic Diode Transistor Logic 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 74 74H.. 74L.. 74S.. 74AS.. 74LS.. 74ALS 74F.. commentaire standard High speed Low power Schottky Advanced Schottky Low power Schottky Advanced LS Fast consommation (mW) 10 20 1 20 8 2 2 4 vitesse (ns) 10 5 30 3 2 10 4 3 usage dpass dpass dpass dpass dpass normal conseill ponctuel

Tableau 6-2 : Famille TTL

Srie 4000 45.. 74C.. 74HC.. 74HCT.. 74AC.. 74ACT..

commentaire alimentation de 3...8 V alimentation de 3...8 V broche compatible TTL High speed CMOS HC niveau compatible TTL Advanced CMOS AC niveau compatible TTL

consommation (mW) 0 0 0 0 0 0 0

vitesse (ns) 100 100 50 10 10 3 3

usage dpass normal dpass conseill conseill nouveau 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

Paramtres lectriques V I tension courant I O CC II VI

Lieu de mesure entre (Input) sortie (Output) alimentation

Niveau d'activit H L LH HL IO VO haut (High) bas (Low) transition LH transition HL

GND

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

5,0

tension d'entre
zone du niveau haut (H)

2,0 0,8 0,0

VIH(min) = 2V zone indtermine VIL(max)=0,8V


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 VIH (min) (V) VIL (max) (V)

srie TTL 2,0 0,8

74HCT... 2,0 0,8

74HC.. 3,5 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 VOH (min) (V) VOL (max) (V)

74LS.. 2,4 0,5

74ALS.. 3,0 0,5

74HCT... 4,5 0,5

74HC.. 4,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 IIH (max) (A) IIL (max) (mA)

74LS.. 20 -0,4

74ALS.. 20 -0,1

74HCT...* 1 0

74HC..* 1 0

* 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 IOH (max) (mA) IOL (max) (mA)

74LS.. -0,4 8

74ALS.. -0,4 8

74HCT...* -4 4

74HC.*. -24 4

* 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) VNH

zone du niveau haut (H) VIH(min) zone indtermine VIL(max) zone du niveau bas (L)

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

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 IIL

Cas ou la sortie est au niveau haut

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 TTL 7400 74H00 74L00 74S00 74LS00 74ALS00

Entrance (UL) haut 1 1,25 0,5 1,25 0,5 0,5 bas 1 1,25 0,1 1,25 0,25 0,06

Sortance (UL) haut 10 12,5 10 25 10 10 bas 10 12,5 2,5 12,5 5 5

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

TTL TTL TTL

CMOS

IOH

IIH

TTL TTL TTL

VDD=5V VO au niveau bas

VDD=5V VO 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 IR TTL VO L IOL R IIL CMOS TT IR IOH

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

74LS00 VOH (min) (V) VOL (max) (V) VIH (min) (V) VIL (max) (V) IOL (max) (mA) IOH (max) (mA) IIL (max) (mA) IIH (max) (mA) 2.4 0.4 2 0.8 8 -0.4 -0.4 20

74LS01 2.4(TTL) 0.4 2 0.8 8 0.1 -0.4 20

96

Electronique numrique

Le systme MU0 et ses outils

VCC Rp A B C D E F 74ALS01
Figure 6- 9 : Utilisation de portes collecteur ouvert

74ALS00

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 Z

E 0 0 1 1

A 0 1 0 1

Z haute impdance haute impdance

Porte passeur 3 tats Symbole des sorties trois tats

0 1

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 10 01 00 dcodeur K bits en sortie


Figure 7- 1 : Schma dune PROM

Adresse

1 ligne a0 parmi 2n

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 10 01 00 dcodeur K bits en sortie


Figure 7- 2 : PROM programme

Adresse

1 ligne a0 parmi 2n

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 11 10 01 00 S4S3S2S1S0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 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 O3 O2 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
tAA

stable
max(tAA,tACS)

CS_L
tACS tOH

OE_L
tAA tOZ tOE tOZ tOE

DATA

valid

valid

valid

104

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
A12 A7 A6 A5 A4 A3 A2 A1 A0 DQ0 DQ1 DQ2 Vss

1 2 3 4 5 6 7 8 9 10 11 12 13 14

28 27 26 25 24 23 22 21 20 19 18 17 16 15

Vcc PGM (P) NC A8 A9 A11 OE(G) A10 CE (E) DQ7 DQ6 DQ5 DQ4 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 A6 A5 A4 A3 A2 A1 A0 I/O0 I/O1 I/O0 Vss

1 2 3 4 5 6 7 8 9 10 11 12

24 23 22 21 20 19 18 17 16 15 14 13

Vcc A8 A9 WE OE A10 CE I/O7 I/O6 I/O5 I/O4 I/O3


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.

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 A0-A10 ADDRESS INPUTS Y BUFFERS LATCHES AND DECODER

16.384-BIT E2PROM ARRAY

i/o BUFFERS AND LATCHES

CE OE WE

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 circuits fonctionnement programmable

circuits architecture programmable et faible temps de dveloppement PLD, CPLD, FPGA

circuits temps de dveloppement important

74HC.. ...

microprocesseurs microcontroleurs

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 3 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 S ET I0 I 1 S ET

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

Version du 16 septembre 2010

Description en VHDL

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)

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.

Programmation circuit

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) nombre de portes (ordre de grandeur) vitesse de fonctionnement (ordre de grandeur) technologie de connexion codage des fonctions 100 100 MHz

PLD

CPLD

FPGA

150 200 MHz

40 000 240 MHz

4 000 000 100 MHz

MOS grille flottante PLA

MOS grille flottante PLA et LUT

SRAM ou antifusible 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 ~ 0 500 gates PROM
PAL, MMI 1970

CPLD
Complex PLD ~ 500 100'000 gates EPROM (UV) EEPROM
ALTERA : MAX 7000 MAX 3000 ATMEL : ATF, ATV LATTICE : ispLSI 2000, 5000,
et 8000; ispMACH4A

Field Programmable Gate Array ~ 5000 250'000 gates SRAM, Anti-fuse EPROM
ACTEL : MX, SX, A/SX ALTERA : ACEX 1K, FLEX 10K, FLEX 6000 ATMEL : AT40K XILINX :

FPGA

System Programmable Gate Array ~ 100000 5'000000 gates SRAM, Anti-fuse FLASH-EPROM
ACTEL : ProASIC 500K ALTERA : APEX 20K APEX II Excalibur (ARM)

SPGA

EEPROM
GAL, LATTICE 1985 (structure standard) LATTICE, ATMEL VANTIS :

rachet par LATTICE rachet par XILINX

PHILIPS :

XILINX : XC9500, XPLA3 CYPRESS, ICT

ATMEL FPSLIC (AVR) Spartan, XC3000, XC4000, XC5200, QUICLOGIC : ESP (PCI) XILINX : Virtex, Virtex II

QUICKLOGIC, ICT

131

Chapitre 8: Circuits logiques programmables et ASIC

Version du 16 septembre 2010

132

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