electronique numérique

download electronique numérique

of 144

Transcript of electronique numérique

  • Etienne MesserliYves MeyerSeptembre 2010Version 1.4

    Electronique Numrique1er tome

    Systmes combinatoires

  • Mise jour de ce manuel

    La base du prsent manuel a t crit par M. Yves Meyer de l'cole d'ingnieurs de l'arc juras-sien. J'ai repris celui-ci en apportant des modifications et en compltant certains chapitres. 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 sup-ports de cours crit par M. Maurice Gaumain.Finalement le manuel a t spar en plusieurs tomes. Le prsent tome comprend toute la par-tie sur le combinatoire.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 m-me, si des informations semblent manquer ou sont incompltes, elles peuvent mtre transmi-ses, cela permettra une mise jour rgulire de ce manuel.

    Etienne Messerli

    Contact

    Auteurs: Etienne Messerli Yves Meyere-mail : [email protected] [email protected]: +41 (0)24 / 55 76 302 +41 (0)32 / 930 22 61

    Coordonnes la HEIG-VD :

    Institut REDSHEIG-VDHaute Ecole d'Ingnierie et de Gestion du Canton de VaudRoute de Cheseaux 1CH-1400 Yverdon-les-BainsTl : +41 (0)24 / 55 76 330Internet : http://www.reds.ch

    Coordonnes lEIAJ :

    LSEM - Laboratoire de systmes embarqusHaute Ecole ARCRue Baptiste-Savoye 26CH-2610 St-ImierTl : +41 32 930 11 21Internet : http://www.he-arc.ch/

    R DSReconfigurable & embedded

    Digital Systems

  • ITable des matires

    Chapitre 1 Introduction 1

    Chapitre 2 Systmes de numration et codes 52-1. Reprsentation des nombres ........................................................................... 62-2. Conversion Binaire - Dcimal ......................................................................... 72-3. Conversion Dcimal - Binaire ......................................................................... 7

    2-3.1.Conversion de la partie entire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82-3.2.Conversion de la partie fractionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2-4. Systme de numration Octal ....................................................................... 102-4.1.Conversion octal-dcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102-4.2.Conversion dcimal-octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102-4.3.Conversion octal-binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102-4.4.Conversion binaire-octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2-5. Systme de numration Hexadcimal .......................................................... 112-5.1.Conversion hexadcimal-dcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122-5.2.Conversion dcimal-hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132-5.3.Conversion hexadcimal-binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132-5.4.Conversion binaire-hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132-5.5.Comptage hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142-5.6.Utilit du systme hexadcimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2-6. Code BCD, soit Binary Coded Decimal ....................................................... 152-6.1.Comparaison entre code BCD et nombre binaire . . . . . . . . . . . . . . . . . . 152-6.2.Conversion BCD-binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162-6.3.Conversion binaire-BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2-7. Rcapitulatif de diffrents codes ................................................................... 172-8. Les codes alphanumriques .......................................................................... 17

    2-8.1.Code ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    Chapitre 3 Arithmtique binaire 21

  • Titre chapitre Vesion du 16 septembre 2010

    II

    3-1. Reprsentation des nombres entiers positifs ...............................................223-2. Addition Binaire .............................................................................................223-3. Reprsentation des nombres entiers signs .................................................23

    3-3.1.Notation en complment 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243-3.2.Notation en complment 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243-3.3.Etude de nombres binaires signs en complment 2 . . . . . . . . . . . . . .253-3.4.Cas spcial de la notation en complment 2 . . . . . . . . . . . . . . . . . . . .26

    3-4. Addition en complment 2 ..........................................................................273-4.1.Cas 1: deux nombres positifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273-4.2.Cas 2: nombre positif et nombre ngatif plus petit . . . . . . . . . . . . . . . . .273-4.3.Cas 3: nombre positif et nombre ngatif plus grand. . . . . . . . . . . . . . . .283-4.4.Cas 4: deux nombres ngatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283-4.5.Cas 5: nombres gaux et opposs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28

    3-5. Soustraction: complment 2 .......................................................................283-5.1.Dpassement (overflow) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293-5.2.Multiplication de nombres binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . .303-5.3.Multiplication en complment 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31

    3-6. Division binaire ..............................................................................................313-7. Addition en BCD ............................................................................................32

    3-7.1.Somme gale ou infrieure 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323-7.2.Somme suprieure 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

    Chapitre 4 Portes logiques et algbre boolenne 354-1. Dfinitions .......................................................................................................35

    4-1.1.Les tats logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364-1.2.Les variables logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364-1.3.Les fonctions logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

    4-2. Fonctions logiques une et deux variables ..................................................374-2.1.Fonctions dune variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .374-2.2.Fonctions de deux variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38

    4-3. Tables de vrit ...............................................................................................394-4. L'opration OU (OR) .....................................................................................40

    4-4.1.La porte OU (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .404-5. L'OPRATION ET (AND) ...........................................................................41

    4-5.1.La porte ET (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .414-6. L'opration NON (NOT) ...............................................................................42

    4-6.1.Le circuit INVERSEUR (NOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .424-7. Les portes NON-OU (NOR) et NON-ET (NAND) ......................................42

    4-7.1.La porte NON-OU (NOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .424-7.2.La porte NON-ET (NAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43

    4-8. Circuits OU-exclusif (XOR) et NON-OU-exclusif (XNOR) .......................444-8.1.La porte OU-exclusif (XOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444-8.2.NON-OU-exclusif (XNOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45

    4-9. Symbolique des oprations de bases .............................................................46

  • III

    Table des matires Titre

    4-10. Mise sous forme algbrique des circuits logiques ....................................... 484-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 . . . . . . . . . . . . . . . . . . . . . . 504-12. Algbre de BOOLE ....................................................................................... 51

    4-12.1.Postulats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514-12.2.Thormes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514-12.3.Thormes pour plusieurs variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 524-12.4.THORMES DE DE MORGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524-12.5.Thormes du consensus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    Chapitre 5 Circuits logiques combinatoires 555-1. Somme de produits ........................................................................................ 555-2. Simplification des circuits logiques .............................................................. 565-3. Simplification algbrique .............................................................................. 575-4. Conception de circuits logiques combinatoires ........................................... 585-5. La mthode des tables de Karnaugh ............................................................ 59

    5-5.1.La construction de la table de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . 595-5.2.REUNION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615-5.3.Runion de doublets (de paires) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615-5.4.Runion de quartets (groupes de quatre) . . . . . . . . . . . . . . . . . . . . . . . . 625-5.5.Runion d'octets (groupes de huit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635-5.6.Le processus de simplification au complet . . . . . . . . . . . . . . . . . . . . . . . 63

    5-6. Fonctions incompltement dfinies .............................................................. 645-6.1.Simplification par Karnaugh des conditions indiffrentes . . . . . . . . . . . 64

    5-7. Les fonctions standards combinatoires ........................................................ 655-8. Dcodeur (X/Y) ............................................................................................... 66

    5-8.1.Extension du dcodeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695-8.2.Dcodeur en gnrateur de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . 695-8.3.Exemple d'application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    5-9. Multiplexeur (MUX) ...................................................................................... 705-9.1.Extension du multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745-9.2.Multiplexeur en gnrateur de fonction . . . . . . . . . . . . . . . . . . . . . . . . . 745-9.3.Exemple d'application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    5-10. Comparateur .................................................................................................. 795-11. Additionneur binaire parallle ..................................................................... 82

    5-11.1.Conception dun additionneur complet . . . . . . . . . . . . . . . . . . . . . . . . 84

    Chapitre 6 Aspects techniques circuits combinatoires 876-1. La reprsentation des tats logiques. ........................................................... 876-2. Les familles logiques ...................................................................................... 886-3. Terminologie des circuits numriques ......................................................... 89

    6-3.1.Dfinition de la terminologie courante . . . . . . . . . . . . . . . . . . . . . . . . . . 90

  • Titre chapitre Vesion du 16 septembre 2010

    IV

    6-3.2.Tensions d'entre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .906-3.3.Tensions de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .916-3.4.Courant d'entre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .916-3.5.Courant de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .926-3.6.Immunit au bruit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .926-3.7.Facteur de charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .926-3.8.Les caractristiques temporelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94

    6-4. Interface CMOS - TTL ..................................................................................946-5. Interface TTL - CMOS ..................................................................................956-6. Collecteur ouvert ............................................................................................956-7. Porte trois tats ...............................................................................................98

    Chapitre 7 Mmoires 997-1. ROM (Read-Only Memory) ..........................................................................997-2. PROM (Programmable ROM) ...................................................................100

    7-2.1.Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101

    7-2.2.Ralisation pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1027-3. EPROM (Erasable PROM) .........................................................................102

    7-3.1.Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1037-3.2.Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1037-3.3.Timing d'une EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1047-3.4.EPROM UV ou OTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1057-3.5.Les mmoires du commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105

    7-4. Mmoires EEPROM et FLASH ..................................................................1067-4.1.Mmoires EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106

    Exemple : la mmoire X2816 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1067-4.2.Les mmoires Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107

    Chapitre 8 Circuits logiques programmables et ASIC 1098-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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1148-1.3.Multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115

    8-2. Technologie d'interconnexions ....................................................................1168-2.1.Connexions programmable une seule fois (OTP : One Time Programming)

    116Cellules fusible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116Cellules antifusible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116

    8-2.2.Cellules reprogrammables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117Cellule transistor MOS grille flottante et EPROM (Erasable Program-

    mable Read Only Memory) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117UV-EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117EEPROM (Electrically EPROM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117

  • VTable des matires Titre

    Flash EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Cellules SRAM transistors MOS classique . . . . . . . . . . . . . . . . . . . . 118

    8-3. Architectures utilises .................................................................................. 1198-3.1.PLD (Programmable Logic Device) . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    Dsignation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

    8-4. CPLD (Complex Programmable Logic Device) ........................................ 1218-5. FPGA (Field Programmable Gate Array) ................................................. 1228-6. Les outils de dveloppement des CPLDs et FPGAs .................................. 123

    8-6.1.Techniques de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Trois modes: fonctionnement normal, programmation et test . . . . . . . 125Programmables in situ (ISP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

    8-7. PLDs, CPLDs, FPGAs : quel circuit choisir? ............................................ 1278-7.1.Critres de performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

    Puissance de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Nombre de portes quivalentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Nombre de cellules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Nombre d'entres/sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Vitesse de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Consommation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

    8-8. ASIC (Application Specific Integrated Circuit) ........................................ 128Les prdiffuss (gate arrays) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Les prcactriss (standard cell) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Les "fulls customs" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

    8-9. Comparaison et volution ............................................................................ 129Bibliographie 133

    Mdiagraphie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Lexique 135

  • Titre chapitre Vesion du 16 septembre 2010

    VI

  • 1Chapitre 1

    Introduction

    L'utilisation de systmes digitaux est en pleine expansion. Pour s'enconvaincre, il n'y a qu' regarder autour de nous l'explosion de la micro-informatique, qui s'est mme implante dans les mnages. Un nombre deplus en plus grand de machines (tlvision, voiture, machine laver, etc.)utilisent de l'lectronique numrique.

    Nous trouvions, jusqu' l'apparition du microprocesseur, deux grandssecteurs dans le domaine des systmes digitaux. Cette division a subsistchez les fabricants d'ordinateurs o nous trouvons encore:

    le dpartement matriel (hardware) le dpartement logiciel ou programmation (software)

    L'apparition du microprocesseur a eu pour effet de diminuer l'importan-ce du matriel et de provoquer un dplacement des moyens de traitementdes circuits aux programmes. Ce qui fait que nous nous trouvons de plusen plus face des programmes qui cernent la machine au plus prs. Celaoblige les programmeurs connatre de mieux en mieux le matriel pourmieux "coller" l'application avec le programme.

    Aprs avoir rduit le march de la logique cble, le microprocesseurest parti la conqute de l'lectronique basse frquence. Il a fait son entre

  • Chapitre 1: Introduction Version du 16 septembre 2010

    2

    dans un nombre important de secteurs (jeux, tlcommunications, automa-tique, etc.).

    L'augmentation des possibilits d'intgration (nombre de transistors parmm2) conduit une nouvelle volution. Les circuits logiques programma-bles deviennent abordables. La programmation des petites applications setrouve remplace par de la logique cble dans ces circuits programma-bles. Cette volution permet d'envisager une augmentation de la vitesse detraitement des fonctions.

    Jusqu' prsent, l'apprentissage de la logique se faisait travers la d-couverte des fonctions logiques lmentaires contenues dans les circuitsintgrs des familles 74xxx, dont on peut voir quelques types dansfigure 1- 1, page 2. Les exprimentations se limitaient aux fonctions pro-poses par les fabricants de ces circuits. La conception de fonctions logi-ques regroupant plusieurs de ces circuits ncessitait un cblageconsquent, et la ralisation d'un circuit imprim de grande surface.

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

    L'apparition des circuits logiques programmables de type PLD (Pro-grammable Logic Device), CPLD (Complexe PLD, figure 1- 2, page 3) ouFPGA (Field Programmable Gate Array, figure 1- 2, page 3) a permis des'affranchir de cette limitation. En effet, l'utilisateur peut crer, dans cescircuits, toutes les fonctions logiques qu'il souhaite avec comme seules li-mitations, la place disponible dans le circuit choisi et/ou la vitesse de fonc-tionnement de celui-ci. La taille actuelle de ces circuits permetlintgration dun systme processeur complet. En anglais, labrviationest SoPC pour System on Programmable Chip.

    1

    2

    3

    4

    5

    6

    7

    14

    13

    12

    11

    10

    9

    8GND

    VCC

    7400

    1

    2

    3

    4

    5

    6

    7

    14

    13

    12

    11

    10

    9

    8GND

    VCC

    7402

    1

    2

    3

    4

    5

    6

    7

    14

    13

    12

    11

    10

    9

    8GND

    VCC

    7404

    1

    2

    3

    4

    5

    6

    7

    14

    13

    12

    11

    10

    9

    8GND

    VCC

    7410

    1

    2

    3

    4

    5

    6

    7

    14

    13

    12

    11

    10

    9

    8GND

    VCC

    7411

    1

    2

    3

    4

    5

    6

    7

    14

    13

    12

    11

    10

    9

    8GND

    VCC

    7420

    1

    2

    3

    4

    5

    6

    7

    14

    13

    12

    11

    10

    9

    8GND

    VCC

    7421

    1

    2

    3

    4

    5

    6

    7

    14

    13

    12

    11

    10

    9

    8GND

    VCC

    7430

    1

    2

    3

    4

    5

    6

    7

    14

    13

    12

    11

    10

    9

    8GND

    VCC

    7432

    1

    2

    3

    4

    5

    6

    7

    14

    13

    12

    11

    10

    9

    8GND

    VCC

    7408

  • Electronique numrique Cours Systme numriques, Tome 1

    3

    Figure 1- 2 : Circuits logiques programmable (a) CPLD; (b) FPGA

    Les outils de dveloppement mis la disposition des utilisateurs doiventdonc permettre de passer de la description du comportement d'une fonctionlogique son cblage dans le circuit et cela de la manire la plus simplepossible. Au dbut des annes 90, la description du comportement desfonctions logiques tait faite par l'utilisation de langage dit de "descriptionde matriel". Parmi ceux-ci, on peut citer:

    La premire gnration de ces langages permettaient des descriptions auniveau logique. Il a exist deux langages:

    Le CUPL utilis dans les annes 1980 1994. Le langage ABEL (Advanced Boolean Equation Language) uti-

    lis dans les annes 1990 1998Ce langage a t cr par la socit DATA I/O et utilis ou imitpar quasiment tous les concepteurs d'outils de dveloppementpour ce type de circuit (XABEL pour XILINX, AHDL pourALTERA, PLD pour ORCAD, XPLA pour PHILIPS, etc..)Ce langage n'est plus utilis actuellement.

    L'augmentation de la complexit des circuits programmable a ncessitde disposer de langage permettant des descriptions de plus haut niveau(comportementale). Deux langages sont apparu au dbut des annes 1990pour la conception de circuits ASIC (circuit intgr spcialis). Ils se sontimposes ds le milieu 1995 pour les circuits logiques programmables. Ils'agit:

    Le langage VHDL (Very High Speed Integrated Circuit, Hard-ware Description Language) qui a t cr pour le dveloppe-ment de circuits intgrs logiques complexes. Il doit son succs,essentiellement, sa standardisation sous la rfrenceIEEE-1076, qui a permis d'en faire un langage unique pour ladescription, la modlisation, la simulation, la synthse et la docu-mentation.

    Le langage VERILOG qui est proche du langage VHDL et quiest surtout utilis aux Etats-Unis.

    PLD PLD PLD PLD

    PLD PLD PLD PLD

    Programmable Interconect

    (a) (b) = logic block

  • Chapitre 1: Introduction Version du 16 septembre 2010

    4

    Le but de ce cours, est dans un premier temps de prsenter les systmeslogiques combinatoires et squentiels. Lobjectif principal du est de ma-triser la conception de tel systmes. Simultanment le langage VHDL serautilis tout au long du cours. Toutes les fonctions de base seront expliquespuis dcrites en VHDL. La description en VHDL sera pratique durant lesexercices.

    Dans un deuxime temps, l'accent sera mis sur la mthodologie de d-veloppement de systmes numrique avec le langage VHDL. Cette mtho-dologie sera principalement vue pendant le laboratoire.

    La prsentation des concepts et des instructions du langage VHDL estfaite dans un support spcifique. Il sagit du "Manuel VHDL, synthse etsimulation".

  • 5Chapitre 2

    Systmes de numration et codes

    Le systme de numration binaire est le plus important de ceux utilissdans les circuits numriques. Il est le seul que ces circuits soit capabledutiliser. Il ne faut pour autant pas ngliger l'importance des autres syst-mes. Le systme dcimal revt de l'importance en raison de son utilisationuniverselle pour reprsenter les grandeurs du monde courant. De ce fait, ilfaudra parfois convertir des valeurs dcimales en valeurs binaires avant depouvoir les traiter dans un circuit numrique. Par exemple, lorsque vouscomposez un nombre dcimal sur votre calculatrice (ou sur le clavier devotre ordinateur), les circuits internes convertissent ce nombre dcimal enune valeur binaire.

    De mme, il y aura des situations o des valeurs binaires donnes parun circuit numrique devront tre converties en valeurs dcimales pourqu'on puisse les lire. Par exemple, votre calculatrice (ou votre ordinateur)calcule la rponse un problme au moyen du systme binaire puis con-vertit ces rponses en des valeurs dcimales avant de les afficher.

    Nous connaissons les systmes binaire et dcimal, tudions maintenantdeux autres systmes de numration trs rpandus dans les circuits num-riques. Il s'agit des systmes de numration octale (base de 8) et hexadci-mal (base de 16) qui servent tous les deux au mme but, soit celui deconstituer un outil efficace pour reprsenter de gros nombres binaires.

  • Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010

    6

    Comme nous le verrons, ces systmes de numration ont l'avantage d'ex-primer les nombres de faon que leur conversion en binaire, et vice versa,soit trs facile.

    Dans un systme numrique, il peut arriver que trois ou quatre de cessystmes de numration cohabitent, d'o l'importance de pouvoir convertirun systme dans un autre. Le prsent chapitre se propose de vous montrercomment effectuer de telles conversions. Certaines de ces conversions neseront pas appliques immdiatement dans l'tude des circuits numriques,mais vous constaterez au moment de l'tude des microprocesseurs que c'estune connaissance dont vous avez besoin.

    Ce chapitre se veut galement une introduction certains des codes bi-naires utiliss pour reprsenter divers genres d'information. Ces codesagencent les 0 et les 1 de manire diffrente du systme binaire.

    2-1 Reprsentation des nombres

    Le nombre de symboles utiliss caractrise le numro de la base.

    Ex.: en base 10, nous avons les 10 symboles (0, 1,..,9) en base 2, nous avons les 2 symboles (0, 1) en base 3, nous avons les 3 symboles (0, 1, 2) en base 16, nous avons besoin de 16 symboles,

    nous utiliserons les 10 chiffres plus les lettres de A F, soit 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

    N.B.: Il faut remarquer que le choix de symboles chiffres facilite gran-dement les choses, cette facilit dcoulant de notre grande habitude dusystme dcimal (10 symboles).

    Le poids d'un chiffre dpend de sa position dans le nombre. Nous par-lons de numration de position, soit:

    Un nombre dans une base "b" entire positive s'crit:

    (1)ce qui correspond aux oprations:

    (2)

    L'indice de b indique la base dans laquelle le nombre est calcul.

    N.B.: La formule (2) donne N dans la base dans laquelle on effectue lesoprations (ici la base B). Pour nous, ce sera gnralement la base 10.

    Nb anan 1 a1a0 a 1 a m,=

    NB an bn an 1 b

    n 1 a1 b1 a0 b0a 1 b

    1 a+ m b m++++ ++=

  • Electronique numrique Cours Systme numriques, Tome 1

    7

    2-2 Conversion Binaire - Dcimal

    Le systme de numration binaire est un systme de numration de po-sition o le poids de chaque bit est un multiple de puissance de 2 (base). Lebit est affect d'un certain poids qui dpend de son rang par rapport au bitde poids le plus faible. Ainsi tout nombre binaire peut tre transform enson quivalent dcimal simplement en additionnant les poids des diversespositions o se trouve une valeur 1. Voici une illustration:

    Exemple 2- 1 : Conversion de nombre binaire en dcimal

    Voyons un autre exemple pour un nombre ayant un plus grand nombrede bits.

    Exemple 2- 2 : Autre exemple de conversion

    Vous remarquez que la mthode consiste trouver les poids (les puis-sances de 2) pour chaque position du nombre o il y a un 1, puis addition-ner le tout. Remarquez que le bit de poids le plus fort a un poids de 27

    mme s'il s'agit du huitime bit; il en est ainsi parce que le bit de poids leplus 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 prcde-ment. Nous allons exprimer le nombre dcimal en binaire en utilisant laformule de reprsentation de nombre en numration de position.Lexemple 2- 3 nous montre la dmarche pour le nombre 158.

    1 1 0 1 1 (binaire)

    124 + 123 + 022 + 121 + 120

    16 + 8 + 0 + 2 + 1 = 2710 (dcimal)

    1 0 1 1 0 1 0 1 binaire

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

    128 + 0 + 32 + 16 + 0 + 4 + 0 + 1 = 18110 dcimal

  • Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010

    8

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

    Lexemple 2- 3 nest pas utilisable pour nous. Nous devrions tre capa-ble, pour cela, de faire le calcul en base 2! Cette mthode nest pas utilisa-ble pour nous car nous savons faire les calculs uniquement en dcimal.

    Il existe deux faons de convertir un nombre dcimal en son quivalentbinaire. Une mthode qui convient bien aux petits nombres est une dmar-che qui est base sur la numration de position en binaire. Le nombre d-cimal est simplement exprim comme une somme de puissances de 2, puison inscrit des 1 et des 0 vis--vis des positions binaires appropries. Voiciun exemple:

    4510 = 32 + 8 + 4 + 1 = 25 + 0 + 23 + 22 + 0 + 20 = 1 0 1 1 0 12Notons qu'il y a un 0 vis--vis des positions 21 et 24, puisque ces posi-

    tions ne sont pas utilises pour trouver la somme en question. Il sagitdune mthode par essais successifs (ttonnement).

    2-3.1 Conversion de la partie entireL'autre mthode convient mieux aux grands nombres dcimaux; il s'agit

    de rpter la division par 2. La partie entire dun nombre peut sexprimercomme suit :

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

    a0 apparat comme le reste de la division de N entier par b; a1 est le restede la division du quotient par b; a2 est le reste de la division du nouveauquotient 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 conver-tir. A chaque division nous obtenons un quotient et un reste. Nous devonseffectuer les divisions jusqu obtenir un quotient nul. Il est important denoter que le nombre binaire rsultant s'obtient en crivant le premier reste la position du bit de poids le plus faible (LSB) et le dernier reste la po-sition du bit de poids le plus fort (MSB).

    1 5 8 dcimal

    1102 + 5101 + 8100 num. positionen dcimal

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

    NB an bn an 1 b

    n 1 a1 b1 a0 b0++ ++=

    NBb------ a( n b

    n 1 an 1 bn 2 a1 b0 )et a0( )+ ++=

  • Electronique numrique Cours Systme numriques, Tome 1

    9

    25/2 = 12 reste 1 Poids faible (LSB)12/2 = 6 reste 06/2 = 3 reste 03/2 = 1 reste 11/2 = 0 reste 1 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 fractionnaireLa conversion de la partie fractionnaire sobtient par loprateur inver-

    se, soit la multiplication. La partie fractionnaire dun nombre peut sexpri-mer comme suit :

    Si nous multiplions NB par la base b, nous obtenons lexpression sui-vante :

    a-1 apparat comme la partie entire de la multiplication de N fraction-naire par b; a-2 est la partie entire de la multiplication par b du reste; a-3est la partie entire de la multiplication par nouveau reste par b. On opredonc par multiplication successives par b.

    Cette mthode de conversion est illustre ci-aprs pour le nombre0,37510. Nous utilisons des multiplications successives par 2 du nombredcimal convertir. A chaque multiplication nous obtenons une partie en-tire et un reste. Il est important de noter que le nombre binaire rsultants'obtient en crivant le premier chiffre la position du bit de poids le plusfort (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 = 1reste = 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.

    NB a 1 b1 a 2 b

    2 a m 1 b m 1 a m b m++ ++=

    b N B a 1 a 2 b 1 a m 1 b m 2 a m b m 1++ +( )=

  • Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010

    10

    2-4 Systme de numration Octal

    Le systme de numration octal a comme base huit, ce qui signifie qu'ilcomprend huit symboles possibles, soit 0, 1, 2, 3, 4, 5, 6 et 7. Ainsi, chaquechiffre dans un nombre octal a une valeur comprise entre 0 et 7. Voici lespoids de chacune des positions d'un nombre octal.

    2-4.1 Conversion octal-dcimal On convertit un nombre octal en son quivalent dcimal en multipliant

    chaque chiffre octal par son poids positionnel. Voici un exemple:

    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'ona utilise pour la conversion dcimal-binaire, mais cette fois-ci en divisantpar 8 plutt que par 2. Voici un exemple:

    266/8 = 33 reste 233/8 = 4 reste 14/8 = 0 reste 426610 = 4128

    Exemple 2- 7 : Conversion dcimal-octal

    Notez que le premier reste devient le chiffre de poids le plus faible dunombre octal et que le dernier reste devient le chiffre de poids le plus fort.

    Si on utilise une calculatrice pour faire les divisions, on aura comme r-sultat un nombre avec une partie fractionnaire plutt qu'un reste. On calcu-le toutefois le reste en multipliant la fraction dcimale par 8. Par exemple,avec la calculatrice, la rponse de la division 266/8, est 33,25. En multi-pliant la partie dcimale par 8, on trouve un reste de 0,25 X 8 = 2. De m-me, 33 / 8 donne 4,125, d'o un reste de 0, 125 X 8 = 1.

    2-4.3 Conversion octal-binaire Le principal avantage du systme de numration octal rside dans la fa-

    cilit avec laquelle il est possible de passer d'un nombre octal un nombrebinaire. Cette conversion s'effectue en transformant chaque chiffre du

    . 83 82 81 80 . 8-1 8-2 8-3 .

  • Electronique numrique Cours Systme numriques, Tome 1

    11

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

    Au moyen de ce tableau, tout nombre octal est converti en binaire par latransformation de chacun des chiffres. Par exemple, la conversion de 4728va comme suit:

    4 7 2100 111 010

    Donc le nombre octal 4728 est quivalent au nombre binaire100111010.

    2-4.4 Conversion binaire-octal La conversion d'un nombre binaire en un nombre octal est tout simple-

    ment l'inverse de la marche suivre prcdente. Il suffit de faire avec lenombre binaire des groupes de trois bits en partant du chiffre de poids leplus faible, puis de convertir ces triplets en leur quivalent octal (voir ta-bleau 2-1). titre d'illustration, convertissons 1001110102 en octal.

    100 111 010 4 7 28

    Parfois, il arrivera que le nombre binaire ne forme pas un nombre justede groupes de trois. Dans ce cas, on pourra ajouter un ou deux zros gau-che du bit de poids le plus fort pour former le dernier triplet (si on lit dedroite gauche). Voici une illustration de ceci avec le nombre binaire11010110.

    011 010 110 3 2 68

    Notez l'ajout d'un zro gauche du bit de poids le plus fort pour obtenirun nombre juste de triplets.

    2-5 Systme de numration Hexadcimal

    Le systme hexadcimal a comme base 16, ce qui implique 16 symbolesde chiffres possibles, qui, dans ce cas, sont les dix chiffres 0 9 plus leslettres majuscules A, B, C, D, E et F. Le tableau 2-1 expose les rapportsentre les systmes hexadcimal, dcimal et binaire. Remarquez que chaquechiffre hexadcimal a comme quivalent binaire un groupe de quatre bits.

    Chiffre octal 0 1 2 3 4 5 6 7

    quivalent binaire 000 001 010 011 100 101 110 111

  • Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010

    12

    Il ne faut surtout pas oublier que les chiffres hexadcimaux A F corres-pondent aux valeurs dcimales 10 15.

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

    La reprsentation hexadcimale est principalement utilise pour repr-senter un nombre binaire sous forme plus compacte. Un nombre en hexa-dcimal comprend 4 fois moins de chiffres!

    2-5.1 Conversion hexadcimal-dcimal Un nombre hexadcimal peut tre converti en son quivalent dcimal en

    exploitant le fait qu' chaque position d'un chiffre hexadcimal est attribuun poids; dans ce cas-ci le nombre 16 lev une certaine puissance. Lechiffre de poids le plus faible a un poids de 160 = 1, le chiffre immdiate-ment gauche a un poids de 161 = 16, l'autre chiffre immdiatement gau-che, un poids de 162 = 256, et ainsi de suite. Voici un exemple sur la faondont fonctionne ce processus de conversion.

    Hexadcimal Dcimal Binaire

    0 0 0000

    1 1 0001

    2 2 0010

    3 3 0011

    4 4 0100

    5 5 0101

    6 6 0110

    7 7 0111

    8 8 1000

    9 9 1001

    A 10 1010

    B 11 1011

    C 12 1100

    D 13 1101

    E 14 1110

    F 15 1111

  • Electronique numrique Cours Systme numriques, Tome 1

    13

    35616 = 3162 +5161+ 6160= 768 + 80 + 6= 85410

    2AF16 = 2162 + 10161 + 15160= 512 + 160 + 15= 68710

    Exemple 2- 8 : Conversion hexadcimal-dcimal

    2-5.2 Conversion dcimal-hexadcimal Vous vous rappelez peut-tre que pour la conversion dcimal-binaire

    nous avons eu recours la rptition de divisions par 2, que pour la con-version dcimal-octal, la rptition de division par 8. Donc, pour conver-tir un nombre dcimal en un nombre hexadcimal, il faut procder de lamme faon, mais cette fois en divisant par 16. Les exemples qui suiventillustrent cette technique. Remarquez comment les restes des divisions de-viennent les chiffres du nombre hexadcimal; de plus, voyez, comment lesrestes suprieurs 9 sont exprims au moyen des lettres A F. Exemple,conversion de 42310 en hexadcimal:

    423/16 = 26 reste 726/16 = 1 reste 101/16 = 0 reste 1 42310 = 1A716

    Exemple 2- 9 : Conversion dcimal-hexadcimal

    2-5.3 Conversion hexadcimal-binaireComme le systme de numration octal, le systme de numration hexa-

    dcimal se veut une faon abrge de reprsenter les nombres binaires. Laconversion d'un nombre hexadcimal en un nombre binaire ne pose vrai-ment pas de difficult, puisque chaque chiffre hexadcimal est remplacpar son quivalent binaire de 4 bits (tableau 2-2). Voici un exemple avec9F216.

    9F216 = 9 F 21001 1111 0010

    = 1001111100102

    Exemple 2- 10 : Conversion hexadcimal-binaire

    2-5.4 Conversion binaire-hexadcimal Cette conversion est tout simplement l'inverse de la prcdente. Le

    nombre binaire est divis en groupes de quatre bits, puis on substitue cha-

  • Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010

    14

    que groupe son chiffre hexadcimal quivalent. Au besoin, on ajoute deszros gauche pour obtenir un dernier groupe de 4 bits.

    11101001102 = 0011 1010 0110 3 A 6

    = 3A616

    Exemple 2- 11 : Conversion binaire-hexadcimal

    Pour passer d'un nombre hexadcimal son quivalent binaire, il fautconnatre la suite des nombres binaires de quatre bits (0000 1111) ainsique le nombre correspondant en hexadcimal. Ds que cette correspondan-ce devient un rflexe automatique, les conversions se font rapidement sanscalculs. C'est ce qui explique pourquoi le systme hexadcimal est si pra-tique pour reprsenter de grands nombres binaires.

    2-5.5 Comptage hexadcimal Lorsque l'on compte selon le systme de numration hexadcimal, la

    valeur dans une position du nombre crot par pas de 1 depuis 0 jusqu' F.Quand le chiffre dans une position est F, le chiffre suivant dans cette posi-tion est 0 et le chiffre immdiatement gauche est augment de 1. C'est cequ'on voit dans les suites de nombres hexadcimaux suivantes:

    a. 38, 39, 3A, 3B, 3C, 3D, 3E, 3F, 40, 41, 42b. 6F8, 6F9, 6FA, 6FB, 6FC, 6FD, 6FE, 6FF, 700,

    Notez que le chiffre qui suit 9 dans une position est A.

    2-5.6 Utilit du systme hexadcimal La facilit avec laquelle se font les conversions entre les systmes binai-

    re et hexadcimal explique pourquoi le systme hexadcimal est devenuune faon abrge d'exprimer de grands nombres binaires. Dans un ordina-teur, il n'est pas rare de retrouver des nombres binaires ayant jusqu' 64 bitsde longueur. Ces nombres binaires, comme nous le verrons, ne sont pastoujours des valeurs numriques, mais peuvent correspondre un certaincode reprsentant des renseignements non numriques. Dans un ordina-teur, un nombre binaire peut tre: 1) un vrai nombre; 2) un nombre corres-pondant un emplacement (adresse) en mmoire; 3) un code d'instruction;4) un code correspondant un caractre alphabtique ou non numrique;ou 5) un groupe de bits indiquant la situation dans laquelle se trouvent desdispositifs 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 hexadcimalplutt qu'en binaire. Toutefois, ne perdez pas de vue que les circuits et lessystmes numriques fonctionnent exclusivement en binaire et que c'estpar pur souci de commodit pour les oprateurs qu'on emploie la notationhexadcimale.

  • Electronique numrique Cours Systme numriques, Tome 1

    15

    2-6 Code BCD, soit Binary Coded Decimal

    L'action de faire correspondre des nombres, des lettres ou des mots ungroupe spcial de symboles s'appelle codage et le groupe de symboles uncode. Un des codes que vous connaissez peut-tre le mieux est le codeMorse dans lequel on utilise une srie de points et de traits pour reprsenterles lettres de l'alphabet.

    Nous avons vu que tout nombre dcimal pouvait tre converti en sonquivalent binaire. Il est possible de considrer le groupe de 0 et de 1 dunombre binaire comme un code qui reprsente le nombre dcimal. Quandon fait correspondre un nombre dcimal son quivalent binaire, on ditqu'on fait un codage binaire pur.

    Les circuits numriques fonctionnent avec des nombres binaires expri-ms sous une forme ou sous une autre durant leurs oprations internes,malgr que le monde extrieur soit un monde dcimal. Cela implique qu'ilfaut effectuer frquemment des conversions entre les systmes binaire etdcimal. Nous savons que pour les grands nombres, les conversions de cegenre peuvent tre longues et laborieuses. C'est la raison pour laquelle onutilise dans certaines situations un codage des nombres dcimaux qui com-bine certaines caractristiques du systme binaire et du systme dcimal.

    Le BCD s'appelle en franais Code Dcimal cod Binaire (CDB). Si onreprsente chaque chiffre d'un nombre dcimal par son quivalent binaire,on obtient le code dit dcimal cod binaire (abrg dans le reste du textepar BCD). Comme le plus lev des chiffres dcimaux est 9, il faut donc 4bits pour coder les chiffres.

    Illustrons le code BCD en prenant le nombre dcimal 874 et en chan-geant chaque chiffre pour son quivalent binaire; cela donne:

    8 7 4 dcimal1000 0111 0100 BCD

    De nouveau, on voit que chaque chiffre a t converti en son quivalentbinaire pur. Notez qu'on fait toujours correspondre 4 bits chaque chiffre.

    Le code BCD tablit donc une correspondance entre chaque chiffre d'unnombre dcimal et un nombre binaire de 4 bits. videmment, seuls lesgroupes binaires 0000 1001 sont utiliss. Le code BCD ne fait pas usagedes groupes 1010, 1011, 1100, 1101, 1110 et 1111. Autrement dit, seulsdix des 16 combinaisons des 4 bits sont utiliss. Si l'une des combinaisons"inadmissibles" apparat dans une machine utilisant le code BCD, c'est g-nralement le signe qu'une erreur s'est produite.

    2-6.1 Comparaison entre code BCD et nombre binaire Il importe de bien raliser que le code BCD n'est pas un autre systme

    de numration comme les systmes octal, dcimal ou hexadcimal. En fait,ce code est le systme dcimal dont on a converti les chiffres en leur qui-valent binaire. En outre, il faut bien comprendre qu'un nombre BCD n'est

  • Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010

    16

    pas un nombre binaire pur. Quand on code selon le systme binaire pur, onprend le nombre dcimal dans son intgralit et on le convertit en binaire,sans le fractionner; par ailleurs, quand on code en BCD, c'est chaque chif-fre individuel qui est remplac par son quivalent binaire. titre d'exem-ple, prenons le nombre 137 et trouvons son nombre binaire pur puis sonquivalent BCD:

    13710 = 100010012 (Binaire)13710 = 0001 0011 0111 (BCD)

    Le code BCD ncessite 12 bits pour reprsenter 137 tandis que le nom-bre binaire pur n'a besoin que de 8 bits. Il faut plus de bits en BCD qu'enbinaire 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 pastoutes les combinaisons possibles de groupes de 4 bits; c'est donc un codepeu efficace.

    Le principal avantage du code BCD provient de la facilit relative aveclaquelle on passe de ce code un nombre dcimal, et vice versa. Il ne fautretenir que les groupes de 4 bits des chiffres 0 9. C'est un avantage nonngligeable du point de vue du matriel, puisque dans un systme numri-que ce sont des circuits logiques qui ont la charge d'effectuer ces conver-sions.

    2-6.2 Conversion BCD-binaireUne 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 convertir en dcimal (voir 2-2, page lexprim en BCD

  • Electronique numrique Cours Systme numriques, Tome 1

    17

    2-7 Rcapitulatif de diffrents codes

    Nous donnerons un tableau des principaux codes. Il faut toutefois men-tionner le code GRAY ou binaire rflchi. Ce code prsente l'avantage qu'iln'y a qu'un seul bit qui change la fois. Il offre ds lors de multiples utili-sations.

    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 incapablede traiter l'information non numrique. On veut dire par-l qu'un ordinateurdoit reconnatre des codes qui correspondent des nombres, des lettres, dessignes de ponctuation et des caractres spciaux. Les codes de ce genresont dit alphanumriques. Un ensemble de caractres complet doit renfer-mer les 26 lettres minuscules, les 26 lettres majuscules, les dix chiffres, les7 signes de ponctuation et entre 20 40 caractres spciaux comme +, /, #,%. On peut conclure qu'un code alphanumrique reproduit tous les carac-

    Dcimal binaire octal hexadcimal Gray ou BR Excdent 3 AIKEN

    00 0000 00 0 0000 0011 0000

    01 0001 01 1 0001 0100 0001

    02 0010 02 2 0011 0101 0010

    03 0011 03 3 0010 0110 0011

    04 0100 04 4 0110 0111 0100

    05 0101 05 5 0111 1000 1011

    06 0110 06 6 0101 1001 1100

    07 0111 07 7 0100 1010 1101

    08 1000 10 8 1100 1011 1110

    09 1001 11 9 1101 1100 1111

    10 1010 12 A 1111 sur deux dcades

    11 1011 13 B 1110 sur deux dcades

    12 1100 14 C 1010 sur deux dcades

    13 1101 15 D 1011 sur deux dcades

    14 1110 16 E 1001 sur deux dcades

    15 1111 17 F 1000 sur deux dcades

  • Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010

    18

    tres et les diverses fonctions que l'on retrouve sur un clavier standard demachine crire ou d'ordinateur.

    2-8.1 Code ASCII Le code alphanumrique le plus rpandu est le code ASCII (American

    Standard Code for Information Interchange); on le retrouve dans la majo-rit des micro-ordinateurs et des mini-ordinateurs et dans beaucoup de grosordinateurs. Le code ASCII (prononc "aski") standard est un code sur 7bits, on peut donc reprsenter grce lui 27 = 128 lments cods. C'estamplement suffisant pour reproduire toutes les lettres courantes d'un cla-vier et les fonctions de contrle comme (RETOUR) et (INTERLIGNE). Letableau 2-3 contient le code ASCII standard. Dans ce dernier, en plus dugroupe binaire de chaque caractre, on a donn l'quivalent hexadcimal.

    Tableau 2-3 : Liste partielle du code ASCII

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

    0 NUL DLE Space 0 Nat P p

    1 SOH DC1 ! 1 A Q a q

    2 STX DC2 " 2 B R b r

    3 ETX DC3 # 3 C S c s

    4 EOT DC4 $ 4 D T d t

    5 ENQ NAK % 5 E U e u

    6 ACK SYN & 6 F V f v

    7 BEL ETB 7 G W g w

    8 BS CAN ( 8 H X h x

    9 HT EM ) 9 I Y i y

    A LF SUB * : J Z j z

    B VT ESC + ; K Nat k Nat

    C FF FS , < L Nat l Nat

    D CR GS - = M Nat m Nat

    E SO RS . > N ^ n ~

    F SI US / ? O _ o DEL

  • Electronique numrique Cours Systme numriques, Tome 1

    19

    Lgende:

    Le code ASCII standard ninclus pas des caractres comme les lettresavec les accents , , , etc. Le nombre de bits utilis donc t augment 8. Nous disposons ainsi 256 lments cods. Lextension du code ASCIInest pas standard. En franais nous avons besoin des lettres avec des ac-cents comme , , , ... En allemand, il y a dautres caractres comme , ,.... Il existe donc autant de variantes du code ASCII tendu sur 8 bits quily a de pays voir de rgions!

    SOH Dbut d'en-tte US Sparateur de sous-articles

    STX Dbut de texte RS Sparateur d'articles

    ETX Fin de texte GS Sparateur de groupes

    EOT Fin de transmission RS Sparateur de fichiers

    ENQ Demande

    ACK Accus de rception BEL Sonnerie

    DLE Echappement de transmis-sion

    SO Hors code

    NAK Accus de rception ngatif SI En code

    SYN Synchronisation CAN Annulation

    ETB Fin de bloc de transmission EM Fin de support

    BS Espace arrire SUB Substitution

    HT Tabulateur horizontal ESC Echappement

    LF Interligne SP Espace

    CR Retour de chariot NUL Nul

    DC1 Marche lecteur DEL Oblitration

    DC2 Embrayage perforateur

    DC3 Arrt lecteur

    DC4 Dbrayage perforateur Nat usage national

  • Chapitre 2: Systmes de numration et codes Version du 16 septembre 2010

    20

  • 21

    Chapitre 3

    Arithmtique binaire

    Les diverses oprations arithmtiques qui interviennent dans les ordina-teurs et les calculatrices portent sur des nombres exprims en notation bi-naire. En tant que telle, l'arithmtique numrique peut tre un sujet trscomplexe, particulirement si on veut comprendre toutes les mthodes decalcul et la thorie sur laquelle elle s'appuie. Heureusement, il n'est pas n-cessaire d'enseigner aux ingnieurs la thorie complte de l'arithmtiquenumrique, tout au moins pas avant qu'ils soient devenus des program-meurs expriments.

    Dans ce chapitre, nous allons concentrer nos efforts sur les principes debase qui nous permettent de comprendre comment les machines numri-ques (c'est--dire les ordinateurs) ralisent les oprations arithmtiques debase. Nous traiterons uniquement la reprsentation des nombres entiers,celle des nombres fractionnaires sera tudie ultrieurement.

    D'abord nous verrons comment effectuer manuellement les oprationsarithmtiques en binaire, par la suite nous tudierons les circuits logiquesrels qui matrialisent quelques unes de ces oprations dans un systmenumrique.

  • Chapitre 3: Arithmtique binaire Version du 16 septembre 2010

    22

    3-1 Reprsentation des nombres entiers positifs

    Les ordinateurs travaillent en base 2. Nous devrons donc reprsenternos nombres dcimaux en binaire. Nous utiliserons pour les nombres en-tiers positifs leur reprsentation quivalente en binaire. Les machines ayantdes dimensions physiques finies, un nombre de bits (variables logiques)maximum sera admissible en fonction de la machine, ce qui nous limiteradans la grandeur des nombres.

    Dans le cas dune reprsentation sur 8 bits, nous pouvons reprsenter256 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'addi-tion de deux nombres dcimaux. En fait, l'addition binaire est plus simplepuisqu'il y a moins de cas apprendre. Revoyons d'abord l'addition dci-male:

    On commence par additionner les chiffres du rang de poids faible, cequi donne 7. Les chiffres du deuxime rang sont ensuite additionns, ce quidonne une somme de 13, soit 3 plus un report de 1 sur le troisime rang.Pour le troisime rang, la somme des deux chiffres plus le report de 1 don-ne 8.

    Les mmes rgles s'appliquent l'addition binaire. Cependant, il n'y aque quatre cas, qui peuvent survenir lorsqu'on additionne deux chiffres bi-naires et cela quel que soit le rang. Ces quatre cas sont:

    0 + 0 = 01 + 0 = 11 + 1 = 10 = 0 + report de 1 sur le rang de gauche1 + 1 + 1 = 11 = 1 + report de 1 sur le rang de gauche

    Le dernier cas ne se produit que lorsque, pour un certain rang, on addi-tionne deux 1 plus un report de 1 provenant du rang de droite. Voici quel-ques exemples d'additions de deux nombres binaires:

    376

    + 461

    = 837

  • Electronique numrique Cours Systme numriques, Tome 1

    23

    Il n'est pas ncessaire d'tudier des additions ayant plus de deux nom-bres binaires, parce que dans tous les systmes numriques les circuits quiadditionnent ne traitent pas plus de deux nombres la fois. Lorsque nousavons plus de deux nombres additionner, on trouve la somme des deuxpremiers puis on additionne cette somme au troisime nombre, et ainsi desuite. Ce n'est pas vritablement un inconvnient, puisque les machines nu-mriques modernes peuvent gnralement raliser une opration d'additionen quelques nanosecondes.

    L'addition est l'opration arithmtique la plus importante dans les syst-mes numriques. Les oprations de soustraction, de multiplication et de di-vision effectues par les ordinateurs ne sont essentiellement que desvariantes de l'opration d'addition.

    3-3 Reprsentation des nombres entiers signs

    Nous devons dfinir une convention pour reprsenter le signe en binai-re. La plupart des ordinateurs traitent aussi bien les nombres ngatifs queles nombres positifs.

    La premire solution consiste ajouter un bit au nombre. Celui-ci estappel bit de signe. La convention la plus simple consiste attribuer au si-gne positif ltat 0 et au signe ngatif ltat 1. Nous appelons cette conven-tion comme tant une reprsentation signe-grandeur. Nous pouvons voirun exemple de cette reprsentation la figure 3- 1.

    On utilise le bit de signe pour indiquer si le nombre binaire mmorisest positif ou ngatif. Les nombres reproduits la Figure 3 sont forms d'unsigne de bit et de six bits de grandeur. Ces derniers correspondent l'qui-valent binaire exact de la valeur dcimale prsente.

    011 (3) 1001 11,011

    + 110 (6) + 1111 + 10,110

    = 1001 (9) = 11000 = 110,001

  • Chapitre 3: Arithmtique binaire Version du 16 septembre 2010

    24

    Figure 3- 1 : Reprsentation de nombres binaires signs dans la notation signe-grandeur.

    Bien que la notation signe-grandeur soit directe, les ordinateurs et lescalculatrices n'y ont gnralement pas recours, en raison de la complexitpour raliser des oprations arithmtiques avec cette notation. On utiliseplutt dans ces machines, pour reprsenter les nombres binaires signs, lanotation en complment 2. Avant d'aborder le droulement de tout ceci,il importe de voir comment on obtient l'quivalent en complment 1 etl'quivalent en complment deux, d'un nombre binaire.

    3-3.1 Notation en complment 1Le 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 chaquebit du nombre. Voici une illustration de cette marche suivre:

    1 0 1 1 0 1 nombre binaire initial0 1 0 0 1 0 complment de chaque bit pour obtenir le complment 1

    On dit que le complment 1 de 101101 est 010010.

    Le complment 1 dun nombre est donc linversion de chaque bit laide de la fonction logique NON. Nous pouvons donc exprimer le com-plment 1 par lquation ci-dessous.

    Complment 1 de N : C1(N) = not N (1)

    3-3.2 Notation en complment 2 Le complment 2 est trs largement utilis car c'est la reprsentation

    naturelle des nombres ngatifs. Si nous faisons la soustraction de 2 - 3 nousobtenons immdiatement -1 reprsent en complment 2.

    A6 A5 A4 A3 A2 A1 A0

    0 1 1 0 1 0 0 = +5210

    Bit de signe Grandeur = 5210

    A6 A5 A4 A3 A2 A1 A0

    1 1 1 0 1 0 0 = -5210

    Bit de signe Grandeur = 5210

    0010 nombre 2 en binaire sur 4 bits

    - 0011 nombre 3 en binaire sur 4 bits

    = 1111 rsultat de la soustraction, il y a un emprunt

  • Electronique numrique Cours Systme numriques, Tome 1

    25

    Nous allons voir que "1111" est la reprsentation du nombre -1 sur 4bits.

    Le complment 2 d'un nombre binaire s'obtient simplement en prenantle complment 1 de ce nombre et en ajoutant 1 au bit de son rang de poidsle plus faible. Voici une illustration de cette conversion pour le cas1011012 = 4510.

    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 pouvonsdonc exprimer le complment 2 par lquation ci-dessous.

    Complment 2 de N : C2(N) = C1(N) + 1 = not N + 1 (2)Voici la valeur du nombre -1 sur 4 bits. Nous commenons par exprimer

    le nombre 1 sur 4 bits puis nous appliquons la rgle de calcul du compl-ment 2.

    3-3.3 Etude de nombres binaires signs en complment 2Voici comment on crit des nombres binaires signs en utilisant la no-

    tation en complment 2.

    Si le nombre est positif, sa grandeur est la grandeur binaire exacte et sonbit de signe est un 0 devant le bit de poids le plus fort. C'est ce qu'on peutvoir sur la figure 3- 2 pour +4510

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

    101101 quivalent binaire de 45010010 inversion de chaque bit pour obtenir le complment 1

    + 1 addition de 1 pour obtenir le complment 2= 010011 le complment 2 du nombre binaire initial

    0001 quivalent binaire de 1 sur 4 bits1110 inversion de chaque bit pour obtenir le complment 1

    + 1 addition de 1 pour obtenir le complment 2= 1111 le complment 2 du nombre 1, soit -1

    0 1 0 1 1 0 1 = +4510

    Bit de signe Grandeur exacte

    1 0 1 0 0 1 1 = -4510

    Bit de signe Complment 2

  • Chapitre 3: Arithmtique binaire Version du 16 septembre 2010

    26

    Si le nombre est ngatif, sa grandeur est le complment 2 de la gran-deur exacte et son bit de signe est un 1 gauche du bit de poids le plus fort.Voyez la figure 3- 2 la reprsentation du nombre -4510.

    La complmentation 2 d'un nombre sign transforme un nombre posi-tif en un nombre ngatif et vice versa.

    La notation en complment 2 est employe pour exprimer les nombresbinaires signs parce que, comme nous le verrons, on parvient grce elle soustraire en effectuant en ralit une addition. Cela n'est pas ngligeabledans le cas des ordinateurs, puisque avec les mmes circuits, nous parve-nons soustraire et additionner.

    Dans de nombreuses situations, le nombre de bits est fix par la lon-gueur des registres qui contiennent les nombres binaires, d'o la ncessitd'ajouter des 0 pour avoir le nombre de bits requis:

    Comme exemple nous allons exprimer +2 au moyen de 5 bits:

    3-3.4 Cas spcial de la notation en complment 2 Quand un nombre sign a 1 comme bit de signe et que des 0 comme bits

    de grandeur, son quivalent dcimal est -2N-1, o N est le nombre de bitsde la reprsentation signe. Par exemple:

    1000 = -24-1 = -23 = -810000 = -25-1 = -24 = -16100000 = -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 exprimeest de 255 valeurs (128 + 127). Cest sans compter le nombre 0 exprimpar "00000000". Nous avons donc bien 256 valeurs diffrentes possibles. Parconsquent, on peut affirmer que l'intervalle complet des valeurs que l'onpeut 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

    +2 = 00010

    11101 (complment 1)

    + 1 (ajouter 1)

    11110 (complment 2 du chiffre +2 sur 5 bits)

  • Electronique numrique Cours Systme numriques, Tome 1

    27

    reprsentation du zro : 00000000 valeur ngative 10000000 = -128 valeur positive 01111111 = +127

    Do la plage de variation des nombres entiers signs avec une repr-sentation en complment 2 sur N bits :

    -2N-1 +(2N-1-1)

    3-4 Addition en complment 2

    La notation en complment 2 et la notation en complment 1 sonttrs semblables. Toutefois, la notation en complment 2 jouit gnrale-ment de certains avantages quand vient le temps de construire des circuits.Nous allons maintenant tudier comment les machines numriques addi-tionnent et soustraient quand les nombres ngatifs sont crits dans la nota-tion en complment 2. Dans tous les cas tudis, il est important que vousremarquiez que le bit de signe de chaque nombre est trait sur le mme piedque les bits de la partie grandeur.

    3-4.1 Cas 1: deux nombres positifsL'addition de deux nombres positifs est immdiate. Soit l'addition de +9

    et +4:

    Remarquez que les bits de signe du cumulande et du cumulateur sont 0et que celui de la somme est aussi 0, ce qui indique un nombre positif. No-tez aussi qu'on a fait en sorte que le cumulande et le cumulateur aient lemme nombre de bits. Il faut toujours s'assurer de cela dans la notation encomplment 2.

    3-4.2 Cas 2: nombre positif et nombre ngatif plus petit Soit l'addition de +9 et de -4. Rappelez-vous que -4 est exprim dans la

    notation en complment 2. Donc +4 (00100) doit tre converti en -4(11100)

    + 9 0 1001 (cumulande)

    + 4 0 0100 (cumulateur)

    + 13 0 1101 (Somme)

    Bit de signe

    + 9 0 1001 (cumulande)

    - 4 1 1100 (cumulateur)

    + 5 1 0 0101

    Bit de signe

  • Chapitre 3: Arithmtique binaire Version du 16 septembre 2010

    28

    Dans ce cas-ci, le bit de signe du cumulateur est 1. Remarquez que lesbits de signe sont aussi additionns. En fait, un report est produit au mo-ment de l'addition du dernier rang. Ce report est toujours rejet d'o la som-me finale de 00101, soit le nombre dcimal +5.

    3-4.3 Cas 3: nombre positif et nombre ngatif plus grand. Soit l'addition de -9 et de +4:

    Dans ce cas-ci le bit de signe de la somme est 1, ce qui indique un nom-bre ngatif. Comme la somme est un nombre ngatif, la rponse est le com-plment 2 de la grandeur exacte. Donc 1011 est en ralit le complment 2 de la somme. Pour trouver la grandeur exacte de la somme, on doitprendre le complment 2 de 1011, ce qui donne 0101 (5); la rponse estdonc 11011 = -5.

    On peu galement vrifier le rsultat en additionnant le poids de chaquebit, avec le bit de signe qui vaut -2N, o N est le nombre de bits de gran-deur.

    -124 + 123 +022 +121 +120 = -16 + 8 + 2 + 1 = -5

    3-4.4 Cas 4: deux nombres ngatifs

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

    3-4.5 Cas 5: nombres gaux et opposs

    Le rsultat est videmment +0, comme on s'y attendait.

    3-5 Soustraction: complment 2

    Une opration de soustraction qui porte sur des nombres exprims dansla notation en complment 2 est en ralit une opration d'addition qui

    - 9 10111

    + 4 00100

    - 5 11011

    - 9 10111- 4 11100-13 110011

    ce report nest pas pris en considration

    -9 10111+9 010010 100000

    ce report nest pas pris en considration

  • Electronique numrique Cours Systme numriques, Tome 1

    29

    diffre peu des cas examins prcdemment. Quand on soustrait un nom-bre binaire (le diminuteur) d'un autre nombre (le diminuande), la marche suivre est comme suit:

    a. Prendre le complment 2 du diminuteur, y compris son bit designe. Si ce dernier est un nombre positif, il deviendra un nombrengatif dans la notation en complment 2. Si le diminuteur estun nombre ngatif, la complmentation 2 en fera un nombrepositif crit en grandeur exacte. Autrement dit, nous changeonsle signe du diminuteur.

    b. Aprs avoir complment 2 le diminuteur, on l'additionne audiminuande. Le diminuande conserve sa forme initiale. Le rsul-tat de cette addition reprsente la diffrence recherche. Le bit designe de la diffrence indique si l rponse est positive ou nga-tive et si on est en notation binaire exacte ou en notation en com-plment 2.

    c. Rappelez-vous que les deux nombres doivent avoir le mmenombre de bits.

    Examinons la soustraction suivante: +9 - (+4).diminuande (+ 9) 01001diminuteur (+ 4) 00100

    Changez le diminuteur pour sa version en complment 2 (11100), cequi reprsente 4. Maintenant additionnez-le au diminuande.

    Quand on complmente 2 le diminuteur, on obtient en ralit -4, desorte qu'on additionne +9 -4, ce qui est quivalent soustraire de +9 lenombre +4. En dfinitive, toute opration de soustraction se rsume uneaddition lorsqu'on utilise la notation en complment 2. Cette caractristi-que de la notation en complment 2 explique pourquoi c'est la mthodela plus utilise, puisqu'on peut additionner et soustraire en utilisant les m-mes circuits.

    3-5.1 Dpassement (overflow) Dans chacun des exemples d'addition et de soustraction que l'on vient

    d'tudier, les nombres que l'on a additionns taient constitus la fois d'unbit de signe et de 4 bits de grandeur. Les rponses aussi comportaient unbit de signe et 4 bits de grandeur. Tout report fait sur le bit de sixime rangtait rejet. Dans tous les cas tudis, la grandeur de la rponse ne dpassaitjamais la capacit des 4 bits.Voyons l'addition de +9 +8.

    + 9 01001- 4 11100+ 5 100101

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

  • Chapitre 3: Arithmtique binaire Version du 16 septembre 2010

    30

    Le bit de signe de la rponse est celui d'un nombre ngatif, ce qui estmanifestement une erreur. La rponse devrait tre +17. tant donn que lagrandeur est 17, il faut plus de 4 bits pour l'exprimer, et il y a donc un d-passement (overflow) sur le rang du bit de signe. Une condition de dpas-sement donne toujours lieu un rsultat inexact, et on la dtecte enexaminant le bit de signe du rsultat et en le comparant aux bits de signedes nombres additionns. En additionnant deux nombres de signes diff-rents, il ne peut pas y avoir de dpassement, par contre lorsqu'on additionnedeux nombres de mme signe, on a un dpassement si le signe du rsultatest diffrent du signe des deux nombres additionns. Dans un ordinateur,il existe un circuit spcialement conu pour dtecter les conditions de d-bordement et pour indiquer que la rponse est fausse.

    3-5.2 Multiplication de nombres binairesOn multiplie les nombres binaires de la mme faon qu'on multiplie les

    nombres dcimaux. En ralit, le processus est plus simple car les chiffresdu multiplicateur sont toujours 0 ou 1, de sorte qu'on multiplie toujours par0 ou par 1. Voici un exemple de multiplication de nombres binaires non si-gns.

    Dans cet exemple, le multiplicande et le multiplicateur sont en notationbinaire exacte et il n'y a pas de bit de signe. La marche suivre est exacte-ment la mme que pour les multiplications dcimales. D'abord, examinonsle bit de poids le plus faible du multiplicateur; dans notre exemple il s'agitd'un 1. Ce 1 multiplie le multiplicande pour donner 1001, c'est notre pre-mier produit partiel. Ensuite, examinons le deuxime bit du multiplicateur.Il s'agit d'un 1, ce qui donne le second produit partiel. Notez qu'en crivantle second produit partiel on le dcale d'un rang vers la gauche par rapportau premier. Le troisime bit du multiplicateur est 0 et notre troisime pro-duit partiel est 0000; ce troisime produit est aussi dcal d'un rang vers lagauche par rapport au produit partiel prcdent. Le quatrime bit du mul-tiplicateur est 1, de sorte que le dernier produit partiel est 1001, que l'on

    + 9 0 1001+ 8 0 1000

    1 0001Bit de signe

    1 0 0 1 multiplicande = 910 1 0 1 1 multiplicateur = 1110

    1 0 0 11 0 0 1 produits partiels

    0 0 0 01 0 0 11 1 0 0 0 1 1 produit final = 9910

  • Electronique numrique Cours Systme numriques, Tome 1

    31

    crit nouveau dcal d'un rang vers la gauche. On additionne ensuite lesquatre produits partiels pour obtenir le produit final.

    La plupart des machines numriques ne peuvent additionner que deuxnombres binaires la fois. C'est la raison pour laquelle les produits partielsd'une multiplication ne peuvent tre additionns ensemble en une seulefois. Ils sont plutt additionns deux par deux, c'est--dire que le premierest additionn au second, que leur somme est additionne au troisime etainsi de suite.

    3-5.3 Multiplication en complment 2Dans les machines qui utilisent la notation en complment 2, la mul-

    tiplication est effectue de la faon dcrite ci-dessus quand le multiplican-de et le multiplicateur sont exprims en notation binaire exacte. Si les deuxnombres multiplier sont positifs, ils sont dj dans cette notation et ils sontmultiplis tels quels. Le produit rsultant est videmment positif et son bitde signe est 0. Quand les deux nombres sont ngatifs, ils sont donc critsdans la notation en complment 2. Chacun de ces nombres est compl-ment 2 pour obtenir un nombre positif et ce sont les rsultats de ces com-plmentations qu'on multiplie. Le produit est un nombre positif dont le bitde signe est 0.

    Quand un des nombres est positif et que l'autre est ngatif, le nombrengatif est d'abord complment 2 pour obtenir une grandeur positive. Leproduit est exprim selon la notation en grandeur exacte. Cependant, leproduit doit tre ngatif car les nombres multiplier sont de signes oppo-ss. Par consquent, on complmente 2 le produit et on ajoute le bit designe 1.

    3-6 Division binaire

    La division d'un nombre binaire (le dividende) par un autre (le diviseur)est identique la division de deux nombres dcimaux. En ralit, la divi-sion en binaire est plus simple puisque pour dterminer combien de fois lediviseur entre dans le dividende, il n'y a que 2 possibilits 0 ou 1.

  • Chapitre 3: Arithmtique binaire Version du 16 septembre 2010

    32

    Voici deux exemples de divisions:

    Dans la plupart des ordinateurs modernes, les soustractions qui ont lieudurant une opration de division sont gnralement des soustractions aveccomplment 2, c'est--dire on complmente 2 le soustracteur puis on ef-fectue l'addition.

    La division de nombres signs s'effectue de la mme faon que la mul-tiplication. Les nombres ngatifs sont complments pour obtenir desnombres positifs puis la division est effectue. Si le dividende et le diviseursont de signes opposs, le quotient est complment 2 pour obtenir unnombre ngatif, puis on lui ajoute un bit de signe de 1. Si le dividende et lediviseur ont le mme signe, le quotient est laiss sous sa forme positive eton lui ajoute un bit de signe de 0.

    3-7 Addition en BCD

    De nombreux ordinateurs reprsentent les nombres dcimaux au moyendu code BCD. Rappelons que ce code fait correspondre chaque chiffredcimal un code de 4 bits compris entre 0000 et 1001. L'addition de nom-bres dcimaux exprims sous forme BCD se comprend mieux en tudiantdeux cas qui peuvent survenir quand on additionne deux chiffres dci-maux.

    3-7.1 Somme gale ou infrieure 9 Additionnons 5 4 en utilisant pour chacun leur reprsentation BCD

    L'addition est effectue comme une addition binaire normale et la som-me est 1001, soit le code BCD de 9. Voici un autre exemple: additionnons45 33.

    1 0 0 1 110 1 1 0110 0 1 1 (9/3 = 3)

    1 0 1 0 ,0 1001 0 0 10,10 0 1 0 0 (10/4 = 2,5)

    1 0 0

    5 0101 BCD de 5+ 4 + 0100 BCD de 4

    9 1001 BCD de 9

  • Electronique numrique Cours Systme numriques, Tome 1

    33

    Dans cet exemple. Les codes de 4 bits associs 5 et 3 sont addition-ns selon les rgles binaires pour donner 1000, ce qui est le code BCD de8. De mme, l'addition des chiffres dcimaux de second rang donne en bi-naire 0 111, ce qui est le code BCD de 7. Le total est 0111 1000, soit lecode BCD de 78.

    Dans les exemples prcdents, aucune somme de deux chiffres dci-maux ne dpassait 9; donc, il n'y a pas eu de reports dcimaux. Dans cettesituation l'addition BCD est un processus direct quivalent l'addition bi-naire.

    3-7.2 Somme suprieure 9Additionnons 6 et 7 en BCD:

    La somme 1101 n'existe pas dans le code BCD; il s'agit de l'une des sixreprsentations codes de 4 bits interdites ou non valides. Cette reprsen-tation est apparue parce qu'on a additionn deux chiffres dont la somme d-passe 9. Dans un tel cas, il faut corriger la somme en additionnant 6 (0110)afin de prendre en considration le fait qu'on saute six prsentations codesnon valides:

    Comme on le montre ci-dessus, l'addition de 0110 la somme non va-lide donne la reprsentation BCD exacte. Notez qu'un report a lieu sur lechiffre dcimal de deuxime rang. Il est obligatoire d'additionner 0110quand la somme de deux chiffres dcimaux dpasse 9.

    Voyons un autre exemple: additionnez 47 35 en BCD:

    45 0100 0101 BCD de 45+ 33 + 0011 0011 BCD de 33

    78 0111 1000 BCD de 78

    6 0110 BCD de 6+ 7 + 0111 BCD de 7

    13 1101 Code invalide en BCD

    6 0110 BCD de 6+ 7 + 0111 BCD de 7

    13 1101 Somme non valide en BCD+ 0110 Additionner 6 pour corriger

    0001 0011 BCD de 13

    47 0100 0111 BCD de 47+ 35 + 0011 0101 BCD de 35

    82 0111 1100 Somme non valide dans le 1er chiffre+ 1 0110 Additionner 6 pour corriger

    1000 0010 Somme BCD exacte

  • Chapitre 3: Arithmtique binaire Version du 16 septembre 2010

    34

    L'addition des codes de 4 bits pour 7 et 5 produit une somme non valideque l'on corrige en additionnant 0110. Notez que ceci produit un report de1, 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 lesrangs.

    b. Pour les rangs o la somme est gale ou infrieure 9, aucunecorrection ne s'impose et la somme est une reprsentation BCDvalide.

    c. Quand la somme des deux chiffres est suprieure 9, on ajouteune correction de 0110 pour obtenir la reprsentation BCDexacte. Il se produit toujours un report sur le chiffre de rangimmdiatement gauche, soit lors de l'addition initiale (premiretape) ou de l'addition de la correction.

  • 35

    Chapitre 4

    Portes logiques et algbre boolenne

    Tous les circuits numriques fonctionnent en mode binaire, c'est--direun mode dans lequel les signaux ne peuvent prendre que deux valeurs, soit0 ou soit 1. Les valeurs 0 et 1 correspondent des plages de tensionsdfinies l'avance. Cette caractristique des circuits logiques nous permetde recourir l'algbre de Boole pour l'analyse et la conception de systmesnumriques. Dans ce chapitre, nous tudierons les portes logiques, quiconstituent les blocs lmentaires des circuits logiques et nous verronscomment il est possible de dcrire leur fonctionnement grce l'algbreboolenne. Aussi, nous vous apprendrons comment on russit construiredes circuits logiques en combinant les portes et comment l'algbre de Boo-le parvient dcrire et analyser ces derniers.

    4-1 Dfinitions

    Nous allons commencer par donner quelques dfinitions.

  • Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010

    36

    4-1.1 Les tats logiquesL'algbre boolenne se distingue principalement de l'algbre ordinaire

    par des constantes et des variables qui ne peuvent prendre que les deux va-leurs possibles 0 et 1. Une variable boolenne est une grandeur qui peut, des moments diffrents, avoir la valeur 1 ou 0. Les variables boolennesservent souvent reprsenter un tat dun systme. Nous pouvons direquune lampe est soit allume, soit teinte. Nous traduirons cela en indi-quant que la lampe est soit 1 (pour allume) ou soit 0 (pour teinte).Nous pouvons faire de mme avec un interrupteur qui est soit ouvert (0)ou soit ferm (1).

    Ainsi, les valeurs boolennes 0 et 1 ne reprsentent pas des nombresrels mais plutt l'tat logique d'une variable. Dans le domaine de la logi-que numrique, on utilise d'autres expressions qui sont synonymes de 0 et1. Certaines de ces expressions sont reprsentes dans le Tableau 4-1 ci-dessous.

    Tableau 4-1 : Diverses appellations pour les niveaux logiques

    4-1.2 Les variables logiquesUne variable logique est une grandeur qui ne peut prendre que les deux

    tats logiques. Ils s'excluent mutuellement. Nous les symboliserons par 0ou 1.

    4-1.3 Les fonctions logiquesUne 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'ontles divers circuits numriques sur les variables logiques et de les manipuleren vue de dterminer la meilleure faon de matrialiser une certaine fonc-tion logique. Parce qu'il n'y a que deux valeurs possibles, l'algbre boolen-ne se manipule plus aisment que l'algbre ordinaire. En algbreboolenne, il n'y a pas de fraction, de partie dcimale, de nombre ngatif,de racine carre, de racine cubique, de logarithmes, de nombre imaginai-re... En fait, dans cette algbre, on ne retrouve que trois oprations lmen-taires, voir ci-aprs.

    Niv. logique 0 Niv. logique 1

    Faux Vrai

    Arrt Marche

    Bas Haut

    Non Oui

    Ouvert Ferm

  • Electronique numrique Cours Systme numriques, Tome 1

    37

    a. La fonction logique OU (or)Nous utiliserons le symbole (#)Cette fonction est trs souvent reprsente par le symbole (+)

    b. La fonction logique ET (and)Nous utiliserons le symbole (.)

    c. La fonction logique dinversion NON (not)Nous utiliserons le symbole ( )

    4-2 Fonctions logiques une et deux variables

    Le fait que les variables d'entres aient un nombre de valeurs possiblesfini implique l'existence d'un nombre fini de fonctions pour un nombredonn de variables.

    Nous allons commencer par tudier les fonctions logiques possiblesavec une variable puis avec deux variables. Ltude de ces deux cas nouspermettra de dcouvrir tous les oprateurs de base de lalgbre de Booledonc des systmes logiques.

    4-2.1 Fonctions dune variableUne variable a deux tats logiques ( 0 et 1), nous obtenons ainsi 4 fonc-

    tions possibles avec cette unique variable (22). La figure 4- 1 nous donnele tableau des 4 fonctions de une variable avec leur quation logique.

    Figure 4- 1 : Fonctions dune variable

    Ltude des fonctions dune variable nous fait dcouvrir la fonctionNON (not). Cette fonction est prsente dans le paragraphe L'oprationNON (NOT), page 42.

    Variable Fonctions F1.0 = constante = 0

    A F1.0 F1.1 F1.2 F1.3 F1.1 = A

    0 0 0 1 1 F1.2 = non A = not A =

    1 0 1 0 1 F1.3 = constante = 1

    A

  • Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010

    38

    4-2.2 Fonctions de deux variablesDans 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 variablesavec leur quation logique.

    Figure 4- 2 : Fonctions de deux variables

    Nous obtenons les fonctions suivantes :F2.0 = constante = 0F2.1 = A ET B = A . B , voir paragraphe 4-5 page 41F2.2 = A ET NON B = F2.3 = AF2.4 = NON A ET B = F2.5 = BF2.6 = (NON A ET B) OU (A ET NON B) =

    cette fonction se nomme OU-exclusif, voir paragraphe 4-8.1 page 44 F2.7 = A OU B = A # B, voir paragraphe 4-4 page 40

    Les fonctions F2.8 F2.F sont respectivement les inverses des fonctionsF2.7 F2.0. Parmi ses fonctions, nous noterons au passage :

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

    Ltude des fonctions de deux variables nous fait dcouvrir les fonc-tions de bases ET et OU. Nous voyons aussi les fonctions composesNON-ET, NON-OU et la fonction particulire OU-exculsive. Pour chaquefonction, il est indiqu le numro du paragraphe qui prsente celle-ci.

    Variables Fonctions F2.x

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

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

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

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

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

    A BA B

    A B # A B A B=

    A # B A B=A B

    B

    A

    A B A # B=

  • Electronique numrique Cours Systme numriques, Tome 1

    39

    4-3 Tables de vrit

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

    Figure 4- 3 : Tables de vrit: a) table deux entres; b) table trois entres; c) table quatre entres.

    Dans chacune de ces tables, toutes les combinaisons possibles de 0 et de1 pour les entres (D, C, B, A) apparaissent gauche, tandis que le niveaulogique rsultant de la sortie, X, est donn droite. Pour le moment, il n'ya que des "?" dans ces colonnes, car les valeurs de sortie sont diffrentespour chaque type de circuit.

    Notez que dans la table de vrit deux entres il y a quatre lignes, quedans celle trois entres il y a huit lignes et que dans la table quatre en-tres, il y en a seize. Pour une table de N entres, il y a 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 lescombinaisons est directe et qu'on ne peut pas en oublier.

    B A X C B A X D C B A X

    0 0 ? 0 0 0 ? 0 0 0 0 ?0 1 ? 0 0 1 ? 0 0 0 1 ?1 0 ? 0 1 0 ? 0 0 1 0 ?1 1 ? 0 1 1 ? 0 0 1 1 ?

    a) 1 0 0 ? 0 1 0 0 ?1 0 1 ? 0 1 0 1 ?1 1 0 ? 0 1 1 0 ?1 1 1 ? 0 1 1 1 ?

    b) 1 0 0 0 ?1 0 0 1 ?1 0 1 0 ?1 0 1 1 ?1 1 0 0 ?1 1 0 1 ?1 1 1 0 ?1 1 1 1 ?

    c)

  • Chapitre 4 Portes logiques et algbre boolenne Version du 16 septembre 2010

    40

    4-4 L'opration OU (OR)

    Soit deux variables logiques indpendantes, A et B. Quand on combineA et B au moyen de la fonction logique OU, le rsultat X satisfait lexpres-sion suivante :

    X = A # B

    Dans cette quation, le signe # indique un OU logique. La fonction desortie est active si A OU B est actif. Le fonctionnement de cet oprateurest dfini par la table de vrit de la figure 4- 4.

    Figure 4- 4 : a) Table de vrit dfinissant l'opration OU; b) symbole de circuit servant reprsenter une porte OU deux entres.

    Dans de nombreuses littratures, loprateur OU et reprsent par lesymbole de laddition.

    X = A + B

    Nous nutiliserons pas cette symbolique afin de ne pas confondre lop-rateur logique OU avec loprateur arithmtique daddition (+). Dans lasuite de ce manuel nous utiliserons le symbole # ou or pour loprateur lo-gique OU.

    4-4.1 La porte OU (OR)Une porte OU deux entres est un circuit dont la sortie est active si

    lune ou lautre des entres est actives. La figure 4- 4 nous fait voir le sym-bole utilis pour reprsenter une porte OU deux entres.

    De manire gnrale, la fonction de sortie dune porte OU n entresest active (niveau 1) si une seule entre est active (niveau 1). La fonctionde sortie est inactive (niveau 0) si toutes les entres sont inactives (niveau0).

    B A X= A # B

    0 0 0

    0 1 1

    1 0 1

    1 1 1

    a) b) porte OU (OR)

    A

    B

    X=A # B

  • Electronique numrique Cours Systme numriques, Tome 1

    41

    4-5 L'OPRATION ET (AND)

    Soit deux variables logiques indpendantes, A et B. Quand on combineA et B au moyen de la fonction logique ET, le rsultat X s'exprime symbo-liquement par lexpression suivante :

    X = A B

    Dans cette expression, le signe signifie l'opration boolenne ET, dontles rgles d'opration sont donnes dans la table de vrit de la figure 4- 5.

    Figure 4- 5 : a) Table de vrit dfinissant l'opration ET; b) symbole d'une porte ET deux entres.

    D'aprs cette table, vous pouvez facilement dduire que la fonction lo-gique ET correspond la multiplication en binaire. Quand A ou B est 0, leproduit est nul; quand A et B sont 1, leur produit est 1. Il nous est donc pos-sible d'affirmer que dans l'opration ET la rponse est 1 si et seulement sitoutes les entres sont 1, et qu'elle est 0 dans tous les au