You are on page 1of 210

BCI - TPSP - lectronique Numrique Intgre

Jean-Luc Danger Sylvain Guilley Philippe Matherat Yves Mathieu Lirida Naviner Alexis Polti Jean Provost 23 aot 2006

Rsum Polycopi des cours du module ENI (lectronique Numrique Intgre) de Telecom Paris.

Le polycopi est disponible au format PDF ladresse suivante : http ://www.comelec.enst.fr/tpsp/eni/poly/eni.pdf Laccs est libre depuis lENST ou Eurcom. Les corrigs des TD sont accessibles ladresse suivante : http ://www.comelec.enst.fr/tpsp/eni/poly_corr/

Pour les 1A : Cours 1A L1 LG2 LG3 TD1 TP1 L4 TD2 L5 TD3 TP2 LG6 TD4 LG7 TD5 TP3 LG8 LG9 TP4 CC Intitul Traitement matriel de linformation (chapitre 1 page 19) Fonctions de base, bibliothque (chapitre 2 page 33) Oprateurs arithmtiques (chapitre 3 page 47) Fonctions de base : applications (chapitre 9 page 141) Combinatoire dans CLP (chapitre 15 page 167) Du Transistor la logique complmentaire (chapitre 4 page 57) Analyse et synthse de portes logiques (chapitre 11 page 147) Performances de la logique complmentaire CMOS (chapitre 5 page 73) Temps de propagation, surface, bibliothques (chapitre 12 page 151) Caractrisation lectrique de portes (chapitre 16 page 175) Logique squentielle synchrone, bascules (chapitre 6 page 85) Utilisation des bascules (chapitre 13 page 155) Machines tats nis (chapitre 7 page 99) Utilisation et synthse des machines tats (chapitre 14 page 159) Machines tats dans CLP (chapitre 18 page 191) Processeurs (chapitre 8 page 117) Processeurs (2) (chapitre 8 page 117) Nano processeur dans CLP (chapitre 19 page 197) Contrle de connaissances

Pour les 2A : Journe Journe 1 TD1 TP1 L2 Journe 2 TD2 TP2 L3 Journe 3 TD3 TP3 L4 Journe 4 TD4 TP4 Journe 5 L5/TD5 TP5 Cours 2A L1 Intitul Logique combinatoire et arithmtique (chapitres 1 page 19, 2 page 33 et 3 page 47) Fonctions de base : applications (chapitre 9 page 141) Combinatoire dans CLP (chapitre 15 page 167) Logique CMOS et performances (chapitres 4 page 57 et 5 page 73)

Analyse et synthse de portes logiques (chapitre 11 page 147) et temps de propagation, surface, bibliothques (chapitre 12 page 151) Caractrisation lectrique du transistor MOS et doprateurs logiques CMOS (chapitre Logique squentielle (chapitre 6 page 85) Utilisation des bascules (chapitre 13 page 155) TP bascules Machines tats synchrones (chapitre 7 page 99) Utilisation et synthse des machines tats (chapitre 14 page 159) Machines tats dans CLP (chapitre 18 page 191) Architecture et conception dun processeur (chapitre 8 page 117) Nano processeur dans CLP (chapitre 19 page 197)

Table des matires


Table des matires Liste des tableaux Table des gures 3 11 13

Leons

17
19 19 20 20 22 22 24 25 25 25 27 27 28 29 29 29 30 30 31 31 31 33 33 33 34 34 34 35 35 35 36 36 37 37 38

1 Traitement matriel de linformation 1.1 Du composant au systmes numriques . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Signal et Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Signal lectrique et traitement de linformation . . . . . . . . . . . . . . . . 1.2.2 Codage analogique de linformation : lexemple du signal sonore . . . . . . . 1.2.3 Codage numrique de linformation . . . . . . . . . . . . . . . . . . . . . . . 1.2.4 Lexemple du signal binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Le signal binaire reprsent par une grandeur lectrique . . . . . . . . . . . . . . . 1.3.1 Comment peut-on gnrer un signal lectrique binaire ? . . . . . . . . . . . 1.3.2 Comment peut-on extraire un symbole binaire dun signal lectrique ? . . . 1.3.3 Comment peut-on crer un oprateur de traitement binaire ? . . . . . . . . 1.4 La technologie micro-lectronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Quelles proprits des matriaux peut-on exploiter pour crer des transistors ? 1.4.2 Quelles sont les direntes tapes de la fabrication des circuits intgrs ? . . 1.5 Les lires technico-conomiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.1 La recherche dun optimum de rendement dans lutilisation de la technologie 1.5.2 Les circuits universels tels les microprocesseurs . . . . . . . . . . . . . . 1.5.3 Les circuits spciques une application . . . . . . . . . . . . . . . . . . . . 1.5.4 Les circuits logiques programmables . . . . . . . . . . . . . . . . . . . . . . 1.5.5 Les systmes intgrs sur puces . . . . . . . . . . . . . . . . . . . . . . . . . 1.6 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Fonctions de base 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Variables et fonctions logiques, tables de vrit . . . . . . . . . . . 2.3 Reprsentations des fonctions logiques . . . . . . . . . . . . . . . . 2.3.1 Formes algbriques . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Forme disjonctive . . . . . . . . . . . . . . . . . . . . . . . . 2.3.3 Forme conjonctive . . . . . . . . . . . . . . . . . . . . . . . 2.3.4 quivalence entre la table de vrit et les formes canoniques 2.3.5 Forme canonique disjonctive . . . . . . . . . . . . . . . . . . 2.3.6 Forme canonique conjonctive . . . . . . . . . . . . . . . . . 2.4 Description de mthodes de simplication . . . . . . . . . . . . . . 2.4.1 Utilisation des proprits de lalgbre de Boole . . . . . . . 2.4.2 Simplication partir de la forme algbrique . . . . . . . . 2.4.3 Mthode des tables de Karnaugh . . . . . . . . . . . . . . . 3

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

TABLE DES MATIRES

2.5 2.6

2.7

2.4.4 Construction du tableau de Karnaugh . . . 2.4.5 Rgles de simplication . . . . . . . . . . . 2.4.6 Fonctions non compltement dnies . . . . 2.4.7 Pertinence de la mthode . . . . . . . . . . Reprsentation schmatique des fonctions logiques Quelques fonctions combinatoires importantes . . . 2.6.1 Fonctions daiguillage : multiplexeurs . . . . 2.6.2 Oprateurs de comparaison . . . . . . . . . Annexes . . . . . . . . . . . . . . . . . . . . . . . . 2.7.1 Exercice de consolidation . . . . . . . . . . 2.7.2 Bibliographie . . . . . . . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

38 39 40 40 41 42 42 42 44 44 46 47 47 47 47 48 49 49 50 51 51 53 57 57 57 57 57 57 58 60 60 60 62 64 65 67 67 67 68 69 70 70 70 71 73 73 73 74 74 76 77 77 78

3 Oprateurs arithmtiques 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 3.2 Reprsentation (codage) des nombres . . . . . . . . 3.2.1 Reprsentation Simples de Position . . . . . 3.2.2 Conversions entre Bases . . . . . . . . . . . 3.2.3 Reprsentation en Signe et Valeur Absolue 3.2.4 Reprsentation en Complment 2 . . . . . 3.2.5 Autres Codes . . . . . . . . . . . . . . . . . 3.3 Fonctions arithmtiques . . . . . . . . . . . . . . . 3.3.1 Additionneur . . . . . . . . . . . . . . . . . 3.3.2 Soustracteur . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

4 Du transistor la logique CMOS 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Modle en interrupteur . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Modlisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Quelques montages simples . . . . . . . . . . . . . . . . . . . 4.3 La logique complmentaire CMOS . . . . . . . . . . . . . . . . . . . 4.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Notion de complmentarit . . . . . . . . . . . . . . . . . . . 4.3.3 Porte complexe . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.4 Exemple danalyse dune porte logique . . . . . . . . . . . . . 4.3.5 Exemples de synthse dune porte logique . . . . . . . . . . . 4.4 Vitesse de traitement dun circuit intgr numrique CMOS . . . . . 4.4.1 Notion de chemin critique . . . . . . . . . . . . . . . . . . . . 4.4.2 Notion de temps de propagation . . . . . . . . . . . . . . . . 4.4.3 Modle du temps de propagation dune porte CMOS . . . . . 4.4.4 Temps de propagation dans un assemblage de portes logiques. 4.5 Rappels du modle lectrique . . . . . . . . . . . . . . . . . . . . . . 4.5.1 Connexions et tensions appliques . . . . . . . . . . . . . . . 4.5.2 Rappels du modle lectrique et des symboles . . . . . . . . . 4.6 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Performances de la logique complmentaire CMOS 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Cot de production dun circuit intgr numrique CMOS . . . . . 5.3 Estimation de la vitesse de la logique CMOS . . . . . . . . . . . . 5.3.1 Expression du temps de propagation dun inverseur CMOS 5.3.2 Modle du temps de propagation de linverseur CMOS . . . 5.3.3 Schma synthtique de linverseur . . . . . . . . . . . . . . 5.3.4 Schma synthtique dune porte CMOS quelconque . . . . . 5.3.5 Notion de bibliothque de cellules prcaractrises . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

TABLE DES MATIRES

5.4

5.5

Inuence du dimensionnement des transistors sur les caractristiques de linverseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Consommation des circuits intgrs CMOS . . . . . . . . . . . . . . . . . . . . . . 5.4.1 Consommation dune porte CMOS . . . . . . . . . . . . . . . . . . . . . . . 5.4.2 Extrapolation un circuit intgr CMOS . . . . . . . . . . . . . . . . . . . volution technologique et conclusions . . . . . . . . . . . . . . . . . . . . . . . . .

5.3.6

79 80 80 81 82 85 85 85 86 88 88 89 90 91 92 93 93 94 94 95

6 Logique squentielle synchrone, bascules 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Comment reconnatre la logique squentielle ? . . . . . . . . . . . . . 6.1.2 Comment construire la logique squentielle ? . . . . . . . . . . . . . . 6.2 Les bascules D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Le point mmoire lmentaire . . . . . . . . . . . . . . . . . . . . . . 6.2.2 structure avec 2 inverseurs tte bche : bascule RS et RAM statique 6.2.3 De la bascule RS la bascule D sur tat : le latch . . . . . . . . . . 6.2.4 La bascule D sur front ou Flip-Flop . . . . . . . . . . . . . . . . . . 6.2.5 Conditions dutilisation de la bascule . . . . . . . . . . . . . . . . . . 6.3 Exemples fondamentaux de la logique squentielle synchrone . . . . . . . . 6.3.1 Le mcanisme de dcalage avec un registre dcalage . . . . . . . . 6.3.2 Le mcanisme de comptage . . . . . . . . . . . . . . . . . . . . . . . 6.3.3 Principe de srialisation des calculs . . . . . . . . . . . . . . . . . . . 6.3.4 Principe dacclration des calculs par la mise en pipeline . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

7 Machines tats 99 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.2 Le graphe dtats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 7.2.1 Comment reprsenter graphiquement le comportement dune machine tats ?100 7.2.2 Comment vrier cette reprsentation laide de quelques rgles simples ? . 103 7.3 La composition dune machine tats . . . . . . . . . . . . . . . . . . . . . . . . . 105 7.3.1 Le calcul de ltat futur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7.3.2 Le registre dtat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7.3.3 Le calcul des sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 7.4 Le codage des tats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 7.4.1 Comment reprsenter les dirents tats sous forme de mots binaires ? . . . 107 7.4.2 En quoi le codage choisi inue-t-il sur la taille de la machine tats ? . . . 108 7.4.3 Quelles mthodes permettent de choisir le meilleur codage possible ? . . . . 109 7.5 La conception dune machine tats . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.5.1 machine tats principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 7.5.2 Machine tats du minuteur . . . . . . . . . . . . . . . . . . . . . . . . . . 113 8 Des machines tats aux processeurs 8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 8.1.1 Objectifs . . . . . . . . . . . . . . . . . . . . 8.1.2 Introduction . . . . . . . . . . . . . . . . . . 8.1.3 Instructions et donnes . . . . . . . . . . . . 8.1.4 de la feuille llectronique . . . . . . . . . . 8.1.5 Interlude rappel : fonctionnement de la RAM 8.2 tape 1 : automate linaire basique . . . . . . . . . . 8.2.1 Organisation de la mmoire . . . . . . . . . . 8.2.2 Les instructions . . . . . . . . . . . . . . . . 8.2.3 Fonctionnement de lautomate . . . . . . . . 8.3 tape 2 : automate avec accumulateur . . . . . . . . 8.3.1 Chanage des oprations . . . . . . . . . . . . 8.3.2 Laccumulateur . . . . . . . . . . . . . . . . . 8.4 tape 3 : automate avec accumulateur et indirection 8.4.1 Indirection . . . . . . . . . . . . . . . . . . . 117 117 117 117 118 118 119 120 120 121 121 122 122 122 123 123

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

TABLE DES MATIRES

8.5

8.6 8.7

8.8 8.9

8.10 8.11

8.12 8.13 8.14

tape 4 : processeur RISC 8.5.1 Flags . . . . . . . . 8.5.2 Sauts . . . . . . . tape 5 : optimisations . Rponse 1 . . . . . . . . . 8.7.1 Les adresses . . . . 8.7.2 Les donnes . . . . Rponse 2 . . . . . . . . . Rponses 3 et 4 . . . . . . 8.9.1 Les adresses . . . . 8.9.2 Les donnes . . . . 8.9.3 Laccumulateur . . 8.9.4 Bilan . . . . . . . . 8.9.5 Performances . . . Rponse 5 . . . . . . . . . 8.10.1 Les adresses . . . . Rponse 6 . . . . . . . . . 8.11.1 Flags . . . . . . . . 8.11.2 ADDC / SUBC . . Rponse 7 . . . . . . . . . Rponse 8 . . . . . . . . . Rponse 9 . . . . . . . . . 8.14.1 ROL / ROR . . . 8.14.2 Sortie BZ . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

124 124 125 126 126 126 128 130 130 131 131 131 132 132 133 133 134 134 134 134 136 136 136 136

II

TD
- Fonctions de base Simplication algbrique . . . . . . . . . Simplication par tableau de Karnaugh Fonction F . . . . . . . . . . . . . . . . Fonction G . . . . . . . . . . . . . . . . Dcodage . . . . . . . . . . . . . . . . . Gnration de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

139
141 141 141 141 141 141 143 145 145 145 145 146 147 147 147 147 148 148 148 148 148 148 148 148 149 149

9 TD 9.1 9.2 9.3 9.4 9.5 9.6

10 TD - Oprateurs arithmtiques 10.1 Reprsentation en complment 2 10.2 Addition en complment 2 . . . . 10.3 Soustraction et comparaison . . . . 10.4 Multiplication . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

11 TD - Analyse et synthse en portes logiques 11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Analyse dune porte complexe . . . . . . . . . . . . . . . . . . . . . 11.2.1 Analyse de la fonction laide du rseau de transistors P . 11.2.2 Analyse de la fonction laide du rseau de transistors N . 11.2.3 Limplmentation est elle unique ? . . . . . . . . . . . . . . 11.3 Analyse de portes prsentant des dysfonctionnements . . . . . . . . 11.3.1 Quelle est la "bonne" ? . . . . . . . . . . . . . . . . . . . . . 11.3.2 Causes de dysfonctionnements . . . . . . . . . . . . . . . . 11.4 Synthse de la fonction Majorit . . . . . . . . . . . . . . . . . . . 11.4.1 Construction CMOS de la fonction Majorit complmente 11.4.2 Optimisation de la fonction Majorit complmente . . . . 11.5 Synthse dun Additionneur 1 bit . . . . . . . . . . . . . . . . . . . 11.5.1 Construction de la retenue Ri+1 en CMOS . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

TABLE DES MATIRES

11.5.2 Construction de la sortie Si en CMOS . . . . . . . . . . . . . . . . . . . . . 11.5.3 valuation de laire de la surface dun additionneur . . . . . . . . . . . . . . 12 TD - Performances de la logique complmentaire CMOS 12.1 Objectifs du TD . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Temps de propagation dune fonction dcodeur . . . . . . . 12.3 Amlioration du dcodeur par amplication logique . . . . . 12.4 Gnralisation du principe de lamplication logique . . . . 12.5 Annexe : Bibliothque de cellules prcaractrises . . . . . . 13 TD - Utilisation des bascules 13.1 Mise en pipeline dune fonction combinatoire . . . . . . 13.1.1 Analyse de la fonction . . . . . . . . . . . . . . . 13.1.2 Augmentation de la frquence de fonctionnement 13.1.3 Optimisation en performances . . . . . . . . . . . 13.1.4 Compromis performances/surface . . . . . . . . . 13.2 Changement de format srie Parallle . . . . . . . . 13.2.1 Conversion srie parallle . . . . . . . . . . . . 13.2.2 Conversion parallle srie . . . . . . . . . . . . 13.3 Calcul de parit. . . . . . . . . . . . . . . . . . . . . . . 13.3.1 Calcul de parit sur un mot parallle . . . . . . . 13.3.2 Calcul de parit sur un mot srie . . . . . . . . . 14 TD - Synthse et utilisation des machines tats 14.1 Quest-ce quun bus de communication ? . . . . . . 14.2 Le contrleur de bus simple. . . . . . . . . . . . . . 14.2.1 Le graphe dtats. . . . . . . . . . . . . . . 14.2.2 Une optimisation possible. . . . . . . . . . . 14.2.3 Ralisation. . . . . . . . . . . . . . . . . . . 14.3 Le problme de lquit. . . . . . . . . . . . . . . . 14.3.1 Le contrleur quitable. . . . . . . . . . . . 14.3.2 Larbitre quitable. . . . . . . . . . . . . . .

149 149 151 151 151 152 152 153 155 155 155 155 156 156 156 156 157 157 158 158 159 159 160 160 161 163 163 163 164

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . . . . . . . . . . . . . avec un tage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . de pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

synchrones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

III

TP
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

165
167 167 167 167 167 167 168 168 168 169 170 170 172 172 172 172 172 172 173

15 TP - Combinatoire dans un CLP 15.1 Objectifs du TP . . . . . . . . . . . . . . . . . . . . 15.2 Spcication de lALU . . . . . . . . . . . . . . . . . 15.2.1 Gnralits . . . . . . . . . . . . . . . . . . . 15.2.2 Les entres . . . . . . . . . . . . . . . . . . . 15.2.3 Les sorties . . . . . . . . . . . . . . . . . . . . 15.2.4 Codage des oprations . . . . . . . . . . . . . 15.3 Prsentation de lenvironnement . . . . . . . . . . . 15.3.1 Maquette . . . . . . . . . . . . . . . . . . . . 15.4 Le logiciel de CAO . . . . . . . . . . . . . . . . . . . 15.5 Conception . . . . . . . . . . . . . . . . . . . . . . . 15.5.1 Conception de la cellule de base "CELLULE" 15.5.2 Conception de lALU . . . . . . . . . . . . . . 15.6 Validation sur la plate-forme . . . . . . . . . . . . . 15.6.1 Validation des connexions du projet global . 15.6.2 Compilation . . . . . . . . . . . . . . . . . . . 15.6.3 Programmation du FPGA . . . . . . . . . . . 15.6.4 Validation sur la maquette FPGA . . . . . . 15.7 Mesures des temps de propagation . . . . . . . . . .

TABLE DES MATIRES

16 TP - Caractrisation lectrique de portes logiques CMOS 175 16.1 Sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 16.2 Objectifs du TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 16.3 Caractrisation dun inverseur CMOS . . . . . . . . . . . . . . . . . . . . . . . . . 175 16.3.1 tude des rgimes de fonctionnement des transistors NMOS et PMOS : la fonction de transfert dun inverseur CMOS . . . . . . . . . . . . . . . . . . 175 16.4 Extraction des capacits dentre et de sortie de linverseur . . . . . . . . . . . . . 176 16.5 Dtermination des temps de propagation de linverseur . . . . . . . . . . . . . . . . 177 16.6 Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 16.6.1 Maquette experimentale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 16.6.2 Utilisation sommaire de loscilloscope . . . . . . . . . . . . . . . . . . . . . 180 16.6.3 Modles statique et grand signal . . . . . . . . . . . . . . . . . . . . . . . . 180 16.6.4 Rappels sur le modle de temps de propagation de linverseur CMOS . . . . 180 17 TP - Modlisation et caractrisation de transistors et doprateurs logiques 183 CMOS 17.1 Sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 17.2 Objectifs du TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 17.3 Caractrisation dun transistor NMOS . . . . . . . . . . . . . . . . . . . . . . . . . 183 17.3.1 Transconductance : Ids = f (Vgs ) . . . . . . . . . . . . . . . . . . . . . . . . 183 17.4 Caractrisation dun inverseur CMOS . . . . . . . . . . . . . . . . . . . . . . . . . 184 17.4.1 tude des rgimes de fonctionnement des transistors NMOS et PMOS : la fonction de transfert dun inverseur CMOS . . . . . . . . . . . . . . . . . . 184 17.5 Extraction des capacits dentre et de sortie de linverseur . . . . . . . . . . . . . 185 17.6 Dtermination des temps de propagation de linverseur . . . . . . . . . . . . . . . . 186 17.7 Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 17.7.1 Maquette experimentale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 17.7.2 Utilisation sommaire de loscilloscope . . . . . . . . . . . . . . . . . . . . . 187 17.7.3 Modles statique et grand signal . . . . . . . . . . . . . . . . . . . . . . . . 188 17.7.4 Rappels sur le modle de temps de propagation de linverseur CMOS . . . . 190 18 TP - Machines tats dans un CLP 18.1 Objectifs du TP . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2 Conseils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3 Conception du compteur/dcompteur . . . . . . . . . . . . . . . 18.3.1 Spcication . . . . . . . . . . . . . . . . . . . . . . . . . 18.3.2 Conception et validation . . . . . . . . . . . . . . . . . . . 18.4 Les problmes commencent... . . . . . . . . . . . . . . . . . . . . 18.4.1 Utilisation des interrupteurs . . . . . . . . . . . . . . . . . 18.4.2 Identication du problme : analyse du comportement des 18.4.3 Rsolution du problme . . . . . . . . . . . . . . . . . . . 19 TP - Nanoprocesseur 19.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 19.2 Architecture du systme microprocesseur . . . . . . . 19.3 Fonctionnement et jeu dinstructions du microprocesseur 19.4 Architecture du coeur du nanoprocesseur . . . . . . . . 19.5 Squencement des oprations . . . . . . . . . . . . . . . 19.5.1 Premier cycle "IF" . . . . . . . . . . . . . . . . . 19.5.2 Deuxime cycle "AF" . . . . . . . . . . . . . . . 19.5.3 Troisime cycle "EX" . . . . . . . . . . . . . . . 19.6 Travail demand . . . . . . . . . . . . . . . . . . . . . . 19.7 Verilog ou schma ? . . . . . . . . . . . . . . . . . . . . . 19.8 Conception du bloc PC . . . . . . . . . . . . . . . . . . 19.9 Conception du bloc CTR . . . . . . . . . . . . . . . . . 19.9.1 Validation . . . . . . . . . . . . . . . . . . . . . . 191 191 191 192 192 192 193 193 194 194 197 197 197 198 199 201 201 202 202 202 203 204 204 205

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . interrupteurs . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

TABLE DES MATIRES

19.9.2 Simulation . . 19.9.3 Test rel . . . . 19.9.4 Test musical . 19.10Questions subsidiaires

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

205 206 207 207

Index

207

10

TABLE DES MATIRES

Liste des tableaux


2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 Table de vrit dune fonction de 3 variables. . . . . . . . . . . Table de vrit dune fonction partiellement dnie. . . . . . . . Oprateur NON. . . . . . . . . . . . . . . . . . . . . . . . . . . Oprateur OU. . . . . . . . . . . . . . . . . . . . . . . . . . . . Oprateur ET. . . . . . . . . . . . . . . . . . . . . . . . . . . . Table de vrit de la fonction H : tats associs et mintermes. . Table de vrit de la fonction H : tats associs et maxtermes. Table de vrit de la fonction F : tats associs et mintermes. . Table de Karnaugh de la fonction F . . . . . . . . . . . . . . . . Correspondance des mintermes. . . . . . . . . . . . . . . . . . . Adjacence : a = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . Adjacence : c = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . Table de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . Premier pavage . . . . . . . . . . . . . . . . . . . . . . . . . . . Deuxime pavage . . . . . . . . . . . . . . . . . . . . . . . . . . Table de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . Premier pavage . . . . . . . . . . . . . . . . . . . . . . . . . . . Deuxime pavage . . . . . . . . . . . . . . . . . . . . . . . . . . Table de vrit et symbole des oprateurs XNOR . . . . . . . . Table de vrit et symbole des oprateurs XOR . . . . . . . . . Exemple conversion binaire-dcimal . . . . Exemple de dirents codes . . . . . . . . Table de vrit de ladditionneur complet Table si . . . . . . . . . . . . . . . . . . . Table ri+1 . . . . . . . . . . . . . . . . . . Table de vrit du soustracteur complet . Table di . . . . . . . . . . . . . . . . . . . Table ri+1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 34 35 35 35 36 36 39 39 39 39 39 40 40 40 41 41 41 44 44 48 51 52 53 53 55 55 55 58 59 59 59 59 63 64 65 66 66 70 71 72

Modle en interrupteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FAB = a b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FAB = a b = a + b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FAB = a b + a b + a b = a + b . . . . . . . . . . . . . . . . . . . . . . . . . . . . FAB = a b + a b + a b = a b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Charge/dcharge dune capacit par un NMOS . . . . . . . . . . . . . . . . . . . . Analyse dune porte logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analyse dune porte logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . schmas en transistors dune porte NAND2 et dune porte NOR2 . . . . . . . . . . synthse de fonctions non complmentes laide de portes en logique complmentaire connexions des transistors CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . Courant et rsistance quivalente du NMOS . . . . . . . . . . . . . . . . . . . . . . Courant et rsistance quivalente du PMOS . . . . . . . . . . . . . . . . . . . . . . 11

12

LISTE DES TABLEAUX

5.1 5.2 6.1 7.1 7.2 7.3 7.4 7.5 7.6 8.1 8.2 8.3 8.4 9.1 9.2 9.3

Tensions aux bornes de transistors pour les instants 0+ et tpd . . . . . . . . . . . . . Une bibliothque prcaractrise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table de vrit de la bascule D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemples de codage des tats . . . . . . . . . . Spcication de linterface . . . . . . . . . . . . Codage des tats . . . . . . . . . . . . . . . . . Table dvolution . . . . . . . . . . . . . . . . . spcication de linterface . . . . . . . . . . . . Spcication de la programmation du minuteur Nouveau jeu dinstructions . Organisation de la mmoire, Organisation de la mmoire, Nouveau jeu dinstructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74 79 92 108 111 111 112 113 114 123 124 125 127 142 142 143 153 156 156 157 157 158 162 168 176 177 178 179 179 181 184 185 186 187 188 188 189 198 199

. . . . . . . . . . . . . . . . . . avant excution du programme aprs excution du programme . . . . . . . . . . . . . . . . . .

Table de vrit de la fonction F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table de vrit de la fonction G. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table de vrit de la fonction de conversion BCD 2 parmi 5 . . . . . . . . . .

12.1 Une bibliothque prcaractrise simple. . . . . . . . . . . . . . . . . . . . . . . . . 13.1 13.2 13.3 13.4 13.5 Surface des lments . . . . Spcications de D-EN . . . Spcications de SER-PAR Spcications de D-EN-LD Spcications de PAR-SER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14.1 Spcication du contrleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1 Codage des oprations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.1 16.2 16.3 16.4 16.5 16.6 17.1 17.2 17.3 17.4 17.5 17.6 17.7 Schma du montage 2 . . . . . . . . . . . . . . . . . . . . . . . . . Schma du montage 3 . . . . . . . . . . . . . . . . . . . . . . . . . Disposition des transistors sur la maquette . . . . . . . . . . . . . . Connexion des gnrateurs de tension continue . . . . . . . . . . . Cblage des dirents lments . . . . . . . . . . . . . . . . . . . . quations des transistors MOS (voir schma gure 16.3 page 180) Schma du montage 1 . . . . . . . . . . . . . . . . . . . . . . . . . Schma du montage 2 . . . . . . . . . . . . . . . . . . . . . . . . . Schma du montage 3 . . . . . . . . . . . . . . . . . . . . . . . . . Disposition des transistors sur la maquette . . . . . . . . . . . . . . Connexion des gnrateurs de tension continue . . . . . . . . . . . Cblage des dirents lments . . . . . . . . . . . . . . . . . . . . quations des transistors MOS (voir schma gure 17.3 page 189) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19.1 Entres-sorties du processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.2 Jeu dinstructions du processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Table des gures


1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 3.1 3.2 3.3 3.4 3.5 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Complexit des niveaux hirarchiques. . . . . . . . . . . . . . . . . . . . . . . . . . Complexit des niveaux hirarchiques. . . . . . . . . . . . . . . . . . . . . . . . . . Le signal lectrique support de linformation... . . . . . . . . . . . . . . . . . . . . . Le signal mcanique support de linformation... . . . . . . . . . . . . . . . . . . . . Claude Shannon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Laudition moyenne dun tre humain . . . . . . . . . . . . . . . . . . . . . . . . . Un signal multivalu codant une valeur numrique . . . . . . . . . . . . . . . . . . Une liaison la frquence 3 Fm est quivalente 3 liaisons oprants la frquence Fm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un signal binaire : signal lectrique et interprtation. . . . . . . . . . . . . . . . . . Un signal binaire distordu, attnu et bruit, mais reconstruit. . . . . . . . . . . . Gnration dun signal binaire avec une source de tension, une rsistance et un interrupteur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le transistor interrupteur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de transfert de linverseur. . . . . . . . . . . . . . . . . . . . . . . . . . . Fonction NOR2 : schma et table de vrit . . . . . . . . . . . . . . . . . . . . . . . Fonction mmorisation : schma et fonctions de transfert . . . . . . . . . . . . . . . Vue en coupe dun transistor NMOS . . . . . . . . . . . . . . . . . . . . . . . . . . Encapsulation dun circuit intgr dans un botier. . . . . . . . . . . . . . . . . . . Symboles des portes lmentaires. . . . . . . . . . . . . . . . . . . . . . . Un exemple de schma. . . . . . . . . . . . . . . . . . . . . . . . . . . . Multiplexeur deux entres (Mux2). . . . . . . . . . . . . . . . . . . . . Schma interne dun multiplexeur 4 entres avec entre de validation. Reformulation du multiplexeur 4 entres. . . . . . . . . . . . . . . . . Test dgalit de deux mots de 4 bits. . . . . . . . . . . . . . . . . . . . Acheur 7 segments. Un segment = une diode lectro-luminescente. . . Tableau de Karnaugh de a = F (A, B, C, D). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 20 20 21 21 22 23 24 25 25 26 26 26 27 27 28 30 41 42 42 43 43 44 45 45 52 53 54 54 55 60 60 61 61 62 62 67 68 68

quations algbriques, table de vrit et schma dun demi-additionneur. Exemple de schma pour ladditionneur complet. . . . . . . . . . . . . . . Additionneur retenue srie. . . . . . . . . . . . . . . . . . . . . . . . . . Equations algbriques, table de vrit et schma dun demi-soustracteur. . Schma interne du soustracteur complet. . . . . . . . . . . . . . . . . . . . Circuit Rsistance Transistor Logique . . . . . . . . . . linverseur CMOS . . . . . . . . . . . . . . . . . . . . . . Rgime statique : les 2 tats statiques de linverseur . . linverseur CMOS et sa charge capacitive . . . . . . . . schma de principe de la logique compltaire . . . . . . schma du fonctionnement de la logique complmentaire Quelques chemins de propagation... . . . . . . . . . . . . Temps de propagation dans une porte . . . . . . . . . . Capacit dentre de lentre A dune porte NAND . . . 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

TABLE DES FIGURES

4.10 Charge et dcharge de la capacit dentre CEA dun NAND . . . . . . . . . . . . 4.11 Temps de propagation dans un assemblage de portes . . . . . . . . . . . . . . . . . 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 6.20 6.21 6.22 6.23 6.24 6.25 tude de cas de linverseur CMOS. . . . . . . . . . . . Simulation lectrique de linverseur CMOS. . . . . . . Conditions de mesures des transitions des signaux. . . volution du courant drain-source du transistor NMOS dante. . . . . . . . . . . . . . . . . . . . . . . . . . . . Schma synthtique de linverseur CMOS. . . . . . . . Deux inverseurs en srie. . . . . . . . . . . . . . . . . . Schma synthtique dune porte NAND. . . . . . . . . Dissipation de lnergie dans une porte CMOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . durant la transition descen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . en . . en . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . sous . . . sous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69 69 74 75 75 76 77 78 78 81 86 86 87 87 88 88 88 89 89 90 90 90 91 91 91 92 92 93 93 94 94 95 96 96 96 97 99 100 100 101 101 102 103 103 104 105 106 107 107 108

Chronogramme dun circuit combinatoire . . . . . . . . . . . . . . . . . . Chronogramme dun circuit squentiel . . . . . . . . . . . . . . . . . . . . Chronogramme avec les variables internes . . . . . . . . . . . . . . . . . . structure de base dun circuit en logique squentielle . . . . . . . . . . . . Structure de base dun circuit en logique squentielle synchrone . . . . . . Chronogramme du signal dhorloge . . . . . . . . . . . . . . . . . . . . . . Point mmoire bas sur un amplicateur reboucl . . . . . . . . . . . . . . Fonction de transfert de lamplicateur . . . . . . . . . . . . . . . . . . . . Convergence vers un tat stable en ne partant pas de X . . . . . . . . . . inverseurs en tte bche pour la mmorisation . . . . . . . . . . . . . . . . bascule RS avec une structure NAND et NOR . . . . . . . . . . . . . . . . Point mmoire RAM statique . . . . . . . . . . . . . . . . . . . . . . . . . Structure de la bascule D sur tat ou latch . . . . . . . . . . . . . . . . . structure de la bascule D partir de latches . . . . . . . . . . . . . . . . . Chronogramme de la bascule D avec 2 latches . . . . . . . . . . . . . . . . Symbole de la bascule D . . . . . . . . . . . . . . . . . . . . . . . . . . . . Caractristiques temporelles de la bascule D . . . . . . . . . . . . . . . . . Temps de propagation considrer en logique squentielle . . . . . . . . . registre dcalage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chronogramme du registre dcalage . . . . . . . . . . . . . . . . . . . . Compteur binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accumulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chronogramme de laccumulateur . . . . . . . . . . . . . . . . . . . . . . . circuit squentiel de traitement de ot de donnes . . . . . . . . . . . . . Circuit squentiel de traitement de ot de donnes aprs dcomposition fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.26 Circuit squentiel de traitement de ot de donnes aprs dcomposition fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 7.12 7.13 7.14 Architecture gnrique dun circuit lectronique . . . Schma dun machine tat gnrique . . . . . . . . O rencontrer les machines tats . . . . . . . . . . Graphe dtat au dpart . . . . . . . . . . . . . . . . Graphe dtat avec quelques transitions . . . . . . . Graphe dtat avec les transitions . . . . . . . . . . . Graphe dtat avec les transitions spcies . . . . . Graphe dtat nal . . . . . . . . . . . . . . . . . . . Graphe dtat nal . . . . . . . . . . . . . . . . . . . Calcul de ltat futur . . . . . . . . . . . . . . . . . . Graphe dtat avec Reset synchrone . . . . . . . . . Graphe dtat avec Reset Asynchrone . . . . . . . . calcul des sorties . . . . . . . . . . . . . . . . . . . . Schma dune machine tats avec le nombre de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ncessaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

TABLE DES FIGURES

15

7.15 7.16 7.17 7.18 7.19 7.20 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 8.11 8.12 8.13 8.14

Graphe avec codage adjacent . . . . . . . . . . . . . . . Graphe avec codage "one-hot" . . . . . . . . . . . . . . Graphe avec codage choisi pour la conception . . . . . . Graphe avec codage choisi pour la conception . . . . . . Schma dun minuteur . . . . . . . . . . . . . . . . . . . Schma dun minuteur gnrique avec RAZ automatique Symbole de la RAM . . . . . . . . . . Exemple daccs la RAM . . . . . . schma global . . . . . . . . . . . . . . Architecture de la premire version . . Graphe dtats de la premire version Architecture de la deuxime version . Graphe dtats de la deuxime version Architecture de la troisime version . . Graphe dtats de la troisime version Implmentation du PC . . . . . . . . . Architecture de la quatrime version . Graphe dtats de la quatrime version Architecture de la version nale . . . . Graphe dtats de la version nale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

110 110 112 113 114 115 119 120 120 129 129 132 132 134 134 135 135 135 136 137 147 148 149 151 152 153 155 156 157 157 157 158 158 159 160 161 161 162 163 163 168 169 170 171 173 173 174 176 178 180

11.1 Porte logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Trois portes... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Table de vrit de lAdditionneur Complet 1 bit . . . . . . . . . . . . . . . . . . . . 12.1 Trois implantations alternatives de la fonction LM20 . . . . . . . . . . . . . . . . . 12.2 Solution (3) avec amplication logique . . . . . . . . . . . . . . . . . . . . . . . . . 12.3 Amplication logique gnralise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1 13.2 13.3 13.4 13.5 13.6 13.7 14.1 14.2 14.3 14.4 14.5 14.6 14.7 15.1 15.2 15.3 15.4 15.5 15.6 15.7 Circuit tudier . . . . . . . . . . . . . . Circuit tudier avec pipeline . . . . . . . Bascule D-EN . . . . . . . . . . . . . . . . Composant SER-PAR . . . . . . . . . . . Bascule D-EN-LD . . . . . . . . . . . . . Composant PAR-SER . . . . . . . . . . . Chronogramme des entres du calculateur Liaisons point point . . . . . . . . Bus central . . . . . . . . . . . . . . Systme de communication . . . . . Contrleur de communication . . . . Illustration de la perte dun cycle . . Chronogramme optimis . . . . . . . Description fonctionnelle symbolique Bloc ALU . . . . . . . . . . . Maquette Digilent . . . . . . Flot de conception FPGA . . Cellule de base . . . . . . . . Simulation de la maquette . . Le projet ALU . . . . . . . . Emplacement des sondes pour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lanalyse

16.1 linverseur CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.2 Montage 4 et chronogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.3 Schma du modle statique et grand signal du transistor MOS . . . . . . . . . . .

16

TABLE DES FIGURES

16.4 Temps de propagation de linverseur MOS . . . . . . . . . . . . . . . . . . . . . . . 16.5 Modle de linverseur MOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.1 17.2 17.3 17.4 17.5 linverseur CMOS . . . . . . . . . . . . . . . . Montage 4 et chronogrammes . . . . . . . . . Schma du modle statique et grand signal du Temps de propagation de linverseur MOS . . Modle de linverseur MOS . . . . . . . . . . . . . . . . . . . . . . transistor . . . . . . . . . . . . . . . . . . . . MOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

181 182 185 186 189 190 190 192 193 194 198 200 201 203 204 204 205

18.1 Le compteur/dcompteur CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2 Schma du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3 Emplacement des sondes pour lanalyse . . . . . . . . . . . . . . . . . . . . . . . . 19.1 19.2 19.3 19.4 19.5 19.6 19.7 Schma global du processeur et de ses priphriques . . . . . . . . . . Intrieur du processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . Graphe dtat du contrleur CTR . . . . . . . . . . . . . . . . . . . . . Chronogrammes du processeur . . . . . . . . . . . . . . . . . . . . . . Chronogrammes du PC . . . . . . . . . . . . . . . . . . . . . . . . . . Bloc CTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chronogrammes de la simulation du programme de test verif_globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Premire partie

Leons

17

Chapitre 1

Traitement matriel de linformation


1.1 Du composant au systmes numriques

Alors que le cerveau de ltre humain qui a crit ce texte comporte 1012 neurones, le microordinateur qui a servi le mettre en forme comporte au maximum 1010 composants de base : les transistors. Malgr cette relative simplicit, la ralisation de tels systmes de traitement est dicilement concevable par un mme individu dans sa globalit. La matrise de cette complexit est le rsultat dun dcoupage hirarchique aboutissant des tapes ayant une cohrence soit logique (fonction) soit physique (composant). La gure 1.1 reprsente les trois premiers niveaux de cette hirarchisation.

(Transistor 1)

(Porte logique 10)

(Oprateur 1000)

Fig. 1.1: Complexit des niveaux hirarchiques.

Lassemblage judicieux de moins dune dizaine de transistors permet la ralisation des briques de base du traitement logique : les portes logiques quelques entres. Avec le mme nombre de transistors, nous pouvons stocker une information binaire (0/1) dans un point mmoire et ly maintenir tant que nous fournissons de lnergie. Il est possible par lassemblage de quelques milliers de portes logiques et de fonctions de mmorisation de crer des oprateurs de calcul ou de traitement tels que des multiplieurs ou des units de contrle. Lassemblage doprateurs permet la cration dun nouveau composant : le circuit intgr. Les millions de transistors des circuits intgrs sont raliss sur un unique carr de matriau semiconducteur (le silicium) de la taille dun ongle. Parmi les exemples les plus connus de circuits intgrs citons le microprocesseur et la mmoire dynamique (DRAM) qui sont au cur des microordinateurs. Nous quittons maintenant le domaine de la micro-lectronique numrique pour passer une vision macroscopique illustre dans la gure 1.2 page suivante. Lassemblage de circuits intgrs sur des cartes ou circuits imprims de quelques centaines de cm2 permet la ralisation de systmes de traitements numriques autonomes tels quune calculatrice, un agenda lectronique ou un ordinateur de bureau. 19

20

CHAPITRE 1. TRAITEMENT MATRIEL DE LINFORMATION

(Circuit intgr 108 )

(Micro-ordinateur 1010 )

(Systme Tlcom 10xx )

Fig. 1.2: Complexit des niveaux hirarchiques.

Enn, ces systmes lectroniques numriques permettent de raliser la plupart des fonctions de traitement des rseaux de tlcommunications. Bien malin qui peut savoir combien de transistors ont particip votre dernire conversation tlphonique... La matrise parfaite dun de ces niveaux de complexit dans ses aspects techniques, scientiques ou conomiques, ncessiterait, elle seule, une formation dingnieur lectronicien... De faon raliste, nos objectifs sont, dans le cadre dune base de connaissances indispensables , dune part de vous permettre de comprendre le domaine de llectronique numrique intgre dans son ensemble et dautre part, dacqurir une premire exprience concrte de la ralisation doprateurs numriques, ce que nous dclinons de manire plus prcise par : comprhension de la technologie de fabrication et du fonctionnement des transistors ; matrise dune technique de ralisation de portes logiques ; matrise de techniques de ralisation doprateurs ; comprhension de linuence de la technologie sur les performances des circuits intgrs ; comprhension des enjeux techniques et conomiques de lindustrie micro-lectronique.

1.2

Signal et Information

Avant de nous intresser au composant lectronique il convient de dnir son usage, cest dire de dnir les caractristiques des signaux quil est sens gnrer, transmettre ou modier.

1.2.1

Signal lectrique et traitement de linformation

Le signal lectrique est actuellement le support ncessaire lensemble des systmes de traitement de linformation qui nous sont familiers. Le mot information prend ici un sens trs large que nous expliciterons ultrieurement. Votre tlvision (information visuelle), votre chane HiFi (information musicale) ou votre micro-ordinateur (programmes...) sont des exemples concrets de systmes de traitement de linformation utilisant le support lectrique.

Fig. 1.3: Le signal lectrique support de linformation...

On peut envisager videmment dautres supports physiques que le signal lectrique (papier, lumire, champs lectromagntiques) il nen reste pas moins vrai que ces supports, sils sont trs

1.2. SIGNAL ET INFORMATION

21

adapts la transmission et au stockage de linformation (livres, cdroms, bre optiques, tlphone portable ou par satellite), ne permettent gure de raliser des fonctions de traitement labores.

Fig. 1.4: Le signal mcanique support de linformation...

Nous pouvons mesurer les valeurs instantanes (tension, courant, charges...) dun signal lectrique quelconque ainsi que lvolution de ces valeurs instantanes au cours du temps. Il est possible de caractriser un tel signal par des grandeurs de forme. La frquence, la phase et lamplitude sont, par exemple, trois paramtres caractrisant la forme dun signal lectrique sinusodal. Il est facile dimaginer lutilisation des variations de ces grandeurs ou paramtres pour reprsenter une information dont le signal lectrique serait porteur, la restitution de linformation se faisant en interprtant la mesure de ces grandeurs. Dans un article considr comme fondateur de la thorie de linformation C.E. Shannon a propos en 1948 un schma de communication : linformation est dnie comme un lment de connaissance de ltat dun systme. Une chane de communication comporte une source (ou metteur) qui met (code) des messages vers une destination (rcepteur). Le rcepteur ne peut dcoder les informations mises par lmetteur que sil connat lensemble des tats possibles de la source. Le but de la thorie de linformation est de dgager les lois thoriques qui limitent les performances des systmes de traitement et de communication. Elle permet galement loptimisation des codages en fonction des contraintes matrielles des systmes.

Fig. 1.5: Claude Shannon

22

CHAPITRE 1. TRAITEMENT MATRIEL DE LINFORMATION

1.2.2

Codage analogique de linformation : lexemple du signal sonore

Signal !analogique Jusquau lancement du disque compact numrique , mis au point par les socits Sony et Philips au dbut des annes 80, les technologies de stockage et de transfert du son appartenaient au domaine du traitement analogique (signal analogique temps continu). En clair, depuis la premire description du tlphone celle (Robert Hooke en 1667) jusqu la n des annes 1970, ces techniques se basaient toutes sur la transformation dun phnomne physique (par exemple une variation de pression) en un autre phnomne physique (par exemple vibration dune membrane) se comportant de manire analogue au premier. Le signal lectrique analogique sortant dune tte de lecture dun lecteur de disque microsillon est un exemple typique de ce codage analogique : la valeur instantane de la tension la sortie de la tte de lecture varie comme le signal audio enregistr mcaniquement sur le disque. Le signal analogique lectrique est malheureusement sujet de nombreux phnomnes qui viennent dtriorer la qualit de linformation transmise (attnuation, distortion, bruits parasites...), la correction de ces phnomnes nest pas chose aise et rarement satisfaisante. Ce nest, de plus, pas un support trs pratique ds que lon envisage deectuer des traitements complexes. Les calculateurs analogiques ont eu une brve existence dans les annes 60 80 lorsque leurs homologues numriques taient leurs balbutiements. Noublions cependant pas, en reprenant lexemple de la chane de transmission du son, que le capteur (microphone) de mme que lenceinte acoustique ont un fonctionnement analogique ; le traitement analogique de linformation reste lindispensable interface avec le monde rel .

Fig. 1.6: Laudition moyenne dun tre humain

1.2.3

Codage numrique de linformation

Maintenant, revenons la thorie de linformation et reprenons lexemple du signal sonore. Nous ne dsirons transmettre et stocker que linformation pertinente notre oreille. Comme le montre le diagramme de la gure 1.6, nous savons que celle-ci ne peut pas distinguer de variations de pression infrieures 2 105 Pa et quelle ne peut supporter de variations de pression suprieures 20 Pa. On appelle ce rapport la dynamique du signal que lon a coutume de mesurer en dcibel :

1.2. SIGNAL ET INFORMATION

23

I dcibels (dB) = 20 log10 (P/P0 ) Notre source audio ncessite une dynamique de 120 dB. Cela signie aussi (au sens de la thorie de linformation) que le rcepteur (loreille) ne peut dcoder que 106 tats dirents par pas de 2 105 Pa. Dautre part, nous ne pouvons entendre que des signaux ayant une bande de frquence limite de 20 Hz 20 000 Hz. Le thorme dchantillonnage indique quil est possible de reconstruire avec exactitude un signal bande limite partir dchantillons de ce signal pris intervalles rguliers une frquence double de la frquence maximale du signal original. Nous avons donc montr que notre signal sonore pouvait tre reprsent par une suite de nombres entiers : cest un signal prenant un nombre discret dtats de manire discrte dans le temps. Nous qualierons ce signal de signal numrique. Lopration de quantication (discrtisation des tats) et dchantillonnage (discrtisation du temps) nous conduit rednir la notion de dynamique que lon mesurera en bits (pour binary digit ) : N bits = log2 (nombre dtats) Nous pouvons maintenant associer au signal numrique un dbit de donnes mesur en bits par seconde. Un lecteur de disque compact audio a, par exemple, un dbit correspondant 2 canaux (strophonie) chantillonns 44,1 kHz sur une dynamique de 16 bits soit 1,41 Mb/sec. Nous allons donner un support lectrique ce signal numrique. Lide la plus simple consiste associer chaque tat du signal une tension et de faire voluer dans le temps cette tension pour reprsenter la suite de symboles. La gure 1.7 montre un signal lectrique multivalu support dun signal numrique trois tats prenant successivement les tats 2 , 1 et 0 . Les plages hachures reprsentent des plages de tensions pour lesquelles il nest pas possible de dterminer ltat du signal ce qui est matrialis par le symbole X .

Fig. 1.7: Un signal multivalu codant une valeur numrique

Remarquons (voir gure 1.8 page suivante), qu dbit dinformation constant nous pouvons jouer sur le nombre de signaux physiques (ou de ls de liaison) utiliss, le nombre dtats cods et la frquence de changement des symboles. Ce choix est essentiellement guid par des considrations de facilit de traitement et sur la robustesse du codage au regard du bruit ou de lattnuation du signal lectrique. Sans entrer dans le dtail de ces considrations, il est possible de justier lusage gnralis du codage binaire de la manire suivante. Considrons la reprsentation de nombres sous la forme de n canaux physiques (n ls) utilisant b niveaux lectriques. Le nombre total de symboles reprsentables sous cette forme est Q = bn . La ralisation de cette reprsentation a un cot matriel ; il faut en eet mettre en place des dispositifs de dtection de niveaux plus ou moins complexes en fonction de la base choisie et adapter le nombre

24

CHAPITRE 1. TRAITEMENT MATRIEL DE LINFORMATION

Fig. 1.8: Une liaison la frquence 3 Fm est quivalente 3 liaisons oprants la frquence Fm

de canaux pour obtenir la qualit Q choisie. Ce cot est videmment proportionnel au nombre n de canaux ; nous allons en premire approximation considrer quil est aussi proportionnel la base b choisie : C = b n. Nous pouvons en dduire la base optimale qui minimise le cot C pour une qualit Q donne. Nous avons n = ln(Q)/ ln(b) Do C = b ln(Q)/ ln(b) Lexpression de C possde un minimum en b = e quelle que soit la qualit Q souhaite. Cela nous conduit ne considrer que les bases 2 ou 3 comme candidates possibles. Dans la ralit, la complexit dun oprateur de calcul physique en base 3 est plus que 1,5 fois plus grande que celle dun oprateur en base 2 (la fonction C dpend de b de faon grandement non linaire). Cela justie le choix quasi universel de la base 2 dans les systmes de traitement numrique. Il arrive que ce choix soit remis en cause dans des cas particuliers.

1.2.4

Lexemple du signal binaire

Dans un signal binaire, seuls deux tats sont possibles : 0/1. Nous choisissons deux plages de tensions disjointes pour reprsenter les deux tats, un symbole ne pouvant tre la fois dans ltat 1 et ltat 0 . Lorsque le signal lectrique volue dans le temps, il passe successivement et continuement dune plage de dnition dtat lautre en croisant une plage intermdiaire pour laquelle on qualie le signal dindtermin. Une vision simplie du signal consiste ne reprsenter que les tats dtects 0 et 1 relis par des segments de droite reprsentant leur transition dun tat un autre (gure 1.9 page ci-contre). Mme si le signal lectrique subit des distortions, une attnuation, ou sil est entach de bruit, il est possible de reconstruire avec exactitude les symboles mis jusqu un certain niveau de dgradation (gure 1.10 page suivante). Remarquons que pour une excursion totale de tension donne, la multiplication des tats possibles (codage multivalu) diminue lamplitude des plages de tensions associes chaque tat et donc augmente la dicult de dtection ; le codage binaire est nouveau , de ce point de vue, le codage le plus robuste. Pour conclure sur le signal binaire, nous pouvons lister les quelques caractristiques qui ont conduit limposer dans le monde de llectronique numrique : Cest dune part le symbole du raisonnement logique, de la prise de dcision et du contrle (si /alors/ sinon). Cest dautre part une base de reprsentation des nombres entiers permettant deectuer tous calculs arithmtiques partir doprations simples. Il est, comme tout signal numrique, utilisable pour coder de linformation comme le son ou limage. Il peut utiliser un support lectrique trs simple (codage direct en amplitude).

1.3. LE SIGNAL BINAIRE REPRSENT PAR UNE GRANDEUR LECTRIQUE

25

Fig. 1.9: Un signal binaire : signal lectrique et interprtation.

Fig. 1.10: Un signal binaire distordu, attnu et bruit, mais reconstruit.

1.3

Le signal binaire reprsent par une grandeur lectrique

Nous allons, dans ce chapitre, montrer quelques techniques simples permettant de dgager les caractristiques des composants ncessaires la gnration, la dtection et le traitement de signaux binaires lectriques ; notre but nest pas de prsenter des implantations ralistes de fonction logiques.

1.3.1

Comment peut-on gnrer un signal lectrique binaire ?

Il sagit l de crer un signal lectrique pouvant se stabiliser dans deux plages de tension prdnies correspondant aux deux tats 0 et 1 . Nous pouvons partir dune source dalimentation continue fournissant ses bornes une tension Vdd donne. Le montage de la gure 1.11 page suivante bas sur un simple interrupteur et une rsistance permet de gnrer la tension 0 V (resp. Vdd ) lorsque linterrupteur est ferm (resp. ouvert) sur la sortie.

1.3.2

Comment peut-on extraire un symbole binaire dun signal lectrique ?

Supposons que nous disposons dun composant, que nous appellerons transistor , compos dun premier dispositif capable de comparer une tension une rfrence donne, coupl un

26

CHAPITRE 1. TRAITEMENT MATRIEL DE LINFORMATION

Fig. 1.11: Gnration dun signal binaire avec une source de tension, une rsistance et un interrupteur.

second dispositif se comportant comme un interrupteur command en fonction du rsultat de la comparaison. Le symbole et la fonction de cet interrupteur sont reprsents en gure 1.12.

Si Vin < Vref alors linterrupteur est ouvert. Si Vin > Vref alors linterrupteur est ferm.

Fig. 1.12: Le transistor interrupteur.

Remplaons linterrupteur de la section prcdente par notre transistor. Pour toute tension dentre infrieure (resp. suprieure) Vref , la tension de sortie prend la valeur Vdd (resp. 0 V ). Nous disposons bien dun dispositif capable de dtecter ltat du signal dentre mme entach de bruit ou de distortions. La gure 1.13 prsente tout dabord la fonction de transfert thorique du dispositif, cest--dire la relation liant la tension dentre la tension de sortie. Ce dispositif est appel inverseur .

Fonction de transfert idale

Fonction de transfert raliste

Fig. 1.13: Fonctions de transfert de linverseur.

Dans la pratique, il nest pas possible de crer des dispositifs lectroniques aussi slectifs ; nous pouvons retenir les deux imperfections suivantes : Passage continu entre le mode ouvert et le mode ferm ; Rsistance non nulle en mode ferm. La deuxime fonction de transfert de la gure 1.13 prsente un comportement plus raliste dun tel oprateur. Tant que le signal reste dans les plages o la pente de la fonction de transfert est suprieure moins un, limmunit au bruit est maximale et le signal est rgnr de faon convenable.

1.4. LA TECHNOLOGIE MICRO-LECTRONIQUE

27

1.3.3

Comment peut-on crer un oprateur de traitement binaire ?

Considrons maintenant le montage de la gure 1.14, compos de deux transistors et une rsistance. Nous pouvons construire une table reprsentant la valeur de la tension en sortie du montage en fonction des tensions en entre. Nous pouvons traduire cette table en une table de vrit en remplaant les valeurs de tension par les tats 0 ou 1 correspondants. Nous avons cr un oprateur de traitement binaire (la fonction non-ou ) qui prend la valeur 0 en sortie si lune ou lautre des entres est 1 .

Vin1 <Vref <Vref <Vref >Vref

Vin2 <Vref >Vref >Vref >Vref

Vsortie Vdd 0V 0V 0V

In1 0 0 1 1

In2 0 1 0 1

Sortie 1 0 0 0

Fig. 1.14: Fonction NOR2 : schma et table de vrit

Nous pouvons videmment laborer des fonctions plus complexes soit par construction soit par combinaisons de direntes fonctions dj cres. La fonction ou peut se construire, par exemple, en connectant une fonction inverseur derrire la fonction non-ou . Une autre fonction importante du traitement numrique est la mmorisation des informations. La gure 1.15 montre comment au moyen de deux inverseurs connects lun lautre il est possible de crer un dispositif possdant deux tats stables que lon assimilera au stockage dune information binaire. Comme indiqu dans la reprsentation des fonctions de transfert des deux inverseurs le couple de tensions (Va , Vb ) ne peut prendre que les valeurs (Vdd , Vmin ) ou (Vmin , Vdd ) et ce tant que le dispositif est aliment par la source de tension Vdd . Nous ne traiterons pas dans ce cours de la manire de forcer cette mmoire prendre un tat dsir 0 ou 1.

Fig. 1.15: Fonction mmorisation : schma et fonctions de transfert

1.4

La technologie micro-lectronique

Le rle de la technologie micro-lectronique est la ralisation et lintgration des transistors ncessaires la ralisation des oprateurs dont nous avons vu un premier aperu. Il se trouve que le traitement ou le stockage de donnes manipule une matire premire sans dimensions physiques :

28

CHAPITRE 1. TRAITEMENT MATRIEL DE LINFORMATION

linformation. Par consquent, le dispositif de traitement ou de stockage peut tre aussi petit que lon peut le souhaiter dans la limite de nos capacits ou de nos connaissances scientiques une priode donne. Toutes les bases techniques de la fabrication des circuits intgrs lectroniques ont t tablies vers 1960 ; depuis les progrs ne sont que des amliorations successives sans remise en question fondamentale du procd initial.

1.4.1

Quelles proprits des matriaux peut-on exploiter pour crer des transistors ?

Nous dsirons crer un dispositif passant dun mode isolant (interrupteur ouvert) un mode conducteur (interrupteur ferm) en fonction dune commande lectrique extrieure. Un relai lectromcanique ferait laaire, mais il semble plus judicieux de chercher exploiter des phnomnes physiques qui permettraient de modier directement les caractristiques conductrices dun matriau. Les matriaux semi-conducteurs (silicium, germanium, arsniure de gallium...) sont des matriaux rvs pour cet usage. Ces matriaux ont les deux proprits fondamentales suivantes : Il est possible de modier statiquement les densits de charges libres, et donc susceptibles de crer un courant lectrique, dans le matriau en injectant des impurets (bore, arsenic, phosphore...) dans leur structure : on appelle cela le dopage. Il est possible de modier dynamiquement les densits de charges libres dans le matriau sous linuence de champs lectriques. En combinant ces deux phnomnes, nous pouvons crer des transistors ayant le comportement demand. Le transistor le plus couramment utilis actuellement est le transistor MOS (pour Mtal/Oxyde/Semi-conducteur). La gure 1.16 prsente une vue en coupe et en perspective dun transistor MOS de type N (vous verrez en lectronique analogique quil existe deux types de transistors MOS, les N et les P).

Fig. 1.16: Vue en coupe dun transistor NMOS

Les lments essentiels constituant un transistor MOS de type N sont les suivants : Un substrat faiblement dop avec des dopants de type P (atomes de dopants accepteurs dlectrons). On note P ce type de dopage. Polaris correctement, ce substrat est isolant. Au sein de ce substrat, deux zones approximativement paralllpipdiques, fortement dopes avec des dopants de type N (atome de dopants donneurs dlectrons). On note N + ce type de dopage. Ces zones dopes sont nommes Source et Drain du transistor. Notons que Source et Drain sont indiscernables : le transistor est physiquement symtrique. La zone de substrat situe entre Source et Drain se nomme le canal du transistor. La longueur L et la largeur W (de langlais Width) du canal taient dans les technologies courantes en

1.5. LES FILIRES TECHNICO-CONOMIQUES

29

2004 de lordre du dixime de micron. En jouant sur ces deux dimensions le concepteur peut contrler les performances du transistor. Au dessus du canal, une ne couche isolante, constitue doxyde de silicium (SiO2 ). Lpaisseur de cette couche est actuellement de moins de 10 nm. Enn, au dessus de cette couche doxyde, un dpt de silicium poly-cristallin, align avec la canal du transistor. Il sagit de la Grille du transistor. Le silicium poly-cristallin est un agglomrat de petits cristaux de silicium (cest un matriau conducteur). La perspective nous montre, de plus, les connecteurs mtalliques permettant de raccorder Source et Drain du transistor au reste du circuit. Dans le transistor MOS, le champ lectrique cr en polarisant convenablement la Grille permet de moduler le courant passant entre Drain et Source.

1.4.2

Quelles sont les direntes tapes de la fabrication des circuits intgrs ?

La fabrication dun circuit intgr doit satisfaire trois besoins : crer des transistors les plus performants possibles ; orir les moyens dinterconnecter entre eux ces transistors, ainsi que dinterconnecter le circuit intgr avec le monde macroscopique ; orir une protection, contre les agressions lies aux conditions dutilisation, susante pour garantir une abilit satisfaisante. Le matriau de base est le silicium, llment le plus commun sur Terre aprs loxygne. Ce matriau est puri et transform en un lingot mono-cristallin de quelques dizaines de cm de diamtre. Le silicium est puri pour comporter moins dune impuret pour 100 millions datomes de silicium, en eet le niveau des dopages destins ajuster les proprits semi-conductrices du matriau sont de lordre de 10 atomes de dopant pour un million datomes de silicium. Le lingot est dcoup en tranches (wafer pour les anglo-saxons) de faible paisseur. Ces tranches sont polies jusqu ce que les dfauts de surface nexcdent pas quelques couches atomiques. Les tranches sont ensuite envoyes en fonderie pour la fabrication proprement dite des circuits intgrs. On fabrique ainsi en parallle plusieurs dizaines de circuits sur la mme tranche. Les traitements eectus sur les tranches se rsument quelques tapes simples plusieurs fois rptes : Croissances ou dpts de silice sur la surface de tranche : il sagit de raliser des isolations entre lments de direntes couches ou des grilles de transistors. Lithographie : il sagit de dessiner les motifs dsirs dans le matriaux. Cela commence par le dpt dune rsine photo-sensible sur la surface de la tranche. Aprs exposition travers un masque et dveloppement la rsine est limine des endroits dsirs. La rsine restante servira de protection pour une attaque chimique slective de la tranche. Implantation ionique : il sagit de raliser les dopages ncessaires au fonctionnement des transistors. La silice au pralablement grave par lithographie sert de masque naturel pour dnir les zones o seront les transistors. Dpts de mtaux : il sagit l de dposer uniformment sur la tranche une couche de mtal qui servira raliser des connections entre transistors. La dernire tape de traitement de la tranche consiste noyer les circuits dans un pais matriau de protection, sauf aux endroits o lon voudra souder des ls les reliant au monde extrieur. Aprs dirents test sur les tranches, les circuits sont dcoups et, aprs tre de nouveau tests, monts dans un botier comme indiqu gure 1.17 page suivante.

1.5
1.5.1

Les lires technico-conomiques


La recherche dun optimum de rendement dans lutilisation de la technologie

Pour nir nous abordons, dans ce chapitre, direntes applications qui sont faites de la technologie micro-lectronique et qui conduisent pour des raisons techniques et conomiques direntes

30

CHAPITRE 1. TRAITEMENT MATRIEL DE LINFORMATION

Fig. 1.17: Encapsulation dun circuit intgr dans un botier.

lires de ralisation des systmes lectroniques numriques. Nous ne nous intressons ici qu la fonction traitement , lindustrie des mmoires (fonction stockage ) ntant pas aborde.

1.5.2

Les circuits universels tels les microprocesseurs

Pour minimiser limpact du cot de conception et de fabrication des circuits intgrs les plus complexes, il est intressant de leur donner une gamme dapplications permettant de sadresser une clientle la plus large possible. Dans cet esprit, il sagit de crer un circuit de traitement numrique dont lusage nal (lapplication) nest pas connue la fabrication. Pour cela, il sut de raliser un circuit intgr ayant quelques ressources de traitement assez gnriques (addition de deux nombres, stockage dun nombre en mmoire, lecture dun nombre dune mmoire...) associes un dispositif de contrle capable dinterprter des ordres simples qui sont stocks dans une mmoire extrieure au circuit. Il sut de changer le contenu de cette mmoire (le programme) pour changer lenchanement des traitements eectus par le circuit, donc lapplication. Avec de tels circuits laugmentation de complexit des applications est gre simplement par laugmentation de la taille des programmes.

1.5.3

Les circuits spciques une application

Considrons maintenant une application trs spcique, faiblement complexe mais ncessitant beaucoup de puissance de calcul. Un microprocesseur peut ne pas sure fournir la puissance de calcul ncessaire. On peut tenter dutiliser plusieurs microprocesseurs, mais la gestion des changes est malaise et le cot du systme risque de devenir rapidement prohibitif. Une alternative au microprocesseur est le cblage direct des applications sur le silicium. Les circuits intgrs raliss de cette faon sappellent des circuits intgrs spciques une application (ASICs pour les anglosaxons). Par exemple, une opration cruciale en tlvision numrique, lestimation de mouvement est ralise actuellement par un seul circuit ASIC capable de calculer plus de dix milliards dadditions par seconde, ce qui dpasse de loin les performances des meilleurs microprocesseurs. La contrepartie cette performance est que ce circuit ne peut servir qu la tlvision numrique...

1.6. BIBLIOGRAPHIE

31

1.5.4

Les circuits logiques programmables

Les circuits logiques programmables (CLP) visent un compromis entre les avantages des ASIC et des microprocesseurs. Il sagit comme pour un ASIC de viser des applications relativement simples mais demandant de fortes puissances de calcul tout en conservant la souplesse de la programmation. Pour arriver cela, ces circuits sont composs de milliers de fonctions logiques dont les quations sont stockes sous forme de tables de vrit dans des mmoires internes au circuit. Des centaines de milliers de ls de connexions parcourent le circuit en tous sens et sont potentiellement connectables aux fonctions logiques via des transistors servant dinterrupteurs. Les tats de ces interrupteurs sont leur tour stocks dans des mmoires internes au circuit. En rsum, ces circuits peuvent changer de fonction et de cblage par simple modication du contenu de mmoires. Cette souplesse est videmment trs avantageuse, trs utilise pour la ralisation de prototypes ou de petites sries. Les ASIC remplacent cependant systmatiquement les CLP ds quil sagit de produire en masse, notamment pour des questions de rendement dutilisation du silicium.

1.5.5

Les systmes intgrs sur puces

Petit derniers des volutions de lindustrie micro-lectronique, les systmes sur puces (ou SOC pour System On Chip ) tirent avantage des taux dintgration faramineux atteints ces dernires annes (plus de 400 000 portes logiques par mm2 de silicium) pour intgrer sur une seule puce de Silicium toutes les fonctionnalits logicielles et matrielle ncessaires la ralisation de systmes de traitements totalement autonomes. Ces puces intgrent non seulement des fonctionnalits communes aux trois variantes prcdemment prsentes mais aussi des capteurs et ventuellement dans un future proche des lments mcaniques (moteurs, pompes...).

1.6

Bibliographie

Le site Web http://jas2.eng.buffalo.edu/applets du professeur Chu Ryang WIE de luniversit de Bualo (tat de New-York) permet dexcuter quelques dmonstrations interactives sur lusage des matriaux-conducteurs, sur le fonctionnement des transistors ainsi que sur le fonctionnement de quelques montages de bases de llectronique. Les liens suivants sont particulirement en rapport avec ce chapitre : n-channel MOSFET, both side-view and top-view and full photoresist steps ; CMOS Inverter, side-view, device fabrication steps ; Fabrication @ various companies.

32

CHAPITRE 1. TRAITEMENT MATRIEL DE LINFORMATION

Chapitre 2

Fonctions de base
2.1 Introduction

Nous voquons, dans le chapitre 1 page 19, la possibilit de raliser physiquement des fonctions de calcul utilisant une reprsentation binaire des donnes. Avant de poursuivre plus avant ltude de la ralisation physique de ces fonctions, nous allons dvelopper les bases mathmatiques des fonctions logiques (Algbre de Boole) ainsi que les mthodes de reprsentation et de manipulation associes. Le choix dune structure physique optimale pour construire une fonction logique est une opration complexe dpendant de nombreuses contraintes telles que loptimisation de la vitesse de traitement, la minimisation de lnergie dissipe par opration ou tout simplement le cot de fabrication. Nous nous contenterons dans ce chapitre denvisager le critre suivant qui pourra tre remis en cause dans la suite du cours : La construction de fonctions combinatoires complexes est base sur lutilisation dune bibliothque de fonctions logiques (ou portes) lmentaires telles que linversion, le ou logique, et le et logique. Loptimisation des fonctions complexes est base sur la minimisation du nombre des portes lmentaires utilises qui correspond une simplication des quations boolennes associes.

2.2

Variables et fonctions logiques, tables de vrit

Considrons lensemble E 2 lments (0, 1). 1. Une variable logique est un lment de E et ne possde ainsi que 2 tats 0 et 1. Elle est reprsente par des lettres (A, b, e, X, ). 2. Une fonction logique de plusieurs variables applique E E E dans E. Elle associe un n-uplet de variables boolennes (e0 , e1 , , en1 ) une valeur F (e0 , e1 , , en1 ). 3. Il existe direntes manires dexprimer une fonction boolenne. Une fonction de n variables est entirement dcrite par lnonc des valeurs de cette fonction pour lensemble (ou le sous-ensemble de dnition) des combinaisons du n-uplet de variables : F (0, , 0, 0), F (0, , 0, 1), F (0, , 1, 0), , F (1, , 1, 1) Cet nonc prend gnralement la forme dun tableau n + 1 colonnes et au plus 2n lignes, chaque ligne exposant une combinaison des variables et la valeur correspondante de la fonction. Les tableaux 2.1 page suivante et 2.2 page suivante suivants donnent la forme gnrale de tables de vrit de fonctions de trois variables totalement (fonction F ) ou partiellement (fonction G) dnies.

33

34

CHAPITRE 2. FONCTIONS DE BASE

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

F (A, B, C) F (0, 0, 0) F (0, 0, 1) F (0, 1, 0) F (0, 1, 1) F (1, 0, 0) F (1, 0, 1) F (1, 1, 0) F (1, 1, 1)

Tab. 2.1: Table de vrit dune fonction de 3 variables.

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

G(A, B, C) 1 1 0 non dnie non dnie 1 0 0

Tab. 2.2: Table de vrit dune fonction partiellement dnie.

2.3
2.3.1

Reprsentations des fonctions logiques


Formes algbriques

Nous associons, lensemble E, lalgbre de Boole base sur trois oprateurs logiques : Oprateur NON : ralise la complmentation (ou inversion) reprsente ici par une barre horizontale : x . Oprateur OU : ralise lunion (ou addition logique) note ici : + . Oprateur ET : ralise lintersection (ou multiplication logique) note ici : . Les tables de vrit de ces trois fonctions logiques sont donnes dans les tableaux 2.3 page suivante, 2.4 page ci-contre et 2.5 page suivante. Une fonction logique boolenne se prsente comme une association des oprations algbriques prcdentes sur un ensemble de variables. Elle peut scrire de plusieurs faons.

2.3.2

Forme disjonctive

Elle correspond une somme de produits logiques : F = (ei ), o ei reprsente une variable ou son complment. Exemple : F1 (X, Y, Z) = X Y + X Z + X Y Z Si chacun des produits contient toutes les variables dentre sous une forme directe ou complmente, alors la forme est appele premire forme canonique ou forme canonique disjonctive . Chacun des produits est alors appel minterme. Exemple de forme canonique disjonctive : F2 (X, Y, Z) = X Y Z + X Y Z + X Y Z

2.3. REPRSENTATIONS DES FONCTIONS LOGIQUES

35

A 0 1

A 1 0

Tab. 2.3: Oprateur NON.

A 0 0 1 1

B 0 1 0 1

A+B 0 1 1 1

Tab. 2.4: Oprateur OU.

A 0 0 1 1

B 0 1 0 1

AB 0 0 0 1

Tab. 2.5: Oprateur ET.

2.3.3

Forme conjonctive

Elle fait rfrence un produit de sommes logiques : F = (ei ). Voici un exemple : F3 (X, Y, Z) = (X + Y ) (X + Z) (X + Y + Z) Si chacune des sommes contient toutes les variables dentre sous une forme directe ou complmente, alors la forme est appele deuxime forme canonique ou forme canonique conjonctive . Chacune des sommes est alors appele maxterme. Exemple de forme canonique conjonctive : F4 (X, Y, Z) = (X + Y + Z) (X + Y + Z) (X + Y + Z)

2.3.4

quivalence entre la table de vrit et les formes canoniques

Nous avons dni la table de vrit dune fonction comme la correspondance entre chaque combinaison des variables (du domaine de dnition de la fonction) et la valeur (0 ou 1) associe de cette fonction. Chacune des combinaisons des variables dnit un tat des entres, on peut donc associer un tat chaque ligne dune table de vrit.

2.3.5

Forme canonique disjonctive

Une fonction logique est reprsente par lensemble des tats pour lesquels la fonction est gale 1 . Considrons maintenant un tat des entres pour lequel une fonction boolenne vaut 1 : il existe un minterme unique prenant la valeur 1 dans cet tat. Il sut donc deectuer la somme logique (ou runion) des mintermes associs aux tats pour lesquels la fonction vaut 1 pour tablir lexpression canonique disjonctive de la fonction. Exemple dune fonction H trois variables entirement dnie : On remarque que H(A, B, C) = 1 pour les tats 0, 1, 3, 5. On crit la fonction ainsi spcie sous une forme dite numrique : H = R(0, 1, 3, 5), Runion des tats 0, 1, 3, 5. La premire forme

36

CHAPITRE 2. FONCTIONS DE BASE

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

H(A, B, C) 1 1 0 1 0 1 0 0

tat 0 1 2 3 4 5 6 7

Minterme ABC ABC ABC ABC ABC ABC ABC ABC

Tab. 2.6: Table de vrit de la fonction H : tats associs et mintermes.

canonique de la fonction H sen dduit directement : H(A, B, C) = A B C + A B C + A B C + A B C

2.3.6

Forme canonique conjonctive

Considrons maintenant un tat des entres pour lequel la fonction vaut 0 . Il existe un maxterme unique prenant la valeur 0 en cet tat. Ce maxterme prend donc la valeur 1 dans tous les autres tats des entres. Il sut donc deectuer le produit logique (ou intersection) des maxtermes associs aux tats pour lesquels la fonction vaut 0 pour tablir lexpression canonique conjonctive de la fonction. Reprenons lexemple de la fonction H : A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 H(A, B, C) 1 1 0 1 0 1 0 0 Etat 0 1 2 3 4 5 6 7 Maxterme A+B+C A+B+C A+B+C A+B+C A+B+C A+B+C A+B+C A+B+C

Tab. 2.7: Table de vrit de la fonction H : tats associs et maxtermes.

On remarque que H(A, B, C) = 0 pour les tats 2, 4, 6, 7. On crit la fonction ainsi spcie sous une forme dite numrique : H = I(2, 4, 6, 7) Intersection des tats 2, 4, 6, 7. La deuxime forme canonique de la fonction H sen dduit directement : H(A, B, C) = (A + B + C) (A + B + C) (A + B + C) (A + B + C)

2.4

Description de mthodes de simplication

On cherche ici obtenir une expression algbrique comportant un nombre minimal de termes, ainsi quun nombre minimal de variables dans chaque terme dans le but de simplier la ralisation matrielle.

2.4. DESCRIPTION DE MTHODES DE SIMPLIFICATION

37

Attention : Comme nous lavons indiqu en introduction, loptimisation dune fonction logique dpend de paramtres tels que la performance en vitesse dsire, la consommation maximale autorise ou lobligation dutiliser des bibliothques de fonctions lmentaires prdnies. La complexit de la reprsentation algbrique nest donc quun critre doptimisation parmi dautres.

2.4.1

Utilisation des proprits de lalgbre de Boole

Les proprits, lois et thormes fondamentaux de lalgbre de Boole sont notre disposition pour manipuler les quations :

Complmentarit : Idempotence : lments neutres : lments absorbants : Commutativit : Associativit : Distributivit : Thorme dabsorption (1) : Thorme dabsorption (2) : Thorme dadjacence :

a + a = 1, a + a + a + = a, a + 0 = a, a + 1 = 1, a + b = b + a,

a a = 0,

a=a a a a = a a1=a a0=0 ab=ba

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

(a b) c = a (b c) = a b c (a b) + c = (a + c) (b + c) a (a + b) = a (a + b = a b b) a+ab = a b

Remarque : Deux termes sont dits adjacents logiquement sils ne dirent que par une variable. Thorme de De Morgan : a + b = a b, Premier thorme dexpansion : F (e0 , e1 , , ei , , en1 ) = ei F (e0 , e1 , , 1, , en1 ) + ei F (e0 , e1 , , 1, , en1 ) Second thorme dexpansion : F (e0 , e1 , , ei , , en1 ) = [ei + F (e0 , e1 , , 0, , en1 )] [ei + F (e0 , e1 , , 1, , en1 )] ab=a+b

2.4.2

Simplication partir de la forme algbrique

Les mthodes algbriques employes se rapportent aux relations fondamentales dabsorption, dadjacence, de mise en facteur et aux thormes de De Morgan. On distingue plusieurs procds permettant daboutir au but recherch : Regroupement des termes et mises en facteur

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

Nous avons successivement utilis une mise en facteur, la complmentarit, une deuxime mise en facteur et enn le thorme dabsorption.

38

CHAPITRE 2. FONCTIONS DE BASE

Rplication de termes existants

= abc+abc+abc+abc = abc+abc+abc+abc+abc+abc = (a + a) b c + (b + b) a c + (c + c) a b = bc+ac+ab

La rplication du terme a b c permet de simplier chacun des trois premiers termes en utilisant une mise en facteur et la complmentarit. Suppression de termes superus

= a b + b c + a c = a b + b c + a c (b + b) = a b + a b c + b c + a b c = a b (1 + c) + b c (1 + a) = ab+bc

Nous avons ici rintroduit la variable b dans le troisime terme par lintermdiaire de la proprit de complmentarit, nous avons ensuite utilis la proprit dabsorption pour simplier les produits. Simplication par utilisation des formes canoniques Si lon dispose de la table de vrit de la fonction, on prend pour quation algbrique de dpart la forme canonique comportant le minimum de termes. Cette quation sera ensuite simplie en utilisant les mthodes dcrites prcdemment. En eet, pour une fonction N entres, la forme canonique disjonctive comportera P mintermes (avec P 2N ), alors que la forme conjonctive comportera 2N P maxtermes.

2.4.3

Mthode des tables de Karnaugh

Les tables de Karnaugh sont des reprsentations sous forme dun tableau deux dimensions de la table de vrit. Elles sont construites de faon ce que les termes logiquement adjacents soient gomtriquement adjacents. Chaque ligne de la table de vrit est reprsente par une case du tableau de Karnaugh dans laquelle on indique la valeur de la fonction. La contrainte dadjacence gomtrique est ralise par un ordonnancement des lignes (resp. colonnes) du tableau pour lequel le nombre de bits modis dun code au suivant est constant et gal un. Cette proprit est respecte entre le code de la dernire ligne (resp. colonne) et celui de la premire ligne (resp. colonne). Prenons par exemple le cas dune fonction F de trois variables, spcie dans le tableau 2.8 page ci-contre. Nous constatons que la fonction F est gale 1 pour : les 4 cases (adjacentes) qui constituent la ligne a = 1 (Fig. 2.11 page suivante) ; les 4 cases (adjacentes) qui constituent le carr c = 1 (Fig. 2.12 page ci-contre). Les deux zones dtermines recouvrant exactement les cases du tableau o la fonction F vaut 1, nous pouvons en dduire directement que : F = a + c. Nous allons maintenant gnraliser la mthode expose dans lexemple.

2.4.4

Construction du tableau de Karnaugh

Il y a 2n cases pour n variables. A chaque case est associ un minterme gal 1 pour la combinaison considre. Le passage dune case sa voisine se fait par changement dune seule variable la fois.

2.4. DESCRIPTION DE MTHODES DE SIMPLIFICATION

39

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

F (A, B, C) 0 1 0 1 1 1 1 1

minterme ABC ABC ABC ABC ABC ABC ABC ABC

Tab. 2.8: Table de vrit de la fonction F : tats associs et mintermes.

HH BC 00 HH A H 0 1 0 1

01 1 1

11 1 1

10 0 1

Tab. 2.9: Table de Karnaugh de la fonction F .

HH BC HH A H 0 1

00 ABC ABC

01 ABC ABC

11 ABC ABC

10 ABC ABC

Tab. 2.10: Correspondance des mintermes.

BC HH 00 H A H 0 1 0 1

01 1 1

11 1 1

10 0 1

Tab. 2.11: Adjacence : a = 1

BC HH 00 H A H 0 1 0 1

01 1 1

11 1 1

10 0 1

Tab. 2.12: Adjacence : c = 1

2.4.5

Rgles de simplication

Il sagit de paver le tableau de Karnaugh en regroupant les 1 adjacents de telle manire que : lensemble des 1 de la fonction appartiennent au moins un pav, les pavs soient rectangulaires, le nombre de 1 regroups dans un pav soit une puissance de 2. Chaque pav ainsi constitu reprsente un terme produit de la fonction ne contenant que les variables stables (par rapport au codage des lignes et des colonnes du tableau). Attention ! De mme quil ny a pas unicit de la reprsentation algbrique dune fonction boolenne, il

40

CHAPITRE 2. FONCTIONS DE BASE

ny a pas unicit des regroupements gomtriques dans le tableau de Karnaugh. Il ne faut pas oublier les adjacences possibles entre colonnes et lignes extrmes du tableau de Karnaugh. Lexemple suivant (Tab. 2.13) illustre ces deux principes : HH BC 00 H H A H 0 1 1 1 01 1 0 11 1 1 10 0 1

Tab. 2.13: Table de Karnaugh

HH BC HH 00 A H 0 1 1 1

01 1 0

11 1 1

10 0 1

Tab. 2.14: Premier pavage

HH BC HH 00 A H 0 1 1 1

01 1 0

11 1 1

10 0 1

Tab. 2.15: Deuxime pavage

Selon le premier pavage (Tab. 2.14), lexpression obtenue est : bc+ac+ab Le second pavage (Tab. 2.15), qui utilise une adjacence entre deux cases extrmes, donne : ab+bc+ac

2.4.6

Fonctions non compltement dnies

Certaines combinaisons peuvent ne pas se produire : elles nont pas deet sur la valeur de la fonction. Ces tats indirents, nots X ou , peuvent tre utiliss partiellement ou totalement pour simplier la fonction, comme illustr dans lexemple de la Fig. 2.16 page ci-contre. On prote du fait que les tats indirents peuvent tre interprts au choix comme des 1 ou des 0 pour raliser les regroupements les plus pertinents permettant daboutir une expression logique minimale. Ici, les deux regroupements en carrs retenus dans les tableaux 2.17 page suivante et 2.18 page ci-contre simposent naturellement. Lexpression obtenue nalement est : ac+bd

2.4.7

Pertinence de la mthode

Dans une reprsentation 2 dimensions, chaque case a au plus 4 cases gomtriquement adjacentes. Pour une fonction logique de plus de 4 variables, le nombre dadjacences logiques pour un minterme (gal au nombre de variables) devient suprieur aux possibilits dans le plan. Les groupements deviennent alors moins naturels, et la mthode nest plus aussi utile.

2.5. REPRSENTATION SCHMATIQUE DES FONCTIONS LOGIQUES

41

PP PP CD 00 PP AB P P 00 01 11 10 1 1 0 0

01 1 X 1 0

11 0 X 1 0

10 0 X 0 0

Tab. 2.16: Table de Karnaugh

PP PP CD 00 PP AB P P 00 01 11 10 1 1 0 0

01 1 1 1 0

11 0 X 1 0

10 0 X 0 0

Tab. 2.17: Premier pavage

PP PP CD 00 PP AB P P 00 01 11 10 1 1 0 0

01 1 1 1 0

11 0 1 1 0

10 0 X 0 0

Tab. 2.18: Deuxime pavage

2.5

Reprsentation schmatique des fonctions logiques

Notre bibliothque de fonctions ou portes logiques lmentaires nest pour linstant constitue que des trois oprateurs inversion (NOT), et logique (AND) et ou logique (OR). Nous allons complter cette bibliothque par quelques lments supplmentaires dont lobjectif est de mettre en place une reprsentation schmatique des fonctions logiques. Nous distinguerons ainsi : la fonction NON-ET ou NAND dont la sortie vaut 0 si et seulement si toutes les entres sont 1, la fonction NON-OU ou NOR dont la sortie vaut 1 si et seulement si aucune entre nest 1. Ces deux fonctions sont la simple complmentation des fonctions AND et OR. Nous associons maintenant chacune des fonctions NOT, OR, AND, NAND et NOR un symbole graphique. La complmentation sera reprsente systmatiquement par un cercle : AND OR NOT NAND NOR

Fig. 2.1: Symboles des portes lmentaires.

Exemple de schma et quation algbrique correspondante :

42

CHAPITRE 2. FONCTIONS DE BASE

Y = (A + B C) + C

Fig. 2.2: Un exemple de schma.

2.6
2.6.1

Quelques fonctions combinatoires importantes


Fonctions daiguillage : multiplexeurs

La fonction multiplexeur N entres consiste aiguiller vers la sortie de la fonction une entre parmi N . Le multiplexeur 2 entres est le multiplexeur le plus simple concevoir. Son quation algbrique est de la forme : Y = A E 0 + A E1 , o (E0 , E1 ) sont les entres multiplexer et A est une entre de slection. La fonction multiplexeur est une traduction directe dune instruction de type if then else dans le cadre de langages informatiques. Elle permet aussi de dcomposer une fonction boolenne complexe en utilisant les thormes dexpansion. Le multiplexeur deux entres est souvent symbolis de la faon suivante :

Fig. 2.3: Multiplexeur deux entres (Mux2).

Le multiplexeur 2N entres ncessite N entres de slection pour distinguer les 2N congurations des entres. Nous allons tenter maintenant de construire un multiplexeur 4 entres partir des portes de base dnies dans le chapitre prcdent. Lexpression algbrique de la sortie est de la forme : S = A0 A1 E0 + A0 A1 E1 + A0 A1 E2 + A0 A1 E3 Cette formulation fait apparatre tous les mintermes possibles partir des entres de slection (A0 , A1 ). Le schma de la Fig. 2.4 page suivante prsente un multiplexeur 4 entres muni de plus une entre supplmentaire V permettant de valider ou dinvalider (S = 0) la sortie de la fonction. Remarque : Il est possible de construire un multiplexeur 4 entres partir de 3 multiplexeurs 2 entres. On se base pour cela sur la reformulation suivante, illustre dans la Fig. 2.5 page cicontre. S = A1 (A0 E0 + A0 E1 ) + A1 (A0 E2 + A0 E3 )

2.6.2

Oprateurs de comparaison

Les fonctions de comparaison les plus simples sont le test de lgalit de deux variables boolennes ainsi que le test de complmentarit de deux variables boolennes. Ces deux fonctions ont pour quations algbriques respectives : galit : S Complmentarit : S = AB+AB = AB+AB

2.6. QUELQUES FONCTIONS COMBINATOIRES IMPORTANTES

43

Fig. 2.4: Schma interne dun multiplexeur 4 entres avec entre de validation.

Fig. 2.5: Reformulation du multiplexeur 4 entres.

Ces fonctions tant trs souvent utilises, il a t jug utile de dnir un nouvel oprateur boolen pour les reprsenter. Il sagit de loprateur OU exclusif que nous reprsenterons par le symbole suivant : . Les relations prcdentes deviennent : galit (NON-OU-exclusif ou XNOR) : S Complmentarit (OU-exclusif ou XOR) : S = AB+AB = AB+AB = AB = AB

Les tables de vrit et symboles associs ces fonctions sont donns dans les tableaux 2.19 page suivante et 2.20 page suivante. Disposant du comparateur dgalit deux entres, il est possible de gnraliser loprateur la comparaison de deux mots de N bits. Lexemple suivant montre un comparateur oprant sur 2 mots de 4 bits. Nous disposons de 2 nombres cods sur 4 bits : A = a3 a2 a1 a0 et B = b3 b2 b1 b0 .

44

CHAPITRE 2. FONCTIONS DE BASE

A 0 0 1 1

B 0 1 0 1

AB 1 0 0 1

Tab. 2.19: Table de vrit et symbole des oprateurs XNOR

A 0 0 1 1

B 0 1 0 1

AB 0 1 1 0

Tab. 2.20: Table de vrit et symbole des oprateurs XOR

Alors A = B si et seulement si (a3 = b3 ) et (a2 = b2 ) et (a1 = b1 ) et (a0 = b0 ), ce qui justie le montage de la Fig. 2.6.

Fig. 2.6: Test dgalit de deux mots de 4 bits.

2.7
2.7.1

Annexes
Exercice de consolidation

Lexprience a montr que parmi les notions qui viennent dtre exposes, celle dans laquelle on se prend le plus frquemment les pieds dans le tapis et qui par ailleurs sert le plus dans le cadre du module est la simplication des tables de Karnaugh. Lexercice suivant constitue en consquence un petit entranement qui pourrait savrer salutaire an dtre au point sur ce sujet. On dsire raliser un acheur 7 segments (a, b, c, d, e, f, g, voir Fig. 2.7 page ci-contre) traduisant un nombre binaire exprim sur 4 bits A, B, C, D en un symbole hexadcimal (0, , 9, A, b, C, d, E, F ). La transcription de cette ralisation en tables de vrit si lon considre que lon travaille en logique positive (segment allum = 1 ) donne une table par segment. Pour vous aider, il vous est propos de vous donner directement le tableau de Karnaugh correspondant au segment a ainsi que le rsultat obtenu aprs simplication.

2.7. ANNEXES

45

Fig. 2.7: Acheur 7 segments. Un segment = une diode lectro-luminescente.

Fig. 2.8: Tableau de Karnaugh de a = F (A, B, C, D).

Le rsultat trouver est :

a=AD+BC +AC +BD+ABD+ABC

Comment lobtient-on ? Dtaillons pour les sceptiques !

46

CHAPITRE 2. FONCTIONS DE BASE

Regroupement : B C

Regroupement : A C

Regroupement : A D

Regroupement : B D. Les extrmits sont logiquement adjacentes !

Regroupement : A B D

Enn, Regroupement : A B C.

Lquation du premier segment a est ainsi obtenue laide des 6 regroupements prcdents. A vous de les eectuer pour les autres segments. . . Si vous arrivez au bout de cet exercice dans un temps raisonnable, vous pouvez considrer que vous ne rencontrerez pas beaucoup de problmes dans le futur !

2.7.2

Bibliographie

Groupe numrique Polycopi Composants et fonctions de llectronique numrique, ENST Ronald Tocci Digital Systems , Prentice Hall Eugene D. Fabricius, Modern Digital Design and Switching Theory , CRC Press, 1992. Barry Wilkinson, Digital System Design , Prentice Hall, 1992.

Chapitre 3

Oprateurs arithmtiques
3.1 Introduction

Jusqu prsent, nous avons principalement travaill sur des bits simples (comprendre : des nombres de 1 bit), ce qui ne nous permet de reprsenter que des valeurs allant de 0 1. Dans ce chapitre nous introduirons la reprsentation des nombres plus grands que 1, ainsi que les oprateurs associs. Nous verrons donc : 1. Reprsentation des nombres (codage des nombres) (a) Reprsentation Simples de Position (b) Conversions entre Bases (c) Reprsentation en Signe et Valeur Absolue (d) Reprsentation en Complment 2 (e) Autres Codes 2. Oprateurs arithmtiques (a) Additionneur (b) Soustracteur

3.2
3.2.1

Reprsentation (codage) des nombres


Reprsentation Simples de Position

Un nombre positif N dans un systme de base b peut tre exprim sous la forme polynomiale N = an1 bn1 +an2 bn2 +. . .+a1 b1 +a0 b0 +. . .+a1 b1 +a2 b2 +am+1 bm+1 +am bm La reprsentation simples de position correspondante est an1 an2 . . . a1 a0 , a1 . . . am La position dun chire rappelle quelle puissance de la base multiplie ce chire : ai est le chire de rang i (ai appartient un ensemble de b symboles) an1 est le chire le plus signicatif am est le chire le moins signicatif Sil sagit du systme hxadcimal (b = 16) : ai appartient lensemble {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F } Sil sagit du systme octal (b = 8) : ai appartient lensemble {0, 1, 2, 3, 4, 5, 6, 7} Sil sagit du systme binaire (b = 2), les chires sont appels bits : ai appartient lensemble {0, 1} an1 est le MSB (most signicant bit) am est le LSB (least signicant bit) 47

48

CHAPITRE 3. OPRATEURS ARITHMTIQUES

Si lon se dplace dun rang vers la gauche, le poids est augment dun facteur b. Si le dplacement se fait vers la droite, il y a une division par b. Le tableau 3.1 montre la reprsentation simples de position pour les nombres dcimaux de 0 8 et leurs correspondances en binaire. Les dcalages correspondant aux multiplications et divisions par 2 peuvent tre vus : entre 110 et 210 (12 et 102 ) entre 310 et 610 (112 et 1102 ) entre 410 et 810 (1002 et 10002 ) Dcimal 0 1 2 3 4 5 6 7 8 Binaire 0 1 10 11 100 101 110 111 1000

Tab. 3.1: Exemple conversion binaire-dcimal

3.2.2

Conversions entre Bases

Base b vers base 10 Pour cette conversion, il sut de substituer la valeur b dans lexpression polynomiale par la valeur de la base : N = an1 bn1 + an2 bn2 + . . . + a1 b1 + a0 b0 + . . . + a1 b1 + a2 b2 + am+1 bm+1 + am bm Par exemple, pour trouver le correspondant de (A1C)16 dans le systme dcimal, il sut de faire : 10 162 + 1 161 + 12 160 = 276810 Base 10 vers base b Partie Entire Cette conversion consiste faire des divisions successives du nombre dcimal par b, jusqu obtenir un quotient nul. Le nombre dans la base b correspond aux restes des divisions faites, dans le sens inverse o ils ont t obtenus. Soit la conversion 5710 vers base 2 : Division 57/2 28/2 14/2 7/2 3/2 Quotient 28 14 7 3 1 Reste 1(a0 ) 0(a1 ) 0(a2 ) 1(a3 ) 1(a4 )

1/2 0 1(a5 ) Le rsultat est donc (111001)2 .

3.2. REPRSENTATION (CODAGE) DES NOMBRES

49

Partie Fractionnaire Cette conversion consiste faire des multiplications successives du nombre dcimal par b. Le nombre dans la base b correspond aux parties entires des produits des multiplications faites, dans le sens direct o ils ont t obtenus. Soit la conversion 0, 5710 vers base 2 : Multiplication 0, 57 2 0, 14 2 0, 28 2 0, 56 2 0, 12 2 Produit 1, 14 0, 28 0, 56 1, 12 0, 24 Partie entire 1(a1 ) 0(a2 ) 0(a3 ) 1(a4 ) 0(a5 )

0, 24 2 0, 48 0(a6 ) Le rsultat est donc (0, 100100)2 . Base 2n vers base 2 et base 2 vers base 2n A laide de n bits, la conversion se fait sur chaque chire en base 2 pour ensuite les juxtaposer : Par exemple, (3A9)16 = (001110101001)2 et (264)8 = (010110100)2 Base i vers base j Si les deux bases sont des puissances de 2, la conversion se fait en utilisant 2 comme base relais (i vers 2 et ensuite 2 vers j). Sinon, la base relais est la base 10.

3.2.3

Reprsentation en Signe et Valeur Absolue

La reprsentation en signe et valeur absolue consiste ajouter un bit s la reprsentation simples de position an de pouvoir reprsenter des nombres ngatifs (s an1 an2 . . . a1 a0 , a1 . . . am ). La convention adopte est s = 0 pour un nombre positif et s = 1 pour un nombre ngatif. Ainsi, pour une reprsentation sur 4 bits, +5 = 0101 et 5 = 1101. Du fait que cette reprsentation implique un traitement dirent pour le bit de signe, elle est peu intressante pour limplantation doprateurs arithmtiques.

3.2.4

Reprsentation en Complment 2

Il existe une forme de reprsentation des nombres signs plus ecace que la reprsentation en Signe et Valeur Absolue : le complment deux. Le principe du complment deux est simple : dans la reprsentation non signe (simples de position, ou notation binaire habituelle) sur n bits, on travaille implicitement modulo 2n . Ainsi, sur n bits : 2n a la mme reprsentation que 0, (2n + 1) la mme que 1, etc. . Cest pour cela que pour viter les ambiguts, on se limite (en binaire non sign) la reprsentation des nombres allant de 0 (2n 1) (soit 2n nombres au total). Ce principe du modulo peut tre tendu aux nombres ngatifs. Toujours sur n bits : si 0 a la mme reprsentation que 2n (soit 00...00), 1 devra donc avoir la mme que (2n 1) (soit 11...11), 2 la mme que (2n 2) (soit 11...10), etc. Le complment deux nest quune convention, consistant dire qu on dcale la plage des nombres reprsentables, en mettant le 0 au centre, et que, par compatibilit avec la reprsentation binaire non signe, les nombres commenant par 0 seront considrs positifs, et ceux commenant par 1

50

CHAPITRE 3. OPRATEURS ARITHMTIQUES

ngatifs. Autrement dit, au lieu de reprsenter des nombres non-signs allant de 0 (2n 1), on reprsentera des nombres signs allant de (2n1 ) +(2n1 1), soit 2n nombres au total dans les deux cas. Remarques : Par convention, le 0 est donc class dans les nombres positifs. Les nombres positifs ont la mme reprsentation en binaire non sign quen complment 2. Le complment 2 permet de reprsenter moins de nombres positifs que le binaire non sign (cest normal, lintervalle de 2n nombres a t spar en deux parties de mme longueur, une pour les positifs, une pour les ngatifs). Le nombre dentiers non nuls reprsentables en CA2 etant impair, une des deux plages sera plus grande que lautre. Le 0 tant considr positif (car sa reprsentation commence par un 0), il y aura donc un nombre strictement ngatif de plus que de nombres strictement positifs. Par exemple, pour une reprsentation sur 4 bits (n = 4), on peut reprsenter les nombres signs allant de 8 +7, +5 01012 , 5 24 + (5) +11 10112 +7 01112 7 24 + (7) +9 10012 8 24 + (8) +8 10002 +8 est non reprsentable (car il aurait la mme reprsentation que 8). Le complment deux permet que loprateur utilis pour faire des additions puisse aussi faire des soustractions : au lieu de soustraire un nombre laide dun oprateur spcialis de soustraction, il sut dajouter son oppos en complment deux, et de travailler nombre de bits constant (pour rester modulo 2n ). Exemple : soit lopration 7 5 en dcimal. En binaire, pour une reprsentation sur 4 bits, cela correspond 01112 01012 . La soustraction de 01012 peut tre remplace par une addition de son complment 2, soit 10112 . 7 5 = 7 + (5) = 01112 + 10112 = 100102 . Il ne faut garder que les 4 bits de poids faible, pour obtenir la rponse exacte, cest--dire, 00102 = 2.

3.2.5

Autres Codes

Ci-aprs sont prsents quelques codes utiliss dans les systmes numriques. Les codes de Gray, p parmi n et le code bit de parit ne sont pas pondrs, cest--dire quil ny a pas de poids attribu chaque position (rang). Les rapports entre les symboles des codes et les nombres sont de simples tableaux de correspondances convenus. De ce fait, ils sont moins appliqus aux oprations arithmtiques. Ils sont principalement rencontrs dans les systmes de communication pour le contrle de transmission/rception de donnes. Code BCD (Binary Coded Decimal) Dans le code BCD chaque chire dcimal (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) est cod en binaire laide de 4 bits, comme le montre le tableau ci-dessous. Pour la conversion DCB vers Binaire, il sut de convertir chaque chire individuellement. La conversion Binaire vers DCB se fait en regroupant les bits 4 par 4. Ainsi, 178DCB = 0001011110002 . Code de Gray Dans le code de Gray, deux termes successifs ne dirent que par un seul bit. Les termes ne dirant que par un seul bit sont appels adjacents.

3.3. FONCTIONS ARITHMTIQUES

51

Code p parmi n Dans ce code, chaque nombre dcimal correspondent n bits, dont p valent 1 et n p valent 0. Il permet de dtecter jusqu une erreur : si lors dune communication, il y a rception dun nombre de 1 dirent de p, cela signie il y a eu une erreur de transmission. Le tableau 3.2 illustre un exemple de ce code pour le cas n = 5 et p = 2. Code bits de parit Dans ce code, un bit est ajout aux symboles de dpart de sorte que le nombre total de 1s soit pair (impair), si la parit convenue est paire (impaire). Le tableau 3.2 donne lexemple pour 4 bits dinformation et une parit paire. Dcimal n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binaire DCBA 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 BCD DCBA 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Gray DCBA 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 p parmi n EDCBA 00011 00101 01001 10001 00110 01010 10010 01100 10100 11000 parit DCBAP 00000 00011 00101 00110 01001 01010 01100 01111 10001 10010 10100 10111 11000 11011 11101 11110

Tab. 3.2: Exemple de dirents codes

3.3

Fonctions arithmtiques

La ralisation de fonctions arithmtiques est base sur la dcomposition de ces fonctions en oprations boolennes lmentaires. Attention : ne pas confondre les oprations boolennes et les oprations arithmtiques.

3.3.1

Additionneur

Considrons laddition de deux nombres ai et bi cods sur 1 bit. Le rsultat peut prendre les valeurs 0, 1 ou 2, que lon peut coder binaire comme 00, 01 et 10. Les deux bits de ce code sont appels bit de somme si (poids faible) et bit de retenue ri+1 (poids fort). A laide de ces deux bits, laddition sexprime de la faon suivante : ai + bi = 2 ri+1 + si

52

CHAPITRE 3. OPRATEURS ARITHMTIQUES

Laddition peut tre vue comme une fonction boolenne deux entres (ai et bi ) et deux sorties (si et ri+1 ). Cette fonction est appele demi-additionneur. Ses caractristiques sont rsumes dans le tableau 3.1. Ri+1 = ai bi Si = ai bi ai 0 0 1 1 bi 0 1 0 1 Si 0 1 1 0 Ri+1 0 0 0 1 Valeur dcimale 0 1 1 2

Fig. 3.1: quations algbriques, table de vrit et schma dun demi-additionneur.

Nous pouvons gnraliser cette structure pour dcrire laddition de deux mots A et B de tailles suprieure 1. Chacun des bits ai et bi sont additionns un par un en commenant par les bits de poids faible. Il faut pour cela rpercuter ltape i + 1 lventuelle retenue provenant de laddition de ai et bi . Une variable supplmentaire ri reprsentant une retenue entrante est donc introduite. Par analogie, le bit ri+1 est appel retenue sortante. A chaque itration i, le rsultat de cette addition des nombres ai , bi et ri peut prendre les valeurs 0, 1, 2 ou 3, que lon code en binaire comme 00, 01 et 10, 11. En utilisant les notations prcdentes, lquation arithmtique de ladditionneur 1 bit avec retenue entrante (ou additionneur complet ) est alors : ai + bi + ri = 2 ri+1 + si Nous prsentons dans les tableaux suivants ( 3.3, 3.4 page ci-contre, 3.5 page suivante) la table de vrit de ladditionneur complet ainsi que les tables de Karnaugh associes ri+1 et si . ai 0 0 0 0 1 1 1 1 bi 0 0 1 1 0 0 1 1 Ri 0 1 0 1 0 1 0 1 Si 0 1 1 0 1 0 0 1 Ri+1 0 0 0 1 0 1 1 1 Valeur dcimale 0 1 1 2 1 2 2 3

Tab. 3.3: Table de vrit de ladditionneur complet

Nous observons sur les tables de Karnaugh que lexpression de la somme si nest pas rductible,

3.3. FONCTIONS ARITHMTIQUES

53

ri \ai bi 0 1

00 0 1

01 1 0

11 0 1

10 1 0

Tab. 3.4: Table si

ri \ai bi 0 1

00 0 0

01 0 1

11 1 1

10 0 1

Tab. 3.5: Table ri+1

la forme en damier obtenue est caractristique des fonctions de type ou-exclusif : Si = ai bi ri En ce qui concerne la retenue, pour donner un exemple doptimisation , nous allons supposer lexistence dune structure de calcul de la somme et tenter de mettre en facteur le matriel : ri+1 = ai bi + ri bi + ri ai = ai bi + ri bi (ai + ai ) + ri ai (bi + bi ) = ai bi + ri (ai bi + ai bi ) + ri (ai bi + bi ai ) = ai bi + ri (ai bi + ai bi ) = ai bi + ri (ai bi ) Le schma de ladditionneur complet sen dduit :

Fig. 3.2: Exemple de schma pour ladditionneur complet.

Pour des nombres de n chires, la sommation va entraner une propagation de la retenue si lon adopte la structure srie qui rsulte de la mise en oeuvre de lquation prcdente. Dans ladditionneur retenue srie (Ripple Carry Adder), on assiste un phnomne de propagation de la retenue (cf. Fig. 3.3 page suivante), facile cerner si lon tudie laddition de tranches de bits du type suivant : 11111111 + 00000001 Remarque : La structure propose dans la Fig. 3.2 pour ladditionneur complet nest pas la seule possible. Suivant lobjectif vis par lutilisateur, dautres structures sont envisageables, notamment dans le but dacclrer la vitesse de calcul de la retenue qui conditionne le temps de calcul total de ladditionneur.

3.3.2

Soustracteur

La soustraction de deux nombres ai et bi cods sur 1 bit donne un rsultat pouvant prendre les valeurs 1, 0 et 1. Nous pouvons formuler cette opration sous la forme : ai bi = 2 ri+1 + di ,

54

CHAPITRE 3. OPRATEURS ARITHMTIQUES

Fig. 3.3: Additionneur retenue srie.

o ri+1 et di sont deux variables boolennes reprsentant respectivement la retenue sortante et la dirence. Attention : Le bit de retenue ri+1 est interprt comme une valeur ngative. Cette fonction de deux entres et deux sorties est appele demi-soustracteur. Ses caractristiques sont rsumes dans le tableau suivant : Ri+1 = ai bi Di = ai bi ai 0 0 1 1 bi 0 1 0 1 Di 0 1 1 0 Ri+1 0 1 0 0 Valeur dcimale 0 1 1 0

Fig. 3.4: Equations algbriques, table de vrit et schma dun demi-soustracteur.

Nous pouvons gnraliser cette structure pour dcrire la soustraction de mots de taille suprieure 1. Pour cela il faut introduire une variable supplmentaire ri qui reprsente une retenue entrante. Lquation gnrale du soustracteur 1 bit avec retenue entrante (ou soustracteur complet ) est alors : ai bi ri = 2 ri+1 + di Nous prsentons, dans les tableaux suivants, la table de vrit du soustracteur complet (Tab. 3.6 page ci-contre) ainsi que les tables de Karnaugh associes ri+1 ( 3.7 page suivante) et di ( 3.8 page ci-contre). Un raisonnement identique celui utilis dans le cas de ladditionneur aboutit aux quations : Di Ri+1 = ai bi ri , = ai bi + ri (ai bi )

Un schma du soustracteur complet sen dduit (cf Fig. 3.5 page suivante).

3.3. FONCTIONS ARITHMTIQUES

55

ai 0 0 0 0 1 1 1 1

bi 0 0 1 1 0 0 1 1

Ri 0 1 0 1 0 1 0 1

Di 0 1 1 0 1 0 0 1

Ri+1 0 1 1 1 0 0 0 1

Valeur dcimale 0 1 1 2 1 0 0 1

Tab. 3.6: Table de vrit du soustracteur complet

ri \ai bi 0 1

00 0 1

01 1 0

11 0 1

10 1 0

Tab. 3.7: Table di

ri \ai bi 0 1

00 0 1

01 1 1

11 0 1

10 0 0

Tab. 3.8: Table ri+1

Fig. 3.5: Schma interne du soustracteur complet.

56

CHAPITRE 3. OPRATEURS ARITHMTIQUES

Chapitre 4

Du transistor la logique CMOS


4.1
4.1.1

Introduction
Objectifs

Il sagit : de comprendre les principes de la construction de portes en structure "logique complmentaire" partir de transistors NMOS et PMOS, de savoir valuer les principales performances lectriques de ce type de cellules, de savoir construire un modle de performances utilisable au niveau fonctionnel, cest dire un niveau o le nombre de cellules apprhendes est suprieur plusieurs dizaines, de connatre, pour ces dirents niveaux danalyse, les ordres de grandeurs caractristiques.

4.1.2

Prsentation

En utilisant nos connaissances du transistor MOS, nous laborerons un modle de type interrupteur command, qui permet de construire des portes logiques et de comprendre les principes et les caractristiques de la logique complmentaire. Nous tudierons un modle linaire du temps de propagation le long dun chemin logique. Enn nous voquerons le principe et lutilisation dune bibliothque de cellules.

4.2
4.2.1

Modle en interrupteur
Modlisation

Nous transformons le modle lectrique du transistor (transconductance non linaire), rappel au chapitre 4.5 page 70, en un interrupteur command uniquement par la tension de grille VG . Ainsi nous faisons correspondre : ltat bloqu du transistor ltat ouvert de linterrupteur que nous notons O, ltat passant du transistor ltat ferm de linterrupteur que nous notons F, Du fait de la connexion systmatique des substrats, nous omettrons souvent de le dessiner (voir 4.5 page 70). transistor NMOS Lorsque la tension de grille VG est "1" il sut davoir : VS < VDD VTN pour que la condition de conduction : VGSN > VTN soit respecte et que linterrupteur quivalent soit ferm, ce que nous notons "F" Lorsque la tension de grille VG est "0" la condition de blocage est remplie : VGSN = 0V < VTN linterrupteur quivalent est ouvert, ce que nous notons "O" 57

58

CHAPITRE 4. DU TRANSISTOR LA LOGIQUE CMOS

diple dentre

niveau logique sur la grille

0
transistor NMOS

modle en interrupteur du diple de sortie

PMOS

Tab. 4.1: Modle en interrupteur

transistor PMOS Lorsque la tension de grille VG est "1", la condition de blocage est remplie : VGSP = 0V > VTP linterrupteur quivalent est ouvert : "O" Lorsque la tension de grille VG est "0" il sut davoir : VS > VTP pour que la condition de conduction : VGSP < VTP soit respecte et que linterrupteur quivalent soit ferm : "F"

4.2.2

Quelques montages simples

Dans les tableaux suivants les lettres minuscules : a, b, dsignent les variables logiques dentre et les lettres majuscules : A, B les extrmits de la branche. Nous notons F lorsquun transistor est passant (interrupteur quivalent ferm), O sil est bloqu (interrupteur quivalent ouvert). FAB dsigne la fonction logique associe ltat de la branche situe entre les points A et B. Son tat est not comme celui des transistors. La valeur logique de la fonction FAB est obtenue en sommant les produits des tats des entres produisant la fermeture de la branche AB (en gras dans les tableaux suivants). Ltat "1" de lentre a est not a. Ltat "0" de lentre a est not a (a_barre, !a). Montages sries Pour quune branche constitue de 2 interrupteurs en srie soit passante, il faut que les 2 interrupteurs soient ferms en mme temps (fonction logique ET note "." Si lun au moins est ouvert, la branche est ouverte.

Montages parallles Pour quune branche constitue de 2 interrupteurs en parallle soit passante, il sut quun interrupteur au moins soit ferm (fonction logique OU note "+" Si les deux sont ouverts, la branche

4.2. MODLE EN INTERRUPTEUR

59

Entres a 0 0 1 1 b 0 1 0 1

Transistors TNa O O F F TNb O F O F

Branche FAB O O O F

Tab. 4.2: FAB = a b

Entres a 0 0 1 1 b 0 1 0 1

Transistors T Pa F F O O T Pb F O F O

Branche FAB F O O O

Tab. 4.3: FAB = a b = a + b

est ouverte.

Entres a 0 0 1 1 b 0 1 0 1

Transistors TNa O O F F TNb O F O F

Branche FAB O F F F

Tab. 4.4: FAB = a b + a b + a b = a + b

Entres a 0 0 1 1 b 0 1 0 1

Transistors T Pa F F O O T Pb F O F O

Branche FAB F F F O

Tab. 4.5: FAB = a b + a b + a b = a b

Chaque transistor NMOS TNx peut videmment tre remplac par un rseau de transistors NMOS. De mme chaque transistor PMOS TPx peut tre remplac par un rseau de transistors PMOS... et ainsi de suite, pour constituer deux rseaux duaux complexes.

60

CHAPITRE 4. DU TRANSISTOR LA LOGIQUE CMOS

4.3
4.3.1

La logique complmentaire CMOS


Introduction

Reprenons le schma du circuit "Rsistance Transistor Logique" (gure 4.1). Remplaons la transconductance idale du transistor NMOS par linterrupteur quivalent TN . Identions ses 2 tats dquilibre (on dit aussi tats statiques).

Fig. 4.1: Circuit Rsistance Transistor Logique

Nous avons vu que la grille dun transistor NMOS ou PMOS, est isole. Ainsi la commande de linterrupteur quivalent au transistor est-elle isole de linterrupteur lui mme. Les quations de ce circuit sont : VDD = VR + Vs = R IR + Vs IDD = IR = IT Lorsque lentre vaut "0", linterrupteur TN est ouvert. Aucun courant ne circule dans la branche de sortie : IDD = IR = IT = 0 VDD = Vs 1 Lorsque lentre vaut "1", linterrupteur TN est ferm : Vs = 0 0 VDD = R IRm ax Ce type de circuit est un inverseur logique. En rgime statique, ltat bas ("0" en sortie) il consomme du courant, et lon a cherch un moyen pour viter toute consommation en rgime statique. La logique complmentaire, est une des solutions ecaces ce problme.

4.3.2

Notion de complmentarit

Le mot complmentaire veut dire que lon dispose, autour de lquipotentielle de sortie, non plus dune branche passive (R) et dune branche active (TN ), mais de deux branches actives duales, cest dire conduisant lune la stricte exclusion de lautre, et pour des signaux de commande complmentaires. Un mme signal commande au moins une paire dinterrupteurs complmentaires. Exemple de linverseur La porte la plus simple de la logique complmentaire est linverseur. Chacune des 2 branches est constitue dun seul transistor. Le symbole et le montage de linverseur CMOS sont reprsents dans la gure 4.2.

Fig. 4.2: linverseur CMOS

4.3. LA LOGIQUE COMPLMENTAIRE CMOS

61

Analysons son fonctionnement.

Fig. 4.3: Rgime statique : les 2 tats statiques de linverseur

Linterrupteur TN est le modle du transistor NMOS (entre = "1" et il est ferm, entre = "0" et il est ouvert). Linterrupteur TP est le modle du transistor PMOS (entre = "0" et il est ferm, entre = "1" et il est ouvert). Lentre Ve est commune aux deux grilles, celle de TN en parallle avec celle de TP . Lorsque la branche N est ferme, la branche P est ouverte : la sortie est relie "0", lectriquement : la masse (0V). Lorsque la branche N est ouverte, la branche P est ferme : la sortie est relie "1", lectriquement : VDD . Consommation En rgime statique, cest dire pour chacun des deux tats stables, aucun chemin lectrique nexiste entre VDD et la masse, aucun courant nest donc consomm. Pour analyser ce qui se passe en rgime transitoire, ce qui sera fait plus prcisment dans le chapitre Performances de la logique CMOS ( 4 page 57), rappelons-nous que : 1. la tension dentre Ve na pas un temps de transition ( la monte comme la descente) nul. Ainsi pendant un certain temps : lorsque VT N < Ve < VDD VTP , les deux transistors sont ils passant. Un courant dit de court-circuit, dlivr par lalimentation, traverse les deux transistors passants vers la masse. 2. la charge de cette porte logique, est essentiellement constitue dune capacit CT , reprsentant lensemble des capacits parasites connectes sur lquipotentielle de sortie. La charge (de 0 1, soit de 0V VDD ) et la dcharge (de 1 0, soit de VDD 0V) du noeud de sortie, ncessite un courant, donc une consommation dynamique (voir schma 4.4).

Fig. 4.4: linverseur CMOS et sa charge capacitive

Durant le rgime transitoire, lalimentation va : soit charger, de 0V VDD , la capacit CT au travers de linterrupteur ferm TP quivalent au transistor PMOS passant, soit dcharger, de VDD 0V, la capacit CT au travers de linterrupteur ferm TN quivalent au transistor NMOS passant.

62

CHAPITRE 4. DU TRANSISTOR LA LOGIQUE CMOS

En conclusion, la consommation statique de linverseur CMOS est nulle. La consommation transitoire (dynamique) est due au courant de court-circuit et la (d)charge de la capacit CT .

4.3.3

Porte complexe

Constitution du circuit Dans lexemple de linverseur, la branche N et la branche P ne sont constitues que dun interrupteur chacune. Pour raliser une fonction plus complexe, nous allons remplacer chaque branche par un rseau de plusieurs interrupteurs de mme type, comme illustr dans la gure 4.5. Les rgles globales sont les mmes que pour linverseur, mais chaque branche N et P, sera constitue dun rseau dinterrupteurs, monts en parallle ou en srie (voir le paragraphe 4.2.2 page 58), tous relis deux deux (au moins) par leur grille, et respectant la condition de conduction dune branche lexclusion de celle de lautre.

Fig. 4.5: schma de principe de la logique compltaire

Principes et fontionnalit En logique complmentaire, un circuit est constitu de deux rseaux duaux : un rseau N, constitu exclusivement de transistors NMOS, branch entre la sortie et le "moins de lalimentation" (en gnral la masse) qui correspond au "0" logique, un rseau P, constitu exclusivement de transistors PMOS, branch entre la sortie et le "plus de lalimentation" (VDD ) qui correspond au "1" logique, Pour tre duaux les deux rseaux doivent satisfaire les principes suivants : tre commands par les mmes entres ei , chaque entre ei commandant au moins une paire dinterrupteurs (un N et un P), quelque soit ltat des entres ei, un seul rseau doit tre passant la fois. Il est tolr toutefois que les deux branches soient ouvertes en mme temps.

Fig. 4.6: schma du fonctionnement de la logique complmentaire

La fonction de sortie F est gnre par : la fermeture du rseau N, pour obtenir F = "0" soit F (F_barre !F), la fermeture du rseau P, pour obtenir F = "1" soit F, louverture simultane des 2 branches engendre F = Z soit ltat lectrique haute impdance. En lectronique numrique ce troisime tat sert mmoriser ltat prcdent,

4.3. LA LOGIQUE COMPLMENTAIRE CMOS

63

ne pas inuer sur une quipotentielle lorsque une autre sortie logique est cense y apporter son signal. Pourquoi des PMOS en haut et des NMOS en bas ?

NMOS dchargeant la capacit Cu

NMOS chargeant la capacit Cu

Tab. 4.6: Charge/dcharge dune capacit par un NMOS

Nous savons que le temps de transition (charge ou dcharge) est inversement proportionnel lintensit du courant traversant la capacit. Dans les cas des 2 montages tudis ce courant est gal celui qui traverse le diple de sortie du transistor : IDS . Dans les conditions de la logique complmentaire le transistor NMOS dcharge la capacit Cu du noeud de sortie (cf. montage du transistor MN1). ltat initial : Ve = 0V et Vs = VDD : Cu est charge au maximum, VGS = Ve = 0 VT 0N (la tension de seuil pour VSB = 0V ) : le transistor MN1 est bloqu. IDS est nul : Cu reste charge VDD . La commande de dcharge arrive : Ve = VDD , VGS = Ve = VDD > VT 0N : le transistor MN1 est passant satur. IDS est maximum : Cu se dcharge, Dans le second montage, le transistor MN2, nest pas dans les conditions de la logique complmentaire, en eet il est branch en lieu et place de ce qui devrait tre le rseau P. ltat initial : Ve = 0V et Vs = 0V : Cu est dcharge au maximum, VGS = Ve = 0 VT 0N (la tension de seuil pour VSB = 0V ) : le transistor MN1 est bloqu. IDS est nul : Cu reste dcharge 0V. La commande de charge arrive : Ve = VDD , VGS = Ve = VDD > VT 0N : le transistor MN1 est passant satur. IDS est maximum : Cu se charge, Vs augmente, do deux consquences : 1. La tension VGS diminue puisque : VGS = Ve VSB = Ve Vs . Si VGS diminue IDS diminue, 2. La tension VSB = Vs augmente, ainsi VT N > VT 0N . Or IDS (VGS VT N ) !. Premire conclusion : MN1 "dispose" dune intensit de courant beaucoup plus importante pour dcharger Cu que MN2 pour charger Cu . Ainsi le temps transition du premier montage sera t il toujours plut petit que celui du second (MN1 et MN2 ayant les mmes dimensions et les mmes paramtres technologiques). Nous pouvons mener une dmonstration semblable pour un transistor PMOS : excellent exercice pour se prouver que ces notions sont correctement assimiles ! Seconde conclusion : de mme que pour la consommation statique, la disposition dun circuit en logique complmentaire CMOS semble optimale pour les temps de transitions.
2

64

CHAPITRE 4. DU TRANSISTOR LA LOGIQUE CMOS

4.3.4

Exemple danalyse dune porte logique

Sur la gure 4.7, nous avons reprsent les schmas : du circuit en transistors de la porte logique analyser, son modle en interrupteurs, la table de vrit extraite du modle en interrupteurs de la porte, o gure en gras, ltat des entres reprsent sur le schma du modle. entres a 0 0 0 0 1 1 1 1 circuit transistors modle en interrupteurs
Tab. 4.7: Analyse dune porte logique

rseaux r 0 1 0 1 0 1 0 1 N O O O F O F F F P F F F O F O O O

sortie S 1 1 1 0 1 0 0 0

b 0 0 1 1 0 0 1 1

table de vrit

Les tapes de lanalyse, suivent videmment les principes de la logique complmentaire CMOS. Mthode de la table de vrit Pour chaque tat logique de chaque variable dentre, nous en dduisons ltat de chacun des deux rseaux (N et P) puis celui de la sortie, Lexhaustivit de lanalyse est garantie, Nous vrions quun mme jeu de valeurs logiques dentre nentrane pas la fois la conduction des deux rseaux, Nous crivons lquation de S en faisant la somme logique des valeurs logiques dentre entranant S = 1. S = abr+abr+abr+abr = ab+abr+abr

en remarquant que a b = a b + a b r, il vient : S = ab+abr+abr = ab+abr+abr+abr = ab+r ab+ab+ab

soit S = a b + r a + b Appliquons de Morgan, nous obtenons S = a b + r (a + b), que nous pouvons aussi crire de la manire suivante : S = a b + r (a + b) Mthode de lanalyse par rseau Nous analysons la conduction de chaque rseau (N et P) en fonction des valeurs logiques dentre, en appliquant les rgles dj vues (voir table 4.8 page suivante).

4.3. LA LOGIQUE COMPLMENTAIRE CMOS

65

Rseau P

Rseau N

Tab. 4.8: Analyse dune porte logique

Le rseau N comprend deux branches en parallle : la branche de gauche, sur le schma, est passante pour la fonction des entres : N1 = a b celle de droite est passante pour : N2 = r (a + b) Le rseau N conduit pour la fonction : N = N1 + N2 = a b + r (a + b) La fonction ralise par le rseau N est donc : S = N = a b + r (a + b) Le rseau P comprend deux branches en parallle : la branche de gauche, sur le schma, est passante pour la fonction des entres : P1 = a b celle de droite est passante pour : P2 = r a + b Le rseau P conduit pour la fonction : P = P1 + P2 = a b + r a + b Aprs calcul nous obtenons : S = P = a b + r a + b = a b + r (a + b) Enn nous vrions la conduction exclusive de chacun des deux rseaux : N = P

4.3.5

Exemples de synthse dune porte logique

La porte et-non 2 entres (nand2) La fonction nand2 est gale : Snand2 = a b La fonction Nnand2 qui reprsente ltat du rseau N, vaut Nnand2 = Snand2 = a b Cette fonction correspond deux transistor NMOS en srie. La fonction Pnand2 qui reprsente ltat du rseau P, vaut Pnand2 = Snand2 = a b = a + b Cette fonction correspond deux transistor PMOS en parallle. Par construction, si les calculs logiques ne sont pas errons, la ralisation satisfait la dualit des deux rseaux. La porte ou-non 2 entres (nor2) La fonction nor2 est gale : Snor2 = a + b La fonction Nnor2 qui reprsente ltat du rseau N, vaut Nnor2 = Snor2 = a + b Cette fonction correspond deux transistor NMOS en parallle. La fonction Pnor2 qui reprsente ltat du rseau P, vaut Pnor2 = Snor2 = a + b = a b Cette fonction correspond deux transistor PMOS en srie. Par construction, si les calculs logiques ne sont pas errons, la ralisation satisfait la dualit des deux rseaux. Nous obtenons les schmas de la table 4.9 page suivante.

66

CHAPITRE 4. DU TRANSISTOR LA LOGIQUE CMOS

synthse dune porte NAND2

synthse dune porte NOR2


Tab. 4.9: schmas en transistors dune porte NAND2 et dune porte NOR2

Comment obtenir des fonctions non complmentes ? Ainsi que nous lavons vu au chapitre Principes et fonctionnalit ( 4.3.3 page 62), si nous ne disposons que des entres logiques naturelles (les ei et aucune ei ), nous ne pouvons raliser que des fonctions complmentes des entres naturelles : F (ei ). Pour raliser les fonctions logiques ET2 (and2) et OU2 (or2) nous pouvons utiliser les solutions suivantes (table 4.10) :

synthse dune porte AND2

synthse dune porte OR2


Tab. 4.10: synthse de fonctions non complmentes laide de portes en logique complmentaire

Nous pouvons aborder les exercices du TD Synthse en transistors de portes CMOS (chapitre 11 page 147).

4.4. VITESSE DE TRAITEMENT DUN CIRCUIT INTGR NUMRIQUE CMOS

67

4.4

Vitesse de traitement dun circuit intgr numrique CMOS

Les circuits intgrs numriques sont constitus de dirents oprateurs de traitement (oprateurs arithmtiques,oprateurs de contrle...). La ncessit de synchroniser ces oprateurs entre eux pour permettre des changes de donnes conduit ce que la vitesse de traitement potentielle du circuit est directement lie la vitesse de traitement de loprateur le plus lent. Si un circuit doit contenir, par exemple, un oprateur daddition,la connaissance du temps de calcul dune addition est un indicateur ncessaire au concepteur pour dterminer les performances du circuit. Les techniques de ralisation de circuits intgrs numriques les plus couramment employes reposent sur lhypothse forte quil nest possible de dmarrer un nouveau calcul dans un oprateur que lorsque ses sorties se sont stabilises. Le temps de traitement dun oprateur combinatoire est donc le temps ncessaire la stabilisation des sorties de loprateur aprs la mise en place des entres.

4.4.1

Notion de chemin critique

Un oprateur combinatoire est lui-mme constitu dun assemblage de portes logiques simples ; son temps de traitement est directement li la propagation des signaux boolens dans les direntes portes logiques. Considrons de nouveau lexemple dun additionneur combinatoire 4 bits. Un tel oprateur est une fonction 8 entres et 5 sorties. Entre chaque entre et chaque sortie de ladditionneur, les signaux boolens peuvent se propager par une multitude de chemins dirents traversants les direntes portes logiques. Pour dterminer la vitesse de calcul de notre additionneur, il sut de dterminer parmi ces chemins celui qui correspond au temps de traverse le plus long. Ce chemin sera appel chemin critique de loprateur.

Fig. 4.7: Quelques chemins de propagation...

Si nous pouvons dterminer pour chaque porte traverse le long de notre chemin critique le temps mis par le signal pour transiter de lentre la sortie de la porte (temps de propagation de la porte) alors nous pouvons dterminer de manire simple le temps du chemin critique en accumulant les dirents temps de propagation individuels.

4.4.2

Notion de temps de propagation

La dnition du temps de propagation dune porte doit permettre par simple additivit de dterminer le temps de propagation dune chane de portes. La dnition la plus simple consiste mesurer le temps coul entre un changement dtat de lentre dune porte et le changement dtat de la sortie en prenant pour rfrence les instants de passage des dirents signaux mi-chemin de la tension dalimentation VDD, comme cela est reprsent sur la gure 4.8 page suivante. Une porte CMOS plusieurs entres nest pas caractrise par un unique temps de propagation. Prenons lexemple dun NAND 2 entres A et B. Nous pouvons distinguer par exemple : Le temps de propagation de A vers la sortie pour une transition montante de la sortie (tpmA ) Le temps de propagation de B vers la sortie pour une transition montante de la sortie (tpmB ) Le temps de propagation de A vers la sortie pour une transition descendante de la sortie (tpdA )

68

CHAPITRE 4. DU TRANSISTOR LA LOGIQUE CMOS

Fig. 4.8: Temps de propagation dans une porte

Le temps de propagation de B vers la sortie pour une transition descendante de la sortie (tpdB ) Il ny a pas de raison pour que ces direntes valeurs soient identiques, mais pour des raisons de simplication nous considrerons un pire cas en appelant temps de propagation de la porte la valeur maximum parmi ces direntes donnes (tp).

4.4.3

Modle du temps de propagation dune porte CMOS

De faon gnrale, le temps de propagation dune porte peut se dcomposer en deux termes. Le premier terme reprsente le temps minimum ncessaire la porte pour tablir sa sortie et ce indpendamment de tout contexte externe. Ce terme appel temps de propagation vide ou temps de propagation intrinsque de la porte est signicatif de la complexit de la fonction logique ralise par la porte. On peut comprendre intuitivement que le temps de propagation vide dun inverseur (tp0IN V ) soit plus faible que celui dun ou-exclusif 2 entres (tp0OU EX ) compte tenu de la dirence de complexit des quation boolennes. Le deuxime terme reprsente la facilit avec laquelle la porte transmet ltat de sa sortie aux direntes portes qui lui sont connectes. Pour valuer limpact de la connection de lentre dune porte sur la sortie dune porte prcdente, il faut tudier la constitution de lentre dune porte CMOS. La gure 4.9 prsente un NAND deux entres en logique CMOS. Lentre A de la porte est connecte aux grilles dun transistor NMOS et dun transistor PMOS.

Fig. 4.9: Capacit dentre de lentre A dune porte NAND

Compte tenu de la technologie de fabrication du transistor MOS, ces grilles se comportent comme des capacits parasites dont une lectrode est la grille elle mme et lautre lectrode est rpartie entre la source, le drain et le substrat des transistors. Il est possible de faire lhypothse simplicatrice quune capacit parasite unique est connecte entre lentre A et la masse. Cette capacit sera nomme capacit dentre de la porte sur lentre A (CEAN AN D ). On dtermine de la mme manire une capacit dentre sur lentre B. En rgle gnrale, les capacits dentre des direntes entres dune porte logique sont direntes et dpendent de la taille et du nombre de transistors dont les grilles sont connectes ces entres. Maintenant que nous avons identi la nature physique de lentre dune porte CMOS, il est facile dimaginer leet de sa connection sur la sortie dune porte. La gure ci-dessous prsente in

4.4. VITESSE DE TRAITEMENT DUN CIRCUIT INTGR NUMRIQUE CMOS

69

inverseur dont la sortie est connecte sur lentre A de notre porte NAND. Les transistors PMOS et NMOS de linverseur vont devoir alternativement fournir les courants de charge et de dcharge de la capacit CEAN AN D pendant les transitions montantes et descendantes de la sortie de linverseur. Cette capacit CEAN AN D sera appele plus tard capacit dutilisation de la porte.

Fig. 4.10: Charge et dcharge de la capacit dentre CEA dun NAND

Le temps ncessaire cette charge est dune part proportionnel la valeur de cette capacit et dautre part dpendant des caractristiques des transistors constituant linverseur. Dans la pratique cela ce traduit par un accroissement du temps de propagation de linverseur par un terme de forme dtpIN V CEAN AN D o dtp est la dpendance capacitive du temps de propagation de linverseur. Le temps total de propagation de linverseur est donc : tpIN V = tp0IN V + dtpIN V CEAN AN D

En rsum, pour une porte CMOS quelconque, ltablissement du temps de propagation dune porte CMOS ncessite la connaissance de trois termes : tp0 : temps de propagation vide de la porte, ne dpend que de la structure physique de la porte dtp : dpendance capacitive de la porte ne dpend que des caractristiques physiques de la porte. Le terme dtp est quivalent une rsistance CU : capacit dutilisation ne dpend que des caractristiques des entres des portes connectes en sortie de la porte

Lexpression du temps de propagation de la porte charge par CU est alors : tp = tp0 + dtp CU (4.1)

4.4.4

Temps de propagation dans un assemblage de portes logiques.

Nous allons illustrer sur un exemple le calcul des temps de propagation dans divers chemins dun assemblage de portes logiques. La gure 4.11 est une fonction logique 3 entres (T, U, V) et 2 sorties Y,Z. Nous supposons que les sorties Y et Z sont connectes 2 capacits dutilisation CU Y et CU Z.

Fig. 4.11: Temps de propagation dans un assemblage de portes

Nous pouvons compter six chemins (TY,UY,VY,TZ,UZ,VZ) dans cette structure et dterminer pour chacun deux le temps de propagation total. Exprimons, par exemple, le temps de propagation le long du chemin TZ. Le signal se propage, sur ce chemin, en traversant tout dabord la porte

70

CHAPITRE 4. DU TRANSISTOR LA LOGIQUE CMOS

NAND1. La sortie de cette porte est connecte dune part lentre de linverseur INV2 et dautre part lentre A de la porte NAND2. La porte NAND1 est donc charge par les deux capacits dutilisation connectes en parallle CEIN V 2 et CEAN AN D2 . Lquation du temps de propagation travers la porte NAND1 est donc : tpN AN D1 = tp0N AN D1 + dtpN AN D1 (CEIN V 2 + CEAN AN D2 ) Le signal traverse ensuite la porte NAND2 charge par la capacit CUZ. Le temps de propagation sexprime de manire trs simple sous la forme : tpN AN D2 = tp0N AN D2 + dtpN AN D2 CU Z Le temps total le long du chemin TZ est gal la somme de tpN AN D1 et de tpN AN D2 , soit :

tpT Z = tp0N AN D1 + dtpN AN D1 (CEIN V 2 + CEAN AN D2 ) + tp0N AN D2 + dtpN AN D2 CU Z Nous pourrions videmment calculer de la mme faon les temps de propagation suivant les dirents chemins et dterminer ainsi le chemin critique de loprateur.

4.5
4.5.1

Rappels du modle lectrique


Connexions et tensions appliques
NMOS PMOS

Tab. 4.11: connexions des transistors CMOS

Les caissons, faiblement dops N, constituent le suBstrat (B) des PMOS et leurs est commun, Il est polaris la tension la plus positive du circuit VDD . Le substrat, faiblement dop P, constitue le suBstrat (B) des NMOS et leurs est commun, Il est polaris la tension la plus ngative du circuit VSS , (VSS = 0V , comme sur le schma, parfois VSS = VDD ). La tension du drain (D) des transistors NMOS est toujours suprieure celle de leur source (S), La tension du drain (D) des transistors PMOS est toujours infrieure celle de leur source (S), La tension de seuil dun NMOS : +0, 2V VT N +2V La tension de seuil dun PMOS : 0, 2V VT P 2V La tension de la grille (VG ) de tous les transistors est une tension dentre de type logique 2 tats correspondant deux niveaux lectriques statiques : VG = VDD 1 et VG = 0V 0

4.5.2

Rappels du modle lectrique et des symboles

Voir les deux tableaux 4.12 page suivante et 4.13 page 72.

4.6. BIBLIOGRAPHIE

71

Transistor NMOS

Symboles

Conditions VDS

Rgime bloqu

Courant IDS = 0 VDS 2 W Cox L

VGS VT N

IDS = 2 Kn VGS VT N VDS < VDSsat VGS > VT N quadratique Kn = 1 0N 2

VDS

et VDSsat = VGS VT N VDS VDSsat satur IDSsat = Kn (VGS VT N )


2

VGS = VDD

VDS 0

ohmique

RDS0N =

1 2 Kn (VDD VT N )

IDS = (VGS , VDS )

Tab. 4.12: Courant et rsistance quivalente du NMOS

4.6

Bibliographie

Pour en savoir plus... MosFet modeling and Bsim3 users guide, Yuhua CHENG and Chenming HU (Kluwer Academic Publishers, 1999). Digital Integrated Circuits, a design perspective, Jan RABAEY (Prentice Hall International Editions, 1996). Dispositifs et Circuits Intgrs Semiconducteurs, Andr VAPAILLE and Ren CASTAGN (ditions Dunod, 1987). Principles of CMOS VLSI Design, Neil WESTE and Kanrar ESHRAGHIAN, (Addison Weslay Publishing, 1985).

72

CHAPITRE 4. DU TRANSISTOR LA LOGIQUE CMOS

Transistor PMOS

Symboles

Conditions VDS

Rgime bloqu

Courant IDS = 0 VDS 2

VGS VT P

IDS = 2 Kp VGS VT P VDS > VDSsat VGS < VT P quadratique Kp = 1 W 0P Cox 2 L

VDS

et VDSsat = VGS VT P VDS VDSsat satur IDSsat = Kp (VGS VT P )


2

VGS = VDD

VDS 0

ohmique

RDS0P =

1 2 Kp (VDD VT P )

IDS = (VGS , VDS )

Tab. 4.13: Courant et rsistance quivalente du PMOS

Physics of Semiconductors Devices, S. M. SZE (Wiley Interscience Publication, 1981).

Chapitre 5

Performances de la logique complmentaire CMOS


5.1 Introduction

La ralisation de systmes lectroniques de traitements numriques ecaces suppose le respect dun certain nombre de contraintes lies des aspects trs divers. Nous allons limiter notre tude aux trois paramtres suivants : Le cot de production ; La vitesse de traitement ; La consommation. Ces trois paramtres ne sont videmment pas dcorrls, laugmentation dune vitesse de traitement se fait souvent au prix dune consommation et dun cot de production accru. Parfois certain critres sont impratifs : si nous considrons, par exemple, une application de traitement numrique pour une transmission dimages de tlvision, les calculs doivent tre eectus la vole sans possibilit dinterrompre le ux de donnes. Nous disons dans ce cas que le systme doit avoir la puissance de calcul (ou vitesse de traitement) ncessaire pour respecter le temps rel. De manire moins imprative, si nous considrons une application de bureautique sur un ordinateur personnel, il sut que le systme ait une puissance de calcul susante pour garantir un certain confort lutilisateur. De mme, il est aisment concevable que les besoins en terme de modration de la consommation dun systme aliment par batterie soient dirents de ceux dun systme connectable au rseau lectrique. Les ingnieurs ralisant des circuits intgrs numriques sont constamment confronts au problme de lvaluation de ces paramtres. Nous allons montrer, dans ce chapitre, quelques mthodes simples dvaluation bases notamment sur notre connaissance de la technologie de fabrication des circuits intgrs.

5.2

Cot de production dun circuit intgr numrique CMOS

Le cot de production dun circuit intgr est troitement li laire du silicium ncessaire sa ralisation. En eet, plus le circuit est de taille importante, plus le rendement de fabrication est faible. Le rendement de fabrication reprsente le rapport entre le nombre de circuits fonctionnels produits et le nombre total de circuits produits. La probabilit davoir un dfaut dans un circuit augmentant avec sa taille, le concepteur a tout intrt minimiser la surface de silicium ncessaire la ralisation de lapplication qui lintresse. videmment cette surface dpend du nombre de transistors utiliss pour raliser lapplication et de la surface de chacun de ces transistors. En lectronique numrique intgre, les transistors utiliss tant de taille relativement standard (sauf fonctions exceptionnelles), on peut considrer que le nombre de transistors est un bon reprsentant de la surface du circuit intgr. On caractrise dailleurs les technologies CMOS numriques 73

74

CHAPITRE 5. PERFORMANCES DE LA LOGIQUE COMPLMENTAIRE CMOS

par le nombre de transistors quelles sont capables dintgrer. En 2004, les densits dintgration des technologies les plus avances taient de lordre de 1 500 000 transistors par mm2 . Par consquent, en passant du niveau de lapplication au niveau de la porte logique, minimiser le nombre de transistors ncessaires la ralisation de portes logiques contribue minimiser laire globale dun circuit.

5.3
5.3.1

Estimation de la vitesse de la logique CMOS


Expression du temps de propagation dun inverseur CMOS

Nous voulons exprimer le temps de propagation en descente tpd de linverseur INV 1 de la gure 5.1 partir de la connaissance du transistor MOS dont les caractristiques lectriques sont rappeles au chapitre 4.5 page 70. Compte tenu de la complexit des phnomnes mis en jeu, la mise au point dun modle analytique du temps de propagation dune porte CMOS (mme aussi simple quun inverseur) nest gure envisageable. Aussi nous contenterons-nous den faire une estimation partir dun grand nombre dhypothses simplicatrices.

Fig. 5.1: tude de cas de linverseur CMOS.

Nous modlisons lensemble des eets parasites pouvant perturber le fonctionnement de cet inverseur par une unique capacit Cpar connecte entre la sortie S1 et la masse. Les phnomnes lectriques observs la suite dune transition montante du signal dentre E1 sont les suivants : bloquage du transistor PMOS et dbloquage du transistor NMOS ; donc la dcharge de la capacit Cpar travers le transistor NMOS ; donc transition descendante du signal de sortie S1 . Une vision raliste des volutions des signaux E1 et S1 au cours du temps est reproduite en gure 5.2 page suivante. Nous supposons que le signal dentre E1 passe en un temps trs bref de ltat 0 ltat 1 . Ce temps sera considr comme susamment bref pour ne pas inuer sur le temps de propagation de linverseur. En exploitant la dnition du temps de propagation propose dans le chapitre 4.4.2 page 67, nous distinguons trois instants comme illustr dans la gure 5.3 page suivante : 0 : instant de passage du signal dentre E1 Vdd /2 ; 0+ : instant darrive du signal dentre E1 Vdd ; tpd : instant de passage du signal de sortie S1 Vdd /2. Le tableau 5.1 rsume les valeurs des direntes tensions aux bornes des transistors de linverseur INV 1 au dbut (instant 0+ ) et la n (instant tpd ) de la propagation du signal de sortie S1 . Instant 0+ Transistor NMOS Transistor PMOS Vgsn = Vdd Vgsp = 0 Vdsn = Vdd Vdsp = 0 Instant tpd Vgsn = Vdd Vgsp = 0 Vdsn = Vdd /2 Vdsp = Vdd /2

Tab. 5.1: Tensions aux bornes de transistors pour les instants 0+ et tpd .

5.3. ESTIMATION DE LA VITESSE DE LA LOGIQUE CMOS

75

Fig. 5.2: Simulation lectrique de linverseur CMOS.

Fig. 5.3: Conditions de mesures des transitions des signaux.

La tension Vgsp garde la valeur 0 durant toute la transition de la sortie. Le transistor PMOS reste donc bien bloqu pendant toute la transition de la sortie : il nest travers par aucun courant (Idsp = 0). La tension Vgsn garde la valeur Vdd durant toute la transition de la sortie. Le transistor NMOS est donc passant, le courant qui le traverse peut tre valu laide de la gure 5.4 page suivante qui reprsente la caractristique Idsn = f (Vdsn ) pour Vgsn = Vdd . linstant 0+ , le courant est maximal et correspond au courant de saturation du transistor NMOS. Ensuite, la dcharge de la capacit Cpar entrane une baisse de la tension Vdsn qui se traduit par une diminution du courant fourni par le transistor. La gure 5.4 page suivante montre cependant clairement que lorsque la sortie S1 de linverseur atteint Vdd /2 le courant Idsn du transistor na que faiblement volu : on peut, en premire approximation, considrer que le courant fourni par le transistor est constant pendant toute la dure tpd . Le courant de dcharge de la capacit parasite Cpar pendant lintervalle de temps [0, tpd ] est donc gal au courant de saturation du transistor NMOS pour Vgsn = Vdd :

76

CHAPITRE 5. PERFORMANCES DE LA LOGIQUE COMPLMENTAIRE CMOS

Fig. 5.4: volution du courant drain-source du transistor NMOS durant la transition descendante.

ICpar = Kn (Vdd Vtn )2 Le courant de dcharge tant constant nous en dduisons directement la valeur de tpd : tpd = Cpar Vdd /2 V = Cpar I Kn (Vdd Vtn )2

En ngligeant Vtn devant Vdd puis en introduisant la rsistance Rds0n du transistor NMOS en rgime ohmique, lexpression prcdente se simplie en : tpd = Cpar = Cpar Rds0n 2 Kn (Vdd Vtn )

5.3.2

Modle du temps de propagation de linverseur CMOS

Notre objectif est, ici, daner le modle du temps de propagation en examinant lorigine des capacits parasites contribuant la valeur de Cpar . De manire gnrale, nous pouvons distinguer trois types de capacits : 1. Les capacits internes propres linverseur INV 1 ; 2. Les capacits dues aux liaisons entre linverseur INV 1 et les direntes portes logiques connectes sa sortie ; 3. Les capacits dentres des portes logiques connectes la sortie S1 de linverseur. Leet des capacits internes la porte sera assimil celui dune unique capacit Cs appele capacit de sortie de linverseur et connecte entre la sortie S1 et la masse. Leet des capacits de liaison et des capacits dentres des portes connectes la sortie de linverseur sera assimil une unique capacit Cu appele capacit dutilisation de linverseur. Ainsi lexpression de tpd peut tre rorganise de la faon suivante : tpd = (Cs + Cu ) Rds0n

5.3. ESTIMATION DE LA VITESSE DE LA LOGIQUE CMOS

77

Soit tpd = tp0d + dtpd Cu avec dtpd = Rds0n et tp0d = dtpd Cs Nous retrouvons, applique au cas spcique dune transition descendante, la formulation du temps de propagation propose dans le chapitre 4.4.3 page 68. Pour cela nous avons introduit le temps de propagation en descente vide de linverseur tp0d ainsi que la dpendance capacitive du temps de propagation en descente dtpd . Le raisonnement eectu pour une transition descendante de la sortie peut tre appliqu la transition montante. Dans ce cas, seul le transistor PMOS est actif, les capacits parasites restant identiques, la seule dirence provient de la valeur de la rsistance en rgime ohmique du transistor PMOS qui nest pas forcment identique celle du transistor NMOS. tpm = tp0m + dtpm Cu avec dtpm = Rds0p et tp0m = dtpm Cs

5.3.3

Schma synthtique de linverseur

La gure 5.5 propose un schma synthtique de linverseur bas sur un interrupteur, deux rsistances de valeurs respectives Rds0n et Rds0p , et enn les capacits CeINV et CsINV . Suivant la valeur de la tension dentre, linterrupteur bascule dun tat lautre provoquant la charge ou la dcharge du nud de sortie. Ltat reprsent correspond une entre gale 0 . La

Fig. 5.5: Schma synthtique de linverseur CMOS.

gure 5.6 page suivante illustre la mise en srie de deux inverseurs. La sortie du premier inverseur ( ltat 1 ) prsente une capacit parasite Cpar totale gale la somme de la capacit de sortie CsINV du premier inverseur et de la capacit dentre CeINV du deuxime inverseur. Le temps de propagation en monte tpm du premier inverseur est donc tpm = (CeINV + CsINV )Rds0p .

5.3.4

Schma synthtique dune porte CMOS quelconque

Lextrapolation une porte CMOS quelconque se fait en suivant les principes suivants : Il y a autant de capacits dentre quil y a dentres dans la porte. Lestimation dune capacit dentre se fait en sommant les capacits des grilles des transistors connects cette entre. On peut grossirement estimer la capacit de sortie en ne considrant que les capacits parasites connectes au nud de sortie de la porte. Les capacits des nuds intermdiaires seront ngliges. On peut tablir un quivalent la rsistance Rds0 des transistors de linverseur en considrant le pire cas de mise en srie des transistors et en faisant la somme des direntes rsistances pour ce pire cas.

78

CHAPITRE 5. PERFORMANCES DE LA LOGIQUE COMPLMENTAIRE CMOS

Fig. 5.6: Deux inverseurs en srie.

Prenons lexemple dune porte NAND (gure 5.7) deux entres utilisant des transistors identiques ceux de linverseur : les capacits dentres sur les entres A et B sont identiques celle de linverseur (CeINV ) ; la capacit de sortie est suprieure celle de linverseur (CsINV ), car deux transistors PMOS et un transistor NMOS sont connects au nud de sortie ; dans le pire cas, la rsistance quivalente la descente est gale deux fois celle de linverseur (2 Rds0n ) ; dans le pire cas, la rsistance quivalente la monte est gale celle de linverseur (Rds0p ).

Fig. 5.7: Schma synthtique dune porte NAND.

5.3.5

Notion de bibliothque de cellules prcaractrises

Les socits de fonderies de silicium, ou fondeurs , qui produisent des circuits intgrs numriques, proposent leurs clients, des bibliothques de portes logiques dites prcaractrises. Les ingnieurs de ces socits dveloppent, dessinent et simulent le comportement et les performances de chacune des portes logiques de la bibliothque. Ils fournissent leurs clients des tables de caractristiques permettant ces derniers de concevoir des circuits intgrs et prdire leurs performances sans avoir explorer des niveaux de dtail allant jusquau transistor. Le tableau 5.2 propose un exemple simple dune telle bibliothque dont les caractristiques globales sont les suivantes :

5.3. ESTIMATION DE LA VITESSE DE LA LOGIQUE CMOS

79

les transistors NMOS des direntes portes sont tous de dimensions identiques ; les transistors PMOS des direntes portes sont tous de dimensions identiques ; les portes sont ralises en utilisant exclusivement les principes de construction exposs dans le chapitre 4 page 57. Fonction Inverseur Nand 3 entres Nand 6 entres Nor 2 entres Nor 6 entres nMaj 3 entres quation boolenne Y =A Y = ABC Y = ABCDEF Y =A+B Y =A+B+C +D+E+F Y = AB + BC + AC Cei (fF) CeA = 70 i {A, B, C}Cei = 70 i {A F }Cei = 70 i {A, B}Cei = 70 i {A F }Cei = 70 CeA = CeB = 140 CeC = 70 tp0 (ns) 0,06 0,42 1,56 0,16 0,96 0,25 dtp (ns/pF) 1 3 6 2 6 2

Tab. 5.2: Une bibliothque prcaractrise.

Nous pouvons faire les constatations suivantes : les temps de propagation sexpriment en diximes de nano-secondes ; les capacits sexpriment en dizaines de femto-farads (1015 farads) ; les dpendances temporelles sexpriment en nano-secondes par pico-farad (quivalentes des k) ; linverseur, porte boolenne la plus simple que lon puisse imaginer est la fois intrinsquement la plus rapide (tp0 ) et la moins dpendante de lenvironnement extrieur (dtp ). De plus, conformment au modle propos dans le chapitre 5.3.4 page 77, la porte NAND 6 entres est la porte ayant les performances les moins bonnes. En eet, dans le pire cas, la dcharge du nud de sortie se fait travers 6 transistors NMOS connects en srie. De plus 6 transistors PMOS tant connects en parallle sur la sortie, la capacit de sortie est trs leve ce qui donne un tp0 catastrophique (20 fois plus grand que celui de linverseur). Cet exemple montre une des limitations de la construction de portes en logique CMOS. En gnral, on prfre limiter la bibliothque des portes 4 ou 5 entres maximum, quitte crer des assemblages de portes pour raliser des fonctions boolennes complexes. Enn, les capacits dentres Cei des portes simples de type NAND ou NOR sont identiques celles dun inverseur, car chaque entre de ce type de porte est connecte un couple de transistors NMOS et PMOS comme dans le cas de linverseur. Ceci nest pas un cas gnral, lexemple de la porte nMAJ montre quil peut y avoir direntes valeurs de capacits dentre suivant la manire dont la logique est ralise.

5.3.6

Inuence du dimensionnement des transistors sur les caractristiques de linverseur

Dans le paragraphe prcdent, nous avons examin les caractristiques de portes CMOS constitus de transistors NMOS (ou PMOS) de dimensions standardises. Il est possible doptimiser le comportement temporel des portes en jouant sur les dimensions des transistors qui les composent. Nous ntudierons ici que le cas simple de linverseur. Nous avons vu que le temps de propagation est proportionnel la rsistance Rds0 des transistors en rgime ohmique. En ce qui concerne le transistor NMOS, cette rsistance a pour expression : Rds0n = 1
n 0N COX Wn (Vdd L

Vtn )

lvidence, nous pouvons augmenter les performances de linverseur en diminuant la longueur Ln du transistor NMOS ou en augmentant sa largeur Wn . En rgle gnrale, tous les transistors sont dimensionns avec la longueur de grille minimale Lmin autorise par la technologie. Cest pour

80

CHAPITRE 5. PERFORMANCES DE LA LOGIQUE COMPLMENTAIRE CMOS

cette raison quune technologie est souvent qualie par cette longueur de grille minimale : on parle, par exemple, dune technologie 0,09 microns . Donc en ralit, seul le paramtre Wn peut servir de variable dajustement. Retenons que les transistors sont le plus souvent dimensionns avec une longueur de grille minimale Lmin . Retenons que la dpendance capacitive dtpdINV est inversement proportionnelle la largeur Wn du transistor NMOS. Retenons que la dpendance capacitive dtpmINV est inversement proportionnelle la largeur Wp du transistor PMOS. Cependant, laugmentation de la largeur des transistors a pour consquence laugmentation de la valeur de la capacit parasite charger. En eet, la capacit Cs est la rsultante des capacits parasites propres aux transistors composant linverseur, toutes proportionnelles la largeur des transistors. Retenons que la capacit de sortie CsINV de linverseur est la somme de deux termes, lun tant proportionnel la largeur Wn du transistor NMOS, lautre tant proportionnel la largeur Wp du transistor PMOS. Un raisonnement identique peut tre fait pour la capacit dentre de linverseur. Cette capacit ne dpend que des capacits de grille Cgsn et Cgsp des deux transistors : Retenons que la capacit dentre CeINV de linverseur est la somme de deux termes, lun tant proportionnel la largeur Wn du transistor NMOS, lautre tant proportionnel la largeur Wp du transistor PMOS. Ces rsultats partiels, permettent de dterminer une rgle gnrale de dimensionnement des transistors dun inverseur : disposant dun inverseur donn de caractristiques (CeINV , tp0INV , dtpINV ) connues, la multiplication des largeurs Wn et Wp des deux transistors NMOS et PMOS par un mme coecient modie les caractristiques de linverseur de la faon suivante : la capacit dentre de linverseur CeINV est multiplie par ; la dpendance capacitive de linverseur dtpINV est divise par ; le temps de propagation vide tp0INV reste inchang. Le dernier rsultat est d aux eets contraires des augmentations de capacits internes et de diminution des rsistances.

5.4
5.4.1

Consommation des circuits intgrs CMOS


Consommation dune porte CMOS

Rappelons (voir chapitre 4.3.2 page 61) que la consommation statique (la porte tant dans lun de ses deux tats dquilibre) dune porte logique complmentaire CMOS, est NULLE. Nous nous intressons, dans ce qui suit, la consommation dynamique, cest--dire la consommation ncessaire au passage de la porte CMOS dun tat dquilibre un autre. Si nous faisons lhypothse que les deux rseaux NMOS et PMOS dune mme porte logique ne sont jamais simultanment actifs (passants) alors la consommation dune porte CMOS se rsume lnergie ncessaire pour charger les direntes capacits parasites connectes sur la sortie de la porte : pendant une transition montante de la sortie de la porte, lalimentation fournit le courant qui, au travers du rseau de transistor PMOS, charge la capacit connecte au nud de sortie ; pendant une transition descendante de la sortie, la capacit de sortie est dcharge travers le rseau NMOS. Comme lillustre la gure 5.8 page ci-contre, lnergie fournie par lalimentation est dissipe par eet Joule dans les rseau de transistors PMOS (respectivement NMOS) pendant les transitions montantes (respectivement descendantes) de la sortie de la porte. La puissance instantane fournie par lalimentation Vdd pendant la charge de la capacit Cpar sexprime de la faon suivante : dVs dt Lnergie totale fournie par lalimentation sobtient en intgrant la puissance pendant la dure totale de la transition : PVdd (t) = Vdd ICpar = Vdd Cpar

5.4. CONSOMMATION DES CIRCUITS INTGRS CMOS

81

Fig. 5.8: Dissipation de lnergie dans une porte CMOS.

EV dd =
0

Vdd Cpar

dVs dt = Cpar Vdd dt

Vdd 2 dVs = Cpar Vdd 0

De manire similaire, lnergie potentielle stocke dans la capacit aprs la charge est :

ECpar =
0

Vs Cpar

dVs dt = Cpar dt

Vdd

Vs dVs = Cpar
0

2 Vdd 2

Ces rsultats montrent que seule la moiti de lnergie fournie par lalimentation est stocke dans la capacit. Lautre moiti est dissipe par eet Joule dans le rseau de transistors PMOS. Remarquons que cette nergie dissipe est indpendante de la rsistance quivalente des transistors qui composent le rseau PMOS. Une tude similaire pour la dcharge montre que lnergie potentielle stocke dans la capacit est entirement dissipe par eet Joule dans le rseau de transistors NMOS. En rsum, chaque transition de la sortie dune porte CMOS se traduit par une dissipation de Cpar Vdd 2 /2 dans la porte CMOS, o Cpar est la capacit parasite totale charge par la porte et Vdd est la tension dalimentation de la porte. Connaissant lnergie par transition, il est possible den dduire la consommation moyenne dune porte logique. Pour cela,nous devons introduire le rythme moyen Ftrans de changement dtat de la porte que nous nommerons frquence de transitions : Pporte =
2 Ftrans Cpar Vdd 2

5.4.2

Extrapolation un circuit intgr CMOS

La formule dcrivant la consommation dune porte CMOS peut tre extrapole au niveau dun circuit intgr complet. La grande majorit des circuits intgrs numriques sont des circuits dit squentiels et synchrones . Leur principe de fonctionnement est bas sur le cadencement des oprations de calcul par une horloge externe dont la frquence est nomme Fh . La frquence de transitions Ftrans des portes CMOS qui composent un circuit est videmment troitement corrle la frquence dhorloge du circuit, elle reste cependant plus faible que cette dernire car elle dpend de la nature des fonctions logiques excutes par les portes et des direntes corrlations entre les signaux boolens internes au circuit. Pour tenir compte de cela, on introduit Tact , taux dactivit moyen des portes du circuit intgr, qui reprsente la probabilit de transition des portes chaque priode de lhorloge Fh . Lensemble des capacits parasites du circuit peut tre alors agglomr en un seul terme Ctotal conduisant lexpression de la consommation du circuit intgr : Pcircuit = Tact Fh Ctotal V dd2

82

CHAPITRE 5. PERFORMANCES DE LA LOGIQUE COMPLMENTAIRE CMOS

5.5

volution technologique et conclusions

Nous avons valu de manire simple trois critres permettant dvaluer les performances des circuits intgrs CMOS. Les rsultats obtenus montrent lvidence que certains compromis doivent tre faits. Le temps de propagation des portes est inversement proportionnel la tension dalimentation, on peut en dduire un peu rapidement quil sut daugmenter la tension dalimentation Vdd pour augmenter les performances des circuits. Cependant, nous devons constater que la consommation des circuits varie comme le carr de la tension dalimentation donc toute augmentation de celle-ci diminue le rendement dutilisation de la technologie... Cest pourquoi, les travaux damlioration de la technologie ont port sur la diminution des capacits, termes prsents en facteur la fois dans lexpression des temps de propagation et de la consommation. Le moyen le plus simple de rduire les capacits est la rduction des gomtries des transistors qui permet de gagner en mme temps sur la surface des circuits intgrs. Les moyens technologiques et nanciers mis en jeu par les fonderies de silicium sont essentiellement tourns vers cette rduction des dimensions des transistors. Nous allons maintenant valuer limpact des rductions de dimension partir des formules tablies dans les paragraphes prcdents. Le principe gnralement employ dune gnration technologique une autre est daccompagner les rductions gomtriques de modications des dopages et tensions dalimentations pour conserver les caractristiques fonctionnelles des transistors. En rsum les dirents paramtres suivants sont touchs : division dun facteur de la largeur W des transistors ; division dun facteur de la longueur L des transistors ; division dun facteur de lpaisseur doxyde de grille Tox des transistors ; division dun facteur de la tension de seuil Vt des transistors ; division dun facteur de la tension dalimentation Vdd du circuit. A fonctionnalit identique, le changement de gnration technologique permet de raliser des circuits de surface 2 fois plus petite ! La rsistance quivalente des transistors devient : Rds0 () = 1
V 0 (Cox ) W L Vdd t

= Rds0

Donc la rsistance quivalente des transistors ne varie pas. Si, par simplication, nous rduisons les eets parasites des transistors aux capacits de grille alors ces capacits de charge deviennent : Cpar () = (W/)(L/)(Cox ) = Cpar

Donc les capacits parasites sont divises dun facteur . En consquence, les temps de propagation des portes (produit RC) sont diviss dun facteur : tp () = tp

fonctionnalit identique, le changement de gnration technologique permet de raliser des circuits de surface 2 fois plus petite, ayant une vitesse de fonctionnement plus leve ! Cependant lnergie dissipe par une porte pendant une transition devient : Eporte () =
Cpar Vdd 2 ( )

Eporte 3

Donc lnergie est divise par un facteur 3 ce qui est extrapolable au circuit. Si nous protons de laugmentation de vitesse des portes logiques pour augmenter la vitesse dhorloge du circuit alors la puissance consomme par le circuit devient : Pcircuit () = Tact (Fh ) Ecircuit Pcircuit = 3 2

5.5. VOLUTION TECHNOLOGIQUE ET CONCLUSIONS

83

fonctionnalit identique, le changement de gnration technologique permet de raliser des circuits de surface 2 fois plus petite, ayant une vitesse de fonctionnement plus leve et dont la consommation est 2 fois moins leve ! Supposons maintenant que nous protions de la rduction de taille des transistors pour raliser un circuit plus complexe. surface identique, nous pouvons multiplier par 2 le nombre de transistors dans le circuit et donc multiplier par 2 la capacit parasite totale charger : Le changement de gnration technologique permet de raliser des circuits 2 fois plus complexes, fonctionnant une vitesse fois plus leve et ayant une consommation identique aux circuits de la gnration prcdente. Pour conclure, noublions pas que ces lois dvolution sont bases sur des hypothses simplies ne tenant pas compte de facteurs importants tels, par exemple, les capacits parasites lies au connections mtalliques entre transistors ou les courants de fuite ou de court-circuits des transistors. Cela dit le formules obtenues dans ce chapitre donnent une premire approche thorique qui sintresse aux volutions venir de lindustrie du semi-conducteur.

84

CHAPITRE 5. PERFORMANCES DE LA LOGIQUE COMPLMENTAIRE CMOS

Chapitre 6

Logique squentielle synchrone, bascules


6.1 Introduction

Dune faon complmentaire la logique combinatoire, la logique squentielle permet dorganiser les calculs boolens dans le temps. Par exemple, pour additionner 1000 nombres, plutt que deectuer 999 additions avec 999 additionneurs, une solution consiste additionner tour de rle les 1000 oprandes avec 1 seul additionneur. Pour ce faire un circuit base de logique squentielle est ncessaire pour : prsenter successivement les 1000 oprandes accumuler le rsultat de laddition avec un rsultat intermdiaire arrter le calcul sur le 1000me oprande Cet exemple illustre la srialisation des calculs mais la logique squentielle peut tout aussi bien servir parallliser . Par exemple, si les dbits de calculs sont 2 fois trop faibles en utilisant la logique combinatoire, une solution consiste mettre en parallle 2 oprateurs et prsenter alternativement les donnes impaires sur le premier et paires sur lautre. Dans cet exemple, la logique squentielle permet dorienter correctement les donnes et de concatner les rsultats. Lordonnancement temporel et conditionnel des tches que procure la logique squentielle permet de concevoir des algorithmes de calculs puissants et des machines calculer gnriques comme les automates et les processeurs. Le squencement ncessite une fonction propre la logique squentielle : la mmorisation. Celle-ci permet de geler les donnes et les commandes de faon les rutiliser dans un ordre dni.

6.1.1

Comment reconnatre la logique squentielle ?

Depuis le dbut du cours dENI, nous avons tudi les circuits combinatoires. Le comportement logique de ces circuits est tel que la prsentation, des instants dirents, des mmes valeurs dentre produira chaque fois les mmes rsultats. La gure 6.1 page suivante dans laquelle on a reprsent le chronogramme des combinaisons des entres et des sorties par des couleurs illustre cette proprit. Quelles que soient les couleurs prsentes aux entres pendant les intervalles de temps gurs en gris et quelles que soient les couleurs correspondantes observes aux sorties, la couleur bleu lentre du circuit produit toujours (aprs un temps de propagation) la couleur vert en sortie. Un circuit de logique squentielle ne possde pas cette proprit ; la connaissance des entres appliques un instant donn ne sut pas dterminer les valeurs des sorties comme le montre la gure 6.2 page suivante. La combinaison bleu prsente plusieurs reprises aux entres du circuit ne produit pas toujours le mme rsultat. La valeur observe aux sorties est tantt le vert, tantt le violet. Le comportement de la logique squentielle sexplique par la prsence de variables supplmentaires internes au circuit dont la valeur volue au cours du temps qui est la cause de ce non85

86

CHAPITRE 6. LOGIQUE SQUENTIELLE SYNCHRONE, BASCULES

Fig. 6.1: Chronogramme dun circuit combinatoire

Fig. 6.2: Chronogramme dun circuit squentiel

dterminisme apparent. La connaissance de la valeur de ces variables internes est ncessairement si lon veut prvoir la valeur des sorties. La gure 6.3 page suivante illustre le chronogramme du circuit en tenant compte des variables internes.

6.1.2

Comment construire la logique squentielle ?

Les valeurs des variables internes retent ltat du systme qui dpend des entres et de leurs valeurs prcdentes. Les variables internes contiennent une partie de lhistoire du circuit car elles dpendent de leurs valeurs passes. La structure du circuit de logique squentielle possde donc un circuit combinatoire calculant les variables internes et recevant les entres et les variables internes, entranant ainsi un rebouclage comme illustr dans la gure 6.4 page ci-contre. Cest ce rebouclage qui ralise la fonction de mmorisation propre la logique squentielle (cf paragraphe 6.2.1 page 88). Comme il a t tudi dans le chapitre sur les performances 5 page 73, les temps de propagation dans un circuit combinatoire sont extrmement variables et dispersifs. Ils dpendent des structures CMOS utilises, des lignes de connexion, des procds technologiques, de la tension dalimentation et de la temprature de la jonction. En consquence, il est dicile de faire fonctionner le dispositif de la gure 6.4 page suivante dune faon able car chaque variable interne et chaque sortie a son propre temps de propagation, gnrant des courses entre signaux et pouvant entraner un dysfonctionnement du systme. Une mthode largement rpandue pour lvolution des calculs consiste synchroniser les calculs. Dans cette mthode les variables internes et les sorties sont geles dans

6.1. INTRODUCTION

87

Fig. 6.3: Chronogramme avec les variables internes

Fig. 6.4: structure de base dun circuit en logique squentielle

une mmoire, gnralement une bascule D (cf paragraphe 6.2 page 88), et mises jour aprs la n de calcul du circuit combinatoire. Les sorties sont mmorises car elles sont potentiellement utilises comme entres dautres circuits squentiels. Un circuit sans variables internes avec sorties mmorises est galement un circuit de logique squentielle dans le sens o les mmoires ont leurs propres variables internes, comme expliqu dans le paragraphe 6.2.2 page 89. La mise jour des mmoires, ou chantillonnage des rsultats, se fait dun faon synchrone au rythme dun signal de commande priodique : lhorloge. La gure 6.5 page suivante illustre la structure gnrale de la logique squentielle synchrone : Linstant dchantillonnage correspond une transition montante ou descendante du signal dhorloge dont le chronogramme est donn en gure 6.6 page suivante. Le rapport cyclique de cette horloge, cest dire le rapport entre le temps o lhorloge vaut 1 et le temps ou lhorloge vaut 0, peut en consquence tre dirent de 50/50. Pour assurer la bonne marche dun circuit en logique squentielle synchrone disposant dune unique horloge, il sut de connatre le temps maximum de calcul du circuit combinatoire et dutiliser une priode dhorloge suprieure ce temps. Le chemin le plus lent dun circuit combinatoire sappelle chemin critique . Si Th est la priode dhorloge et Tcrit est le temps de propagation du chemin critique, alors il sut de respecter : Th > Tcrit Le calcul du chemin critique se fait dans les conditions dutilisation les pires, cest--dire un procd technologique sous-optimal, une tension dalimentation Vdd faible et une temprature de

88

CHAPITRE 6. LOGIQUE SQUENTIELLE SYNCHRONE, BASCULES

Fig. 6.5: Structure de base dun circuit en logique squentielle synchrone

Fig. 6.6: Chronogramme du signal dhorloge

jonction leve.

6.2

Les bascules D

La brique de base spcique la logique squentielle est le point mmoire. Il existe direntes technologies pour crer le point mmoire. La bascule D est un composant de mmorisation pour un seul point mmoire. La mmoire RAM Random Access Memory est un ensemble de points mmoires regroups dans une matrice. Laccs la RAM ne permet pas daccder tous les point mmoires en mme temps, mais un seul. Un mcanisme dadressage est donc ncessaire pour slectionner un point mmoire qui dispose ainsi de sa propre adresse .

6.2.1

Le point mmoire lmentaire

Une des techniques de mmorisation repose sur le principe de stabilit des systmes en boucle ferme comme illustr par la gure 6.7. Ce principe est utilis en technologie CMOS pour construire les bascules et les RAMs statiques. Un amplicateur reboucl sur lui mme constitue un systme stable (qui ne change pas dtat). Sil existe un moyen dinitialiser lamplicateur avec une certaine valeur, celle ci est gele dans lamplicateur qui, par le rebouclage sur lui-mme, a le rle de point mmoire. Une autre technique de mmorisation consiste capturer des charges lectriques dans un condensateur. Ce principe est utilis pour les mmoires FLASH et RAM dynamiques. Il ncessite une technologie de fabrication de circuits intgrs, dirente du CMOS, qui ne sera pas tudie en ENI.

Fig. 6.7: Point mmoire bas sur un amplicateur reboucl

La fonction de transfert de lamplicateur doit avoir une zone damplication dans son milieu (pente strictement suprieure 1) pour pouvoir converger vers le niveau haut ou bas de la courbe.

6.2. LES BASCULES D

89

La gure 6.8 page suivante illustre un exemple de fonction de transfert.

Fig. 6.8: Fonction de transfert de lamplicateur

Il existe 3 points stables de la fonction de transfert 0, Vmax et X. Les 2 premiers correspondent au fonctionnement normal et permettent dassocier les grandeurs physiques (0,Vmax) des niveaux boolens (vrai, faux). Le point X correspond un tat mtastable associ aucun niveau boolen, il faut donc lviter . Sil existe la zone damplication en milieu de courbe, Il sut de scarter lgrement de ce point pour converger vers O ou Vmax. La gure 6.9 illustre le fait que le point initial (Ve1 , Vs1 ) proche du point X converge rapidement vers Vmax .

Fig. 6.9: Convergence vers un tat stable en ne partant pas de X

Le bruit ambiant contribue ce que cet tat mtastable ne dure pas et que le systme converge. Le temps de convergence nest pas constant, il dpend de la technologie et peut tre trs long. Les points mmoires ont toujours des contraintes dutilisation pour viter cet tat.

6.2.2

structure avec 2 inverseurs tte bche : bascule RS et RAM statique

En pratique, lamplicateur est ralis avec 2 inverseurs en tte bche comme reprsent sur la gure 6.10 page suivante Pour initialiser le point mmoire, il faut forcer un niveau sur lentre dun inverseur et son oppos sur lautre inverseur. La bascule RS (Reset Set) consiste utiliser une initialisation logique avec des signaux pilotant des portes NAND ou NOR comme illustr dans la gure 6.11 page suivante. Par exemple pour la bascule RS base de NAND, les entres RESET et SET sont complmentaires et actives 0. Quand RESET est actif (au niveau 0) , et SET inactif (au niveau 1), la sortie Q est initialise 0. Quand RESET et SET sont inactifs (au niveau 1) la bascule RS est en mode

90

CHAPITRE 6. LOGIQUE SQUENTIELLE SYNCHRONE, BASCULES

Fig. 6.10: inverseurs en tte bche pour la mmorisation

mmoire et garde la valeur pralablement initialise. Dans ces structures apparat clairement la variable interne correspondant lquipotentielle Q rentrant sur le circuit.

Fig. 6.11: bascule RS avec une structure NAND et NOR

Les points suivants sont noter : La structure de la bascule dispose de 2 sorties Q et son complment Q. les 2 entres ne doivent pas tre actives simultanment. Si cest la cas, cest lentre la plus proche de la sortie qui est prioritaire. Dans le cas du point mmoire RAM statique, linitialisation est eectue grce 2 transistors NMOS de part et dautre des 2 inverseurs comme le montre la gure 6.12. Lorsque la commande C est active, la valeur de D et son complment sur D sont crites dans le point mmoire. Cette opration ncessite des transistors NMOS plus gros que ceux des inverseurs pour imposer lectriquement un niveau pouvant tre dirent au dpart. Si D est ottant ou en haute impdance, la valeur du point mmoire apparat sur D et son complment sur D, ce qui permet deectuer une lecture de ce point. Cette structure est plus petite que la bascule et ne dispose que dune entre spcique par point mmoire (la commande C) se prtant bien une structure matrice. La commande C est issue dun dcodage de signaux dadresse sur N bits permettant daccder un seul point parmi 2N .

Fig. 6.12: Point mmoire RAM statique

6.2.3

De la bascule RS la bascule D sur tat : le latch

La bascule RS peut voluer vers la bascule D qui voit les 2 entres Reset et Set remplaces par une unique entre D = set = Reset. De faon avoir la mmorisation quand Reset = Set = 0, une entre EN est utilise pour forcer les entres 0 avec 2 portes ET. Ce dispositif est appel bascule D sur tat ou Latch. Quand EN vaut 1, il y a recopie de lentre sur la sortie, le latch est transparent, et quand EN vaut 0, il est en tat de mmorisation. La structure du latch est illustre par la gure 6.13 page ci-contre :

6.2. LES BASCULES D

91

Fig. 6.13: Structure de la bascule D sur tat ou latch

6.2.4

La bascule D sur front ou Flip-Flop

Dans le paragraphe 6.1.2 page 86, nous avons vu que la synchronisation des variables internes et des sorties permet de abiliser les calculs. Cette mthode ncessite une mmoire mise jour par une horloge lors de linstant dchantillonnage. En consquence, le latch ne convient pas pour cette mthode car il perd sa fonction de mmorisation durant une phase de lhorloge, quand il est transparent. Il faut ncssairement utiliser une bascule D sur front aussi appele Flip-Flop ou tout simplement bascule D. La bascule D peut tre obtenue avec 2 latches en cascade (gure 6.14 disposant dentres EN complmentaires. Cette bascule permet de mmoriser et dchantillonner la valeur de la variable dentre sur une transition du signal EN.

Fig. 6.14: structure de la bascule D partir de latches

Le chronogramme de la gure 6.15 illustre le fonctionnement de la bascule D. La sortie S ne change quaprs chantillonnage sur front montant de lhorloge H, et est mmorise pendant une priode dhorloge. Ces points importants sont noter : La sortie S ne change pas immdiatement aprs le front montant de H car la bascule D a son propre temps de propagation. Si D1 change entre 2 fronts montants dhorloge (cas des valeurs e0 et e2), elles ne sont pas prises en compte dans la bascules. Seules comptent les valeurs de D1 au moment du front montant dhorloge. En pratique il est possible davoir un recouvrement entre H et H , une technique consiste utiliser respectivement pour les 2 latches, 2 horloges 1 et 2 non recouvrantes correspondant aux 2 phases de lhorloge.

Fig. 6.15: Chronogramme de la bascule D avec 2 latches

La bascule D peut disposer optionnellement dentres dinitialisation de mise 1 P reset ou mise 0 Reset ou Clear. Ces entres sont asynchrones, cest dire actives immdiatement sans tre sensibles au front montant de lhorloge. Ces entrs asynchrones sont actives 0 , ce qui est indiqu sur le symbole de la bascule par un cercle signiant linversion de polarit. Le symbole de la bascule D est illustr en gure 6.16 page suivante et la table de vrit par la table 6.1 page suivante. La bascule D peut avoir une sensibilit au front descendant plutt quau front montant de lhorloge. Dans ce cas le symbole de la bascule dispose dun cercle sur lentre de lhorloge signiant

92

CHAPITRE 6. LOGIQUE SQUENTIELLE SYNCHRONE, BASCULES

linversion de polarit.

Fig. 6.16: Symbole de la bascule D

D 0 1 X X X X

H 0 1 X X

Preset 1 1 1 1 0 1

Reset 1 1 1 1 1 0

Q 0 1 Q Q 1 0

Etat chantillonnage mmorisation

forage 1 forage 0

Tab. 6.1: Table de vrit de la bascule D

6.2.5

Conditions dutilisation de la bascule

De faon viter les tats mtastables (cf paragraphe 6.2.1 page 88) de la bascule, les constructeurs spcient une fentre temporelle autour de linstant dchantillonnage, dans laquelle la variable dentre ne doit pas changer de valeur. 2 temps sont utiliss cette n : tsu : temps de prpositionnement ou set up : temps durant lequel les donnes doivent rester constantes avant le front montant dhorloge. th : temps de maintien ou hold : temps durant lequel les donnes doivent rester constantes aprs le front montant dhorloge. Le temps de propagation des bascules tco correspond au temps sparant le front dhorloge des donnes stabilises en sortie. La gure 6.17 illustre les caractristiques temporelles de la bascule D. Dans le calcul du chemin critique, les temps de propagation Tco et de prpositionnement Tsu doivent tre pris en compte, comme indiqu dans la gure 6.18 page ci-contre. Si Th est la priode dhorloge alors il faut respecter : Th > Tco + Tcrit + Tsu

6.3
6.3.1

Exemples fondamentaux de la logique squentielle synchrone


Le mcanisme de dcalage avec un registre dcalage

Un registre est par dnition un ensemble de bascules. Un registre dcalage est constitu de N bascules en cascade comme indiqu dans la gure 6.19. A chaque front dhorloge, le contenu de chaque bascule amont est dcal dans la bascule aval. Ainsi au bout de N fronts montants dhorloge, la premire valeur rentre se retrouve en sortie comme

6.3. EXEMPLES FONDAMENTAUX DE LA LOGIQUE SQUENTIELLE SYNCHRONE

93

Fig. 6.17: Caractristiques temporelles de la bascule D

Fig. 6.18: Temps de propagation considrer en logique squentielle

Fig. 6.19: registre dcalage

reprsent dans la gure 6.20 page suivante. Le fonctionnement correct du registre impose davoir un temps de propagation Tco suprieur au temps de maintien Th . Cette condition est toujours garantie par les constructeurs de bascules. Le registre dcalage est une structure importante de la logique squentielle qui permet de raliser beaucoup doprations lmentaires : Passage dun format srie un format parallle : les bits rentrent en srie et les N bits du registre sont les sorties. Passage dun format parallle un format srie : Les bascules sont initialises par un mot dentre et la sortie seectue sur la dernire bascule. Recherche dune chane de bits particulire : les sorties des bascules sont compares avec la chane de rfrence. Compteur de Johnson : le registre est reboucl sur lui mme et ne contient quun seul 1 qui boucle. Et encore : gnrateur de nombres pseudo alatoires (LFSR Linear Feedback shift register ), ltres numriques RIF,...

94

CHAPITRE 6. LOGIQUE SQUENTIELLE SYNCHRONE, BASCULES

Fig. 6.20: Chronogramme du registre dcalage

6.3.2

Le mcanisme de comptage

Le compteur est un oprateur trs frquemment utilis en lectronique numrique. Dans sa version la plus simple il sagit dun dispositif dont la sortie reprsente une donne numrique qui augmente dune unit chaque priode dhorloge. Celui que nous allons prsenter possde une sortie code sur 3 bits et enchane la squence : 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, ... Le compteur est muni dune horloge qui rythme son fonctionnement et dun signal optionnel de remise zro asynchrone, RAZ. Pour raliser ce compteur il sut de se munir dun incrmenteur combinatoire de 3 bits (oprateur qui ralise +001) et dun registre 3 bits comme lillustre la gure 6.21. A chaque priode dhorloge, ltat futur du compteur est gal son tat courant augment de 1. Linitialisation du compteur se fait par le signal RAZ sur lentre Reset asynchrone des 3 bascules.

Fig. 6.21: Compteur binaire

6.3.3

Principe de srialisation des calculs

La logique squentielle permet de srialiser les oprations sur N oprandes. A chaque priode dhorloge, une seule opration est eectue entre un nouvel oprande sur lentre, et un rsultat intermdiaire stock dans un registre. La gure 6.22 page ci-contre reprsente un additionneur de mots de 16 bits dont la somme totale ne dpasse pas 255. Cet oprateur sappelle aussi accumulateur. Il faut noter dans le circuit propos quil manque la fonction dinitialisation et que ladditionneur utilis est sur 8 bits, ce qui limite la dynamique de la variable accumule 255. Le compteur binaire tudi pralablement est une version simplie de laccumulateur o tous les mots accumuler sont remplacs par une constante gale 1. Dans les microprocesseurs,

6.3. EXEMPLES FONDAMENTAUX DE LA LOGIQUE SQUENTIELLE SYNCHRONE

95

les oprations sont eectues dans un accumulateur capable deectuer la plupart des oprations arithmtiques et logiques.

Fig. 6.22: Accumulateur

Le chronogramme des oprations est indiqu dans la gure 6.23 page suivante o il est suppos que la valeur initiale est gale 0.

6.3.4

Principe dacclration des calculs par la mise en pipeline

Le dbit de calcul est une caractristique importante des systmes lectroniques, en particulier dans le domaine des tlcommunications. Les donnes traiter arrivent dune faon synchrone un rythme f . Pour traiter ces donnes il sut dutiliser un circuit squentiel utilisant une horloge de frquence f comme illustr dans la gure 6.24 page suivante o reprsente lopration eectuer. Pour que loprateur fonctionne correctement il sut que :

96

CHAPITRE 6. LOGIQUE SQUENTIELLE SYNCHRONE, BASCULES

Fig. 6.23: Chronogramme de laccumulateur

Fig. 6.24: circuit squentiel de traitement de ot de donnes

Th = 1/f et Tp < 1/f , o f est le dbit de calcul Th est la priode dhorloge Tp est le temps de propagation du chemin critique, incluant celui des bascules Si cette condition nest pas respecte, des solutions architecturales existent en logique squentielle pour acclrer le dbit des calculs. Une mthode consiste faire une mise en pipeline. Si par exemple Tp est 3 fois trop long : T p = 3/f , on peut dcomposer en 3 sous-fonctions cascadables 1 2 3. On obtient alors la structure de la gure 6.25. Celle ci ne rsout toujours pas le problme de non respect de la contrainte de dbit de f .

Fig. 6.25: Circuit squentiel de traitement de ot de donnes aprs dcomposition en sous fonctions

Si les 3 circuits ralisant les sous-fonctions ont des temps de propagation identiques de T p/3 , le temps de propagation du chemin critique devient Tp /3 la place de Tp en plaant des registres entre ces circuits. Cette mise en pipeline permet ainsi de respecter la contrainte de dbit. La gure 6.26 page ci-contre illustre cette nouvelle structure avec les tages de pipeline correspondant aux registres rajouts.

6.3. EXEMPLES FONDAMENTAUX DE LA LOGIQUE SQUENTIELLE SYNCHRONE

97

Fig. 6.26: Circuit squentiel de traitement de ot de donnes aprs dcomposition en sous fonctions

Par dnition la latence de calcul est le nombre de cycles pour obtenir le rsultat du calcul. Dans lexemple ci-dessus, la latence est passe de 1 3. Une plus grande latence ne signie pas un retard absolu plus grand car la priode dhorloge est dautant diminue. En pratique, si on veut gnrer N tages de pipeline, il est souvent dicile dquirpartir les temps de propagation en Tp /N et il faut aussi prendre en compte les temps de propagation et de prpositionnement des bascules. Donc la dcomposition en N tages de pipeline permet de gagner en dbit dun facteur un peu infrieur N .

98

CHAPITRE 6. LOGIQUE SQUENTIELLE SYNCHRONE, BASCULES

Chapitre 7

Machines tats
7.1 Introduction

Les machines tats sont des circuits de logique squentielle (cf chapitre 6 page 85) servant exclusivement gnrer des signaux de commande. Il existe en eet 2 grands types de signaux en lectronique : Signaux traiter : les donnes Signaux pilotant le traitement : les commandes Cette classication des signaux se retrouve au niveau des architectures des systmes lectroniques quon peut schmatiser comme dans la gure 7.1 o la partie contrle, gnrant les commandes, est dissocie de la partie oprative, traitant les donnes. Les 2 parties sont toujours ralises en logique squentielle et dans un trs grande majorit des cas en logique squentielle synchrone.

Fig. 7.1: Architecture gnrique dun circuit lectronique

Pour la logique squentielle synchrone, il existe 2 signaux de commandes importants : Lhorloge : pour le droulement des squences Le Reset : pour linitialisation du systme La machine tat reprsente la partie contrle, cest dire le cerveau du systme lectronique et la partie oprative , les jambes. Il existe beaucoup de dclinaisons de cette architecture, des plus compliques comme les microprocesseurs qui ont plusieurs machines tats et plusieurs parties opratives, des plus simples mais tout aussi importantes comme les contrleurs dascenseurs ou de machine caf. Pour ce dernier type de systme, les donnes sont inexistantes car les commandes servent piloter des actionneurs, valves et moteurs,... Les tats de la machine tats reprsentent toutes les valeurs que peuvent prendre les variables internes du circuit de logique squentielle (cf chapitre 6 page 85). Le schma de la machine tats gnrique est reprsent en gure 7.2 page suivante Par exemple pour la machine caf, les tats peuvent tre : 1. Attente de pice 2. Descendre le gobelet 99

100

CHAPITRE 7. MACHINES TATS

Fig. 7.2: Schma dun machine tat gnrique

3. Verser la poudre de caf 4. Verser leau chaude 5. Indiquer que cest prt Cette machine peut se compliquer en prenant en compte : le choix de la boisson, le dosage du sucre, mais elle reste nanmoins trs simple par rapport certaines machines tats industrielles comme la conduite dune centrale nuclaire, ou lautomatisation dun usine de production. Dautres types de machines tats ont des contraintes de performances trs grandes, cest la cas de celles utilises dans les microprocesseurs ou des processeurs spcialises pour le graphisme ou les tlcommunications.

Fig. 7.3: O rencontrer les machines tats

Un circuit de logique squentielle sur les donnes nest pas une machine tats. En eet les donnes sont stockes dans des mmoires de grande taille. En considrant une mmoire de 128 Moctets (1G bits), le nombre dtats possible serait de 21G nombre largement suprieur au nombre de particules de lunivers (1080 ).

7.2
7.2.1

Le graphe dtats
Comment reprsenter graphiquement le comportement dune machine tats ?

Dans une machine tats donne, la loi dvolution de ltat nest videmment pas alatoire, pas plus que celle qui dtermine la valeur des sorties. Ces lois sont soigneusement choisies par le crateur de la machine an que celle-ci remplisse une fonction prcise. La conception dune machine tats, pour peu que sa complexit dpasse celle des cas dcole qui nous serviront dexemples, est une tche dlicate. Le graphe dtats est lun des outils les plus utiliss pour la spcication de la machine tats (entres, sorties, fonctionnement souhait). Le graphe dtats, comme son nom lindique, reprsente graphiquement les tats dune machine tats. Chaque tat est dessin sous la forme dune bulle contenant son nom. On comprend

7.2. LE GRAPHE DTATS

101

immdiatement que cet outil ne sera pas dun grand secours lorsque le nombre dtats de la machine dpassera quelques dizaines. Prenons lexemple dune machine laver o on considre 5 tats comme illustr dans la gure 7.4.

Fig. 7.4: Graphe dtat au dpart

On complte le graphe en gurant les transitions possibles par des ches entre les tats. On appelle tat source ltat de dpart dune transition et tat destination ltat darrive. La transition T 0 a Prlavage pour tat source et Lavage pour tat destination. Certaines transitions ont le mme tat pour source et pour destination. Cela signie que la machine peut rester dans le mme tat pendant un certain temps. La transition T 1 est de cette sorte comme illustr dans la gure 7.5.

Fig. 7.5: Graphe dtat avec quelques transitions

Muni de toutes les transitions possibles comme reprsent dans la gure 7.6 page suivante, le graphe constitue une reprsentation assez dense de lvolution possible de la machine au cours du temps. A tout instant la machine est dans lun des tats reprsents ; cest ce que nous appellerons ltat courant de la machine. A chaque front montant de lhorloge, la machine emprunte lune des transitions possibles partir de son tat courant. Elle change alors dtat. Retenez bien cette consquence du fait que notre machine est synchrone sur front montant de lhorloge : elle reste dans un tat donn (une bulle du graphe) pendant le temps qui spare deux fronts montants de lhorloge (voire plus si elle emprunte ensuite une transition vers le mme tat). Les transitions (les ches du graphe), en revanche, sont quasi-instantanes puisquelles correspondent aux fronts montants

102

CHAPITRE 7. MACHINES TATS

de lhorloge.

Fig. 7.6: Graphe dtat avec les transitions

Pour enrichir encore notre graphe nous devons prciser les spcications de la machine et, plus particulirement, la loi dvolution des variables internes (ltat) en fonction des entres. Supposons que les entres de notre machine soient au nombre de trois : M : variable boolenne qui traduit la position du bouton Marche/Arrt du lave-linge. P : variable boolenne qui indique si le programme de lavage slectionn par lutilisateur comporte ou non une phase de prlavage. C : valeur en minutes dun chronomtre qui est remis zro automatiquement au dbut de chaque tape de lavage. Les dures des direntes tapes de lavage sont xes par le constructeur : prlavage : 10 minutes lavage : 30 minutes rinage : 10 minutes essorage : 5 minutes A partir de ces informations complmentaires nous pouvons faire gurer sur le graphe les conditions logiques associes chaque transition. Avec un graphe ainsi complt comme il apparat dans la gure 7.7 page ci-contre, il devient trs facile de comprendre ou de prvoir le comportement de la machine. On sait par exemple que lorsque la machine est dans ltat Arrt elle y reste tant que M nest pas vrai au moment dun front montant de lhorloge. Ds que M est vrai au moment dun front montant de lhorloge la machine change dtat : elle passe dans ltat Prlavage si P est vrai et dans ltat Lavage si P est faux. Il est important de comprendre que la valeur des entres de la machine na dimportance quau moment prcis des fronts montants de lhorloge. Cest une consquence du fait que notre machine est synchrone sur front montant de lhorloge. Notre machine tats possde des entres mais nous navons pas encore tudi les sorties. Or un circuit lectronique sans sorties nest que de peu dutilit. Il existe deux sortes de machines tats : celles dont les sorties ne dpendent que de ltat courant (ce sont les machines dites de Moore) et celles dont les sorties dpendent de ltat courant et des entres (ce sont les machines dites de Mealy). Lanalyse des mrites compars des machines de Mealy et de Moore est un problme complexe qui nentre pas dans le cadre de ce cours. Nous allons donc rduire encore la gnralit de notre tude et nous concentrer sur les machines de Moore. Le programmateur de notre lavelinge est donc une machine de Moore dont les sorties ne dpendent que de ltat courant. Nous supposerons que ses sorties sont trois signaux boolens, X, Y et Z destins piloter les dirents moteurs du lave-linge. Les spcications prcisent leur valeur pour chaque tat que peut prendre la machine. Nous pouvons encore complter le graphe dtats an dy faire gurer cette information.

7.2. LE GRAPHE DTATS

103

Fig. 7.7: Graphe dtat avec les transitions spcies

Le graphe est alors achev comme illustr dans la gure 7.8. Il est quivalent aux spcications du programmateur tout en tant plus dense quune description en langage naturel.

Fig. 7.8: Graphe dtat nal

7.2.2

Comment vrier cette reprsentation laide de quelques rgles simples ?

Les spcications sont gnralement crite en langage naturel. La traduction des spcications en graphe dtat est donc entirement manuelle et les risques derreurs sont nombreux, comme cest toujours le cas lorsquun humain intervient dans un processus. Si une erreur venait se glisser dans

104

CHAPITRE 7. MACHINES TATS

le graphe elle se retrouverait probablement dans le circuit lectronique nal (il est peu probable, sauf intervention surnaturelle, quune deuxime erreur annule la premire), ce qui est inacceptable : un lave-linge qui "oublie" de rincer nest pas trs satisfaisant, sans parler des centrales nuclaires ou des avions de ligne. Il faut donc vrier le graphe avant de poursuivre la ralisation de la machine. Comme toute bonne spcication il doit vrier deux proprits fondamentales : : il doit tre complet ou non ambigu il doit tre non contradictoire La premire signie que le comportement est toujours dni : chaque front montant dhorloge, quel que soit ltat dans lequel se trouve la machine et quelles que soient les valeurs des entres, on doit connatre ltat suivant. Lune des conditions associes aux transitions partant dun tat quelconque du graphe doit donc toujours tre vraie. On peut traduire cette proprit sous forme dquation boolenne en crivant que le ou logique de toutes les conditions associes au transitions partant dun tat quelconque est toujours vrai : soient C1, C2, ..., Ci, ..., Cn ces conditions, alors :
i=n

Ci = 1
i=1

Par exemple, pour le programmateur de notre lave-linge, les transitions partant de ltat Arrt sont au nombre de trois comme indiqu en pointill sur la gure 7.9

Fig. 7.9: Graphe dtat nal

Et les conditions associes sont : M , M.P , M.P Le OU logique de ces trois conditions vrie donc : M + M.P + M.P = M + M.(P + P ) = M + M = 1 Ltat Arrtrespecte donc la premire rgle. A titre dexercice vous pouvez vrier que cest galement le cas pour les quatre autres tats. La deuxime rgle signie qu tout front montant dhorloge une seule transition est possible. Si plus dune transition a sa condition associe vraie, le graphe est contradictoire (deux actions incompatibles sont simultanment possibles). Le respect de cette rgle est plus dicile vrier : le OU logique de tous les ET logiques de deux conditions associes aux transitions partant dun tat quelconque est toujours faux :
i=n i=1 j=n j=i+1

Ci .Cj = 0

7.3. LA COMPOSITION DUNE MACHINE TATS

105

En reprenant ltat Arrt du programmateur de lave-linge comme exemple : M .M.P + M .M.P + M.P .M.P = 0 + 0 + 0 = 0 Ltat Arrt respecte donc galement la deuxime rgle. Si elle est aussi vrie par les autres tats alors nous sommes en prsence dun vritable graphe de machine tats sans ambigut ni contradiction. Malheureusement cela ne prouve pas que le graphe est conforme la spcication. Il faut encore vrier que la fonctionnalit est la mme dans les deux descriptions. Il nexiste pas doutils de vrication ou de formules logiques permettant de le faire. Vous pouvez par exemple parcourir le graphe tat par tat et, pour chacun deux, comparer la partie de spcication qui le concerne avec les conditions associes aux transitions sortantes. Toute mthode est bonne si elle permet dviter des erreurs ce stade du travail de conception.

7.3
7.3.1

La composition dune machine tats


Le calcul de ltat futur

En logique squentielle synchrone, ltat courant est modi chaque front montant de lhorloge. Entre deux fronts montants de lhorloge (pendant une priode dhorloge) il reste stable, ce qui donne le temps aux circuits combinatoires qui composent la machine de calculer le prochain tat et les sorties. Il existe donc, entre autres, un circuit combinatoire charg de calculer le prochain tat, que nous appellerons aussi tat futur, partir de ltat courant et des entres de la machine. Ce circuit (nomm P1 sur le schma de la gure 7.10) est en gnral le plus dicile concevoir. Ses entres sont : Ltat courant qui est mmoris dans le registre dtat (RE sur le schma). Les entres de la machine.

Fig. 7.10: Calcul de ltat futur

Sa sortie est ltat futur. Ds que les entres changent de valeur ou ds que ltat courant est modi, le circuit P1 commence calculer ltat futur. Ce calcul nest pas instantan (voir le TD 5 page 73 sur le temps de propagation dans les portes CMOS). Pour que la machine puisse fonctionner correctement il faut que les entres de ce circuit restent stables pendant une dure susante pour que sa sortie puisse, elle aussi, stablir et se stabiliser avant le front montant de lhorloge suivant. Sinon la valeur chantillonne par le registre dtat ne sera pas la bonne et le droulement des oprations sera perturb.

7.3.2

Le registre dtat

Il est compos de plusieurs bascules D (la question de leur nombre exact est traite dans le paragraphe 7.4 page 107). Lhorloge est la mme pour toutes : cest lhorloge gnrale du circuit lectronique dont fait partie la machine. Son entre est la sortie du circuit P1, cest ltat futur. Sa sortie, ltat courant, sert dentre P1 mais aussi au circuit destin calculer les sorties.

106

CHAPITRE 7. MACHINES TATS

Une machine tat est un dispositif avec rtroaction : ltat courant conditionne les tats futurs. Dans un tel dispositif la question des conditions initiales se pose. En dautres termes, pour que le fonctionnement soit celui souhait ds la mise sous tension, il faut introduire un moyen de forcer un tat de dpart. Il en va de mme pour le microprocesseur qui constitue lunit de calcul de votre ordinateur. Comme nous lavons vu dans le paragraphe 7.1 page 99 il contient un grand nombre de machines tats qui le commandent et le contrlent. Si, lorsque vous allumez votre ordinateur ltat de ces machines nest pas forc une valeur connue et choisie par les concepteurs la squence de dmarrage risque dtre fortement perturbe. Cest pourquoi toute machine tat dispose dune entre dinitialisation Reset grce laquelle ltat des machines est forc lors de la mise sous tension. Il existe deux mthodes pour forcer ltat initial avec le Reset : 1. Le reset synchrone. Il est pris en compte uniquement sur le front montant de lhorloge. Il agit donc de la mme faon que les entres "normales" de la machine. Son inuence est prioritaire sur les autres. Le circuit P1 possde donc ce signal comme entre supplmentaire. Lorsque cette entre est active (elle peut tre active lorsquelle vaut 0 ou bien 1, cest une convention dnir) ltat futur que calcule P1 est ltat initial. Au front montant dhorloge suivant la machine passe donc dans cet tat. Dans lexemple de notre programmateur de lave-linge il semble judicieux de choisir Arrt comme tat initial. Le graphe doit tre modi comme indiqu dans la gure 7.11 pour tenir compte du reset synchrone.

Fig. 7.11: Graphe dtat avec Reset synchrone

2. Le reset asynchrone. Il utilise les entres Set et Reset des bascules D (voir le chapitre 6 page 85) du registre dtat pour forcer ltat initial. On branche lentre Reset sur lentre set des bascules si on dsire forcer un 1, ou sur lentre Reset des bascules si on dsire forcer un 0. Les entres de la partie P1 ne sont pas modies. Le graphe dtat non plus si ce nest lindication de ltat de dpart par le Reset comme indiqu dans la gure 7.12 page suivante. Cette solution est donc plus simple concevoir que la prcdente, donne des tailles (en nombre de composants) plus faibles pour des vitesses de fonctionnement plus leves. Cest pourquoi on la prfrera lorsquelle nentre pas en conit avec dautres contraintes.

7.3.3

Le calcul des sorties

La troisime et dernire partie dune machine tats est le circuit combinatoire de calcul des sorties (P2 sur le schma de la gure 7.13 page ci-contre). Dans une machine de Moore, ses entres

7.4. LE CODAGE DES TATS

107

Fig. 7.12: Graphe dtat avec Reset Asynchrone

sont ltat courant et ses sorties sont les sorties de la machine. Ds que ltat courant change, aprs un front montant dhorloge, ce circuit commence calculer les sorties caractristiques du nouvel tat. Comme pour le circuit P1 il faut absolument quil dispose dassez de temps pour le faire avant le front montant dhorloge suivant.

Fig. 7.13: calcul des sorties

7.4
7.4.1

Le codage des tats


Comment reprsenter les dirents tats sous forme de mots binaires ?

Jusquici nous avons identi les dirents tats par leur nom (Arrt, Prlavage, etc.). Llectronique numrique ne manipule pas de tels symboles. Lalphabet y est nettement plus restreint puisquil se compose des seuls 0 et 1 de lalgbre de Boole. Pour chaque tat dune machine il va donc falloir trouver un nom unique exprim dans cet alphabet. Nous avons vu dans les paragraphes 7.1 page 99 et 7.3 page 105 que les machines tats synchrones mmorisent ltat courant dans des bascules D du type de celles du chapitre 6 page 85. Chacune de ses bascules contiendra tout moment un caractre (0 ou 1) du nom de ltat courant. A la dirence des noms dtats exprims en langage naturel ceux exprims dans lalphabet binaire auront tous le mme nombre de caractres. La raison en est simple : pour pouvoir mmoriser

108

CHAPITRE 7. MACHINES TATS

nimporte quel tat dans les bascules D du circuit le nombre de bascules doit tre au moins gal la taille du nom le plus long. Si ces bascules ne servent pas toutes un instant donn on ne peut en tirer aucun prot ni pour rduire la taille du circuit, ni pour augmenter sa vitesse. Llectronique a ceci de contraignant que le matriel inutilis cote aussi cher que le matriel utilis. Nous allons continuer exploiter lexemple du programmateur de lave-linge. Commenons par dterminer le nombre de symboles binaires (bits) ncessaires reprsenter les cinq tats. Contrairement ce que lon pourrait penser ce choix nest pas trivial. Nous pouvons dores et dj constater que trois bits au moins sont ncessaires. En eet, deux bits permettent, au maximum, la reprsentation de quatre situations direntes seulement. Deux tats dirents seraient donc reprsents de la mme faon et ne pourraient tre direncis ; la machine ne pourrait pas fonctionner correctement. Trois bits permettent de reprsenter huit mots dirents. On peut galement liminer les solutions plus de cinq bits car elles sont forcment redondantes (il existe toujours au moins un bit inutile que lon peut retirer en conservant cinq mots dirents). Restent les solutions trois, quatre ou cinq bits. On appelle codage la reprsentation en mots binaires des noms des tats. La table 7.1 propose un exemple de codage trois, quatre, cinq et six bits pour notre exemple. Etat Arrt Prlavage Lavage Rinage Essorage Trois bits 100 000 001 010 111 Quatre bits 0001 0110 1111 0000 1011 Cinq bits 11110 10100 01100 01101 01110 Six bits 110001 101010 110111 010110 010111

Tab. 7.1: Exemples de codage des tats

7.4.2

En quoi le codage choisi inue-t-il sur la taille de la machine tats ?

La partie combinatoire de la machine qui calcule ltat futur en fonction des entres et de ltat courant est trs largement inuence par le codage des tats. Donc sa taille (en nombre de composants utiliss) en dpend galement. Elle possde N e + N b entres et N b sorties (N e est le nombre dentres de la machine et N b le nombre de bits choisi pour coder les tats comme illustr dans la gure 7.14).

Fig. 7.14: Schma dune machine tats avec le nombre de bits ncessaires

Le nombre de fonctions boolennes calcules est donc gal N b et chacune de ces fonctions

7.4. LE CODAGE DES TATS

109

possde N e + N b entres. On pourrait en conclure quil faut coder les tats avec le moins de bits possibles pour que cette partie combinatoire soit la plus petite possible. Mais il nen est rien. On peut facilement trouver des exemples qui prouvent le contraire. Pour sen convaincre il sut de remarquer quune fonction boolenne de quatre variables peut tre plus simple quune autre de deux variables : F (A0 , A1 , A2 , A3 ) = A0 est plus simple que : G(A0 , A1 ) = A0 A1 Il se pourrait que notre exemple soit une illustration de ce phnomne et que cinq fonctions boolennes simples vaillent mieux que trois complexes. La partie combinatoire qui calcule les sorties en fonctions de ltat courant possde N b entres et N s sorties (o N s est le nombre de sorties de la machine). Elle calcule donc N s fonctions boolenne de N b entres. L encore, mons nous des vidences ; la solution qui se traduit par une taille minimum nutilise pas ncessairement un codage des tats sur un nombre de bits minimum. La seule certitude que lon ait concerne le registre dtat. Sa taille est directement lie au nombre de bits du codage dtats. Comme on le voit, le problme nest pas simple. Il lest dautant moins quune solution optimale au sens de la taille pour la partie combinatoire de la machine qui calcule ltat futur a peu de chances dtre galement la meilleure pour la partie combinatoire qui calcule les sorties.

7.4.3

Quelles mthodes permettent de choisir le meilleur codage possible ?

Il faut, avant de rpondre cette question, dterminer ce que lon entend par meilleur. La taille est un critre de slection mais il nest pas le seul. On peut galement sintresser la vitesse de fonctionnement, la consommation ou la simplicit de conception. Selon lobjectif x les stratgies de codage seront direntes. Parmi celles-ci nous allons en citer trois : 1. Le codage adjacent : il utilise un nombre de bits minimum (trois bits pour lexemple de la gure 7.15 page suivante) et se caractrise par le fait que le passage dun tat un autre ne modie quun seul bit du registre dtat, un peu la manire dun code de Gray. Il nest pas toujours possible de trouver un tel codage. Pour notre programmateur, par exemple, il nexiste pas de codage adjacent. On peut cependant essayer de sen approcher en rduisant autant que faire se peut, le nombre de transitions modiant plus dun bit du registre dtat. Ici, seule la transition de ltat Prlavage, cod 001 ltat Lavage, cod 010, ne respecte pas la contrainte. Lintrt dun tel codage nest pas systmatique. Il donne cependant souvent de bons rsultats en taille et en vitesse pour la partie combinatoire qui calcule ltat futur. Elle se trouve en quelque sorte simplie par la faible agitation des bits reprsentant ltat. 2. Le codage one-hot : il utilise un nombre de bits gal au nombre dtats (cinq bits pour lexemple de la gure 7.16 page suivante). Chaque tat est reprsent par un mot binaire dont tous les bits sauf un valent 0. Ce codage donne souvent les machines les plus simples concevoir. Il est galement parfois intressant en vitesse et en surface malgr le handicap d la taille du registre dtat. 3. Le codage alatoire : il consiste coder les tats sur un nombre de bits minimum sans aucune autre proccupation que dviter que deux tats aient le mme code. Les rsultats en terme de surface, vitesse ou dicult de conception sont imprvisibles mais peuvent parfois tre meilleurs que ceux produits par les deux autres stratgies. Pour ce problme prcis de loptimisation du codage des tats les outils logiciels de type synthtiseurs logiques peuvent aider le concepteur pour trouver un bon codage.

110

CHAPITRE 7. MACHINES TATS

Fig. 7.15: Graphe avec codage adjacent

Fig. 7.16: Graphe avec codage "one-hot"

7.5

La conception dune machine tats

Considrons lexemple du programmateur du lave-linge (voir le paragraphe 7.2 page 100 . Le graphe dtat nal reprsent dans la gure 7.9 page 104 fait apparatre un minuteur qui fournit en entre de notre machine tats trois signaux C5, C10 et C30, toutes trois boolennes, qui indiquent respectivement si la valeur 5 minutes, 10 minutes ou 30 minutes est atteinte. Ces minuteurs sont aussi des machines tats dont ltat change chaque cycle dhorloge, . Ils auraient pu tre incorpors au graphe principal, mais en considrant un frquence dhorloge de 1 seconde, le graphe aurait t muni de plus de 3300 tats (5mn + 2fois 10mn + 30mn)* 60 s . Le chapitre 7.5.2 page 113 tudie la conception de ces minuteurs. Les machines tats peuvent donc tre factorisables. Cet exemple montre un exemple de machines tats imbriques de faon en simplier leur conception. Commenons par concevoir la machine tats principale dont le graphe a t tudi pralablement.

7.5. LA CONCEPTION DUNE MACHINE TATS

111

7.5.1

machine tats principale

Linterface de la machine avec le monde extrieur est spci dans la table 7.2. Nom H R M P C5 C10 C30 X Y Z Mode Entre Entre Entre Entre Entre Entre Entre Sortie Sortie Sortie Description Horloge Reset actif 0 , initialise ltat Arrt Position du bouton Marche/Arrt Existence dune phase de prlavage Chronomtre suprieur ou gal 5 minutes Chronomtre suprieur ou gal 10 minutes Chronomtre suprieur ou gal 30 minutes Vaut 0 dans ltat Arrt, 1 dans les autres Vaut 1 dans les tats Prlavage et Lavage, 0 dans les autres Vaut 1 dans les tats Lavage et Essorage, 0 dans les autres
Tab. 7.2: Spcication de linterface

La premire chose faire est le graphe dtat qui a dj t tudi au paragraphe 7.2 page 100 et vri pour ne pas tre ambigu ni contradictoire. La gure 7.9 page 104 illustre le graphe considr. Dans une deuxime temps le codage des tats doit tre choisi. Considrons le codage reprsent dans la table 7.3. Etat Arrt Prlavage Lavage Rinage Essorage Codage 000 001 010 110 100

Tab. 7.3: Codage des tats

Le codage des tats choisi est indiqu en haut de chaque bulle du graphe reprsent en gure 7.17 page suivante. Il faut maintenant tablir la table de vrit des direntes fonctions boolennes calcules lintrieur de la machine. Commenons par la partie combinatoire qui calcule ltat futur partir de ltat courant et des entres, que nous appellerons P1. Nous noterons les trois bits de ltat futur EF2, EF1 et EF0 avec la convention que EF2 est le bit de gauche, EF1 le bit du milieu et EF0 le bit de droite du code de ltat. De mme les trois bits de ltat courant seront nots EC2, EC1 et EC0. Cette table de vrit sappelle galement table dvolution (ou de transition) car elle dcrit lvolution de la machine au cours du temps. Elle donne pour chaque tat courant possible et pour chaque combinaison possible des entres la valeur prise par ltat futur. Lorsque la valeur dune entre est X cela signie quelle est indirente. La table 7.4 page suivante reprsente la table dvolution de la machine tats. En utilisant les mthodes et principes exposs dans le chapitre 2 page 33, on en dduit des quations non simplies des trois fonctions boolennes EF2, EF1 et EF0 que calcule P1 : EF2 EF1 EF0 = (EC2 + EC1 ).(EC2 + C30).(EC2 .EC1 .C5) = (EC1 + EC0 ).(EC1 + C10).(EC2 .EC1 .C10) + (EC2 + EC1 + EC0 ).M.P = (EC2 + EC1 + EC0 ).M.P + EC0 .C10

112

CHAPITRE 7. MACHINES TATS

Fig. 7.17: Graphe avec codage choisi pour la conception

Etat courant EC2 0 0 0 0 0 0 0 1 1 1 1 EC1 0 0 0 0 0 1 1 1 1 0 0 EC0 0 0 0 1 1 0 0 0 0 0 0 M 0 1 1 X X X X X X X X P X 1 0 X X X X X X X X

Entres C5 X X X X X X X X X 0 1 C10 X X X 0 1 X X 0 1 X X C30 X X X X X 0 1 X X X X

Etat futur EF2 0 0 0 0 0 0 1 1 1 1 0 EF1 0 0 1 0 1 1 1 1 0 0 0 EF0 0 1 0 1 0 0 0 0 0 0 0

Tab. 7.4: Table dvolution

Aprs simplication et toujours en utilisant les mthodes du chapitre 2 page 33 : EF2 EF1 EF0 = EC1 .C30 + EC2 .(EC1 + C5) = EC0 .C10 + EC1 .EC2 .C10 + EC2 .EC1 .EC0 .M.P = EC2 .EC1 .EC0 .M.P + EC0 .C10

La ralisation en portes logiques de ces trois quations ne pose pas de problme particulier. Il peut cependant tre intressant daner ltude dans le but de rduire la complexit de lensemble. On peut par exemple remarquer que le terme :EC2 .EC1 .EC0 .M se retrouve dans les quations de EF1 et EF0 Il est possible de partager certaines portes entre plusieurs fonctions logiques et raliser des conomies de matriel.

7.5. LA CONCEPTION DUNE MACHINE TATS

113

7.5.2

Machine tats du minuteur

Chaque minuteur dispose en entre dun signal de commande GO correspondant une sortie de la machine tats principale. Linterface du minuteur avec le monde extrieur est spci dans la table 7.5. Cx reprsente C5 , C10 ou C30. Nom H R GO Cx Mode Entre Entre Entre Sortie Description Horloge Reset actif 0 , initialise ltat Arrt Commande venant de la machine tat principale actif 1 pour autoriser la sortie, sinon force la sortie 0 Vaut 1 ds que le temps est atteint
Tab. 7.5: spcication de linterface

Le graphe dtat de la machine tat est cyclique et rete lavancement de la machine quand le signal GO est actif. Le graphe est illustr dans la gure 7.18.

Fig. 7.18: Graphe avec codage choisi pour la conception

Ce graphe correspond la fonction dun compteur binaire pilot par le signal GO, et dont la sortie est compare au temps dattente du minuteur. Ltat N est le seul tat o la sortie est active

114

CHAPITRE 7. MACHINES TATS

et o il ny a pas de condition pour aller ltat suivant. Autrement dit il sagit dun compteur modulo N+1 si GO est toujours actif. Plutt que dutiliser une mthode systmatique de synthse de machines tats, qui dboucherait sur un grand nombre dtats (300 tats pour obtenir 5mn avec une horloge d1s de priode), il sut de considrer la structure dun compteur binaire (cf chapitre 6 page 85 suivi dun comparateur (cf chapitre 2 page 33). Ce compteur est mis 0 (correspondant ltat Arrt = 0) par GO et le codage des tats est tel que les sorties du compteur correspondent aux bits codant ltat. La gure 7.19 reprsente la structure du minuteur. Le signal R agit sur le Reset asynchrone des bascules. Il aurait pu tre supprim du fait que GO eectue un Reset synchrone.

Fig. 7.19: Schma dun minuteur

Plutt que dutiliser 3 minuteurs, il est possible davoir un seul minuteur en utilisant en entre le temps dattente. Dans ce cas linterface avec lextrieur dispose de 2 signaux supplmentaires SEL1 et SEL0 permettant de programmer le minuteur comme indiqu dans le tableau 7.6. La spcication de la machine tat principale doit donc changer lgrement an de : Sortir SEL1, SEL0 et GO plutt que 3 signaux GO spars Avoir en entre un seul signal C x la place de C5, C10 et C30 SEL1 0 1 0 SEL0 0 x 1 Mode de programmation 5mn 10mn 30mn

Tab. 7.6: Spcication de la programmation du minuteur

Bien entendu les sorties de la machine tats principales doivent tre modies en consquence. Il existe toutefois un problme dans la machine tat principale car il n y a pas dtat permettant de remettre le signal GO 0 , par exemple entre ltat Lavage et ltat Rinage pour programmer le minuteur de C10 C30. Une solution consiste rajouter des tats dans la machine tat principale, de faon mettre le signal GO 0. Par exemple il y aurait ltat Lavage bis tout de suite aprs Lavage , identique Lavage mais avec GO 0. Une autre solution, certainement plus optimale en temps de dveloppement, consiste gnrer un signal de remise zro , RAZ, du minuteur lorsquil y a eu un changement sur les entres SEL1 ou SEL0. Au vu de la squence ncessaire (C10 C30 C10 C5) , il sut de dtecter le

7.5. LA CONCEPTION DUNE MACHINE TATS

115

changement uniquement sur SEL1 car SEL0 ne change pas sur les transitions. Pour ce faire il sut de comparer lancienne valeur de SEL1 avec la nouvelle et mettre zro le minuteur si les 2 valeurs sont direntes. la gure 7.20 illustre le schma du minuteur gnrique grant automatiquement les changements de programmation.

Fig. 7.20: Schma dun minuteur gnrique avec RAZ automatique

116

CHAPITRE 7. MACHINES TATS

Chapitre 8

Des machines tats aux processeurs


8.1
8.1.1

Introduction
Objectifs

Le but de ces deux leons-TD est de vrier que les principes des machines tats sont bien assimils, introduire la notion de microprocesseur, partir dexemples progressifs et simples, concevoir un microprocesseur simple, darchitecture RISC, que vous raliserez physiquement lors du prochain TP (voir 19 page 197). Pour cela, nous allons procder par tapes, et le construire petit petit. . .

8.1.2

Introduction

Les processeurs ne sont rien dautres que des machines calculer (un peu volues) programmables. Imaginez que vous tes comptable, et que vous ayez eectuer une srie doprations quon vous a gentiment inscrites sur une feuille de papier. Voici un exemple dinstructions quon peut vous avoir donn :

1. faire 112 + 3 2. faire 4 + 5 3. faire 2 + 16 4. . . . Un exemple un peu plus compliqu serait :

1. faire 112 + 2 2. faire rsultat prcdent * 5 3. . . . ou bien

117

118

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

1. 112 + 3 2. rsultat prcdent - 4 3. si le rsultat est nul, passer ltape 6, sinon continuer 4. 3 * 4 5. rsultat prcdent + 9 6. ouvrir la fentre 7. rsultat de ltape 2 - 15 8. passer ltape 12 9. . . . Un microprocesseur est un dispositif lectronique qui pourrait faire ce travail votre place, pourvu quon lui donne la feuille de papier (et de lnergie).

8.1.3

Instructions et donnes

Les sries dopration ci-dessus sont appeles programme. En dautres termes, un programme de microprocesseur est juste une liste doprations eectuer. Dans notre cas, o le microprocesseur est simple1 , les instructions resteront simples. Si le processeur est plus complexe, incluant des priphriques multiples (gestionnaire de mmoire, entres-sorties, . . . ), les instructions peuvent devenir complexes, comme cest le cas dans les processeurs CISC2 . Dans les suites doprations ci-dessus, on distingue deux types dobjets : les donnes : dabord les oprandes proprement dits (3, 4, 112, . . . ), et les oprandes implicites (rsultat prcdent, rsultat de ltape 2, . . . ) ; les instructions : pour nous ce sont principalement les oprations (au sens arithmtique du terme) eectuer (+, , , /...), il y a aussi des tests (si le rsultat prcdent est nul...), et des sauts, conditionns par un test (alors passer ltape 6) ou non (passer ltape 12) ainsi que des instructions spciales (ouvrir la fentre). Dans notre cas, une instruction de ce genre pourrait tre mettre en marche le buzzer, ou allumer la LED numro 10... Notez que ces suites doprations sont numrotes : elles ont un ordre. Dans le premier exemple, lordre na pas tellement dimportance, mais il en a une dans le deuxime et le troisime quand on parle de rsultat prcdent, dtape 6, . . .

8.1.4

de la feuille llectronique

Passons du comptable et de la feuille de papier aux composants lectronique. La feuille de papier a un rle de mmorisation : cest sur elle quest crite la suite doprations eectuer, cest probablement aussi sur elle que seront crit les rsultats. Nous la modliserons par une mmoire vive, une RAM. Vous avez dj vu ce genre de composant au lors du TD sur les bascules et la mmorisation ( 13 page 155). Cest cette RAM qui stockera les instructions eectuer, les donnes, ainsi que les rsultats que le microprocesseur va calculer. Le microprocesseur sera donc reli cette RAM, et ira lire les instructions eectuer, selon le principe suivant : 1. aller lire la premire ligne (instructions et donnes associes) 2. faire ce qui est indiqu 3. aller lire la ligne suivante (instructions et donnes associes)
1 et 2 Complex

plus gnralement pour tous les processeurs dits RISC Instruction Set, par opposition RISC : Reduced Instruction Set

8.1. INTRODUCTION

119

4. faire ce qui est indiqu 5. revenir ltape 3 (etc. jusqu ce que mort sensuive...) Premire remarque : le microprocesseur doit lire les lignes une par une. Il doit donc maintenir un compteur de ligne interne qui indique la ligne courante (ou la prochaine ligne lire, comme cela nous arrangera). Deuxime remarque : le processeur est un dispositif lectronique qui ne comprend que des suites de bits. Il faudra donc coder les instructions sur un nombre de bit susant pour coder toutes les instructions dont nous aurons besoin. Les donnes naturelles (les chires) seront codes de faon normale (en complment 2, voir 3 page 47), et il faudra trouver un moyen de coder les donnes implicites. Troisime remarque : dans notre architecture, la RAM stockera les donnes et les instructions de faon imbrique. Il est possible dutiliser deux RAM direntes, ou des zones distinctes, mais vous verrez cela en dtail dans le module ARSE !

8.1.5

Interlude rappel : fonctionnement de la RAM

Le schma de la RAM est donn en gure 8.1.

Fig. 8.1: Symbole de la RAM

La RAM possde trois bus : un bus dadresses, ADDRESS[7 : 0] indiquant lemplacement en mmoire de la donne laquelle on accde, un bus de donne, D[7 : 0], pour les donnes quon crit en RAM, un bus de donne, Q[7 : 0], pour les donnes quon va lire en RAM, ainsi que un signal de contrle sur 1 bit, W RIT E, indiquant si on est entrain de faire une lecture dans la RAM (W RIT E = 0), ou une criture (W RIT E = 1). Le fonctionnement de la RAM est le suivant : la RAM sort en permanence sur Q[] la donne stocke ladresse prsente sur ADRESSE[] (aprs, Q[], on en fait ce quon veut... Si on na pas envie de lutiliser, on lignore), si W RIT E est actif (1), la valeur prsente sur D[] est stocke ladresse prsente sur ADRESSE[], si W RIT E est inactif (0), D[] est ignor. De plus, pendant que W RIT E est actif, le bus Q[] prend la mme valeur de D[]. Pour les chronogrammes, on se reportera la gure 8.2 page suivante Nous relierons notre microprocesseur (automate) une RAM pouvant stocker 256 mots de 8 bits chacun : 8 bits : les lignes de donnes D[] seront un bus 8 bits 256 mots : il nous faudra donc 8 lignes dadresse (pour coder une adresse allant de 0 255) Larchitecture globale, qui nous re-servira en TP est donc la suivante (voir gure 8.3 page suivante :

120

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

Fig. 8.2: Exemple daccs la RAM

notre microprocesseur la RAM, relie au processeur par ses bus de donnes, adresses et la ligne de WRITE un buzzer qui servira jouer de la musique

Fig. 8.3: schma global

8.2

tape 1 : automate linaire basique

Dans cette premire tape, nous nimplmenterons que les instructions et donnes du premier exemple. Le processeur est donc reli une mmoire vive (RAM) stockant 256 mots de 8 bits.

8.2.1

Organisation de la mmoire

On suppose que le programme (oprations eectuer) ainsi que les donnes sont dj charges dans la mmoire, et quils respectent le format suivant : adresse 0 1 2 3 4 5 6 7 type du mot stock instruction donne (premier oprande) donne (deuxime oprande) donne (rsultat) instruction donne (premier oprande) donne (deuxime oprande) donne (rsultat) exemple + 3 4 X 12 8 X

Le X indique que la RAM ne contient rien de valide cet endroit l. Cest au microprocesseur daller y crire le rsultat correct. Aprs avoir lanc le microprocesseur, le contenu de la RAM sera donc le suivant (on indique en gras les endroits de la RAM qui ont chang) :

8.2. TAPE 1 : AUTOMATE LINAIRE BASIQUE

121

adresse 0 1 2 3 4 5 6 7

type du mot stock instruction donne (premier oprande) donne (deuxime oprande) donne (rsultat) instruction donne (premier oprande) donne (deuxime oprande) donne (rsultat)

exemple + 3 4 7 12 8 4

Remarques : le microprocesseur doit commencer son excution ladresse 0 de la mmoire, on part donc du principe quon aura donc toujours une instruction ladresse 0 de la mmoire, et quon aura toujours en mmoire une instruction, puis loprande 1, puis loprande 2, puis un octet pour stocker le rsultat

8.2.2

Les instructions

Elles seront (pour linstant) au nombre de deux : code (binaire sur 8 bits) 00000100 00000110 instruction addition soustraction

Ces oprations arithmtiques oprent sur des nombres de 8 bits, reprsentant des entiers non signs. Les instructions tant stockes en RAM, il est ncessaire de les coder. Comme la RAM stocke des mots de 8 bits, a nous donne 256 instructions possibles, ce qui est largement susant pour un processeur basique... Le code choisi ci-dessus pour laddition et la soustraction est parfaitement arbitraire : il correspond celui qui sera implment en TP.

8.2.3

Fonctionnement de lautomate

Vu lorganisation de la RAM qui a t choisie, le fonctionnement de lautomate est simple : chaque coup dhorloge, il va chercher successivement une instruction, puis le premier oprande, puis le deuxime oprande, calcule le rsultat et le stocke. Puis il recommence ladresse suivante. En dtail : 1. Premier coup dhorloge : le microprocesseur prsente ladresse 0 la RAM. La RAM lui prsente donc sur son bus de sortie le contenu de ladresse 0, qui est la premire instruction. 2. Deuxime coup dhorloge : le microprocesseur incrmente ladresse quil prsente la RAM (1). La RAM lui prsente donc sur son bus de sortie le contenu de ladresse 1, qui est le premier oprande. 3. Troisime coup dhorloge : le microprocesseur incrmente ladresse quil prsente la RAM (2). La RAM lui prsente donc sur son bus de sortie le contenu de ladresse 2, qui est la deuxime oprande. A ce moment l, le microprocesseur dispose de toutes donnes ncessaire au calcul : linstruction, et les deux oprandes. Il peut donc calculer le rsultat.

122

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

4. Quatrime coup dhorloge : le microprocesseur incrmente ladresse quil prsente la RAM (3). Paralllement, il prsente sur le bus de donne en entre de la RAM le rsultat quil vient de calculer. Paralllement, il passe la ligne WRITE de la RAM ltat haut, pour dire la mmoire quil dsire eectuer une criture. Le rsultat du calcul est donc ce moment l crit ladresse 3 de la mmoire. 5. Cinquime coup dhorloge : le microprocesseur incrmente ladresse quil prsente la RAM (4). La RAM lui prsente donc sur son bus de sortie le contenu de ladresse 4, qui est la deuxime instruction. 6. etc... Question 1 : concevoir larchitecture de cet automate. On ne demande pas une reprsentation de toutes les portes logique de lautomate, mais juste une reprsentation de haut niveau : vous disposez de registres, de boites combinatoires dont vous ne donnerez que les quations, de multiplexeurs, de compteurs, etc. Rponse 1 : elle se trouve en section 8.7 page 126

8.3
8.3.1

tape 2 : automate avec accumulateur


Chanage des oprations

Larchitecture actuelle ne permet pas de chaner les calculs (exemple : 3 + 4 + 5). Pour pouvoir le faire, il y a plusieurs possibilits. . . Question 2 : lesquelles ? Rponse 2 : elle se trouve en section 8.8 page 130

8.3.2

Laccumulateur

Nous allons doter notre processeur dun registre interne sur 8 bits, que nous appellerons accumulateur. Toutes les oprations arithmtiques deux oprandes seectueront entre laccumulateur et une donne en RAM. Plus prcisment : pour eectuer 3 + 4 et stocker le rsultat en RAM, le processeur eectuera les instructions suivantes : 1. chargement de 3 dans laccumulateur 2. addition de laccumulateur avec un oprande en RAM (4) 3. stockage du contenu de laccumulateur en RAM Pour eectuer 3 + 4 + 5 : 1. chargement de 3 dans laccumulateur 2. addition de laccumulateur avec un oprande en RAM (4) 3. addition de laccumulateur avec un oprande en RAM (5) 4. stockage du contenu de laccumulateur en RAM On ajoute donc deux instructions notre processeur : load : chargement de laccumulateur partir de la RAM store : stockage du contenu de laccumulateur dans la RAM Paralllement, les instructions daddition et de soustraction nont plus besoin que dun seul oprande - le deuxime oprande est dans laccumulateur. De plus, tant quon y est, nous allons ajouter trois instructions de manipulation de bits : AND, OR et XOR (cf. le tableau 8.1 page ci-contre), qui comme laddition, oprent sur le contenu de laccumulateur et un oprande en RAM. Le nouveau jeu dinstruction devient donc :

8.4. TAPE 3 : AUTOMATE AVEC ACCUMULATEUR ET INDIRECTION

123

code (binaire sur 8 bits) 00000001

instruction XOR

eet Eectue un XOR bit bit entre le contenu de laccumulateur et une donne en RAM ; le rsultat est stock dans laccumulateur Eectue un ET bit bit entre le contenu de laccumulateur et une donne en RAM ; le rsultat est stock dans laccumulateur Eectue un OU bit bit entre le contenu de laccumulateur et une donne en RAM ; le rsultat est stock dans laccumulateur Additionne le contenu de laccumulateur une donne en RAM ; le rsultat est stock dans laccumulateur Soustrait du contenu de laccumulateur une donne en RAM ; le rsultat est stock dans laccumulateur Charge dans laccumulateur une donne en RAM Stocke le contenu de laccumulateur en RAM

00000010

AND

00000011

OR

00000100

addition

00000110 00001010 00001011

soustraction load store

Tab. 8.1: Nouveau jeu dinstructions

Question 3 : quel est limpact de ces spcications sur la faon de stocker le programme en RAM ? Question 4 : concevoir la nouvelle architecture du processeur. Quels sont les avantages en terme de vitesse par rapport larchitecture prcdente ? Rponses 3 et 4 : elles se trouvent en section 8.9 page 130

8.4
8.4.1

tape 3 : automate avec accumulateur et indirection


Indirection

Imaginez quon souhaite sparer le code des donnes, pour : faire tourner un mme code sur des donnes direntes (sans le dupliquer pour chaque set de donne...) faire tourner dirents codes sur des mmes donnes (sans dupliquer les sets de donnes...) faire tourner un code sur des donnes qui ne sont pas connues avant lexcution du programme (du genre, le dbut du programme demande lutilisateur dentrer des valeurs...) Pour le moment, notre processeur ne sait pas faire : on doit connatre les donnes au moment du pr-chargement de la RAM avec le code... Il faudrait disposer dinstructions de manipulation du contenu de la RAM des endroits arbitraires (on ne modierait que des donnes, hein, pas le code...) Cela permettrait daller modier les zones o se trouvent les oprandes. Mais cest peut-tre un peu compliqu davoir modier plein de zones parses. Pour tre plus propre, on pourrait sparer le code des donnes. On aurait, en RAM, une zone avec les instructions et une zone avec les donnes. Il surait juste daller modier la zone des donnes, et dexcuter le code gnrique qui saurait, pour chaque instruction, o trouver les bons oprandes. Pour cela, on modie (toutes) les instructions de la faon suivante : au lieu davoir en RAM deux octets instruction - oprande, on aura plutt instruction - adresse de loprande. Par exemple, pour eectuer 3 + 4, 3 1 on pourra voir une organisation du genre (voir tableau 8.2 page suivante :

124

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

adresse 0 1 2 3 4 5 6 7 8 9 10 11 ... 100 101 102 103 104 ...

type du mot stock instruction adresse de loprande instruction adresse de loprande instruction adresse de loprande instruction adresse de loprande instruction adresse de loprande instruction adresse de loprande ... donne donne donne donne donne ...

exemple load 100 + 101 store 103 load 100 102 store 104 ... 3 4 1 X X ...

zone

zone de code

zone de donnes

Tab. 8.2: Organisation de la mmoire, avant excution du programme

Aprs lexcution du code, on aura ceci en RAM (voir tableau 8.3 page suivante : Remarque : dhabitude on spare mme la zone de donnes en deux, celles qui sont connues lcriture du programme, et les autres (celles qui sont modies par le programme)... Question 5 : proposer une modication de lautomate pour que les instructions travaillent avec des adresses doprandes... Rponse 5 : elle se trouve en section 8.10 page 133

8.5

tape 4 : processeur RISC

Larchitecture actuelle ne sait eectuer que des calculs linaires (suite xe dinstructions), sur des donnes potentiellement inconnues (mais dont ladressage de stockage est connue). Nous allons maintenant lui ajouter des instructions de saut conditionnels (et, tant quon y est, inconditionnels).

8.5.1

Flags

Pour cela, chaque opration (logique ou arithmtique) va positionner deux signaux devant tre mmoriss pour linstruction suivante, qui ne doivent tre modis que si on modie laccumulateur : C (comme carry) : mis 1 si lopration courante est une opration arithmtique et donne lieu une retenue, mis 0 si lopration courante est une opration arithmtique et ne donne pas lieu une retenue, mis 0 si on fait un load

8.5. TAPE 4 : PROCESSEUR RISC

125

adresse 0 1 2 3 4 5 6 7 8 9 10 11 ... 100 101 102 103 104 ...

type du mot stock instruction adresse de loprande instruction adresse de loprande instruction adresse de loprande instruction adresse de loprande instruction adresse de loprande instruction adresse de loprande ... donne donne donne donne donne ...

exemple load 100 + 101 store 103 load 100 102 store 104 ... 3 4 1 7 2 ...

zone

zone de code

zone de donnes

Tab. 8.3: Organisation de la mmoire, aprs excution du programme

Z (comme zro) : mis 1 si on charge 0 dans laccumulateur mis 0 dans tous les autres cas. Question 6 : les implmenter, et rajouter deux oprations ADDC et SUBC, prenant en compte la retenue C de lopration prcdente (pour implmenter des additions / soustractions sur des grands nombres par exemple). Rponse 6 : elle se trouve en section 8.11 page 134

8.5.2

Sauts

Pour implmenter les sauts, on dnit trois instructions supplmentaires : JMP : saut inconditionnel. Lexcution de cette instruction fait sauter lexcution du programme directement une adresse donne (passe comme oprande). JNC : saut si C est nul. Idem JMP, mais seulement si C est nul. Sinon, quivalent NOP (on continue ladresse suivante) JNZ : saut si Z est nul. Idem JMP, mais seulement si Z est nul. Sinon, quivalent NOP (on continue ladresse suivante) Question 7 : modier larchitecture du processeur pour implmenter les sauts.

126

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

Rponse 7 : elle se trouve en section 8.12 page 134

Tant quon y est, pour disposer de pauses, on dnit linstruction NOP, qui ne fait rien. Question 8 : comment limplmenter de faon simple ? Rponse 8 : elle se trouve en section 8.13 page 136 On ajoute aussi deux instructions, de rotation de bits (vers la droite ou vers la gauche) : ROL : ACC[7 :0] devient ACC[6 :0], ACC[7] ROR : ACC[7 :0] devient ACC[0], ACC[7 :1] De plus, pour tester ce processeur lors du TP, on ajoute un port de sortie : cest un ensemble de broches dont on veut pouvoir piloter ltat (passer certaines dentre elles ltat haut ou bas). Pour nous, il sagit de piloter un buzzer, donc une seule sortie sura. Le jeu dinstruction devient donc (tableau 8.4 page ci-contre) : Remarques : AD est le deuxime octet (en RAM) de linstruction (AD) est la valeur en RAM stocke ladresse AD Question 9 : nir le processeur. . . Rponse 9 : elle se trouve en section 8.14 page 136

8.6

tape 5 : optimisations

Question : Certaines oprations peuvent sexcuter en moins de cycles. Lesquelles, en combien de cycles ? Modier le processeur de faon optimiser son temps de fonctionnement. Question : partant du principe que certaines oprations nont pas besoin doprande (NOP, ROT, ROR), pourquoi ne pas rduire la taille du code en RAM ? Question : on veut non seulement augmenter le nombre de sorties, disons 16, mais aussi pouvoir utiliser certaines dentre elles non pas comme des sorties mais comme des entres. Et ce, de faon dynamique : au cours du programme, une broche peut devenir un sortie, puis une entre, puis une sortie etc. Comment limplmenter ? Question : comment modier le processeur pour supporter une taille mmoire de 161024 mots (10 bits) ?

8.7

Rponse 1

La premire rponse est trs dtaille. Les autre rponses seront plus succinctes.

8.7.1

Les adresses

Pour eectuer un calcul, lautomate doit disposer de trois informations : linstruction (lopration) loprande 1 loprande 2 Plus que a, il doit en disposer en mme temps. Mais elles sont stockes en RAM, et ne peuvent tre lues que lune aprs lautre. Il faudra donc prvoir un moyen de stockage de ces trois informations lintrieur du processeur pour pouvoir eectuer le calcul. Vu lorganisation de la mmoire, il semble logique de lire ces trois informations de la faon la plus simple possible, cest dire :

8.7. RPONSE 1

127

code (binaire sur 8 bits) 00000000 00000001

instruction NOP XOR

eet

explication ne fait rien !

Acc = Acc XOR (AD)

eectue un XOR bit bit entre le contenu de laccumulateur et une donne en RAM, le rsultat est stock dans laccumulateur eectue un ET bit bit entre le contenu de laccumulateur et une donne en RAM, le rsultat est stock dans laccumulateur eectue un OU bit bit entre le contenu de laccumulateur et une donne en RAM, le rsultat est stock dans laccumulateur additionne le contenu de laccumulateur une donne en RAM, le rsultat est stock dans laccumulateur additionne le contenu de laccumulateur une donne en RAM et la carry C, le rsultat est stock dans laccumulateur soustrait du contenu de laccumulateur une donne en RAM, le rsultat est stock dans laccumulateur soustrait du contenu de laccumulateur une donne en RAM et la carry C, le rsultat est stock dans laccumulateur eectue une rotation vers la gauche des bits de laccumulateur eectue une rotation vers la droite des bits de laccumulateur charge dans laccumulateur une donne en RAM stocke le contenu de laccumulateur en RAM Sort sur la broche BZ le bit de poids faible de la donne en RAM, stocke ladresse oprande saute ladresse oprande saute ladresse oprande si C est nul, ne fait rien sinon saute ladresse oprande si Z est nul, ne Afait rien sinon

00000010

AND

Acc = Acc AND (AD)

00000011

OR

Acc = Acc OR (AD)

00000100

ADD

Acc = Acc + (AD)

00000101

ADC

Acc = Acc + (AD) + C

00000110

SUB

Acc = Acc - (AD)

00000111

SBC

Acc = Acc - (AD) - C

00001000 00001001 00001010 00001011 00001100

ROL ROR LDA STA OUT

Acc = {Acc[6 :0], Acc[7]} Acc = {Acc[0], Acc[7 :1] } Acc = (AD) (AD) = Acc BZ = (AD)[0]

00001101 00001110 00001111

JMP JNC JNZ

PC = AD PC = AD si C=0 PC = AD si Z=0

Tab. 8.4: Nouveau jeu dinstructions

tout dabord linstruction, puis loprande 1,

128

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

puis loprande 2, ce qui correspond un parcours linaire de la mmoire. De plus, le stockage du rsultat seectue dans la RAM ladresse suivant celle de loprande 2. On peut donc doter lautomate dun compteur quon appellera compteur dadresse ou PC (Program Counter), qui donnera ladresse de la RAM laquelle on est en train daccder (que ce soit en lecture ou en criture). Ce compteur sera incrment chaque coup dhorloge, et pilotera directement le bus dadresse de la RAM.

8.7.2

Les donnes

Vu ce qui vient dtre dit, lautomate a un fonctionnement linaire - lordre des actions eectues est toujours le mme : 1. chercher une instruction 2. chercher le premier oprande 3. chercher la deuxime oprande 4. stocker le rsultat du calcul On peut donc le concevoir comme une machine quatre tats, dont le fonctionnement est circulaire : tat 1 tat 2 tat 3 tat 4 tat 1 tat 2 . . . tat 1 : le compteur est en train de prsenter la RAM une adresse correspondant une instruction. Le processeur rcupre sur le bus Q[7 :0] la contenu de la RAM cette adresse, cest dire linstruction eectuer. il faut stocker cette instruction pour plus tard (quand on eectuera lopration demande). On ajoute donc lautomate un registre sur 8 bits disposant dun enable (8 bascules DFFE en parallle). Lentre de ce registre est relie au bus Q[7 :0] (sortie de la RAM) Le signal denable de ce registre est mis ltat haut seulement pendant ltat 1 > stockage de linstruction dans le registre tat 2 : le compteur est en train de prsenter la RAM une adresse correspondant aux premier oprande. le processeur rcupre sur le bus Q[7 :0] la contenu de la RAM cette adresse, cest dire loprande 1. . . il faut stocker cet oprande, donc re-belotte, on ajoute un registre 8 bits avec enable, reli la sortie de la RAM (Q[7 :0]). lenable est mis ltat haut seulement pendant ltat 2. tat 3 : le compteur est en train de prsenter la RAM une adresse correspondant aux deuxime oprande. le processeur rcupre sur le bus Q[7 :0] la contenu de la RAM cette adresse, cest dire loprande 2. . . comme dhabitude on stocke cet oprande dans un registre 8 bits, dont lenable est pilot ltat haut seulement pendant ce cycle-ci. Remarque : on peut se dire que ce nest pas la peine de stocker cet oprande, car on dispose ds prsent de toutes les donnes pour eectuer le calcul : linstruction dans un registre, loprande dans un autre registre, et le deuxime oprande sur le bus Q[7 :0]. Mais il faudrait alors stocker le rsultat dans un registre 8 bits, car on ne fait son stockage en RAM quau prochain cycle. . . Alors quici, le calcul et le stockage seront faits en bloc au prochain cycle (donc pas besoin de stocker le rsultat dans un registre). Au total, dans les deux approches, le nombre de registres est le mme, et ce ne sont que des considrations de chemin critique qui permettront de dterminer la meilleure des deux mthodes. . .

8.7. RPONSE 1

129

tat 4 : le compteur est en train de prsenter la RAM une adresse correspondant au rsultat stocker. lautomate dispose dans ses trois registres de toutes les donnes pour eectuer le calcul. Il sut dajouter une fonction combinatoire pure, pour produire le rsultat. La sortie de cette fonction combinatoire sera relie au bus dentre de la RAM. Lquation de cette fonction sera du genre : RES[7:0] = (si INSTRUCTION="00000100" : OP_1[7:0] + OP_2[7:0], sinon OP_1[7:0] - OP_2[7:0]) Une telle fonction combinatoire a t ralise au TP n 2. . . (ALU) Paralllement, lautomate doit piloter le signal WRITE de la RAM ltat haut, pour dire la RAM de stocker ladresse courante la sortie de la fonction de calcul.

On obtient donc larchitecture suivante pour notre processeur : En rouge : le compteur dadresse courante En bleu : les trois registres 8 bits, les signaux load sont les enable En noir rond : la fonction combinatoire de calcul proprement dite (ALU) En noir carr : la machine tat qui squence tout a. . . La machine tats (CTRL) est prsente en gure 8.4, et son graphe dtats en gure 8.5

Fig. 8.4: Architecture de la premire version

Fig. 8.5: Graphe dtats de la premire version

Elle a quatre tat, parcourus de faon linaire, sans condition sur les transitions. Elle dispose de 4 sorties, chacune dentre elles ltat haut dans un seul tat de la machine. Un codage one-hot est donc trs appropri.

130

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

Limplmentation en registre a dj t vue (registres les uns la suite des autres), et ne sera pas dtaille ici. Les sorties des registres donnent directement les sorties de la machine tat. . .

8.8

Rponse 2

Plusieurs possibilits, leur nombre est limit seulement par votre imagination. Voici quelques exemples : Garder le rsultat de chaque opration en mmoire, et dnir une nouvelle addition qui opre sur un oprande en RAM et celle quon a gard. Linconvnient est quon rajoute une instruction pour chaque type dopration, que cette nouvelle opration, ne ncessitant quun seul oprande en RAM pourra tre eectue en 3 cycles au lieu de 4, et que a risque de compliquer la machine tat si on veut loptimiser (certaines opration en 3 cycles, dautres en 4). . . Dnir des oprations de manipulation de la RAM, et grce elles recopier le rsultat en RAM lendroit dune des deux oprandes de la prochaine instruction. Cest bien compliqu. . . Dnir une nouvelle addition qui opre sur un oprande lendroit habituel en RAM, et sur un autre oprande situ ladresse (instruction - 1). . . Utiliser la premire solution, mais pour simplier les choses (et par cohrence) supprimer les oprations sur deux oprandes en RAM. Toutes les oprations ( deux oprandes) se feront entre un oprande en RAM, et un gard dans un registre interne au processeur. Et pour rendre cela possible, on dnit deux nouvelles instructions : chargement de ce registre partir dune donne en RAM, et stockage du contenu de ce registre en RAM. Cest lobjet de la suite !

8.9

Rponses 3 et 4

Chaque opration ne ncessite plus quun seul oprande : pour le load, cest normal ! pour le store, aucun oprande. Par contre, en RAM, la suite de linstruction store, il doit y avoir un emplacement libre pour stocker le contenu de laccumulateur pour les opration deux oprandes, lun est en RAM, lautre est interne lautomate (cest laccumulateur) Le contenu de la RAM se prsentera donc maintenant ainsi : adresse 0 1 2 3 4 5 6 7 type du mot stock instruction donne instruction donne instruction donne instruction donne exemple load 3 + 4 1 store X aprs lexcution du programme cet emplacement en RAM contiendra 6 laccumulateur contient maintenant 6 laccumulateur contient maintenant 7 laccumulateur contient maintenant 3 eet

On remarque donc quune adresse sur deux contient une instruction, une sur deux contient une donne (soit oprande, soit stockage du contenu de laccumulateur). . .

8.9. RPONSES 3 ET 4

131

8.9.1

Les adresses

Comme prcdemment, les adresses de la RAM sont parcourues de faon linaire. On garde donc le compteur dadresse incrment chaque cycle dhorloge.

8.9.2

Les donnes

Pour eectuer les calculs, le processeur na plus besoin de connatre que deux informations : linstruction et loprande. On garde donc le registre dinstruction (8 bits) qui stocke linstruction eectuer pendant quon va chercher loprande en RAM. Par contre, auparavant on parcourait 4 emplacements en RAM pour chaque instructions, do une machine tats 4 cycles. Maintenant on ne parcourt plus que 2 emplacements en RAM, donc une machine tat 2 cycles devrait convenir. . . A chaque instruction, le processeur eectuera ceci : Pour une opration normale : 1. aller chercher linstruction en RAM, la stocker dans le registre dinstruction 2. aller lire loprande en RAM, eectuer le calcul et stocker le rsultat dans laccumulateur (opration) Pour un load : 1. aller chercher linstruction en RAM, la stocker dans le registre dinstruction 2. aller lire loprande en RAM, et le stocker dans laccumulateur (opration) Pour un store : 1. aller chercher linstruction en RAM, la stocker dans le registre dinstruction 2. crire le contenu de laccumulateur en RAM ladresse courante Chaque instruction est donc traite de faon trs similaire : 1. un cycle de rcupration de linstruction (dans lequel lenable du registre dinstruction est mis ltat haut). 2. un cycle de traitement de linstruction

8.9.3

Laccumulateur

Lors du second cycle, laccumulateur peut subir trois traitements dirents : pour une opration (+, , AN D, XOR, OR), laccumulateur se voit modi et charg avec le rsultat de lopration pour un load, laccumulateur est modi aussi, et charg avec la donne sortant de la RAM pour un store par contre, laccumulateur nest pas modi. . . En entre de laccumulateur on mettra donc un multiplexeur qui prsentera soit le rsultat de lopration en cours (si on excute une opration standard), soit le contenu de la RAM (si on excute un load). De plus, dans ces deux cas, le signal enable de laccumulateur sera mis ltat haut (pour autoriser sa modication) dans ltat 2 (quand on accde la partie donne de la RAM) Dans le cas dun store, on laisse lenable de laccumulateur ltat bas pour ne pas le modier. En dautre termes, lenable de laccumulateur a pour quation : LOAD_ACC = (Instruction <> STORE) ET (Etat = tat 2) Le pilotage du multiplexeur en entre de laccumulateur aura pour quation quelque chose du genre : ACC = (si Instruction == LOAD alors Q[7:0], si Instruction == opration alors ALU(ACC, Q[7:0]), si Instruction == STORE alors peu importe...). Ce qui se simplie en ACC = (si Instruction == LOAD alors Q[7:0], sinon ALU(ACC, Q[7:0])) la sortie de laccumulateur est branche en mme temps sur le bus dentre de la RAM (pour le cas ou on fait un store) sur lALU (qui implmente, selon linstruction eectuer, laddition, la soustraction, le XOR, etc. . . ) Enn la gnration du signal dcriture en RAM est simple : il est mis ltat haut quand linstruction est un STORE, et quon est dans ltat 2. Le contenu de laccumulateur est prsent sur lentre de la RAM (cf. ci dessus), ladresse courante est sur le bus dadresse de la RAM, la RAM est donc mise jour avec la bonne valeur. . .

132

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

8.9.4

Bilan

On a donc les lments suivants : compteur dadresse (PC) registre dinstruction accumulateur avec multiplexeur en entre une machine tat gnrant les signaux LOAD_I, LOAD_ACC, W RIT E et le contrle du multiplexeur Remarque : les signaux gnrs par la machine tat ne dpendent pas seulement de ltat courant, mais aussi de linstruction excuter. Cest donc une machine de Mealy. . . Larchitecture globale est donc celle reprsente sur la gure 8.6, et son graphe dtats en gure 8.7

Fig. 8.6: Architecture de la deuxime version

Fig. 8.7: Graphe dtats de la deuxime version

avec : SEL_ACC = (I[7:0] == LOAD) LOAD_ACC = (I[7:0] <> STORE) ET (Etat = tat 2) WRITE = (I[7:0] == STORE) ET (Etat = tat 2)

8.9.5

Performances

Pour une opration : avant : 4 cycles maintenant : 6 cycles (2 + 2 + 2)

8.10. RPONSE 5

133

Pour deux oprations chanes : avant : 8 cycles (4 + 4. Enn, plus exactement, on ne savait pas faire. . . ) maintenant : 8 cycles (2 + 2 + 2 + 2) Pour trois oprations chanes : avant : 12 cycles (4 + 4 + 4. Mme remarque) maintenant : 10 cycles Bref, pour n oprations : avant : 4n cycles maintenant : 2n+4 cycles si peut les enchaner, 3n sinon. On a donc tout intrt enchaner les calculs. Ce qui est trs souvent le cas en pratique. . .

8.10

Rponse 5

Lautomate doit maintenant pour chaque instruction aller chercher linstruction (la stocker dans le registre dinstruction) aller chercher ladresse de loprande (le stocker, dans un registre dit "dadresse") aller chercher loprande proprement dit, en lisant la RAM ladresse stocke au cycle prcdent. On a donc une machine qui possde un tat de plus (celui o on va lire en RAM loprande proprement dit).

8.10.1

Les adresses

Maintenant, on naccde plus la RAM de faon linaire. Dans lexemple de programme donn, les adresses prsentes la RAM seront celles-ci : 1. 0 2. 1 3. 100 4. 2 5. 3 6. 101 7. 4 8. 5 9. 102 10. . . . Les adresses de code sont globalement linaires (0, 1, 2, 3, . . . ), celles des donnes ne le sont pas (elles sont arbitraires). Il faut donc prsenter sur le bus dadresse RAM soit le compteur dadresse pendant les deux premiers cycles (et on lincrmente chaque fois) soit le contenu du registre dadresse (adresse de loprande aller chercher) pendant le troisime cycle (et ici le compteur dadresse ne doit pas tre incrment) donc : multiplexeur. . . De plus, le compteur dadresse doit tre pilot par un signal INCR_PC : il nest incrment que si INCR_PCest ltat haut. Le registre dadresse est charg au cycle numro 2. Son contenu nest utile quau cycle numro 3. Il nest donc pas ncessaire de le piloter avec un enable. . . Il peut rester tout le temps actif : son contenu sera indtermin pendant les cycles 1 et 2, mais ce nest pas grave, il nest pas utilis pendant ces cycles l. . . Larchitecture globale est donc celle reprsente sur la gure 8.8 page suivante, et son graphe dtats en gure 8.14 page 137 Cest l aussi une machine de Mealy, et les quations sont : SEL_ACC = (I[7:0] == LOAD) LOAD_ACC = (I[7:0] <> STORE) ET (Etat = Ex) WRITE = (I[7:0] == STORE) ET (Etat = Ex)

134

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

Fig. 8.8: Architecture de la troisime version

Fig. 8.9: Graphe dtats de la troisime version

8.11
8.11.1

Rponse 6
Flags

La gnration de C et Z est combinatoire et peut tre eectue par lALU. Il sut juste de rajouter deux registres 1 bits pour stocker ces deux signaux, pilots par le mme enable que laccumulateur (LOAD_ACC, quon appellera maintenant LOAD_AZC). On considrera donc que Z et C font partie de laccumulateur (qui devient donc un registre sur 10 bits : 8 de donne, 1 pour Z, un pour C). Remarque : le fonctionnement de Z et C ici nest pas tout fait standard !..

8.11.2

ADDC / SUBC

Il sut de faire entrer C sur la retenue entrante de laddition ou de la soustraction. . .

8.12

Rponse 7

Pour implmenter les sauts, il sut de se donner la possibilit de remplacer le contenu de PC par la valeur lue en RAM. PC devient donc un peu plus complexe. Cest globalement un compteur, mais il est incrment si son signal de commande INCR_PC= 1 est charg avec une nouvelle valeur si un signal de chargement LOAD_PC= 1 si LOAD_PCet INCR_PCvalent 1, cest LOAD_PCqui prime...

8.12. RPONSE 7

135

Fig. 8.10: Implmentation du PC

Ceci peut tre implment comme sur la gure 8.10. Pour simplier les schmas, lorsque nous parlerons de PC, ce sera de ce bloc-ci. Il faut maintenant gnrer le signal LOAD_PC. Ce signal sera aussi gnr par la machine tats CTRL. Le PC doit tre remplac lorsquon excute un saut, et que le condition du saut est vrie. La nouvelle valeur est prsente sur le bus de sortie de la RAM pendant le cycle 2. On aura donc une quation du style : LOAD_PC = si (I[7:0] == JMP ou I[7:0] == JNC et C == 0 ou I[7:0] == JNZ et Z == 0) et (tat = etat 2), alors 1, sinon 0. Larchitecture globale est donc celle reprsente sur la gure 8.11, avec une machine tat CTRL peine modie (mme graphe dtat) reprsente gure 8.14 page 137.

Fig. 8.11: Architecture de la quatrime version

Fig. 8.12: Graphe dtats de la quatrime version

SEL_ACC = (I[7:0] == LOAD) LOAD_ACC = (I[7:0] <> (STORE ou saut)) ET (Etat = Ex) WRITE = (I[7:0] == STORE) ET (Etat = Ex)

136

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

LOAD_PC = si (I[7:0] == JMP ou I[7:0] == JNC et C == 0 ou I[7:0] == JNZ et Z == 0) et (tat = Ad), alors 1, sinon 0

8.13

Rponse 8

Linstruction NOP ne fait rien. Elle na pas besoin doprande, et pourrait donc tre stocke sur un seul octet (au lieu de deux pour les autres). Mais cela compliquerait la gestion de la machine tats pour gnrer les signaux LOAD_PCet INCR_PC. De plus, a pourrait poser dautres problmes (cf. les optimisations). On peut donc accepter de perdre un octet de mmoire, et ne rien changer lorganisation de la mmoire. Linstruction NOP sera accompagne dun oprande qui ne servira a rien... Une instruction sera toujours excute en trois cycles. La seule modication de la machine tat sera lquation suivante : LOAD_ACC = (I[7:0] <> (STORE ou saut ou NOP)) ET (Etat = Ex)

8.14
8.14.1

Rponse 9
ROL / ROR

ces oprations sont combinatoires et seront donc implmentes dans lALU. Remarque : comme le NOP, elles ne ncessitent pas doprande. De mme, pour garder une cohrence (nous optimiserons a plus tard), on garde un codage des instructions sur deux octets. Pour ROR et ROL, le deuxime octet na pas de signication...

8.14.2

Sortie BZ

On ajoute un registre 1 bit, pilot par un signal denable appel LOAD_BZ. lentre de ce registre est le bus de sortie de la RAM sa sortie est connecte la broche de sortie buzzer du processeur... LOAD_BZsera gnr par la machine tat, selon lquation suivante : LOAD_BZ = (I[7:0] == OUT) et (tat = EX). . . Larchitecture globale est donc celle reprsente sur la gure 8.13, avec une machine tat CTRL reprsente gure 8.14 page ci-contre.

Fig. 8.13: Architecture de la version nale

8.14. RPONSE 9

137

Fig. 8.14: Graphe dtats de la version nale

Les quation sont laisses en exercice au lecteur !..

Remarque : le signal SEL_ACC ne sort pas de CTRL sur le schma : il peut tre inclus, avec le multiplexeur quil pilote, dans lALU...

138

CHAPITRE 8. DES MACHINES TATS AUX PROCESSEURS

Deuxime partie

TD

139

Chapitre 9

TD - Fonctions de base
Ce TD traite de la logique combinatoire et comprend les exercices suivants : 1. 9.1 : Simplication algbrique dquations. 2. 9.2 : Simplication dquations par tableau de Karnaugh. 3. 9.5 : Dcodage. 4. 9.6 page 143 : Gnration de fonctions.

9.1

Simplication algbrique

On considre quune quation boolenne est simplie si le nombre dapparition des variables dans lquation est le plus petit possible. 1. En utilisant les proprits et thormes de lalgbre de Boole, simpliez lexpression : S = (a + b + c) ( + d e + f ) + (d + e) a c + a b a

9.2

Simplication par tableau de Karnaugh

La mthode de Karnaugh permet de simplier les fonctions logiques ayant peu de variables, partir de la table de vrit de la fonction. 1. Simpliez les deux fonctions F et G suivantes (cf. Tab. 9.1 page suivante et 9.2 page suivante) aprs avoir transform leur table de vrit en tableau de Karnaugh.

9.3

Fonction F

Les entres sont a, b, c, d, e. Une variable dentre X indique quelle peut tre 0 ou 1.

9.4

Fonction G

Les entres sont a, b, c et d, i indique la valeur de la combinaison (ou minterme) en notation dcimale, le indique que G peut prendre indiremment la valeur 0 ou 1.

9.5

Dcodage

Le dcodeur est un circuit combinatoire lentre duquel est appliqu un code binaire de n bits. Ce circuit possde N sorties (avec N = 2n , en gnral). A chaque valeur du code dentre, il y a une seule sortie ltat haut, toutes les autres sont ltat bas. Les entres dun dcodeur sont 141

142

CHAPITRE 9. TD - FONCTIONS DE BASE

e 0 1 1 1 1 1 1 1 1 1

d X 0 0 0 1 1 1 1 1 1

c X 0 1 1 0 0 0 1 1 1

b X X 0 1 0 0 1 0 0 1

a X X X X 0 1 X 0 1 X

F 0 0 1 0 0 1 1 1 0 0

Tab. 9.1: Table de vrit de la fonction F .

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

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

G 1 1 0 1 1 1 0 0 1 0 1

Tab. 9.2: Table de vrit de la fonction G.

souvent appeles adresses, car elles expriment en binaire le numro dcimal de la sortie active. Les dcodeurs peuvent tre utiliss pour ladressage de mmoires et la gnration de fonctions logiques.

Dcodeur BCD Le BCD ( binary coded decimal ) est un code de 4 bits dont seules les 10 premires combinaisons de 0 9 sont employes. Les combinaisons restantes de 10 15 ne sont jamais utilises. Un dcodeur BCD est donc un dcodeur qui a 4 entres et 10 sorties. 1. Ralisez ce dcodeur en considrant que si lune des 6 combinaisons non autorises est lentre, toutes les sorties sont ltat inactif 0 .

9.6. GNRATION DE FONCTIONS

143

Dcodeur de grande capacit Si le nombre N est trs lev, on peut imaginer raliser le dcodage en cascadant des dcodeurs de tailles moins importantes. 1. Par exemple essayez de concevoir un dcodeur binaire 5 entres / 32 sorties partir de 2 dcodeurs binaires 4 entres / 16 sorties. 2. Quelle doit tre la modication apporter au dcodeur 4 entres / 16 sorties pour crer facilement le dcodeur 5 entres ? 3. Concevez un dcodeur binaire 8 entres / 256 sorties en utilisant le dcodeur 4 entres / 16 sorties prcdemment modi.

9.6

Gnration de fonctions

Un transcodeur ou convertisseur est un circuit combinatoire x entres et y sorties. A chaque code dentre de x bits correspond un code de sortie y bits. Les dcodeurs que nous avons tudis dans lexercice prcdent sont donc des cas particuliers de transcodeurs. On dsire raliser la fonction de transcodage dun code BCD vers un code 2 parmi 5 . Dans le code 2 parmi 5 , il y a toujours deux bits 1 et 3 bits 0 . La table de vrit est indique ci-dessous dans la Tab. 9.3. i indique la valeur de la combinaison (ou minterme) en dcimal, les entres sont a, b, c, d, e, les sorties sont F4 F3 F2 F1 F0 , si i > 9 ltat des sorties est indirent. i 0 1 2 3 4 5 6 7 8 9 d 0 0 0 0 0 0 0 0 1 1 c 0 0 0 0 1 1 1 1 0 0 b 0 0 1 1 0 0 1 1 0 0 a 0 1 0 1 0 1 0 1 0 1 F4 1 0 0 0 0 0 0 1 1 1 F3 1 0 0 0 1 1 1 0 0 0 F2 0 0 1 1 0 0 1 1 0 0 F1 0 1 0 1 0 1 0 0 0 1 F0 0 1 1 0 1 0 0 0 1 0

Tab. 9.3: Table de vrit de la fonction de conversion BCD 2 parmi 5 .

1. Ralisez la fonction laide : (a) Dun dcodeur BCD et quelques portes. (b) De multiplexeurs. Pour cela crivez lquation logique dun multiplexeur 16 entres (et donc 4 entres de slection) et comparez lexpression dune fonction logique quelconque 4 entres.

144

CHAPITRE 9. TD - FONCTIONS DE BASE

Chapitre 10

TD - Oprateurs arithmtiques
Le but de ce TD est dapprofondir la reprsentation en complment 2 (Exercice 10.1), ainsi que larithmtique des nombres binaires (Exercice 10.2 sur laddition, 10.3 sur la soustraction et comparaison, 10.4 page suivante sur la multiplication).

10.1

Reprsentation en complment 2

1. Donner la reprsentation en CA2 des nombres suivants : -8, +8, -30, -52, +15. 2. Soit B un nombre cod en CA2 sur n bits : (bn1 , bn2 , , b1 , b0 ). Comment obtient-on la valeur de B partir de sa reprsentation lorsquil est positif ? lorsquil est ngatif ? 3. Donner la reprsentation en CA2 des nombres +15, -12 : sur 5 bits, sur 7 bits. 4. Dune faon gnrale, comment peut-on tendre la reprsentation dun nombre cod en CA2 sur n bits, une reprsentation sur p bits, avec p plus grand que n ?

10.2

Addition en complment 2

1. Quel est lintervalle de variation dun nombre cod en CA2 sur n bits ? 2. Soient A et B deux nombres cods en CA2 sur n bits et S la somme de ces 2 nombres. Quel est lintervalle de variation de S ? En dduire le nombre de bits ncessaires son codage. 3. Raliser en binaire les additions suivantes : 30 + 8, 30 + (-8), (-30) + 8, (-30) + (-8).

10.3

Soustraction et comparaison

On dsire raliser un oprateur capable deectuer la comparaison de 2 nombres positifs A et B cods sur 4 bits. La sortie S de loprateur vaut 1 si A est strictement infrieur B, 0 sinon : S = 1 si A < B, S = 0 si A > B ou A = B. 1. Proposer une solution laide dun soustracteur. 2. Une autre solution appele comparaison MSB en tte consiste comparer bit bit les nombres A et B en commenant par les bits de poids forts. Lalgorithme utilis est le suivant : S=1 SI (a3 < b3 )

OU ((a3 = b3 ) ET (a2 < b2 )) OU ((a3 = b3 ) ET (a2 = b2 ) ET (a1 < b1 )) OU ((a3 = b3 ) ET (a2 = b2 ) ET (a1 = b1 ) ET (a0 < b0 )) .

145

146

CHAPITRE 10. TD - OPRATEURS ARITHMTIQUES

Construire loprateur lmentaire 2 entres ai et bi dont les sorties Ii (Infrieur) et Ei (gal) vrient : Ii Ii Ei Ei = = 1 si ai < bi , 0 sinon.

= 1 si ai = bi , = 0 sinon.

En utilisant loprateur construit prcdemment, proposer le schma complet du comparateur. Comment peut-on gnraliser simplement ce comparateur n bits ?

10.4

Multiplication

1. Raliser la main lopration : 1001 1100 (9 12). 2. Proposer le schma dun multiplieur de 2 nombres positifs de 4 bits. On dispose pour cela dadditionneurs 4 bits. 3. Comment faut-il modier ce schma pour permettre la multiplication de 2 nombres en complment 2 ?

Chapitre 11

TD - Analyse et synthse en portes logiques


11.1 Introduction

Le TD comprend 4 exercices portant sur lanalyse et la synthse de portes logiques partir de transistors CMOS Exercices 1. 11.2 Analyse dune porte complexe 2. 11.3 page suivante Analyse de portes prsentant des dysfonctionnements 3. 11.4 page suivante Synthse de la fonction majorit 4. 11.5 page 149 Synthse dun additionneur 1 bit

11.2

Analyse dune porte complexe

La gure 11.1 reprsente limplantation (la ralisation) dune fonction logique en utilisant les principes de la logique complmentaire CMOS (rseau de tirage "1" base de transistors PMOS et rseau de tirage "0" base de transistors NMOS).

Fig. 11.1: Porte logique

11.2.1

Analyse de la fonction laide du rseau de transistors P

1. En considrant que Y est 1 uniquement si le rseau P est passant, donnez lexpression de la fonction logique Y en utilisant la structure du rseau de transistors P. 147

148

CHAPITRE 11. TD - ANALYSE ET SYNTHSE EN PORTES LOGIQUES

11.2.2

Analyse de la fonction laide du rseau de transistors N

1. En considrant que Y est O uniquement si le rseau N est passant, donnez lexpression de la fonction logique Y en utilisant la structure du rseau de transistors N. 2. Vriez que les fonctions obtenues laide du rseau P puis du rseau N sont bien identiques.

11.2.3

Limplmentation est elle unique ?

1. Dressez le tableau de Karnaugh de la fonction Y. En simpliant la fonction trouvez une alternative au rseau de transistors P.

11.3

Analyse de portes prsentant des dysfonctionnements

Une seule de ces portes ralise correctement une fonction logique.

Fig. 11.2: Trois portes...

11.3.1

Quelle est la "bonne" ?

1. En examinant la dualit des rseaux N et P (une structure de transistors srie P correspond une structure parallle N et vice versa), dduisez la bonne porte. 2. Quelle est lexpression de sa fonction logique ?

11.3.2

Causes de dysfonctionnements

1. Trouvez des combinaisons des entres introduisant un problme pour les 2 portes dfectueuses.

11.4

Synthse de la fonction Majorit

Soit le complment de la fonction Majorit : M aj(A, B, C) = A B + B C + A C

11.4.1

Construction CMOS de la fonction Majorit complmente

1. En utilisant la dualit des rseaux P et N, tablissez le schma CMOS de la fonction Majorit complmente. Trouvez une structure minimisant le nombre de transistors.

11.4.2

Optimisation de la fonction Majorit complmente

1. Dmontrer la relation suivante :M aj(A, B, C) = M aj(A, B, C) 2. Dduisez une structure prsentant une symtrie sur les rseaux P et N. Quels sont les intrts dune telle structure ?

11.5. SYNTHSE DUN ADDITIONNEUR 1 BIT

149

11.5

Synthse dun Additionneur 1 bit

Cet exercice traite de ladditionneur 1 bit qui est la cellule de base de ladditionneur propagation de retenue.

Fig. 11.3: Table de vrit de lAdditionneur Complet 1 bit

11.5.1

Construction de la retenue Ri+1 en CMOS

1. Proposez une structure de porte CMOS pour raliser la fonction Ri+1

11.5.2

Construction de la sortie Si en CMOS

1. Vrier que Si peut sexprimer sous la forme : Si = Ai Bi Ri + Ri+1 (Ai + Bi + Ri ) = Ai B i Ri 2. En utilisant le mme raisonnement que pour la fonction Majorit (exercice 11.4.2 page prcdente) trouvez une structure optimale de la fonction Si

11.5.3

valuation de laire de la surface dun additionneur

1. Sachant quon utilise une technologie CMOS de densit 1 500 000tr mm2 , combien pouvons nous intgrer dadditionneurs 32 bits dans 1cm2 ?

150

CHAPITRE 11. TD - ANALYSE ET SYNTHSE EN PORTES LOGIQUES

Chapitre 12

TD - Performances de la logique complmentaire CMOS


12.1 Objectifs du TD

Ce TD est loccasion dune premire mise en pratique des concepts de temps de propagation de portes logiques. Les dirents exercices visent mettre en vidence : lusage de bibliothques prcaractrises ; le lien entre la structure des portes CMOS et leurs performances ; le lien entre loptimisation de fonctions boolennes et leurs performances.

12.2

Temps de propagation dune fonction dcodeur


LM 20 = A0 A1 A2 A3 A4 A5

Nous dsirons raliser la fonction LM 20 dont lquation logique est la suivante :

Les eets parasites des fonctions logiques connectes en aval de la fonction LM 20 sont modliss par une capacit dutilisation Cu connecte en sortie de la fonction. La valeur de Cu nest pas connue. Un concepteur, utilisant les cellules dune bibliothque prcaractrise donne en annexe 12.5 page 153, nous propose trois implantations illustres dans la gure 12.1 (on suppose disponibles les entres et leurs complmentaires) :

Fig. 12.1: Trois implantations alternatives de la fonction LM20

Question 1 : Vrier que les schmas de la gure 12.1 reprsentent tous la fonction LM 20 et comparer ces solutions en terme de nombre de transistors utiliss. Question 2 : En supposant que la sortie de la fonction LM 20 charge une capacit dutilisation gale un multiple entier de la capacit de rfrence (Cu = N Cr ) dterminer pour chacune des solutions lexpression du temps de propagation de la fonction LM 20 en fonction de N et de tpr . Question 3 : Dterminer en fonction de N la solution donnant le temps de propagation le plus faible. Pouvait-on prvoir ces rsultats ? (expliquer). 151

152 CHAPITRE 12. TD - PERFORMANCES DE LA LOGIQUE COMPLMENTAIRE CMOS

12.3

Amlioration du dcodeur par amplication logique

Nous avons maintenant x la valeur de la capacit dutilisation Cu de la fonction LM 20 Cu = 175 Cr . Nous dcidons de reprendre la solution (3) modie suivant le schma de la gure 12.2, o INV 1 et INV 2 sont deux inverseurs de la bibliothque.

Fig. 12.2: Solution (3) avec amplication logique

Question 4 : Dterminer le temps de propagation de la fonction dans cette nouvelle conguration, et comparer de nouveau la solution (1). Nous dcidons de nous aranchir des contraintes de la bibliothque et dcidons de remplacer linverseur INV 2 par un inverseur dont nous dnissons nous mme les dimensions. Pour cela nous multiplions les largeurs W des deux transistors NMOS et PMOS de linverseur de la bibliothque par un mme coecient . Question 5 : Dterminer, en fonction des caractristiques de linverseur de la bibliothque et du coecient , la valeur des paramtres CeINV , tp0INV et dtpINV de linverseur INV 2 . Question 6 : Dterminer de nouveau le temps de propagation de la fonction LM 20 en fonction du coecient . Question 7 : Montrer quil existe une valeur de minimisant le temps de propagation de la fonction LM 20 . Calculer cette valeur et dterminer le nouveau temps de propagation. La valeur de Cu est en fait la capacit rsultante de 25 entres de diverses portes connectes en sortie de la fonction LM 20 . Question 8 : Imaginer une solution donnant le mme rsultat que prcdemment mais vitant de crer une nouvelle cellule (nous ne sommes pas maitres de la bibliothque...). Dans la pratique, les concepteurs ne cherchent pas minimiser les temps de propagation des fonctions combinatoires, mais plutt limiter ceux-ci une valeur juge acceptable pour le fonctionnement correct du circuit. Question 9 :Montrer que pour tout choix de temps de propagation suprieur au temps minimum, il existe une valeur de minimisant laire du circuit ralisant la fonction LM 20 .

12.4

Gnralisation du principe de lamplication logique

Le problme prcdent peut tre gnralis de la faon suivante : Considrant une capacit Cu devant tre charge (ou dcharge) par de la logique CMOS, existe-t-il une structure de chane dinverseurs optimale minimisant le temps de propagation ?. La chane totale considre (voir gure 12.3 page ci-contre) sera compose de N inverseurs INV i dont les largeurs des transistors sont multiplies par des coecients i par rapport linverseur de la bibliothque. Le coecient 1 est g la valeur 1. Question 10 : Etablir lexpression du temps de propagation de la chane en fonction du nombre N dinverseurs et des coecients i . Question 11 : Montrer que les coecients i doivent suivre une progression gomtrique pour minimiser le temps de propagation de la chane. En dduire une nouvelle expression du temps de propagation en fonction dun coecient unique et de N. Question 12 :Montrer quil existe une valeur de qui minimise le temps de propagation de la chane. Exprimer cette valeur en fonction de Cu Ce et N. En dduire une expression du temps de propagation minimal ne dpendant plus que de Cu , CeINV et N.

12.5. ANNEXE : BIBLIOTHQUE DE CELLULES PRCARACTRISES

153

Fig. 12.3: Amplication logique gnralise.

Question 13 :Montrer quil existe une valeur de N qui minimise le temps de propagation de la chane. Exprimer cette valeur en fonction de Cu et Ce . En dduire une expression du temps de propagation minimal ne dpendant plus que de Cu et CeINV .

12.5

Annexe : Bibliothque de cellules prcaractrises

Les socits de fonderies de Silicium, les "fondeurs", qui produisent des circuits intgrs numriques, proposent leurs clients, des bibliothques de portes logiques dites prcaractrises. Les ingnieurs de ces socits dveloppent, dessinent et simulent le comportement et les performances de chacune des portes logiques de la bibliothque. Ils fournissent leurs clients des tables de caractristiques permettant ces derniers de concevoir des circuits intgrs et prdire leurs performances sans avoir explorer des niveaux de dtail allant jusquau transistor. Le tableau 12.1 propose une telle bibliothque. Fonction Inverseur Nand 3 entres Nand 6 entres Nor 2 entres Nor 6 entres quation boolenne Y =A Y = ABC Y = ABCDEF Y =A+B Y =A+B+C +D+E+F Cei CeA = 7Cr i {A, B, C}Cei = 7Cr i {A F }Cei = 7Cr i {A, B}Cei = 7Cr i {A F }Cei = 7Cr tp0 6tpr 42tpr 156tpr 16tpr 96tpr dtp dtpr 3dtpr 6dtpr 2dtpr 6dtpr

Tab. 12.1: Une bibliothque prcaractrise simple.

Pour chaque cellule de la bibliothque sont prciss : La capacit dentre Cei de chaque entre Ei de la cellule. Le temps de propagation vide tp0 ; La dpendance capacitive (pente) du temps de propagation dtp . Rappelons que le temps de propagation dune porte charge par une capacit Cu est donn par la formule : tp = tp0 + dtp Cu Nous avons simpli les jeux de paramtres en ne distinguant notamment pas les temps de propagation en monte et en descente. Pour faciliter les quelques calculs numriques de ce TD, tous les paramtres sont dnis comme des multiples entiers des valeurs de rfrence suivantes : Cr : capacit de rfrence tpr : temps de propagation de rfrence dtpr : dpendance capacitive de rfrence Ces trois paramtres sont lis par la relation suivante : tpr = dtpr Cr

154 CHAPITRE 12. TD - PERFORMANCES DE LA LOGIQUE COMPLMENTAIRE CMOS

Chapitre 13

TD - Utilisation des bascules


Le TD comprend des exercices portant sur la mise en oeuvre de bascules dans des applications courantes de llectronique : 13.1 Mise en pipeline dune fonction combinatoire 13.2 page suivante Changement de format srie Parallle 13.3 page 157 Calcul de parit.

13.1

Mise en pipeline dune fonction combinatoire

La fonction lectronique tudier est illustre par la gure 13.1. Il sagit de traiter un ot continu de donnes arrivant un certain rythme. La frquence darrive des donnes, et donc de traitement, doit tre la plus grande possible.

Fig. 13.1: Circuit tudier

13.1.1

Analyse de la fonction

1. Quelles sont les rles respectifs des entres SEL, RAZ et INV ? 2. On considre que toutes les entres sont issues de bascules ayant un temps de propagation tco de 1 ns et que les temps de prpositionnement tsu et tho des bascules sont ngligeables. Quelle est la frquence dchantillonnage maximum fmax de la fonction ?

13.1.2

Augmentation de la frquence de fonctionnement avec un tage de pipeline

Une barrire de registre est rajoute comme indiqu dans la gure 13.2 page suivante. Le nouvel tage de pipeline ainsi gnr permet daugmenter la frquence de fonctionnement. 155

156

CHAPITRE 13. TD - UTILISATION DES BASCULES

Fig. 13.2: Circuit tudier avec pipeline

1. Quelle est la nouvelle frquence maximum fmax de fonctionnement ? 2. Quels sont le retard et la latence du signal de sortie ?

13.1.3

Optimisation en performances

1. Rajoutez un tage de pipeline permettant dobtenir la meilleure frquence possible. 2. Quelle est la nouvelle valeur de la frquence fmax ?

13.1.4

Compromis performances/surface

La table 13.1 indique la surface des portes logiques. Lunit est la surface de la porte ET. ET 1 MUX 2 XOR 2 DFF 6

Tab. 13.1: Surface des lments

1. Calculez la surface pour les 3 cas tudis ci-dessus. Analysez le rapport entre surface et frquence maximale de fonctionnement. 2. Quelle conclusion peut-on en tirer ?

13.2

Changement de format srie Parallle

Cet exercice a pour but de concevoir une fonction de changement de format dune donne arrivant en srie et sortant en parallle, et vice-versa. La structure de registre dcalage sera utilise cette n.

13.2.1

Conversion srie parallle

1. Concevez le composant D-EN dont le symbole est reprsent par la gure 13.3 page ci-contre et ayant les spcications indiques dans la table 13.2. EN=0 EN=1 Gel de la sortie Q bascule D avec entres sur D et sortie sur Q
Tab. 13.2: Spcications de D-EN

13.2. CHANGEMENT DE FORMAT SRIE PARALLLE

157

Fig. 13.3: Bascule D-EN

2. A laide du composant D-EN, concevez un convertisseur srie=>parallle SER-PAR dont lentre D arrive sur 1 bit au rythme de lhorloge H et les sortie S sortent sur sur 4 bits. Le symbole est reprsent par la gure 13.4 page ci-contre et les spcications sont indiques dans la table 13.3 page suivante.

Fig. 13.4: Composant SER-PAR

DATA_OK=0 DATA_OK=1

Gel de la sortie S La sortie S prend les 4 derniers bits de D

Tab. 13.3: Spcications de SER-PAR

13.2.2

Conversion parallle srie

1. Concevez le composant D-EN-LD dont le symbole est reprsent par la gure 13.5 et ayant les spcications indiques dans la table 13.4.

Fig. 13.5: Bascule D-EN-LD

EN=0 EN=1 et LD =0 EN=1 et LD =1

gel de la sortie Q bascule D avec entre sur D1 et sortie sur Q bascule D avec entre sur D2 et sortie sur Q

Tab. 13.4: Spcications de D-EN-LD

2. A laide du composant D-EN-LD, concevez un convertisseur parallle=>srie PAR-SER avec les entres sur 4 bits et une sortie sur 1 bit changeant au rythme de lhorloge H. Le symbole est

158

CHAPITRE 13. TD - UTILISATION DES BASCULES

reprsent par la gure 13.6 page suivante et les spcications indiques dans la table 13.5 page suivante.

Fig. 13.6: Composant PAR-SER

EN=0 EN=1 et DATA_OK=0 EN=1 et DATA_OK=1

Gel de la sortie S la sortie S sort dune faon cyclique les 4 bits de D enregistres Les entres D sont enregistres
Tab. 13.5: Spcications de PAR-SER

13.3

Calcul de parit.

La parit dun mot de n bits est vraie si le nombre de bits 1 est pair. On se propose de raliser ce calcul sur une donne de 8 bits.

13.3.1

Calcul de parit sur un mot parallle

1. Concevez un circuit calculant la parit dun mot de 8 bits en parallle, partir exclusivement de portes XOR et ayant un temps de propagation minimal.

13.3.2

Calcul de parit sur un mot srie

Les bits du mot arrivent maintenant en srie et dune manire synchrone avec une horloge CLK. Le signal DEB est actif juste avant le premier bit. Le chronogramme de la donne et de DEB est donn en gure 13.7.

Fig. 13.7: Chronogramme des entres du calculateur

Comme les bits arrivent squentiellement, on peut utiliser une structure simple calculant la parit bit aprs bit et stockant le rsultat dans une bascule D. La bascule doit tre initialise laide du signal DEB et contient le rsultat au bout des 8 bits. 1. Donnez lquation de lentre D de la bascule par rapport DATA, DEB et la sortie de la bascule. 2. Dduisez la structure du circuit squentiel correspondant.

Chapitre 14

TD - Synthse et utilisation des machines tats synchrones


Ce TD comprend 2 exercices, permettant de reprendre et de mettre en oeuvre les notions abordes dans la leon sur les machines tats 7 page 99. Nous traiterons deux problmes : tude et conception dun contrleur de bus simple. Prise en compte du problme de lquit. Remarque : Vous pouvez, si vous le souhaitez, raliser et intgrer les contrleurs tudis lors de ce TD sur des circuits logiques programmables dans les salles de TP du dpartement (A406-7).

14.1

Quest-ce quun bus de communication ?

Lorsque, au sein dun systme complexe, plusieurs dispositifs lectroniques doivent communiquer entre eux on peut imaginer de relier chaque lment tous les autres. Cette situation, illustre par la gure 14.1, est probablement la premire qui vient lesprit. Cest aussi la plus puissante car elle permet un nombre trs important de communications simultanes.

Fig. 14.1: Liaisons point point

159

160CHAPITRE 14. TD - SYNTHSE ET UTILISATION DES MACHINES TATS SYNCHRONES

Malheureusement elle est aussi trs coteuse car le nombre de connexions ncessaires est trs important. Il sut dimaginer pour sen convaincre que les arcs du schma ci-dessus vhiculent des informations codes sur 32 bits. En outre elle nore pas une grande exibilit car il nest pas possible dajouter des lments notre rseau (le nombre dentres et de sorties de chaque lment est x la construction). Ce systme nest pas trs plug and play. Cest dommage car le plug and play est justement trs la mode. Une autre solution, plus raisonnable et aussi plus courante, est le bus central comme illustr dans la gure 14.2

Fig. 14.2: Bus central

Les possibilits dchanges sont limites mais chaque lment peut tout de mme communiquer avec nimporte quel autre et le nombre de connexions est considrablement rduit. Il est en outre thoriquement possible dajouter linni de nouveaux lments au systme. La gestion dune telle organisation des communications nous servira de thme tout au long de ce TD.

14.2

Le contrleur de bus simple.

Nous nous proposons de concevoir un contrleur de bus de communication. Le systme au sein duquel notre contrleur doit sintgrer comporte un arbitre de bus et un nombre indtermin mais potentiellement trs grand de points daccs au bus. Chaque point daccs est compos dun contrleur et dun client. La gure 14.3 page ci-contre reprsente le systme de communication complet : Larbitre est charg de rpartir la ressource de communication (le bus) entre les dirents points daccs. En eet, le systme nadmet pas que plusieurs points daccs mettent simultanment des informations sur le bus. Si cela se produisait il y aurait conit et perte dinformations. La prsence dun arbitre est donc ncessaire. Cest lui qui autorise successivement les points daccs crire sur le bus en leur attribuant un "jeton". Le point daccs possesseur du jeton peut crire sur le bus. Les autres ne peuvent que lire. Lorsque le point daccs a termin sa transaction il rend le jeton larbitre qui peut alors lattribuer un autre point daccs. Labsence de conit est garantie par lunicit du jeton. Les clients sont les utilisateurs du bus. Lorsquun client dsire crire sur le bus il en informe son contrleur associ et attend que celui-ci obtienne le jeton et lui donne le feu vert. Les contrleurs servent dinterface entre larbitre et leur client. Cest lun de ces contrleurs que nous allons concevoir. Ses entres - sorties sont dcrites dans le schma illustr en gure 14.4 page suivante et la table 14.1 page 162. A lexception de lhorloge et du signal de reset toutes les entres - sorties sont actives 1.

14.2.1

Le graphe dtats.

1. Dessinez un chronogramme reprsentant une ou plusieurs transactions compltes entre un contrleur, son client et larbitre. 2. Le contrleur est une machine tats de Moore. Imaginez et dessinez son graphe.

14.2. LE CONTRLEUR DE BUS SIMPLE.

161

Fig. 14.3: Systme de communication

Fig. 14.4: Contrleur de communication

3. Vriez la cohrence du graphe en appliquant les mthodes du chapitre 2 de la leon 6. 4. Vriez que les spcications du contrleur sont respectes par votre graphe.

14.2.2

Une optimisation possible.

Les changes entre larbitre et le contrleur (signaux TOK et PSS) prsentent linconvnient de ralentir inutilement les oprations et donc de gaspiller des cycles dutilisation du bus. En eet,

162CHAPITRE 14. TD - SYNTHSE ET UTILISATION DES MACHINES TATS SYNCHRONES

Nom CLK RST TOK

Direction Entre Entre Entre

Description Horloge pour la synchronisation du contrleur Signal de reset asynchrone, actif 0. Lorsque ce signal est tat bas (0) le contrleur est entirement rinitialis. Ce signal provient de larbitre et indique que le contrleur peut disposer du bus. Il signie donc que larbitre ore le jeton au contrleur. Il nest actif que pendant une priode dhorloge. Si le contrleur na pas besoin du jeton il le rend (voir le signal PSS). Sinon il le garde jusqu ce quil nen ait plus lutilit. Ce signal est mis par le client et indique que ce dernier demande disposer du bus. Le client maintient ce signal jusqu la n de sa transaction sur le bus. Il ne le relache que lorsquil na plus besoin du bus. Ce signal provient du client et indique que le client a pris le bus et commence sa transaction. Il nest actif que pendant une priode dhorloge. Ce signal est destin larbitre et linforme que le contrleur rend le bus, soit parce que larbitre le lui a propos alors quil nen a pas besoin, soit parce que la transaction du client est termine. Il signie donc que le contrleur rend le jeton larbitre qui pourra ensuite en disposer et lattribuer un autre contrleur, voire au mme. Il nest actif que pendant une priode dhorloge. Ce signal est destin au client et linforme quil peut disposer du bus. Il est maintenu tant que le client na pas rpondu (par le signal ACK) quil a pris le bus.
Tab. 14.1: Spcication du contrleur

REQ

Entre

ACK

Entre

PSS

Sortie

GNT

Sortie

un cycle est perdu lorsquun contrleur se voit proposer le jeton alors quil nen a pas lusage. Le chronogramme de la gure illustre 14.5 ce phnomne :

Fig. 14.5: Illustration de la perte dun cycle

TOKA et TOKB sont les signaux TOK destins deux contrleurs, A et B. PSSA est le signal PSS mis par le contrleur A et indiquant quil rend le jeton que larbitre vient de lui coner et dont il na pas lusage. On voit que larbitre, lui aussi synchrone sur front montant de CLK, ne peut pas proposer immdiatement le jeton un autre contrleur. Pour amliorer les performances du systme nous voudrions obtenir le chronogramme illustr en gure 14.6 page ci-contre : 1. Proposez des modications du contrleur permettant dobtenir ce nouveau comportement.

14.3. LE PROBLME DE LQUIT.

163

Fig. 14.6: Chronogramme optimis

2. Discutez leurs mrites respectifs. 3. Le contrleur est-il toujours une machine tats ? Pourquoi ?

14.2.3

Ralisation.

1. Dcrivez sous forme de schma la structure du contrleur optimis. Vous ne dtaillerez pas les parties combinatoires. 2. Dcrivez, sous forme fonctionnelle symbolique, le comportement des parties combinatoires. Un exemple de description fonctionnelle symbolique est illustr en gure 14.7 :

Fig. 14.7: Description fonctionnelle symbolique

14.3
14.3.1

Le problme de lquit.
Le contrleur quitable.

Le contrleur que nous venons de concevoir nest pas entirement satisfaisant car il nest pas quitable. En dautres termes, il ne garantit pas quun client naccaparera pas le bus au dtriment des autres. Il ne garantit mme pas quun client, aprs avoir obtenu laccs au bus, lutilisera eectivement puis le relchera. Il est en eet possible quun client ne rponde jamais au signal GNT de son contrleur (ce quil est sens faire laide du signal ACK). Le systme complet serait alors bloqu par un "mauvais" client qui monopolise une ressource dont il na pas lusage. Pour remdier cet inconvnient il faut nouveau modier le contrleur. 1. Imaginez des solutions an de rendre quitable le contrleur optimis du premier exercice. 2. Dcrivez, sans entrer dans les dtails, la structure de ce nouveau contrleur. Vous sparerez les registres et les parties combinatoires. Vous donnerez une description fonctionnelle symbolique des parties combinatoires et vous expliciterez le comportement des registres.

164CHAPITRE 14. TD - SYNTHSE ET UTILISATION DES MACHINES TATS SYNCHRONES

14.3.2

Larbitre quitable.

1. Pour obtenir que lensemble du systme soit quitable, la modication du contrleur seul ne sut pas. Larbitre doit, lui aussi, adopter un comportement particulier. Pourquoi ? Donnez un exemple de comportement non quitable possible de larbitre et ses consquences. 2. Imaginez et dcrivez des comportements possibles de larbitre quitable. 3. Comme prcdemment, dcrivez la structure de larbitre quitable.

Troisime partie

TP

165

Chapitre 15

TP - Combinatoire dans un CLP


15.1 Objectifs du TP

Au cours de ce TP vous allez tudier une fonction combinatoire qui est lunit arithmtique et logique, appele "ALU", dun petit microprocesseur. Les tches eectuer sont : concevoir lALU de ce microprocesseur : tudier la fonction, en eectuer la saisie de schma, la simulation et la compilation logique valider limplantation matrielle de cette ALU, en congurant un circuit logique programmable "CLP" ou "FPGA" sur une plate-forme de test, mesurer les temps de propagation de lALU laide dun analyseur logique. Conseils : Bien lire le sujet de TP et comprendre la spcication avant deectuer le travail. Ne passez pas trop de temps embellir votre schma.

15.2
15.2.1

Spcication de lALU
Gnralits

Lunit arithmtique et logique "ALU" dun microprocesseur contient les oprateurs ncessaires au traitement des donnes. Les oprations peuvent tre arithmtiques, logiques ou porter sur les bits (e.g. dcalage dun bit vers la gauche). La complexit de lALU dpend non seulement du nombre doprations eectuer, mais aussi du format des donnes (entier, ottant, nombre de bits) et de la contrainte temporelle pour eectuer lopration. Dans le cadre de ce TP : lALU traite deux nombres entiers non signs sur 4 bits : A[3..0] et B[3..0], le temps de calcul et la taille de lALU ne sont pas pris en compte, le type dopration eectuer est indiqu dans linstruction en cours dexcution, le code de lopration CODE reprsente 3 bits du mot instruction.

15.2.2

Les entres

Le bloc concevoir comporte 4 types dentre : 2 oprandes non signs sur 4 bits : A et B, 1 retenue entrante sur 1 bit : CIN, 1 code sur 3 bits : CODE.

15.2.3

Les sorties

Il comporte 2 types de sorties : la sortie (rsultat) sur 4 bits : S, la retenue sortante : COUT Tout ceci est rsum dans la gure 15.1 page suivante reprsentant le bloc ALU. 167

168

CHAPITRE 15. TP - COMBINATOIRE DANS UN CLP

Fig. 15.1: Bloc ALU

15.2.4

Codage des oprations

Le tabeau 15.1 reprsente les oprations eectuer en fonction de CODE sachant que A et B sont les 2 oprandes non signs sur 4 bits et CIN reprsente la retenue entrante sur 1 bit. Il faut noter que certains codes ne sont pas utiliss. CODE 000 001 010 110 111 Opration AND OR XOR ADD SUB quation A&B A|B AB A+B AB

Tab. 15.1: Codage des oprations

15.3
15.3.1

Prsentation de lenvironnement
Maquette

La maquette est constitue de 2 cartes de la socit Digilent : Une carte de traitement : D2FT Une carte pour les Entres Sorties "E/S" : DIO5 La carte D2FT contient un FPGA de la compagnie XILINX et de type SPARTAN IIE. Cest ce FPGA qui va tre programm de faon raliser votre application. La carte DIO5 contient les E/S suivantes 8 interrupteurs 16 Boutons poussoirs (1) 4 acheurs 7 segments 16 diodes LEDS 1 acheur LCD 2 ranges de 16 caractres (2) 1 entre/sortie clavier/souris (2) 1 sortie moniteur cathodique (2) Notes : (1) : les boutons poussoirs de 0 9 sont cods sur 4 bits (BP0 appuy => BP COD = 0000, rien dappuy => BP COD = 1111) (2) pas utilis pour le TP Une photo de la maquette apparat sur limage 15.2 page ci-contre. Vous pouvez retrouver le FPGA, les E/S , les connecteur dalimentation et de programmation et aussi des sondes qui sortent dun

15.4. LE LOGICIEL DE CAO

169

connecteur de la carte D2FT de faon eectuer des observations sur des signaux du FPGA grce lanalyseur logique.

Fig. 15.2: Maquette Digilent

15.4

Le logiciel de CAO

Les logiciels de CAO lectronique aident le concepteur dans toutes les tapes du ot de conception dun circuit. Les principales tapes pour un FPGA sont : 1. La saisie. En charge de la formalisation de la spcication. Elle peut tre soit graphique avec des symboles de portes logiques, ou textuelle laide de langages informatiques. 2. La synthse. Cette tape est charge de transformer et doptimiser le modle saisi, en ensemble de portes issues de la bibiliothque technologique. Cet ensemble de portes interconnectes sappelle aussi "liste dquipotentielles" ou "netlist". 3. Le placement/routage. Cette tape est charge de placer les portes sur le circuit technologique choisi. Les connexions entre portes sont transformes en vrai ls conducteurs (routage). 4. La programmation. Le chier dcrivant la "netlist" place et route est tlcharge dans le FPGA. Une tape de vrication est normalement eectue, de faon vrier la validit des transformations eectues entre chaque tape. La validation consiste trs souvent en une simulation du

170

CHAPITRE 15. TP - COMBINATOIRE DANS UN CLP

circuit, cest dire le lancement dun executable constitu dun circuit dont les entres sont pilots par des variables voluant temporellement. La gure 15.3 illustre le ot de conception dun FPGA.

Fig. 15.3: Flot de conception FPGA

Dans notre cas, les outils suivants sont utiliss : TKgate : Outil de saisie graphique et de simulation du schma. ISE WebPack : Outil de synthse, placement/routage et programmation de XILINX.

15.5

Conception

NOTE IMPORTANTE : Le logiciel TKgate 2.0 est instable. Faites rgulirement des sauvegardes. En cas de crash : 1. Eliminez le processus tkgate avec kill <n process tkgate>, le n de process de tkgate est obtenu avec ps 2. Copiez le chier PANIC.v en maquette.v dans le rpertoire src, avec la commande cp file1> <file2> 3. Lancez loutil avec ntkgate 4. Ouvrez maquette.v

15.5.1

Conception de la cellule de base "CELLULE"

LALU doit tre construite partir de plusieurs blocs "CELLULE" traitant des oprations sur 1 bit. On se propose de concevoir CELLULE dans un premier temps. Pour ce faire : Les entres sont : les bits Ai et Bi des 2 oprandes, le bit de la retenue entrante CIN, le CODE de lopration sur 3 bits Les sorties sont : le bit Si du rsultat de lopration, le bit de la retenue sortante COUT Tout ceci est rsum dans la gure 15.4 page ci-contre. Saisissez le schma de CELLULE avec TKgate 1. Crez un nouveau module cellule laide de la commance Module/New. Le nom du module doit alors apparatre dans la liste des modules, gauche de lcran. 2. Slectionnez le module dans la liste pour lditer en double cliquant sur son nom. Ldition peut alors seectuer dans la fentre de droite.

15.5. CONCEPTION

171

Fig. 15.4: Cellule de base

3. Ajoutez les portes : cliquez lendroit o vous voulez mettre le symbole , une croix apparat dans la feuille ddition. Appeler les portes ncessaires avec la commande Make/Gate ou des multiplexeurs avec la commande Make/MSI/x-1 Multiplexor . Il est possible de rajouter des entres aux portes avec la commande ajout_port . 4. Ajoutez les ports dentre/sortie avec la commande Make/Module/Module_Input ou Make/Module/Module_output. Noubliez pas de cliquer l o vous voulez positionner le symbole avant de lappeler. Dans le cas dun port de type bus, spciez le nombre de bits partir de properties que vous obtenez avec le clic droit aprs avoir slectionn le port. 5. Ajoutez les ls de connexion laide de la che . Vous pouvez supprimer des ls avec ou rajouter des segments avec Add Wire/segment aprs avoir slectionn lquipotentielle et fait un clic droit. Cas des quipotentielles de type BUS : Pour extraire un l de bus : partez de lentre de la porte et connectez un l sur le bus, un contact se cre automatiquement avec lindice 0. Changez lindice avec les "properties"

puis details avec un clic droit sur la connexion

Pour concatner des ls un mme bus : utilisez le composant concat obtenu partir de la commande Make/IO et modiez le nombre de ls avec Properties sur le bus et la commande ajout_ports sur les entres. 6. Crez un symbole de cellule. Pour cela allez dans la fentre interface ( ct de la fentre edit) et cliquez sur auto_generate en bas de la fentre. Eectuez la simulation de CELLULE 1. Crez un module de test test_cellule laide de la commande Module/New. 2. Spciez ce module comme tant le module de haut niveau avec la commande set_as_root obtenu par un clic droit sur le nom du module. 3. Editez ce module , tout dabord en appelant une instance du composant cellule avec la commande Make/Module/Module_instance 4. Puis en rajoutant des interrupteurs sur les entres avec la commande Make/IO en choisisant switch pour les entres 1 bit et DIP_switch pour les entres bus (8 bits par dfaut). Changez le nombre de switchs de DIP_switch (toujours avec clic droit et properties) 5. Connectez les sorties des voyants de type LED avec Make/IO 6. Placez vous dans la fentre Simulate ; sil y des derreurs de schma des messages derreurs apparaissent. Corrigez votre schma en consquence. Sinon une fentre scope apparat ainsi quune barre de menu .

172

CHAPITRE 15. TP - COMBINATOIRE DANS UN CLP

7. Lancez la simulation avec . Cliquez sur les switchs et regardez lvolution des LEDs. Corrigez cellule si le fonctionnement savre incorrect. 8. Vous pouvez aussi observer les chronogrammes dvolution des signaux dans la fentre scope. Crez des sondes pralablement en double cliquant sur les quipotentielles tracer. .

9. Quittez la simulation avec

15.5.2

Conception de lALU

LALU est construite partir des sous blocs CELLULE quil faut interconnecter. Saisissez le schma du module ALU : 1. Compltez le module ALU fourni avec des instances de cellule, voire dautre portes si vous le jugez ncessaire. 2. Utilisez les mmes tapes de conception que pour cellule 3. Le symbole ALU existe dj , il nest donc pas ncessaire de le crer. Eectuez la simulation de ALU : 1. Crez un module de test test_ALU\verb laide de la commande Module/New. 2. Spciez ce module comme tant le module de haut niveau avec la commande set_as_root obtenu par un clic droit sur le nom du module. 3. Utilisez les mmes tapes de simulation que pour cellule. Vous pouvez utilsez les acheurs 7 segments pour la sortie avec Make/IO/7-seg.LED. 4. Eectuez la simulation et vriez le bon fonctionnement de ALU en observant les diodes en sortie et les chronogrammes.

15.6
15.6.1

Validation sur la plate-forme


Validation des connexions du projet global

Avant deectuer la synthse, il est ncessaire de vrier le bon fonctionnement du circuit maquette qui contient ALU et projet qui est linterface entre ALU et la maquette. Le schma de validation de la maquette est reprsent en gure 15.5 page suivante. Eectuez la simulation comme pour test_ALU.

15.6.2

Compilation

Aprs la saisie graphique et la simulation, il nous reste eectuer la compilation lectronique, cest dire la cration dun "netlist" avec les outils de synthse, placement/routage. Placez vous dans le rpertoire initial (fates cd .. si vous tes dans le rpertoire src) et lancez la commande make. Celle ci gnre automatiquement le chier netlist prt programmer. Vriez quil ny a pas derreurs. En cas derreur appelez un encadrant.

15.6.3

Programmation du FPGA

Lancez la commande make program. Cette commande tlcharge la netlist dans le FPGA de la carte D2FT de la maquette.

15.6.4

Validation sur la maquette FPGA

Validez le module ALU en jouant sur les interrupteurs et les boutons poussoirs. La gure 15.6 page ci-contre illustre le module projet du circuit maquette qui fait linterface entre les IOs de la maquette et ALU.

15.7. MESURES DES TEMPS DE PROPAGATION

173

Fig. 15.5: Simulation de la maquette

Fig. 15.6: Le projet ALU

15.7

Mesures des temps de propagation

La sonde 0 correspond lclk et les sondes de 1 5 correspondent aux 4 sorties et la retenue sortante. Modiez votre schma de de faon ce que lhorloge lclk rentre sur CIN et refaites la compilation et programmation. De faon pouvoir visualiser linuence de la propagation de la retenue, connectez les sondes de lanalyseur logique au connecteur A2 de la carte D2FT comme indiqu dans la gure 15.7 page

174

CHAPITRE 15. TP - COMBINATOIRE DANS UN CLP

suivante.

Fig. 15.7: Emplacement des sondes pour lanalyse

Dclenchez lanalyseur logique avec le front montant de lclk. Positionnez lALU en mode ADD et choisissez les oprandes de faon visualiser les temps de propagation de la retenue sur les sondes 1 4 de lanalyseur logique. Quel est le temps de propagation moyen dune cellule ?

Chapitre 16

TP - Caractrisation lectrique de portes logiques CMOS


16.1 Sommaire

Objectifs du TP Caractrisation de linverseur CMOS Fonction de transfert dun inverseur : V s = f (V e), Extraction des capacits dentre et de sortie de linverseur, Dtermination des temps de propagation de linverseur : tp0 et dtp. Annexes et rappels Description de la maquette exprimentale, Utilisation sommaire de loscilloscope, Modles du courant des transistors MOS, Modle du temps de propagation de linverseur CMOS.

16.2

Objectifs du TP

Les objectifs de ce TP sont dune part dacqurir une premire familiarisation avec les modles de comportement des transistors MOS, et dautre part de vrier (ou de dcouvrir) exprimentalement quelques rsultats connus de la logique CMOS concernant ses caractristiques en vitesse et en consommation. Lutilisation de la maquette (voir le schma du tableau 16.3 page 178) et celle de loscilloscope sont dcrites en annexe.

16.3
16.3.1

Caractrisation dun inverseur CMOS


tude des rgimes de fonctionnement des transistors NMOS et PMOS : la fonction de transfert dun inverseur CMOS

Linverseur est un circuit actif, aliment entre 0V et VDD par une tension continue positive. Il ralise la fonction amplication-inversion qui est une fonction lmentaire de llectronique analogique (0V V e V DD) comme de llectronique numrique (V e = 0V = 0 ou V e = V DD = 1). CMOS caractrise la technologie utilise pour raliser le circuit. Cette technologie permet de construire dans un mme cristal semi-conducteur, des transistors MOS de type N et des transistors MOS de type P. La fonction de transfert est la caractristique V s = f (V e). La tension note Vbasc correspond la valeur de la tension dentre Ve au moment du basculement de linverseur dun tat statique lautre. 175

176CHAPITRE 16. TP - CARACTRISATION LECTRIQUE DE PORTES LOGIQUES CMOS

Fig. 16.1: linverseur CMOS

VDD = +10V continu VSS = 0V : court-circuit entre masse (GND) et VSS V e : signal triangulaire Vmax = +10V T = 10ms

Tab. 16.1: Schma du montage 2

Question 16.3.1 Raliser le montage 2 pour relever loscilloscope, la caractristique de transfert de linverseur. Question 16.3.2 Expliquer sa forme et retrouver les quations des droites dnissant les direntes zones de fonctionnement des 2 transistors. Question 16.3.3 Dmontrer quau basculement ( V e = V basc) les deux transistors sont en rgime satur. Question 16.3.4 En tenant compte de la forme et de la frquence du signal dentre, tablir lquation littrale reliant V basc aux paramtres VDD , Kn, Kp, VT 0N et VT 0P . Nous supposerons que la tension de seuil du transistor PMOS est VT 0P 1.1V , et nous reprendrons les valeurs de Kn et de VT 0N caractrises lors du TP sur le transistor MOS. Question 16.3.5 En dduire la valeur de Kp. Nous approximons le rapport des mobilits : 0N /0P 3. Question 16.3.6 Que penser de la gomtrie (W/L) du PMOS par rapport celle du NMOS ?

16.4

Extraction des capacits dentre et de sortie de linverseur

La dtermination des capacits dentre et de sortie est eectue de manire indirecte par la mesure du courant dynamique. Compte tenu de la forme et de la frquence du signal dentre, nous

16.5. DTERMINATION DES TEMPS DE PROPAGATION DE LINVERSEUR

177

supposons que la consommation est uniquement due lnergie utilise pour charger et dcharger la capacit totale (CT = CU + Cs ) prsente sur le noeud de sortie. Nous rappellons que lnergie fournie par lalimentation lors dun cycle de charge et de dcharge de cette capacit est gale 2 CT VDD . Le relev du courant dans linverseur sera ralis par linsertion dune rsistance de faible valeur entre la source du transistor NMOS (MN2 ou MN3 sur la maquette) et la masse. VDD = +10V continu VSS = 0V : court-circuit entre masse (GND) et VSS R = 51 Vmax = +10V Cu = 10nF avec T = 1ms Cu = 1nF avec T = 1ms Cu = 10nF avec T = 0.1ms Cu = 0nF avec T = 1s Cu = 0nF avec T = 0.5s Cu = Ceinv avec T =?
Tab. 16.2: Schma du montage 3

Question 16.4.1 Calculer la valeur moyenne du courant dans la rsitance R, en fonction de la frquence f du signal dentre, de la capacit CT sur le noeud de sortie, et de la tension dalimentation VDD . Eectuer le montage 3 : un seul inverseur charg par une capacit CU . Question 16.4.2 Dans les 3 premires congurations (CU et T ), relever loscilloscope la forme de la tension du point M, et justier lallure du signal observ. Mesurer la valeur moyenne de cette tension (multimtre en position V DC ou V=). Linverseur est utilis seul (aucune charge sur sa sortie : CU = 0F ). Question 16.4.3 Mesurer laide du multimtre la valeur moyenne de la tension au point M, pour une frquence du signal dentre de 1M Hz, puis de 2M Hz. Question 16.4.4 Dduire de cette mesure la valeur du courant moyen. Comparer au modle thorique prcdent et calculer la capacit de sortie de linverseur. On connecte un deuxime inverseur en sortie du premier (CU = Ceinv ). Question 16.4.5 Eectuer nouveau la mesure du courant moyen et dduire de cette mesure la valeur de la capacit dentre de linverseur.

16.5

Dtermination des temps de propagation de linverseur

Pour dterminer le temps de propagation de linverseur, nous allons tudier un oscillateur en anneau. Un oscillateur en anneau est compos dune chane dinverseurs en nombre impair (suprieur un), ferme sur elle mme. Nous nous limiterons un anneau minimal constitu de trois inverseurs. Linverseur est suppos reproduire parfaitement ltat logique complmentaire aprs un temps de propagation (suppos identique en monte et en descente). Nous proposons ci-dessous le montage 4 et le dbut de chronograme des dirents signaux. Question 16.5.1 Donner la suite du chronogramme sur deux priodes de loscillateur. Question 16.5.2 Dterminer la priode de loscillateur en fonction du temps de propagation de linverseur.

178CHAPITRE 16. TP - CARACTRISATION LECTRIQUE DE PORTES LOGIQUES CMOS

Fig. 16.2: Montage 4 et chronogrammes

On dsire vrier pratiquement la frquence doscillation. Question 16.5.3 Est-il envisageable de raliser simplement le montage, et de connecter directement loscilloscope sur une des sorties de lanneau dinverseurs ? Question 16.5.4 tablir un circuit de mesure inspir du montage 3, et permettant cette mesure avec un minimum de perturbations. Question 16.5.5 Eectuer la mesure et comparer la valeur calcule. Justier un ventuel cart par rapport la thorie.

16.6
16.6.1

Annexes
Maquette experimentale

Cblage de la maquette Le TP utilise une maquette exprimentale (schma du tableau 16.3) permettant daccder 3 transistors NMOS et 3 transistors PMOS organiss en deux ranges.

S : Source G : Grille D : Drain B : Bulk (suBstrat)

Range du haut : PMOS Range du bas : NMOS

Tab. 16.3: Disposition des transistors sur la maquette

Pour que les transistors NMOS et PMOS fonctionnent correctement il convient de respecter les rgles suivantes durant tout le TP :

16.6. ANNEXES

179

Le substrat des transistors PMOS (connexion nomme Vdd ) doit toujours tre la tension maximum (la plus positive) du montage, Le substrat des transistors NMOS (connexion nomme Vss ) doit toujours tre la tension minimum (la plus ngative) du montage. Cblage des alimentations

1 tension continue

2 tensions continues

2 tensions symtriques

Tab. 16.4: Connexion des gnrateurs de tension continue

Cblage des lments Les Source, Grille et Drain de chacun des transistors sont accessibles par des plots lexception des transistors NMOS et PMOS de la colonne de gauche (MN1 et MP1) dont les sources sont dja connectes leurs substrats respectifs (voir schma du tableau 16.3 page ci-contre). Il est possible de placer des composants passifs de type rsistance ou capacit entre deux plots de connexion marqus dun symbole rectangulaire. Il est possible dinjecter ou de prlever un signal par les deux prises coaxiales (appeles aussi "BNC") situes sur les cots de la maquette. Rappelons que dans de telles prises sont connects la fois le signal (ame du coaxial, cest dire le l central) et la masse (blindage du coaxial, connect lquipotentielle "gnd").
Tab. 16.5: Cblage des dirents lments

180CHAPITRE 16. TP - CARACTRISATION LECTRIQUE DE PORTES LOGIQUES CMOS

16.6.2

Utilisation sommaire de loscilloscope

Pour la visualisation des signaux lectriques, nous utiliserons un oscilloscope 2 voies. Ces 2 voies, A et B, peuvent tre aches de direntes manires : A ou B sparment : touche "A/B", A et B simultanment : touche "A/B", la voie B peut tre inverse : touche "ADD INVERT", A et B additionnes : touche "ADD INVERT", A et B soustraites (A B uniquement) : touche "ADD INVERT". En mode "normal" chacune de ces voies est visualise en fonction du temps. Nous pouvons utiliser le mode X/Y en utilisant la touche "X DEFL" et en slectionnant la tension de deviation horizontale par la touche "TRIG or X SOURCE".

16.6.3

Modles statique et grand signal

La table 16.6 page suivante rsume dune part les conditions normales dutilisation des transistors NMOS et PMOS et dautre part les quations simplies du courant Ids entre le Drain et la Source, en fonction de leur conditions de fonctionnement. Les symboles utiliss sont : VDD : tension continue positive dalimentation (circuit suppos tre aliment entre 0V et VDD ), VT 0N : tension de seuil du transistor NMOS : Vbs = 0V , VT 0N > 0V , VT 0P : tension de seuil du transistor PMOS : Vbs = 0V , VT 0P < 0V , k : facteur de transconductance : kn = 0n Cox et kp = 0p Cox , K : coecient de conduction : k Wp n n Kn = k2 Wn et Kp = 2p Lp , L : coecient de modulation de longueur de canal (eet Early) : 1 1 et p = VEp Lp n = VEn Ln VEG : tension eective de grille (pour le NMOS et pour le PMOS) : VEG = VGS VT , VDSsat : tension de pincement ou de saturation (pour le NMOS et pour le PMOS) : VDSsat = VGS VT .

Fig. 16.3: Schma du modle statique et grand signal du transistor MOS

16.6.4

Rappels sur le modle de temps de propagation de linverseur CMOS

Le temps de propagation T p dune porte logique est le temps coul entre un changement dtat du signal dentre (Sm) et le changement dtat correspondant du signal de sortie (Sv). Une dnition du changement dtat dun signal est son passage mi-chemin entre la tension v0 (tension de ltat statique "0") et la tension v1 (tension de ltat statique "1"). On peut tre amen distinguer le temps de propagation en monte T pm de celui en descente T pd lorsque lon sintresse aux transitions montantes ou descendentes de la sortie de la porte (voir

16.6. ANNEXES

181

quations du transistor NMOS rgime bloqu ohmique quadratique pincement saturation eet de substrat V gs > VT n conditions V gs VT n V ds 0 V ds < V dssat V ds = V dssat V ds > V dssat V bsn < 0 quations du transistor PMOS rgime bloqu ohmique quadratique pincement saturation eet de substrat V gs < VT p conditions V gs VT p V ds 0 V ds > V dssat V ds = V dssat V ds < V dssat V bsp > 0 courant Ids Ids = 0 Ids = 2 Kp (V gs VT p ) V ds Ids = 2 Kp V gs VT p
V ds 2 2

courant Ids Ids = 0 Ids = 2 Kn (V gs VT n ) V ds Ids = 2 Kn V gs VT n


V ds 2 2

V ds

Idssat = Kn (V gs VT n ) VT n = VT 0n + f (V bsn )

Ids = Idssat 1 + n (V ds V dssat )

V ds

Idssat = Kp (V gs VT p ) VT p = VT 0p f (V bsp )

Ids = Idssat 1 p (V ds V dssat )

Tab. 16.6: quations des transistors MOS (voir schma gure 16.3 page ci-contre)

gure 16.4).

Fig. 16.4: Temps de propagation de linverseur MOS

Le temps de propagation de linverseur CMOS quilibr (dT pd = dT pm soit respectivement RDS0N = RDS0P ) peut tre modlis par l quation linaire suivante : T p = T p0 + dT p Cu (voir gure 16.5 page suivante).

T p0 : temps de propagation intrinsque de linverseur dT p : dpendance capacitive du temps de propagation (en s/F soit en Ohms) Cu : capacit de charge connecte en sortie de linverseur.

182CHAPITRE 16. TP - CARACTRISATION LECTRIQUE DE PORTES LOGIQUES CMOS

Fig. 16.5: Modle de linverseur MOS

Une valeur approximative du temps de propagation intrinsque peut tre obtenue en mesurant la capacit de sortie de linverseur CS : T p0 = dT p Cs Enn, une caractrisation complte de linverseur ncessite de mesurer la capacit dentre Ce.

Chapitre 17

TP - Modlisation et caractrisation de transistors et doprateurs logiques CMOS


17.1 Sommaire

Objectifs du TP Caractrisation dun transistor NMOS, Transconductance : Ids = f (Vgs ), Extraction de Kn et de VT 0N Caractrisation de linverseur CMOS Fonction de transfert dun inverseur : V s = f (V e), Extraction des capacits dentre et de sortie de linverseur, Dtermination des temps de propagation de linverseur : tp0 et dtp. Annexes et rappels Description de la maquette exprimentale, Utilisation sommaire de loscilloscope, Modles du courant des transistors MOS, Modle du temps de propagation de linverseur CMOS.

17.2

Objectifs du TP

Les objectifs de ce TP sont dune part dacqurir une premire familiarisation avec les modles de comportement des transistors MOS, et dautre part de vrier (ou de dcouvrir) exprimentalement quelques rsultats connus de la logique CMOS concernant ses caractristiques en vitesse et en consommation. Lutilisation de la maquette (voir le schma du tableau 17.4 page 187) et celle de loscilloscope sont dcrites en annexe.

17.3
17.3.1

Caractrisation dun transistor NMOS


Transconductance : Ids = f (Vgs )

Il sagit de vrier exprimentalement la variation du courant Ids dun transistor NMOS en fonction de la tension Vgs lorsque le transistor est en rgime satur grce au montage du tableau 17.1 page suivante. Question 17.3.1 Avant de raliser le montage, montrer que le transistor passe alternativement du rgime bloqu au rgime satur. En dduire lexpression thorique de Ids fonction de Vgs , en 183

184CHAPITRE 17. TP - MODLISATION ET CARACTRISATION DE TRANSISTORS ET DOPRATEURS LOGIQ

VSS = 0V : court-circuit entre masse (gnd) et VSS V e : signal triangulaire Vmax = +10V T = 10ms MN 1 = N M OS R = 1k

Tab. 17.1: Schma du montage 1

ngligeant leet de modulation de longueur de canal (eet Early). Question 17.3.2 Raliser le montage du tableau 17.1 et faire apparatre sur loscilloscope en mode XY, la courbe Ve Vds = R Ids = f (Vgs ), laide des voies A et B connectes selon le schma. Question 17.3.3 Extraire la valeur des paramtres Kn et VT 0N du transistor, partir de deux mesures de IDS judicieusement choisies (par exemple Ids1 = 1mA pour Vgs1 et Ids2 = 4mA pour Vgs2 ...). Nous obtenons : VT = Kn =
Ids2 Ids1

Vgs1 Vgs2
Ids2 Ids1

1
2

soit : VT = 2Vgs1 Vgs2 soit : Kn =


1mA

Ids2 Ids2 (Vgs2 Vgs1 )

(Vgs2 Vgs1 )

17.4
17.4.1

Caractrisation dun inverseur CMOS


tude des rgimes de fonctionnement des transistors NMOS et PMOS : la fonction de transfert dun inverseur CMOS

Linverseur est un circuit actif, aliment entre 0V et VDD par une tension continue positive. Il ralise la fonction amplication-inversion qui est une fonction lmentaire de llectronique analogique (0V V e V DD) comme de llectronique numrique (V e = 0V = 0 ou V e = V DD = 1). CMOS caractrise la technologie utilise pour raliser le circuit. Cette technologie permet de construire dans un mme cristal semi-conducteur, des transistors MOS de type N et des transistors MOS de type P.

Fig. 17.1: linverseur CMOS

17.5. EXTRACTION DES CAPACITS DENTRE ET DE SORTIE DE LINVERSEUR 185

La fonction de transfert est la caractristique V s = f (V e). La tension note Vbasc correspond la valeur de la tension dentre Ve au moment du basculement de linverseur dun tat statique lautre.

VDD = +10V continu VSS = 0V : court-circuit entre masse (GND) et VSS V e : signal triangulaire Vmax = +10V T = 10ms

Tab. 17.2: Schma du montage 2

Question 17.4.1 Raliser le montage 2 pour relever loscilloscope, la caractristique de transfert de linverseur. Question 17.4.2 Expliquer sa forme et retrouver les quations des droites dnissant les direntes zones de fonctionnement des 2 transistors. Question 17.4.3 Dmontrer quau basculement ( V e = V basc) les deux transistors sont en rgime satur. Question 17.4.4 En tenant compte de la forme et de la frquence du signal dentre, tablir lquation littrale reliant V basc aux paramtres VDD , Kn, Kp, VT 0N et VT 0P . Question 17.4.5 Sachant que la tension de seuil du transistor PMOS est VT 0P 1.1V , en dduire la valeur de Kp. Nous approximons le rapport des mobilits : 0N /0P 3. Question 17.4.6 Que penser de la gomtrie (W/L) du PMOS par rapport celle du NMOS ?

17.5

Extraction des capacits dentre et de sortie de linverseur

La dtermination des capacits dentre et de sortie est eectue de manire indirecte par la mesure du courant dynamique. Compte tenu de la forme et de la frquence du signal dentre, nous supposons que la consommation est uniquement due lnergie utilise pour charger et dcharger la capacit totale (CT = CU + Cs ) prsente sur le noeud de sortie. Nous rappellons que lnergie fournie par lalimentation lors dun cycle de charge et de dcharge de cette capacit est gale 2 CT VDD . Le relev du courant dans linverseur sera ralis par linsertion dune rsistance de faible valeur entre la source du transistor NMOS (MN2 ou MN3 sur la maquette) et la masse. Question 17.5.1 Calculer la valeur moyenne du courant dans la rsitance R, en fonction de la frquence f du signal dentre, de la capacit CT sur le noeud de sortie, et de la tension dalimentation VDD . Eectuer le montage 3 : un seul inverseur charg par une capacit CU . Question 17.5.2 Dans les 3 premires congurations (CU et T ), relever loscilloscope la forme de la tension du point M, et justier lallure du signal observ. Mesurer la valeur moyenne de cette tension (multimtre en position V DC ou V=).

186CHAPITRE 17. TP - MODLISATION ET CARACTRISATION DE TRANSISTORS ET DOPRATEURS LOGIQ

VDD = +10V continu VSS = 0V : court-circuit entre masse (GND) et VSS R = 51 Vmax = +10V Cu = 10nF avec T = 1ms Cu = 1nF avec T = 1ms Cu = 10nF avec T = 0.1ms Cu = 0nF avec T = 1s Cu = 0nF avec T = 0.5s Cu = Ceinv avec T =?
Tab. 17.3: Schma du montage 3

Linverseur est utilis seul (aucune charge sur sa sortie : CU = 0F ). Question 17.5.3 Mesurer laide du multimtre la valeur moyenne de la tension au point M, pour une frquence du signal dentre de 1M Hz, puis de 2M Hz. Question 17.5.4 Dduire de cette mesure la valeur du courant moyen. Comparer au modle thorique prcdent et calculer la capacit de sortie de linverseur. On connecte un deuxime inverseur en sortie du premier (CU = Ceinv ). Question 17.5.5 Eectuer nouveau la mesure du courant moyen et dduire de cette mesure la valeur de la capacit dentre de linverseur.

17.6

Dtermination des temps de propagation de linverseur

Pour dterminer le temps de propagation de linverseur, nous allons tudier un oscillateur en anneau. Un oscillateur en anneau est compos dune chane dinverseurs en nombre impair (suprieur un), ferme sur elle mme. Nous nous limiterons un anneau minimal constitu de trois inverseurs. Linverseur est suppos reproduire parfaitement ltat logique complmentaire aprs un temps de propagation (suppos identique en monte et en descente). Nous proposons ci-dessous le montage 4 et le dbut de chronograme des dirents signaux.

Fig. 17.2: Montage 4 et chronogrammes

Question 17.6.1 Donner la suite du chronogramme sur deux priodes de loscillateur. Question 17.6.2 Dterminer la priode de loscillateur en fonction du temps de propagation de linverseur.

17.7. ANNEXES

187

On dsire vrier en pratique la frquence doscillation. Question 17.6.3 Est-il envisageable de raliser simplement le montage, et de connecter directement loscilloscope sur une des sorties de lanneau dinverseurs ? Question 17.6.4 tablir un circuit de mesure inspir du montage 3, et permettant cette mesure avec un minimum de perturbations. Question 17.6.5 Eectuer la mesure et comparer la valeur calcule. Justier un ventuel cart par rapport la thorie.

17.7
17.7.1

Annexes
Maquette experimentale

Cblage de la maquette Le TP utilise une maquette exprimentale (schma du tableau 17.4) permettant daccder 3 transistors NMOS et 3 transistors PMOS organiss en deux ranges.

S : Source G : Grille D : Drain B : Bulk (suBstrat)

Range du haut : PMOS Range du bas : NMOS

Tab. 17.4: Disposition des transistors sur la maquette

Pour que les transistors NMOS et PMOS fonctionnent correctement il convient de respecter les rgles suivantes durant tout le TP : Le substrat des transistors PMOS (connexion nomme Vdd ) doit toujours tre la tension maximum (la plus positive) du montage, Le substrat des transistors NMOS (connexion nomme Vss ) doit toujours tre la tension minimum (la plus ngative) du montage. Cblage des alimentations Cblage des lments

17.7.2

Utilisation sommaire de loscilloscope

Pour la visualisation des signaux lectriques, nous utiliserons un oscilloscope 2 voies. Ces 2 voies, A et B, peuvent tre aches de direntes manires : A ou B sparment : touche "A/B", A et B simultanment : touche "A/B", la voie B peut tre inverse : touche "ADD INVERT", A et B additionnes : touche "ADD INVERT",

188CHAPITRE 17. TP - MODLISATION ET CARACTRISATION DE TRANSISTORS ET DOPRATEURS LOGIQ

1 tension continue

2 tensions continues

2 tensions symtriques

Tab. 17.5: Connexion des gnrateurs de tension continue

Les Source, Grille et Drain de chacun des transistors sont accessibles par des plots lexception des transistors NMOS et PMOS de la colonne de gauche (MN1 et MP1) dont les sources sont dja connectes leurs substrats respectifs (voir schma du tableau 17.4 page prcdente). Il est possible de placer des composants passifs de type rsistance ou capacit entre deux plots de connexion marqus dun symbole rectangulaire. Il est possible dinjecter ou de prlever un signal par les deux prises coaxiales (appeles aussi "BNC") situes sur les cots de la maquette. Rappelons que dans de telles prises sont connects la fois le signal (ame du coaxial, cest dire le l central) et la masse (blindage du coaxial, connect lquipotentielle "gnd").
Tab. 17.6: Cblage des dirents lments

A et B soustraites (A B uniquement) : touche "ADD INVERT". En mode "normal" chacune de ces voies est visualise en fonction du temps. Nous pouvons utiliser le mode X/Y en utilisant la touche "X DEFL" et en slectionnant la tension de deviation horizontale par la touche "TRIG or X SOURCE".

17.7.3

Modles statique et grand signal

La table 17.7 page ci-contre rsume dune part les conditions normales dutilisation des transistors NMOS et PMOS et dautre part les quations simplies du courant Ids entre le Drain et la Source, en fonction de leur conditions de fonctionnement. Les symboles utiliss sont : VDD : tension continue positive dalimentation (circuit suppos tre aliment entre 0V et VDD ),

17.7. ANNEXES

189

VT 0N : tension de seuil du transistor NMOS : Vbs = 0V , VT 0N > 0V , VT 0P : tension de seuil du transistor PMOS : Vbs = 0V , VT 0P < 0V , k : facteur de transconductance : kn = 0n Cox et kp = 0p Cox , K : coecient de conduction : k Wp n n Kn = k2 Wn et Kp = 2p Lp , L : coecient de modulation de longueur de canal (eet Early) : 1 1 et p = VEp Lp n = VEn Ln VEG : tension eective de grille (pour le NMOS et pour le PMOS) : VEG = VGS VT , VDSsat : tension de pincement ou de saturation (pour le NMOS et pour le PMOS) : VDSsat = VGS VT .

quations du transistor NMOS rgime bloqu ohmique quadratique pincement saturation eet de substrat V gs > VT n conditions V gs VT n V ds 0 V ds < V dssat V ds = V dssat V ds > V dssat V bsn < 0 quations du transistor PMOS rgime bloqu ohmique quadratique pincement saturation eet de substrat V gs < VT p conditions V gs VT p V ds 0 V ds > V dssat V ds = V dssat V ds < V dssat V bsp > 0 courant Ids Ids = 0 Ids = 2 Kp (V gs VT p ) V ds Ids = 2 Kp V gs VT p
V ds 2 2

courant Ids Ids = 0 Ids = 2 Kn (V gs VT n ) V ds Ids = 2 Kn V gs VT n


V ds 2 2

V ds

Idssat = Kn (V gs VT n ) VT n = VT 0n + f (V bsn )

Ids = Idssat 1 + n (V ds V dssat )

V ds

Idssat = Kp (V gs VT p ) VT p = VT 0p f (V bsp )

Ids = Idssat 1 p (V ds V dssat )

Tab. 17.7: quations des transistors MOS (voir schma gure 17.3)

Fig. 17.3: Schma du modle statique et grand signal du transistor MOS

190CHAPITRE 17. TP - MODLISATION ET CARACTRISATION DE TRANSISTORS ET DOPRATEURS LOGIQ

17.7.4

Rappels sur le modle de temps de propagation de linverseur CMOS

Le temps de propagation T p dune porte logique est le temps coul entre un changement dtat du signal dentre (Sm) et le changement dtat correspondant du signal de sortie (Sv). Une dnition du changement dtat dun signal est son passage mi-chemin entre la tension v0 (tension de ltat statique "0") et la tension v1 (tension de ltat statique "1"). On peut tre amen distinguer le temps de propagation en monte T pm de celui en descente T pd lorsque lon sintresse aux transitions montantes ou descendentes de la sortie de la porte (voir gure 17.4).

Fig. 17.4: Temps de propagation de linverseur MOS

Le temps de propagation de linverseur CMOS quilibr (dT pd = dT pm soit respectivement RDS0N = RDS0P ) peut tre modlis par l quation linaire suivante : T p = T p0 + dT p Cu (voir gure 17.5).

Fig. 17.5: Modle de linverseur MOS

T p0 : temps de propagation intrinsque de linverseur dT p : dpendance capacitive du temps de propagation (en s/F soit en Ohms) Cu : capacit de charge connecte en sortie de linverseur.

Une valeur approximative du temps de propagation intrinsque peut tre obtenue en mesurant la capacit de sortie de linverseur CS : T p0 = dT p Cs Enn, une caractrisation complte de linverseur ncessite de mesurer la capacit dentre Ce.

Chapitre 18

TP - Machines tats dans un CLP


Pour faire le TP, loggez-vous sur une machine de la salle A406.

18.1

Objectifs du TP

Au cours du TP prcdent, vous avez conu un systme combinatoire sous forme schmatique vous lavez simul pour vrier sa fonctionalit ( laide de modles de simulations plus ou moins ralistes inclus dans TkGate) vous en avez fait une implmentation relle sous forme de portes logiques dans un FPGA (souvenez-vous, "make program"...) vous avez vri que le systme rel fonctionnait, mais avez aussi constat des temps de propagations dirents de ceux de la simulation Au cours de ce TP, vous allez constater encore une fois que les simulations, si elles peuvent valider rapidement la fonctionnalit sun systme, peuvent aussi parfois ne pas sure : parce que les modles sont trop idaux (il faut alors raner les modles) parce que, mme si le systme est bien modlis, son environnement ne lest pas (il faut alors le modliser correctement, et au besoin corriger le systme), parce que le simulateur est bugg (il faut alors en changer)... Pour cela vous allez tudier et concevoir des fonctions de logique squentielle : un compteur/dcompteur et un systme anti-rebond. Les tches eectuer sont : Concevoir un compteur dcompteur : tudier la fonction, en eectuer la saisie de schma, la simulation, la compilation logique et le test sur la plate-forme. Constater que mme si la simulation fonctionne correctement, le circuit rel ne fonctionne pas Analyser avec un analyseur logique ou un oscilloscope numrique la cause des dysfonctionnements du compteur/dcompteur (rebonds sur les interrupteurs) Concevoir un systme anti-rebonds : tudier la fonction, en eectuer la saisie de schma, la simulation, la compilation logique et le test sur la plate-forme. Par la mme occasion, vous allez constater que la mthode systmatique de conception des machines tats vue en cours peut tre avantageusement remplace par un peu dimagination et de bon sens.

18.2

Conseils

Bien lire le sujet de TP et comprendre la spcication avant deectuer le travail En cas de problme sur loutil de saisie et simulation TKgate, rferrez vous au didacticiel qui est lanc automatiquement si on ne spcie pas de chier lors de lappel de TKgate, ou est accessible dans le menu aide. 191

192

CHAPITRE 18. TP - MACHINES TATS DANS UN CLP

Ne passez pas trop de temps embellir votre schma. Pour en savoir plus sur lenvironnement, rferrez vous la documentation de la plate-forme Digilent et le logiciel de CAO TKgate prsents dans le TP combinatoire 15 page 167 pralablement eectu.

18.3

Conception du compteur/dcompteur

Spcications : le compteur/dcompteur "CD" doit tre incrment lors de lappui sur le bouton A et dcrment lors de lappui sur le bouton B. Lincrmentation et la dcrmentation ne se font quune seule fois lors de lappui sur les boutons. Autrement dit pour compter +3, il faut appuyer 3 fois sur le bouton A, quelle que soit la dure de lappui.

18.3.1

Spcication

Les module GENE_TOP et UP_DOWN travaillent dune faon synchrone avec lhorloge H ou lclk dont la frquence est de 10KHz. Le signal NRST initialise dune faon Asynchrone les registres des modules. Le circuit est constitu de 3 blocs : 2 blocs GENE_TOP ayant pour but de dlivrer respectivement 2 impulsions TOP_A et TOP_B dont la dure est exactement une priode dhorloge pour chaque appui sur les boutons A ou B. Lappui sur les boutons A et B dure beaucoup plus longtemps quune priode dhorloge. Un bloc compteur/dcompteur UP_DOWN qui reoit les signaux TOP_A et TOP_B. Lorque TOP_A est reu, lincrmentation a lieu , alors que TOP_B provoque la dcrmntation. Lorsque les 2 TOPs sont reus ensemble, le choix de lopration est laiss libre au concepteur. La gure 18.1 illustre larchitecture du compteur/dcompteur CD.

Fig. 18.1: Le compteur/dcompteur CD

18.3.2

Conception et validation

Concevez le compteur/dcompteur CD avec TKgate en suivant les tapes suivantes : 1. Ouvrez le chier maquette.v dans le rpertoire src/ avec la commande Fichier/Ouvrir . Les instances des modules projet et CD existent mais il reste faire le schma interne de ces modules. En cliquant sur le module projet dans la fentre des modules gauche de lcran, visualisez le schma du projet (gure 18.2 page ci-contre) pour connatre les entres et sorties de la maquette utilises pour le projet. 2. Module GENE_TOP :

18.4. LES PROBLMES COMMENCENT...

193

Fig. 18.2: Schma du projet

(a) Slectionnez le module GENE_TOP en descendant dans la hierarchie laide de la commande Module/ouvrir aprs avoir slectionn le module de plus haut niveau, ou en cliquant directement sur le module GENE_TOP dans la fentre des modules. (b) Etudiez et eectuez sur le papier la synthse du module GENE-TOP. Vous pouvez par exemple utiliser une bascule pour gnrer un retard plutt que dutiliser une mthode de synthse systmatique de machine tats. (c) Saisissez le schma du module GENE_TOP en utilisant toutes les primitives disponibles dans TKGate (portes , bascules, multiplexeurs,...). Respectez le nom des broches dentre/sortie de linstance du module. 3. Module UP_DOWN : (a) Slectionnez le module UP_DOWN en descendant dans la hierarchie laide de la commande Module/ouvrir aprs avoir slectionn le module de plus haut niveau, ou en cliquant directement sur le module UP_DOWN dans la fentre des modules. (b) Etudiez sur le papier larchitecture du module UP_DOWN en tirant parti de lexistance de blocs ALU et registre dans la bibliothque de TKgate. (c) Saisissez le schma du module UP_DOWN. Respectez le nom des broches dentre/sortie de linstance du module. Une fois les modules termins : 1. Eectuez la simulation du module main en pilotant les signaux utiles comme indiqu dans le module projet. Utilisez le chronogramme pour visualiser les signaux utiles et valider le compteur/dcompteur. 2. Une fois le circuit compteur/dcompteur valid, eectuez la compilation du projet en tapant la commande make dans le rpertoire de niveau suprieur (faire cd ..), puis make program pour tlcharger le chier netlist dans le FPGA de la maquette. 3. Validez le compteur/dcompteur sur la maquette avec les boutons et les acheurs.

18.4
18.4.1

Les problmes commencent...


Utilisation des interrupteurs

1. Modiez rapidement dans TKgate le schma projet, pour utiliser les interrupteurs (sw) la place des boutons poussoir bout.

194

CHAPITRE 18. TP - MACHINES TATS DANS UN CLP

2. Refaites la compilation et la programmation du FPGA. Est-ce que a marche toujours ?

18.4.2

Identication du problme : analyse du comportement des interrupteurs

Analysez nement les signaux des interrupteurs, accessibles sur les sorties probes(0) et probes(1), lanalyseur logique ou loscilloscope. Le brochage des probes est indiqu dans le schma 18.3, et un manuel simpli des analyseurs logiques est disponible sur chaque table (si vous ne le trouvez pas, demandez-le aux encadrants). Do vient le problme (la dirence de comportement entre la simulation et la ralit) ?

Fig. 18.3: Emplacement des sondes pour lanalyse

18.4.3

Rsolution du problme

Il faut modier la conception du compteur-dcompteur pour prendre en compte le comportement relev lanalyseur logique. Pour cela, vous pouvez intercaler entre CD et les interrupteurs un bloc nomm AR. Il est pour linstant vide, cest vous de le concevoir. le bloc AR sera synchrone, et aura une entre et une sortie sur 1 bit (DIN et DOUT), ainsi quune horloge (H) et un reset (NRST). Rappel : lhorloge systme fonctionne 10kHz.

18.4. LES PROBLMES COMMENCENT...

195

Le but de cette partie est de laisser libre cours votre imagination. Plusieurs solutions sont possibles. Les encadrants sont l uniquement en support technique, et non pour vous souer une solution. Bref, cest maintenant vous de jouer !

196

CHAPITRE 18. TP - MACHINES TATS DANS UN CLP

Chapitre 19

TP - Nanoprocesseur
19.1 Introduction

Au cours de ce TP vous allez : tudier larchitecture du microprocesseur abord dans la leon sur le processeur ( 8 page 117), concevoir le compteur de programme (ou compteur dadresse ou PC) du microprocesseur, concevoir la machine tat qui contrle le processeur (CTR) apprendre les bases de Verilog, congurer un circuit logique programmable Xilinx an quil ralise ce microprocesseur, faire excuter un programme de test puis un programme musical votre microprocesseur sur une carte de test, et de manire libre : amliorer votre microprocesseur en enrichissant son jeu dinstructions... Conseils : suivez les conseils, respectez scrupuleusement les noms de composants et dentres-sorties proposs, pour les machines tats, utilisez le codage dtats propos par le sujet, vriez toujours que le chier que vous ditez est le bon (et pas une copie dans un autre rpertoire...), faites simple, et souvenez-vous du vieil adage : si a a lair compliqu, cest que cest compliqu !

19.2

Architecture du systme microprocesseur

Bien que le sujet du TP concerne plus le coeur dexcution du microprocesseur que son environnement dutilisation, nous prsentons ici le systme complet implant sur la maquette de test. Le systme propos se compose : Du microprocesseur implant dans un circuit logique programmable Xilinx Spartan 2E XC2S300E ; Dune mmoire RAM contenant le programme et les donnes (cette mmoire est elle aussi intgre dans le Xilinx) ; Dun haut-parleur pilot par un port de sortie du microprocesseur. Quelques autres priphriques ne sont pas reprsents sur le schma 19.1 page suivante le gnrateur dhorloge sclk et la gnration de la remise zro (reset_n) les acheurs pour le debug Remarque : il y a quelques dirences par rapport la leon sur le microprocesseur portant sur les noms des signaux : le bus dadresse de la RAM est appel ram_addr[7:0] le bus dentre de la RAM est appel directement accu[7:0] (car cest la sortie de laccumulateur du processeur) le bus de sortie de la RAM est appel ram_data[7:0] 197

198

CHAPITRE 19. TP - NANOPROCESSEUR

Fig. 19.1: Schma global du processeur et de ses priphriques

Nom sclk reset_n BZ ram_addr[7..0] accu[7..0]

Entres et sortie du processeur Horloge gnrale du processeur Remise zro asynchrone et active 0 Port pouvant tre positionn 1 ou 0 Adresse de laccs la RAM Sortie de lACCUmulateur. Ce mot est mmoris dans la RAM ladresse ram_addr si ram_write vaut 1 (accs la RAM en criture) Mot lu dans la RAM ladresse ram_addr (accs la RAM en lecture) Signal indiquant le sens de lchange avec la mmoire (1 pour une criture)
Tab. 19.1: Entres-sorties du processeur

Type (vu du processeur) Entre Entre Sortie Sortie Sorties

ram_data[7..0] ram_write

Entres Sortie

19.3

Fonctionnement et jeu dinstructions du microprocesseur

Les caractristiques principales de notre microprocesseur sont les suivantes : Le jeu dinstructions du microprocesseur se limite 16 instructions Chaque instruction est code sur deux octets : Le premier octet contient le code de lopration proprement dite ; Le deuxime octet contient un pointeur qui donne ladresse en mmoire dune ventuelle oprande. Ladresse de laccs courant ( une instruction) en RAM est note PC ("Program Counter"). La mmoire adressable par le microprocesseur ne dpasse pas 256 octets (8 bits dadresse) Les donnes traites sont des entiers naturels limits lintervalle 0..255 (8 bits de donnes) Loprateur de calcul du microprocesseur se limite quelques oprations logiques et arithmtiques simples (voir tableau). Le rsultat de lopration eectu est stock dans laccumulateur. Lors dune modication de laccumulateur, deux signaux supplmentaires sont gnrs et mmoriss : Z si ce rsultat est nul C si une retenue sortante existe (dans le cas des oprations arithmtiques et de rotation) Le tableau 19.2 page ci-contre rsume le jeu dinstruction du microprocesseur. Lexpression (AD) reprsente le contenu de la mmoire ladresse AD fournie par le deuxime octet de linstruction (AD reprsente cette adresse, et (AD) le contenu de cette adresse) Lexpression PC <= PC + 2 indique que la valeur du pointeur programme, pour linstruction suivante, sera la valeur courante incrmente de 2.

19.4. ARCHITECTURE DU COEUR DU NANOPROCESSEUR

199

Mnmonique Instruction

Eet sur laccumulateur A <= A A <= A xor (AD) A <= A and (AD) A <= A or (AD) A <= A + (AD)

Eet sur le PC

code (binaire 8 bits) 00000000 00000001 00000010 00000011 00000100

code (dcimal) 0 1 2 3 4

NOP XOR AND OR ADD

No OPeration XOR tion AND tion funcfunc-

PC <= PC + 2 PC <= PC + 2 PC <= PC + 2 PC <= PC + 2 PC <= PC + 2

OR function ADDition without carry ADDition with Carry SUBstraction without carry SuBstraction with Carry ROtate Left ROtate Right LoaD Accumulator from memory STore Accumulator to memory OUTput JuMP Jump if No Carry Jump if No Zero

ADC SUB

A <= A + (AD) + C PC <= PC + 2 A <= A - (AD) PC <= PC + 2

00000101 00000110

5 6

SBC ROL ROR LDA

A <= A - (AD) - C PC <= PC + 2 A <= A[6..0]A[7] A <= A[0]A[7..1] A <= (AD) PC <= PC + 2 PC <= PC + 2 PC <= PC + 2

00000111 00001000 00001001 00001010

7 8 9 10

STA

(AD) = A

PC <= PC + 2

00001011

11

OUT JMP JNC JNZ

BZ <= (AD)(0) A <= A A <= A A <= A

PC <= PC + 2 PC <= AD PC <= AD si C=0, PC+2 sinon PC <= AD si Z=0, PC+2 sinon

00001100 00001101 00001110 00001111

12 13 14 15

Tab. 19.2: Jeu dinstructions du processeur

Lexpression A[6..0] indique les 7 bits de poids faibles du registre A. De mme, (AD)[0] correspond au bit de poids 0 du contenu de la mmoire ladresse AD. Nous vous conseillons de vous familiariser avec le jeu dinstructions et les codes associs du microprocesseur en tudiant le programme verif_globale qui servira de jeu de test de simulation pour le microprocesseur.

19.4

Architecture du coeur du nanoprocesseur

Le coeur, comme illustr la gure 19.2 page suivante est compos de quelques registres, dune unit de calcul, dun compteur de programme et dune unit de contrle. Tous les registres du microprocesseur sont pilots par lhorloge sclk (comme horloge systme, system clock en anglais)

200

CHAPITRE 19. TP - NANOPROCESSEUR

et remis zro par ltat bas du signal reset_n.

Fig. 19.2: Intrieur du processeur

Le compteur de programme (PC) Le compteur de programme (8 bits) sert stocker ladresse de linstruction courante. Son mode "standard" de fonctionnement est de sauto-incrmenter lors des phases IF et AF pour aller chercher en squence les dirents octets des instructions excuter. Lincrmentation se fait au moyen du signal inc_PC\verb. En cas dinstruction de saut, il nest pas incrment, mais directement charg (lors de la phase AF) avec le contenu du bus de donne ram_data[7..0], grce au signal load_PC. Le signal load_PC est prioritaire par rapport au signal inc_PC. La machine tat de contrle (CTR) Cette unit contient la machine tat permettant de grer les units du processeur. Elle est donc en charge de squencer les dirents cycles dune instruction (chargement dune instruction, chargement de loprande, puis excution) et de gnrer les signaux de contrle des dirents blocs, sans oublier, bien sr, le signal ram_write de validation dcriture en mmoire. Registres de mmorisation Ce bloc regroupe en fait les quatre registres suivants : le registre de sortie pur le buzzer. le registre daccumulation. le registre dinstruction le registre dadresse

19.5. SQUENCEMENT DES OPRATIONS

201

Tous ces registres fonctionnent de la mme faon : lentre xxx est mmorise sur le front montant de lhorloge si lenable correspondant (load_xxx) est 1. Le multiplexeur dadresses (MUX_ADDR, en sortie du PC) Ce multiplexeur permet de choisir qui, de ladresse "pointeur programme" PC ou de ladresse de donnes AD, doit tre envoy sur le bus dadresse ram_addr de la mmoire. Le choix de lun ou de lautre dpend de ltat courant de fonctionnement du microprocesseur. De manire gnrale, lorsque le microprocesseur va chercher une instruction en mmoire, PC est slectionn, et lorsque le microprocesseur va traiter une donne en mmoire, AD est slectionn. Le choix est contrl par le signal sel_adr. Nous reprsenterons ce choix par lquation suivante : ram_addr[7:0] = sel_adr * AD[7:0] + !sel_adr * PC[7:0] LALU, unit atithmtique et logique Ce bloc prend comme oprandes le contenu de laccumulateur et le bus de donne de la RAM, et eectue dessus lopration indique par I. Selon le type dopration, une retenue entrante peut ventuellement tre prise en compte (C) deux bits sont gnrs Z qui indique si le rsultat de lopration eectue est nul C qui indique si une ventuelle retenue sortante est gnre.

19.5

Squencement des oprations

Le signal reset_n permet de rinitialiser le fonctionnement du microprocesseur. Au premier cycle dhorloge suivant le passage 1 du signal reset_n, le microprocesseur va chercher la premire instruction du programme excuter qui se trouve implicitement ladresse "0" de la mmoire. Lexcution dune instruction seectue systmatiquement en trois cycles dhorloge. Le graphe de la machine tat est rappel dans la gure 19.3 (toutes les sorties ne sont pas indiques).

Fig. 19.3: Graphe dtat du contrleur CTR

19.5.1

Premier cycle "IF"

Pendant le premier cycle (IF pour "instruction fetch") deux oprations sont ralises simultanment. Le registre dinstruction I est charg (load_I = 1) avec le premier octet de linstruction. Ce premier octet est lu dans la mmoire ladresse donne par le pointeur PC. A cet eet, PC est positionn sur le bus dadresse ram_addr de la mmoire (sel_adr = 0).

202

CHAPITRE 19. TP - NANOPROCESSEUR

La deuxime opration consiste incrmenter le compteur de programme PC (inc_PC = 1). Cette opration permettra, pour le cycle suivant, de disposer de ladresse du deuxime octet de linstruction.

19.5.2

Deuxime cycle "AF"

Pendant le deuxime cycle (AF pour "address fetch") deux oprations sont ralises simultanment. Le registre dadresse AD est charg (load_AD = 1) avec le deuxime octet de linstruction. Ce deuxime octet est lu dans la mmoire ladresse donne par le pointeur PC. A cet eet, PC est positionn sur le bus dadresse ram_addr de la mmoire (sel_adr = 0). La deuxime opration consiste mettre jour le compteur programme. Deux cas peuvent se prsenter : Linstruction nest pas un saut. Il faut alors incrmenter le compteur de programme PC (inc_PC=1) de manire disposer du pointeur du premier octet de linstruction suivante. Linstruction est un saut (instruction JMP, instruction JNZ avec Z=0, ou encore instruction JNC avec C=0). Dans ce cas, le pointeur programme PC reoit la valeur de la donne en mmoire ladresse PC (load_PC = 1). Remarque : pour simplier, inc_PC est systmatiquement mis 1. En cas de saut, le bloc PC considerera le signal load_PC comme tant prioritaire.

19.5.3

Troisime cycle "EX"

Le troisime cycle correspond lexcution proprement dite de linstruction. Lopration ralise dpend de linstruction stocke dans le registre dinstruction I. Dans tous les cas, le contenu de la mmoire ladresse dtermine par le pointeur stock dans AD au cycle prcdent, est lu de la mmoire et plac sur le bus dentre ram_data (sel_adr = 1). Dans le cas dune instruction "non opratoire" (NOP, STA, OUT, JMP, JNC ou JNZ), le contenu de laccumulateur nest pas modi (LOAD_AZC = 0). Dans le cas contraire, le rsultat de lopration est mmoris dans laccumulateur (LOAD_AZC = 1). Remarque : linstruction LDA est considre comme une instruction opratoire (accu <= ram_data, donc LOAD_AZC = 1). Dans le cas de linstruction OUT, la valeur du bit de poids faible de ram_data, ram_data[0], est stocke dans le registre BZ (LOAD_BZ = 1). Dans le cas de linstruction STA, le contenu de laccumulateur accu est stock en mmoire (ram_write=1) ladresse mmoire dtermine par le pointeur stock dans AD au cycle prcdent. Le chronograme 19.4 page suivante permet de rsumer les dirents cas.

19.6

Travail demand

Vous venez de lire les spcications dun petit micro-processeur, appel nanoprocesseur, destin synthtiser de douces mlodies. Comme tout projet bien spci, direntes quipes ont pu travailler de faon indpendante la conception des dirents modules. Ainsi, la carte contenant les dirents composants lectroniques et acoustiques est prte, un programme assembleur de test et un autre gnrant de doux sons sont dja crits, le schma global est termin ainsi que les sous-blocs ALU, REG, MEMOIRE. Hlas, lors de la phase nal dintgration, le chef de projet ralise, tardivement, il est vrai, que les quipes charges des blocs PC et CTR ont fait un travail de tellement pitre qualit, quil juge prfrable de les reconcevoir compltement. A vous de jouer...

19.7. VERILOG OU SCHMA ?

203

Fig. 19.4: Chronogrammes du processeur

19.7

Verilog ou schma ?

Vous avez jusqu prsent travaill avec des schmas. Sans renier lutilit des schmas pour des circuits simples ou pour donner une vue densemble dun systme, il faut quand mme avouer quils ne se prtent pas tellement la ralisation de circuits complexes : vous vous imaginez placer et relier entre eux les quelques 80.000 bascules D dun Pentium, ainsi que les centaines de milliers de portes autour deux ? Nous non... Cest pour faciliter la description de circuits complexes que les langages de description de matriel ont t invents. Ces langages reprsentent les circuits sous forme textuelle. Ils peuvent reprsenter : non seulement la structure des circuits ("ici je met telle porte, ici tel bloc, et je les relie de telle et telle faon"...) mais aussi leur comportement : plutt que de dire que le bloc "additionneur" est compos de plein de petit additionneurs 1 bit, on dit simplement : resultat[8:0] = a[7:0] + b[7:0] + cin ! ! ! Vous allez raliser ce circuit laide de lun de ces langages : Verilog. Il en existe dautres (VHDL, SystemC, Conuence, ...), mais Verilog a quelques gros avantages : il ressemble beaucoup au C, avec quelques extensions pour reprsenter des ls, des fronts montant, etc... il est simple les programmes qui comprennent les schmas (pour les tranformer en portes physiques relles) comprennent gnralement aussi Verilog. si on sait expliquer la fonctionnalit dun bloc avec des mots simples (en franais), on sait lcrire en Verilog. Le but nest pas de faire de vous des gourous de Verilog (a viendra plus tard), mais plutt de vous en donner susament de bases pour que vous puissiez vous dbrouiller.

204

CHAPITRE 19. TP - NANOPROCESSEUR

Allez tout dabord faire un tour sur la page Verilog en 12 minutes, pour en avoir un petit aperu !

19.8

Conception du bloc PC

La premire tape consiste bien videmment dterminer le fonctionnement exact de ce bloc partir des spcications globales. Remarque : vous pouvez vous reporter la leon sur le processeur ( 8 page 117) pour vous aider... Puis, partir de ces spcications, il faut en crire le code Verilog. Vous trouverez dans le rpertoire des sources (src) : le squelette du bloc PC dont nous avons dj crit len-tte : pc.v (le bloc PC a t appel REGPC, parce que le nom PC tait dj pris par le bus PC, sa sortie ... ) le squelette du bloc CTR dont nous avons dj crit len-tte : ctr.v le reste des chiers (alu.v, nanoproc.v, mux_adr.v, ...) Lancez votre diteur de texte favori, par exemple : xemacs src/pc.v & , puis compltez le code du PC. Lorsque vous pensez avoir quelque chose qui tient la route, simulez-le en lanant, depuis le rpertoire nanoproc : make simu_pc . Aprs un certain temps, le simulateur doit vous acher : "le bloc PC fonctionne", et la fentre de chronogrammes doit avoir la mme tte que la gure 19.5.

Fig. 19.5: Chronogrammes du PC

Si le simulateur vous donne une erreur, cest que votre code Verilog comporte une erreur de syntaxe. Fermez le simulateur, corrigez-la, et relancez la simulation. Si les chronogrammes ne sont pas assez grands, vous pouvez zoomer laide des icnes une partie prcise avec licne . . Vous pouvez aussi zoomer sur

19.9

Conception du bloc CTR

Fig. 19.6: Bloc CTR

De nouveau, il faut commencer par extraire des specications le comportement exact de la machine tats, en dduire une architecture, et la coder en Verilog.

19.9. CONCEPTION DU BLOC CTR

205

Registre dtat courant Cette machine tats ne comportant que 3 tats qui senchane dans un ordre xe, elle sera code en one-hot. Ltat courant sera donc stock dans trois registres, quon appelera cycle[2:0], dont len-tte a dj t crite. Vous aurez complter le code de ces trois registres, cest--dire dterminer ce qui leur sera aect au front montant de lhorloge, selon ltat des entres, et de reset_n... Calcul des sorties Le calcul des sorties est un bloc purement combinatoire. Vous aurez donc dterminer ce qui est aect aux direntes sorties en fonction des entres et de ltat courant (cycle[2:0]). Si lquation est simple, vous donnerez la sortie en question un type wire ( dclarer au bon endroit), et vous laecterez avec un assign sortie_xxx = .... ; Si lquation est moins simple, vous utiliserez les instructions volues de Verilog, en : donnant la sortie en question le type reg, et en laectant au sein dun bloc always @* begin ... end. Vous pouvez alors utiliser les if, les case, ... Pour ce style dcriture, vous pouvez vous inspirer du code de lALU (alu.v) La simulation du bloc CTR sera une simulation globale du microprocesseur et de sa RAM !

19.9.1

Validation

Vous pouvez vrier le bon fonctionnement de CTR en simulant directement le systme complet (nanoprocesseur + mmoire) avec un programme de test. Ce programme, nomm verif_globale permet dexcuter toutes les instructions du nanoprocesseur. Pour cela, vous avez deux options : la simulation (virtuelle) et lexcution pas--pas sur la maquette.

19.9.2

Simulation

Placez vous dans le rpertoire nanoproc, et lancez la simulation de lensemble avec le programme verif_globale : make simu Au bout dun certain temps, le simulateur ouvre une fentre de chornogrammes qui doivent avoir la mme tte que ceux en gure 19.7.

Fig. 19.7: Chronogrammes de la simulation du programme de test verif_globale

Ces chronogrammes sont disponibles en version plus grande en cliquant ici.

206

CHAPITRE 19. TP - NANOPROCESSEUR

Nous avons inclus dans ces chronogrammes les signaux ncessaires la comprhension de ce qui se passe dans le processeur : lhorloge et le reset les signaux relis la RAM le signal pilotant le buzzer les trois registres principaux du processeur I : le registre dinstructions, sous forme hexadcimale et textuelle PC : le compteur de programme accu : laccumulateur les entres et sorties de lALU les entres et sorties du bloc contrleur CTR. Pour suivre les chronogrammes, il est conseill de se rapporter la page du programme de test verif_globale, et de suivre le droulement du programme cycle par cycle. Il est galement possible de comparer vos chronogrammes des chronogrammes de rfrence. Pour cela : Dans Tools -> Waveform Compare -> Start Comparison, choisir vsim_ref.wlf, Dans Tools -> Waveform Compare -> Add -> Compare by Region choisir simu (tous les ports et signaux de la simulation), Dans la fentre des chronogrammes, la liste des dirences est ache sous les signaux (avec une icne en forme de triangle jaune). Et cliquez sur Tools -> Waveform Compare -> Run Comparison. Les dirences (si tant est quelles existent) apparaissent en rouge. Par exemple, ces chronogrammes (visibles seulement depuis la version HTML) mettent en vidence le dysfonctionnement provoqu par le bug suivant : assign load_PC = cycle[2] && ( I==13 || ( I== 14 && !C ) || ( I== 15 && !Z ) ); (la logique correcte tant assign load_PC = cycle[1] ...).

19.9.3

Test rel

Lors la simulation est correcte, vous pouvez aussi suivre le droulement du programme "en vrai", sur la maquette de test. Pour cela, il faut tranformer le code Verilog en une liste de portes (netlist) comprhensible par le FPGA. Ceci est fait au moyen des mme programmes que ceux que vous avez utiliss au dernier TP. Placez-vous dans le rpertoire nanoproc , et lancez la compilation des sources Verilog en une liste de portes pour le FPGA : make Si la compilation sest termine sans erreurs, lancez la programmation du FPGA (aprs avoir mis la maquette sous tension...) : make program Le FPGA doit commencer excuter le programme de vrication. Il y a deux modes dexcution de ce programme de test : pas--pas, si linterrupteur SW1 est 1 (en position vers le haut) Cest le bouton BTNA qui donne alors lhorloge (un appui = un coup dhorloge) automatique, si linterrupteur SW1 est 0 (en position vers le bas) Lhorloge est alors gnre automatiquement, et le programme sexcute vitesse normale (25MHz). Vous pouvez suivre ltat de certain signaux du processeur : sur les deux acheurs 7 segments de gauche : ram_addr[7:0] sur les deux acheurs 7 segments de droite : accu[7:0] sur les LEDs rouge, en binaire : I[3:0] Ici aussi, il est recommand de suivre lexcution du programme pas pas, en vriant chaque tape laide de la page du programme de test verif_globale.

19.10. QUESTIONS SUBSIDIAIRES

207

19.9.4

Test musical

Pour nir le test de votre processeur, nous vous proposons de lui faire jouer un petit morceau de "musique". Pour cela, appelez un enseignant qui branchera un haut-parleur sur votre maquette. Puis lancez la compilation du processeur en lui passant en argument le programme musical : make chicken. Programmez le FPGA : make program

19.10

Questions subsidiaires

Pour les plus rapides, voici quelques sujets dinvestigation... 1. Montrer que les instructions JNC, JNZ, JMP, ROL, ROR et OUT peuvent tre excutes en deux cycles. Modier le contrle en consquence. 2. Comment augmenter de 256 1024 la taille de la mmoire ?

Index
A Forme algbrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Additionneur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 canonique conjonctive . . . . . . . . . . . . . . . . . . 36 canonique disjonctive . . . . . . . . . . . . . . . . . . . 35 B conjonctive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 disjonctive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Bascules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 G latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Graphe dtat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 point mmoire . . . . . . . . . . . . . . . . . . . . . . . . . . 88 registre dcalage . . . . . . . . . . . . . . . . . . . . . . 93 I RS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Setup, Hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Interrupteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Binaire oprateur . . . . . . . . . . . . . . . . . . . . . . . . . . . 24, 27 K C Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 construction du tableau . . . . . . . . . . . . . . . . 38 CA2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 fonctions non compltement dnies . . . . 40 Chemin critique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 simplication . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 consommation . . . . . . . . . . . . . . . . . . . . . . . . . . 80 L Codage BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Gray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 p parmi n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 parit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 simple de position . . . . . . . . . . . . . . . . . . . . . . 47 fonctions, reprsentation . . . . . . . . . . . . . . . . 34 Codage binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 reprsentation schmatique . . . . . . . . . . . . . 41 Comparateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 Logique squentielle . . . . . . . . . . . . . . . . . . . . . . . . . 85 Complmentarit. . . . . . . . . . . . . . . . . . . . . . . . . . . .60 construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Consommation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 circuit CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . 81 M porte CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Conversions entre bases . . . . . . . . . . . . . . . . . . . . . 48 Machines tats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 D Dimensionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 F Flip op . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Fonction logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Fonctions arithmtiques . . . . . . . . . . . . . . . . . . . . . 51 tat futur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 adjacent . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 alatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 one hot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 registre dtat . . . . . . . . . . . . . . . . . . . . . . . . . 105 sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

208

INDEX

209

O Oprateur binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 P Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Portes logiques additionneur . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 comparateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 NON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 NON-ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 NON-OU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 OU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 OUEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 soustracteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Propagation, temps de inverseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 modle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 R Registre dcalage. . . . . . . . . . . . . . . . . . . . . . . . . .93 Reprsentation complment 2 . . . . . . . . . . . . . . . . . . . . . . . . 49 des nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 signe et valeur absolue . . . . . . . . . . . . . . . . . . 49 Reprsentation des nombres . . . . . . . . . . . . . . . . . 47 S Schma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Signal lectrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 numrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Soustracteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Systme numrique . . . . . . . . . . . . . . . . . . . . . . . . . 19 T Table de vrit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Temps de propagation . . . . . . . . . . . . . . . . . . . . . . 67 Transistor MOS dimensionnement . . . . . . . . . . . . . . . . . . . . . . . 79 modle en interrupteur . . . . . . . . . . . . . . . . . 57 V Vitesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67