Vous êtes sur la page 1sur 330

SCIENCES SUP

Cours et exercices corrigs


Master coles dingnieurs

CONCEPTION DES CIRCUITS VLSI


DU COMPOSANT AU SYSTME
Franois Anceau Yvan Bonnassieux

CONCEPTION DES CIRCUITS VLSI

CONCEPTION DES CIRCUITS VLSI


Du composant au systme

Franois Anceau
Professeur au Conservatoire National des Arts et Mtiers

Yvan Bonnassieux
Matre de confrences lcole Polytechnique

Dessin des masques dune Unit Arithmtique et Logique (UAL) - Voir chapitre 6 Dvelopp par le laboratoire SOC/Lip6 de luniversit Pierre et Marie Curie - Paris VI

Ce pictogramme mrite une explication. Son objet est dalerter le lecteur sur la menace que reprsente pour lavenir de lcrit, particulirement dans le domaine de ldition technique et universitaire, le dveloppement massif du photocopillage. Le Code de la proprit intellectuelle du 1er juillet 1992 interdit en effet expressment la photocopie usage collectif sans autorisation des ayants droit. Or, cette pratique sest gnralise dans les

tablissements denseignement suprieur, provoquant une baisse brutale des achats de livres et de revues, au point que la possibilit mme pour les auteurs de crer des uvres nouvelles et de les faire diter correctement est aujourdhui menace. Nous rappelons donc que toute reproduction, partielle ou totale, de la prsente publication est interdite sans autorisation du Centre franais dexploitation du droit de copie (CFC, 20 rue des GrandsAugustins, 75006 Paris).

Dunod, Paris, 2007 ISBN 978-2-10-050036-9


6 KJA HAFH IA J=JE K HAFH @K?JE E J CH= A K F=HJEA A B=EJA I= I A ? IA JA A J @A =KJAKH K @A IAI =O= JI @H EJ K =O= JI ?=KIA AIJ E E?EJA IA A + @A @A = FH FHE J E JA A?JKA A )HJ  " AJ ? IJEJKA K A ? JHAB= H FHE A F=H A + @A F = 5AK AI I J =KJ HEI AI )HJ  # AI ? FEAI K HAFH @K?JE I IJHE?JA A J H IAHL AI X KI=CA FHEL @K ? FEIJA AJ @AIJE AI X K A KJE EI=JE ? A?JELA =E IE GKA AI = = OIAI AJ ? KHJAI ?EJ=JE I KIJEBE AI F=H A ?=H=?J HA ?HEJEGKA F @=C CEGKA K @ E B H =JE @A KLHA X =GKA A A AI I J E ? HF H AI I KI H IAHLA J KJAB EI @K HAIFA?J @AI @EIF IEJE I @AI =HJE? AI   X   @K Z A + @A HA =JELAI X = HAFH @K?JE F=H HAFH CH=FDEA

Table des matires

CHAPITRE 1 INTRODUCTION
1.1. Lvolution technologique 1.2. Lvolution des circuits intgrs 1.3. Petit historique de la circuiterie logique 1.4. le monde intrieur aux circuits intgrs 1.5. Leffort de conception des circuits intgrs 1.6. Les langages de conception

1
2 3 5 6 8 10

CHAPITRE 2 DU SILICIUM LINVERSEUR CMOS


2.1. Semiconducteurs 2.1.1 Semiconducteur intrinsque 2.1.2 Semiconducteur de type N 2.1.3 Semiconducteur de type P 2.2. Diode/jonction 2.3. Capacit MOS 2.4. Transistor MOS 2.4.1 Courant dans un transistor MOS 2.4.2 Cas des transistors P 2.4.3 Effets du second ordre

13
13 13 15 15 15 16 19 20 24 24

Dunod La photocopie non autorise est un dlit.

VI

Conception des circuits VLSI

2.5. Linverseur CMOS 2.5.1 Caractristique de transfert de linverseur 2.5.2 Niveaux logiques 2.5.3 Inverseur minimal 2.5.4 Caractrisation dynamique de linverseur minimal

26 26 32 33 34

CHAPITRE 3 FABRICATION DES CIRCUITS INTGRS


3.1. Introduction 3.1.1 Photolithographie optique 3.2. Squence de fabrication dun inverseur CMOS 3.2.1 Fabrication des tranches de silicium 3.2.2 tape 1 : ralisation du caisson N 3.2.3 tape 2 : prparation des zones actives 3.2.4 tape 3 : ralisation des grilles 3.2.5 tape 4 : dopage des zones actives 3.2.6 tape 5 : ralisation des via des contacts 3.2.7 tape 6 : ralisation des connexions en mtal 1 3.2.8 tape 7 : ralisation des via mtal 1 mtal 2 3.2.9 tape 8 : ralisation des connexions en mtal 2 3.3. Principes de dnition des rgles de dessin 3.3.1 Les diffrents types de contraintes 3.3.2 Exemples de rgles de dessin

41
41 42 44 44 46 49 51 54 55 56 58 59 61 62 63

CHAPITRE 4 RSEAUX DE CONDUCTION ET PORTES


4.1. Reprsentation symbolique des signaux 4.1.1 Signaux logiques 4.1.2 Chronogrammes 4.1.3 Signaux vnementiels et de valeur 4.1.4 Propret dun signal 4.1.5 Validation des signaux temporels (horloges) 4.2. Le transistor vu comme un interrupteur 4.2.1 Imperfections 4.3. Rseaux de conduction 4.3.1 Logique de conduction 4.3.2 Utilisation des rseaux de conduction 4.4. Portes logiques 4.4.1 Consommation des portes logiques 4.4.2 Portes CMOS classiques 4.4.3 Portes CMOS non classiques 4.4.4 Portes 3 tats

67
67 67 68 69 70 71 72 72 73 73 75 76 76 77 80 85

Table des matires

VII

4.5. Logique dynamique 4.5.1 Logique Domino 4.5.2 Partage de charges 4.6. Logique matricielle 4.6.1 Matrice de ROM 4.6.2 Utilisation des matrices de ROM comme reconnaisseurs/dcodeurs 4.6.3 PLA-ROM 4.6.4 ROM 4.6.5 PLA boolen 4.6.6 Alimentation pulse 4.6.7 PLA dynamique 4.6.8 Optimisation des PLA

88 89 89 91 91 94 95 98 98 100 100 103

CHAPITRE 5 DESSIN DES MASQUES DUN CIRCUIT INTGR


5.1. Dnition du problme 5.2. Conception topologique 5.3. Rgles symboliques 5.3.1 Rgles dites au Lambda 5.3.2 Dessin symbolique sur grille 5.4. Couches technologiques et ux dinformation 5.4.1 Organisation matricielle du dessin des blocs 5.4.2 Affectation des ux aux couches technologiques 5.5. Dessin des portes CMOS classiques 5.5.1 Dessin dun rseau de conduction 5.5.2 Dessin des portes classiques 5.6. Dessins squelettiques 5.7. Dessin des ROM et des PLA 5.7.1 Matrices NOR 5.7.2 Matrices NAND
Dunod La photocopie non autorise est un dlit.

105
105 106 107 107 108 109 109 111 111 112 113 117 118 118 119 120

5.8. Assemblage des macro-blocs dun circuit

CHAPITRE 6 OPRATEURS ARITHMTIQUES


6.1. Introduction 6.1.1 Oprations ralises 6.1.2 Reprsentation des nombres 6.2. Additionneur 6.2.1 Rutilisation de laddition 6.2.2 Addition binaire 6.2.3 Synthse dune cellule dadditionneur

121
121 121 122 122 123 123 124

VIII

Conception des circuits VLSI

6.2.4 Additionneur parallle

128

6.3. Unit arithmtique et logique (UAL) 6.3.1 Calcul du OU-exclusif 6.3.2 Calcul du OU 6.3.3 Calcul du ET 6.3.4 Schma et dessin de la cellule dUAL complte 6.4. Multiplieur cbl 6.4.1 Multiplieur simple

130 130 131 131 131 134 134

CHAPITRE 7 SYSTMES SQUENTIELS


7.1. Dnitions 7.1.1 Reprsentation du comportement des systmes squentiels 7.2. Systmes squentiels asynchrones 7.3. Systmes squentiels synchrones 7.3.1 Ralisation des systmes synchrones 7.4. Systmes polyphass 7.4.1 Notion de latches 7.4.2 Systmes polyphass 7.5. Systmes monophass 7.5.1 Bascules 7.5.2 Systmes monophass 7.6. Systmes mixtes monophass/polyphass

137
137 139 139 140 142 142 142 145 153 154 162 168

CHAPITRE 8 LMENTS DE VHDL


8.1. Bref historique des langages de description du matriel 8.2. Structure dune description VHDL 8.2.1 Lentit 8.2.2 Larchitecture 8.3. Les diffrents types de description 8.3.1 Descriptions structurelles 8.3.2 Descriptions fonctionnelles 8.3.3 Descriptions procdurales 8.3.4 Descriptions mixtes 8.4. Types des signaux et des variables 8.4.1 Types standard et drivs 8.4.2 Types IEEE 8.5. Expressions 8.5.1 Attributs des signaux

171
171 173 174 174 175 175 177 178 180 180 180 182 183 183

Table des matires

IX

8.5.2 Oprateurs 8.5.3 Temps de transit

184 184

8.6. Instructions de connexion conditionnelle 8.6.1 Multiplexeurs 8.6.2 Logique 3 tats et latches 8.6.3 Blocs 8.7. Comportement temporel des descriptions 8.7.1 Intervalle temporel de dnition des signaux 8.7.2 Cas des dispositifs temps de rponse trs long 8.8. Instructions spciques aux processus 8.8.1 Instructions conditionnelles 8.8.2 Instruction de choix 8.8.3 Instructions de bouclage 8.8.4 Mise en attente dun processus 8.8.5 Filtrage des vnements lors de lexcution dun process 8.8.6 Choix du front de dclenchement dun process 8.9. Descriptions comportementales 8.10. Fonctions 8.10.1 Programmation des fonctions 8.10.2 Fonctions de rsolution de conits 8.11. Packages 8.11.1 Mise en uvre des packages 8.12. Duplication et paramtrisation du matriel 8.12.1 Structures vectorielles et matricielles 8.12.2 Paramtrisation du matriel 8.13. Matriel complmentaire 8.13.1 Environnement de simulation

185 185 186 187 187 187 188 189 189 190 190 191 192 192 193 193 193 194 194 195 195 195 196 197 197

CHAPITRE 9 CONCEPTION ALGORITHMIQUE DES CIRCUITS VLSI COMPLEXES


Dunod La photocopie non autorise est un dlit.

199
199 200 201 201 203 205 207 207 208 210

9.1. Introduction 9.2. Domaines dapplication de cette technique de conception 9.3. Description du comportement 9.3.1 Description du squencement 9.3.2 Choix du compromis cot/performance 9.4. Dmarche gnrale de conception 9.5. Conception du chemin de donnes 9.5.1 Spcication du chemin de donnes de la montre 9.5.2 Mise sous forme standard des instructions opratives 9.5.3 Conception physique du chemin de donnes

Conception des circuits VLSI

9.6. Architecture temporelle 9.6.1 Fonctionnements relatifs du squenceur et du chemin de donnes 9.7. Conception du squenceur de la montre 9.7.1 Mise en forme de lalgorithme 9.7.2 Ralisation du squenceur de la montre 9.7.3 Contenu du PLA 9.7.4 Optimisation topologique du PLA 9.7.5 Squencement global de la montre 9.7.6 Description VHDL du squenceur de la montre 9.8. Autres organisations possibles de squenceur 9.8.1 Squenceurs microprogramms 9.8.2 Squenceurs cbls 9.9. Dessin des squenceurs

218 219 223 223 224 224 226 226 226 230 230 234 240

CHAPITRE 10 MCANISMES DHORLOGERIE


10.1. Mcanismes classiques dhorlogerie 10.2. Horlogerie des circuits rapides et complexes 10.2.1 Notion de zone isochrone 10.2.2 Distribution de lhorloge 10.3. Vers le futur

243
243 244 248 249 253

CHAPITRE 11 OUTILS ET MTHODES DE CONCEPTION DES CIRCUITS INTGRS COMPLEXES


11.1. Contexte 11.2. La matrise des cots de conception 11.3. Circuits compils 11.4. Circuits custom 11.4.1 Styles de conception 11.5. Vrication de la conception 11.6. Systmes intgrs SOC (Systems On Chip) 11.7. La suite

257
257 258 259 261 262 262 263 264

CHAPITRE 12 EN GUISE DE CONCLUSION EXERCICES

267 269

Table des matires

XI

ANNEXE 1 RAPPELS DALGBRE DE BOOLE


A1.1. Dnition A1.2. Interprtation A1.3. Fonctions boolennes A1.3.1 Terme A1.3.2 Forme canonique dune fonction boolenne A1.3.3 Simplication dune fonction boolenne A1.3.4 Duale dune fonction boolenne A1.3.5 Proprits du OU-exclusif A1.3.6 Vision dissymtrique des fonctions boolennes

297
297 298 299 299 300 300 300 301 301

ANNEXE 2 TUDE DUNE MONTRE AVEC AFFICHAGE


A2.1. Organisation de lafchage A2.2. Nouvel algorithme A2.3. Optimisation de lalgorithme A2.3.1 Organigramme A2.4. Conception du chemin de donnes A2.4.1 Forme standard A2.4.2 Schma du chemin de donnes A2.5. Conception du squenceur

303
303 303 307 308 309 309 310 311

Dunod La photocopie non autorise est un dlit.

Chapitre 1

Introduction

Dunod La photocopie non autorise est un dlit.

Lobjectif de cet ouvrage est de prsenter les techniques de conception des circuits intgrs CMOS complexes. La conception de circuits lectroniques logiques a dbut dans les annes 1950 avec le dveloppement du RADAR et des premiers ordinateurs. Elle sest ensuite dveloppe, surtout aux tats-Unis, dans lindustrie et dans les dpartements dElectrical Engineering des grandes universits amricaines, au cours des annes 1970 et 80 avec lapparition des microprocesseurs VLSI nMOS puis CMOS. Les centres de recherche se sont intresss cette discipline partir du milieu des annes 1970 avec limplication dinformaticiens qui souhaitaient raliser des microprocesseurs [ANC86]. La publication internationale de louvrage de Mead et Conway [MEA80] joua le rle dun vritable dtonateur. Du jour au lendemain, de nombreuses quipes de recherche se mirent dessiner des circuits. Des organisations furent mises sur pied pour permettre la ralisation de circuits universitaires. Malheureusement, tous les pays concerns ne surent pas retirer le mme prot de cet lan. La matrise de la conception des circuits intgrs VLSI est une condition ncessaire au dveloppement dune industrie lectronique performante. Alors quune seule chane de fabrication permet la ralisation de nombreux circuits diffrents, la conception de ces circuits (souvent spciques aux besoins de lindustrie) ncessite de nombreux concepteurs, ce qui ouvre de larges perspectives professionnelles dans cette discipline. Ltude de la circuiterie VLSI fait appel tout un ensemble de notions qui ne font pas partie des cursus habituels de physique et dinformatique. Certains ne sont pas, ou plus, enseigns. Ils font partie du savoir-faire des concepteurs de circuits intgrs complexes, comme par exemple la technique des circuits polyphass. Une tude approfondie de lensemble des sujets abords ncessiterait dcrire une encyclopdie. Nous avons donc choisi de ne traiter que les lments importants de chaque domaine

1 Introduction

et de ngliger les domaines qui ne comportent pas de spcicit microlectronique, pour pourvoir disposer dun point de vue global sur cette discipline et permettre ainsi son approfondissement ultrieur.

1.1

LVOLUTION TECHNOLOGIQUE

Depuis une cinquantaine dannes, lvolution de la complexit des circuits intgrs double tous les 18 mois (loi de Moore [MOO65]). Cette volution exponentielle a permis de raliser, de manire monolithique, des organes lectroniques de plus en plus complexes qui taient auparavant raliss sous la forme darmoires (par exemple : des processeurs, des mmoires, des commutateurs tlphoniques).
Nb Tr
1 000 000 000

Prvision Intel

100 000 000

10 000 000

1 000 000

Pentium 4 Celeron Pentium II PPC620 Pentium-Pro PPC601 Pentium MC68040 I486 MC68020 I386 I286

INTEL

MOTO / IBM
100 000

MC 68000
10 000

MC6800 I8008 I4004


1975

I8086

1 000 1970

1980

1985

1990

1995

2000

2005

2010

Figure 1.1

volution exponentielle de la complexit des microprocesseurs (illustration de la loi de Moore)

Le principal moteur de cette volution rside dans la diminution rgulire de la taille des motifs de dessin des circuits intgrs. Partis de quelques dizaines de microns dans les annes 1960, ceux-ci sont maintenant de 60 nm en 2006, et tout montre que cette volution nest pas termine. La capacit de lindustrie microlectronique poursuivre cette volution est proprement incroyable. Elle surprend tout le monde, y compris les experts. Ceux-ci, runis au sein dune organisation appele SIA (Semiconductor Industry Association), publient rgulirement des prdictions (appeles ITRS pour International Technology Roadmap for Semiconductors) qui savrent systmatiquement sous-values pour un futur qui dpasse trois ans, cest--dire lhorizon de leurs recherches. La meilleure prdiction est encore le simple prolongement du pass, aussi incroyable quil puisse tre.

1.2

Lvolution des circuits intgrs

Taille des motifs minimaux (microns)


100

55m

12m
10

6m

5m 4m 3m

2m 1m

0,1

800nm 350nm apparition des 250nm phnomnes 180nm 130nm 90nm quantiques 65nm 45nm prdiction Intel

0,01 1960 1970 1980 1990 2000 2010 2020

Figure 1.2

volution de la taille des motifs minimaux de la technologie

1.2

LVOLUTION DES CIRCUITS INTGRS

Lvolution des circuits intgrs est certainement laventure technologique la plus fabuleuse de lhistoire humaine. Lampleur des progrs raliss dpasse de loin tout ce qui a t fait dans les autres domaines, y compris laviation et le spatial. Les circuits intgrs utilisent deux types de composants actifs, appels transistors : Les transistors effet de champ, proposs par J.E. Lilienfeld en 1925-1928 [LIL33], mais pratiquement raliss par M.M. Atalla, D. Kahng et E. Labate n 1959. Lide matresse de ces composants tait la transposition ltat solide dune triode. Ceux-ci ont t appels FET puis MOS-FET, puis MOS. Ils ont successivement t raliss avec des grilles mtalliques (technologie PMOS grille alu) puis avec des grilles en polysilicium (technologie nMOS) puis sous forme complmentaire (technologie CMOS). Les transistors dits bipolaires , dcouverts sous une premire forme (transistors pointes) par J. Bardeen et W.H. Brattain aux laboratoires Bell le 23 dcembre 1947 [BAR50], puis sous leur forme dnitive (transistors jonctions) en 1948 par W. Shockley [SHO76] au terme dune tude thorique. Contrairement aux transistors effet de champ, dont le dbit est command par une tension, les transistors bipolaires se comportent comme des amplicateurs de courant.

Dunod La photocopie non autorise est un dlit.

1 Introduction

La plus grande facilit de fabrication et dutilisation des transistors effet de champ leur a permis de devenir les composants fondamentaux des circuits complexes partir de 1975. Les premiers circuits intgrs furent raliss, quasi simultanment par Jack Kilby chez Texas Instrument (le 12 septembre 1958) [KIL64] et par Robert Noyce chez Fairchild [NOY61]. Aprs un combat juridique, la paternit de cette premire ralisation fut attribue Jack Kilby. Les premiers circuits intgrs taient raliss en technologie bipolaire. Ils comportaient quelques dizaines de transistors. Cette technologie fut principalement utilise pour crer les premires familles de composants logiques. En particulier, la famille TTL (pour Transistor-Transistor Logic) ou 74xx qui a perdur jusqu maintenant transpose en technologie MOS sous la forme de composants discrets et de cellules de circuits intgrs complexes. Vers 1970 les circuits intgrs complexes en technologie PMOS grille alu commencrent apparatre. Leur lenteur limitait leur domaine dapplication des mmoires puis aux premiers microprocesseurs. Ted Hoff conut le premier microprocesseur commercial (Intel 4004) en 1972. Larrive de la technologie nMOS vers 1974 permit la mise sur le march des premiers microprocesseurs de grande diffusion 8 bits puis 16 bits (Intel 8080, 8085, 8086 ; Motorola 6800, 6809, 68000 ; Zilog Z80, Z8000 ; MOS 6502), et de leurs composants associs. Pour lutter contre laugmentation de la dissipation thermique, la technologie nMOS fut remplace par la CMOS au dbut des annes 1980, ce qui permit de poursuivre laventure jusquaux microprocesseurs gants actuels regroupant plusieurs centaines de millions de transistors et fonctionnant des frquences de plusieurs gigahertz. Le passage dune technologie la suivante nest pas aussi immdiat quil y parat. Une fois que la faisabilit des nouveaux composants est tablie, il faut encore apprendre utiliser cette technologie. Par exemple, prise navement, la conception manuelle de circuits CMOS se solde par beaucoup de connexions qui occupent de la place et rduisent fortement la densit. Lorsque de bons principes dorganisation topologique furent trouvs, cette technologie permit de raliser des circuits presque aussi denses que ceux raliss avec la technologie nMOS prcdente. La saga des circuits intgrs se heurte actuellement une nouvelle preuve : la dissipation des circuits les plus puissants devient prohibitive. En effet, le passage dune gnration de produits la suivante (par exemple dans le cas des microprocesseurs) ncessite un gain de performance qui rsulte de trois facteurs indpendants : une nouvelle architecture plus performante ; une circuiterie plus rapide ; une technologie plus performante. Or, laugmentation de performance due aux deux premiers facteurs se traduit par une augmentation exponentielle de la consommation. Celle due lamlioration technologique se fait consommation constante (voire dcroissante). Si lon recherche la performance maximale, le rsultat se solde toujours par une augmentation de la consommation. Par unit de surface, cette dissipation a dpass en 1996 celle des plaques de cuisson et elle se dirigeait rsolument vers celle du cur des centrales nuclaires.

1.3

Petit historique de la circuiterie logique

d'aprs Fred Pollack, Intel


10 00

Puissance dissipe W/cm2

Cur de racteur nuclaire


1 00

PII Plaque de cuisson


10

P4 3Ghz PIII P4 1,5Ghz

P Pro Pentium

I386
1

I486
1 0.7

Familles technologiques
0.5 0.35 0.25 0.18 0.13 0.1 0.07

1.5

Figure 1.3

volution de la puissance dissipe par unit de surface des processeurs Intel X86 (daprs [POL99])

La poursuite de cette course aurait ncessit lutilisation de dispositifs de refroidissement trs coteux. Heureusement, lavenir de ces circuits complexes se situe en grande majorit dans des appareils portables (tlphone, gadgets lectroniques, ordinateurs, baladeurs musicaux et vido), ce qui a permis de changer de cible commerciale et de bncier dun sursis momentan.

1.3

PETIT HISTORIQUE DE LA CIRCUITERIE LOGIQUE

Dunod La photocopie non autorise est un dlit.

Les premiers circuits logiques furent des circuits asynchrones relais (ladditionneur Model K de G.R. Stibitz en 1937). Cette technologie issue de la tlphonie se dveloppa entre les annes 1930 et 1950. Des montages tube vide furent aussi utiliss pour le traitement en temps rel des images Radar dans les annes 1940 et 1950. La diffrence importante de tension entre lentre (la grille) et la sortie (lanode) des tubes vide compliquait beaucoup la ralisation de couplages directs entre les tages successifs. Cela conduisit utiliser des couplages capacitifs et une reprsentation des grandeurs logiques sous la forme dimpulsions qui vhiculaient simultanment les valeurs et les instants doccurrence. Les montages lectroniques de cette poque se comportaient comme un rseau de fonctions parcourues par des impulsions dactivation. La grande nouveaut des ordinateurs sest situe dans la rutilisation dun petit ensemble de fonctions pour effectuer une grande varit de tches. Les ordinateurs conus au dbut des annes 1960 taient asynchrones et continuaient utiliser la logique impulsions, malgr le fait que lutilisation de transistors permit de raliser des couplages directs (comme par exemple dans la circuiterie RTL (pour Resistor-Transistor Logic)). Les dures alloues aux oprateurs pour fonctionner taient dtermines par des batteries de monostables dont le rglage ncessitait un

1 Introduction

doigt certain. Pour assainir le fonctionnement de ces machines, la logique synchrone niveaux fut utilise partir du milieu des annes 1960. Elle dboucha sur la cration de grandes familles logiques comme la TTL qui perdure encore jusqu maintenant aprs son passage en CMOS. Larrive des circuits VLSI complexes dans les annes 1970 posa un nouveau problme. Leur technologie, compltement nouvelle, ntait pas ralise avec une grande prcision et des variations importantes de leurs caractristiques taient frquentes entre les lots de circuits. Pour saffranchir de ce problme, une logique polyphase, base sur le principe des cluses, fut utilise. De plus, comme le nombre de transistors disponibles tait toujours infrieur aux dsirs des concepteurs, ceux-ci inventrent des astuces pour en utiliser le moins possible. La logique dynamique et celle dinterrupteurs rent leur entre (ou plutt leur retour !). Pendant ce temps, la logique monophase tait devenue le classique des lectroniciens qui lutilisaient pour raliser des cartes. Laugmentation constante de la complexit des circuits intgrs laissait prvoir la limite de la logique synchrone ds 1980 [ANC82]. Deux familles de solutions furent proposes : La logique asynchrone moderne fut propose ds 1980 sous la forme de lutilisation de signaux impulsionnels transmis de manire diffrentielle par un protocole de poigne de main. Aprs plus de 25 ans defforts, cette proposition acadmique reste un sujet davenir Des techniques de synchronisation des circuits trs complexes furent mises au point dans les annes 1990 et conduisirent au dveloppement des microprocesseurs modernes. Ces circuits sont constitus de blocs synchrones qui reoivent une horloge centrale localement resynchronise. Les contraintes de test dues la complexit des circuits et aux risques de parasitage entre les lignes mtalliques, associ au fait que le nombre de transistors nest plus une contrainte, conduisirent labandon de la logique polyphase ainsi que des techniques de logique dynamique et dinterrupteurs qui posaient des problmes de test, mais surtout qui nentraient pas dans la culture classique des lectroniciens malgr les avantages importants quelles auraient pu apporter. Lavenir de llectronique est la ralisation de petits appareils trs complexes, mais portables et de grande autonomie. Cet objectif ne peut tre atteint que par de nouvelles technologies, mais aussi par de nouvelles techniques de circuiterie dont beaucoup restent inventer.

1.4

LE MONDE INTRIEUR AUX CIRCUITS INTGRS

Lintrieur dun circuit intgr complexe est un univers trs diffrent de celui de la carte de circuit imprim sur lequel il est mont. Toutes les chelles sont rduites par des facteurs importants, de lordre de plusieurs milliers. Par exemple, les dimensions avec lesquelles un circuit intgr est dessin sexpriment, actuellement, en dizaines de nanomtres, alors que le dessin du circuit imprim est ralis au dixime de millimtre.

1.4

le monde intrieur aux circuits intgrs

Les temps de monte, de descente, de transfert sont mesurs en picosecondes lintrieur du circuit intgr et en nanosecondes sur la carte. Il en est de mme pour les capacits, comptes en fentofarads dans le circuit intgr et en picofarads sur la carte. Les courants sexpriment en microampres dans le circuit intgr en en milliampres sur la carte. Par contre, les signaux logiques internes un circuit intgr peuvent atteindre des frquences qui sont actuellement de plusieurs gigahertz, alors quil est difcile datteindre plusieurs centaines de mgahertz sur la carte. Cette numration pourrait tre prolonge, mais il en ressort que tout est rduit dans le monde interne un circuit intgr (sauf la complexit et les performances !) par rapport llectronique traditionnelle . En revanche, un circuit intgr reprsente un monde gigantesque son chelle. Pour risquer une comparaison, il faudrait la faire soit avec une carte routire de toute lEurope (avec une dnition dune dizaine de mtres), soit avec une tapisserie gante de 500 mtres de ct, tisse avec quatre points par centimtre. Tout cela pour montrer que les distances relatives sont gigantesques lchelle du circuit. Lorganisation topologique dun tel circuit relve de techniques qui sont comparer avec lorganisation territoriale des pays.

Dunod La photocopie non autorise est un dlit.

Figure 1.4 Le dessin dun circuit intgr complexe peut tre compar une carte routire de lEurope (avec des dtails de 10 m).

Le passage entre le monde de lintrieur du circuit intgr et celui de la carte sur laquelle il est mont ncessite lutilisation de dispositifs adaptateurs importants pour raliser les correspondances lectriques et gomtriques. Ces dispositifs se composent de deux parties : Un premier niveau dadaptation est ralis par une couronne damplicateurs et des plots de connexion qui occupent gnralement toute la priphrie du circuit intgr. Cette couronne ralise ladaptation lectrique et gomtrique entre le cur du circuit intgr et le botier.

1 Introduction

Le botier ralise un second niveau dadaptation, surtout gomtrique, avec la carte. La couronne comporte des amplicateurs multi-tages pour les sorties, des dispositifs de protection lectrique pour les entres, et des plots de connexion sufsamment gros pour que lon puisse se connecter dessus. Vue de lintrieur du circuit intgr, la commande dun dispositif sur la carte ncessite une amplication et un ralentissement des signaux comparables ceux ncessits par la commande de dispositifs lectromcaniques partir dune carte lectronique. Cela signie que le dialogue entre deux circuits intgrs complexes est comparable au fait de passer par des relais et des servomoteurs pour interconnecter deux cartes dlectronique. Ces importantes limitations sont des facteurs qui poussent mettre toutes les diffrentes fonctions dans le mme circuit intgr en augmentant ainsi sa complexit. Cette tendance est dailleurs incite par lvolution technologique qui permet une augmentation rgulire de la complexit et des performances en diminuant rgulirement la taille des motifs qui permettent le dessin des circuits intgrs.

1.5

LEFFORT DE CONCEPTION DES CIRCUITS INTGRS

La conception des circuits intgrs se fait principalement via deux approches. La premire consiste considrer la technologie VLSI comme une simple volution technologique de la conception des cartes lectroniques. Ces techniques de conception des circuits intgrs peuvent tre vues comme une transposition de celles utilises pour la conception des cartes lectroniques. De telles approches sont utilises par les techniques de conception rapide telle que celle des circuits prdiffuss et des circuits programmables (FPGA, EPLD). La seconde approche consiste se rendre compte que la technologie VLSI possde ses propres spcicits qui peuvent tre exploites pour raliser des circuits beaucoup plus optimiss et plus performants. La circuiterie des circuits VLSI devient alors une nouvelle discipline qui sappuie sur de nouveaux concepts (logique dinterrupteurs, rtention dynamique de linformation, transparence des bascules, circuits polyphass, et qui intgre les aspects topologiques qui conduisent au dessin des masques). Cette relation entre la fonctionnalit des blocs et leur topologie ouvre une dimension tout fait nouvelle dans la conception des circuits lectroniques. La conception optimise des circuits intgrs complexes pose un problme majeur : dessiner la main un circuit intgr complexe revient fournir un travail de type artisanal, cest--dire dont le cot tout compris est peu prs dun lment par heure. Cela signie que le temps de dessin dun microprocesseur moderne serait de lordre de 100 millions dheures de travail ! Un tel cot pharaonique limiterait srieusement le nombre de modles disponibles et en augmenterait fortement le prix de vente. Les faons de rduire ce cot consistent : chercher une organisation du circuit intgr qui multiplie les cellules identiques qui nont qu tre dessines une seule fois ; chercher rcuprer des sous-ensembles les plus gros possibles dun circuit lautre. Cette approche est trs utilise. Dune part, les constructeurs de circuits

1.5

Leffort de conception des circuits intgrs

intgrs disposent de bibliothques de cellules qui sont la base de leur approches de conception automatique. Dautre part, il existe un march pour des sousensembles importants, appels IP (pour Intellectual Property) tels que des processeurs, des mmoires, des modules systmes, etc. Cette thsaurisation de dessins se heurte lvolution des rgles technologiques qui changent tout les six mois et qui demande ladaptation constante des dessins. Les constructeurs de circuits intgrs disposent dquipes qui adaptent en permanence les dessins de leurs cellules de base lvolution de leur technologie. Le troisime volet de cette rduction de cot consiste dessiner automatiquement les circuits laide doutils informatiques intelligents . Les outils de CAO (pour Conception Assiste par Ordinateur) sont parmi les outils informatiques les plus avancs. Ils sont actuellement capables de partir de la description du comportement souhait pour le circuit et de crer niveau par niveau des descriptions de plus en plus prcises de la structure du futur circuit. Toutefois, les dernires tapes sont difciles franchir et actuellement, le processus de conception automatique sarrte lassemblage et linterconnexion de cellules standard dessines manuellement. La thsaurisation des IP se fait dailleurs beaucoup plus au niveau de descriptions synthtisables qu celui des dessins de leurs masques. Malheureusement, ces techniques de conception automatique des circuits intgrs dcoulent de celles initialement dveloppes pour les cartes lectroniques et nutilisent pratiquement pas (pour ne pas dire pas du tout) les spcicits de la technologie des circuits intgrs. Cette option a t prise pour au moins deux raisons : Les spcicits de la technologie microlectronique sont assez diffrentes de celles de llectronique traditionnelle et demandent une refonte profonde des techniques utilises. Le march vis par ces outils se veut plus large que celui des concepteurs de circuits intgrs. Il prsente la microlectronique comme une simple volution technologique capable de raliser les mmes montages que ceux raliss sur carte. Il vise donc permettre aux lectroniciens dutiliser la technologie microlectronique en conservant leur espace culturel . Avec ces outils, un circuit intgr peut tre dessin pour un cot trs infrieur celui de son dessin manuel, mais comme toute mdaille a son revers, ses performances seront infrieures (denviron 50 %) et sa taille sera suprieure (environ double) par rapport une conception manuelle. Ce compromis na rien de surprenant, il est comparable celui obtenu pour le logiciel pour lequel il a t tranch, depuis dj longtemps, en faveur de lautomatisme. La quasi-totalit des circuits intgrs est maintenant compile. Restent les microprocesseurs gants dont environ la moiti de la surface est encore dessine manuellement pour maintenir les performances aux limites de ce qui est possible. Avec les outils modernes, la ralisation lectronique dun circuit intgr devient quasiment invisible pour son concepteur qui nest concern que par la description du comportement escompt. Lutilisation de techniques plus spciques la micro-lectronique redeviendrait donc possible sans perturber lespace cognitif des concepteurs.

Dunod La photocopie non autorise est un dlit.

10

1 Introduction

Toutefois, le fait que les outils actuels permettent dobtenir des rsultats acceptables et que le cot des efforts de recherche et de dveloppement ncessaires pour mettre en uvre ces nouvelles techniques est important, nincite pas les fabricants de logiciels de conception faire cet effort. Pour justier notre effort dans ce contexte morose, nous pensons que des notions de conception manuelle sont utiles toute personne implique dans la conception (mme automatique !) de circuits intgrs, un peu comme la connaissance de la programmation en assembleur peut fournir un contexte culturel tout programmeur dapplications proches des couches basses dun systme informatique.

1.6

LES LANGAGES DE CONCEPTION

Ds la n des annes 1960, ltude de langages daide la conception des montages lectroniques fut entreprise. Deux approches furent adoptes : La premire a consist chercher dcrire le comportement souhait pour de futurs circuits. La seconde fut lie la recherche de la comprhension des notions de base des diffrents niveaux dabstraction de llectronique. Les objectifs de ces langages ont t multiples ds le dpart : spcication (contractuelle) des futurs circuits ; vrication de leur comportement (par simulation puis par vrication formelle) ; entre des outils de synthse automatique des circuits ; dtermination des tests de fabrication de ces nouveaux circuits. Les premiers langages ont t dvelopps dans des contextes de centres de recherche. Comme les techniques de synthse partir du comportement ntaient pas oprationnelles, ceux-ci se sont appuys sur des descriptions abstraites des montages projets. Toutefois, la comprhension de ces niveaux ne fut jamais satisfaisante. Les notions dgages ne purent jamais se dbarrasser compltement du modle informatique sous-jacent. Ce type de langage nit par tre standardis sous la forme de VHDL et de Verilog vers le milieu des annes 1980. Le dveloppement de mthodes de synthse partir de descriptions comportementales relana les efforts dans la premire voie et consacra labandon de la seconde. Les nouveaux langages sont maintenant trs proches des langages informatiques. Cest le cas par exemple de SystemC. On peut toutefois penser que la connaissance des notions de base des diffrents niveaux dabstraction de llectronique serait bien utile Les langages de conception ont toujours donn une base conceptuelle aux concepteurs de circuits intgrs. Leur volution vers linformatique est une rsultante dune certaine diminution de lintrt pour llectronique au prot de linformatique.

1.6

Les langages de conception

11

BIBLIOGRAPHIE
[LIL33] J.E. Lilienfeld, Device for controlling electric current, brevet US n 1 900 018, 7 mars 1933. [BAR50] J. Bardeen et W.H. Brattain, Three electrodes circuit element utilizing semiconductive material, brevet US n2 524 035, 3 octobre 1950. [NOY61] R.N. Noyce, Semiconductor Device-and-lead Structure, brevet US n 2 981 877, 25 avril 1961. [KIL64] J.S. Kilby, Miniaturized Electronic Circuits, brevet US n 3 128 743, 23 juin 1964. [MOO65] G. Moore, Cramming more components onto integrated circuits, Electronics, Vol. 38, n 8, 19 avril 1965. [SHO76] W. Shockley, The path of Junction Transistor, IEEE Transaction on Electron Devices (reprise de 1976), nov. 1984. [MEA80] C. Mead et L. Conway, Introduction to VLSI Systems, Addison-Wesley, 1980, traduction : Introduction aux systmes VLSI, InterEditions, 1983. [ANC82] F. Anceau, A Synchronous Approach for Clocking VLSI Systems, IEEE Journal of Solid-State Circuits, Vol. SC17 n 1, fvrier 1982. [ANC86] F. Anceau, The Architecture of Micro-Processors, Addison-Wesley, 1986. [POL99] F. Pollack, New Microarchitectures Challenges in the Coming Generations of CMOS Process Technologies, Micro32, 1999.

Dunod La photocopie non autorise est un dlit.

Chapitre 2

Du silicium linverseur CMOS

2.1

SEMICONDUCTEURS

Dunod La photocopie non autorise est un dlit.

Les semiconducteurs sont des matriaux qui se situent entre les mtaux et les mtallodes dans le tableau de Mendeleev. Ils sont caractriss par le fait que leur couche lectronique supercielle contient quatre lectrons (ils sont de valence 4). Les principaux semiconducteurs sont le germanium, le silicium et le carbone. Actuellement, seuls le germanium et le silicium sont utiliss en microlectronique. Les alliages de mtauxmtallodes sont aussi utiliss comme matriaux semiconducteurs (tel larsniure de gallium). Le silicium est un mtallode. Cest le principal constituant du sable. Il fut isol en 1823 par Jns Jacal Berzelius. Sa densit est de 2,33, son point de fusion de 1 410 C. Comme le diamant, le silicium cristallise suivant un rseau cubique. Un cristal de silicium contient 5 1022 atomes au cm3. Pour faciliter la comprhension des mcanismes au niveau du cristal, nous utiliserons une reprsentation planaire du cristal de silicium. 2.1.1 Semiconducteur intrinsque Les semiconducteurs trs purs (ayant une proportion dimpurets infrieure 10 12) et monocristallins sont appels intrinsques. Ils sont naturellement isolants car tous les lectrons de leur couche priphrique sont engags dans les liaisons chimiques du cristal. Un trs faible courant peut nanmoins les traverser car lagitation thermique libre quelques lectrons (dans une proportion de 3 1013 temprature ambiante) qui crent un courant. Les places libres par les lectrons librs (appels trous) se comportent comme des charges positives mobiles. Les trous se dplacent par des mouve-

14

2 Du silicium linverseur CMOS

Figure 2.1

Cristal de silicium

+ -+ -+ Figure 2.2

+ -+ -+ -

+ -+ -+ -

+ -+ -+ -

+ -+ -+ -

Reprsentation planaire dun cristal de silicium

ments dlectrons en sens oppos. Le dplacement des trous participe aussi au courant lectrique. Contrairement aux conducteurs, le courant qui traverse les semiconducteurs crot avec la temprature qui libre dautant plus dlectrons quelle augmente. On appelle mobilit , dun lectron ou dun trou, la vitesse moyenne quil acquiert sous leffet dun champ lectrique. vm s = ---------Ev m La mobilit des lectrons est environ le double de celle des trous.

2.2

Diode/jonction

15

2.1.2 Semiconducteur de type N Ladjonction dune faible proportion (107 104) de matriaux de valence 5 (arsenic ou phosphore) appel dopant, dans un cristal semiconducteur fait quun certain nombre de ses atomes sont remplacs par des atomes du dopant (gure 2.3). Ceux-ci engagent quatre de leurs lectrons priphriques dans les liaisons chimiques du cristal tandis que leur cinquime lectron se retrouve libr, laissant latome de dopant charg positivement, donc ionis. Ces lectrons mobiles rendent le matriau dautant plus conducteur quil contient plus de dopant. La mobilit du silicium dop N dpend donc du taux de concentration du dopant. Couramment, elle est denviron 750.

+ - + - +

+ - P

+ - -

lectron mobile

+ - -

+ - -

Figure 2.3

Semiconducteur de type N

2.1.3 Semiconducteur de type P Si le matriaux dopant est maintenant de valence 3 (bore dans une proportion de 10 19 104). Ses atomes vont sengager dans trois liaisons chimiques du cristal (gure 2.4). La quatrime place est inoccupe. Celle-ci peut tre occupe par un lectron libr par lagitation thermique qui cre un trou qui se comporte comme une charge positive mobile. Latome de dopant devient alors un ion ngatif. Les trous mobiles rendent le matriau dautant plus conducteur quil contient plus de dopant. La mobilit du silicium dop P dpend donc du taux de concentration du dopant. Couramment, elle est denviron 380.

Dunod La photocopie non autorise est un dlit.

2.2

DIODE/JONCTION

La coexistence, au sein dun mme cristal dune zone de type N et dune autre de type P produit une jonction leur interface (gure 2.5). Cette jonction produit un effet redresseur. En effet, ltablissement dune diffrence de polarisation dite directe entre ces deux zones (+ sur la zone de type P et sur celle de type N) repousse leurs charges

16

2 Du silicium linverseur CMOS

+ - + - +

+ - B

+ - -

trou mobile

+ + - -

+ - -

Figure 2.4

Semiconducteur de type P

mobiles respectives vers la jonction o elles sannihilent provoquant leur ralimentation, do un courant (gure 2.6). Si la polarit de cette tension est inverse, chaque zone dope va attirer ses charges mobiles qui vont scarter de la jonction, provoquant une zone vide de charges (dite dplte), donc isolante (gure 2.7). Au repos, une certaine quantit dlectrons et de trous sannihilent au travers de la jonction provoquant une polarisation spontane positive de la zone de type N et ngative de celle de type P. Cette polarisation repousse les charges mobiles de la jonction bloquant lannihilation des charges. Pour quun courant puisse circuler, une polarisation directe de la diode doit contrecarrer cette polarisation spontane. Cette tension, de 0,8 v pour le silicium, est appele le seuil de la diode. Elle varie avec la temprature et les caractristiques des matriaux. La zone dplte qui apparat au niveau de la jonction lorsque la diode est bloque ou polarise une tension directe infrieure son seuil de diode, provoque lapparition dune capacit au niveau de la jonction. La valeur de cette capacit peut tre assez importante. Elle dpend de la tension de polarisation.

2.3

CAPACIT MOS

Une capacit MOS (Metal Oxide Semiconductor) est constitue dune armature mtallique, dune couche isolante et dune autre armature en semiconducteur, appele substrat, suppos ici de type P (gure 2.8). Au repos, le substrat contient des charges ngatives xes (les atomes de semiconducteur ioniss) et des charges positives mobiles (les trous). Supposons que le substrat soit maintenu un potentiel xe (0 v) et que llectrode mtallique soit porte un potentiel ngatif. Les trous vont tre attirs et vont venir saccumuler sous llectrode mtallique renforant localement la densit des charges mobiles, do le type P du semiconducteur (gure 2.9).

2.3

Capacit MOS

17

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

type N

jonction

type P

Figure 2.5

Jonction N/P

- - - - - - - - -+ + + + + + + + - - - - - - - - + + + + + + + - - - - - - - - -+ + + + + + + + - - - - - - - - + + + + + + + - - - - - - - - -+ + + + + + + + - - - - - - - - + + + + + + + - - - - - - - - -+ + + + + + + +

type N

recombinaisons

type P

Figure 2.6

Courant direct au travers une jonction

i=0

Dunod La photocopie non autorise est un dlit.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

type N

zone dplte

type P

Figure 2.7

Jonction polarise en inverse

Dans un second temps, portons llectrode mtallique un potentiel positif. Les trous vont alors tre repousss. Ils vont quitter la zone sous llectrode mtallique.

18

2 Du silicium linverseur CMOS

isolant mtal

substrat (silicium P)

Figure 2.8

Capacit MOS

substrat P (+) charge dplace (trous)


Figure 2.9 Capacit MOS (subtrat P) polarise ngativement

Lorsque le potentiel de cette dernire crot, et si le potentiel positif nest pas trop fort, le semiconducteur sous llectrode mtallique va devenir vide de charges mobiles. Il sera dit deplt. Lorsque le potentiel positif de llectrode mtallique crot, celle-ci va attirer les lectrons qui se librent par effet thermique. La densit de ceux-ci sous llectrode mtallique va devenir sufsamment importante pour inverser le type du semiconducteur qui va devenir localement de type N puisque ses charges mobiles deviennent des lectrons (gure 2.10). La tension ncessaire pour inverser le type du semiconducteur est appele la tension de seuil. Elle est note vt.
+

substrat P (-) charges induites (lectrons type N induit)


Figure 2.10 Capacit MOS (subtrat P) polarise positivement

2.4

Transistor MOS

19

2.4

TRANSISTOR MOS

Un transistor MOS (aussi appel transistor FET pour Field Effect Transistor) est constitu dune capacit MOS dont larmature mtallique est appele la grille (gure 2.11). Deux zones de contact en semiconducteur, de type oppos au substrat et appeles source et drain sont disposes, sur le substrat, de part et dautre de la grille. Au repos, la source est isole du drain par deux diodes tte-bche. Si la grille est porte un potentiel tel que le type du semiconducteur du substrat sinverse, alors le drain se trouve reli la source par un pont rsistif, appel canal, qui se trouve tre du mme type de matriaux semiconducteur que la source et le drain. Le potentiel de grille commande donc le passage du courant entre le drain et la source du transistor.
VG (+) grille (polysilicium) isolant (SiO2)

substrat (P) source (N+) canal drain (N+)

Figure 2.11

Transistor MOS de type N

Ce transistor est physiquement symtrique, toutefois son fonctionnement lectrique ne lest pas. Lutilisation dun substrat de type oppos permet de raliser des transistors complmentaires qui deviendront conducteurs pour des potentiels opposs. On parlera alors de transistors N ou P suivant le type du semiconducteur induit pour constituer leurs canaux. Ces transistors sont schmatiss par les symboles suivants :
Dunod La photocopie non autorise est un dlit.

drain grille substrat grille

drain substrat

source

source

Transistor N
Figure 2.12

Transistor P

20

2 Du silicium linverseur CMOS

Les symboles utiliss pour reprsenter les transistors retent leur symtrie physique. Celle-ci sera dailleurs utilise dans certains montages dans lesquels la mme lectrode passera alternativement du rle de source celui de drain et inversement. Dans les schmas lectroniques, llectrode de substrat des transistors MOS est souvent omise compte tenu du caractre systmatique de sa polarisation (0 v pour les transistors N et Vdd pour les transistors P). 2.4.1 Courant dans un transistor MOS La source est prise comme origine de tous les potentiels. Celui de la surface du semiconducteur varie peu prs linairement le long du canal, ce qui fait que la tension de seuil locale vt(x) du semiconducteur varie de vt0 la source vtd au niveau du drain (gure 2.13).
vt vt(x) vg

Vt0 v (le long du canal) vs


Figure 2.13 Diagramme de lvolution de la tension vt le long du canal

La tension aux bornes dune tranche dx de cette capacit est : (vg vt(x))
VD

- + - +
VG

W L x i dx source (N+) drain (N+)

Figure 2.14

Polarisation dun transistor MOS de type N

2.4

Transistor MOS

21

La charge lectrique contenue dans cette tranche sera : - W d x ( vg vt ( x ) ) d q = --e Le courant qui circule du drain la source correspond un dplacement de cette charge lmentaire pendant dt : dq = i dt La vitesse de dplacement des charges (lectrons) est dtermine par leur mobilit : dx dx d t = ----- = d x --------dv v do : d x2 - = --- W d x ( vg vt ( x ) ) i ---------dV e W - ( vg vt ( x ) ) d v i d x = ---e en intgrant le long du canal et en prenant directement vt comme variable, on obtient :
L W vd i d x = ---( vg vt ) d v e vs 0

W vd - ---i = --( vg vt ) d v e L vs W - est --- = c ox est la capacit dun carr unitaire de la grille vis--vis du substrat, ---L e le facteur de forme du transistor. Cette intgration peut se faire graphiquement. Nous supposerons que vt varie linairement le long du canal (gure 2.15) :
vt vg
Dunod La photocopie non autorise est un dlit.

Vt0 v (le long du canal) vs vd


Figure 2.15

22

2 Du silicium linverseur CMOS

Plusieurs cas sont considrer :

vd petit (gure 2.16) :


vt vg

Vt0 v (le long du canal) vs vd


Figure 2.16

Le courant est alors de la forme : W - ( vg V t 0 ) vd i = c ox ---L Cette zone de la caractristique du transistor est appele linaire.

vd ( vg V t 0 ) (gure 2.17)
vt vg i vd2/2 Vt0 v (le long du canal) vs vd
Figure 2.17

2.4

Transistor MOS

23

Le courant est alors de la forme : W vd 2 - ( vg V t 0 ) vd ------i = c ox --- L 2 Cette zone de la caractristique du transistor est appele quadratique.

vd ( vg V t 0 ) (gure 2.18)
vt vg i

Vt0 v (le long du canal) vs vd


Figure 2.18

Le courant est alors constant : W ( vg V t 0 ) 2 - --------------------------i = c ox ---2 L Cette zone de la caractristique du transistor est appele sature. La caractristique i(vd) du transistor est donc :
id
Dunod La photocopie non autorise est un dlit.

vg = ct

vds vg-Vt0 zone zone linaire quadratique zone sature

Figure 2.19

24

2 Du silicium linverseur CMOS

Dans la partie sature de sa caractristique, un transistor MOS se comporte comme un gnrateur de courant. La valeur du courant dans les diffrentes zones de fonctionnement dpend de la capacit unitaire cox de la grille. Cela signie que lpaisseur e de lisolant doit tre la plus faible possible. Dans les technologies modernes, cette paisseur nest que dune fraction de nm, cest--dire de seulement quelques couches atomiques. 2.4.2 Cas des transistors P Les quations qui fournissent la valeur du courant dans des diffrents modes de fonctionnement dun transistor ne provoquent pas linversion du signe de ce courant lors de linversion du signe des potentiels. Elles doivent donc tre considres comme travaillant sur des valeurs absolues. 2.4.3 Effets du second ordre La caractristique dun transistor rel diffre lgrement de celle calcule (gure 2.23). La polarisation locale de la capacit grille ne varie pas linairement le long du canal (gure 2.20).
vt

Vt0 v (le long du canal) vs


Figure 2.20

La mobilit nest pas constante. Elle dpend du champ lectrique. Cest ce qui provoque une pente des caractristiques i(vd) en mode satur. Ce phnomne provient de la formation dune zone deplte, appele pinch-off , entre lextrmit du canal et le drain (gures 2.22 et 2.23). La tension de seuil varie lorsque le canal est court ou troit. Elle diminue si le canal est court et augmente sil est troit.

2.4

Transistor MOS

25

Figure 2.21

Caractristiques dun transistor N (L = 0,6 m, W = 1,5 m)

canal zone de pinch off

Figure 2.22

Zone de pinch-off

id caractristique relle
Dunod La photocopie non autorise est un dlit.

vg = ct

vds vg-Vt0
Figure 2.23

26

2 Du silicium linverseur CMOS

2.5

LINVERSEUR CMOS

Un inverseur est obtenu en montant un transistor N et un transistor P tte-bche. Les deux grilles de ces transistors sont relies entre elles et lentre du montage.
Vdd

Vss
Figure 2.24

2.5.1 Caractristique de transfert de linverseur Lorsque lon fait varier le potentiel dentre Vin du montage de 0 v la tension dalimentation, note Vdd, sa tension de sortie Vout varie de Vdd 0 V. On constate que lorsque Vin est proche de 0 v ou de Vdd, un seul transistor conduit et lautre est bloqu. Cela fait que ce type de montage possde la caractristique intressante de ne dissiper aucune nergie au repos. Avec les technologies modernes (infrieures 100 nm), des courants de fuite viennent obscurcir ce tableau idyllique. Nous remarquons que les deux transistors sont toujours parcourus par le mme courant et que la somme de leurs tensions vds est gale Vdd (gure 2.25). Considrons les diffrentes zones de la caractristique de transfert (gure 2.26). Nous noterons VT la tension de seuil Vt0 rendue commune aux transistors N et P. Zone A : TrN bloqu (vgs < VT) ; i = 0 ; TrP quadratique (Vds = 0 v) ; Vout = Vdd. Zone B : TrN satur (vds Vdd) ; TrP quadratique (vds 0 v). Zone C : TrN satur (vds = Vdd/2) ; TrP satur (vds = Vdd/2). Zone D : TrN quadratique (Vds 0 v) ; TrP satur (vds Vdd). Zone E : TrN quadratique (vds = 0 v) ; i = 0 ; TrP bloqu (vgs < VT)
a) Points caractristiques
Point

Vout = 0 v.

Lexpression du courant commun est :

2.5

Linverseur CMOS

27

Figure 2.25

Caractristique de transfert Vout = f(Vin) dun inverseur rel

Vout A B C

D E Vdd

Vin

Figure 2.26
Dunod La photocopie non autorise est un dlit.

Wn 1 - n c ox ------ ( V V T )2 i = -L n in 2 Wp 1 - [ 2 ( ( Vdd V in ) V T ) ( Vdd V out ) ( Vdd V out ) 2 ] - p c ox ------= -Lp 2 en supposant que linverseur est quilibr, cest--dire que : Wn Wp - = p c ox ------ n c ox -----Ln Lp

28

2 Du silicium linverseur CMOS

si Ln = Lp = dimension minimale, alors : Wp n ------- = ----Wn p lgalit des courants se simplie en : ( V in V T ) 2 = 2 ( Vdd V in V T ) ( Vdd V out ) ( Vdd V out ) 2 que lon drive par rapport Vin et Vout : 2 ( V in V T ) d V in = 2 [ ( Vdd V out ) d V in + ( Vdd V in V T ) d V out ] + 2 ( Vdd V out ) d V out d V out d V ou - + ( Vdd V out ) -----------V in V T ) = ( Vdd V out ) + ( Vdd V in V T ) ----------- d V in d V in Le point est choisi de manire que pour toute tension < Vin linverseur namplie pas le bruit qui pourrait tre superpos son signal dentre. Cela correspond la relation : d V out ------------ = 1 d V in Ce qui donne : ( V in V T ) = 2 ( Vdd V out ) + ( Vdd V in V T ) Vdd ( Vdd V out ) = --------- V in 2 Reportons dans (1) pour liminer Vout : Vdd Vdd - V in ( V in V T ) 2 = 2 ( Vdd V in V T ) --------- V in -------- 2 2 3 Vdd - Vdd V in 2 V T - V in -= -------- 2 2 3 2 - Vdd 2 VddV T V T = 4 V in V T 2 VddV in + -4 V T 3 - Vdd + -----2 V in ( Vdd 2 V T ) = ( Vdd 2 V T ) -4 2 do : 1 - ( 3 Vdd + 2 V T ) V in = -8 Calcul de la tension de sortie : de 2) on dduit : Vdd - + V in V out = --------2
2

(1)

(2)

2.5

Linverseur CMOS

29

en tenant compte de lexpression de Vin : Vdd 1 - ( 3 Vdd + 2 V T ) V out = --------- + -8 2 1 - ( 7 Vdd + 2 V T ) V out = -8 qui se trouve tre suprieur Vdd VT pour la technologie considre (3,03 v contre 2,7 v). Cela assure que le transistor P de la porte suivante sera bien bloqu. Calcul du courant : Wn 1 - n c ox ------ ( V V T )2 i = -L n in 2
2 W n 3 Vdd 1 - -- --------- n c ox ------ V T = - Ln 4 2 2 2 W n Vdd 9 - n c ox ------ --------- V T i = ---- Ln 2 32

Le point sera donc choisi comme le niveau maximum du niveau logique 0 . La pente de 1 de la caractristique de transfert cet endroit assure que le niveau de bruit en sortie sera au plus gal celui en entre.
Point

Ce point est situ, par symtrie, au milieu de la caractristique : Vdd V in = V out = --------2 do :
2 W n Vdd 1 - n c ox ------ --------i = -- V T Ln 2 2
Dunod La photocopie non autorise est un dlit.

comme il peut aussi scrire : Wn 1 - n c ox ------ ( V V T )2 i = -L n out 2 qui ne dpend pas de Vin. Le gain de linverseur, considr comme un amplicateur analogique, est donc thoriquement inni. Pratiquement, les effets parasites le ramnent une valeur voisine de 10.

30 Point

2 Du silicium linverseur CMOS

Lexpression du courant commun est : Wn Wp 1 1 2 - p c ox ------- n c ox ------ [ 2 ( V in V T ) V out V out - ( Vdd V in V T ) 2 ] = - = -2 Ln Lp 2 Un raisonnement identique conduit :
2 2 ( V in V T ) V out V out = ( Vdd V in V T ) 2

(3)

que nous drivons : d V out d V out - V out ------------ = ( Vdd V in V T ) V out + ( V in V T ) -----------d V in d V in Le point est choisi avec des contraintes semblables celles du point , do : d V out ------------ = 1 d V in on obtient : Vdd V out = V in --------2 que nous reportons dans (3) : Vdd Vdd 2 - V in --------- = ( Vdd V in V T ) 2 2 ( V in V T ) V in -------- 2 2 Ce qui donne, aprs dveloppement : V T 5 - Vdd -----2 V in ( Vdd 2 V T ) = ( Vdd 2 V T ) -4 2 do : 1 - ( 5 Vdd 2 V T ) V in = -8 Calcul de la tension de sortie : on reporte la valeur de Vin dans (4) : 1 Vdd - ( 5 Vdd 2 V T ) --------V out = -8 2 1 - ( Vdd 2 V T ) V out = -8 qui se trouve tre infrieur VT pour la technologie considre (0,26 v contre 0,6 v). Do le point sera choisi comme le niveau minimum du niveau logique 1 . Calcul du courant : Wn 1 2 - n c ox ------ [ 2 ( V in V T ) V out V out i = -] Ln 2 (4)

2.5

Linverseur CMOS

31

De (3) liminons Vout : Wn 1 Vdd Vdd 2 - n c ox ------ 2 ( V in V T ) V in --------- V in --------i = - Ln 2 2 2 Remplaons Vin par sa valeur au point : Wn 1 1 1 Vdd - n c ox ------ 2 -- ( 5 Vdd 2 V T ) V T -- ( 5 Vdd 2 V T ) --------i = - 8 Ln 8 2 2 1 Vdd 2 - ( 5 Vdd 2 V T ) -------- -8 2 qui se rcrit en :
2 W n Vdd 9 - n c ox ------ --------- V T i = ---- Ln 2 32

9 - i = 0,56 i , ce qui est vident par symtrie. On remarque que i = i = ----16 Exemple numrique : Pour linverseur donn en exemple (Vdd = 3,3 V et VT = 0,6 V) : Vin = 1/8(9,9 + 1,2) = 1,39 v, mesur 1,22 v, Vin = 1/8(16,5 1,2) = 1,91 v, mesur 1,77 v. Le courant qui traverse cet inverseur est donn par la courbe suivante. Le courant maximum (i) est denviron 80 A.
A

Dunod La photocopie non autorise est un dlit.

v
Figure 2.27 Courant dans un inverseur

32

2 Du silicium linverseur CMOS

2.5.2 Niveaux logiques Ltude et lutilisation du fonctionnement des portes se fait sur une abstraction logique de leurs niveaux dentre et de sortie qui reprsentent des niveaux de tension. Les niveaux logiques V0 et V1 sont choisis de manire assurer simultanment : Un bon blocage du ou des transistors qui doivent ltre, cest--dire un niveau V0 infrieur VT et un niveau V1 suprieur Vdd VT , soit pour notre exemple : V0 < 0,6 v et V1 > 3,3 v 0,6 v = 2,7 v. Une bonne limitation de la propagation des bruits (parasites) dans le circuit, cest--dire un niveau V0 infrieur Vin et un niveau V1 suprieur Vin , soit, pour notre exemple : V0 < 1,22 v et V1 > 1,77 v. La contrainte du bon blocage des transistors est toujours suprieure celle de la limitation de la propagation du bruit.
V in VT seuil haut valeur logique indfinie seuil bas VT valeur logique "0" t

Vdd valeur logique "1"

Figure 2.28

Vout

marges de bruit

porte su suivante ivante

Vdd
Figure 2.29 Marges de bruit

Vin

2.5

Linverseur CMOS

33

Les marges de bruit montrent quel bruit peut tre superpos au niveau de sortie Vout pour quil natteigne pas le niveau dentre Vin de la porte suivante, et de mme pour les niveaux Vout et Vin. 2.5.3 Inverseur minimal Nous appellerons inverseur minimal celui qui est dessin avec les valeurs minimales des rgles technologiques : la longueur de ses transistors est gale taille du motif minimal de la technologie (ici 0,6 m) et la largeur du transistor N gale au ct de la zone de dbordement (de la zone active) dun contact entre la zone active et le premier niveau de mtal (ici 1,5 m). La largeur du transistor P sera calcule de manire que : Wn Wp - = p c ox ------ n c ox -----Ln Lp soit, en supposant Cox et L identiques pour les deux transistors : Wp n ------- = ----Wn p voisin de 2

Dunod La photocopie non autorise est un dlit.

Figure 2.30

Dessin des masques dun inverseur minimal en technologie CMOS 0,6 m

Nous verrons que cet inverseur minimal peut jouer un rle de rfrence dans le calcul des portes logiques.

34

2 Du silicium linverseur CMOS

2.5.4 Caractrisation dynamique de linverseur minimal La caractrisation dynamique de cet inverseur consiste dterminer ses temps de monte, de descente et de transit. Pour cela, il doit tre mis en situation, cest--dire attaqu par un signal identique celui quil produit et charg de la mme manire que ce quil prsente en entre (ou par un multiple, pour ltude de la sortance). Cette situation est obtenue en simulant une chane dinverseurs et en tudiant celui dispos au centre (gure 2.31). La construction dun modle mathmatique crdible pour dterminer ces valeurs est beaucoup trop complexe.
Inverseur tudier

points d'observation
Figure 2.31 Montage de test dun inverseur

Figure 2.32

Signaux dentre et de sortie de linverseur minimal

Sur ce chronogramme, nous pouvons mesurer les temps de monte et de descente gaux 260 ps environ et le temps de propagation gal 150 ps environ. Une capacit de charge de 15 ff sur le dernier inverseur lamne gnrer un signal trs voisin de celui des inverseurs centraux. Cette capacit correspond donc celle dentre de linverseur.

2.5

Linverseur CMOS

35

a) Dsquilibrage des transistors

Lorsque nous nous cartons du rapport n/ p pour dimensionner la largeur des transistors P et N, lquilibre entre les temps de mont et de descente est perturb. Cet effet peut tre utilis pour certaines applications spciales.

TrP = 2 TrN (normal)

TrP = TrN

TrP = 4 TrN TrP = 4 TrN

TrP = TrN
Figure 2.33 Inuence de la largeur relative des transistors N et P

Laugmentation de la largeur du transistor P nit par ralentir la descente du signal de sortie de la porte modie car cet largissement augmente la capacit de sortie de la porte.
b) Temps de propagation en fonction de la charge

Dunod La photocopie non autorise est un dlit.

75ff 60ff 45ff 30ff 15ff 0ff

Figure 2.34

Signal de sortie dun inverseur minimal en fonction de sa charge capacitive

36

2 Du silicium linverseur CMOS

Nous constatons que le temps de propagation dun inverseur est proportionnel la somme de sa charge capacitive et de sa capacit de sortie. = k ( Cs + Cch )
temps de propagation ps

(3)

500 450 400 350 300 250 200 150 100 50 0

capacit de sortie (25ff)

charge ff
-30 -20 -10 0 10 20 30 40 50 60 70 80 90

Figure 2.35

volution du temps de propagation de linverseur en fonction de sa charge

En prolongeant cette courbe, nous voyons que limpdance de sortie de linverseur contient une capacit denviron 25 ff relie Vss.
c) Dtermination de la sortance

La sortance correspond la capacit dun inverseur en piloter plusieurs de mme type. Ce paramtre se dtermine de plusieurs manires : Par ltude de la dformation du signal de sortie : Au fur et mesure quil est charg, le signal de sortie se dforme. La charge maximale correspond la dformation maximale et au temps de propagation qui restent acceptables. Par ltude de la capacit de reformatage de linverseur, ou de la porte suivante : Le reformatage est la capacit dune porte rgnrer un signal correct partir de la sortie dforme de la porte prcdente. La limite de cette capacit fournit une mesure de la sortance de linverseur tudi. Pour linverseur tudi titre dexemple, la dformation de son signal de sortie et lvolution de son temps de propagation deviennent importantes pour une charge

2.5

Linverseur CMOS

37

points d'observation

Figure 2.36

constitue de 8 inverseurs du mme type. Toutefois, les inverseurs qui constituent la charge sont encore tout fait capables de reformater le signal. La sortance de cet inverseur savre donc tre dau moins 8.

signal reformat par la porte suivante charge 1


Dunod La photocopie non autorise est un dlit.

charge 8
Figure 2.37 Dformation et reformatage des signaux pour une charge de 8 inverseurs de mme type.

38

2 Du silicium linverseur CMOS

d) Inuence de la taille des transistors

Si nous dessinons linverseur avec des transistors largis par un certain facteur, nous multiplions leur conductante par ce facteur ainsi que les capacits parasites. Nous constatons que les signaux de sortie de linverseur agrandi (charg par des inverseurs galement agrandis par le mme facteur) ne changent pas ! En effet, nous multiplions la sortance absolue des inverseurs par ce coefcient, mais aussi leur charge, ce qui produit des signaux de sortie identiques. Vouloir augmenter la vitesse dune pice de circuit en augmentant la taille de ses transistors est donc illusoire

Figure 2.38 Les signaux de sortie dun inverseur minimal et dun inverseur dans lequel les transistors sont quatre fois plus larges, sont strictement superposables

Ce raisonnement nest valable que pour un morceau de circuit qui ne comporte pas de charges capacitives importantes et xes, comme des connexions trs longues ou des capacits imposes. Dans ce cas, il faut videmment adapter la taille des transistors pour que ces charges restent dans les limites de sortance acceptables pour que les portes aient des temps de propagation acceptables. Cela montre que les performances de linverseur minimal constituent une limite infrieure que le dimensionnement des transistors ne permettra que dapprocher, mais pas de dpasser. Linverseur minimal devient une sorte dunit de conception . Ses performances constituent donc des limites technologiques pour les circuits intgrs raliss avec cette technologie. Le dimensionnement des transistors des portes plus complexes se fera donc par rfrence avec ceux de linverseur minimal.
e) Adaptation de charge

Pour piloter des charges capacitives importantes comme des bus ou des charges externes au circuit, il est ncessaire dutiliser plusieurs inverseurs en srie pour raliser une adaptation progressive entre les capacits de charge internes la circuiterie et celle impose.

2.5

Linverseur CMOS

39

Ce

CF

Figure 2.39

Chane dadaptation de charge

Nous pouvons crire une formule qui donne le temps de propagation dun inverseur en fonction du rapport entre sa capacit de charge Cch et celle de son entre Ce. Cette criture tient compte de la linarit de la dpendance du temps de propagation de cette porte vis--vis de la valeur de sa capacit de charge (formule (3) de 2.5.4.b) et de lindpendance de ce retard vis--vis dune modication homothtique de la chane de portes (2.5.4.d). Cs Cch = K ------ + -------- Ce Ce Posons = Cch Ce pour reprsenter le coefcient de charge relative de linverseur (appele sortance). Dans cette formule, Cs Ce est une constante pour un type de portes. Dans le cas de notre exemple, ce rapport vaut 25 15 = 1,67 et K = 66 ps. Lattaque de la capacit CF ncessite n tages dadaptation. Sils ont tous le mme coefcient de charge , leurs temps de propagation individuels sont tous identiques et gaux : Cs = K ------ + Ce Do le temps de propagation de la chane dadaptation est de : Cs T = n = nK ------ + Ce (4)

le fait que tous les inverseurs de la chane aient le mme coefcient de charge signie que :
Dunod La photocopie non autorise est un dlit.

CF ------ = n Ce soit : C F - = n log ( ) log ----- Ce Remplaons n dans (4) par sa valeur : C F log ----- Ce Cs - K ------ + T = ------------------- Ce log

40

2 Du silicium linverseur CMOS

C F 1 1 Cs 1 - ----------------- -- ------ d - + + ---------d T = K log ----- log Ce ( log ) 2 Ce La valeur minimale de T est obtenue pour : C F 1 1 Cs dT 1 - ----------------- -- ----------- = K log ------ = 0 - + + --------- log Ce ( log ) 2 Ce d do : Cs 1 - -- + ( log 1 ) = 0 -----Ce soit : Cs 1 - --+1 log = -----Ce Pour linverseur donn en exemple, une rsolution numrique donne une valeur de de 4,08 pour linverseur donn en exemple. Toutefois, une valeur de 4 peut tre considre comme utilisable pour un large ensemble de technologies.

Chapitre 3

Fabrication des circuits intgrs

3.1

INTRODUCTION

La technologie PLANAR est aujourdhui utilise de manire quasiment exclusive pour la fabrication des circuits intgrs. Les gures 3.1 et 3.2 montrent de manire rapide les diffrentes tapes de cette technologie. Celles-ci seront plus dtailles dans les chapitres suivants. Partant dune tranche de cristal de silicium appele wafer, une premire tape doxydation permet dobtenir une couche de silice (SiO2). Une seconde tape de photolithographie permet de dnir la gomtrie du motif raliser. Elle consiste en un dpt de rsine photosensible, puis son exposition un rayonnement ultraviolet au travers dun masque. Le dveloppement de cette rsine par une dissolution chimique permet de lenlever l o elle a t expose.
Dunod La photocopie non autorise est un dlit.

Une seconde attaque chimique ou physique appele gravure permet denlever la silice l o elle nest plus protge par la rsine. Une nouvelle dissolution permet denlever la rsine restante. Le dopage du substrat dans cette ouverture ce fait par une implantation ionique ou par la diffusion dimpurets. La silice joue alors un rle de barrire qui empche limplantation de ces impurets ailleurs que dans la zone grave. La photolithographie est galement utilise pour graver un dpt de mtal pour raliser les contacts et les interconnections.

42

3 Fabrication des circuits intgrs

Figure 3.1

Technologie Planar (1re partie)

Figure 3.2

Technologie Planar (2e partie)

3.1.1 Photolithographie optique La photolithographie est le procd qui permet le transfert de motifs gomtriques dun masque vers une ne couche de rsine photosensible qui recouvre une tranche de semi-conducteur. Ces motifs dnissent les diffrentes rgions dun circuit intgr telles que : les zones de dopage, les connections mtalliques, les points de contacts, etc. Les motifs de rsine dnis par la photolithographie ne sont pas permanents. Ils servent seulement de masques protecteurs pour les gravures des dispositifs qui constituent les circuits.
a) Le masquage

La plupart des quipements de lithogravure utiliss pour la fabrication des circuits intgrs utilisent des lampes ultraviolettes (de longueur donde 0,2 0,4 m). Les tapes de lithographie doivent tre ralises dans des conditions de trs grande propret. Celles-ci sont ralises dans des salles blanches. Dans ces dernires, la quantit de particules et leur taille par unit de volume est parfaitement matrise ainsi que la temprature et lhumidit. La photolithographie optique est ralise par des machines appeles masqueurs. La rsine photosensible, dpose en une ne couche sur les tranches est insole par

3.1

Introduction

43

son exposition, pendant un temps donn, par une lampe ultraviolette travers une lentille de collimation. Il existe trois mthodes de masquage : Le masquage par contact qui ncessite un contact direct entre la tranche recouverte de rsine photosensible et le masque comme le montre la gure 3.3. Cette mthode peut entraner des dgradations des masques surtout en prsence de poussires.
Source lumineuse

Lentille

Masque Rsine Substrat

Figure 3.3

Masquage par contact

Dunod La photocopie non autorise est un dlit.

Le masquage de proximit, dans lequel une faible distance (50 m) est laisse entre le masque et la rsine. Cette mthode engendre des phnomnes de diffraction qui dgradent la rsolution des motifs. Elle est utilisable pour transfrer des motifs de taille minimum de 2 m. Le masquage par projection (gure 3.4). La ralisation dun masque qui permette le transfert de motifs submicroniques sur une tranche entire est pratiquement impossible. Pour cela, les masqueurs modernes (appels photorpteurs) projettent sur la tranche limage dun masque dun seul circuit, en la rduisant grce une optique. Cette projection sera rpte pour chacun des circuits raliss. chaque pas, un alignement est ncessaire avec les motifs dj raliss sur la tranche. Les lampes utilises par les masqueurs sont en gnral des lampes arc vapeur de mercure car elles fournissent une grande intensit lumineuse avec une grande stabilit, elles permettent datteindre une rsolution maximale de 300 nm. Pour atteindre des rsolutions suprieures on utilise des lasers solides (de type EXIMER) qui permettent, grce des longueurs donde de 157 nm datteindre une rsolution de 70 nm. Pour atteindre des rsolutions encore suprieures, de nouvelles approches restent inventer. La longueur donde de la lumire ultraviolette utilise est suprieure la taille des motifs transfrer. Cela introduit des dformations dans les motifs projets. Pour compenser cet effet, le dessin des masques est modi par calcul.

44

3 Fabrication des circuits intgrs

Masque

Dplacements de la tranche

Figure 3.4

Masquage par un photorpteur

Les dessins des masques, issus du systme de conception (CAO), sont utiliss pour piloter un systme de lithographie par faisceau dlectrons pour raliser les masques physiques qui seront projets sur la tranche. Chacun de ces masques est constitu dun substrat de silice recouvert dune couche de chrome. Il existe deux types de rsines photosensibles dites positives et ngatives. Celles-ci se caractrisent par leur diffrence de rponse aux radiations ultraviolettes. Pour les rsines positives, seules les parties protges par le masque ne seront pas limines par le dveloppement. Les rsines ngatives ont un comportement inverse. Ltalement de la rsine sur la tranche se fait par force centrifuge, laide dune machine appele tournette.

3.2

SQUENCE DE FABRICATION DUN INVERSEUR CMOS

Nous dcrirons, dans ce chapitre, les principales tapes de la ralisation dun inverseur CMOS. Nous prsenterons en parallle les lments clefs des technologies utilises. Nous dcrirons, pour des raisons pdagogiques, le procd de fabrication dit LOCOS (LOCal Oxydation of Silicon) qui se caractrise principalement par le fait que de loxyde pais (appel FOX pour Thick eld OXyde) est dpos sur toutes les rgions non actives du circuit. 3.2.1 Fabrication des tranches de silicium La fabrication des tranches de silicium est une activit distincte de celle des circuits intgrs. Elle est ralise dans des usines spcialises.

3.2

Squence de fabrication dun inverseur CMOS

45

a) Croissance du monocristal de silicium

Le silicium est le matriau de loin le plus utilis pour la ralisation de circuits intgrs. Le matriau de dpart est un type particulier de sable trs pur (SiO2) nomm quartzite. Aprs divers traitements thermiques et chimiques, on obtient du silicium de qualit lectronique. Celui-ci se caractrise par une concentration dimpurets infrieure une partie par milliard. Un monocristal gant (actuellement de 300 mm de diamtre pour un mtre de longueur) est ensuite ralis par la technique dite de Czochralski qui utilise un appareil nomm extracteur de cristal (gure 3.5). De manire synthtique, on peut dcrire le processus de croissance du cristal de la manire suivante : On place dans le creuset du silicium de qualit lectronique que lon chauffe jusqu sa temprature de fusion. Un petit cristal de silicium (le germe) est suspendu sur un support tournant. Ce germe est ensuite partiellement plong dans le silicium en fusion. On commence alors retirer lentement le germe du silicium en fusion (tirage). Un refroidissement progressif permet la croissance dun grand cristal ayant la mme orientation cristalline que le germe.

Traction Rotation inverse Flux dArgon Cristal germe

Interface solide / liquide

Cristal de silicium

Creuset en silice Graphite

Dunod La photocopie non autorise est un dlit.

Solnode de chauffage Silicium liquide

Rotation

Figure 3.5

Croissance dun monocristal de silicium par la mthode de Czochralski

46

3 Fabrication des circuits intgrs

La vitesse de croissance classique du monocristal est de lordre de quelques millimtres par minute. Pour obtenir des cristaux de silicium de grand diamtre, on ajoute un champ magntique, qui permet le contrle de la concentration des dfauts, des impurets et de loxygne. Lors de la croissance du cristal, une quantit connue de dopant (bore ou phosphore) est mlange au silicium en fusion pour obtenir un cristal ayant le dopage dsir. Le monocristal est ensuite pur par une technique de fusion localise parcourant le cristal du germe la base. Celle-ci est ensuite spare par sciage. Le monocristal est ensuite sci en tranches dune fraction de millimtre dpaisseur. Une fois polies et oxydes, ces tranches constitueront le matriau de dpart de la ralisation collective des circuits intgrs. 3.2.2 tape 1 : ralisation du caisson N La ralisation dun circuit intgr CMOS dmarre partir dune tranche de silicium P (substrat), cest--dire dune tranche de silicium contenant des impurets constitues datomes de bore. La ralisation des transistors MOS de type P ncessite, au pralable, la ralisation de zones dopes N que lon nomme caissons N. Il est noter que dans les technologies submicroniques il est dusage de faire aussi des caissons P pour les transistors de type N (pour amliorer le contrle du dopage du canal de ces transistors). La ralisation des caissons N se dcompose en cinq sous-tapes dont les trois premires constituent la base de la photolithographie. Dpt de la rsine photosensible. Masquage de cette rsine. Gravure de loxyde de silicium. limination de la rsine. Implantation ionique de la zone N et recuit.

a) Masquage de la rsine

Les tranches de silicium sont livres oxydes. Cet oxyde sera grav par photolithographie pour servir de masque pour limplantation ionique qui formera les caissons. On commence par dposer une couche de rsine photosensible sur la tranche laide dune tournette. Cette rsine sera insole travers le masque du caisson N (gure 3.6).
b) Dveloppement de la rsine

Le dveloppement enlve la rsine qui na pas t insole. Seule la zone correspondant au futur caisson N laisse apparatre la silice (gure 3.7).
c) Gravure de la silice

La silice est ensuite grave par attaque chimique ou par plasma (gure 3.8). On obtient une zone de silicium mis nu correspondant au caisson N. Le reste de la tranche reste recouvert de silice, donc protg. La rsine est ensuite enleve par dissolution.

3.2

Squence de fabrication dun inverseur CMOS

47

Masque caisson N

Vue en coupe

Oxyde

Rsine Photosensible

Substrat type P

Vue de dessus

Masque caisson N

Figure 3.6

tape 1 (masquage de la rsine)

Vue en coupe
Oxyde

Rsine photosensible

Substrat type P

Figure 3.7
Dunod La photocopie non autorise est un dlit.

tape 1 (dveloppement de la rsine)

Vue en coupe

Oxyde Rsine photosensible

Substrat type P

Figure 3.8

tape 1 (gravure de la silice)

48

3 Fabrication des circuits intgrs

d) Implantation ionique de phosphore

Le caisson est maintenant ralis par implantation ionique de phosphore (gure 3.9). Seule la zone non protge par la silice est dope. Cette dernire ralise donc un masque qui dni proprement la zone du caisson N.
Vue en coupe
Caisson N Oxyde

Substrat type P

Figure 3.9

tape 1 (implantation de phosphore)

e) Technologies associes ltape 1


Gravures

La gravure va permettre de reproduire les motifs des masques sur les couches minces situes en dessous. En fonction des matriaux graver et des dessins raliser, on trouve deux types de gravure : une gravure humide qui utilise un produit chimique ; une gravure sche qui utilise les plasmas. Lun des problmes de la gravure est sa slectivit. En effet, on remarque que les solutions chimiques utilises ne gravent pas quun seul matriau mais les attaquent tous des vitesses diffrentes. La slectivit dune gravure se mesure par le rapport des vitesses de gravure des diffrents matriaux. Les gravures au plasma prsentent une directivit qui permet une grande prcision dans la reproduction des motifs.
Implantation ionique

Le dopant est ici implant grce ux dions. Sa concentration est fonction de la masse des ions et de lnergie dimplantation. Classiquement, on travaille avec des nergies comprises entre 1 KeV et 1 MeV ce qui donne des profondeurs dimplantation comprises entre 10 nm et 10 m avec une densit de dopant comprise entre 10 12 et 1018 ions/cm2. Le principal intrt de cette mthode est sa prcision et sa rptitivit. Elle peut, en outre, se faire temprature ambiante. La source dun implanteur ionique contient un lament permettant de casser les molcules de gaz de dopant (PH3, BF3). Un potentiel de 40 kV appliqu par des lectrodes permet dacclrer ces ions et de crer le ux. Un champ magntique permet de trier les ions dsirs. Un tube dacclration avec un champ rglable de 180 kV permet de choisir le niveau dnergie voulu pour raliser limplantation. Des plaques de dexion et de focalisation permettent de diriger le ux sur la tranche. La collision des ions avec le cristal de silicium engendre des dgradations de la structure cristalline quun recuit permet de compenser en grande partie. Lorsquils

3.2

Squence de fabrication dun inverseur CMOS

49

pntrent dans le semi-conducteur, les ions perdent leur nergie par une srie de collisions avec les lectrons et les noyaux des atomes de silicium. Ces collisions peuvent engendrer des dplacements datomes de silicium qui se propagent sous la forme de dfauts dans la structure du rseau cristallin. 3.2.3 tape 2 : prparation des zones actives La seconde tape consiste en la prparation des zones actives, cest--dire des zones qui seront ultrieurement dopes N ou P et qui correspondent aux drains et aux sources des transistors MOS (N et P) ainsi quaux contacts des caissons. La prparation des zones actives se dcompose en sept sous-tapes : Dpt de nitrure de silicium (SiN). Dpt de la rsine photosensible. Masquage et dveloppement de cette rsine. Gravure du SiN. limination de la rsine. Croissance de loxyde de champ. limination du SiN.
a) Dpt et gravure du nitrure de silicium

La premire de ces sous-tapes consiste raliser un dpt par plasma de nitrure de silicium Si3N4. Celui-ci servira de masque pour la future croissance de loxyde de champ. La seconde sous-tape consiste dposer une couche de rsine photosensible laide dune tournette. Cette couche de rsine sera ensuite insole travers le masque des zones actives puis dveloppe (gure 3.10). Le nitrure de silicium est ensuite grav par plasma. Le silicium est mis nu lextrieur des zones qui correspondent aux futures rgions actives et aux contacts de caisson. Celles-ci sont recouvertes, donc protges, par du nitrure de silicium (gure 3.11).
b) Croissance de loxyde de champ
Dunod La photocopie non autorise est un dlit.

Les zones non protges par le SiN sont oxydes par oxydation thermique. La couche paisse de silice ainsi obtenue isole lectriquement entre eux les diffrents lments du circuit (gure 3.12). Cette couche est appele oxyde de champ. Le nitrure de silicium est ensuite enlev pour mettre nu les zones actives et permettre ainsi la ralisation des tapes suivantes.
c) Technologies associes ltape 2
Dpt de dilectriques

Le dpt de couches minces de dilectrique est utilis principalement pour la protection des composants.

50

3 Fabrication des circuits intgrs

Masque zone active

Vue en coupe

Caisson N

Nitrure de Silicium SiN

Rsine

Substrat type P

Vue de dessus

Masque zone active

Figure 3.10

tape 2 (masquage de la rsine)

Vue en coupe
Caisson N Nitrure de Silicium SiN Rsine

Substrat type P

Figure 3.11

tape 2 (gravure du SiN)

Vue en coupe
Caisson N FOX Nitrure de Silicium SiN

Substrat type P

Figure 3.12

tape 2 (croissance de loxyde de champ)

3.2

Squence de fabrication dun inverseur CMOS

51

Il existe trois mthodes classiques de dpt en phase vapeur (CVD pour Chemical Vapor Deposition) : Dpt chimique en phase vapeur pression atmosphrique (APCVD pour Atmospheric CVD). Dpt chimique en phase vapeur basse pression (LPCVD pour Low Pressure CVD). Dpt en phase vapeur avec assistance par plasma (PECVD pour Plasma Enhanced CVD). Pour la PECVD, lnergie du plasma sajoute lnergie thermique dune CVD classique, ce qui permet de travailler plus basse temprature (100 400 C). Par contre, la capacit est limite au niveau de la taille des tranches. La silice obtenue par CVD est de qualit infrieure celle obtenue par oxydation thermique. Ainsi, cette silice est utilise de manire complmentaire. Non dope, elle est utilise comme isolant entre les diffrentes couches de mtallisation ou comme masque dans une opration dimplantation ionique. Le dpt de nitrure de silicium peut tre obtenu soit par une LPCVD vers 750 C ou encore par une PECVD 350 C. La LPCVD permet dobtenir un nitrure de bonne qualit et de grande densit qui est utilis comme masque doxydation. Le nitrure obtenu par PECV est de moins bonne qualit et de plus faible densit. Il est utilis comme passivation nale des circuits intgrs et comme protection contre les rayures et lhumidit. 3.2.4 tape 3 : ralisation des grilles La troisime tape consiste en la ralisation des grilles des transistors MOS (N et P). La ralisation des grilles se dcompose en sept sous-tapes : Croissance de loxyde de grille. Dpt du polysilicium. Dpt de la rsine photosensible. Masquage et dveloppement de cette rsine. Gravure du polysilicium. Gravure de loxyde de grille. limination de la rsine.

Dunod La photocopie non autorise est un dlit.

a) Croissance de loxyde mince

Cette tape commence par la croissance thermique de loxyde mince sur toute la surface de la tranche (gure 3.13). Cet oxyde doit dtre de trs bonne qualit dilectrique tout en tant extrmement mince (< 4 nm pour la technologie 90 nm) car il va servir disolant pour les grilles.

52

3 Fabrication des circuits intgrs

Vue en coupe
Caisson N FOX Oxyde mince Substrat type P

Figure 3.13

tape 2 (croissance de loxyde mince)

b) Dpt et gravure du polysilicium

Une couche de polysilicium est dpose par LPCVD puis grave par photolithographie pour obtenir les grilles des transistors (et les connexions en polysilicium) (gures 3.14 et 3.15).
c) Gravure de loxyde mince

Loxyde mince est limin par une gravure plasma sauf sous les zones protges par le polysilicium (concept dauto-alignement) (gure 3.16). On a ainsi ralis les grilles de transistors MOS (P et N).
d) Technologies associes ltape 3
Oxydation thermique du silicium

La silice obtenue par oxydation du silicium est de trs bonne qualit. Elle est utilise pour lisolation lectrique et la protection de surface mais aussi pour sa facilit de fabrication. Cette caractristique est la principale raison de lutilisation du silicium dans les composants actuels. Le racteur doxydation se compose dun tube de quartz horizontal chauff par effet joule. Dans ce tube on place les tranches verticalement. Un ux continu doxygne pur ou de vapeur deau (pour les couches paisses) parcours ce tube pendant le chauffage. Une autre proprit intressante de la silice est sa capacit tre utilise comme masque slectif contre la diffusion des dopants haute temprature. En effet, la vitesse de diffusion dans la silice est 2 3 ordres de grandeur plus faible que dans le silicium. Cette caractristique est trs utilise dans le processus de fabrication des circuits intgrs.
Dpt du polysilicium

Lutilisation du polysilicium pour raliser les grilles des transistors MOS sest gnralis car il surpasse les mtaux prcdemment utiliss, du point de vue de la abilit. Le polysilicium est obtenu par LPCVD 600/650 C par pyrolyse du silane sous une pression de 25 130 Pa.

3.2

Squence de fabrication dun inverseur CMOS

53

Masque polysilicium

Vue en coupe

Polysilicium Caisson N Oxyde mince Substrat type P FOX Rsine

Vue de dessus

Masque polysilicium

Figure 3.14

tape 3 (masquage du polysilicium)

Dunod La photocopie non autorise est un dlit.

Figure 3.15

tape 3 (gravure du polysilicium)

Figure 3.16

tape 3 (Gravure de loxyde mince)

54

3 Fabrication des circuits intgrs

3.2.5 tape 4 : dopage des zones actives La quatrime tape consiste en la ralisation des zones actives des transistors. Celles-ci sont dopes respectivement N+ pour les MOS N et P+ pour les MOS P. Le dopage des zones actives se dcompose en huit sous-tapes : Dopage des zones P+ : Dpt de rsine photosensible. Masquage et dveloppement de cette rsine. Implantation ionique de la zone P+ et recuit. limination de la rsine. Dopage des zones N+ : Dpt de rsine photosensible. Masquage et dveloppement de cette rsine. Implantation ionique de la zone N+ et recuit. limination de la rsine.
a) Masquage et dveloppement de la rsine pour les zones P+

La rsine est insole travers le masque zone P+ (gure 3.17). Son dveloppement laisse dcouvert les zones qui doivent tre dopes P+.

Figure 3.17

tape 4 (masquage des zones P+)

3.2

Squence de fabrication dun inverseur CMOS

55

b) Ralisation des zones P+

Les zones P+ sont ralises par implantation ionique de bore, cest--dire les sources et les drains des transistors P mais aussi les contacts du substrat dop P (gure 3.18). La grille en polysilicium joue encore le rle dun masque pour dlimiter prcisment les sources et les drains des transistors et viter tout recouvrement (auto-alignement).
Vue en coupe

Caisson N Rsine Zones P+ Substrat type P

Polysilicium

Zone P+

Figure 3.18

tape 4 (dveloppement rsine et dopage P+ par implantation ionique)

c) Ralisation des zones N+

La ralisation des zones actives N+ suit exactement le mme processus que celle des zones P+, si ce nest lutilisation dun masque dlimitant les sources et drain des transistors N et les contacts des caissons N ainsi que lutilisation dune implantation ionique de phosphore (gure 3.19). 3.2.6 tape 5 : ralisation des via des contacts La cinquime tape consiste en la ralisation des via des contacts, cest--dire des trous de connexion entre les zones dopes ou le polysilicium, et le mtal 1. La ralisation des via des contacts se dcompose en six sous-tapes : Dpt de silice. Planarisation. Dpt de la rsine photosensible. Masquage et dveloppement de cette rsine. Gravure de la silice. limination de la rsine.

Dunod La photocopie non autorise est un dlit.

a) Dpt de silice

Une couche de silice disolation est dpose sur toute la tranche par CVD.
b) Planarisation

Pour permettre la ralisation de connexions mtalliques ables et la matrise des couplages capacitifs, il est important que la surface sur laquelle sera dpose le mtal 1

56

3 Fabrication des circuits intgrs

Vue en coupe

Caisson N Zones N+ Zone N+ Substrat type P

Rsine

Vue de dessus

Figure 3.19

tape 4 (dveloppement de la rsine et dopage N+ par implantation ionique)

soit parfaitement plane. Cela est obtenu par un polissage mcanique appel planarisation.
c) Masquage et dveloppement de la rsine

Voir gure 3.20.


d) Gravure de la silice

La silice est grave par plasma jusquau zones actives ou jusquau polysilicium, dans les ouvertures de la rsine (gure 3.21). 3.2.7 tape 6 : ralisation des connexions en mtal 1 La sixime tape consiste en la ralisation des connexions en mtal 1. La ralisation des connexions en mtal 1 se dcompose en cinq sous-tapes : Dpt du mtal 1. Dpt de la rsine photosensible. Masquage et dveloppement de cette rsine. Gravure du mtal 1. limination de la rsine.

3.2

Squence de fabrication dun inverseur CMOS

57

Figure 3.20

tape 5 (masquage des contacts)

Vue en coupe

Rsine

Silice planarise

Figure 3.21
Dunod La photocopie non autorise est un dlit.

tape 5 (dveloppement de la rsine et gravure des contacts)

a) Gravure du mtal 1

Le mtal 1 est dpos par pulvrisation sur lensemble de la tranche. Il est ensuite grav par photolithographie partir du masque des connexions raliser en mtal 1 (gure 3.22).

58

3 Fabrication des circuits intgrs

Vue en coupe

Mtal (premier niveau)

Vue de dessus

Figure 3.22

tape 6 (gravure du mtal 1)

b) Technologies associes ltape 6


Dpt de mtal

Le mtal dposer est soit un alliage daluminium-tungstne, soit du cuivre plus conducteur, mais plus difcile dposer. Le mtal doit bien pntrer dans les via pour raliser de bons contacts. La pulvrisation cathodique ou sputtering est ralise dans une chambre vide. Un ux dions bombarde une cible de mtal (Ti, Al, Cu, TiN) qui libre ses atomes qui viennent se dposer sur les tranches. Lvaporation se fait aussi, dans une chambre vide, par sublimation du mtal (sous un trs fort courant dans un creuset de tungstne) ou grce un ux dlectron. 3.2.8 tape 7 : ralisation des via mtal 1 mtal 2 La septime tape consiste en la ralisation des via entre les couches de mtal (ici mtal 1 mtal 2). La ralisation des via entre les couches de mtal se dcompose en cinq sous-tapes : Dpt de silice. Dpt de la rsine photosensible.

3.2

Squence de fabrication dun inverseur CMOS

59

Masquage et dveloppement de cette rsine. Gravure de la silice. limination de la rsine.


Gravure des via

Cette gravure sarrte sur le mtal 1 (gure 3.23).


Vue en coupe

Silice planarise

Vue de dessus

Figure 3.23
Dunod La photocopie non autorise est un dlit.

tape 7 (gravure des via mtal 1-mtal 2)

3.2.9 tape 8 : ralisation des connexions en mtal 2 La huitime tape consiste en la ralisation des couches de connexions en mtal (ici mtal 2). La ralisation des connexions en mtal 2 se dcompose en cinq sous-tapes : Dpt du mtal 2. Dpt de la rsine photosensible. Masquage et dveloppement de cette rsine. Gravure du mtal 2. limination de la rsine.

60

3 Fabrication des circuits intgrs

a) Gravure du mtal 2
Vue en coupe
Mtal (second niveau)

Vue de dessus

Figure 3.24

tape 8 (gravure du mtal 2)

b) Finition du circuit

La nition du circuit comprend : Ralisation des couches dinterconnexion mtalliques suivantes. Passivation du circuit. Ralisation des plots de connexion. Test des circuits. Dcoupage de la tranche. Montage en botier et marquage des circuits.

c) Ralisation des couches dinterconnexion mtalliques suivantes

Les circuits modernes comportent jusqu huit couches de mtal qui sont obtenues en rptant les tapes 7 et 8 du processus.

3.3

Principes de dnition des rgles de dessin

61

d) Passivation du circuit

Le circuit termin est recouvert dune couche de nitrure de silicium pour le protger contre les agressions mcaniques et chimiques.
e) Ralisation des plots de connexion

Les plots de connexion sont des surfaces carres de mtal nu, relativement importantes (denviron 100 m de ct) qui recevront les ls de connexion avec le botier. Ces surfaces doivent rsister la pression des thermocompressions. Pour cela, elles sont ralises par des empilements de couches judicieusement choisies.
f) Tests des circuits

Chaque circuit de la tranche est test par une machine munie dune carte pointes qui lui permet de se connecter successivement sur les plots de chaque circuit. Une squence dexcitation est envoye pour savoir si le circuit est bon ou mauvais. Les circuits mauvais sont marqus avec une tache dencre et seront limins.
g) Dcoupage de la tranche

La tranche teste est colle sur une mince feuille de plastique adhsive, puis la tranche est dcoupe avec une scie diamante, sans couper la feuille de plastique. Ltirement de celle-ci permet la sparation des circuits.
h) Montage en botier et marquage des circuits

Les circuits bons sont saisis par une pipette sur la feuille de plastique tire pour tre monts dans des botiers dans lesquels ils sont souds. Les connexions sont ensuite ralises par de ns ls dor thermo-compresss entre les plots des circuits et ceux de leurs botiers. Un test nal permet de sassurer du bon fonctionnement des circuits monts.

3.3
Dunod La photocopie non autorise est un dlit.

PRINCIPES DE DFINITION DES RGLES DE DESSIN

La ralisation des motifs constituants un circuit doit respecter les diffrentes contraintes physiques et technologiques du procd. Ces contraintes sont exprimes par un ensemble de rgles qui dnissent les conditions pour quun circuit fonctionne convenablement et quil soit able. Les rgles de dessin constituent une simplication pratique de la complexit de ces contraintes technologiques. Les circuits deviennent de plus en plus complexes, ce qui ncessite laugmentation du nombre de couches de mtal pour raliser leurs interconnexions. La ralisation de ces couches entrane une augmentation de la complexit du procd de fabrication, do le nombre des masques et des rgles de dessin. Ainsi, la conception dune simple mmoire DRAM NMOS de 256 Ko ncessite lutilisation de prs dune centaine de rgles de conception et treize niveaux de masques.

62

3 Fabrication des circuits intgrs

Nous commencerons, dans ce paragraphe, par dcrire succinctement les diffrentes contraintes qui sont utilises pour le calcul des rgles de dessin. Puis dans un second temps, nous prsenterons quelques cas concrets de rgles. 3.3.1 Les diffrents types de contraintes En gnral, les conditions respecter lors de la conception expriment des contraintes pouvant tre classes en trois types : contraintes dues au processus technologiques utilis ; contraintes physiques ; contraintes de rendement et de abilit.
a) Contraintes dues au processus technologique

La complexit des circuits intgrs fait quil est important dexercer un contrle attentif du processus de photolithographie par lequel le dessin du circuit est transfr du masque sur le substrat. Ainsi, la taille dun motif grav est diffrente de celle qui a t dessine. Cela est d au fait qu chaque tape, une ou plusieurs sources de distorsion interviennent, engendrant des variations dans la taille des motifs raliss. Dans un processus technologique, pour une squence dalignement donne, de nombreuses sources dincertitudes peuvent tre identies. Elles comprennent le dsalignement des niveaux de masquages, les erreurs de dimensionnement sur les masques, leur expansion thermique et lincertitude sur les longueurs et les largeurs des motifs cause par le processus (par exemple la surgravure et la diffusion latrale). Chaque technologie est caractrise par un certain nombre de paramtres. Lorsque la taille des motifs ou des structures atteint ces limites, des phnomnes parasites apparaissent. Citons par exemple les trois cas suivants : Dans le cas de dessins submicroniques, la taille des motifs est maintenant infrieure (90 65 nm en 2006) la longueur donde des lampes utilises pour linsolation de la rsine (157 nm). Pour compenser les dformations des motifs projets, dues aux phnomnes de diffraction, la gomtrie des masques est volontairement modie. Les effets des canaux courts ou troits. Les caractristiques des transistors (tension de seul) varient lorsque canal devient court ou troit. Lpaisseur des couches de mtal devient prpondrante vis--vis de la largeur des lignes, ce qui engendre des phnomnes de capacits latrales. Lvolution technologique consiste repousser ces paramtres par lutilisation de nouveaux procds, comme par exemple le passage la lithographie X.
b) Contraintes physiques

Elles dcoulent des limitations intrinsques sur les composants dues aux phnomnes physiques comme, par exemple : Lapparition dun courant de grille par effet tunnel, lorsque lpaisseur de loxyde mince atteint quelques niveaux atomiques.

3.3

Principes de dnition des rgles de dessin

63

La dispersion des caractristiques des transistors, lorsque la longueur effective des transistors se mesure en quelques milliers datomes du cristal. Le trs faible nombre datomes dimpurets fait alors sortir le comportement du transistor des moyennes statistiques habituelles. Laugmentation de la rsistance sources-drain des transistors lorsque leurs dimensions diminuent (due la rsistivit des matriaux). Idem pour les connexions mtalliques. Le maintien de la valeur de la capacit parasite des connexions lorsque les dimensions technologiques diminuent (augmentation de la capacit surfacique compense par une diminution de la largeur des connexions).
c) Contraintes de rendement et de abilit

Cette dernire famille de contraintes, a pour objectifs damliorer le rendement de fabrication et dhomogniser et daccrotre la dure de vie des circuits. Parmi les principales contraintes, citons plus particulirement : Llectromigration qui arrache des atomes des couches de mtal lorsque la densit de courant dpasse un certain seuil amenant une rupture des connexions. La diffusion lente des impurets due lchauffement du circuit modie les caractristiques des transistors. La tenue aux radiations qui dcrot lorsque les dimensions technologiques diminuent (contraintes des circuits durcis).
d) Incidences sur la conception systme

Les effets des phnomnes physiques peuvent remonter dans les niveaux de conception et inuencer la conception systme du circuit. Par exemple, la rpartition de la dissipation thermique sur le circuit, la gnration des bruits, la longueur des connexions et les ventuels effets micro-onde qui apparaissent avec laugmentation des frquences de fonctionnement. 3.3.2 Exemples de rgles de dessin
Dunod La photocopie non autorise est un dlit.

Lobjectif ne peut tre ici de dcrire de manire exhaustive lensemble des rgles de dessin dune technologie particulire mais dillustrer cette problmatique par deux exemples.
a) Rgles de dessin des contacts

Les rgles de dessin des contacts mtalliques sont reprsentes, sur la gure 3.25. La dimension de louverture (note R1 sur la gure) qui est contrle par la rsolution de la photolithographie (on accepte larrondissement de louverture). Dans les technologies actuelles, la taille des contacts est xe. Le dbordement des mtaux (note R2 sur la gure) qui tient compte du msalignement maximal des masques contacts et mtaux.

64

3 Fabrication des circuits intgrs

Figure 3.25

Rgles de dessin dun contact

b) Rgles de dessin Poly & zone active

Les garde entre une connexion en polysilicium et la zone active dun transistor, telle que reprsente, sur la gure suivante, impose que le polysilicium soit sur loxyde pais (FOX) donc une distance minimale de la zone active (rgle note R3 sur la gure 3.26). Ainsi, le polysilicium de connexion forme un transistor parasite dont la tension de seuil est suprieure la tension dalimentation du circuit. Ce transistor toujours bloqu pourra tre alors nglig.

Figure 3.26

Rgles de dessin connexion polysilicium et zone active

Pour terminer nous prsentons ici un exemple de rgles de dessin dune technologie hypothtique de 0,6 m (gure 3.27).

3.3

Principes de dnition des rgles de dessin

65

Figure 3.27

Exemple de rgles 0,6 m

Dunod La photocopie non autorise est un dlit.

Chapitre 4

Rseaux de conduction et portes

4.1

REPRSENTATION SYMBOLIQUE DES SIGNAUX

Lorsque lon regarde un montage lectronique avec le niveau dabstraction logique, les groupements de transistors sont vus comme des portes et les signaux quils changent comme des signaux logiques. 4.1.1 Signaux logiques Les signaux logiques reprsentent des niveaux de tension. Une valeur logique 1 reprsente une tension au-dessus dun seuil haut, tandis quune valeur logique 0 reprsente une tension en dessous dun seuil bas. Une tension entre ces deux seuils ne correspond pas une valeur logique dnie.
Dunod La photocopie non autorise est un dlit.

V in Vdd valeur logique 1 seuil haut seuil bas valeur logique 0 t


Figure 4.1 Niveaux logiques

68

4 Rseaux de conduction et portes

4.1.2 Chronogrammes Les variations et les tats des signaux logiques sont reprsents de manire symbolique par les graphismes prsents gures 4.2 4.6.

1 t 0 transition

Figure 4.2

Transition entre une valeur 1 suivie dune valeur 0

1 valeur dfinie 0 transition nouvelle valeur dfinie t

Figure 4.3

Transition entre deux valeurs dnies non connues

v 1 valeur dfinie 0 valeur non dfinie nouvelle valeur dfinie t

Figure 4.4

Valeur non dnie entre deux valeurs dnies non connues

relation de causalit t

Figure 4.5 Relation de causalit entre une transition et le dbut dune valeur dnie non connue

4.1

Reprsentation symbolique des signaux

69

0.1ns 0.07 ns

Figure 4.6 Contraintes temporelles sur la dure dune impulsion et sur linstant dapparition dune valeur non dnie connue

Les valeurs dnies non connues peuvent avoir une valeur (stabilise) 1 ou 0 suivant le fonctionnement particulier du montage. Les valeurs non dnies peuvent prendre nimporte quelle valeur logique ou non et comporter des transitions quelconques. 4.1.3 Signaux vnementiels et de valeur Les signaux logiques vhiculent deux types dinformations : des vnements lies aux transitions de ces signaux, par exemple dans le cas de signaux dhorlogerie, de chargement de registres, de formatage des valeurs lies leur tat lectrique, par exemple la sortie de registres, les entres et les sorties de rseaux combinatoires. Dans la plupart des cas, les signaux vhiculent uniquement lun ou lautre type dinformation, rarement les deux. Les contraintes lies chaque type dinformation sont trs diffrentes. Le fait de vhiculer les deux types dinformation additionne les contraintes et est de ce fait peu recommand. Toutefois, de tels signaux existent (par exemple les voies sries de tlcommunication). Les signaux qui vhiculent des vnements sont appels des signaux vnementiels (ou encore signaux de temps ou horloges) (gure 4.7). Certains vnements sont lis des transitions de la valeur porte par un tel signal, par exemple ses transitions ngatives. Celles-ci doivent donc tre dnies sans ambigut. Le signal doit donc tre exempt de toute transition parasite qui crerait des vnements non souhaits.

Dunod La photocopie non autorise est un dlit.

vnement

vnement

Figure 4.7

Signal vnementiel

La combinaison des vnements suit une logique particulire dans laquelle le repre temporel doit tre bien dni.

70

4 Rseaux de conduction et portes

Les signaux qui vhiculent des valeurs sont appels des signaux de valeur. Ces valeurs sont reprsentes par ltat logique de ces signaux. Ceux-ci doivent tre stables dans lintervalle dexamen du signal. En dehors de cet intervalle, le signal peut avoir nimporte quelle valeur (gure 4.8).
intervalle d'examen de la valeur

valeur non dfinie

valeur dfinie
Figure 4.8 Signal de valeur

4.1.4 Propret dun signal Nous dirons quun signal est propre, sur un certain intervalle temporel, sil est exempt de parasites. Cette proprit est particulirement importante pour les signaux vnementiels. En effet, tout parasite introduit des transitions inopportunes qui gnrent des vnements indsirables qui peuvent modier ltat du systme (gure 4.9).

parasites vnement vnements parasites vnement

Figure 4.9

Les parasites sur un signal de temps crent des vnements non dsirs

La propret dun signal de valeur est moins importante. En effet, ce signal ne doit tre exempt de parasites que pendant son intervalle dexamen. Les parasites sur un signal peuvent provenir de diffrentes sources (ponts de rsistances, couplages capacitif, selques), mais la source la plus importante provient de ltablissement des rseaux combinatoires. Ces parasites sont alors appels des alas. Ils proviennent du fait que ces rseaux sont constitus de plusieurs branches en parallle dans lesquelles les transitions des signaux internes se propagent diffremment. Au fur et mesure de larrive des signaux internes la ou les sorties vont afcher des valeurs transitoires incorrectes avant dafcher la valeur dnitive lorsque tout le rseau sera tabli. Le chemin minimum entre les entres qui ont vari et la

4.1

Reprsentation symbolique des signaux

71

Entre(s)
Sorties Entres

valeurs transitoires (alas) Sortie t. avant perturbation temps de rponse valeurs stabilises

Figure 4.10

Chronogramme des variations dune sortie dun rseau combinatoire

sortie considre permettra de dterminer linstant partir duquel la sortie va commencer varier, que nous appellerons temps avant perturbation, tandis que lexamen du chemin maximum permettra de dterminer linstant doccurrence de la valeur nale, que nous appellerons le temps de rponse du circuit combinatoire (gure 4.10). Lintervalle entre ces deux instants correspond des valeurs indtermines constituant lala. En quilibrant la longueur de ces deux chemins, il est possible de concevoir des rseaux combinatoires qui ne gnrent pas dalas. Linconvnient est quils sont beaucoup plus complexes. 4.1.5 Validation des signaux temporels (horloges) Il est dconseill de gnrer ou mme de valider, un signal temporel laide dun circuit combinatoire complexe sans prcautions trs particulires. Par exemple, il est dconseill dutiliser directement les sorties dun dcodeur comme des signaux temporels. Une bonne technique pour conditionner un signal dhorloge consiste utiliser une porte ET spciale, alimente par cette horloge (gure 4.11). Lorsque la porte nest pas alimente, aucun signal ne peut apparatre en sortie. Linconvnient de cette technique est que lnergie de lhorloge conditionnelle provient directement de celle de lhorloge primaire.
Dunod La photocopie non autorise est un dlit.

horloge initiale

condition (complmente)

horloge conditionne

Figure 4.11

Conditionnement dune horloge

72

4 Rseaux de conduction et portes

4.2

LE TRANSISTOR VU COMME UN INTERRUPTEUR

Les transistors MOS peuvent se comporter comme des interrupteurs (gure 4.12). Pour cela, il suft de les faire travailler entre leurs tats bloqus (Vgs < Vt, pour un transistor N) et saturs (cest--dire Vgs sufsant pour que Vds = Vsat).
Id

satur

bloqu

Vd

Figure 4.12

Un transistor vu comme un interrupteur

Dans ltat bloqu (Vgs < Vt, pour un transistor N), un transistor peut tre compar un contact ouvert, tandis que dans ltat satur (Vgs = Vdd, pour un transistor N), il peut tre compar un contact ferm (prsentant une rsistance Ron) (gure 4.13).

g s
Figure 4.13

g d s d

Transistor N et son contact quivalent

4.2.1 Imperfections Lassimilation dun transistor un interrupteur nest toutefois pas parfaite. Il savre que si un transistor N doit transmettre un signal Vdd, alors sa tension de commande Vgs va devenir trop faible pour maintenir le transistor satur et la tension de sortie de linterrupteur transistor natteint, au mieux, que Vdd-Vt (gure 4.14). Cela est particulirement visible lorsque linterrupteur est charg par une pure capacit, ce qui est le cas gnral. Par contre, un transistor N transmet bien les tensions proches de 0 v. Leffet sera symtrique pour un transistor P utilis comme un interrupteur. Celui-ci transmet bien une tension Vdd, mais, par contre, une tension de 0v sera transmise comme Vt.

4.3

Rseaux de conduction

73

Vdd g Vdd d s Vdd-Vt 0v


Vdd

Vt

t
Figure 4.14 Mauvaise transmission des 1 par un transistor N

4.3

RSEAUX DE CONDUCTION

4.3.1 Logique de conduction Depuis longtemps, on ralise des rseaux complexes en assemblant des interrupteurs et des relais. Ces rseaux ont pour proprit que la signication de leurs entres, dont les valeurs de vrit correspondent aux positions des interrupteurs et aux tensions qui alimentent les relais, est diffrente de celle de leur sortie dont les valeurs de vrit reprsentent la conduction du rseau qui peut tre conducteur ou non (gure 4.15). Il est facile de voir que la mise en srie dinterrupteurs ou de relais correspond raliser un ET de leurs fonctions de conduction, tandis que leur mise en parallle correspond raliser un OU de leurs fonctions de conduction.

B
B

A B
Figure 4.15
Dunod La photocopie non autorise est un dlit.

A B

a) Fonctions de conduction des transistors

La fonction de conduction dun transistor N est triviale puisque ce transistor conduit lorsque la valeur logique du signal qui excite sa grille est vraie. Celle dun transistor P est inverse, cest--dire que ce transistor conduit lorsque la valeur logique du signal qui excite sa grille est fausse.
b) Fonction de conduction des rseaux constitus de transistors dun seul type

La fonction de conduction dun rseau constitu de transistors dun seul type est obtenue par la composition des fonctions de conduction de ses transistors et des

74

4 Rseaux de conduction et portes

sous-rseaux qui le composent. Les fonctions de conduction de ces lments en parallle sont combines par des OU et celles de ceux en srie par des ET. Dans le cas de transistors N, la fonction de conduction du rseau est identique celle dun rseau dinterrupteurs ou de relais (gure 4.16).

A
A B

A B
Figure 4.16

A B

Dans le cas de lassemblage de transistors P, comme leur fonction de conduction est inverse de celle des transistors N, la fonction de conduction de deux transistors P en srie sera A B et A B sils sont en parallle (gure 4.17).

A
A B

A B
Figure 4.17

A B

Il est possible de raliser des rseaux de conduction complexes (gure 4.18).

g3 g1 g2 g4

Figure 4.18

Exemple dun rseau N ralisant la fonction de conduction : g 1 g 2 ( g 3 g 4 )

4.3

Rseaux de conduction

75

Comme les transistors qui les composent, les rseaux de conduction raliss laide de transistors N transmettent mal les 1, tandis que ceux raliss laide de transistors P transmettent mal les 0.
c) Rseaux de conduction CMOS

Lassemblage dun transistor N et dun transistor P permet de raliser un interrupteur, dit CMOS (gure 4.19), qui laisse aussi bien passer les 1 que les 0. En effet, chaque transistor compense les dfauts de lautre. Toutefois, la grille du transistor P doit tre excite par un signal complment pour que les deux transistors offrent la mme fonction de conduction.

X X

X
Figure 4.19

X
Interrupteur CMOS

La permutation des commandes X et X entre les transistors N et P permet dinverser la fonction de conduction de linterrupteur CMOS. 4.3.2 Utilisation des rseaux de conduction Les rseaux de conduction sont utiliss pour amener, conditionnellement, des valeurs logiques sur certains nuds du circuit. Ces valeurs logiques peuvent provenir dautres nuds ou des alimentations (Vdd et Vss). Plusieurs rseaux peuvent tre utiliss conjointement (gure 4.20). Chacun deux ne transmet quune partie du tableau de vrit de la fonction raliser qui peut tre complte ou partiellement dnie. Les contributions des diffrents rseaux peuvent tre disjointes ou avoir des superpositions. Dans ce cas, les valeurs amenes simultanment au nud destination ne doivent pas tre contradictoires. Si aucun rseau ne fournit de valeur ce nud, celui-ci est isol. Ceci peut tre intentionnel (voir portes 3 tats paragraphe 4.4.4). Exemple : rseau tally [CAL58] (gure 4.21) : Un tel rseau est destin compter le nombre de bits 1 dans un mot. Il est organis comme un rseau daiguillages qui oriente un bit initial 1 sur une srie de lignes parallles correspondant aux diffrentes valeurs. Le circuit se complique car les autres lignes de sortie doivent tre portes 0 .

Dunod La photocopie non autorise est un dlit.

76

4 Rseaux de conduction et portes

rseau i a rseau j b S

rseau k u
Figure 4.20 Signal gnr par plusieurs rseaux de conduction

nb de "1"
"0"

4 3 2 1 0

"0"

"0"

"0"

"1" "0" "0" "0" "0"

B3

B3

B2

B2

B1

B1

B0

B0

Figure 4.21

Circuit Tally vu comme un rseau dinterrupteurs

4.4

PORTES LOGIQUES

Dans un circuit CMOS, les portes sont constitues par lassemblage de rseaux de conduction branchs entre Vdd, Vss, les entres et leurs sorties. Les diffrents schmas possibles permettent dobtenir toute une gamme de rapports performance/complexit qui offrent diffrent choix pour optimiser la conception dun circuit. 4.4.1 Consommation des portes logiques Dans la grande majorit des cas, les portes dun circuit CMOS sont charges par de pures capacits. En effet, les portes sont trs souvent connectes sur les grilles des transistors qui constituent les portes suivantes. Ceci entrane quelles nont pas de consommation continue. Lnergie quelles consomment nest dissipe que lors des charges

4.4

Portes logiques

77

et dcharges des capacits constitues par les grilles de transistors qui constituent les entres des portes suivantes. Pour une entre et pour un couple de transitions ( 0 1 0 ), la charge transfre de lalimentation vers la masse sera donc exprime par : Q = CV Si f reprsente la frquence dexcitation de la porte, cest--dire le nombre moyen de couples de transitions par seconde, le courant consomm par cette entre est : i = CVf La puissance moyenne consomme par un circuit CMOS est donc : W = C tot V 2 f dans laquelle Ctot reprsente lensemble des capacits du circuit et f la frquence moyenne de commutation des portes. La frquence particulirement leve des microprocesseurs modernes explique leur consommation importante. 4.4.2 Portes CMOS classiques Les portes CMOS dites classiques sont constitues par lassemblage de deux rseaux de conduction branchs entre Vdd, Vss et la sortie et qui reoivent les mmes entres.
VDD

Rseau de Tr P => fonction de conduction conduction f* Entres Sortie => f Rseau de Tr N => fonction de conduction f
Dunod La photocopie non autorise est un dlit.

VSS
Figure 4.22 Une porte classique vue comme lassemblage de deux rseaux de conduction duaux

Un premier rseau de conduction, dit N, constitu de transistors N, est charg de tirer la sortie vers Vss. Il est donc branch entre la sortie et Vss. Si la porte doit raliser la logique f, ce rseau doit donc avoir gN = f comme fonction de conduction. Comme il nest pas possible davoir des termes complments dans un rseau constitu de transistors N, la fonction ralise par la porte doit donc toujours comporter

78

4 Rseaux de conduction et portes

une ngation globale (par exemple, f = ( A B ) ). On parle alors de portes inverseuses. Le second rseau de conduction, dit P, est constitu de transistors P. Il est charg de tirer la sortie vers Vdd. Il est donc branch entre Vdd et la sortie. Si la porte doit raliser la fonction f, ce rseau doit donc avoir gP = f ( entres ) comme fonction de conduction. Par rapport au rseau N, sa fonction logique est donc : gP = gN ( entres ) , soit gN*. Comme la dualisation dune fonction sobtient en remplaant dans son criture les ET par des OU et rciproquement (voir annexe sur les fonctions boolennes). De mme, le rseau de transistors P est soit obtenu partir du rseau de transistors N par le remplacement des mises en srie par des mises en parallle et rciproquement, soit par la synthse directe de gP partir de f ( entres ) .
VDD

B rseau P A C S = ((A V B) A B rseau N C V C)

A B S C

Figure 4.23

Exemple de porte ( ( A B ) C )

Les portes classiques sont celles qui permettent datteindre les meilleures performances en vitesse. En effet, les rseaux de transistors N et P sont utiliss de manire optimale. Toutefois, ces portes comportent beaucoup de transistors qui occupent de la surface et chargent les entres de manire importante.
a) Dimensionnement des portes CMOS
Dimensionnement des transistors

Pour obtenir un fonctionnement quilibr, les rseaux N et P doivent prsenter des rsistances comparables lorsquils sont conducteurs, de manire ce que les temps de monte et de descente de la porte soient proches. Ces dures correspondent la charge et la dcharge des capacits attaques par la porte. Pour cela, il est ncessaire de tenir

4.4

Portes logiques

79

VDD

B A

4 rseau P 4 C 2 S

2 rseau N

Figure 4.24

Exemple de dimensionnement des transistors dune porte classique

compte de la diffrence de mobilit entre les transistors N et P ainsi que de la diffrence entre la mise en parallle ou en srie des transistors dans les rseaux de conduction. Comme la longueur de ces transistors est minimale (donne par la largeur du ruban de polysilicium qui constitue leur grille), il convient de moduler leur largeur en consquence. Les portes classiques seront dimensionnes par rapport un inverseur choisi comme rfrence. Elles auront donc la mme sortance. La largeur du transistor N de cet inverseur donnera lunit de dimensionnement des transistors de la porte. Celle-ci devrait donc avoir les mmes temps de monte et de descente que linverseur, la diffrence prs de linuence de son impdance de sortie, diffrente de celle de linverseur. Lobtention dune sortance diffrente peut tre obtenue par la multiplication de la largeur de tous les transistors par le coefcient dsir.
Calcul de lentrance des portes

Dunod La photocopie non autorise est un dlit.

Lentrance dune porte correspond la charge que chaque entre de cette porte ramne sur la sortie de la porte qui lattaque. Elle est surtout constitue de la capacit des grilles des transistors connectes cette entre. Elle peut se dterminer par rapport celle de linverseur de rfrence via la capacit grille de son transistor N. Comme la capacit grille unitaire des transistors P est identique celle des transistors N, la capacit de lentre dun inverseur sera donc trois fois celle de la grille de son transistor N. Lentrance de la porte de lexemple prcdent est :
Entres A B C larg. Tr. N 2 2 2 larg. Tr. P 4 4 2 larg. Tr. P + N. 6 6 4 quiv. inv 2 2 1,3

80

4 Rseaux de conduction et portes

Chacune des entres A, B charge donc la porte qui lattaque comme deux inverseurs. Lentre C la charge comme 1,3 inverseurs. Cette technique de calcul relatif peut stendre aux interconnexions, en considrant la capacit dune unit de longueur de l (de largeur standard) de chaque matriau par rapport la capacit dentre de linverseur de rfrence. Ceci permet dassimiler chaque connexion longue lentre dun certain nombre dinverseurs de rfrence.
b) Optimisation des portes CMOS

Les rseaux de conduction N et P qui constituent une porte CMOS peuvent tre simplis en cherchant partager, entre plusieurs portes, des sous-rseaux identiques. Ces sous rseaux doivent tre en srie et branchs Vdd ou Vss pour ne partager que les effets de leurs variations de conduction. Il est galement possible de permuter des sous-rseaux en srie ou en parallle pour pouvoir les partager.
VDD

B A

sous-rseau commun

E S1 = (A V B V E) A B E

C S2 = (A V B V (C V D))

C D

Figure 4.25

Exemple de deux portes partageant un sous-rseau P

4.4.3 Portes CMOS non classiques Il est possible de raliser des portes CMOS qui utilisent beaucoup moins de transistors que les portes classiques au prix dune sortance plus faible et dun dessin des masques moins rgulier. La ralisation de ces portes sappuie sur plusieurs techniques :
a) Portes obtenues par lassemblage de rseaux de conduction non duaux

Dans ces portes, plusieurs rseaux de conduction participent la ralisation des valeurs de sortie partir des alimentations (Vdd et Vss) mais aussi partir des entres. Lutilisation de ces portes ncessite souvent de disposer des valeurs directes et complmentaires des signaux dentre.

4.4

Portes logiques

81

Portes ET (OU)

Celles-ci utilisent les proprits dissymtriques des fonctions et . A B = A si B = 1, 0 si B = 0 A B = A si B = 0, 1 si B = 1 Elles sont constitues de 3 transistors constituant deux rseaux de conduction : Un interrupteur CMOS transmet la valeur dentre A en sortie lorsque lautre entre B est vraie (fausse dans le cas dune porte OU). Un transistor N (P dans le cas dune porte OU) qui force la sortie 0 (1) lorsque lentre B est fausse (vraie) Lutilisation de ces portes ncessite de disposer des valeurs directe et complmentaire de lune des entres.

b a

r1

S
r2

a b

porte ET

porte OU

Figure 4.26

Portes ET et OU

Il existe dautres faons de raliser des portes ET et OU. Nous pouvons mentionner le schma suivant de porte ET qui consiste alimenter un inverseur par lun des oprandes :
H
Dunod La photocopie non autorise est un dlit.

HC

Figure 4.27

Porte ET pour le conditionnement dune horloge

Ce type de porte est utilis pour gnrer des sous-horloges en conditionnant une horloge primaire. La conception de la porte assure une grande propret du signal de sortie

82

4 Rseaux de conduction et portes

lorsque la condition est fausse. Il faut aussi remarquer que toute la puissance utilise par lhorloge secondaire provient de lhorloge primaire.
Portes OUEX (NON-OUEX)

La ralisation dune fonction OUEX, ou NON-OUEX, avec des portes classiques demande beaucoup de transistors. Les approches prsentes ci-dessous proposent des solutions plus conomiques. Il existe une grande varit de portes OUEX (NON-OUEX) non classiques. Nous allons examiner les 3 plus utiliss. Elles sont toutes ralises laide de 4 transistors, toutefois leur mise en uvre demande de disposer des valeurs directes et complmentes de tout ou partie des entres. La ralisation des portes NON-OUEX repose sur la remarque suivante : NON-OUEX(A, B) = ( A B ) = ( A B ) = ( A B ) Ralisation laide de deux interrupteurs CMOS : Il est possible de raliser une porte OUEX en remarquant que : OUEX(A, B) = A si B = 0,
b
OUEX

A si B = 1

a a b a a b

I1

S
I2

NON-OUEX

Figure 4.28

Porte OUEX constitue de deux interrupteurs CMOS

Cette porte OUEX ncessite de disposer des valeurs directes et complmentes des entres. La permutation des entres A et A (ou B et B ) fournit la porte NON-OUEX. Ralisation laide dun interrupteur CMOS et dun inverseur aliment par lun des oprandes : Cette porte OUEX utilise la mme criture que la prcdente. Toutefois, le terme : A si B = 1 est ici ralis par un inverseur aliment par B et B (gure 4.29). Cette porte OUEX ne ncessite que de disposer des valeurs directes et complmentes que dune entre. La permutation des entres B et B fournit la porte NON-OUEX. Ralisation ne ncessitant que de disposer des deux entres directes : Cette porte, symtrique, repose sur lcriture suivante de la fonction OUEX : OUEX(A, B) = A si B = 0, B si A = 0, 0 si A = 1 et B = 1 ce qui peut tre ralis par la gure 4.30 : Cette porte possde linconvnient de gnrer une sortie 0 altre lorsque A = B = 0. La ralisation de la fonction NON-OUEX repose sur lcriture suivante :

4.4

Portes logiques

83

b b a I b a P S

Figure 4.29 Porte OUEX constitue dun interrupteur et dun inverseur alimentation commande

Figure 4.30

Porte OUEX quatre transistors

NON-OUEX(A, B) = A si B = 1, B si A = 1, 1 si A = 0 et B = 0 ce qui peut tre ralis par la gure 4.31 : Cette porte possde linconvnient de gnrer une sortie 1 altre lorsque A = B = 1.

Dunod La photocopie non autorise est un dlit.

B
Figure 4.31 Porte NON-OUEX quatre transistors

84 Porte MINORIT

4 Rseaux de conduction et portes

Une porte Minorit (non-Majorit) trois entres peut tre conue de manire symtrique, avec des rseaux N et P apparemment non duaux qui ralisent les fonctions de connection gN et gP symtriques.
VDD

A B A

C S = Min(A,B,C)

B A B

Figure 4.32

Porte MINORIT symtrique (et duale)

En fait, les rseaux N et P sont bien duaux. Pour le voir, il suft dappliquer la relation ( A B ) ( A B ) A B .
b) Logique CVSL (Cascade Voltage Switch Logic)

La logique CVSL [HEL84] est base sur la gnration simultane dune fonction logique et de son complment. Les portes CVSL sont dissymtriques car les rseaux P sont remplacs par de simples transistors P commands par lautre polarit. Cette approche prsente des avantages mais aussi des inconvnients : Le bnce en surface apport par le remplacement des rseaux P par de simples transistors nest sensible que pour les portes complexes. Il est quelquefois possible de partager des transistors entre les deux rseaux N. La disponibilit des complments permet de raliser directement des fonctions complexes. Les portes CVSL sont environ deux fois plus lentes que les portes classiques car leur commutation demande ltablissement successif des deux polarits. Nous verrons que le dessin des masques des portes CVSL nest pas aussi systmatique que celui des portes classiques.

4.4

Portes logiques

85

VDD

VDD

VDD

VDD

AB

AB

f
entres f f

Figure 4.33

Principe et exemple dune porte CVSL

4.4.4 Portes 3 tats La sortie de certaines portes obtenues par lassemblage de rseaux de conduction peut ne pas tre totalement dnie. Pour certaines congurations des entres, aucun rseau ne dnit la valeur de la sortie qui reste isole. Nous dirons que cette sortie travaille sur une logique dite 3 tats (deux tats logiques 1 et 0 et un tat isol).

E C
Figure 4.34

Symbole gnral dun inverseur 3 tats

Dunod La photocopie non autorise est un dlit.

Les portes 3 tats sont utilises lorsque plusieurs sources doivent tre connectes un mme nud, par exemple dans le cas dun bus. un instant donn, une seule source dnit la valeur logique de ce nud, tandis que toutes les autres sont isoles.
bus

source s ource

source

source

(isole)

(connecte)

(isole)

Figure 4.35

Utilisation de portes 3 tats pour la connexion un bus

86

4 Rseaux de conduction et portes

a) Ralisation des portes 3 tats

Il existe deux grandes techniques pour raliser des portes 3 tats :


Utilisation dun interrupteur CMOS

Il est ais de transformer une porte classique en porte 3 tats en la faisant suivre dun interrupteur CMOS.
C E S

Figure 4.36

Inverseur 3 tats obtenu avec un interrupteur CMOS

Modication des rseaux de conduction N et P dune porte pour obtenir

son isolation

Il est possible dajouter des transistors ces rseaux pour obtenir leur isolation conjointe.
Vdd

Vdd

entres

rseau P

transistors d'isolation

C S C
E

C S C

entres

rseau N

Figure 4.37

a) Principe des portes 3 tats ; b) schma dun inverseur 3 tats

b) Dimensionnement des portes de transfert

Le dimensionnement des transistors des portes de transfert se fait de la mme manire que pour ceux des portes standard. Il faut identier les chemins lectriques de la capacit de charge VDD et la masse puis dimensionner les transistors qui les composent de manire ce que leur assemblage donne les mmes transistors quivalents que ceux dun inverseur pris comme rfrence.

4.4

Portes logiques

87

Les longues chanes dinterrupteurs dgradent lnergie des signaux qui les parcourent. Il faut quil en reste sufsamment lextrmit pour exciter la charge. Ce qui limite leur longueur. Toutefois, les fonctions logiques ralises laide dinterrupteurs ne consomment aucune nergie, ce qui peut tre intressant pour raliser des montages basse consommation. Exemple : Dimensionnement des transistors dun interrupteur CMOS suivant un inverseur.
Vdd

Sel E Sel S

Figure 4.38

Interrupteur suivant un inverseur

Chemin de charge de la capacit de sortie

Vdd

Sel 4 E 4 S

C
Dunod La photocopie non autorise est un dlit.

Figure 4.39

Chemin de charge de la capacit de sortie et dimensionnement des tr. P

88

4 Rseaux de conduction et portes

Chemin de dcharge de la capacit de sortie

E 2

S 2 Sel C

Figure 4.40

Chemin de dcharge de la capacit de sortie et dimensionnement des tr. N

4.5

LOGIQUE DYNAMIQUE

La logique dynamique consiste utiliser les proprits de mmorisation naturelle de lentre dune porte lorsquelle est isole. En effet, limpdance des entres dune porte est gnralement capacitive. Celle-ci retiendra donc la dernire valeur qui lui a t applique avant son isolation par une porte amont 3 tats. Comme la capacit en jeu est gnralement trs faible (de lordre de la dizaine de fentofarads) et que son isolation nest pas parfaite, la dure de rtention de linformation nest que de quelques microsecondes. Elle est toutefois sufsante pour les applications rapides et surtout lorsque lon est sr que cette rtention reste dans une dure acceptable. Cette technique est utilise pour raliser des portes logiques particulirement conomiques dans lesquelles la valeur de la sortie est labore sur plusieurs instants. Dans
VDD
prcharge

P S Entres f rseau N P
prcharge
Figure 4.41
dcharge

VS

t dcharge

Principe de la logique dynamique

4.5

Logique dynamique

89

un premier temps, dit de prcharge, la sortie est porte un potentiel dtermin, gnralement Vdd, par un transistor P dit de prcharge. Dans un second temps, dit dvaluation, la sortie est dcharge conditionnellement par un rseau de conduction N pour obtenir la valeur de sortie dsire. Cette technique permet de remplacer un rseau P complexe et coteux par un simple transistor P. Il est ainsi possible de raliser conomiquement des portes (non) OU un trs grand nombre dentres. Linconvnient majeur de cette technique est que ces montages ne peuvent tre tests vitesse rduite car le fonctionnement de la logique dynamique ncessite de respecter une vitesse minimale dexcitation. 4.5.1 Logique Domino Lvaluation dun ensemble de fonctions logiques peut tre ralis laide dune suite de portes dynamiques fonctionnant la suite les unes des autres dans le mme cycle de prcharge-dcharge. Pour cela, les sorties de chaque porte devront tre inverses pour ne pas dcharger la porte suivante pendant la phase de prcharge. La dcharge des sorties du premier niveau (pour leur donner leur valeurs) positionne les entres des portes du second niveau et ainsi de suite jusquau portes terminales (effet domino ).
VDD P VDD VDD

VS
f1 entres P niveau 2 niveau 3 f2 f2 f3

123 t prcharge dcharge (effet domino)

niveau 1
Dunod La photocopie non autorise est un dlit.

Figure 4.42

Principe de la logique Domino

4.5.2 Partage de charges Lutilisation dune succession de mmorisations dynamiques sans rgnration des signaux amne une dgradation de la qualit des signaux par le phnomne du partage de charges. Linformation, stocke dans des capacits, est reprise par des interrupteurs qui la connectent dautres capacits. Il se produit alors une galisation des potentiels par transfert des charges au travers des interrupteurs (bidirectionnels). La tension nale peut tre dgrade, voire impose par la sortie si sa capacit est plus leve que celle do provient linformation.

90

4 Rseaux de conduction et portes

1 E V1 C1 1

2 V2 C2 S

Figure 4.43

Effet de transfert de charges

La capacit C1 est charge V1 (VDD) pendant 1. La capacit C2 est alors charge V2. Pendant 2 se produit un transfert de charges et une galisation des potentiels. En ngligeant les pertes rsistives, la valeur du potentiel nal est : C 1V 1 + C 2V 2 Vf = -----------------------------------C1 + C2 Le phnomne de partage de charges peut aussi se produire lintrieur dune porte 3 tats et amener une perturbation de la sortie isole.
VDD

T1

Cp

T2

E
T3

CS

T4

Figure 4.44

Exemple de partage de charges dans une porte 3 tats

Pour montrer leffet du partage de charges dans cette porte 3 tats, supposons un tat initial avec E = 1 et C = 1. Le transistor T2 est bloqu et tous les autres saturs. La capacit parasite Cp est porte VDD. Si C < = 0, cette capacit devient isole et reste charge. Si maintenant lentre E devient 0, le transistor T2 devient conducteur et il se produit un transfert de charges entre Cp et CS, ce qui peut perturber le potentiel sil correspond une mmorisation dynamique. Les schmas ci-dessous ne prsentent pas cet inconvnient (C2MOS [SUZ73]).

4.6

Logique matricielle

91

Vdd

Vdd

C E C S

C E S

Figure 4.45

Portes 3 tats sans effet de partage de charges

4.6

LOGIQUE MATRICIELLE

La ralisation matricielle de fonctions logiques ou de mmorisation permanente conduit des ralisations trs denses mais souvent peu rapides. 4.6.1 Matrice de ROM La structure de base de la logique matricielle est la matrice de ROM ( Read Only Memory/mmoire morte).

Lignes de slection

Matrice de ROM

Dunod La photocopie non autorise est un dlit.

Sorties

Figure 4.46

Matrice de ROM

Une matrice de ROM est excite par plusieurs lignes de slection. Elle fournit des valeurs sur des lignes de sortie. Lexcitation dune ligne de slection (code 1 parmi n) provoque lapparition dun prol binaire particulier, li cette ligne de slection, sur

92

4 Rseaux de conduction et portes

les lignes de sortie. Lexcitation simultane de plusieurs lignes de slection provoque la sortie dune combinaison des prols lis aux lignes de slection excites. La nature de cette combinaison dpend de lorganisation de la matrice de ROM. Deux organisations de matrice de ROM sont possibles qui diffrent par leur encombrement et leur performance.
a) Matrice de ROM NOR

Elle se compose dune srie de portes NOR qui reoivent un ux dentre commun sur ses lignes de slection. Chaque transistor de la structure est branch entre la ligne de sortie du NOR auquel il appartient et Vss. Sa grille est connecte sur une ligne de slection. Les lignes de sortie des portes NOR doivent tre rappeles 1 :
Vdd Vdd Vdd Vdd

E0

Lignes de slection

E1 0

E2 0

Lignes de sortie

Figure 4.47

Matrice de NOR

Lexcitation dune ligne de slection provoque la mise 0 des lignes de sortie pour lesquelles un transistor est devenu conducteur. Cela revient dire quun prol de sortie est associ chaque ligne de slection. La dnition de ce prol, appele sa programmation, se fait en insrant des transistors aux jonctions entre cette ligne de slection et les lignes de sortie que lon souhaite porter 0. Les autres lignes resteront 1, prcharges ou tires Vdd par leurs transistors de charge. Les informations stockes dans la matrice constituent des mots dont la valeur apparat en sortie lorsque la ligne de slection correspondante est excite.

4.6

Logique matricielle

93

b) Matrice de ROM NAND

Elle se compose dune srie de portes NAND qui reoivent un ux dentre commun sur ses lignes de slection. Tous les transistors qui constituent chaque porte NAND sont monts en srie entre la ligne de sortie du NAND auquel ils appartiennent et Vss. La grille de chaque transistor de la srie est connecte sur une ligne de slection. Les lignes de sortie des portes NAND doivent tre rappeles 1. La ligne de slection excite est porte 0, ce qui rend isols les transistors auxquels elle est connecte.
Lignes de sortie 0 Vdd Vdd 1 Vdd 0 Vdd 1

E0

Lignes de slection

E1 0

E2 1

Figure 4.48

Matrice de NAND

c) Rappel des lignes de sortie

Quune matrice de ROM soit constitue de portes NOR ou NAND, ses lignes de sortie doivent tre rappeles Vdd : soit par des transistors P de prcharge, dans le cas dun fonctionnement dynamique de la matrice ; soit par des transistors P, dit de charge , monts en rsistance et connects Vdd. Ce type de porte (NOR ou NAND) est appel NMOS et possde linconvnient de consommer lorsque la sortie est porte 0. Les transistors de charge peuvent tre commands par un signal limitant la conduction une phase dvaluation (alimentation dite pulse ).
d) Programmation des matrices de ROM

Dunod La photocopie non autorise est un dlit.

La programmation des matrices de ROM consiste introduire ou non des transistors dans les structures NOR ou NAND qui les constituent. Les techniques de programmation de ces matrices diffrent suivant la facilit avec laquelle on veut pouvoir modier leur contenu.

94

4 Rseaux de conduction et portes

La programmation des matrices NOR consiste crer ou non des transistors aux croisements des lignes de slection et de sortie de la matrice. Cette prsence ou absence de transistors peut se faire de diffrentes manires. par la connexion, ou non, de transistors pr-existants ; par la modication, par implantation ionique, de la tension de seuil de transistors pr-existants pour quils ne soient jamais conducteurs ; par la cration mme de transistors en mettant ou non une zone active sous la ligne de poly qui constitue leur grille. La programmation des matrices NAND consiste crer des suites de transistors en srie. Labsence dun transistor signie quil remplac par une connexion pour maintenir les autres transistors en srie. La prsence de transistors ou de connexions peut se faire de diffrentes manires : par le fait de court-circuiter des transistors pr-existants. par la modication, par implantation ionique, de la tension de seuil de transistors pr-existants pour quils soient toujours conducteurs. 4.6.2 Utilisation des matrices de ROM comme reconnaisseurs/dcodeurs Les matrices de ROM peuvent tre utilises en reconnaisseur pour reconnatre les prols dentre. Pour cela, les lignes de slection sont groupes par paire et attaques par une entre et son complment. Un reconnaisseur programm pour reconnatre tous les prols binaires qui peuvent apparatre sur ses lignes dentre est appel un dcodeur. Son entre est alors appele une adresse dont la valeur correspond lindice de la ligne de sortie excite.
a) Reconnaisseurs NOR

Dans cet usage, une matrice NOR est utilise pour mesurer les ventuels dsaccords entre un prol en entre et un autre enregistr dans la matrice sous la forme de transistors. Il suft dun seul dsaccord sur une ligne dentre pour que la ligne de sortie correspondante soit porte 0. Cette ligne ne reste 1 que sil ny a aucun dsaccord (gure 4.49). La mesure des dsaccords se fait en disposant des transistors entre la ligne de sortie et Vss. Les grilles de ces transistors sont branches, soit sur une entre directe, soit sur une entre complmente. Si la grille dun transistor est branche sur lentre directe, alors celui-ci devient conducteur si cette entre est porte 1, ce qui portera la ligne de sortie 0. Une telle conguration est donc utilise pour reconnatre un 0. Symtriquement, un transistor excit par la ligne dentre complmente reconnat un 1. Labsence de transistors sur ces deux lignes dentre ne produit jamais de dsaccord. Cette conguration est appele et utilise pour ignorer cette entre dans le processus de reconnaissance. Par contre, la prsence de deux transistors (sur les entres directes et complmentes) produit toujours un dsaccord qui porte toujours la ligne de sortie 0. Cette conguration est donc inutilise.

4.6

Logique matricielle

95

Vdd

Vdd

Lignes de sortie

V Vdd dd

Vdd

E0

E1

E2

E3

Lignes d'entre

Figure 4.49

Programmation dun reconnaisseur NOR

b) Reconnaisseurs NAND

Dans cet usage, chaque NAND dune matrice reconnat un prol particulier entre les lignes dentres directes et complmentes. Si la grille dun transistor dun NAND est branche sur une entre directe, alors ce transistor devient conducteur lorsque cette entre est porte 1. Si sa grille est branche sur une entre complmente, alors ce transistor devient conducteur lorsque cette entre est porte 0. Lorsque tous les transistors dun NAND sont conducteurs alors sa sortie passe 0 (valeur active). Un NAND peut ignorer une entre sil ne comporte aucun transistor sur une entre ou sur sa valeur complmente. La conguration deux transistors nest jamais conductrice donc liminer (gure 4.50). 4.6.3 PLA-ROM
Dunod La photocopie non autorise est un dlit.

Le couplage dun reconnaisseur et dune matrice de ROM permet de cbler une fonction boolenne vectorielle (ventuellement incomplte) en tabulant la suite de ses arguments dans le reconnaisseur et la suite des valeurs correspondantes dans la matrice de ROM (gure 4.51). Lorsque les deux matrices sont de mme type NOR ou NAND, les lignes de sortie du reconnaisseur sont directement connectes sur les entres de la matrice de ROM. Si elles sont de type diffrent il est ncessaire de prvoir une ligne dinverseurs entre les deux matrices. Le reconnaisseur est souvent appel matrice ET et la matrice de ROM matrice OU. Nous verrons bientt la raison de cette dnomination.

96

4 Rseaux de conduction et portes

Vdd 1 0 Vdd Lignes de sortie

Vdd

Vdd

E0

E1

E2

E3

Lignes d'ente

Figure 4.50

Programmation dun reconnaisseur NAND

reconnaisseur

matrice de ROM

Figure 4.51

Tabulation de y = f(x)

Dans le cas dun PLA NOR-NOR, la reconnaissance dun prol dentre provoque le fait que seule sa ligne reste 1 provoquant la sortie de la valeur stocke dans la matrice de ROM pour cette entre (gure 4.52). Dans le cas dun PLA NAND-NAND, la reconnaissance dun prol dentre provoque le fait que seule sa ligne est porte 0. Ce qui provoque la sortie de la valeur de la fonction stocke dans la matrice de ROM (gure 4.53).

4.6

Logique matricielle

97

Matrice OU Matrice ET Vdd Vdd Vdd Vdd

Vdd

Vdd

Vdd

Lignes d'entre

Lignes de sortie

Figure 4.52

PLA NOR-NOR

Matrice OU Lignes de sortie 0 1 0 1

Vdd Matrice ET

Vdd

Vdd

Vdd

Vdd

0
Dunod La photocopie non autorise est un dlit.

Vdd

Vdd

Lignes d'ente

Figure 4.53

PLA NAND-NAND

98

4 Rseaux de conduction et portes

4.6.4 ROM Le couplage dun dcodeur et dune matrice de ROM donne une ROM ( Read Only Memory/mmoire morte). Ce dispositif permet de stocker des informations dans les diffrents mots de la matrice de ROM slectionns par le dcodeur. Linscription de ces information constitue la programmation de la ROM. Pour une matrice NOR, elle se fait en disposant des transistors entre les lignes de sortie et Vss. Les grilles de ces transistors sont connectes aux sorties du dcodeur. Il existe plusieurs faons de raliser et de connecter ces transistors suivant la facilit avec laquelle on souhaite pouvoir modier le contenu de la ROM ainsi que la densit du dessin que lon souhaite obtenir.
dcodeur adresses matrice de la ROM

mot de sortie
Figure 4.54 Reprsentation schmatique dune Rom

Les dcodeurs de ROM ne sont pas toujours raliss laide de reconnaisseurs. Ils peuvent tre raliss laide de portes ou de structures hybrides portes et matrices (gure 4.55). Lutilisation de portes NAND se justie par le fait qelles ncessitent des transistors P plus petits, malgr la ncessit dun inverseur supplmentaire qui peut servir damplicateur pour exciter des matrices importantes. 4.6.5 PLA boolen Le couplage dun reconnaisseur (matrice ET) et dune matrice de ROM (matrice OU) peut aussi tre vu comme un moyen de raliser autant de fonctions boolennes quil y a de sorties de la matrice OU.
a) PLA NOR-NOR

Ce point de vue sappuie sur le fait que lexpression des sorties de la matrice ET est donn par lexpression : mi = qui peut se rcrire : mi =

(E j, Ek ) (E j, Ek )

4.6

Logique matricielle

99

sel0 sel1 sel2 sel3 sel4 sel5 sel6 sel7

a 2 a1 a 0

Figure 4.55

Dcodeur ralis avec des portes classiques

Ce qui justie le nom de matrice ET donn au reconnaisseur. Le fonctionnement de la matrice OU est donn par lexpression : sp = do, pour lensemble du PLA : sp =

( mi )
i

( (E j, Ek ))
i

qui montre que, une ngation prs, les sorties du PLA sont des fonctions boolennes exprimes en somme de produits des variables dentre directes et complmentes. La ngation terminale peut tre facilement incluse dans la circuiterie qui exploite les sorties du PLA. Dans ce cas, plusieurs lignes intermdiaires, appeles monmes, peuvent tre simultanment actives.
Dunod La photocopie non autorise est un dlit.

b) PLA NAND-NAND

Ce point de vue sappuie sur le fait que lexpression des sorties de la matrice ET est donn par lexpression : mi =

(E j, Ek ) ( mi )
i

ce qui justie, une ngation prs, le nom de matrice ET donn au reconnaisseur. Le fonctionnement de la matrice OU est donn par lexpression : sp =

100

4 Rseaux de conduction et portes

qui peut se rcrire : sp = do, pour lensemble du PLA : sp =

( mi )
i

( (E j, Ek ))
i

qui montre que les sorties du PLA sont des fonctions boolennes exprimes en somme de produits des variables dentre directes et complmentes. Dans ce cas, plusieurs lignes intermdiaires, appeles monmes, peuvent tre simultanment actives. 4.6.6 Alimentation pulse La rduction de la consommation des PLA peut tre obtenue en ne les alimentant que lorsquils sont utiliss.
Vcc matrice ET

matrice OU

Vcc

2
sortie entre

Figure 4.56

PLA alimentation pulse

Cette technique peut tre rafne en alimentant successivement les matrices ET et OU, mais il faut alors mmoriser la valeur des monmes pour permettre le fonctionnement de la matrice OU. Les valeurs maintenues pendant tout le cycle de fonctionnement du PLA, le sont de manire dynamique. 4.6.7 PLA dynamique Il est possible de raliser un PLA ayant un fonctionnement dynamique. Pour cela, il faut raliser des matrices ET et OU ayant elles-mmes un comportement dynamique. Les matrices doivent pouvoir tre isoles car la matrice OU fonctionne pendant que les lignes de sortie de la matrice ET sont prcharges.

4.6

Logique matricielle

101

Phase de prcharge : PLA NOR-NOR : Les lignes de sortie de la matrice sont prcharges, tandis que toutes les lignes dentre sont maintenues 0 pour viter toute dcharge. PLA NAND-NAND : Les sries de transistors constituant les portes NAND peuvent tre compltes par un transistor, command par la phase dvaluation, vitant la dcharge Phase dvaluation : Le mcanisme de prcharge est coup et les lignes dentre prennent leur valeur. Les lignes de sortie se dchargent conditionnellement. Il faut aussi noter que, comme toute structure dynamique, le fonctionnement dun PLA dynamique impose une vitesse minimale de fonctionnement, peu compatible avec des procdures de test.
a) PLA NOR-NOR dynamique

La ralisation dun PLA NOR-NOR dynamique pose plusieurs problmes : Les lignes dentres de la matrice OU tant excites partir des lignes de sortie de la matrice ET, il est ncessaire dinsrer un mcanisme pour les maintenir 0 pendant la prcharge de la matrice OU. Le fonctionnement biphas du PLA ncessite de croiser celui de ses matrices : La prcharge de la matrice ET se produit pendant lvaluation de la matrice OU. Cette dernire doit donc travailler avec les valeurs des monmes labors dans la phase prcdente. De mme, lvaluation de la matrice ET se produit pendant la prcharge de la matrice OU dont les entres doivent tre maintenues 0. La ralisation dun PLA biphas ncessite donc lintroduction dune circuiterie relativement importante entre les deux matrices, prcisment l o les lignes de monme sont trs serres.
Vcc matrice ET

1
Vcc
Dunod La photocopie non autorise est un dlit.

1 2

2
entre

2 1
sortie

Figure 4.57

PLA NOR-NOR biphas

102

4 Rseaux de conduction et portes

entres maintenues 0 prcharge sorties

entres actives Matrice ET dcharge sorties entres maintenues 0 prcharge sorties mmorisation et transfert entres actives Matrice OU dcharge sorties

Figure 4.58

Fonctionnement du PLA NOR-NOR biphas

b) PLA NAND-NAND dynamique

La ralisation dun PLA NAND-NAND dynamique est plus simple puisquil suft dajouter un transistor aux sries qui constituent les portes NAND pour viter leur dcharge. Il faut nanmoins sparer les matrices pendant la phase 2 puisque les sorties de la matrice ET doivent tre prcharges pendant que la matrice OU value ses sorties.
Lignes de sortie

2 1

1 1

Lignes d'entre

Figure 4.59

PLA NAND-NAND biphas

4.6

Logique matricielle

103

4.6.8 Optimisation des PLA Les PLA peuvent faire lobjet de diffrentes techniques doptimisation. Il faut noter que les matrices NAND sont plus compactes que les matrices NOR qui sont ellesmmes plus rapides.
a) Optimisation boolenne

Tout PLA peut tre considr comme un PLA boolen et tre optimis avec des techniques de minimisation de lensemble des fonctions boolennes quil ralise. Toutefois, cette optimisation, en rduisant la taille des matrices va accrotre la difcult de les connecter aux organes qui leur fournissent des valeurs et ceux qui utilisent leurs rsultats. Les techniques doptimisation topologiques qui permettent damliorer la connectivit du PLA savrent plus efcaces que celles qui portent sur son contenu.
b) Coins coups (PLA NOR-NOR)

La prsence de dans la matrice ET et de 1 dans la matrice OU correspond labsence de transistors. La permutation des monmes, des entres et des sorties permettent de repousser ces absences dans des coins qui peuvent tre enlevs, librant de la place pour y installer dautres fonctions.
zones enleves

ET OU

Figure 4.60

Optimisation des PLA par cration de zones vides

Dunod La photocopie non autorise est un dlit.

Il faut remarquer que cette optimisation namliore pas la connectabilit du PLA.


c) Sorties latrales (PLA NOR-NOR)

Les PLA complexes sont souvent assez longs. Les sorties de la matrice OU peuvent alors tre ralises sur son ct des positions qui permettent des connexions directes avec les blocs qui les utilisent [SEG85]. Ceci ncessite une rorganisation des monmes qui peuvent tre disposs prs du barycentre des positions des sorties auxquelles ils contribuent. Les monmes et les lignes de sortie peuvent tre rduites des segments les plus courts possibles. La place libre dans la matrice OU par les monmes raccourcis permet de tirer des connexions entre les segments de sortie et leur utilisation, des emplacements qui permettent leur connexion directe.

104

4 Rseaux de conduction et portes

Entres

ET

OU

Figure 4.61

PLA sorties latrales

BIBLIOGRAPHIE
[CAL58] S.H. Caldwell, Switching Circuit and Logical Design, Willey, New York 1958. [SUZ73] Y. Suzuki, Clocked CMOS Calculator Circuitery, IEEE journal of Solid State Circuits, Dec. 1973. [HEL84] L. Heller et al., Cascade Voltage Switch Logic : A Differential CMOS Logic Family, Proc. IEEE ISSCC Conference, pp. 16-17, Feb. 1984. [SEG85] T. Perez Segovia, PAOLA : Un systme doptimisation topologique de P.L.A., thse INPG, 25 octobre 1985, Grenoble.

Chapitre 5

Dessin des masques dun circuit intgr

5.1

DFINITION DU PROBLME

Dunod La photocopie non autorise est un dlit.

Le dessin des masques dun circuit intgr peut se faire laide de diffrents outils suivant le degr doptimisation choisi (nous verrons les diffrents outils qui peuvent tre utiliss dans le pragraphe 11.4). Trs souvent, les cellules sont dessines manuellement. Dans ce cas, il sagit de reprsenter, dans les diffrentes couches dun dessin, les motifs qui devront tre raliss dans les diffrents niveaux de photogravure. Ces dessins doivent obir un ensemble de rgles gomtriques trs prcises fournies par le fondeur (taille, espacement). Ces rgles reprsentent les contraintes de la technologie utilise. Le dessin des masques dun circuit complexe peut devenir un travail gigantesque si lon ne sorganise pas de manire efcace. Par rapport la conception des cartes lectroniques, la conception des circuits VLSI offre des degrs de libert supplmentaires qui sont lis au fait que lon doit tout dessiner, depuis les transistors jusquaux interconnexions. Cela permet doptimiser fortement la densit des blocs et dinnover sur la circuiterie. Il est ainsi possible de crer des fonctions adaptes lapplication (comme par exemple des hybrides de ROM et de PLA). Lorganisation spatiale dun circuit complexe sapparente de lurbanisme (ou de lorganisation territoriale !). Lutilisation dorganisations particulires permet de raliser des circuits plus optimaux. Lenjeu de la conception dun circuit VLSI consiste souvent transposer dans un domaine topologique le problme initial qui est souvent pos de manire fonctionnelle (gure 5.1).

106

5 Dessin des masques dun circuit intgr

fonctionnel

topologique

Figure 5.1

5.2

CONCEPTION TOPOLOGIQUE

Bien que trs grande, la surface dun circuit intgr savre souvent trop petite pour y loger tout ce que lon souhaiterait y mettre. Il ne faut jamais oublier que le cot dun circuit et son rendement de fabrication dpendent fortement de sa surface. Plus celle-ci est importante, moins il y aura de circuits raliss sur une tranche et plus la probabilit de dfauts sur un circuit sera importante. Un circuit intgr est constitu dune hirarchie de blocs imbriqus dont les feuilles reprsentent les cellules. Le dessin dun bloc de niveau i est obtenu par lassemblage et linterconnexion de blocs du niveau i + 1 (gure 5.2). Cet assemblage doit se faire le plus efcacement possible. Pour cela, on ajustera la forme des blocs de niveau i + 1 pour faciliter leur imbrication. Jusqu un certain niveau, on recherchera ce que les interconnexions seffectuent par la simple juxtaposition des blocs plutt que de devoir tirer des ls qui occupent de la surface de silicium ou des couches dinterconnexion.

Figure 5.2

Assemblage et interconnexion directe des principaux blocs dun circuit VLSI

Pour amliorer limbrication des blocs, ceux-ci doivent pouvoir se dformer. Comme ils contiennent des lments incompressibles tels que les transistors et les contacts, leur loi de dformabilit a lallure prsente gure 5.3. Plutt que de contourner un bloc par une connexion, il est prfrable de chercher le traverser. Nous appellerons transparence la proprit dun bloc de se laisser traverser par des connexions qui ne le concernent pas (gure 5.4). La conception des circuits VLSI est ainsi un bon exemple du fait quune optimisation globale ne rsulte pas forcment de lassemblage de sous-ensembles optimaux (optimisations locales).

5.3

Rgles symboliques

107

surface minimale

dimension minimale x

Figure 5.3

Loi de dformation dun bloc dessin manuellement

Figure 5.4

Transparence dun bloc

5.3

RGLES SYMBOLIQUES

Lutilisation des rgles technologiques se heurte leur spcicit et leur prcarit. En effet, les dessins raliss avec un jeu de rgles ne peuvent pas tre utiliss directement par la technologie suivante et encore moins par un autre fondeur. Pour contrer ces effets, plusieurs types de rgles standardises ont t dveloppes. Ces rgles dites symboliques ont pour objectif dassurer la portabilit des dessins dune technologie la suivante et dun fondeur lautre. Cette gnralit se paye par un degr doptimisation moindre qui se traduit par une perte de surface. Diffrentes approches ont t utilises :
Dunod La photocopie non autorise est un dlit.

dessin sur grille ; dessins symboliques pas xe ou variable, engraisss ou non. Une autre approche, utilise par les fondeurs pour la migration de leurs cellules dune technologie la suivante, consiste utiliser des outils de migration qui ralisent une homothtie intelligente en isolant les motifs dont lvolution nest pas homothtique. Ceux-ci seront alors remplacs automatiquement ou la main. 5.3.1 Rgles dites au Lambda Cette approche t introduite par C. Mead et L. Conway [MEA80]. Elle consiste dessiner sur une grille unitaire avec un jeu de rgles dnitivement x pour toute

108

5 Dessin des masques dun circuit intgr

une famille technologique (par exemple le CMOS). Ladaptation une technologie relle se fait en choisissant un pas de grille sufsamment grand pour permettre la transposition directe des dessins vers cette technologie (gure 5.5).

Figure 5.5

Exemple de dessin au Lambda

Le principal inconvnient de cette approche rside dans le fait que ces rgles, dnies pour la technologie nMOS de la n des annes 1970, ne correspondent plus aux technologies modernes qui nont pas volues homothtiquement depuis cette date et qui en plus, comportent maintenant des motifs de taille xe (par exemple les contacts). Lutilisation de ces rgles peut amener des pertes de surface et de performance importantes (du simple au double). Elles ne sont plus utilises par lindustrie mais seulement dans lenseignement. 5.3.2 Dessin symbolique sur grille Dans cette approche, le dessin est toujours effectu sur une grille pas unitaire (gure 5.6). Toutefois, le dessin est ralis laide de symboles (souvent paramtrables qui reprsentent des lments (transistors, contacts, ls). La transposition (appele expansion) de ces dessins vers une technologie donne est ralise par un processus complexe : Le pas de la grille est calcul partir des proprits de la technologie vise. Chaque symbole est transform en une pice de dessin en utilisant les rgles nes de la technologie vise. Le rsultat de cette expansion est assez optimis. La perte nest que de lordre de 20 %. Pour faciliter le confort du dessin, les symboles sont immdiatement transforms :

5.4

Couches technologiques et ux dinformation

109

pas

segment mtal 1

segment poly

contact
Figure 5.6

transistor

Dessin symbolique sur grille

soit en dessins squelettiques (voir 5.6) ; soit en utilisant des motifs correspondants une technologie moyenne (dite symbolique). Un jeu de rgles dnis sur le dessin symbolique permet dassurer que son expansion sera toujours correcte. Cette approche t utilise par lindustrie (Bull S.A.) pour raliser des circuits trs complexes qui ont pu tre fabriqus chez plusieurs fondeurs. Elle est aussi la base du systme Alliance.

5.4

COUCHES TECHNOLOGIQUES ET FLUX DINFORMATION

Un circuit intgr est dabord une surface plate qui offre son concepteur un certain nombre de couches technologiques correspondants aux principaux masques dessiner :
Dunod La photocopie non autorise est un dlit.

zones actives de type N et P (implantes ou diffuses) ; polysilicium (grilles et connexions trs courte distance) ; mtaux (connexions et alimentations). Outre leurs proprits spciques, comme celles de permettre la ralisation des transistors, les qualits de conductions de ces couches vont en samliorant des zones actives aux mtaux. 5.4.1 Organisation matricielle du dessin des blocs Pour rduire le travail de conception dun circuit intgr, on cherchera dessiner ses blocs par la rptition de cellules identiques. Nous verrons que cette approche facilite

110

5 Dessin des masques dun circuit intgr

flux de donnes

flux d'adresse

cellule lmentaire

Figure 5.7

Le croisement des ux dans un bloc matriciel

aussi les interconnexions. Pour cela, nous chercherons voir chaque bloc comme le croisement de deux, ou plus, ux dinformation, dhorlogerie ou dalimentation. Par exemple, une mmoire peut tre vue comme le croisement dun ux de donnes ( crire ou lire) et dun ux de slection des mots (issu de ladresse). Chaque point de croisement entre les informations lmentaires de ces ux donnera une cellule (gure 5.7). Un bloc de ce type se prsente alors comme une matrice rectangulaire constitue de cellules identiques qui sinterconnectent par simple juxtaposition dans les deux directions (gure 5.8).

Figure 5.8

Constitution dun bloc par la juxtaposition de cellules

De telles organisations matricielles sont utilises pour le dessin de nombreux blocs comme des mmoires vives ou mortes, des chemins de donnes, etc. La rgularit des dessins obtenus fait quils peuvent tre automatiquement raliss par des programmes informatiques appels gnrateurs ou assembleurs de silicium. On peut caractriser lefcacit dune stratgie de dessin par le taux de rutilisation des cellules. Un bon critre de mesure de la qualit du dessin dun circuit consiste valuer linverse de la proportion de sa surface qui ne comporte pas de transistors (zones vides ou dinterconnexion).

5.5

Dessin des portes CMOS classiques

111

5.4.2 Affectation des ux aux couches technologiques Nous affectons chaque ux, ainsi que les alimentations, une couche technologique (gure 5.9).
TABLEAU 5.1
Niveau 0 1 2 3 4 ...... Couches techno. caissons zones actives (dopes) polysilicium mtal 1 mtal 2 ...... Transistors Connexions locales Connexions locales ux 1 + alim locales ux 2 + alim globales ...... Ralise

Cela signie : que les couches sont croises ; que les matriaux sont utiliss de manire linaire ; quil faut viter les motifs en L .
diffusion mtal 1 polysilicium

mtal 2

Figure 5.9
Dunod La photocopie non autorise est un dlit.

Croisement des ux dans le dessin des cellules

5.5

DESSIN DES PORTES CMOS CLASSIQUES

Les principes gnraux prcdents peuvent tre appliqus au dessin des portes CMOS en considrant le ux des signaux logiques et celui des alimentations. Le dessin dune porte de ce type ncessite de raliser deux rseaux de conduction (un N et un P). Comme chaque entre attaque le mme nombre de transistors dans chacun de ces deux rseaux, il faut donc essayer de simplier leurs interconnections en alignant les transistors N et P ayant les mmes grilles. Il existe deux stratgies pour dessiner les portes classiques :

112

5 Dessin des masques dun circuit intgr

Une approche que nous pouvons qualier de verticale . Ces cellules sont gnralement destines tre assembles par juxtaposition, donc relies par des connections trs courtes, qui peuvent tre en polysilicium et constituer directement les grilles des portes suivantes. La faible longueur de ces interconnections permet dutiliser des transistors de taille minimale. Une approche que nous pouvons qualier d horizontale . Ces cellules sont gnralement destines tre assembles par des outils de cblage automatiques (approche dite base de cellules prcaractrises). Ces outils tirent, en gnral, de longs ls mtalliques dans des canaux de cblage ou au-dessus des cellules. Lexcitation de ces longs ls ncessite de dessiner des transistors plus larges. 5.5.1 Dessin dun rseau de conduction Lidal consiste dessiner un rseau de conduction comme une bande dactive barre par des lignes de polysilicium qui dnissent des transistors. Des connections locales en mtal sont utilises pour mettre en parallle ou en srie les transistors du rseau (gure 5.10).
G1 G3 G4 G5

G2
Figure 5.10

G1

G2

G3

G4

G5

Exemple de rseau de connexion et de son dessin

Le dessin dun rseau de conduction dun seul tenant nest pas toujours possible. Il doit quelquefois tre dcoup en plusieurs sous-rseaux. Il est important de remarquer que, dans chaque paquet de transistors en srie ou en parallle, les transistors peuvent tre permuts, et que les paquets en srie (ou en parallle) peuvent tre permuts entre eux.
Thorie

Un rseau de conduction peut tre reprsent par un graphe dans lequel les sommets sont les quipotentielles du rseau et les arcs les transistors (gure 5.11). On montre que ce rseau peut tre ralis dun seul tenant si le graphe correspondant admet un parcours dEuler1. Lordre des transistors sur la bande dactive correspond lordre des arcs dans ce parcours.
1. On appelle parcours dEuler dun graphe, un chemin qui parcourt tous ses arcs une seule et unique fois.

5.5

Dessin des portes CMOS classiques

113

T1 T2
T1 T2 T3
Figure 5.11

T3

T4 T5 T6

T4 T5 T6

Exemple de rseau de connexion et de son graphe

5.5.2 Dessin des portes classiques Les rseaux de conduction N et P qui constituent ces portes sont duaux et attaqus par les mmes entres. Pour des raisons doptimisation videntes, les transistors N et P relis une mme entre doivent tre aligns, ce qui signie que les parcours dEuler des graphes correspondants doivent parcourir leurs transistors dans le mme ordre (gure 5.12).

GND G1

VDD transistors P

G2 S
Dunod La photocopie non autorise est un dlit.

VDD

S transistors N

G3

G4

G5

GND

S
Figure 5.12

G1 G2 G3 G4

G5

Exemple de graphes de rseaux duaux et de leur dessin

Du fait de la dualit des rseaux de connexion, les paquets de transistors en srie dans le rseau N correspondent des transistors en parallle dans le rseau P et inversement.

114

5 Dessin des masques dun circuit intgr

Il est facile de voir que la ralisation dun seul tenant dun nombre impair de transistors en parallle ne pose aucun problme. La mise en srie des transistors complmentaires correspondants est triviale. Une solution pour raliser les paquets comportant un nombre pair de transistors en parallle consiste leur ajouter un transistor dit virtuel , toujours bloqu. Ces transistors virtuels pourront ensuite tre enlevs en laissant des trous (discontinuits dans les bandes dactive). La permutation des transistors dans un paquet et la permutation des paquets en srie (ou en parallle) permet de repousser une partie des trous aux extrmits do ils peuvent tre limins en raccourcissant la porte.
a) Approche verticale

Les bandes dactive de faible largeur sont disposes verticalement, alternativement N et P. Les portes successives se dveloppent horizontalement. Leurs rseaux de conduction sont permuts chaque tage ce qui permet de regrouper les bandes dactive de mme type dans des caissons verticaux. Les grilles sont constitues de lignes de polysilicium horizontales qui partent de la sortie des portes amont, cest--dire de la liaison de leurs rseaux de conduction N et P. Des lignes mtalliques verticales servent effectuer les connections de mise en parallle dans les rseaux de conduction N et P, ainsi que les alimentations primaires. Une seconde couche de mtal, horizontale, peut ventuellement servir la distribution globale des alimentations et aux connections grande distance (gure 5.13). Le strict respect de lutilisation linaire des couches facilite la transparence des cellules. Cette approche convient particulirement pour le dessin de cellules communiquant directement entre voisines immdiates, ce qui correspond lutilisation de petits transistors. Cest lapproche utilise pour le dessin manuel.

Figure 5.13

Cellule nao2o22 dessine verticalement

5.5

Dessin des portes CMOS classiques

115

b) Approche horizontale

Les bandes dactive de grande largeur (variable) sont disposes horizontalement constituant des transistors de grande largeur. Les portes successives se dveloppent sous la forme de bandes horizontales. Les caissons N et P sont aussi des bandes horizontales qui parcourent chaque bande de cellules. Les grilles sont des bandes de polysilicium verticales qui ne servent pas linterconnexion des cellules (gure 5.14).

Figure 5.14 Dessin horizontal de la cellule nao2o22_X4 de la librairie SXLIB du systme Alliance

La cellule nao2o22_X4 se compose dune porte CMOS complexe ralisant la fonction ( A B ) ( C D ) suivie de deux tages damplication pour obtenir une trs forte sortance. On remarquera lcartement des transistors pour permettre les connexions. Cette approche convient particulirement au dessin de cellules communiquant grande distance. Elle est systmatiquement utilise par les outils de conception automatique.
Dunod La photocopie non autorise est un dlit.

Interconnexion des cellules

La disposition et linterconnexion des cellules peut se faire de diffrentes manires suivant que lon considre un bloc dessin manuellement ou automatiquement (gure 5.15) : Dans un dessin manuel les cellules sont places cte cte au plus prs et relies avec des bandes de polysilicium (voisinage direct) et avec des bandes mtalliques. Les cellules, dessines verticalement, sont alternativement retournes sur un axe vertical pour partager les lignes dalimentation et les caissons. Dans le cas de dessin automatique, les cellules dessines horizontalement sur un gabarit de hauteur xe, sont alignes, par un outil de placement, sous la forme de

116

5 Dessin des masques dun circuit intgr

cellules

caissons bandes de cellules alimentations

Figure 5.15

Bandes de cellules partageant leurs caissons

bandes horizontales. Les lignes dalimentation se prolongent ainsi sur toute la longueur des bandes. Alternativement, les bandes de cellules sont retournes suivant un axe horizontal de manire partager les caissons et les barres dalimentation avec la bande suivante. Tant que les technologies nont offert que peu de niveaux de mtal, linterconnexion des cellules sest faite via des canaux de cblage dessins automatiquement. Le dessin dun canal suit les rgles gnrales et nutilise que deux couches de mtal (une horizontale et une verticale) (gure 5.16).

bandes de cellules

canal de cblage

Figure 5.16 Interconnexion des bandes de cellules par des canaux de cblage

Les technologies modernes offrent de nombreux niveaux de mtal. Ceux-ci permettent de supprimer les canaux de cblage. Celui-ci se fait maintenant au-dessus des cellules en utilisant les couches suprieures de mtal (gure 5.17).

5.6

Dessins squelettiques

117

Figure 5.17

Dessin dun squenceur cbl (cf. chapitre 9) synthtis avec le systme Alliance

5.6

DESSINS SQUELETTIQUES

Cette approche, adapte au dessin vertical , permet de projeter le dessin dune cellule dune manire schmatique en reprsentant chaque connexion par une ligne dune couleur reprsentative de la couche utilise (gure 5.18).
Vss Vdd Vss ri+1 Vdd Vss Vdd

ai si bi
Dunod La photocopie non autorise est un dlit.

c2

c3
Figure 5.18

ri

c1

Dessin squelettique dune cellule

Le dessin squelettique prsente lavantage dtre relativement indpendant des caractristiques dimensionnelles des technologies. Il peut ensuite tre transform en dessin des masques pour une technologie particulire, dune manire manuelle ou automatique, en donnant une largeur correcte aux lignes. Il est mme possible de

118

5 Dessin des masques dun circuit intgr

TABLEAU 5.2
Couche Caisson zones implantes N zones implantes P Polysilicium mtal 1 mtal 2 Couleur Gris Vert Marron Rouge Bleu bleu ciel

dnir des rgles gnriques pour le dessin squelettique, assurant son expansion correcte pour toute une gamme de technologies (gure 5.19).

Figure 5.19

Expansion de la mme cellule

5.7

DESSIN DES ROM ET DES PLA

Le dessin des matrices de ROM/PLA suit exactement les mmes rgles de croisement des couches. La technique de dessin dpend du nombre de maques altrer pour modier le contenu du PLA. 5.7.1 Matrices NOR Suivant le contenu du PLA, une cellule lmentaire consiste soit en un transistor, soit en une simple connexion. Les lignes sont dessines tte-bche pour partager les contacts et les lignes de masse. Il faut galement prvoir des lignes mtalliques priodiques de rappel de masse pour viter les effets parasites dus la forte rsistivit des lignes dactive qui vhiculent la masse (gure 5.20). Pour permettre la modication aise du contenu du PLA par laltration dun seul masque, il est possible de dessiner une matrice uniforme de transistors puis de venir ajouter un contact lorsque lon dsire connecter un transistor sur une ligne de bit.

5.7

Dessin des ROM et des PLA

119

lignes de bit

prsence de transistor

absence de transistor ligne de mot VSS

Figure 5.20

Dessin des cellules dun PLA NOR

5.7.2 Matrices NAND Les transistors qui agissent sur une ligne de bit sont tous en srie. Il faut toutefois permettre labsence de certains transistors en les remplaant par des court-circuits, ce qui ncessite lusage de deux contacts et dun pont mtallique (gure 5.21).
ligne de bit

prsence de transistor

lignes de mot absence de transistor (pont mtallique)


Dunod La photocopie non autorise est un dlit.

VSS
Figure 5.21 Dessin des cellules dun PLA NAND

Pour permettre la modication aise du contenu du PLA par laltration dun seul masque, il est possible de dessiner une matrice uniforme de transistors puis de venir court-circuiter ceux que lon dsire liminer.

120

5 Dessin des masques dun circuit intgr

5.8

ASSEMBLAGE DES MACRO-BLOCS DUN CIRCUIT

Les macro-blocs dun circuit possdent gnralement une transparence faible ou nulle. Ils sont conus pour simbriquer au mieux. Leur cblage se fait laide de canaux de cblage dessins laide doutils spciques au dernier niveau dinterconnexion du circuit (gure 5.22).

canal de connexion

Figure 5.22

Interconnexion des macro-blocs constituant un circuit

BIBLIOGRAPHIE
[MEA80] C. Mead et L. Conway, Introduction to VLSI Systems, Addison-Wesley, 1980. Traduction : Introduction aux systmes VLSI, InterEditions, 1983. [TAK81] Takao Uehara and William M. vanCleemput, Optimal Layout of CMOS Functionnal Arrays, IEEE Transactions Computer C30, n 5, May 1981, p. 305-312. [MAZ92] R.L. Mazias and J.P. Hayes, Layout Minimization of CMOS Cells, Kluwer Academic Publishers, Boston, 1992. [RIE03] M.A Riepe and K.A Sakallah, Transistors Placement for Non complementary Digital Vlsi Cell Synthesis, ACM Transaction on Design Automation on Electronic Systems, Vol. 8 n 1, January 2003, pp. 81-107.

Chapitre 6

Oprateurs arithmtiques

6.1

INTRODUCTION

Les oprateurs arithmtiques sont des composants importants des circuits intgrs logiques. Ils permettent lexcution des oprations arithmtiques. Ils sont indispensables aux microprocesseurs et aux circuits de traitement du signal. 6.1.1 Oprations ralises Bien que le nombre doprations arithmtiques intressantes soit assez important, les oprateurs arithmtiques cbls nen ralisent quune faible partie laquelle vient sajouter la ralisation des oprations logiques et des dcalages.
TABLEAU 6.1
Dunod La photocopie non autorise est un dlit.

OPRATIONS RALISES PAR UN OPRATEUR ARITHMTIQUE


addition soustraction addition avec report entrant soustraction avec report entrant ou-exclusif ou et

a+b ab a + b + r, r {0, 1} a b r, r {0, 1} Ab Ab Ab

122

6 Oprateurs arithmtiques

En forant le premier oprande 0 et r 1, on obtient les oprations suivantes : b+1 a1 De mme, on remarque que a + a = 2 a produit le dcalage gauche de a dune position. Dautres oprateurs, plus spcialiss, ralisent des multiplications trs rapides. Toutes les autres oprations complexes (division, extraction de racine, oprations trigonomtriques) se font par des enchanements doprations plus simples, de tests et de dcalages. 6.1.2 Reprsentation des nombres Aprs plusieurs essais, dont on voit les traces dans lhistoire de linformatique, les nombres sont maintenant toujours reprsents par des vecteurs de bits en numrotation binaire. Exemple : 241 11110001 a =
i = 0, n 1

2 i ai = a0 + 2 a1 + 4 a2 +

Comme ils ont toujours un nombre de bits limit, les vecteurs binaires reprsentent des ensembles quotients N 2 n , cest--dire les nombres de [ 0, 2 n 1 ] . Toute sortie de ces limites sera appele un dbordement. Les nombres sont gnralement reprsents par des vecteurs de 8, 16, 32 ou maintenant de 64 bits. Une autre convention consiste utiliser le mme intervalle de nombres binaires pour reprsenter les nombres positifs et ngatifs (relatifs) de [ 2 n 1 , 2 n 1 1 ] . Dans ce cas : 11110001 15 Le mme prol binaire peut donc reprsenter soit un nombre positif, soit un nombre ngatif, soit encore un code, par exemple un caractre. Cette ambigut nest pas gnante dans la mesure o l on sait que le vecteur binaire reprsente un entier normal ou relatif ou autre chose. Certaines machines ont utilis des reprsentations types dans lesquelles quelques bits additionnels (le type) dcrivaient la nature du contenu des mots binaires.

6.2

ADDITIONNEUR

Loprateur arithmtique de base est ladditionneur. Celui-ci peut tre utilis : soit pour raliser de simples additions, par exemple pour effectuer des calculs dadressage ;

6.2

Additionneur

123

soit complt de la logique ncessaire pour lui faire excuter les oprations classiques dun oprateur arithmtique (appel UAL pour Unit Arithmtique et Logique) ; soit dupliqu pour raliser des multiplications. Les autres oprations complexes (division, extraction de racine, logarithmes, oprations trigonomtriques) se font par des enchanements doprations plus simples, de tests et de dcalages. Le calcul des lvations des puissances leves ou fractionnaires, des logarithmes, des fonctions trigonomtriques se fait par le calcul optimis de leur dveloppement en srie. 6.2.1 Rutilisation de laddition Plusieurs oprations lmentaires se font par la rutilisation de laddition. Par exemple, la soustraction ncessite lutilisation dune circuiterie amont, sur lentre b de loprateur, qui ralise linversion logique du second oprande de la soustraction. En effet : b = b1 do : ab = a+b+1 et : a b 1 = a + b (soustraction avec retenue) Le troisime oprande (+1) reprsente la retenue entrante ( droite) de ladditionneur qui est normalement 0, mais qui peut tre porte 1. 6.2.2 Addition binaire Laddition binaire seffectue de la mme manire quune addition dcimale, mais en se situant dans larithmtique des nombres binaires. Exemple : 1111 retenues 1001101 a + 0101011 b 1111000 s rsultat Si nous isolons le processus daddition de deux bits ai et bi, nous voyons que le calcul du bit de rsultat si et de la retenue suivante ri +1 correspond aux fonctions boolennes suivantes : si = ai bi r i et : r i + 1 = maj ( a i , b i , r i )

Dunod La photocopie non autorise est un dlit.

124

6 Oprateurs arithmtiques

Nous voyons que les trois oprandes ai, bi, ri jouent des rles strictement identiques. Le calcul de la retenue peut sexprimer par : r i + 1 = ( ai bi ) ( ai bi r i ) Posons : g i = a i b i qui correspond la gnration dune retenue ; p i = a i b i qui correspond la transmission (propagation) de la retenue entrante : r i + 1 = gi ( pi r i ) qui signie que la retenue sortante est soit gnre, soit transmise partir de celle des poids plus faibles. De mme : si = pi r i 6.2.3 Synthse dune cellule dadditionneur Nous allons nous intresser la conception dune cellule dadditionneur capable de gnrer si et ri + 1 partir de ai, bi et ri. La ralisation dun additionneur capable dadditionner deux vecteurs binaires a et b consistera assembler autant de cellules que de bits dans les vecteurs.
a) Cellule dadditionneur ralise avec des portes de passage

bi ai bi

bi aibi ai bi ai=bi ri+1

ri

ri

si

Figure 6.1

Cellule dadditionneur 20 transistors

si a i b i

alors r i + 1 r i , s i r i

si a i = b i alors r i + 1 a i , s i r i Cette cellule est ralise laide de 20 transistors.

6.2

Additionneur

125

b) Cellule dadditionneur symtrique

La symtrie des expressions boolennes qui dnissent la cellule se traduit par le fait que les trois entres sont permutables (gure 6.2).

ri ai bi bi ai bi ri

bi

ri

ai

ai

si
ri ai ai

ai

bi

bi

ai

bi

ri

bi

ri

ri+1 Calcul de ri+1 Calcul de si

Figure 6.2

Cellule dadditionneur symtrique

Cette cellule est ralise laide de 24 transistors.


c) Cellule dadditionneur avec gnration de pi et gi

La synthse de ce type de cellule dadditionneur correspond la synthse simultane de gi , pi , ri + 1 et si . p i = a i b i peut se rcrire p i = ( a i b i ) ( a i b i ) , do une synthse en portes : pi = ( ai bi ) ( ai bi )
Dunod La photocopie non autorise est un dlit.

Nous remarquons que le terme ( a i b i ) correspond g i . La synthse simultane de g i et p i est reprsente gure 6.3.
ai

pi gi
Circuit de calcul de p i g i

bi
Figure 6.3

126

6 Oprateurs arithmtiques

La synthse dune cellule dadditionneur complte ncessite de choisir le mode de propagation de la retenue. En effet, la propagation de la retenue de cellule en cellule savre tre le chemin le plus long dun additionneur (chane longue). Nous changerons aussi la polarit de la sortie si en s i pour permettre lutilisation dun inverseur de puissance pour amplier et distribuer ce signal.
Propagation statique de la retenue

de : r i + 1 = gi ( pi r i ) r i + 1 = ( gi ( pi r i ) ) = ( gi ( pi r i ) ) Ce qui correspond au schma de la gure 6.4.


ri ai pi gi bi si

ri+1
Figure 6.4 Cellule dadditionneur propagation statique

Le changement de polarit des signaux de retenue permet de simplier la ralisation du circuit de retenue. Cette cellule est ralise laide dau moins 24 transistors, suivant la technique utilise pour raliser le non-ouex de sortie.
Propagation dynamique de la retenue

Avec prcharge (gure 6.5)


La retenue est transmise par un simple interrupteur CMOS, tandis que la gnration dune retenue sortante est ralise par un simple transistor N, aprs une prcharge. Le fait de disposer de p i et de pi permet de simplier la ralisation du non-ouex de sortie. Cette technique de ralisation du circuit de retenue ncessite peu de transistors, mais est moins rapide. Cette cellule est ralise laide de 22 transistors.

6.2

Additionneur

127

ri ai pi gi bi ri+1
Figure 6.5 Cellule dadditionneur propagation dynamique

si pi pr VDD

Prcharge automatique (gure 6.6)


ri ai pi gi bi ri+1
Figure 6.6 Cellule dadditionneur recharge automatique

si pi VDD

La prcharge de la sortie de retenue est dclenche lorsquil ny a ni gnration, ni propagation dune retenue. Cette cellule est ralise laide de 23 transistors.
Non-ouex de sortie

Dunod La photocopie non autorise est un dlit.

Nous verrons que ce circuit (gure 6.7) prsente les plus faibles contraintes de vitesse de toute la cellule dadditionneur.
pi ri si

pi
Figure 6.7 Ouex de sortie

128

6 Oprateurs arithmtiques

Pour les cellules qui utilisent la propagation de la retenue laide de transistors de passage, ce non-ouex peut tre (conomiquement) ralis avec une cellule non standard en protant de la disponibilit de p i et de pi. La simple permutation des entres p i et pi permet de transformer ce non-ouex en ouex.
Ralisation dun additionneur complet

La cellule dadditionneur que lon vient dtudier ne ncessite que 23 transistors. Elle est donc beaucoup plus optimise que si elle tait ralise avec des portes classiques. Il existe plusieurs faons de raliser un additionneur capable dadditionner deux vecteurs de bits partir dune telle cellule. Soit les diffrents bits du vecteur sont traits squentiellement, soit ils sont traits en parallle (addition parallle). part quelques applications particulires, la quasi-totalit des additionneurs modernes travaillent en parallle. 6.2.4 Additionneur parallle Un tel additionneur est constitu dune suite de cellules dadditionneur qui traitent les diffrents bits (gure 6.8). Ces cellules sont interconnectes par les retenues.
r0 a0 s0 b0 r1 a1 s1 b1

rn an sn bn rn+1

Figure 6.8

Addition parallle de n bits

6.2

Additionneur

129

La retenue initiale r0 est normalement mise 0. Elle peut toutefois tre mise 1 si lon souhaite effectuer une addition avec retenue a + b + 1. La retenue sortante est analyse pour dtecter les dbordements. Un tel additionneur peut tre utilis pour additionner des entiers naturels ou relatifs. Dans ce cas, la valeur de sn indique le signe de la somme. Le chemin critique de ce circuit combinatoire va de (a0 , b0) sn via la chane de retenue. Il intervient dans une opration telle que : 1 1 1 1 1 1 1 1 1 + 0 0 0 0 0 0 0 0 1 dans laquelle la retenue, gnre par les poids faibles, se propage jusquau dernier tage. Ce trajet devient prohibitif, mme au prix dune circuiterie performante pour le calcul du report.
Propagation anticipe de la retenue

La disponibilit des signaux pi et gi au niveau de chaque cellule dadditionneur permet dacclrer la propagation de la retenue (gure 6.9). Pour cela les cellules dadditionneur seront groupes par paquets de 4 8 bits. Lorsque toutes les cellules dun paquet propageront la retenue, la retenue entrante dans le paquet sera directement transmise en sortie, vitant sa propagation au travers des cellules. Dans les autres cas, une retenue gnre dans un tage sera propage normalement jusqu la sortie du paquet. Avec
r0

a0 b0 s0

p0

p1 p2
Dunod La photocopie non autorise est un dlit.

r3 a3 b3 s3 p3

r4

propagation acclre de la retenue

Figure 6.9

Acclration de la retenue pour un groupe de 4 bits

130

6 Oprateurs arithmtiques

un tel dispositif, le temps maximal de propagation de la retenue sera le temps de propagation dun paquet plus le temps de traverse des mcanismes dacclration des autres paquets. Dautres organisations plus complexes peuvent tre imagines comme : la gnration directe des valeurs gnres en sortie dun paquet ; un systme de propagation hirarchique portant sur plusieurs niveaux de regroupement des additionneurs lmentaires.

6.3

UNIT ARITHMTIQUE ET LOGIQUE (UAL)

Un additionneur peut tre modi pour lui permettre dexcuter les principales oprations logiques : , , en plus de laddition. 6.3.1 Calcul du OU-exclusif La cellule dadditionneur, prsente en 6.2.3c peut tre facilement modie pour que S i devienne a i b i . De : pi = ai bi et : si = pi r i = pi r i Le forage de ri 0, produit le rsultat escompt (gure 6.10).
ri c1=1 =0 ai bi pi=(ai bi) pi
Figure 6.10

si=(ai bi)

Un signal de commande c1 est utilis pour forcer 0 la retenue entrant dans le ouex de sortie. Celui-ci transmet alors en sortie ce quil reoit sur son autre entre. si c 1 = 1 = 0 s i = a i b i si c 1 = 0 = r i s i = p i r i = p i r i

6.3

Unit arithmtique et logique (UAL)

131

6.3.2 Calcul du OU Comme prcdemment, on utilise la commande c1 pour rendre transparent le ouex de sortie. si c 1 = 1 s i = p i Le circuit de gnration de g i et p i est modi pour forcer sa sortie 1 par une commande c2. p i devient alors (gure 6.11) : pi = ( gi ( ai bi ) ) = ( ai bi )
ri c1=1

ai

=0
pi=(aibi) pi gi=1 si=aibi

bi c2=0

Figure 6.11

Calcul du OU

6.3.3 Calcul du ET Cette fois-ci, on va chercher transmettre en sortie la valeur de g i = a i b i . Toutefois, dans ce cas, le ouex de sortie doit transmettre la valeur de pi et non celle de p i . Grce aux proprits du ouex, ceci pourra tre obtenu en forant la valeur de 1 par le forage 0 de toute la chane de report, par une commande c3. Cette mme commande est utilise pour forcer 1 la valeur de a i b i entrant dans la composition de p i (gure 6.12). 6.3.4 Schma et dessin de la cellule dUAL complte La ralisation de cette UAL (gures 6.13 6.15) ne ncessite que 32 transistors, soit beaucoup moins que sa ralisation en portes classiques. Compte tenu de la faible sortance du ouex utilis en sortie (qui gnre s i ), il faut le faire suivre par un inverseur de puissance, capable de piloter un bus. Le dessin de la cellule est conu pour tre assembl par simple juxtaposition. Cette cellule dUAL comporte un inverseur de puissance en sortie destin attaquer un bus (gures 6.14 et 6.15).

Dunod La photocopie non autorise est un dlit.

132

6 Oprateurs arithmtiques

c3=1

ri=0 c1=0 =1 pi=ai bi pi gi=(ai bi) si=ai bi

ai

bi c2=1

Figure 6.12

Calcul du ET

c3 ai

ri c1

pi gi pi VDD c2
Figure 6.13

si

bi ri+1
Cellule dUAL

Vss

Vdd

Vss

ri+1

Vdd

Vss

Vdd

ai si bi

c2

c3
Figure 6.14

ri

c1

Schma squelettique de lUAL

6.3

Unit arithmtique et logique (UAL)

133

TABLEAU 6.2

CODES DE FONCTION DE LUAL


c1 c2 1 1 0 1 c3 0 0 0 1

addition ouex ou et

0 1 1 0

Figure 6.15 Dessin des masques de la cellule dUAL (technologie CMOS standardise (Alliance))

rn+1 an sn bn an-1 bn-1 rn-1 rn sn-1

Dunod La photocopie non autorise est un dlit.

r1 a0 s0 b0 c2 c3 r0 c3

Figure 6.16 Assemblage des cellules par juxtaposition pour raliser un additionneur de 4 bits

134

6 Oprateurs arithmtiques

La valeur de r0 est xe 0 pour une addition normale et pour une soustraction avec retenue. Elle est xe 1 pour une soustraction normale et pour une addition avec retenue.

6.4

MULTIPLIEUR CBL

Le multiplieur est lun des rares oprateurs complexes tre conu de manire combinatoire. Comme une multiplication peut tre dcompose en une suite dadditions et de dcalages, un multiplieur est donc ralis par lassemblage dune batterie de cellules dadditionneurs. 6.4.1 Multiplieur simple Soient deux nombres binaires a et b de n bits : a = b = Leur produit P scrit : P = ab = qui peut aussi scrire : P = ab =
i = 0, n 1 i = 0, n 1 i = 0, n 1

ai 2 i bi 2 i

a i = 0 ou 1 b i = 0 ou 1

i = 0, n 1

ai 2 i

j = 0, n 1

bj 2j

ai

j = 0, n 1

b j 2i + j

Ce produit peut scrire sur 2n bits en regroupant les termes affects de la mme puissance de 2. P = ab = Chacun de ses termes p i =
i = 0, n 1 j + k = i

a j b k 2 i

j+k = i

a j b k est la somme des produits partiels affects

de la mme puissance i de 2. On remarque que le produit arithmtique de deux bits est quivalent leur ET boolen.
ai 0 0 1 1 bj 0 1 0 1 ai b j 0 0 0 1 ai bj 0 0 0 1

6.4

Multiplieur cbl

135

Un multiplieur trivial consiste utiliser des cellules dadditionneur pour additionner les produits partiels (pr-calculs par des ET) ligne ligne puis colonne par colonne (gure 6.17).
0 a3b1 a3b0 a2b1 a2b0 a1b1 a1b0 a0b1 a0b0

0 a3b2 a0b2

a2b2

a1b2

a3b3

a2b3

a1b3

a0b3

p7

p6

p5

p4

p3

p2

p1

p0

Figure 6.17

Exemple de multiplieur trivial pour des nombres de 4 bits

Le chemin critique de ce multiplieur est de 8 cellules. Il peut tre ramen 6 en remarquant que dans une colonne les produits partiels peuvent tre additionns dans nimporte quel ordre (gure 6.18).
0 a3b1 a3b0 a2b1 0 a2b0 a1b1 0 a1b0 a0b1 a0b0

a3b2

a2b2 a1b2 a0b2

a3b3

a2b3

a1b3 a0b3

p7

p6

p5

p4

p3

p2

p1

p0

Dunod La photocopie non autorise est un dlit.

Figure 6.18

Multiplieur 4 bits optimis en vitesse

Des techniques plus complexes permettent de rduire encore la longueur du chemin critique, donc daccrotre la vitesse du multiplieur au prix dune augmentation de sa complexit.

BIBLIOGRAPHIE
[1] A. Guyot, notes informatises du cours : Oprateurs arithmtiques, INP Grenoble, dpartement Tlcom, 2003.

Chapitre 7

Systmes squentiels

7.1

DFINITIONS

Les systmes squentiels, appels aussi machines dtats nis ou automates, suivant le domaine dapplication, reprsentent une tape supplmentaire de complexication dans la conception des systmes logiques. Par rapport aux circuits combinatoires qui simplement associent leurs sorties aux diffrents prols dentre quils reoivent, les systmes squentiels possdent un tat interne qui inuence leur comportement. Celui-ci peut tre reprsent par les deux formules suivantes : St = f ( Et , Qt ) Q t + 1 g ( Et , Qt )
Dunod La photocopie non autorise est un dlit.

dans lesquelles : St reprsente les sorties du systme linstant t ; Q t reprsente ltat interne du systme linstant t ; Q t + 1 reprsente ltat interne du systme linstant suivant ; Et E, ensemble ni des entres possibles ; St S, ensemble ni de ses sorties possibles ; Q t , Q t + 1 Q, ensemble ni de ses tats possibles. Nous parlerons de systmes de Moore dans le cas o la fonction f ne dpend que de ltat courant. Dans le cas gnral, nous parlerons de systmes de Mealey. On montre que ces deux types de systmes sont fonctionnellement quivalents : tout systme de Mealey correspond un systme de Moore et rciproquement. On remarque toutefois

138

7 Systmes squentiels

qu fonctionnalit quivalente un systme de Mealey ncessite moins dtats internes quun systme de Moore. Dun point de vue lectronique, la structure gnrale des systmes squentiels (gure 7.1) peut tre reprsente comme lassemblage dun rseau combinatoire calculant les deux fonctions f et g et dun organe de mmorisation contenant ltat courant Qt.
f
Circuit combinatoire

Et

St g
Etat suivant Qt+1

Etat courant Qt organe de mmorisation


Figure 7.1 Systme squentiel

Comme lensemble Q peut comporter plus de deux tats, ceux-ci doivent tre cods par des vecteurs de plusieurs bits. Plusieurs codages sont possibles et le choix dun bon codage permet de simplier le rseau combinatoire. Les systmes squentiels possdent des proprits supplmentaires (mergentes) par rapport aux portes logiques qui les constituent. La notion de systmes squentiels est utilise soit pour reprsenter des dispositifs qui doivent fournir une suite de sorties dpendant de lvolution de leur tat interne et de leurs entres (par exemple des squenceurs), soit des systmes devant raliser des oprations sur des donnes dont le format est prdni (par exemple des units arithmtiques). videment, le codage des tats ne concerne que les premiers. La notion de systmes squentiels est une abstraction mathmatique qui peut tre approche physiquement de diffrentes manires. Les diffrentes familles de systmes squentiels correspondent diffrentes ralisations des organes qui mmorisent leur tat interne. Nous distinguerons, dans un premier niveau de classication : Les systmes dit asynchrones dans lesquels lorgane de mmorisation nest quun (ou plusieurs) simples retards (de dure plus ou moins prcise). Dans ces systmes, ltat suivant est automatiquement pris en compte un certain temps aprs sa gnration par le rseau combinatoire. Les systmes dites synchrones dans lesquels lorgane de mmorisation ne prend en compte ltat suivant qu des instants biens prcis indiqus par le milieu extrieur laide de signaux vnementiels particuliers appels horloges. Nous pouvons

7.2

Systmes squentiels asynchrones

139

remarquer que dans le cas des systmes synchrones, les systmes de Mealey ne sont pas strictement quivalents aux systmes de Moore. En effet, dans un systme de Mealey, la variation dune entre, entre les instants de variation de ltat interne, peut se reporter en sortie, alors que les sorties dun systme de Moore ne peuvent varier quavec son tat. Les systmes squentiels, tant asynchrones que synchrones, ont fait lobjet de nombreuses tudes ayant pour but lanalyse de leur comportement et leur synthse. 7.1.1 Reprsentation du comportement des systmes squentiels La description du comportement des systmes squentiels se ramne celle des deux fonctions f et g. Celles-ci peuvent tre reprsentes par des fonctions boolennes, toutefois les reprsentations qui permettent de visualiser lenchanement des tats successifs sont prfres. On utilise traditionnellement : La reprsentation de la fonction g sous la forme dun graphe denchanement des tats. La fonction f est alors reprsente comme un tiquetage supplmentaire des arcs de ce graphe. La reprsentation des fonctions f et g sous la forme dun tableau double entres (tat courant, entres). La conception dun systme squentiel consiste : dterminer un codage des tats de Q qui optimise la ralisation des fonctions f et g (le cas des systmes asynchrones ajoute des contraintes spciques sur ce codage) ; dterminer les projections bit bit des fonctions f et g ; raliser leur synthse dans la technologie choisie.

7.2

SYSTMES SQUENTIELS ASYNCHRONES

Dunod La photocopie non autorise est un dlit.

Une grande partie des systmes squentiels asynchrones correspond de simples circuits combinatoires reboucls (gure 7.2). Dans ce cas, les retards qui mmorisent ltat interne sont ceux des portes logiques qui apparaissent dans cette boucle. Comme il sagit de retards technologiques , ceux-ci ne sont pas dnis avec une grande prcision. Ils peuvent varier avec la technologie, la temprature, la tension dalimentation,
E

Figure 7.2 Systme squentiel asynchrone

140

7 Systmes squentiels

le vieillissement du circuit, etc. Il convient donc que le comportement de ce type de systmes soit, dans une large mesure, indpendant de la valeur de ces retards. Une transition dtat est dclenche par la variation dune entre (gure 7.3). Toutefois, le nouvel tat atteint peut tre : transitoire si la mme entre (qui na pas eu le temps de varier) enclenche une nouvelle transition vers un autre tat ; stable si cette entre provoque la regnration du mme tat (tat reboucl sur lui-mme).
ep tat transitoire ep Ei eu eu tat stable eu Ek

Figure 7.3

tats transitoires et stables dans un systme squentiel asynchrone

On appelle course le passage par une succession dtats transitoires. Une telle course peut tre soit : nie, cest--dire quelle se termine sur un tat stable ; innie, cest--dire quelle forme une boucle contenant plusieurs tats, qui sera parcourue tant que lentre ne sera pas modie. On supposera que les entres nont pas le temps de varier pendant le parcours des courses nies. Les courses innies correspondent une oscillation entre ces deux ou plusieurs, tats. La priode de cette oscillation correspond n, dans laquelle est le temps de traverse des portes dans la boucle et n le nombre dtats reboucls. La frquence de cette oscillation peut tre trs leve et laisser le circuit dans un tat indtermin. Les courses innies correspondent un tat pathologique du circuit et doivent tre soigneusement vites. Lorsque est trs prcis, loscillation se produit une frquence bien dtermine et le montage peut alors tre utilis comme un oscillateur. Ltat dun systme asynchrone est cod de telle manire que seul un bit varie chaque transition (code de Gray). Si plusieurs bits variaient, on ne pourrait assurer la simultanit rigoureuse de leurs transitions et le systme pourrait se retrouver dans des tats imprvus. Une contrainte similaire est utilise pour le codage des entres (et ventuellement aussi pour les sorties).

7.3

SYSTMES SQUENTIELS SYNCHRONES

Comme nous lavons vu, ltat de ces systmes ne peut varier qu des instants bien prcis fournis par le milieu extrieur sous la forme dun ou de plusieurs, signaux par-

7.3

Systmes squentiels synchrones

141

ticuliers appels horloges. On distinguera deux classes trs diffrentes de systmes synchrones : les systmes monophass dans lesquels une simple horloge rythme lvolution de ltat interne ; les systmes polyphass dans lesquels plusieurs horloges rythment cette volution. Dune manire gnrale, tous les systmes synchrones doivent satisfaire la relation suivante appele condition de synchronisme : T > dans laquelle T correspond la priode (minimale) du ou des, signaux dhorloge et le temps (maximal) dtablissement du rseau combinatoire. Cette relation signie simplement que la priode de lhorloge doit tre sufsamment longue pour permettre la gnration des sorties du systme, et de son tat suivant, avant loccurrence du prochain vnement dhorloge. Les domaines dapplication des systmes monophass et polyphass sont diffrents : Les systmes polyphass sont uniquement utiliss dans la ralisation des circuits intgrs complexes tels que les microprocesseurs. Cette technique permet la ralisation de circuits trs optimiss. La technique polyphase de conception des circuits squentiels rsulte de lexploitation de proprits particulires lies la circuiterie VLSI (portes de transfert et circuiterie dynamique). Cette technique est ne avec les microprocesseurs dans les annes 1970. Elle prsente lavantage de bien se marier avec la logique dynamique et donc de ncessiter moins de transistors pour raliser une fonction donne. Toutefois, la difcult de tester les structures dynamiques et de distribuer les diffrentes phases en respectant leurs relations temporelles amne les concepteurs lui prfrer une approche monophase statique base de registres matres-esclaves. Les systmes monophass sont beaucoup plus gnralement utiliss. Ils correspondent lapproche utilise pour la ralisation des cartes lectroniques utilisant des circuits de moyenne intgration (par exemple, la srie 74xx). Leur conception correspond la culture classique des lectroniciens. Pour cette raison, elle est aussi utilise dans les approches intgres qui correspondent la miniaturisation des cartes (par exemple les circuits prdiffuss, les FPGA, etc.). Historiquement, cette approche est apparue dans les annes 1960, en mme temps que les circuits de moyenne intgration. Son utilisation classique ncessite plus de transistors et une meilleure matrise technologique que lapproche polyphase. Lutilisation de bascules matres-exclaves, qui revient faire du polyphas local, permet datteindre la mme optimisation que dans le cas du polyphas statique. Lavnement des technologies sub-microniques et le besoin de concevoir rapidement des circuits trs complexes ont provoqu une gnralisation des techniques de conception automatique dans les annes 1990, ainsi que labandon de la circuiterie dynamique juge difcilement testable. La notion de systme synchrone est aussi une abstraction mathmatique. En toute rigueur, tous les systmes sont asynchrones si lon banalise leurs entres dhorloge.

Dunod La photocopie non autorise est un dlit.

142

7 Systmes squentiels

De manire simplier ltude de ces systmes, on isole les problmes dasynchronisme dans les lments qui mmorisent leurs tats. Ceux-ci sont appels des bascules. Ce sont gnralement de petits systmes asynchrones qui simulent un certain degr de synchronisme. Les bascules utilises par les systmes polyphass sont trs simples et appeles des latches, tandis que celles utilises dans les systmes monophass sont plus complexes. Les enchanements dtat dun systme synchrone peuvent tre complexes. Ils rsultent directement de lapplication raliser. videmment, ils nont pas satisfaire les contraintes propres aux systmes asynchrones. Cela fait que le rebouclage accidentel dun systme synchrone (par la mise en mode transparent des bascules qui mmorisent son tat) peut avoir des consquences catastrophiques sur son comportement (oscillations, transitions alatoires, tats non prvus, etc.). Nous allons commencer ltude des systmes synchrones par celle des systmes polyphass dont le fonctionnement est plus proche de la circuiterie. 7.3.1 Ralisation des systmes synchrones Il existe plusieurs techniques pour raliser les systmes synchrones polyphass et monophass. Nous distinguerons : les ralisation matrielles, dans lesquelles le rseau combinatoire est ralis : soit par un rseau de portes logiques, soit par un PLA ; les ralisations logicielles, dans lesquelles le systme squentiel peut tre : soit microprogramm sur une structure matrielle ad hoc, soit programm, par exemple sur un microcontrleur.

7.4

SYSTMES POLYPHASS

Les systmes polyphass sont des systmes synchrones, qui manipulent gnralement des donnes et dont ltat est mmoris dans des latches dont on exploite la possibilit de transparence. 7.4.1 Notion de latches Un latch (portillon, loquet) est un organe de mmorisation minimal. Il possde deux tats : un tat transparent dans lequel le latch recopie en sortie ce qui lui est prsent en entre ; un tat mmorisant dans lequel la sortie du latch fournit la dernire information qui la travers lors de son prcdent tat transparent. Un latch est souvent symbolis par un interrupteur suivi dune capacit (gure 7.4). En effet, ce montage possde les proprits dun latch (si lon ne maintient pas ltat de mmorisation plus longtemps que les fuites de la capacit ne le permettent !).

7.4

Systmes polyphass

143

Ch E S

Figure 7.4

Schma conceptuel dun latch

Les latches peuvent tre raliss de diffrentes manires : latches statiques. Ceux-ci peuvent retenir linformation aussi longtemps quon le souhaite. Plusieurs montages sont possibles. Leur complexit se situe autour dune dizaine de transistors. Les latches statiques sont constitus par deux inverseurs qui sont reboucls : soit par un interrupteur ferm pendant la priode de mmorisation.

E Ch Ch

Figure 7.5

Schma logique dun latch portes 3 tats

Ce qui donne le schma suivant :

Ch
Dunod La photocopie non autorise est un dlit.

Ch S

E Ch Ch

Figure 7.6

Schma lectrique dun latch portes 3 tats

soit par une rsistance qui affaiblit le signal de retour, ce qui permet au signal dentrer de forcer le latch dans une nouvelle position.

144

7 Systmes squentiels

R Ch E S

Figure 7.7

Schma de principe dun latch rsistance

Ce qui donne le schma suivant :


R

Ch

Ch

Figure 7.8

Schma lectrique dun latch rsistance

latches dynamiques. Ceux-ci correspondent au modle symbolique du latch. La capacit est souvent celle (parasite) dun lment (bus ou porte). Leur ralisation se rsume celle dune simple porte de transfert, cest--dire deux transistors.
Ch E

Figure 7.9

Schma de principe dun latch dynamique

Le fonctionnement dun latch est caractris par ses priodes de transparence (gure 7.10). Dans cet tat, linformation qui traverse le latch subit un retard t appel temps de traverse. Pour que linformation qui traverse le latch soit mmorise il est ncessaire quelle arrive un temps p avant que la priode de transparence ne sachve. Ce temps p (voisin de t) est appel le temps de pr-positionnement. Comme le fonctionnement des systmes polyphass est bas sur des phases et non des vnements, linformation mmoriser reste gnralement prsente lentre du latch pour la totalit de la phase suivante, ce qui vite de devoir se soucier de son ventuelle disparition prmature.

7.4

Systmes polyphass

145

latch transparent temps de pr-positionnement entre du latch temps de traverse sortie du latch

Figure 7.10

Contraintes temporelles dun latch

Un latch est souvent utilis pour maintenir un signal au-del de sa dure de validit. On parlera alors de la capture de ce signal. Il est important de remarquer que le signal est prsent la sortie du latch avant que sa priode de transparence ne sachve, ce qui permet dacclrer fortement les systmes polyphass en anticipant lexcitation des rseaux combinatoires suivants. Un signal multi-bits vhicul sur une nappe de ls peut tre captur dans une batterie de latches constituant un registre (gure 5.11).
ch latch

Entres Registre

Sorties

Figure 7.11

Registre constitu de latches

7.4.2 Systmes polyphass


Dunod La photocopie non autorise est un dlit.

Comme les latches ont un tat de transparence, il faut viter que le systme ne puisse se retrouver reboucl directement sur lui-mme et devienne asynchrone. Pour cela, plusieurs niveaux de latches en srie sont ncessaires. Ceux-ci doivent fonctionner sur le principe des cluses, cest--dire quils ne doivent jamais tre simultanment transparents. Les diffrentes horloges qui pilotent le systme dnissent les priodes de transparence et de mmorisation des diffrents latches et non des vnements ponctuels. Puisque la conception des latches utilise des portes de transfert et quelquefois des informations mmorises dans des capacits parasites, la conception des systmes polyphass exploite bien les possibilits spciques aux circuits CMOS VLSI. Elle est trs proche du niveau des transistors et demande de bien prendre en compte des

146

7 Systmes squentiels

phnomnes ns concernant le squencement, tels que la propret des signaux. Les outils de conception automatiques actuels ne savent pas prendre en compte ce type de conception. Cette approche est actuellement rserve au cur des microprocesseurs. Elle permet toutefois la conception de circuits trs optimiss, denses, rapides et comportant peu de transistors.
a) Systmes matre-esclaves

Un systme polyphas minimal consiste raliser une machine synchrone dans laquelle les bascules qui mmorisent ltat courant sont constitues de deux latches en srie. De telles bascules sont appeles matre-esclave (gure 7.12). Nous verrons quelles sont galement utilises par les systmes monophass.

C
Etat courant Etat futur

2
L2 Esclave
Figure 7.12

1
L1 Matre

Systme biphas matre-esclave

Un tel systme utilise une horlogerie bi-phase dans laquelle chaque phase est utilise pour commander la transparence dun niveau de latches. Les deux phases ne doivent jamais se recouvrir pour viter que deux latches en srie ne soient simultanment transparents. Les phases sont spares par des temps de non-recouvrement (gure 7.13). Le fonctionnement temporel dun tel systme est un peu contre-intuitif. En effet, pendant la phase 2, le rseau combinatoire commence tre excit par le latch

1 2

Figure 7.13

Systme dhorloges biphases

7.4

Systmes polyphass

147

1
Sortie C

C excit par transparence au travers L2 L2 transp.

C excit par la sortie de L2

L1 transp.

Figure 7.14

Squencement dun systme biphas matre-esclave

matre, au travers du latch esclave, ds que ce dernier passe en mode transparent. Cette excitation perdure lorsque le latch esclave passe en mode mmorisant (phase 1). Le circuit combinatoire est donc excit pendant la totalit du cycle. Il doit fournir ses valeurs de sortie avant la n de la phase correspondant la transparence du latch matre (gure 7.14). Cette analyse montre que le fonctionnement dun systme bi-phas qui utilise des bascules matre-esclave est beaucoup plus optimis quil ny parait premire vue.
b) Systmes boucls polyphass

La premire ide qui vient lesprit lorsque lon analyse un systme matre-esclave consiste sparer les deux latches et diviser le rseau combinatoire en deux parties que lon peut rpartir entre les latches. Ainsi transform, le systme prend la forme dune boucle dans laquelle linformation tourne et se transforme au rythme des phases. Un tel systme peut tre vu comme un systme fonctionnel naturellement reboucl (par exemple un chemin de donnes de processeur) dans lequel des latches ont t ajouts pour viter loccurrence dun mode asynchrone et pour rpartir lactivit sur plusieurs phases. Ces latches sont appels barrires temporelles [NOG75] (gure 7.15). Une telle approche peut tre utilise avec deux, (trois), quatre, etc., phases. Nous verrons que ltude des systmes polyphass concerne surtout leur squencement
Dunod La photocopie non autorise est un dlit.

E1

S1

C1

L2

L1

C2
S2 E2

Figure 7.15

Systme squentiel biphas rseaux combinatoires distribus

148

7 Systmes squentiels

que nous appellerons architecture temporelle. Lapproche polyphase permet aussi la prise en compte de problmes topologiques, ce qui fait que les structures qui sont conues avec cette approche sont souvent les plus optimises dun circuit VLSI. Pour tudier le fonctionnement dun tel systme, faisons dabord lhypothse quil est symtrique, cest--dire que ses deux circuits combinatoires ont le mme temps de traverse. Pour que les latches puissent capturer linformation, celle-ci doit tre valide avant la n de leur phase de transparence. Nous pouvons donc dbuter notre raisonnement en supposant que les circuits combinatoires commencent recevoir de linformation valable pendant la phase de transparence des latches qui les prcdent. la n de cette phase les circuits combinatoires continuent tre excits par les latches lorsquils passent en mode mmorisant. Ces circuits combinatoires doivent fournir leur rsultat avant la n de la phase suivante (pendant la transparence du latch qui les suit) [ANC86]. Si la somme des dures dtablissement des rseaux combinatoires (plus les temps de traverse des deux latches) est suprieure la priode, alors les instants ou leur sortie est tablie et o le suivant commence tre excit, vont se dplacer vers le futur et vont nir par sortir de la phase de transparence des latches (gure 7.16). Le systme va cesser de fonctionner, ce qui est normal puisquil nobit pas la relation de synchronisme !

1
Etab. C1 Etab. C2

C2 excit par L1

C1 excit par L2

Figure 7.16 Squencement dun rseau combinatoire biphas (cas de la somme des retards suprieure la priode)

Si la somme des dures dtablissement des rseaux combinatoires (plus les temps de traverse des deux latches) est infrieure la priode, alors les instants ou leur sortie est tablie, et o le rseau combinatoire suivant commence tre excit, vont se dplacer vers le pass (gure 7.17). Linstant au plus tt o les circuits combinatoires peuvent commencer tre excits est le dbut de la phase de transparence des latches qui les prcdent. Cela signie que les rseaux combinatoires stablissent pendant cette phase de transparence. Lorsque la somme des dures dtablissement des rseaux combinatoires diminue encore, des zones dattente apparaissent la n des phases de transparence. Ce sont ces priodes dattente qui assurent la stabilit du systme en absorbant les ventuelles uctuations des dures dtablissement.

7.4

Systmes polyphass

149

1
Etab. C1 Etab. C2

C1 excit par transparence au travers L2

C2 excit par transparence au travers L1

Figure 7.17 Squencement dun rseau combinatoire biphas (cas de la somme des retards infrieure la priode)

Si maintenant on diminue la dure dtablissement de lun des rseaux combinatoires en augmentant celle de lautre, (tout en maintenant la somme en dessous de la priode de lhorlogerie), le systme volue vers le comportement dun matreesclave (gure 7.18).

1
Etab. C1 Etab. C2

C1 excit par transparence au travers L2

C2 excit par transparence au travers L1

Figure 7.18

Squencement dun rseau combinatoire biphas (cas de retards disymtriques)

Dunod La photocopie non autorise est un dlit.

c) Systmes polyphass rels

Comme nous lavons dj mentionn, lutilisation des techniques polyphases est rserve aux curs des microprocesseurs et plus particulirement la conception de leur chemin de donnes. Ces structures, gnralement biphases, sont caractrises par le fait quelles sont reboucles et que leur tat interne est constitu par des donnes dont le codage est impos. Dans les systmes polyphass rels les informations pertinentes sont contenues dans des registres pertinents constitus de latches statiques. Les autres registres ne sont introduits que pour viter que les registres pertinents ne soient reboucls sur euxmmes. Ils seront appels des barrires temporelles [NOG75]. Celles-ci ne contien-

150

7 Systmes squentiels

dront que des valeurs transitoires. Ces registres pourront tre dynamiques si la vitesse de fonctionnement du systme le permet. Il sera commode de considrer que linformation circule dans ces boucles en partant et en revenant dans les registres pertinents. Dans les structures de ce type tous les registres pertinents ne sont pas mis en jeux chaque cycle. Certains appels sources, sont slectionns en lecture au dbut du cycle (gnralement 1), tandis que dautres, appels destinations, sont slectionns en criture en n de cycle (2 dans un systme biphas). La slection des registres sources se fait en les munissant dune sortie 3 tats qui peut tre active pendant le phase de slection. Celle des registres de destination consiste les mettre en mode transparent pendant la dernire phase du cycle. Certains registres peuvent tre la fois source et destination. Un schma de squencement pour une telle structure peut tre : Pendant la premire phase (1), la sortie des registres slectionns est connecte sur les bus source. La barrire temporelle intermdiaire est mise en mode transparent. Lunit arithmtique et logique commence tre excite par transparence, au travers cette barrire temporelle. Pendant la seconde phase (2), la barrire temporelle intermdiaire est mise en mode mmorisant et continue exciter lunit arithmtique et logique dont la sortie excite le bus destination. Le registre destination est mis en mode transparent. Il reoit une information stabilise vers la n de cette phase. Exemple : Chemin de donnes de processeur (gures 7.19 et 7.20). Nous constatons que, grce aux transparences, les temps dtablissement des diffrents organes mis en jeu (bus sources, unit arithmtique et logique, bus destination) senchanent sans attente dans la priode de lhorloge. Cela montre une utilisation quasi optimale du temps, synonyme dune performance maximale. Une autre approche aurait consist insrer une barrire temporelle aprs lunit arithmtique et logique. Le schma de squencement aurait toutefois t plus complexe.
d) Relations temporelles

Lanalyse du fonctionnement temporel des systmes polyphass conduit dnir des quations temporelles qui rgissent leur fonctionnement.
Dcalage des phases

Nous devons dabord prendre en compte les ventuels dcalages dans la distribution de lhorloge. Cet cart, appel gigue (ou skew en anglais) est gnralement limit la valeur des temps de non recouvrement. En effet, tout recouvrement dune phase par la suivante risque de permettre un rebouclage asynchrone du systme. Un tel recouvrement pourrait tre lgrement tolr si linformation, mme errone, na pas le temps de venir modier le contenu dun registre pertinent pendant le recouvrement (gure 7.21). Nous voyons que pour viter un rebouclage asynchrone, la valeur de doit tre infrieure au temps de transfert sans perturbation de la boucle.

7.4

Systmes polyphass

151

Registres pertinents (statiques)

Barrire temporelle ajoute (dynamique)

Figure 7.19

Chemin de donnes vu comme un systme biphas

2
bus source

tablissement UAL

Registre source slectionn A transp. Registre dest. transparent bus dest

Figure 7.20

Chronogramme typique dun chemin de donnes biphas

2
Dunod La photocopie non autorise est un dlit.

non rec 1 prep

gigue 1'
Figure 7.21 Cas du recouvrement de 2 par le 1 suivant

152

7 Systmes squentiels

Cest--dire : < sel. + latches + rseaux avant perturb. Do : gigue < sel. + reg + rseaux avant perturb. + prep. + non rec. avec : gigue : Temps maximum de dcalage entre les horloges des registres sources et destinataires. sel. : Temps de slection de la sortie du (ou des) registre(s) source(s). reg. : Somme des temps de traverse des registres pertinents et intermdaires. rseaux avant perturb. : Temps min avant que la sortie des rseaux combinatoires ne soit perturbe. prep : Temps de prpositionnement du latch de destination. non rec. : Temps de non-recouvrement entre les phases. Dans le cas (pire) dune connexion directe entre les latches ( sel. = 0 et rseaux avant perturb. = 0 ), la relation devient : gigue < reg + prep. + non rec. qui peut tre vue comme une bonne valeur maximale de la gigue.
Relation de synchronisme

Nous voyons que la relation de synchronisme peut aussi tre afne et scrire : cycle > sel + rseaux comb. + reg-int. + prep + non-rec. + gigue avec : rseaux comb. : Temps max dtablissement des rseaux combinatoires concerns. reg-int. : Temps de traverse du registre intermdiaire. Nous pouvons aussi tablir que : 1 > sel qui signie que le temps de stabilisation des rseaux de slection et celui dventuels organes situs avant la barrire temporelle intermdiaire doit tre infrieur la dure de la phase 1 pendant laquelle cette premire barrire est transparente. Par contre, le temps dtablissement des organes situs aprs cette barrire temporelle peut tre suprieur la dure de la phase 2.
e) Utilisation de PLA

Lutilisation des techniques polyphases pour raliser des squenceurs complexes conduit utiliser des PLA. La ralisation dun systme polyphas avec un PLA revient raliser un systme matre-esclave dans lequel le rseau combinatoire est un PLA (gure 7.22). Sa matrice

7.5

Systmes monophass

153

ET est programme pour reconnatre les combinaisons utiles de ltat courant et des prols dentre. La matrice OU est programme pour gnrer ltat suivant et les sorties correspondant la conguration reconnue par la matrice ET . Le PLA dispose de la totalit de la priode pour calculer ses sorties. Il peut sagir soit dun PLA statique puls ou non (qui consomme) ou dun PLA dynamique (plus complexe) qui utilise les deux phases.
PLA matrice "ET" matrice "OU"

1+2
tats des tat entres cour tat suiv profils des sorties

2 1
Squencement Entres Sorties

Figure 7.22

Squenceur biphas utilisant un PLA

7.5

SYSTMES MONOPHASS

Dunod La photocopie non autorise est un dlit.

Ltude des systmes monophass relve dune toute autre approche. Ces systmes sont principalement utiliss pour raliser des squenceurs. De trs nombreux travaux ont t raliss pour optimiser les systmes monophass en codant judicieusement leurs tats et en effectuant une synthse optimale de leurs rseaux combinatoires. De nombreux outils informatiques effectuent tout ou partie de ces travaux de manire automatique ou assiste. Comme leur nom lindique, les systmes monophass nutilisent quun seul signal dhorloge, ventuellement complt par des sous-horloges, cest--dire des copies de ce signal valides par des conditions. Le fonctionnement de ces systmes est dni par les vnements vhiculs par lhorloge (gure 7.23). La prise en compte de ltat futur, pour en faire ltat courant, se produit sur un front de lhorloge (souvent le front descendant). Les systmes monophass utilisent des bascules pour mmoriser leur tat. Ces bascules sont des petits systmes asynchrones qui simulent un comportement synchrone. Leur tude est assez complexe, mais heureusement celles-ci sont souvent fournies comme des composants. La ralisation des bascules fait souvent appel des astuces logiques ou lectroniques. Celles-ci utilisent souvent un nombre important

154

7 Systmes squentiels

vnements

Figure 7.23

vnements dune horloge monophase

de transistors (voisin de la trentaine). Nous distinguerons les bascules asynchrones et celles synchronises, cest--dire munies dune entre dhorloge qui conditionne la prise en compte de leurs entres. Il existe aussi des bascules mixtes munies des deux types dentres. 7.5.1 Bascules Ltude des bascules est une partie importante de celle des systmes synchrones monophass. Toutes les basculent possdent deux tats internes visibles (1 et 0) et deux sorties (Q et QB). Nous allons commencer par ltude de la bascule RS qui, bien quasynchrone, constitue la base de nombreuses autres bascules.
a) Bascule RS

Cette bascule est la plus simple du catalogue (gure 7.24). Elle est constitue par le rebouclage de deux portes NOR. Comme cest le cas pour la majorit des systmes asynchrones, son tat est mmoris dans les retards de ses portes. La bascule RS possde deux entres (R pour Reset et S pour Set). Lexcitation de lentre R a pour effet de remettre la bascule dans ltat 0, tandis que lexcitation de lentre S la met dans ltat 1. Lexcitation simultane des deux entres est interdite.

S
Figure 7.24 Bascule RS

QB

Le schma de cette bascule peut tre redessin pour faire apparatre le rseau combinatoire et le rebouclage (gure 7.25). Le graphe dtat de cette bascule est reprsent gure 7.26.

7.5

Systmes monophass

155

circuit combinatoire

R S

Q QB

Figure 7.25

Une bascule RS vue comme un systme squentiel asynchrone

R R A/0 S B/1 S

Figure 7.26

Graphe dtat de la bascule RS

Son tableau de transitions est (les tats entours sont stables) le suivant (gure 7.27).

R
Q QB A= 0 1 B= 1 0
Dunod La photocopie non autorise est un dlit.

S
00 01 10 01 10 10

R
11 xx xx

10 01 01

Figure 7.27

Tableau dtats du RS

Du tableau nous pouvons tirer lexplicitation des fonctions boolennes qui dterminent les sorties Q et QB (fonction g). Q = R (Q S) QB = S ( QB R ) La synthse spare de chacune de ces fonctions donne le schma suivant (gure 7.28).

156

7 Systmes squentiels

Q = R (Q S) = (R (Q S))
S

QB = S ( QB R ) = ( S ( QB R ) )
S QB

Figure 7.28

Synthse spare des deux fonctions boolennes du RS

Les deux dessins sont superposables, ce qui donne le schma classique de la bascule RS, ainsi que ses quations. Q = ( R QB ) QB = ( S Q )
b) Bascules synchronises

Les bascules synchronises possdent une entre dhorloge et changent dtat sur la transition (gnralement descendante) de cette horloge. Nous pouvons ds prsent distinguer trois familles de bascules synchronises : Les bascules dites niveau sont des systmes asynchrones qui possdent des tats transitoires en plus des tats visibles. Ces bascules fonctionnent en dtectant lune des transitions de lhorloge. Les bascules dites sur transitions qui possdent un circuit diffrenciateur qui transforme lune des transitions de lhorloge en une brve impulsion. Les bascules matre-esclave qui sont des bascules polyphases constitues de deux latches et dun gnrateur de phases qui transforme lhorloge dentre en deux phases. Les bascules sont souvent ralises partir dun RS qui stocke leur tat visible. Les bascules synchronises sont caractrises par plusieurs paramtres temporels et aussi par les instants o elles sont sensibles leurs entres. Pour que linformation qui excite la bascule soit mmorise il est ncessaire quelle arrive un temps p avant la transition de lhorloge. Ce temps p est appel le temps de pr-positionnement. Le fonctionnement de certaines bascules ncessite que linformation soit maintenue un temps m aprs la transition de lhorloge. Ce temps m est appel le temps de maintien de lentre. Linformation apparat en sortie avec retard b appel le temps de basculement de la bascule. Toutefois, elle peut tre perturbe avant. Par scurit, nous supposerons quelle peut tre perturbe ds la transition de lhorloge (gure 7.29).

7.5

Systmes monophass

157

horloge temps de pr-positionnement temps de maintient entre de la bascule temps de basculement sortie de la bascule
Figure 7.29 Contraintes temporelles dune bascule

Bascule D

La bascule D est trs utilise (gure 7.30). Elle dispose dune seule entre appele D. Sa fonction consiste mmoriser la valeur de son entre au moment de la transition du signal dhorloge. Son nom vient du mot anglais delay (retard) qui exprime le fait que sa sortie recopie son entre avec une priode dhorloge de retard.

D H

Q QB

Figure 7.30

Symbole dune bascule D

Dunod La photocopie non autorise est un dlit.

Les bascules D sont souvent munies dentres R et S asynchrones supplmentaires qui agissent directement sur le RS qui stocke ltat visible de la bascule. Son tableau dtats est reprsent gure 7.31. Les bascules D sont, de loin, les plus nombreuses. Leurs diffrentes techniques de ralisation illustrent les diffrentes faons daborder le paradigme de la logique synchrone. Nous pouvons donc distinguer trois familles de bascules D.
D H 00 0 1
Figure 7.31

01 0 1

11 0 1

10 0 1

0 1

Tableau dtat dune bascule D

158

7 Systmes squentiels

Bascule D niveaux
La ralisation classique dune bascule D niveaux (par exemple, la 7474 des catalogues MSI ex TTL) comporte 6 portes NOR soit 28 transistors (gures 7.32 et 7.33). Cette machine asynchrone possde 4 tats dont deux stables et deux transitoires.
D H 00 A B C D A A C A 01 B B D D 11 B B D D 10 A Q = 0 C C Q = 1 C

Figure 7.32

Tableau dtats dune bascule D niveaux

QB

Figure 7.33

Schma logique dune bascule D niveaux

Bascule D sur transition


Lune des ralisations possibles dune bascule D sur transition est donne par la gure 7.34 qui montre une bascule HLFF utilise par AMD pour son microprocesseur K6 [PAR96]. Cette bascule ncessite 20 transistors. On distingue le diffrentiateur qui produit une impulsion brve chaque transition positive de lhorloge.

Bascule D matre-esclave Cette bascule D est constitue de lassemblage de deux latches utilisant des portes 3 tats C2MOS [SUZ73] (gure 7.35). Cette bascule est ralise avec 22 transistors. Un gnrateur de phases est simplement ralis avec un inverseur. Les relations tablies

7.5

Systmes monophass

159

D=1 D=0

QB

D=0 D=1 gnrateur d'impulsions

Figure 7.34

Bascule D de Partovi

au 7.4.2.e montrent quil est possible de tolrer une lgre superposition dans ses phases sans risquer un rebouclage asynchrone de tout le systme. Cette bascule est trs utilise soit comme composant logique individualis (7474 CMOS), soit comme lment des bibliothques utilises pour raliser la synthse automatique des circuits intgrs.
QB

Q H

H
Dunod La photocopie non autorise est un dlit.

H H Matre Esclave H

Figure 7.35

Bascule D C2MOS matre-esclave

Bascule JK

La bascule JK est une extension synchronise de la bascule RS (gures 7.36 et 7.37). Ses entres sont alors appeles J et K. Cette bascule accepte que ses entres soient simultanment portes 1. Dans ce cas, la bascule change dtat chaque transition

160

7 Systmes squentiels

signicative de lhorloge. La bascule JK peut galement disposer dentres supplmentaires RS asynchrones.

Q QB

Figure 7.36

Symbole dune bascule JK

K J 10 0 1
Figure 7.37

K 00 0 1 01 1 1 11 1 0

0 0

Tableau dtats dune bascule JK

Bascule T (gure 7.38)

Q T QB

H
Figure 7.38

Symbole dune bascule T

Les bascules T se prsentent sous deux formes : soit avec une entre T, elle constitue alors un diviseur par deux de lhorloge, command par lentre T ; soit sans entre T, elle nest alors quun simple diviseur par deux de lhorloge. La bascule T peut galement disposer dentres supplmentaires RS asynchrones.

7.5

Systmes monophass

161

c) Problmes avec les bascules

Lapproximation du modle synchrone par les bascules nest pas parfaite. Dans certaines conditions, des effets parasites peuvent apparatre.
Risque de transparence

Les bascules niveau possdent un mode de transparence lorsque le niveau de lhorloge atteint une valeur intermdiaire (les portes se comportent alors comme des amplicateurs). Gnralement, la vitesse de transition de lhorloge est telle que cette zone de transparence est traverse trop rapidement pour que des rebouclages asynchrones puissent apparatre. De mme, le diffrenciateur des bascules transition ne fonctionne correctement que si le front de lhorloge est sufsamment bref. Cela montre que les bascules synchronises ne fonctionnent correctement que si le signal dhorloge rpond certaines contraintes de rapidit sur ses transitions. Les systmes monophass doivent donc obir deux conditions qui encadrent le comportement de lhorloge. Celle-ci doit donc : tre sufsamment lente pour permettre au systme de fonctionner (condition gnrale de synchronisme) ; avoir des transitions sufsamment rapides.
Mtastabilit

Le fonctionnement normal dune bascule est obtenu lorsque ses entres sont bien tablies au moment de la transition du signal dhorloge. Il peut toutefois arriver que dans certaines applications une entre de la bascule varie au moment prcis de la transition du signal dhorloge. Si la relation temporelle entre ces deux transitions est sufsamment prcise, la bascule peut basculer incompltement car elle ne dispose pas de sufsamment dnergie pour basculer compltement. Elle natteint alors quune position intermdiaire que nous appellerons 1/2. Cela ne serait pas trs gnant si le retour une position logique (1 ou 0) ne gnrait pas une transition asynchrone de sa sortie qui risque de mettre aussi la bascule suivante en tat mtastable (gure 7.39).

info
Dunod La photocopie non autorise est un dlit.

chargement

mtastabilit

Figure 7.39

Mise en tat mtastable dune bascule

162

7 Systmes squentiels

La largeur de la relation temporelle qui peut mettre une bascule en tat mtastable est trs faible (de lordre dune fraction de ps). La probabilit doccurrence de la mtastabilit pour une bascule qui reoit des signaux compltement dsynchroniss, est donc trs faible (1012 1014). Toutefois, si la frquence de fonctionnement est assez leve, ce phnomne peut effectivement apparatre sur des systmes en fonctionnement continu (satellites, centraux tlphoniques) et provoquer des pannes sans cause matrielle. Il semble, toutefois, quil puisse y avoir dautres causes possibles pour de telles pannes. Puisque le fonctionnement interne des bascules est asynchrone, il importe que leur tat interne soit cod laide du code de Gray pour que seul un bit varie chaque transition. Si cela ntait pas le cas, la mtastabilit pourrait provoquer une indcision supplmentaire entre les diffrents tats dus aux changements non simultans des bits dtat. Il semble quil ny ait aucune parade logique la mtastabilit. Les seules dfenses possibles semblent tre soit la conception de systmes asynchrones qui peuvent attendre la n dun tat mtastable, soit la conception de bascules spciales dans lesquelles lnergie interne de ltat intermdiaire est particulirement leve. 7.5.2 Systmes monophass Les systmes monophass sont des systmes synchrones qui utilisent des bascules pour stocker leur tat. Toutes leurs bascules reoivent la mme horloge ou des horloges drives. Le fait davoir pr-rsolu tous les problmes asynchrones dans la conception des bascules fait que la conception des systmes monophass peut se focaliser sur les problmes doptimisation logique. Toutefois, la mise en phase des horloges qui excitent les bascules introduit de nouvelles contraintes ( 7.5.2.b).
a) Registres

Ltat des systmes monophass est stock dans des registres. Ceux-ci sont raliss par lassemblage de plusieurs bascules D en parallle (gure 7.40). Dune manire gnrale, un registre peut tre utilis pour stocker une information vectorielle.
Ch Bascule D

Entres Registre

Sorties

Figure 7.40

Registre constitu de bascules D

7.5

Systmes monophass

163

Le chargement des bascules D qui constituent un registre est, soit systmatique chaque vnement dhorloge, soit conditionnel, cest--dire sous leffet dune commande particulire : Chargement systmatique des bascules chaque cycle dhorloge. Dans ce cas, un multiplexeur permet de dterminer si la future valeur provient du reste du systme o est le contenu de la bascule elle-mme (gure 7.41).
Ch E D S H

Figure 7.41

lment de registre chargement systmatique de sa bascule D

Cette approche prsente lavantage que toutes les bascules reoivent strictement la mme horloge, ce qui rduit sa gigue et ses consquences. Par contre, elle ncessite du matriel supplmentaire (qui constitue une sorte de seconde boucle de mmorisation) et surtout elle accrot la dissipation dnergie par le fonctionnement continu de ses bascules. Le chargement conditionnel des bascules D est obtenu par la validation des impulsions dhorloge ncessaires leur chargement (gure 7.42). Des portes sont alors utilises pour conditionner les signaux dhorloge par les commandes de chargement. Le chargement se produit la n du cycle, ce qui est convenable pour capturer les rsultats. Cette approche prsente lavantage de provoquer une consommation minimale dnergie pour le chargement des bascules et de ncessiter peu de matriel. Son
Dunod La photocopie non autorise est un dlit.

Ch

signal de chargement

S
horloge de chargement chargement registre

Figure 7.42

Chargement dune bascule par la validation de son horloge

164

7 Systmes squentiels

inconvnient est de produire un lger dcalage des horloges valides. Toutefois, ce dcalage peut tre compens en dcalant systmatiquement lhorloge non valide.
b) Relations temporelles

Lanalyse du fonctionnement temporel des systmes monophass conduit dnir des quations temporelles qui rgissent leur fonctionnement.
Gigue de lhorloge

Les dphasages dans la distribution de lhorloge peuvent avoir des effets perturbateurs. Au moment de loccurrence de lvnement dhorloge, Toutes les bascules devraient afcher leur nouvelles sorties quelles devraient avoir labor partir de leurs valeurs dentre avant lvnement (moins le temps de pr-positionnement). Ces valeurs dentres sont elles-mmes labores, par le rseau combinatoire qui calcule la fonction g, partir des valeurs de sortie des bascules avant lvnement. Or lhorloge arrive sur les diffrentes bascules avec une gigue variable dpendant de la faon dont elle est distribue. Si, pour une bascule particulire, ce dphasage est sufsamment important, une bascule peut capturer une valeur dentre errone calcule partir de la sortie dune autre bascule prise aprs son vnement dhorloge (gure 7.43). Ce risque est important lorsque les bascules sont connectes directement ou au travers de seulement quelques couches logiques.

gigue
Hi
H

Hj
sortie bascule i

sortie bascule i

sortie bascule j

sortie bascule j

Figure 7.43

Sorties correctes et errones dune bascule la suite dun dphasage dhorloge (cas dune connexion directe entre les bascules i j)

Ce phnomne introduit une nouvelle relation temporelle, en plus de celle de synchronisme. Cette relation indique que le dcalage maximum gigue de lhorloge dun systme monophas doit tre infrieur au temps, avant perturbation, du rseau combinatoire entre les sorties des bascules et leurs entres (gure 7.44). Do la relation : gigue < rseaux avant perturb. + prep.

7.5

Systmes monophass

165

Ti
sortie basc i

Tj

Ti

Tj
entre basc j

non perturb. prep. gigue

Bi

Bj

Figure 7.44

Cas dune gigue perturbant la valeur lue par la bascule j

avec : gigue : Temps maximum de dcalage entre les horloges des registres sources et destinataires. rseaux avant perturb. : Temps min avant que la sortie des rseaux combinatoires ne soit perturbe. prep. : Temps de prpositionnement du latch de destination. Dans le cas dun couplage direct entre les bascules, la relation devient : gigue < prep. Cela correspond au cas des registres dcalage. Ces organes sont gnralement directement raliss sous la forme de composants. Cette relation montre que plus le rseau combinatoire possde un temps avant perturbation important, plus lhorloge accepte des dphasages importants. Elle peut tre afne en analysant le cas particulier de chaque bascule (et en prenant en compte la marge de dphasage de chacune de ses bascules sources). Dans de nombreux systmes monophass, seules certaines bascules sont charges un instant dtermin. Cela est souvent obtenu en crant des sous-horloges par la validation de lhorloge de rfrence par des conditions. Les portes qui ralisent cette validation introduisent des retards qui doivent tre compatibles avec la relation prcdente.
Relation de synchronisme

Dunod La photocopie non autorise est un dlit.

Nous voyons que la relation de synchronisme peut aussi tre afne et scrire : cycle > basc. + rseaux comb. + prep. + gigue avec : basc. : Temps de basculement des registres sources. rseaux comb. : Temps max dtablissement des rseaux combinatoires concerns.

166

7 Systmes squentiels

c) Mthode de Huffman

La mthode gnrale de conception des systmes squentiels peut se dcliner pour les systmes monophass sous le nom de mthode de Huffman : Les tats symboliques de la spcication et les tats supplmentaires quil est ncessaire dajouter sont explicits dans un graphe ou un tableau dtat cohrent. Le graphe, ou le tableau, est optimis pour rduire les tats superus. Les tats sont cods pour viser un certain type de ralisation (rseau combinatoire, PLA, logiciel). On calcule les diffrentes projections en bits des fonctions f et g. On effectue la synthse des rseaux combinatoires, le remplissage des PLA, la synthse des rseaux combinatoires ou la gnration du code.
d) Codage des tats et synthse des fonctions combinatoires

Comme nous lavons dj mentionn, un codage astucieux des tats peut rduire la complexit du rseau combinatoire dun systme squentiel. Suivant la complexit de ce systme plusieurs solutions sont possibles : Systmes simples (quelques dizaines dtats) : les tats peuvent tre cods dans un code 1 parmi n, ce qui revient utiliser une bascule par tat. Cette approche permet la ralisation de rseaux combinatoires particulirement simples. Systmes de complexit moyenne (jusqu une centaine dtats) : le systme peut tre ralis en utilisant une structure matricielle (PLA). Les tats sont alors cods en binaire. La ralisation du systme sous la forme de Mealey permet de minimiser son PLA. Systmes lents de forte complexit (plusieurs milliers dtats) : lutilisation dune structure de type microprocesseur (par exemple un micro-contrleur) permet de raliser le systme sous la forme dun programme.
e) Exemple de synthse dun systme squentiel cbl

Soit un systme squentiel (de Moore) qui comporte 4 tats. Son diagramme dtat est reprsent gure 7.45.
P=0 D A P=0 D=0 D P=1 D
Figure 7.45

P=1 D B P=0 D=0 P=0 D=1 C P=1 D

P=1 D s=0 P=0 D=1 s=1 P=0 D

Exemple de graphe dtats dun systme synchrone

7.5

Systmes monophass

167

Sa synthse est ralise simplement en cblant le diagramme dtat laide de quatre bascules D reprsentant les quatre tats. Des multiplexeurs permettent daiguiller la propagation du bit dtat en fonction des entres. Une seule porte est utilise pour gnrer la sortie. Cette technique est utilise pour raliser de nrateurs de temps destins fournir des signaux permettant de rythmer une succession dactions (gure 7.46).

A
P

B
P H RST D

C
P

D
P H RST D

RST H

H RST

Figure 7.46

Machine squentielle obtenue par le cblage du graphe dtats prcdent

Dans ces montages, les retards apports par les couches logiques entre les bascules sont relativement faibles. Cela signie que la distribution de lhorloge doit tre particulirement soigne pour que les carts de phase entre les arrives dhorloge au niveau des bascules restent infrieurs leur valeur maximum admissible. Pour cette raison, toutes les bascules reoivent directement lhorloge de base.
f) Utilisation de PLA

La ralisation dun systme monophas avec un PLA revient utiliser cet organe comme un rseau combinatoire (gure 7.47). Sa matrice ET est programme
PLA matrice "ET" matrice "OU"

Dunod La photocopie non autorise est un dlit.

tats des tat entres cour

tat suiv

profils des sorties

H Squencement

Entres

Sorties

Figure 7.47

Ralisation dun systme monophas avec un PLA

168

7 Systmes squentiels

pour reconnatre les combinaisons utiles de ltat courant et des prols dentre. La matrice OU est programme pour gnrer ltat suivant et les sorties correspondant la conguration reconnue par la matrice ET . Le PLA dispose de la totalit de priode pour calculer ses sorties. Il peut sagir soit dun PLA statique (qui consomme) ou dun PLA dynamique pour lequel deux phases doivent alors tre gnres.
g) Utilisation de bascules matre-esclaves

La ralisation dun systme squentiel monophas laide de bascules matre-esclaves permet de retrouver le degr doptimisation des systmes polyphass statiques sans linconvnient davoir distribuer les phases dhorloge. En effet, de par son fonctionnement, chaque bascule matre-esclave utilise un signal complmentaire de lhorloge comme une seconde phase. La tolrance de ces bascules aux lgres superpositions de ces phases permet de sabstraire des problmes de non-recouvrement locaux. Les transparences successives des deux latches qui constituent chaque bascule matreesclave permettent la mme optimisation temporelle que celle obtenue avec les systmes polyphass. Ltablissement du rseau combinatoire des systmes monophass peut donc occuper pratiquement presque toute la priode.

7.6

SYSTMES MIXTES MONOPHASS/POLYPHASS

Certains systmes comportent la fois des blocs de circuiterie monophase (plus ou moins conus automatiquement) et des blocs polyphass (conus manuellement en tant que briques lmentaires). Le fonctionnement de ces systmes est rythm par une horloge unique partir de laquelle on gnre localement les phases ncessaires aux blocs polyphass (gure 7.48).
H

1 2

sorties des bascules monophases

Figure 7.48

Relations temporelles entre les sous-systmes monophass et biphasss

Les relations temporelles entre ces deux types de blocs doivent tre soigneusement tudies. Les latches des blocs biphass, transparents sur 2, seront vus comme des sorties de matre-esclave par les blocs monophass. Les sorties de bascules mono-

7.6

Systmes mixtes monophass/polyphass

169

phases pourront tre captures par des latches transparents sur 2 ou sur le 1 suivant en fonction des retards des circuits combinatoires traverss. De nombreux systmes monophass fabriquent localement des phases 1 et 2 en considrant lhorloge et son complment sans se soucier de leur non-recouvrement (cas des bascules matre-esclave). Il leur arrive aussi dutiliser plusieurs horloges dcales pour dcomposer la priode en instants lmentaires et ainsi optimiser leur fonctionnement temporel. Toutefois, ils nutilisent gnralement pas de bascules transparentes (gure 7.49).
2

1 H H

1 t
recouvrement

Figure 7.49

Mauvais recouvrement des phases gnres par un simple inverseur

BIBLIOGRAPHIE
[CAT66] I. Catt, Time loss through gating of asynchronous logic signal pulses, IEEE Trans. Electronic. Comput., Vol. EC-12 Feb. 1966, pp. 108-111. [CHA73] T.J. Chaney, C.E. Molnar, Anomalous behaviour of synchronizer and arbiter circuits, IEEE Trans. Comput., Vol. C-22 April 1973, pp. 421-422. [SUZ73] Y. Suzuki, Clocked CMOS Calculator Circuitery, IEEE journal of Solid State Circuits, Dec. 1973. [NOG75] G. Noguez, tude dun modle temporel des systmes squentiels, Thse dtat, Institut de programmation, Paris, septembre 1975. [LAG76] J. Lagasse, M. Courvoisier, J.-P. Richard, Logique squentielle, Dunod Universit, 1976. [ANC86] F. Anceau, The Architecture of Micro-Processors, Addison-Wesley, 1986. [PAR96] H. Partovi et al., Flow-through latch and edge-triggered ip-op hybrid elements, ISSCC Dig. Tech. Papers, Feb. 1996.

Dunod La photocopie non autorise est un dlit.

Chapitre 8

lments de VHDL

8.1

BREF HISTORIQUE DES LANGAGES DE DESCRIPTION DU MATRIEL

Dunod La photocopie non autorise est un dlit.

Les approches modernes de la conception des circuits (logiques) lectroniques ncessitent que lon puisse dcrire, dune manire la plus abstraite possible, la fonctionnalit souhaite pour ces montages (cest--dire leur spcication). Un long effort, a permis de dgager les notions de base de telles descriptions. Dun point de vue externe, la syntaxe de ces formalismes ressemble celle des langages de programmation (VHDL est un driv du langage ADA), mais leur smantique est lie au comportement des montages lectroniques. Aprs une vingtaine dannes de recherches, de tels formalismes ont t normaliss dans les annes 1990 (langages VHDL et Verilog). Ceux-ci sont loin dtre parfaits, ce qui montre que la smantique de llectronique na pas encore t compltement assimile. Laspect ngatif de cette normalisation a t darrter toutes les recherches dans ce domaine pour se concentrer sur lassimilation et la mise en uvre des nouveaux venus. Dun point de vue industriel, ces langages de description du matriel lectronique sont une ncessit. Ils sont trs utiliss. Ils permettent de simuler les circuits avant leur ralisation, dchanger des descriptions de circuits, de constituer des bibliothques de modules, de prciser la spcication dun circuit et dalimenter des outils automatiques de conception. Il existe un march (dit dIntellectual Property) pour des descriptions synthtisables de blocs internes complexes de circuits intgrs. La description pralable du comportement dun futur circuit devient une tape oblige dans son processus de conception. Cette description constitue souvent un lment

172

8 lments de VHDL

contractuel. Elle est souvent exige dans les marchs militaires, arospatiaux, tlcom, scuritaires Le passage du fer souder la description para-informatique des futurs circuits constitue un vritable bouleversement dans les habitudes des lectroniciens qui voient leur mtier voluer profondment et adopter des mthodes de raisonnement inspires de celles des informaticiens. Lexistence dun formalisme prcis permet aussi de raliser des traitements formels sur les descriptions des futurs circuits tels que des transformations, des optimisations et surtout des vrications. Par exemple, les annes 1980 et 1990 ont vu apparatre des outils capables de vrier que les comportements de deux descriptions sont formellement quivalents (outils V-Formal et Chrysalys). Le langage VHDL rsulte dun effort conjoint des compagnies Intermetrics, IBM et Texas dans les annes 1980 sous lgide du DoD (Ministre de la dfense des tats-Unis). Le rsultat de cet effort a t normalis en 1987 (norme IEEE 1076). Curieusement, VHDL est surtout utilis en Europe et cest lun de ses concurrents : Verilog qui est le plus utilis aux tats-Unis. La dmarche qui consiste capturer la smantique de llectronique est en passe dtre abandonne au prot de descriptions purement algorithmiques qui nont pour objectif que la description du comportement des futurs circuits. Ces formalismes sont bass sur des extensions de langages de programmation existant, comme SystemC qui est bas sur C++. Le langage VHDL est assez complexe car il prtend un vaste domaine dapplications (peut tre quun ensemble de langages coupls aurait t prfrable). VHDL a apport des ides trs intressantes mais ses lacunes sont assez gnantes et dnotent une mauvaise prise en compte des spcicits du matriel. Cela a amen les ralisateurs de compilateurs donner des interprtations diverses certains points mal dnis. Trs souvent, les descriptions VHDL sont de bas niveau et nutilisent quun petit sous-ensemble du langage. Lobjectif de ce chapitre nest pas de donner une description exhaustive du langage VHDL, mais den prsenter les grandes lignes et de mettre en vidence ses profondes diffrences avec un langage informatique. Mme si la syntaxe dune description VHDL possde une forme informatique, sa smantique est lectronique et il est trs important de conserver le point de vue dun lectronicien lors de lcriture des descriptions de circuits. Il est trs important de bien distinguer entre le temps dexcution des algorithmes de simulation et le temps des phnomnes simuls. Ces deux temps nont rien voir. Le temps dexcution des algorithmes de simulation dpend de la puissance de lordinateur utilis, de la taille de la description et de sa complexit. Le temps simul dpend des caractristiques des circuits dcrits. Lvolution du temps simul se fait trs rarement en temps rel. La complexit du processus de simulation fait quil se droule souvent (beaucoup) plus lentement que le temps du circuit simul. La simulation VHDL dun dispositif matriel ne peut donc pas tre utilise comme une substitution de cet organe dans un systme physique. Dans la suite de ce document, nous ne parlerons que du temps simul.

8.2

Structure dune description VHDL

173

La description dun circuit en VHDL ne concerne que le circuit lui-mme. Celle-ci ne comporte rien de ce qui constitue lenvironnement du circuit : les dispositifs qui assurent son excitation (gnrateurs, autres circuits) ; ceux qui analysent son fonctionnement (sondes, analyseur digital, oscilloscope). La fonction de ces organes est gnralement assure, de manire spcique, par les systmes informatiques qui permettent la mise en uvre des descriptions VHDL. Les systmes VHDL sont souvent orients vers la synthse ou la paramtrisation de circuits (par exemple des FPGA). Il existe aussi quelques systmes assez complets qui permettent de simuler des descriptions qui utilisent toutes les ressources du langage. Les outils de la premire famille sont gnralement beaucoup moins onreux que ceux de la seconde, toutefois leurs possibilits de simulation sont souvent rduites linterface externe des circuits ainsi cres ou paramtrs.

8.2

STRUCTURE DUNE DESCRIPTION VHDL

Une description VHDL se compose de deux parties : La description de linterface du circuit (appele entity) avec le monde qui lutilise (connecteur, brochage, interface). Celle-ci est constitue par la liste des signaux de cette interface, leur sens, leur nature, etc. La description de la ralisation du circuit (appele architecture) qui peut contenir trois formes de descriptions : La description de linterconnexion de sous-circuits dont lassemblage constitue le circuit tudi (cette forme de description peut tre appele structurelle). La description des fonctions boolennes mises en uvre (cette forme de description peut tre appele fonctionnelle). Des algorithmes dont lexcution simule le comportement du circuit ou de certains de ses sous-ensembles (cette forme de description peut tre appele procdurale). Ces trois formes peuvent tre utilises conjointement dans la description de larchitecture dun circuit. Plusieurs architectures peuvent tre associes une mme entit pour montrer lvolution du processus de conception. Toutefois, cette facilit est souvent illusoire car le rafnement des descriptions ne seffectue pas que dans le dtail des fonctions logiques mais aussi par : le passage de types numrs (avant codage) des types bit_vector (aprs codage) ; la transformation du squencement qui devient plus n en dtaillant les oprations complexes, ainsi que pour la prise en compte de contraintes temps rel. Ces transformations peuvent remettre en cause profondment linterface des entits et ainsi limiter leur substitution des formes plus abstraites.

Dunod La photocopie non autorise est un dlit.

174

8 lments de VHDL

8.2.1 Lentit La description dune entit correspond celle dun composant, dun sous-circuit, dun module ou dune carte. Elle comporte ncessairement une interface constitue dun brochage, dun connecteur Une entit est constitue dune entte contenant son nom suivi de la liste ordonne des diffrents signaux qui constituent son interface. Chaque connexion est constitue : du nom du, ou des, signaux considrs ; de leur sens qui peut tre : in pour des signaux entrants, out pour des signaux sortants (non visibles lintrieur de lentit), buffer pour les signaux sortants qui peuvent tre aussi utiliss lintrieur de lentit, inout pour les signaux bidirectionnels ; de leur type qui peut tre : bit pour de simples ls, bit_vector(<dimension>) dans le cas dune nappe de ls. Les dimensions seront donnes par les deux indices extrmaux. Les ls dune nappe peuvent tre indics dans le sens croissant (par exemple de 0 15 (0 to 15)) ou dans le sens dcroissant (par exemple de 32 1 (32 downto 1)), un type spcique (qui doit tre pr-dclar) ; de leur valeur de rappel sils ne sont pas connects (optionnelle) : := 1, pour un rappel 1 dun bit (pull-up), := 0, pour un rappel 0 dun bit (pull-down). Nous allons utiliser comme exemple la description dune cellule dadditionneur. Entity Full_Adder is port( X, Y : in bit; -- entres (fils) Cin : in bit := 0; -- entre avec rappel 0 Sum, Cout : out bit); -- sorties (fils) end Full_Adder; Il faut noter que, dans sa forme actuelle, VHDL est insensible la case des caractres. 8.2.2 Larchitecture Une description darchitecture correspond un niveau particulier de description du montage lectronique qui ralise lentit. Elle dbute par une entte contenant le nom de cette architecture et celle de lentit laquelle elle se rfre. Format : Architecture <nom> of <nom dentit> is <dclarations> begin

8.3

Les diffrents types de description

175

<description de larchitecture> end <nom> Les descriptions darchitectures contiennent pratiquement toujours la dclaration de signaux internes. Celles-ci comportent le nom de ces signaux, leur type, ventuellement leurs dimensions et ventuellement leurs valeurs par dfaut. Exemples : signal S1, S2, S3 : bit; Ces signaux, ainsi que les entres, les bus inout, et les sorties buffer, sont utilisables dans la description interne de larchitecture du circuit.

8.3

LES DIFFRENTS TYPES DE DESCRIPTION

8.3.1 Descriptions structurelles Cest la forme la plus naturelle de description dun circuit lectronique. Elle consiste, tout simplement, dcrire la mise en uvre et linterconnexion de ses composants. Elle est directement inspire des techniques de description des cartes lectroniques (liste de cblage). Elle consiste en : la liste des signaux internes qui sont de simples ls, ou des nappes de ls, utiliss pour interconnecter les composants ; Exemples : signal AU : bit; -- un simple fil signal VZ : bit_vector (31 downto 0); -- une nappe de 32 fils la liste des types de composants utiliss dans la description structurelle avec la liste de leurs connexions telle quelle apparat dans la description de ces entits ; la liste des entits utilises pour raliser ces types de composants ainsi que des architectures utilises ; la liste des composants interconnects constitue : du nom de chaque composant, de son type, de la liste de ses connections dans le mme ordre que celle de la dclaration de son type (dautres formes existent). Ce type de description permet une conception hirarchique en sparant la conception des composants et celle de lentit globale Exemple : Description structurelle de la cellule dadditionneur (gure 8.1). Architecture Structural of Full_Adder is signal S1, S2, S3 : bit; -- declaration des types de composants component XOR_G -- portes XOR port( X1, X2 :in bit;

Dunod La photocopie non autorise est un dlit.

176

8 lments de VHDL

X Y Cin

XOR1 S1 XOR2 Sum AND2 S2 OR1 AND1 S3 Cout

Figure 8.1

Schma logique de la cellule dadditionneur

XO1 :out bit); end component; component AND_G -- portes AND port( A1, A2 :in bit; AO1 :out bit); end component; component OR_G -- portes OR port( O1, O2 :in bit; OO1 :out bit); end component; -- liaison avec les descriptions des types des composants for all :XOR_G use entity XOR_G port map (x1, x2, xo1); for all :AND_G use entity AND_G port map (x1, x2, xo1); for all :OR_G use entity OR_G port map (x1, x2, xo1); begin -- description de linterconnexion des composants XOR1 : XOR_G port map (X, Y, S1); -- une porte XOR XOR2 : XOR_G port map (S1, Cin, Sum); -- une autre porte XOR AND1 : AND_G port map (X, Y, S3); -- une porte AND AND2 : AND_G port map (S1, Cin, S2); -- une autre porte AND OR1 : OR_G port map (S2, S3, Cout); -- une porte OR end Structural; Cet exemple met en vidence le caractre verbeux de VHDL qui allonge les descriptions. Les commentaires sont simplement prcds de -- (il est dconseill dy faire gurer des lettres accentues). La spcication des entits composantes peut prciser leur architecture. videment, si lon souhaite simuler le comportement de cette description de ladditionneur, il faut lui adjoindre celles des diffrents types de portes quelle utilise.

8.3

Les diffrents types de description

177

8.3.2 Descriptions fonctionnelles Cest la forme la plus courante de description VHDL. Elle est souvent appele behavioral dans la littrature. Elle consiste dcrire les quations boolennes qui dnissent les diffrents signaux. Elle contient : la liste des signaux internes que nous assimilerons, dans un premier temps, de simples ls qui vhiculent les valeurs qui leur sont donnes ; la liste des fonctions boolennes qui dnissent les valeurs des diffrents signaux. Ces fonctions boolennes sont dcrites comme des instructions dun langage informatique volu. La partie gauche correspond au signal qui doit tre dni et connect. Elle est spare de la dnition de la fonction (lexpression) par un signe <= dit de connexion. La fonction boolenne est crite comme une expression utilisant des oprateurs boolens. Les connexions servent dnir la valeur future dun l ou celle, totale ou partielle, dune nappe de ls partir de la valeur prcdente de ses arguments. Exemples : BT01 <= VZ; -- connexion de 32 bits HC16 <= VZ(17 downto 2); -- connexion de 16 bits VZ <= x"A15F"; -- valeur immdiate hexadcimale Bien que cette forme dcriture ressemble celle des programmes informatiques, son comportement (sa smantique) est trs diffrent. Elle dcrit un rseau de fonctions boolennes interconnectes. Ce qui signie que : Ces instructions de connexion sont toujours valides (comme lest le matriel lectronique !). Il ny a pas de notion de point dexcution comme dans un programme informatique. Pour respecter la causalit physique, la valeur des signaux dnis par les instructions de connexion apparat un certain temps aprs celle des arguments des expressions qui les calculent. Ce temps peut tre explicitement spci par une clause after situe la n de linstruction ou tre implicite. Dans ce cas, il est gal une valeur t considre comme incommensurable vis--vis des temps de fonctionnement du systme dcrit. Il ny a aucun ordre de prsance entre les instructions de connexion. Lordre dcriture na aucune inuence sur leur comportement. Il est tout fait possible dutiliser un signal comme argument dune instruction crite avant celle qui dnit la valeur de ce signal. Les signaux ne doivent tre dnis quune seule fois (sinon il pourrait y avoir des conits). Toutefois, nous verrons ultrieurement comment rsoudre de tels conits. Les instructions de connexion peuvent tre arbitrairement complexes ce qui peut amener la suppression de signaux internes. La notion dinstructions toujours valides nest pas directement ralisable lors de la simulation du circuit sur un ordinateur. Elle peut tre simule de diffrentes manires : Soit par une excution vnementielle . Dans ce cas, une instruction est excute chaque fois que lun de ses arguments est modi. Par abus de langage, ce type de description VHDL est souvent appel data-ow.

Dunod La photocopie non autorise est un dlit.

178

8 lments de VHDL

Soit par une excution rptitive de lensemble des instructions jusqu ce que la valeur des signaux se stabilise. Les retards explicites ou t assurent le respect de la causalit dans le circuit dcrit en faisant en sorte que les effets se produisent toujours aprs les causes. Ce fonctionnement asynchrone est la base du mcanisme de simulation des descriptions VHDL. Le caractre incommensurable des retards t fait que ceux-ci peuvent saccumuler sans tre visibles. Cela permet de dire que VHDL utilise deux axes de temps (le temps simul et les t). Laccumulation des t ne correspond qu une approximation des retards technologiques cumuls. Elle peut tre diffrente des retards rels et ne doit donc pas tre fonctionnellement exploite. Par exemple : C <= A and B; Si les valeurs des signaux A et B sont respectivement retardes de t et de 2t par rapport une rfrence temporelle alors, la valeur de C peut subir une altration (ala) entre 2t et 3t. Dans un montage rel, les retards des portes seront diffrents et lala pourra ne pas exister ou apparatre un autre instant. Exemple : Description fonctionnelle de la cellule dadditionneur : architecture Dataflow of Full_Adder is signal S1, S2 : bit; begin Cout <= S2 or (X and Y) after 2ns; S2 <= S1 and Cin after 2ns; Sum <= S1 xor Cin after 3ns; S1 <= X xor Y after 3ns; end Dataflow; 8.3.3 Descriptions procdurales Cest une forme trs courante de description VHDL. Cest la forme dans laquelle les compilateurs transforment toutes les autres formes de description pour pouvoir les simuler. Une telle description consiste dcrire un ou des programmes dont lexcution simule le comportement du circuit. Elle consiste en : la liste des signaux internes ; la liste des programmes appels process qui simulent tout ou partie du circuit. Ces programmes sont constitus de : la dclaration des variables quils utilisent, qui ne sont que des intermdiaires de calcul, les instructions de simulation qui peuvent avoir des signaux et des variables comme arguments. Celles ci peuvent : . soit dnir la valeur de signaux (instructions de connexions), . soit dnir la valeur de variables (instructions procdurales). La structure dun processus na gnralement rien voir avec lorganisation du matriel dont il simule le fonctionnement.

8.3

Les diffrents types de description

179

Ces programmes sexcutent normalement, cest--dire de manire squentielle. Leur temps dexcution est suppos nul vis--vis du temps de simulation. Les conditions de dmarrage dun programme permettent de lassimiler globalement une super-instruction de connexion dune description fonctionnelle. Ce dmarrage seffectue : soit parce quun signal, spci dans une liste de sensibilit, varie ; soit parce que le programme tait mis en attente par une instruction wait et que cette attente est chue. Pendant lexcution du process, la valeur des signaux qui ont provoqu son dclenchement est celle postrieure la transition. La valeur des signaux modis par un process ne sera rellement actualise que t aprs linstant de son excution. La rutilisation dun signal qui vient dtre positionn dans un process portera sur lancienne valeur de ce signal et non pas sur celle qui rsulte de linstruction qui la positionn (erreur frquente !). Exemple : signal A : bit := 0; process (A) begin A<= 1; if A = 1 then ..... end process; Au premier tour du process, le test trouve une valeur de A gale 0, car son affectation 1 ne sera effective que t aprs la n de ce process. La smantique des instructions de connexion invoques dans un process est diffrente de celle des mmes instructions situes dans les parties fonctionnelles de la description. En effet, dans un process les connexions ne durent quun moment trs bref, linstant dexcution du process. Les signaux de destination de ces instructions sont donc isols pendant tout le reste du temps et ils se comportent comme des bascules. Lvolution dun process peut tre suspendue par des instructions wait. Celles-ci peuvent attendre :
Dunod La photocopie non autorise est un dlit.

loccurrence dune condition (wait until <condition>;) ; la variation dun signal dune liste de sensibilit (wait sensibilit>;) ; une dure spcie (wait for <dure>;).

on

<liste

de

La dure (en temps simul) de lexcution du process entre deux instructions wait est nulle. Toutefois les nouvelles valeurs des signaux ne sont effectives que t, ou un temps spci par une clause after, aprs cette excution. Lutilisation dune liste de sensibilit est exclusive de celle de linstruction wait. Lutilisation dune liste de sensibilit est quivalent lutilisation dune instruction wait sur cette mme liste au dbut de la description.

180

8 lments de VHDL

Les dtails de lexcution dun process, ainsi que la valeur de ses variables ne sont gnralement pas visibles via linterface dun simulateur car ils nont aucune correspondance physique. Exemple : Description procdurale de la cellule dadditionneur architecture Computationnal of Full_Adder is begin process (X, Y, Cin) -- liste de sensibilite variables s1, s2, s3 : bit; begin s1 := X xor Y; -- calcul de la variable s1 s2 := s1 and Cin; s3 := X and Y; Sum <= s1 xor Cin; -- definition des signaux de sortie Cout <= s2 or s3; end process; end Computationnal; 8.3.4 Descriptions mixtes Les trois types de descriptions (structurelles, fonctionnelles, procdurales) peuvent coexister dans une mme architecture. La dnition smantique de leurs actions sur les signaux les rend compatibles entre elles.

8.4

TYPES DES SIGNAUX ET DES VARIABLES

8.4.1 Types standard et drivs Les types des signaux et des variables peuvent tre : des types physiques simples (ls ou nappes de ls). Exemples : signal Z : bit; -- un simple fil signal A : bit_vector (0 to 15); -- une nappe de 16 fils variable B : bit_vector (32 downto 1); -- une nappe de 32 fils signal C : bit := 0; -- une valeur de repos gale 0 des types abstraits pour des signaux dont on ne souhaite pas encore prciser le codage : Type entier. Exemple : variable J2 : integer; Type boolen ( ne pas confondre avec le type bit !). Cest le type des conditions. Il est sans correspondance matrielle. Ses valeurs sont true et false. Type numr (celui-ci ncessite une dclaration pralable de type). Exemple :

8.4

Types des signaux et des variables

181

type Com is (Marche, Arret, Attente); signal Commande : Com; Lutilisation de types abstrait est trs importante. Elle permet de retarder au maximum les choix techniques dans le processus de conception (manuel ou automatique). des types structurs qui reprsentent des nappes de ls composes de sous-nappes (ceux-ci ncessitent une dclaration pralable de type) Exemple : type Couleurs is (Rouge, Vert, Bleu); type Pixel is record lumin : bit_vector (7 downto 0); af : integer; cd : Couleur; end record; variable I4, I5 : Pixel; A := I4.af; I4.cd := Vert; I5 := I4; des structures bi-dimensionnelles (par exemple des mmoires) (qui ncessitent une dclaration pralable de type) Exemple : type mem is array (0 to 512) of bit; signal memoire :mem; Il faut remarquer que ces structures ne peuvent tre adresses que par des variables entires, ce qui rduit leur correspondance physique au seul cas de mmoires munies de dcodeurs (gure 8.2).

Variable entire
Dunod La photocopie non autorise est un dlit.

Tableau

dcodeur (implicite)
Figure 8.2 Adressage implicite dun tableau

En particulier, la description de la slection directe des lignes dune matrice par une nappe de ls suppose lintroduction dun matriel dencodage-dcodage parfaitement inutile.

182

8 lments de VHDL

Il est galement possible de dclarer des sous-types : Exemple : subtype word is bit_vector (15 downto 0); type mem is array (0 to 255) of word; type octet is range 0 to 255; et de donner un nom particulier un sous-ensemble (contigu) de ls dune nappe. Exemple (gure 8.3) : alias code_op : bit_vector (5 downto 0) is IR (15 downto 10);

IR 31 15 10 0

code_op
Figure 8.3 Rednition dun sous-champ dun bit_vector

8.4.2 Types IEEE La socit savante IEEE dvelopp de nouveaux types pour les variables et de nouvelles fonctions pour les manipuler. Ces nouveaux types permettent de mieux grer et dtecter les conits lectriques. Ce module (appel library) contient : Un package appel std_logic_1164 qui dnit un nouveau type ainsi que des fonctions de conversion et de dtection des fronts. Les oprateurs standard sont automatiquement tendus la manipulation de ces nouveaux types. Le type std_ulogic comporte 9 valeurs : 0 et 1 issus dune sortie forte L et H issus dune sortie faible (positionnement 0 et 1 via une rsistance) Z ltat de haute impdance (sortie isole) X ltat de conit entre deux sorties fortes W ltat de conit entre deux sorties faibles - un tat indiffrent (pour optimiser la logique)

8.5

Expressions

183

Des packages appels numeric_bit et numeric_std qui dnissent des oprateurs arithmtiques qui oprent sur les bit_vector et sur les std_logic_vector interprts comme des nombres entiers.

8.5

EXPRESSIONS

Les expressions interviennent dans les instructions des descriptions fonctionnelles et dans lcriture des process pour dnir les nouvelles valeurs des signaux et des variables. Il est possible dutiliser des constantes dans lcriture de ces expressions. Celles-ci correspondent des connexions directes aux niveaux logiques 1 ou 0. pour les bit : 0 et 1 pour les bit_vector : Exemples : "001100" (constante binaire) X"AD01" (constante hexadcimale) Il est aussi possible de dclarer des constantes symboliques. Exemple : constant <nom> : <type> := <valeur>; 8.5.1 Attributs des signaux Ils correspondent lextraction de proprits des signaux laide de sufxes. Leurs valeurs dpendent du type du signal sur lequel porte le sufxe. Ils sont relativement nombreux et ils peuvent tre enrichis par lutilisateur. rsultat boolen sur des signaux : event (retourne true si la valeur du signal varie), stable (retourne true si la valeur du signal na pas vari), quiet (retourne true si le signal na aucune source (tat isol)) ; rsultat entier sur les tableaux, les vecteurs : left right (bornes gauches et droites dun tableau, dun vecteur), length (taille dun tableau, dun vecteur), range (couple des bornes dun tableau, dun vecteur). Exemple dutilisation : A <= Z when CLKevent; Z est (brivement) connect A lors de chaque variation de CLK (pratiquement, cette connexion dure t).

Dunod La photocopie non autorise est un dlit.

184

8 lments de VHDL

8.5.2 Oprateurs Les oprateurs qui sont utilisables dans les expressions sont : oprateurs boolens (sur les bit et bit_vector) not, and, or, xor, nor, nand oprateurs arithmtiques (sur les bit_vector de mme taille) (via une bibliothque particulire). Les poids forts sont ceux dclars gauche . +, -, - (unaire), *, /, mod (modulo), rem (reste division) oprateurs de dcalage sll (gauche), srl (droit), sra (arithmtique), rol (rotation gauche), ror (rotation droite) Concatnation de deux bit_vector A&B 8.5.3 Temps de transit Le temps de transit dune expression, sera indiqu par une clause after. Il reprsente celui du circuit combinatoire reprsent par lexpression. RES <= A xor B after 10ns; Le temps de transit sera donn en s, ms, us, ns, ps. Il sera de t si rien nest mentionn. Lexistence dun temps de transit obligatoire assure la causalit de la description. Il interdit la description de certains montages irralisables . La clause after est par dfaut inertielle, cest--dire quelle ne transmet que des variations de valeur dont la dure est suprieure au retard (gure 8.4).
valeur prise en compte

retard valeur prise en compte

ignore retard

Figure 8.4

Fonctionnement de la clause after inertielle

8.6

Instructions de connexion conditionnelle

185

Il faut mentionner lexistence dune autre forme de la clause after appele transport qui correspond lutilisation dune ligne retard. S1 <= transport X xor Y after 3ns; Dans ce cas, toutes les variation du signal initial seront reproduites aprs le dlais indiqu.

8.6

INSTRUCTIONS DE CONNEXION CONDITIONNELLE

Il est possible de rendre conditionnelle une instruction de connexion, ce qui correspond lusage dun multiplexeur ou de portes 3 tats. 8.6.1 Multiplexeurs Une condition permet de choisir entre deux expressions pour dnir la valeur dun signal (gures 8.5 et 8.6). Exemple : U <= K when A=B else X when A>=B else Z
A,B K U X Z

Figure 8.5

Le multiplexeur correspondant

Dunod La photocopie non autorise est un dlit.

Une seconde forme permet de dcrire des multiplexeurs plus complexes. Exemple : with Z select D <= <expression1> when x"00", <expression2> when x"01" | x"02", <expression3> when others; La variable z doit tre numrable et non structure (record).

186

8 lments de VHDL

Z Exp1 D Exp2 Exp3

Figure 8.6

Le multiplexeur correspondant

8.6.2 Logique 3 tats et latches Une forme conditionnelle peut reprsenter une porte 3 tats si toutes les alternatives ne sont pas utilises. Dans ce dernier cas, Le comportement de VHDL fait que la connexion nest pas ralise et que le signal garde sa valeur prcdente jusqua ce quil soit de nouveau connect une expression. Cela ne correspond pas compltement au comportement habituel du matriel, puisquun l isol ne garde sa valeur par rtention capacitive quun bref instant qui dpend de limportance du courant de fuite. Exemple : Z <= A when (Clk=1); Z <= A when (Clk=1 and Clkevent); Les signaux A et Z ne sont connects que si la condition est vraie. Cette particularit de VHDL permet : de raliser des signaux sources multiples (bus). Ces sources doivent : soit tre mutuellement exclusives, soit un ventuel conit doit tre gr par une fonction spciale appele fonction de rsolution des conits ; aussi de raliser des latches dynamiques implicites. Cette confusion entre les latches et les signaux est regrettable. Elle nest leve que pour les types de signaux dit gards dont lutilisation est plus complexe. Remarque : Il est possible de raliser des latches statiques sans utiliser la rtention dynamique : D <= E when Ch else D; Il faut toutefois faire trs attention aux connexions conditionnes par des vnements (event). La connexion ralise nest pas instantane. Elle peut permettre des rebouclages asynchrones. Exemple : A <= A(0)& A(15 downto 1) when Clkevent and Clk = 1; Le signal A risque dtre dcal de plusieurs positions loccurrence de chaque transition montante de Clk.

8.7

Comportement temporel des descriptions

187

8.6.3 Blocs Les blocs VHDL correspondent plusieurs usages : la dclaration de composants locaux constitus dinstructions fonctionnelles ou de processus. Il sagit alors de structurer la description : l interface du bloc peut tre explicite par une liste de ports, comme celle dune entit, le bloc peut utiliser des signaux locaux ; la possibilit de conditionner collectivement un ensemble dinstructions fonctionnelles par la mme condition. Les instructions concernes seront alors gardes : Par exemple : Basc : block(Clkevent and Clk=1) begin BA <= guarded Tr15; BB <= guarded Mu37; end block; la dclaration de signaux register et bus qui doivent obligatoirement tre gards. Ces signaux doivent tre munis de fonction de rsolution des conits, spciant leur valeur lorsque plusieurs sources sont simultanment actives, ou toutes dconnectes. Ce type de description est orient vers la logique monophase, alors que le langage permet de dcrire des latch par le simple dtournement des signaux normaux . Ces formes sont utilises par certains outils de synthse qui reconnaissent ainsi les registres et les bus.

8.7

COMPORTEMENT TEMPOREL DES DESCRIPTIONS

La smantique de VHDL peut rserver quelques surprises qui peuvent poser des problmes difciles localiser. 8.7.1 Intervalle temporel de dnition des signaux Un signal externe est dni sur une succession dintervalles [ti, ti+1[ sur lesquels il porte ses valeurs. Le test dun signal externe porte donc sur ses valeurs aprs ses transitions (gure 8.7).

Dunod La photocopie non autorise est un dlit.

a)

ti
Figure 8.7

b)

tj

a) Le signal vaut 1 en ti. b) Le signal vaut 0 en tj

188

8 lments de VHDL

La nouvelle valeur dun signal interne, dni linstant t, apparatra linstant t+t. Ceci signie que les signaux internes sont dnis sur des intervalles ]ti, ti+1]. Il existe donc un dcalage entre la dnition des signaux externes et internes. Ceci a vraisemblablement t fait pour viter la gymnastique intellectuelle qui consisterait devoir considrer les valeurs dun signal externe avant ses transitions. Il faut toutefois remarquer que le paradigme data-ow, utilis pour le dclenchement des process, fait que ceux-ci dmarrent sur la transition dun signal. Pendant leur excution, la valeur de ce signal sera donc celle aprs la transition, ce qui est cohrent avec le traitement des signaux externes (gure 8.8). Il est utile de rappeler que dans toute instruction de connexion VHDL, toutes les valeurs de ses arguments sont prises en ti, tandis que le rsultat est fourni en ti+t.

ti
Figure 8.8

ti+ t

Dcalage entre les arguments et le rsultat dune instruction de connexion

8.7.2 Cas des dispositifs temps de rponse trs long La description de dispositifs temps de rponse trs long (PLA, ROM, circuits combinatoires complexes) ncessite lutilisation de la clause after. Toutefois, son utilisation se heurte plusieurs difcults : Ce genre de dispositif fait appel des valeurs de retard explicites qui ne sont pas toujours connus lors des premires tapes de la conception dun systme. Il serait souhaitable de pouvoir seulement mentionner quun retard est trs long (gure 8.9).
point de calcul signaux rels tablis

temps d'tablissement signaux calculs

Figure 8.9 Diffrence entre les instants de production des signaux simuls et ceux issus dun circuit combinatoire long temps de rponse

La meilleure solution pour contourner ce problme consiste utiliser une valeur symbolique comme unit de temps de fonctionnement du systme :

8.8

Instructions spciques aux processus

189

constant PERIODE : time := 1us; (prenons arbitrairement 1 microseconde) ...... A <= f(Z) after 1.5*PERIODE; (le rsultat de f napparat quau bout de 1,5 priodes) Cette valeur de la priode devra tre imprativement rutilise lors de la simulation. Il faut toutefois remarquer que VDHL calculera la valeur de sortie au dbut du cycle et transportera le rsultat au moment o il doit tre utilis pour simuler le temps dtablissement. Cela ne donne aucune garantie sur le maintient des oprandes pendant toute cette priode. Une forme de retard stipulant que les oprandes doivent avoir t continment prsents depuis le dclenchement du calcul jusqu la sortie du rsultat aurait t utile. La valeur de sortie du dispositif est souvent considre comme indnie pendant la dure dtablissement. La simulation de ces dispositifs devrait aussi tenir compte de ce phnomne.

8.8

INSTRUCTIONS SPCIFIQUES AUX PROCESSUS

Les processus sont programms laide dun langage algorithmique qui correspond un sous-ensemble dADA. La programmation des processus na rien voir avec la structure matrielle quils reprsentent. 8.8.1 Instructions conditionnelles Premire forme : if A = B then <instruction>; end if; Deuxime forme : if not (C = 1) then <instruction1>; else <instruction2>; end if; Troisime forme : if Z >= W then <instruction1>; elsif A /= E then <instruction2>; else <instruction3>; end if; Les oprateurs de relation sont : =, /=, >=, <=.

Dunod La photocopie non autorise est un dlit.

190

8 lments de VHDL

8.8.2 Instruction de choix Exemple : case CX is when "001100" => <instruction1>; when "000000" | "110000" => NULL; --OU de deux conditions when others => <cas rsiduels>; end case; La variable CX doit tre numrable et non structure (record). Remarques : Comme un process sexcute en temps nul, le test des signaux, dont la variation la fait dmarrer, concerne les valeurs de ces signaux aprs cette transition. Le langage dcriture des process se veut puriste et nadmet pas de goto ce qui peut obliger une criture plus lourde des algorithmes. Labsence dinstructions est interdite en VHDL. Il faut utiliser linstruction null. 8.8.3 Instructions de bouclage Boucles for : Exemple : for i in 1 to Klength loop <instructions>; end loop; Lindice na pas tre dclar : Boucles while : Exemple : while <condition> loop <instructions>; end loop; Il est possible de programmer un bouclage inni : loop <instructions>; end loop; do lon sort par : exit [when <condition>]; (sortie de boucle) next [when <condition>]; (saut litration suivante) Les boucles situes dans les process ne servent pas dcrire des processus squentiels mais sont utilises pour parcourir des structures spatiales (bit_vector, tableaux.

8.8

Instructions spciques aux processus

191

8.8.4 Mise en attente dun processus Comme nous lavons dj mentionn, la mise en attente dun process se fait laide dinstructions wait. Lusage de celles-ci est exclusif de lutilisation dune liste de sensibilit. Les diffrentes formes de linstruction wait sont : wait [on <liste de sensibilit>] [until <condition>] [for <dure]; Linstruction wait suspend lexcution du processus jusqu ce quun signal change de valeur, ou que la condition soit vraie, ou pour la dure indique. Exemple de la gnration dune horloge polyphase : signal phase1, phase2 : bit; constant Non_recouv : time := 3ps; constant Duree_phase : time := 100ps; process begin phase1 <= 1; wait for Duree_phase; phase1 <= 0; wait for Non_recouv; phase2 <= 1; wait for Duree_phase; phase2 <= 0; wait for Non_recouv; end process; Exemple : La gnration dun signal dhorloge peut se faire de diffrentes manires. Par une instruction fonctionnelle : Clk <= not Clk after Demi_periode; Par un process :
Dunod La photocopie non autorise est un dlit.

process begin Clk <= not Clk after Demi_periode; wait on Clk; end process; Ou encore : process begin Clk <= not Clk; wait for Demi_periode; end process;

192

8 lments de VHDL

8.8.5 Filtrage des vnements lors de lexcution dun process La slection des vnements pour lesquels on dsire effectuer certaines oprations seffectue laide dinstructions if qui testent la valeur ou les attributs des signaux de dclenchement du process. Exemple : process (RST, CLK) -- demarrage sur toutes les variations de RST et CLK begin ............... -- filtrage des fronts avants de CLK if (CLKevent and CLK=1) then A <= B; end if; ............... end process; 8.8.6 Choix du front de dclenchement dun process
Dclenchement sur un front montant

Exemple : process(Clk) -- Declenchement a chaque transition begin if Clk=1 then -- Filtrage des montees 1 <corps du process> end if Cela peut aussi scrire : process begin wait until clkevent and Clk=1; -- Attente montee 1 <corps du process>
Dclenchement sur un front descendant

Exemple : process(Clk) -- Declenchement a chaque transition begin if Clk=0 then -- Filtrage descente 0 <corps du process> Cela peut aussi scrire : process begin wait until clkevent and Clk=0; -- Attente descente 0 <corps du process>

8.9

Descriptions comportementales

193

Comme lexcution du process se droule juste aprs la transition de Clk, la valeur de ce signal pendant lexcution est celle aprs la transition.

8.9

DESCRIPTIONS COMPORTEMENTALES

Il sagit dun type de description dans lequel on souhaite dcrire le comportement temporel dun organe complexe sous la forme dune suite dactions rythmes par une horloge. Pour cela, on suppose un squencement rel entre des instructions qui manipulent des signaux. Malheureusement, VHDL ne permet pas lcriture de ce type de description. La solution habituellement utilise consiste utiliser un process dans lequel on prcise le squencement laide dinstructions wait ce qui est trs lourd ! Une autre possibilit consiste dtourner un simple process dont on utilisera le squencement descriptif . Ce process sera dclench par une horloge macroscopique sans ralit physique. Dans ce cas, la squence se trouvera donc tre exprime en un temps simul nul ! Pour crire une telle description, il faudra bien prendre soin de recopier les signaux dans des variables au dbut de lexcution pour pouvoir les manipuler librement, puis de les mettre jour la n. Les variables complexes, telles que des mmoires, ne seront pas recopies si leur valeur nest modie quau plus une fois pendant chaque excution. Nous verrons une telle description dans le chapitre consacr la conception algorithmique.

8.10 FONCTIONS
Il est possible dutiliser des fonctions (dclares ou prises dans une bibliothque) dans les expressions. Leur excution simule le fonctionnement dun rseau combinatoire. Lexcution dune fonction se produit chaque modication de lun de ses arguments (paradigme data-ow) et laffectation du rsultat se produit donc t aprs lexcution de la fonction (ou plus tard si lon utilise une clause after). Exemple : Transformation bit_vector -> entier (pour indicer les tableaux) :
Dunod La photocopie non autorise est un dlit.

A <= memoire(to_natural(Adresse)); (bibli spcique) Test de nullit dun bit_vector : signal Z : bit; Z <= Is_zero(Adresse); (fonction locale ) 8.10.1 Programmation des fonctions Les fonctions sont des programmes squentiels. Elles utilisent les mmes instructions que les processus. Par rapport ceux-ci, elles doivent prsenter des caractres de gnralit. Par exemple, la taille de leurs arguments ne doit pas tre spcie et la fonction doit donc tre capable de sadapter toutes les tailles possibles.

194

8 lments de VHDL

Comme pour un process, la programmation dune fonction na rien voir avec la structure matrielle quelle reprsente. Exemple dune fonction qui retourne une valeur de type bit suivant quun bit_vector est nul ou non : function Is_zero ( a : bit_vector ) return bit is begin for i in arange loop if a(i)=1 then return 0; end if; end loop; return 1; end Is_zero; Cette fonction admet nimporte quel bit_vector comme argument. La programmation est indpendante de sa taille. 8.10.2 Fonctions de rsolution de conits Celles-ci sont gnralement utilises pour rsoudre les cas o plusieurs sources veulent dnir simultanment la valeur dun signal. Elles sont utilises pour reprsenter des bus ralisant des OU ou des NI de connexion. Elles peuvent aussi tre utilises pour donner une valeur ces signaux lorsque aucune source ne les excite (cas des registres). Exemple (cas dun bus ralisant un OU de connexion) : function wired_or (input : bit_vector) return bit is begin for i in inputrange loop if input(i)=1 then return 1; end if; end loop; return 0; end wired_or; Largument de la fonction est un bit_vector auxiliaire, gnr automatiquement pour reprsenter ltat de toutes les sources du bus. Cette fonction est gnrale. Elle nest pas spcique un signal donn. Son utilisation doit tre prcise lors de la dclaration dun bus. Exemple : signal B : wired_or bit;

8.11 PACKAGES
Ceux-ci sont utiliss pour dclarer des types et des fonctions globales. Ils permettent, entre autres, dutiliser des types dclars dans les connexions dune entity. package <nom> is <dclaration de types globaux>

8.12

Duplication et paramtrisation du matriel

195

<entte de fonctions globales> end <nom>; package body <nom> is <corps des fonctions> end <nom>; Le corps dun package est inutile si celui-ci ne contient que des dclarations de type. 8.11.1 Mise en uvre des packages Lutilisation des packages est propre chaque entity. Les instructions library et use doivent tre rptes avant chaque entity. Les packages peuvent tre : soit dans le mme chier que la description : use work.<nom du package>.all; (.all pour utiliser la totalit du contenu du package) soit dans une bibliothque : library <nom de bibliothque>; use <nom de bibliothque>.<nom du package>.all; Exemple : Dclaration de constante et de types dans un package : package N_types is constant PERIODE : time := 1us; -- priode arbitraire subtype word is bit_vector(31 downto 0); -- mots de 32 bits type COM is (Marche, Arret, Veille); -- commande non code end N_types; -- utilisation des types globaux dans lentit suivante use work.N_type.all; entity My_box is port( IN1 : in word; -- entree de 32 bits Fonction : in COM; -- entree non encore code ......... architecture AR102 of My_box is signal Z : word; ... U <= Z xor IN1 after 1.5*PERIODE;

Dunod La photocopie non autorise est un dlit.

8.12 DUPLICATION ET PARAMTRISATION DU MATRIEL


8.12.1 Structures vectorielles et matricielles La description dun dispositif matriel constitu par la rptition linaire ou matricielle dun mme motif peut tre dcrite conomiquement laide dun petit programme de gnration utilisant une instruction particulire generate. Le programme de gn-

196

8 lments de VHDL

ration est constitu dune ou de plusieurs boucles for generate imbriques. Des instructions if generate servent isoler les irrgularits de la duplication (par exemple les premiers et les derniers lments). Chaque instruction for generate ou if generate doit tre tiquete et termine par un end generate suivit du rappel de cette tiquette. Une boucle for generate duplique les composants quelle invoque. Elle donne le mme nom toutes les copies. Exemple : signal lien : bit_vector(1 to taille-1); ...... module : for i in 1 to taille generate cond : if i<taille generate DecadeB : decade port map(, , ,lien(i)); end generate cond; n : if i=taille generate DecadeF :decade port map(, , ,sortie); end generate fin; end generate module; Malheureusement, cette construction automatique est trs limite. Elle ne peut agir lintrieur mme des instructions ni dans la dnition des constantes, ni dans lcriture des noms. 8.12.2 Paramtrisation du matriel Il est possible de dcrire en VHDL du matriel gnrique qui peut tre adapte chaque cas dutilisation (par exemple la dimension dun registre). Cela peut tre obtenu par la clause generic qui permet de dcrire la liste des paramtres utiliss pour dcrire une telle entit. Exemple : FIFO paramtrable. entity FIFO is generic( Larg : integer := 8; -- valeur par dfaut Long : integer); port( Entree : in bit_vector(Larg 1 downto 0); .... Lors de linstantiation de cette entit, La valeur des paramtres sera donne par une clause generic. Exemple : FIFO de 5 mots de 32 bits. FIFO1 : FIFO generic( Larg => 32, Long =>5) port map (IN1,... Gnralement, la gnricit et la gnration algorithmique de matriel vont de pair. Toutefois, les limitations de ces mcanismes en rduisent beaucoup lintrt. Un vritable mcanisme de macro-gnration syntaxique aurait t prfrable.

8.13

Matriel complmentaire

197

8.13 MATRIEL COMPLMENTAIRE


Pour permettre la simulation de certaines descriptions, il est quelquefois ncessaire de leur adjoindre des signaux et des instructions qui ne correspondent pas au matriel souhait. Cela peut avoir deux origines : Le contournement dune particularit smantique gnante de VHDL. Ce cas doit tre, si possible, vit. Par exemple, le fait que les tableaux ne puissent tre indics que par des variables entires et non par des bits_vectors. Lamlioration de laccs au matriel simul. Ces extensions correspondent alors au matriel dessai qui est souvent utilis lors du test dun montage lectronique. Il ne faut pas oublier de lenlever lorsque la description est au point. 8.13.1 Environnement de simulation De mme que le test dun montage lectronique fait appel des appareils de laboratoire (gnrateurs de signaux, oscilloscopes, analyseurs logiques, la simulation dune entity VDHL fait appel des fonctions spciques du simulateur pour : dnir la forme des signaux dexcitation ; visualiser les signaux de sortie et internes ; Les variables des process nayant aucune ralit physique ne peuvent pas tre visualises par les simulateurs.

BIBLIOGRAPHIE
[1] R. Airiau, J.-M. Berg, V. Olive, J. Rouillard, VHDL, Presses Polytechniques et Universitaires Romandes.

Dunod La photocopie non autorise est un dlit.

Chapitre 9

Conception algorithmique des circuits VLSI complexes

9.1

INTRODUCTION

Dunod La photocopie non autorise est un dlit.

La technique de conception des circuits complexes qui va tre prsente dans ce chapitre dcrit une mthode, relativement performante, pour passer de la description du comportement espr pour un futur circuit (description dite comportementale) la description de sa structure (description dite structurale). Cette mthode est directement issue de celle utilise pour la conception des microprocesseurs simples. Elle a t mise au point dans les annes 1975-1985 et consiste en la conception de circuits la demande sous la forme de microprocesseurs spcialiss. Les progrs et le niveau doptimisation atteints lors de la conception des microprocesseurs a incit rutiliser ces techniques pour la conception dautres types de circuits. Nous prsenterons cette dmarche dans le contexte de la conception manuelle en utilisant une circuiterie polyphase, mais la description structurelle rsultante peut tre facilement oriente vers la circuiterie monophase, do vers des outils de synthse automatiques pour des circuits intgrs ou vers des circuits programmables (FPGA). La conception dun microprocesseur dmarre partir de la description de son comportement (son algorithme dinterprtation) (gure 9.1). De mme, la conception des autres types de circuits dbute aussi par la description de leur comportement. Plusieurs outils ont t raliss pour automatiser ce processus de conception (compilateurs de silicium). Nous pouvons citer : loutil AMICAL dvelopp par le laboratoire TIMA (INPG), maintenant intgr dans les outils de TNI Valiosys ;

200

9 Conception algorithmique des circuits VLSI complexes

COMPORTEMENT (algorithme)

CIRCUIT COMPLEXE
Figure 9.1

le systme ALLIANCE dvelopp par le laboratoire ASIM (Universit Paris 6) ; loutil CATHEDRAL dvelopp lIMEC (Universit de Leuven (Belgique)), spcialis pour la conception des circuits de traitement du signal, devenu N2C de Coware. Ces outils produisent des circuits raisonnablement optimiss. Ils oprent en adaptant un motif gnrique au problme particulier. Ils sont considrs comme plus puissants que les outils qui partent dun schma fonctionnel, puisquils dmarrent leur travail partir de la description du comportement du circuit raliser et non dune structure dj imagine par le concepteur.

9.2

DOMAINES DAPPLICATION DE CETTE TECHNIQUE DE CONCEPTION

Cette technique de conception trouve son intrt pour la conception de circuits (cest-dire non ralisables par la programmation dun microcontrleur pr-existant). Ceux-ci peuvent tre : soit des circuits rapides devant tre produits en grande srie (cest--dire devant tre optimiss en terme de surface et de rapidit). Laugmentation de la performance des technologies rcentes diminue le domaine demploi de cette technique par laccroissement des performances des microcontrleurs standard ; soit des circuits raliser laide de circuits paramtrables (par exemple des FPGA). On trouve de tels circuits : dans les tlcoms : encrypteurs/dcrypteurs de messages, ltres numriques, dans le matriel informatique : contrleurs de priphriques, dans lhorlogerie : montres complexes,

9.3

Description du comportement

201

dans les appareils grand-public : dcodeurs pour lecteurs de CD, Les circuits spciques gagneront tre raliss en polyphas avec des techniques dassemblage et de compilation de silicium. La ralisation sur des circuits paramtrables se fera toujours en monophas par compilation. Pour cela, nous aborderons ces deux techniques de ralisation. Tout lenjeu de cette mthode consiste passer du comportement du futur circuit sa topologie.

9.3

DESCRIPTION DU COMPORTEMENT

Le comportement du futur circuit (ou de lun de ses modules) peut tre dcrit : soit par un organigramme ; soit sous la forme dun process VHDL. Le fait de dcrire le comportement et non la structure dun futur circuit devrait tre considr comme une simplication du processus de conception. En fait, cela savre trs perturbant pour les lectroniciens plus habitus manipuler des notions concrtes quabstraites. 9.3.1 Description du squencement La description du comportement pourra, ou non, prciser le squencement n du circuit. Lorsquil sagit dune application purement algorithmique (par exemple, pour raliser un circuit dencryption), il nest pas utile dimposer un squencement n. Par contre, dans le cas dune application temps-rel (par exemple, pour raliser un circuit dhorlogerie) la prcision du squencement est importante. Si lon ne souhaite pas prciser le squencement n on partira de celui donn implicitement par lorganigramme ou par la succession des instructions du process. Si lon souhaite le prciser, on utilisera des instructions wait dans la description du process. Il peut galement arriver que lon ne souhaite prciser quun niveau de squencement macroscopique, ncessaire au fonctionnement de lapplication, sans soccuper des niveaux de squencement plus ns qui rsulteront du processus de conception luimme. On utilisera alors des instructions wait pour prciser le squencement souhait, mais sans faire la supposition que les instructions entre les wait sont simultanes. Le langage VHDL nest pas conu pour donner un sens matriel au squencement des instructions dans un process. Lorsque lon utilise le squencement implicite des instructions dun process, les signaux ne sont pas directement utilisables puisquils se situent dans un autre environnement temporel. Il nest pas possible de les modier et dutiliser leurs nouvelles valeurs dans les instructions suivantes. Il faut dont travailler avec des variables. Comme la valeur de celles-ci nest pas conserve entre deux excutions du process et nest pas visible lors dune simulation, il faudra utiliser des signaux pour sauvegarder les

Dunod La photocopie non autorise est un dlit.

202

9 Conception algorithmique des circuits VLSI complexes

variables. Celles-ci seront charges au dbut du process et sauvegardes la n. Pour allger la simulation, on pourra souvent viter de recopier les signaux complexes de grande taille (par exemple les mmoires) en travaillant directement dessus, sous la rserve de ne pas, la fois, les crire et les lire entre deux instructions wait.
a) Exemple de description comportementale dune montre

Nous illustrerons cette dmarche de conception en lappliquant la ralisation dune montre numrique. Pour limiter la complexit de la prsentation, les fonctions de cette montre seront rduites au maximum. Il est videmment possible de compliquer cet exemple jusqu lamener la ralisation dune montre numrique multifonctions. La description comportementale de cette montre est : entity montre is port(clk : in bit; rst : in bit); end montre; architecture arch1 of montre is signal s, m, h :integer; begin process(rst) begin s <= 0; m <= 0; h <= 0; end process; process variable sv, mv, hv :integer; begin wait until clkevent and clk=1; --front montant de clk sv :=s; -- Copie des signaux dans des variables mv :=m; hv :=h; sv :=sv +1; if sv = 60 then sv :=0; mv :=mv +1; if mv = 60 then mv :=0; hv :=hv +1; if hv = 24 then hv :=0; end if; end if; end if; s <=sv; -- Recopie des variables dans les signaux m <=mv; h <=hv; end process; end arch1;

9.3

Description du comportement

203

Sous cette forme, nous prciserons uniquement la partie temps-rel du squencement de la montre. Celle-ci doit avancer dune seconde chaque priode du signal clk. Le squencement n des diffrentes oprations dincrmentation et de report nest pas encore dni. Cela nous amne supposer un certain squencement n implicite dans le process et donc devoir utiliser des variables qui seront sauvegardes dans des signaux. Pour simplier, nous ne traiterons pas les parties concernant la mise lheure et lafchage de la montre. Une simple remise zro commande par un signal rst permettra de dmarrer les simulations dans un tat bien dni. 9.3.2 Choix du compromis cot/performance Le choix dun bon compromis cot/performance est critique pour la conception dun circuit optimis. Il est trs frquent de concevoir un circuit trop rapide (donc trop complexe et trop cher !) ou, au contraire, pas assez performant. Un paramtre important pour choisir un bon compromis cot/performance est donn par la squentialit des traitements. Celle-ci se traduit dabord par la taille des bus et des oprateurs. Plus ceux-ci sont troits, plus le traitement sera srialis. La squentialit des traitements dcoule aussi de la complexit des oprateurs matriels utiliss. Par exemple, une multiplication pourra se faire en quelques cycles par un multiplieur cbl ou squentiellement, en beaucoup de cycles, par une suite doprations dadditions et de dcalages.
a) Adaptation de lalgorithme aux caractristiques du futur circuit

Les oprations dcrites dans lalgorithme devront tre ralisables par le circuit et correspondre au compromis cot/performance recherch : Les transferts entre les lments matriels (registres, oprateurs) devront se faire avec des bus dont la largeur correspondra au taux de srialisation recherch. La nature des oprations qui seront ralises de manire combinatoire par des oprateurs matriels correspondra la mise en uvre de plus ou moins de matriel et une ralisation plus ou moins squentielle des oprations complexes. Les oprations habituellement ralises par les oprateurs matriels combinatoires sont : les oprations logiques bit--bit : et, ou, ouex, non, les dcalages, les rotations, et ventuellement les extractions et les compositions de champs de bits, les oprations arithmtiques de base : +, , incrmentation, dcrmentations et complment arithmtique, les multiplications ne seront cbles comme des oprateurs spciaux que si leur frquence dutilisation le justie, compte tenu du cot important de tels oprateurs, des oprations simples, spciques lapplication, comme par exemple la transformation dun code BCD en allumage des segments pour un afchage 7 segments.

Dunod La photocopie non autorise est un dlit.

204

9 Conception algorithmique des circuits VLSI complexes

Des oprations comme des divisions, des extractions de racines, etc. seront pratiquement toujours ralises de manire squentielle en utilisant des oprateurs matriels plus simples, de manire rptitive. Avec ces adaptations, la squence doprations dcrite par lalgorithme deviendra identique celle que le circuit doit raliser.
b) Contraintes temps-rel

Certaines applications peuvent imposer des contraintes temps-rel sur lexcution de lalgorithme. Par exemple, les applications chronomtriques peuvent souhaiter que toutes les branches de lalgorithme aient la mme dure de manire ce que leurs excutions comporte toujours le mme nombre dtapes. Ainsi modi, lalgorithme devient un diviseur de la frquence du quartz utilis pour rythmer le squencement n des instructions.
Description adapte du squencement de la montre

Ce circuit na aucune contrainte de performance car il fonctionne basse frquence. Par contre, il doit tre le plus petit possible. Cela nous conduira utiliser des bus et des oprateurs de 4 bits, aptes transfrer et traiter des chiffres BCD. La description VHDL adapte deviendra : architecture arch2 of montre is subtype quad is bit_vector(3 downto 0); -- definition format signal s1, s2, m1, m2, h1, h2 :quad; begin process(rst) -- mise dans un etat initial connu (23h 59m 40s) begin s1 <= x"0"; s2 <= x"4"; m1 <= x"9"; m2 <= x"5"; h1 <= x"3"; h2 <= x"2"; end process; process variable sv1, sv2, mv1, mv2, hv1, hv2 :quad; begin wait until clkevent and clk=1; --front montant de clk sv1 :=s1; -- transferts signaux => variables sv2 :=s2; mv1 :=m1; mv2 :=m2; hv1 :=h1; hv2 :=h2; -- description de lalgorithme sv1 :=sv1 + x"1"; if sv1 = x"A" then -- test a 10 sv1 :=x"0";

9.4

Dmarche gnrale de conception

205

sv2 :=sv2 + x"1"; if sv2 = x"6" then sv2 :=x"0"; mv1 :=mv1 + x"1"; if mv1 = x"A" then mv1 :=x"0"; mv2 :=mv2 + x"1"; if mv2 = x"6" then mv2 :=x"0"; hv1 :=hv1 + x"1"; if (hv2 = x"2") and (hv1 = x"4") then hv1 :=x"0"; hv2 :=x"0"; elsif hv1 = x"A" then hv1 :=x"0"; hv2 :=hv2 + x"1"; end if; end if; end if; end if; end if; s1 <=sv1; -- transferts variables => signaux s2 <=sv2; m1 <=mv1; m2 <=mv2; h1 <=hv1; h2 <=hv2; end process; end arch2;

9.4

DMARCHE GNRALE DE CONCEPTION

Dunod La photocopie non autorise est un dlit.

Bien que pris dans son ensemble, le systme raliser soit une machine squentielle, cette dmarche de conception consiste le diviser en deux machines squentielles couples. Celles-ci sont spcialises, lune pour la manipulation et la transformation des donnes (appele chemin de donne) et lautre pour le squencement (appele squenceur). Cette dcomposition dcoule de celle, classique, des systmes de conduite de processus industriels dans lesquels le processus industriel est appel la partie oprative et lorgane de commande la partie commande (gure 9.2). Le rle du squenceur est denvoyer une succession de commandes lmentaires au chemin de donnes (gure 9.3). Celui-ci les excute et retourne au squenceur des informations sur les proprits des rsultats des oprations et sur la valeur de certaines variables. Le squenceur utilise ces informations pour orienter son excution dans une direction ou dans une autre. Le chemin de donnes ne sait que transfrer et transformer des donnes. Il est constitu de bus et doprateurs relis par des interrupteurs.

206

9 Conception algorithmique des circuits VLSI complexes

squenceur

commandes externes

ordres d'excution

tests

chemin de donnes

donnes

Figure 9.2 Dcomposition dun circuit complexe en un squenceur et un chemin de donnes

commandes bus oprateur registre

Figure 9.3

Chemin de donnes

Il peut tre compar au rseau de tuyauteries, de rservoirs et de racteurs dune rafnerie. Il ne travaille que sil est command par le squenceur (cest--dire que si un organe de commande excite les vannes et les pompes de la rafnerie). Le squenceur est une machine squentielle dont les entres sont les tests issus du chemin de donnes et les sorties les commandes quelle lui envoie. La conception de chacune de ces deux parties est trs spcique. Elle est ralise par des mthodes et des outils trs diffrents. Les spcications de ces deux parties dcoulent directement dune dcomposition simple de lalgorithme raliser (gure 9.4) : Lensemble de toutes les instructions opratives constituera la spcication du chemin de donnes.

9.5

Conception du chemin de donnes

207

COMPORTEMENT (algorithme)

OPERATIONS (+VARIABLES +PREDICATS)

STRUCTURE

CHEMIN DE DONNEES

SEQUENCEUR

Figure 9.4

La structure abstraite de lalgorithme (son schma de contrle) constituera la spcication du squenceur. Si le comportement souhait comporte plusieurs processus fonctionnant en parallle, ceux-ci peuvent tre raliss : soit de manire multiplexe au sein dun algorithme unique qui conduira la ralisation dun module <squenceur, chemin de donnes> unique ; soit par un ensemble de modules interconnects ralisant les diffrents processus. Chaque module tant constitu dun couple <squenceur, chemin de donnes> ; Soit par une solution hybride comportant plusieurs modules, certains regroupant plusieurs processus.

9.5

CONCEPTION DU CHEMIN DE DONNES

9.5.1 Spcication du chemin de donnes de la montre Cette spcication est constitue de la liste des variables utilises (supposes tre des signaux), des instructions opratives (cest--dire modiant les variables explicites) et des tests. Variables utilises :
Dunod La photocopie non autorise est un dlit.

signal s1,m1,h1 :quad; -- 4 bits Instructions opratives : s1<= s1<= s2<= s2<= m1<= m1<= m2<= m2<= h1<= s1 + x"1"; x"0"; s2 + x"1"; x"0"; m1 + x"1"; x"0"; m2+x"1"; x"0"; h1 + x"1";

208

9 Conception algorithmique des circuits VLSI complexes

h1<= x"0"; h2<= h2 + x"1"; h2<= x"0"; (null) Tests : s1 = x"A" s2 = x"6" m1 = x"A" m2 = x"6" (h2 = x"2")and(h1 = x"4") h1 = x"A" Comme la montre est un dispositif temps-rel, nous ajouterons une opration ineffective la liste pour permettre le respect dune contrainte dgalisation des dures dexcution de chaque branche de lalgorithme. Cette galisation sera ralise par des suites de longueur ad hoc dinstructions ineffectives. Nous navons pas pris en compte linstruction wait de dmarrage du process car il ne sagit que dune opration destine contourner le fait que les process VHDL, muni dune liste de sensibilit, dmarrent sur les deux fronts. 9.5.2 Mise sous forme standard des instructions opratives Lexcution de chaque instruction oprative va correspondre la mise en uvre dune partie des ressources matrielles du chemin de donnes. Pour simplier au maximum cette partie du circuit, il faut que les ressources matrielles du chemin de donnes soient utilises par le maximum dinstructions opratives. Pour cela, nous allons les crire dune manire standardise en leur donnant un format commun. De celui-ci dcoulera directement la structure matrielle du chemin de donnes.
a) Mise sous un format commun des instructions opratives de la montre

La majorit des instructions binaires sont des incrmentations. Les oprations unaires sont des chargement de variables partir de constantes. La forme standard pourra donc tre : <dest> <= incr <source> Par exemple : s1 <= s1 + x"1" se rcrira : s1 <= Incr(s1). Les constantes charger devront donc tre rduites dune unit. Par exemple : s1 <= x"0" se rcrira : s1 <= Incr(x"F") Nous verons, dans ltude du squenceur, quil est judicieux de coder linstruction null comme rien <= Incr(x"F"). Les champs <dest> et <source> de la forme standard pourront contenir :

9.5

Conception du chemin de donnes

209

<dest> rien s1 s2 m1 m2 h1 h2

<source> X"F" s1 s2 m1 m2 h1 h2

La destination rien correspond au fait de ne pas exploiter le rsultat de linstruction. Cela sera utile : pour raliser les instructions ineffectives ; pour effectuer certains tests.
b) Cas des tests

Nous remarquerons que les tests portent presque toujours sur le rsultat de lopration dincrmentation qui les prcde. Cela nous permettra, dans le cas de la montre, de standardiser la forme des tests en : <resultat> = {3,4,6,A} Il existe une exception cette rgle pour les instructions suivantes : ....... hv1 :=hv1 + x"1"; if (hv2 = x"2") and (hv1 = x"4") then ........ qui devront tre rcrites en : ....... hv1 <= Incr(hv1); if (resultat = x"4") then rien <= Incr(hv2); if (resultat = x"3") then ........ Lutilisation de linstruction rien <= Incr(hv2); produit un rsultat interne qui peut tre test, toutefois la valeur tester a d, pour cela, tre augmente de 1. Remarque :Les formes standard des instructions opratives et des tests permettent dcrire dautres algorithmes que celui dont on est parti. Cette gnralisation se retrouve sur le chemin de donnes. Elle est dautand plus importante que lalgorithme de dpart est volumineux et complexe. Il est mme souvent possible que le chemin de donnes obtenu soit sufsament gnral pour excuter nimporte quel algorithme. Nous dirons alors que la machine correspondante est devenue universelle.

Dunod La photocopie non autorise est un dlit.

210

9 Conception algorithmique des circuits VLSI complexes

9.5.3 Conception physique du chemin de donnes Le chemin de donnes peut tre trait soit comme une machine squentielle polyphase ou monophase (gure 9.5). Dans les deux cas sa conception dcoule directement des formes standard obtenues : les variables deviennent les registres de la machine ; les oprations sont ralises par lunit arithmtique et logique (appele UAL), souvent unique ; les oprandes sont collects par des bus qui aboutissent lUAL ; les rsultats de lUAL sont distribus par un autre bus. Chaque instruction oprative sera excute en un tour dans le chemin de donnes : les oprandes sont extraits des registres sources et mis sur les bus sources ; lUAL est excite par les bus sources et fournit son rsultat sur le bus destination ; le rsultat sur le bus destination est charg dans le registre destination.

une opration

Figure 9.5

Excution dune instruction oprative sur un chemin de donnes

Il est quelquefois ncessaire deffectuer une optimisation des sources de manire quilibrer la charge des bus correspondants. Cette optimisation consiste dplacer des registres sources dun bus lautre. Elle se fait en jouant sur la commutativit de certaines oprations.
a) Prise en compte des problmes lectroniques

Le chemin de donnes pourra tre ralis comme un systme squentiel polyphas ou monophas. Il faudra faire trs attention au couplage entre le chemin de donnes et le squenceur. Dans le cas dun chemin de donnes polyphas, lexcution de chaque instruction sera dcompose en plusieurs phases (gure 9.6). Des barrires temporelles seront mises en place pour viter les rebouclages intempestifs. Le squencement de ce type de chemin de donnes est tout fait classique et correspond une utilisation quasi-optimale du temps. Les chemins de donnes poly-

9.5

Conception du chemin de donnes

211

2CD
Barrire temporelle d'origine (registres pertinents)

1CD

Barrire temporelle Ajoute (registres intermdiaires)

Figure 9.6

Squencement bi-phas dun chemin de donnes

1CD
bus source

2CD

tablissement UAL bus dest registres int. transparents registre dest. transparent

Figure 9.7

Chronogramme du fonctionnement dun chemin de donnes biphas

Dunod La photocopie non autorise est un dlit.

phass sont gnralement biphass. Leurs deux phases de fonctionnement, que nous appellerons 1CD et 2CD seront incluses dans le squencement global de la machine qui pourra comporter deux phases ou plus. La premire phase (1CD) sera consacre la slection des registres sources et la mise en transparence de ceux de la barrire temporelle intermdiaire. La seconde phase (2CD) sera consacre la mise en transparence du (ou des) registre(s) destination (gure 9.7). Dans le cas dun chemin de donnes monophas, lexcution de chaque instruction correspondra un tour complet de linformation en une priode dhorloge. Ses registres seront raliss par des bascules (gure 9.8). Aucun registre intermdiaire nest ncessaire. Ltablissement des bus et des oprateurs pourra occuper presque toute la priode moins le temps de pr-positionnement des bascules. Le chargement conditionnel du registre destination se fera par le positionnement de la commande de chargement concerne pendant le cycle dexcution. Nous voyons que les diffrences entre ces deux approches sont assez rduites au niveau du chemin de donnes. Elles dcoulent donc de la mme mthode de con-

212

9 Conception algorithmique des circuits VLSI complexes

H
bus source tablissement UAL

bus de dest st selection des sources selection du dest. registre dest.

chargement registre dest


Figure 9.8 Chronogramme du fonctionnement dun chemin de donnes monophas

ception. Lexemple de la montre sera trait en polyphas, tandis que la conception complte dun circuit monophas sera trait dans lexercice n xxx.
b) Structure du chemin de donnes de la montre

Nous choisissons de raliser la montre en logique polyphase. Son chemin de donnes ne comporte quun seul bus source (gure 9.9). Toutes les commandes de chargement des registres partir du bus destination sont valides par la phase 2CD. LUAL ne dispose daucune commande puisquelle neffectue, de manire combinatoire, quune seule opration. Le module de test compare le rsultat de lincrmentation aux valeurs 3, 4, 6 et A. Toutefois, pour laisser le maximum de libert pour la conception, nous ne prciserons pas la forme sous laquelle il enverra ces informations au squenceur.
c) Description VHDL du chemin de donnes de la montre

type val_cond is(VTA,VT6,VT4,VT3,VTX); -- dans un package entity pop_montre is port( LOS1,LOS2,LOM1,LOM2,LOH1,LOH2, SELS1,SELS2,SELM1,SELM2,SELH1,SELH2,SELF : in bit; Tests : out val_cond; PH1CD,PH2CD,RST : in bit) end pop_montre; architecture rtl of pop_montre is function Incr (a : bit_vector) return bit_vector is alias av : bit_vector (1 to alength) is a; variable inc_a : bit_vector (1 to alength); begin inc_a := av; for i in alength downto 1 loop

9.5

Conception du chemin de donnes

213

2CD
bus_dest
incr

test (3,4,6,A)

tests

tests

LOS1

S1

SELS1

LOS2

LOM1

M1

SELM1

SELS2

bus_source
SELF x"F"

LOM2

M2

S2

LOH1

H1

LOH2

H2

Dunod La photocopie non autorise est un dlit.

Figure 9.9

2CD

Le chemin de donnes de la montre

inc_a(i) :=not av(i); exit when av(i)=0; end loop; return inc_a; end Incr; signal S1, S2, M1, M2, H1, H2 :quad; signal A :quad;

SELH2

SELH1

SELM2

1CD

214

9 Conception algorithmique des circuits VLSI complexes

signal Bus_source, Bus_dest :quad; signal val-tests :val_cond; begin -- Bus_source Bus_source <= S1 when SELS1 =1else S2 when SELS2 =1else M1 when SELM1 =1else M2 when SELM2 =1else H1 when SELH1 =1else H2 when SELH2 =1else x"F" when SELF =1; -- Chargement latch intermediaire (transparent sur PH1CD) A <= Bus_source when PH1CD=1else A; -- Fonctionnement incrementeur Bus_dest <= Incr(A); -- calcul des tests With Bus_dest select val_tests <= VT3 when x"3" else VT4 when x"4" else VT6 when x"6" else VTA when x"A" else VTX when others; Tests <= VTX when RST=1 else val_tests when PH2CD=1 else Tests; -- Chargement registres destination (transparents sur PH2) S1 <= Bus_dest when LOS1 =1 and PH2CD=1 else S1; S2 <= Bus_dest when LOS2 =1 and PH2CD=1 else S2; M1 <= Bus_dest when LOM1 =1 and PH2CD=1 else M1; M2 <= Bus_dest when LOM2 =1 and PH2CD=1 else M2; H1 <= Bus_dest when LOH1 =1 and PH2CD=1 else H1; H2 <= Bus_dest when LOH2 =1 and PH2CD=1 else H2; end rtl; Cette description VHDL nest quun modle de simulation. Elle est crite de manire tre la plus proche possible de la ralisation matrielle vise (par exemple, elle utilise la transparence des latches). Elle nest pas prvue pour constituer lentre dun outil de synthse. Lcriture de cette description contient une fonction Incr() dont la structure interne na rien voir avec loprateur matriel combinatoire qui la ralise. La destination rien correspond simplement aucun chargement de registre. La mise de la montre dans un tat initial ne correspond aucun dispositif matriel car il ne sagit que dun mcanisme dessai pour la simulation.
d) Utilisation de dcodeurs dans les chemins de donnes

Il arrive frquemment que les oprations raliser par le chemin de donnes comportent des accs des tableaux ou des indexations. Par exemple : R(ASD) <= W17; dans laquelle ASD et W17 sont des registres et R() un tableau.

9.5

Conception du chemin de donnes

215

Le tableau est matrialis par une mmoire constitue par un ensemble de registres. Sa commande de chargement signie littralement : Chargez le mot de la mmoire R() index par ASD. Cela peut tre facilement obtenu en insrant un dcodeur dans le chemin de donnes (gure 9.10). Celui-ci est branch sur le registre ASD, ses sorties commandent le chargement des mots de la mmoire R(). Le dcodeur est valid par la commande de chargement issue du squenceur.
Chgmnt R(ASD)

ASD

R(0)

R(1)

R(2)

Figure 9.10

Dcodeur pour adressage index

Un mcanisme similaire peut tre utilis pour accder aux bits dun registre. Le lecteur intress pourra voir lutilisation dun tel dcodeur dans lannexe 2 : tude dune montre avec afchage.
e) Dessin du chemin de donnes
Dunod La photocopie non autorise est un dlit.

Des techniques trs efcaces sont utilises pour dessiner les chemins de donnes (gures 9.11 et 9.12). La technique de base pour concevoir ce type de blocs est lutilisation dune approche dite par tranches . Le dessin du chemin de donnes est obtenu par la rptition et la juxtaposition de bandes de dessin (les tranches) qui reprsentent chacune un bit de la totalit du chemin de donnes. Ces bandes sont constitues par lassemblage de cellules qui ont la mme hauteur et qui sinterconnectent par simple juxtaposition dans les deux directions. Cette approche respecte le principe de croisement des ux dinformation et des couches technologiques. Le dessin du chemin de donnes est gnralement obtenu laide dun outil, appel assembleur de silicium, qui effectue lassemblage des cellules lmentaires par simple juxtaposition.

216

9 Conception algorithmique des circuits VLSI complexes

lignes de commande et de test

tranche d'un bit

registres

oprateurs

Figure 9.11

Organisation du dessin dun chemin de donnes

Figure 9.12

Chemin de donnes du microprocesseur Motorola MC 6800 (8 bits)

Lensemble des tranches est surmont dune ligne damplicateurs et de bascules destins renforcer les commandes et ventuellement les formater par les horloges, ainsi que pour stocker les rsultats des tests. Le dessin nal est rectangulaire. Il est trs dense et trs optimis. La place perdue est trs faible. Les bus se superposent la logique des cellules. Les alimentations sont (bien) distribues via la grille qui est constitue par les lignes dalimentation verticales et celles horizontales incluses dans les bus. Le chemin de donnes constitue certainement la plus belle pice de dessin de ce type de circuit. Gnralement, sa surface est comprise entre le quart et la moiti de celle de tout le circuit.

9.5

Conception du chemin de donnes

217

Dessin du chemin de donnes de la montre

Le chemin de donnes de la montre est conu suivant ce principe. Il est constitu de quatre tranches (gure 9.13).
slections tests

phases

ampli

Incr

m1

m2

S1

XF

S2

h1

h2

Figure 9.13

Chemin de donnes de la montre

Exemple de cellules :

Dunod La photocopie non autorise est un dlit.

Figure 9.14 lment de registre pour la montre (technologie symbolique Alliance)

218

9 Conception algorithmique des circuits VLSI complexes

Figure 9.15

Tranche dun bit dincrmenteur pour la montre (technologie symbolique Alliance)

Ces dessins obissent raisonnablement aux rgles de croisement des couches technologiques. On reconnat les bandes de mtal de second niveau qui vont former la structure des bus de la tranche.

9.6

ARCHITECTURE TEMPORELLE

Larchitecture temporelle dun circuit complexe est trs importante. Elle dtermine directement ses performances, sa complexit mais aussi la abilit de son fonctionnement. En effet, beaucoup de problmes des circuits VLSI proviennent dune mauvaise architecture temporelle qui fait que dans certaines conditions limites certains signaux peuvent ne pas tre stabiliss au moment o ils sont exploits. Lobjectif de larchitecture temporelle est de donner chaque organe le temps dont il a besoin pour fonctionner (dans les pires conditions !) tout en minimisant le temps de cycle global. Un tel objectif est atteint en tudiant le chemin critique. Celui-ci est reprsent par la chane des organes dont le fonctionnement est obligatoirement successif. La dure du chemin critique dtermine directement le temps de cycle du circuit. Lart du concepteur est donc de chercher diminuer sa longueur, soit en rduisant le temps de fonctionnement des organes les plus lents, soit en permettant un fonctionnement moins squentiel de ces organes.

9.6

Architecture temporelle

219

9.6.1 Fonctionnements relatifs du squenceur et du chemin de donnes


a) Fonctionnements successifs

Cette technique est la plus simple (gure 9.16). Elle consiste faire fonctionner successivement le squenceur et le chemin de donnes. Elle est utilise pour les machines lentes.
squenceur

chemin de donnes

Figure 9.16

Fonctionnement successif du squenceur et du chemin de donnes

Les commandes gnres par le cycle courant du squenceur servent immdiatement pour le chemin de donnes. Les rsultats des tests gnrs par ce dernier servent immdiatement slectionner ltape suivante dans le squenceur. Dans le cas de circuits biphass, elle conduit un fonctionnement global quadriphas (gure 9.17). Deux phases pour le squenceur (1S et 2S) ; deux phases pour le chemin de donnes (1CD et 2CD).
squenceur
latches d'interface

2S

commandes de slection
Dunod La photocopie non autorise est un dlit.

commandes de chargement

chemin de donnes
Figure 9.17 Latches dinterface entre le squenceur et le chemin de donnes

Pour rappel, les commandes de chargement sont reformates par 2CD lentre du chemin de donnes (gure 9.18). Les retours du chemin de donnes vers le squenceur (tests, valeurs) seront stocks, comme des destinations, dans des latches transparents sur 2CD. Le squenceur pourra utiliser ces informations ds 1S du cycle suivant. Dans le cas des circuits monophass, il est possible de gnrer deux horloges successives, la premire pour le squenceur et la seconde pour le chemin de donnes.

220

9 Conception algorithmique des circuits VLSI complexes

1S

2S
latches dinterface transp.

1CD

2CD

1S

commandes de chargement

commandes de slection

Figure 9.18

Chronogramme du fonctionnement de linterface

Il sera mme possible dassocier un squenceur cbl monophas compil avec un chemin de donnes biphas assembl.
b) Fonctionnements superposs

Cette technique est utilise pour les machines rapides. Elle consiste faire fonctionner en mme temps le squenceur et le chemin de donnes. Dans le cas de la montre, elle conduirait un fonctionnement global biphas, soit deux fois plus rapide quun fonctionnement successif (gure 9.19).
squenceur

chemin de donnes

Figure 9.19

Fonctionnement superpos du squenceur et du chemin de donnes

Le fonctionnement temporel dun tel systme est plus complexe. Les commandes pour le chemin de donnes proviennent du cycle prcdent du squenceur qui se trouve tre en avance dun cycle par rapport au chemin de donnes. Comme les rsultats des tests gnrs par celui-ci ne peuvent inuencer que le cycle suivant du squenceur, il scoule deux cycles entre la slection dune tape dans le squenceur et la possibilit de faire un choix conditionnel dans le squencement. Du point de vue de lcriture de lalgorithme, un test ne pourra porter que sur les rsultats de ltape qui prcde la prcdente ! Lalgorithme doit tre modi en consquence, en ajoutant des instructions ineffectives et en permutant lordre de certaines actions. Cette technique de squencement sadapte directement aux circuits monophass et biphass.

9.6

Architecture temporelle

221

Cas des systmes superposs biphass (gure 9.20)

squenceur
latches M d'interface

2
S

commandes de slection

commandes de chargement

chemin de donnes

Figure 9.20 Latches matres-esclaves dinterface entre le squenceur et le chemin de donnes (systme superpos biphas)

Pour rappel, les commandes de chargement sont reformates par 2 lentre du chemin de donnes (gure 9.21).
cycle i-1 cycle i cycle i+1

fonctionnement squenceur latches com

M transp.
latches tests Es transp. latches tests M transp.
Dunod La photocopie non autorise est un dlit.

commandes de slection latches com Es transp. commandes de chargement

Figure 9.21

Chronogramme du fonctionnement de linterface (systme superpos biphas)

Les commandes de slection ncessaires en 2 du cycle i +1 doivent tre mmorises dans le registre esclave dinterface (par exemple la commande dun oprateur). Les retours du chemin de donnes vers le squenceur (tests, valeurs) seront stocks, comme des destinations, dans des latches matres transparents sur 2 du cycle i 1, puis dans des esclaves transparents sur 1 du cycle i. Le squenceur pourra

222

9 Conception algorithmique des circuits VLSI complexes

donc utiliser ces informations dans tout le cycle i pour gnrer des commandes pour le cycle i +1.
Cas des systmes superposs monophass (gure 9.22)

squenceur
registre d'interface

commandes de slection

commandes de chargement

chemin de donnes
Figure 9.22 Registre dinterface et gnration des sous-horloges (systme monophas superpos)

Le registre dinterface met les commandes disposition du chemin de donnes pour le cycle qui suit celui du fonctionnement du squenceur. Les commandes de chargement valident des sous-horloges qui attaquent les registres concerns du chemin de donnes (gure 9.23).
cycle i -1 cycle i cycle i +1

sorties du squenceur positionnement sorties registre d'interface chargement basc. de test horloge de chargement (conditionnelle)

chemin de donnes

chargement registre

Figure 9.23

Chronogramme du fonctionnement de linterface (systme monophas superpos)

9.7

Conception du squenceur de la montre

223

Les retours du chemin de donnes vers le squenceur (tests, valeurs) seront stocks, comme des destinations, dans des registres par la transition dhorloge qui termine le cycle i 1. Le squenceur pourra utiliser ces informations ds le dbut du cycle i pour gnrer des commandes pour le cycle i +1.

9.7

CONCEPTION DU SQUENCEUR DE LA MONTRE

9.7.1 Mise en forme de lalgorithme Lalgorithme de la montre est rcrit de manire mettre en vidence les instructions opratives formates ainsi que le squencement qui doit tre tel que lalgorithme se prsente comme un diviseur prcis de la frquence de lhorloge. Pour cela, des instructions ineffectives (null) seront ajoutes de manire ce que toutes les branches aient la mme longueur (ici 16 instructions) (gure 9.24). Lexcution de cet algorithme se comportera alors comme un diviseur par 16, ce qui fait que, pour rester lheure, la montre devra tre excite par une horloge prcise de 16 hz (issue de la division par 211 dun quartz horloger de 32,768 kHz).

=x"A" H1 <= Incr(x"F") H2 <= Incr(H2)

S1 <= Incr(S1) =x"A" S1 <= Incr(x"F") S2 <= Incr(S2) =x"6" S2 <= Incr(x"F") M1 <= Incr(M1) =x"A" M1 <= Incr(x"F") M2 <= Incr(M2) =x"6" M2 <= Incr(x"F") H1 <= Incr(H1) =x"4" rien <= Incr(H2) =x"3" H1 <= Incr(x"F") H2 <= Incr(x"F")

x"A" null null x"6" null null x"A" null null x"6" null null x"A", x"4" null x"3" null null null null null null

Dunod La photocopie non autorise est un dlit.

Figure 9.24

Lalgorithme de la montre est crit de manire sadapter aux contraintes du matriel. Les tests sont raliss par le fait de choisir une instruction suivante parmi plusieurs possibles. Ce choix est effectu suivant les proprits du rsultat de linstruction prcdente.

224

9 Conception algorithmique des circuits VLSI complexes

9.7.2 Ralisation du squenceur de la montre Nous avons vu que le squenceur est une machine squentielle. Dans le chapitre 7, nous avons vu quil existe de nombreuses techniques pour raliser un tel bloc. Comme lalgorithme raliser est relativement simple, nous choisirons de raliser le squenceur de la montre sous la forme dune machine de Mealey, laide dun simple PLA (gure 9.25). Nous prsenterons aussi des ralisations microprogrammes et sous la forme dun automate cbl.
matrice "ET" matrice "OU"

cond.

tat cour

tat suiv

gnration des commandes

Squencement Conditions

Commandes

Chemin de donnes

Figure 9.25

Organisation dun circuit complexe avec un squenceur base de PLA

Cela entrane que les tests soient effectus en slectionnant, par la matrice ET, linstruction suivante par le couple (tat courant, valeur des tests). Une consquence de cette approche est quune instruction appartenant un clatement ne peut pas tre galement le successeur dune autre instruction non conditionnelle. Cette contrainte peut tre contourne en codant les instructions null par : rien <= Incr(x"F") De cette manire, leur rsultat est toujours 0, cest--dire diffrent de 3, 4, 6, A., ce qui transforme les branchements conditionnels en des branchements inconditionnels vers linstruction null suivante (gure 9.26). 9.7.3 Contenu du PLA Lalgorithme doit tre crit sous la forme dinstructions conditionnelles (dites gardes) : <Etat courant, Conditions> => actions, Etat suivant Toutes les valeurs possibles des conditions doivent tre prvues (tableau 9.1).

9.7

Conception du squenceur de la montre

225

s2 <= Incr(s2) =x"6" s2 <= x"0"

null

(produit toujours 0)

x"6" null mme tat

Figure 9.26 TABLEAU 9.1


matrice ET tat E1 E2 E2 E3 E4 E5 E5 E6 E7 E8 E8 E9 E10 E11 E11 E12 E13 E14 E14 E14 E15 E16 E16 E17 E18 E19 E20 E21 E22 conditions

VALEURS POSSIBLES DES CONDITIONS


matrice OU actions S1<=Incr(S1) S1<=Incr(x"F") rien<=Incr(x"F") S2<=Incr(S2) rien<=Incr(x"F") S2<=Incr(x"F") rien<=Incr(x"F") M1<=Incr(M1) rien<=Incr(x"F") M1<=Incr(x"F") rien<=Incr(x"F") M2<=Incr(M2) rien<=Incr(x"F") M2<=Incr(x"F") rien<=Incr(x"F") H1<=Incr(H1) rien<=Incr(x"F") H1<=Incr(X"F") rien<=Incr(H2) rien<=Incr(x"F") H2<=Incr(H2) H1<=Incr(x"F") rien<=Incr(x"F") H2<=Incr(x"F") rien<=Incr(x"F") rien<=Incr(x"F") rien<=Incr(x"F") rien<=Incr(x"F") rien<=Incr(x"F") et. suiv. E2 E3 E4 E5 E5 E6 E7 E8 E8 E9 E10 E11 E11 E12 E13 E14 E14 E15 E16 E16 E18 E17 E18 E19 E19 E20 E21 E22 E1

=x"A" x"A"

=x"6" x"6"

=x"A" x"A"

=x"6" x"6"

Dunod La photocopie non autorise est un dlit.

=x"A" =x"4" x"4", x"A" =x"3" x"3"

226

9 Conception algorithmique des circuits VLSI complexes

9.7.4 Optimisation topologique du PLA Les diffrentes lignes du PLA peuvent tre dplaces indpendamment pour optimiser la matrice ET du PLA (gure 9.27).
Matrice ET

surface gagne Matrice OU OU

conditions

tat courant

Figure 9.27

Surface gagne par rarrangement du PLA

La surface ainsi gagne peut servir loger un autre bloc de dessin. 9.7.5 Squencement global de la montre Comme la montre est un dispositif lent, nous choisirons dutiliser un squencement successif quatre phases dans lequel les deux premires phases 1S et 2S seront ddies au fonctionnement du squenceur et les deux suivantes 1CD et 2CD au chemin de donnes (gure 9.28). Naturellement, nous aurions pu renommer les phases 1, 2, 3 et 4. Le registre de sortie du PLA joue le rle de registre dinterface entre le squenceur et le chemin de donnes. La validation des commandes de chargement par 2CD se fait dans le chemin de donnes (gure 9.29). 9.7.6 Description VHDL du squenceur de la montre type val_cond is (VTA,VT6,VT4,VT3,VTX,PHI,NVTA,NVT6,NVT3,NVT4A); constant Duree_Phase : int :=xxx; -- duree symbolique de la phase entity ctrl_montre is port( LOS1,LOS2,LOM1,LOM2,LOH1,LOH2, SELS1,SELS2,SELM1,SELM2,SELH1,SELH2,SELF : out bit;

9.7

Conception du squenceur de la montre

227

matrice "ET"

matrice "OU"

1S + 2S
cond tat cour tat suiv commandes

1S
tests tat commandes

2S 1CD 2CD

Chemin de donnes

Figure 9.28

Architecture dun circuit complexe utilisant un squenceur base de PLA

2CD

1S

2S

1CD
Registre micro-esclave transparent Registre micro-matre mmorisant

2CD
Registre micro-esclave mmorisant

1S
nouvel tat

tablissement PLA

nouvel tat

Registre micro-matre transparent

nouvelles conditions

cycle PLA suivant

conditions

commandes de slection

commandes de chargement

Fonctionnement du squenceur
Dunod La photocopie non autorise est un dlit.

Fonctionnement du chemin de donnes

Figure 9.29 Chronogramme du fonctionnement successif dun PLA et dun chemin de donnes

Tests : in val_cond; PH1S,PH2S,PH1CD,PH2CD,RST : in bit); end ctrl_montre; architecture rtl2 of ctrl_montre is type etiquettes is (E1,E2,E3,E4,E5,E6,E7,E8,E9, E10,E11,E12,E13,E14,E15,E16,E17,E18, E19,E20,E21,E22); type val_source is(F,S1,S2,M1,M2,H1,H2);

228

9 Conception algorithmique des circuits VLSI complexes

type val_dest is(rien,S1,S2,M1,M2,H1,H2); type micro_sel is record Etat_courant :etiquettes; Condition :val_cond; end record; type et_mat is array(1 to 29) of micro_sel; constant PLA_ET :et_mat :=( (E1,PHI),(E2,VTA),(E2,NVTA),(E3,PHI),(E4,PHI), (E5,VT6),(E5,NVT6),(E6,PHI),(E7,PHI), (E8,VTA),(E8,NVTA),(E9,PHI),(E10,PHI), (E11,VT6),(E11,NVT6),(E12,PHI),(E13,PHI), (E14,VTA),(E14,VT4),(E14,NVT4A),(E15,PHI), (E16,VT3),(E16,NVT3),(E17,PHI),(E18,PHI), (E19,PHI),(E20,PHI),(E21,PHI),(E22,PHI)); type micro_mot is record dest :val_dest; source :val_source; Etat_suivant :etiquettes; end record; type ou_mat is array(1 to 29) of micro_mot; constant PLA_OU :ou_mat :=( (S1,S1,E2),(S1,F,E3),(rien,F,E4), (S2,S2,E5),(rien,F,E5),(S2,F,E6),(rien,F,E7), (M1,M1,E8),(rien,F,E8),(M1,F,E9),(rien,F,E10), (M2,M2,E11),(rien,F,E11),(M2,F,E12), (rien,F,E13),(H1,H1,E14),(rien,F,E14), (H1,F,E15),(rien,H2,E16),(rien,F,E16), (H2,H2,E18),(H1,F,E17),(rien,F,E18),(H2,F,E19), (rien,F,E19),(rien,F,E20),(rien,F,E21), (rien,F,E22),(rien,F,E1)); signal Reg_mic1 :micro_mot; signal Reg_mic2 :etiquettes; begin -- simulation lecture PLA -- celui-ci travaille pendant PH1S et une partie de PH2S process variable i :integer; begin wait until PH1Sevent and PH1S=1; - debut de PH1S i :=1; while not( -- boucle de balayage du PLA ((PLA_ET(i).Etat_courant=Reg_mic2) and ((PLA_ET(i).Condition=PHI) or (PLA_ET(i).Condition=Tests) or (PLA_ET(i).Condition=NVT3 and Tests/=VT3) or (PLA_ET(i).Condition=NVT6 and Tests/=VT6) or (PLA_ET(i).Condition=NVTA and Tests/=VTA) or (PLA_ET(i).Condition=NVT4A and Tests/=VT4 and Tests/=VTA))) )loop

9.7

Conception du squenceur de la montre

229

i :=i +1; assert i >= 30 report "erreur simulation PLA" severity failure; end loop; - report sortie PLA fin de PH2S Reg_mic1<=PLA_OU(i) after Duree_Phase * 1.8; end process; -- chargement esclave et initialisation Reg_mic2 <=E1 when RST=1 else Reg_mic1.Etat_suivant when PH1S=1else Reg_mic2; -- generation des commandes -- selections bus source SELS1<=1when (Reg_mic1.source=S1) else 0; SELS2<=1when (Reg_mic1.source=S2) else 0; SELM1<=1when (Reg_mic1.source=M1) else 0; SELM2<=1when (Reg_mic1.source=M2) else 0; SELH1<=1when (Reg_mic1.source=H1) else 0; SELH2<=1when (Reg_mic1.source=H2) else 0; SELF <=1when (Reg_mic1.source=F) else 0; -- commandes chargement bus destination LOS1<=1when (Reg_mic1.dest=S1) else 0; LOS2<=1when (Reg_mic1.dest=S2) else 0; LOM1<=1when (Reg_mic1.dest=M1) else 0; LOM2<=1when (Reg_mic1.dest=M2) else 0; LOH1<=1when (Reg_mic1.dest=H1) else 0; LOH2<=1when (Reg_mic1.dest=H2) else 0; end rtl2; Le nombre de symboles dcrits dans le type numr val_cond a du tre augment pour reprsenter le fonctionnement du PLA : PHI pour indiquer que lon ne souhaite pas tester une condition ; NVTy pour indiquer que lon souhaite tester spciquement labsence du prol VTy. Cette extension du type numr reste compatible avec lusage qui en est fait dans le chemin de donnes. Cette description VHDL doit simuler le fonctionnement associatif du PLA. La difcult provient du fait que VHDL ne connat que des tableaux adresss et non des matrices dans lesquelles les lignes seraient directement slectionnables par un vecteur. Le temps de fonctionnement du PLA est simul laide dune clause after qui simule la disponibilit des rsultats vers la n de la phase PH2S (mais ne garantit pas le maintien des entres !).

Dunod La photocopie non autorise est un dlit.

230

9 Conception algorithmique des circuits VLSI complexes

9.8

AUTRES ORGANISATIONS POSSIBLES DE SQUENCEUR

Il existe plusieurs autres techniques pour raliser le squenceur dun circuit complexe. En particulier, il peut tre cbl ou microprogramm. 9.8.1 Squenceurs microprogramms La microprogrammation est une technique ancienne qui fut largement utilise dans la conception des processeurs complexes de 1965 1985. Elle fut invente par M.V. Wilkes en 1953 [WIL53]. Dans ce cas, lalgorithme qui dcrit le comportement de la machine est inscrit dans une mmoire ROM sous la forme dune suite de microinstructions appel microprogramme (gure 9.30). Les microinstructions contiennent la description des commandes envoyer, chaque tape, au chemin de donnes ainsi que la commande dun mcanisme denchanement qui prend en compte le rsultat des tests. Cette technique permet la prise en compte dalgorithmes complexes pouvant avoir plusieurs milliers dtapes. Elle permet aussi une certaine indpendance entre la structure du squenceur et lalgorithme, ce qui autorise certaines modications aprs coup.

Figure 9.30

Squenceur microprogramm de lIntel 38S

a) Principe des squenceurs microprogramms

Les squenceurs microprogramms sont gnralement des machines de Moore (gure 9.31). Chaque mot de la ROM constitue une microinstruction qui est constitue dune suite de champs qui dnissent les actions quelle dclenche lorsquelle est adresse. Lenchanement squentiel des microinstructions se fait de manire adresse en donnant ladresse de la microinstruction suivante dans un champ particulier. Les enchanements conditionnels se font en remplaant certains bits de cette adresse par des bits de test. Ce remplacement est dni par un ou plusieurs champs particuliers

9.8

Autres organisations possibles de squenceur

231

ROM (microinstructions)

tat tat courant

horloges

R mic
micro-adresse

lignes de commande

tests

remplacement bits

conditions

Figure 9.31

Principe dun squenceur microprogramm

appels champs de test. Cette technique permet des enchanements rapides, mais impose des contraintes sur limplmentation dans la ROM des microinstructions cibles de ces branchements. Lenchanement adress des microinstructions squentielles permet de rcuprer les trous laisss par limplmentation, plus rigide, des branchements conditionnels. Il existe des squenceurs microprogramms qui sont des machines de Mealy. Dans ce cas, certains champs ne commandent pas directement des actions mais des blocs de circuiterie qui gnrent des commandes en fonction du contenu de ces champs mais aussi dentres (conditions, codes, adresses). La technique de la microprogrammation permet aussi deffectuer des dcodages complexes, comme par exemple celui des codes instruction et utilisant directement ces codes pour adresser la ROM et slectionner directement les squences de microprogramme appropries.
b) Squenceur microprogramm pour la montre
Dunod La photocopie non autorise est un dlit.

Le squencement de la montre se prte bien la ralisation dun squenceur microprogramm, bien quil soit trs simple (gure 9.32). Lorganigramme est le mme que pour le squenceur base de PLA. Il contient 29 microinstructions dont lenchanement se fait soit de manire inconditionnelle, soit de manire conditionnelle par des branchements 2 ou 3 voies. Ces branchements conditionnels sont les lments les plus difciles disposer dans la ROM. Pour cela, ils sont traits au dbut de la phase dimplmentation du microprogramme dans la ROM. Ils sont implments par taille dcroissante : celui de 3 voies, puis ceux de 2 voies et enn lenchanement squentiel inconditionnel. Il faut aussi tenir compte de limplantation de la premire microinstruction ladresse 0. Nous ferons lhypothse que le squencement du squenceur et du chemin de donnes est successif quatre phases.

232

9 Conception algorithmique des circuits VLSI complexes

=x"A" H1 <= Incr(x"F") H2 <= Incr(H2)

S1 <= Incr(S1) =x"A" S1 <= Incr(x"F") S2 <= Incr(S2) =x"6" S2 <= Incr(x"F") M1 <= Incr(M1) =x"A" M1 <= Incr(x"F") M2 <= Incr(M2) =x"6" M2 <= Incr(x"F") H1 <= Incr(H1) =x"4" rien <= Incr(H2) =x"3" H1 <= Incr(x"F") H2 <= Incr(x"F")

x"A" null null x"6" null null x"A" null null x"6" null null x"A", x"4" null x"3" null null null null null null

Figure 9.32

Un fonctionnement superpos aurait t possible, au prix dune adaptation de lalgorithme. Branchement 3 voies : celui-ci se fera en remplaant les deux bits dadresse de poids faible par les deux conditions X4 et XA.
X4 0 0 1 1 XA 0 1 0 1 => Null => H1<= Incr(x"F") => Rien <= Incr(H2) impossible

Ce branchement doit concerner un groupe de trois adresses conscutives se terminant par 00, 01 et 10. Comme ladresse 0 est dj occupe, le trio suivant est 4, 5 et 6. Nous choisissons de mettre XA en remplacement du bit de poids faible car cette condition est aussi utilise par un branchement 2 voies. Branchements 2 voies : ces cinq branchements conditionnels se font en remplaant le bit de poids faible dadresse par XA, X6 ou X3. Les couples dadresses doivent se terminer par 0 et 1 (gure 9.33). Les couples possibles sont : Pour XA : (2, 3) et (10, 11) ; Pour X6 : (8, 9) et (12, 13) ; Pour X3 : (14, 15).

9.8

Autres organisations possibles de squenceur

233

(0) S1 <= Incr(S1) =x"A" (3) S1 <= Incr(x"F") (1) S2 <= Incr(S2) =x"6" (9) S2 <= Incr(x"F") (16) M1 <= Incr(M1) =x"A" (11) M1 <= Incr(x"F") (19) M2 <= Incr(M2) =x"6" (13) M2 <= Incr(x"F") (21) H1 <= Incr(H1) =x"A" =x"4" (5) H1 <= Incr(x"F") (6) rien <= Incr(H2) (22) H2 <= Incr(H2) =x"3" (15) H1 <= Incr(x"F") (24) H2 <= Incr(x"F")

x"A" nop (2) nop (7) x"6" nop (8) nop (17) x"A" nop (10) nop (18) x"6" nop (12) nop (20) x"A", x"4" nop (4) x"3" nop (14) nop (23) nop (25) nop (26) nop (27) (28) nop

Figure 9.33

Micro-adresses affectes aux microinstructions

Format des microinstructions : celui-ci doit prciser la nature des actions commandes et lenchanement des microinstructions. Plusieurs techniques peuvent tre utilises pour prciser cet enchanement : la plus conomique consiste utiliser un champ pour donner les 3 bits de poids fort de ladresse de la microinstruction dsigne et deux autres champs pour spcier la nature des 2 bits de poids faible. Le bit de poids le plus faible peut prendre les valeurs (0, 1, X3, X6, XA), ce qui est dtermin par un champ T1 de 3 bits. Le bit prcdent peut prendre les valeurs (0, 1, X4), ce qui est dtermin par un champ T2 de 2 bits (gure 9.34).
Dunod La photocopie non autorise est un dlit.

dest. source

pF

T2

T1

adresse suivante
Figure 9.34 Format des microinstructions

234

9 Conception algorithmique des circuits VLSI complexes

TABLEAU 9.2

IMPLANTATION DU MICROPROGRAMME DANS LA ROM


add. suivante

add. impl.

dest.

source poids forts T2 1 0 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 X4 1 0 0 1 1 0 0 T1 XA X6 1 1 0 0 X3 0 1 0 0 1 0 1 1 0 XA 0 0 X6 0 XA 1 1 1 0 1 0 0

00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100

S1 S2 rien S1 rien H1 rien rien rien S2 rien M1 rien M2 rien H1 M1 rien rien M2 rien H1 H2 rien H2 rien rien rien rien

S1 S2 XF XF XF XF H2 XF XF XF XF XF XF XF XF XF M1 XF XF M2 XF H1 H2 XF XF XF XF XF XF

000 010 001 000 011 101 011 010 100 100 100 100 101 101 101 110 010 010 011 011 001 001 101 110 110 110 110 111 000

9.8.2 Squenceurs cbls Il sagit de cbler avec des portes les fonctions f et g de lautomate qui constitue le squenceur (gure 9.36). Cette technique produit des squenceurs trs rapides mais non modiables. Elle nest applicable quau cas des squenceurs dont lalgorithme est assez simple. Ce type de squenceur est beaucoup plus rapide de ceux constitus de PLA.

9.8

Autres organisations possibles de squenceur

235

1S 2CD

ROM
29 mots de 14 bits

ad

2S 1CD

ad pF dest. 3 3 source

T2

T1

S1 S2 M1 M2 H1 K2

XF S1 S2 M1 M2 H1 K2

X4

0 XA X6 X3 1 0

Figure 9.35

Schma du squenceur microprogramm de la montre

Dunod La photocopie non autorise est un dlit.

Figure 9.36

Squenceur cbl du Motorola MC 6800

236

9 Conception algorithmique des circuits VLSI complexes

Un faon efcace de raliser des squenceurs cbls comme celui de la montre est de cbler son algorithme sous la forme dun organigramme cbl laide de couples de latches constituant des bascules D matres-esclaves.
a) Squenceur cbl pour la montre

Le squencement de la montre se prte bien la ralisation dun squenceur cbl optimis. Pour cela, nous remarquerons que ce squencement est constitu dune boucle de 16 tapes (gure 9.37). Les diffrentes voies possibles de lalgorithme sont au nombre de 3 : La voie normale qui consiste incrmenter les secondes, les minutes et les heures. La voie ineffective qui consiste en une chane dinstructions null. Une petite squence spciale pour traiter lune des branches du cas particulier du passage des 24 heures. Le squenceur sera donc ralis partir : dun gnrateur dinstants constitu dun registre dcalage de 16 tapes. Celui-ci excite successivement des lignes qui reprsentent les 16 instants du cycle. Le signal RST a pour effet de positionner ce gnrateur sur ltape T1 ; de trois bascules de mode (asynchrones) qui reprsentent le fait dtre dans lune des 3 voies (normale, spciale, ineffective) ; de portes qui gnrent les commandes et les changements de mode par la slection des combinaisons entre les modes et les instants.
Gnrateur d'instants
<= T1 <= T2 <= T3 <= T4 <= T5 <= T6 <= T7 <= T8 <= T9 <= T10 <= T11 <= T12 <= T13 <= T14 <= T15 <= T16

Squence normale

Squence spciale
=x"A" H1 <= Incr(x"F") H2 <= Incr(H2)

S1 <= Incr(S1) =x"A" S1 <= Incr(x"F") S2 <= Incr(S2) =x"6" S2 <= Incr(x"F") M1 <= Incr(M1) =x"A" M1 <= Incr(x"F") M2 <= Incr(M2) =x"6" Incr(x"F "F") M2 <= Incr(x H1 <= Incr(H1) =x"4" rien <= Incr(H2) =x"3" H1 <= Incr(x"F") H2 <= Incr(x"F")

x"A" x"6"

Squence ineffective
nop nop nop nop

x"A" nop nop x"6" nop nop x"A", x"4" nop x"3" nop nop nop nop nop nop

Figure 9.37

9.8

Autres organisations possibles de squenceur

237

Lutilisation de bascules asynchrones est ici possible, compte tenu de la lenteur du circuit. Pour un circuit rapide, il faudrait utiliser des bascules synchrones (gure 9.38).

NOR

SPE

INE

Gnrateur d'instants

T1 T2

Rseau combinatoire

T16

SELS1 SELS2

SELF

Clk

Rst

Commandes vers le chemin de donnes

Figure 9.38

Organisation du squenceur cbl de la montre

b) Description VHDL du squenceur cbl de la montre

Dunod La photocopie non autorise est un dlit.

La description VHDL ci-dessous concerne un squenceur cbl pour la montre, lexclusion du gnrateur dinstants. Elle dcrit les conditions dactivation et de dsactivation des bascules de mode, ainsi que la gnration des signaux de commande du chemin de donnes. Loutil de synthse utilis ne permettait pas de dcrire des bascules comme des ls isols. Il a donc fallu les dcrire comme des signaux explicitement reboucls. entity sequenceur is port( T :in bit_vector(1 to 16); -- sorties du generateur dinstants C1, -- X"3" C2, -- X"4" C3, -- X"6" C4 :in bit; -- X"A" SELS1,SELS2,SELM1,SELM2,SELH1,SELH2,SELF :out bit; -- lignes de selection LOS1,LOS2,LOM1,LOM2,LOH1,LOH2 :out bit ); -- lignes de chargement end sequenceur;

238

9 Conception algorithmique des circuits VLSI complexes

architecture RTL of sequenceur is signal Basc_Norm, Basc_Spe, Basc_Inef :bit; -- bascules RS de mode begin -- Commande des bascules Basc_Norm <= 1when T(1)=1 else 0when (C4=1 and T(10)=1) or (C4=0 and (T(2)=1 or T(6)=1)) or (C3=0 and (T(4)=1 or T(8)=1)) or ((C4=0 and C2=0) and T(10)=1) or (C1=0 and T(11)=1) or T(13)=1 else Basc_Norm; Basc_Spe <= 1when C4=1 and T(10)=1else 0 when T(12)=1 or T(1)=1 -- T(1) pour le reset else Basc_Spe; Basc_Inef <= 1when (C4=0 and (T(2)=1 or T(6)=1)) or (C3=0 and (T(4)=1 or T(8)=1)) or ((C4=0 and C2=0) and T(10)=1) or (C1=0 and T(11)=1) or T(13)=1 or (T(12)=1 and Basc_Spe=1) else 0 when T(1)=1 else Basc_Inef; -- Positionnement des lignes de sortie SELS1 <= 1 when T(1)=1 else 0; SELS2 <= 1 when T(3)=1 and Basc_Norm=1 else 0; SELM1 <= 1 when T(5)=1 and Basc_Norm=1 else 0; SELM2 <= 1 when T(7)=1 and Basc_Norm=1 else 0; SELH1 <= 1 when T(9)=1 and Basc_Norm=1 else 0; SELH2 <= 1 when (T(10)=1 and Basc_Norm=1) or (T(11)=1 and Basc_Spe=1) else 0; SELF <= 1 when T(2)=1 or T(4)=1 or T(6)=1 or T(8)=1 or Basc_Inef=1 or (T(10)=1 and Basc_Spe=1) or ((T(11)=1 or T(12)=1) and Basc_Norm=1) else 0; LOS1 <= 1 when T(1)=1 or (T(2)=1 and Basc_Norm=1) else 0; LOS2 <= 1 when (T(3)=1 or T(4)=1) and Basc_Norm=1 else 0; LOM1 <= 1 when (T(5)=1 or T(6)=1) and Basc_Norm=1 else 0; LOM2 <= 1 when (T(7)=1 or T(8)=1) and Basc_Norm=1 else 0; LOH1 <= 1 when (T(9)=1 and Basc_Norm=1) or (T(10)=1 and Basc_Spe=1) or (T(11)=1 and Basc_Norm=1) else 0; LOH2 <= 1 when (T(11)=1 and Basc_Spe=1) or (T(12)=1 and Basc_Norm=1) else 0; end RTL;
c) Schma du squenceur cbl de la montre

Le schma ci-contre du squenceur a t obtenu laide dun outil de synthse. Les rebouclages qui constituent les trois bascules sont en gras. Le gnrateur de temps, qui est un simple registre dcalage, nest pas reprsent (gure 9.39). Il convient de noter la simplicit de ce schma qui le rend trs comptitif vis--vis dun PLA.

9.8

Autres organisations possibles de squenceur

239

X3 X4 X6 XA T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16

SELS1 LOS1 SELS2 LOS2 SELM1 LOM1 SELM2 LOM2 SELH1 LOH1 SELH2 LOH2 SELF

Figure 9.39

Schma du squenceur cbl de la montre (compil)

Dunod La photocopie non autorise est un dlit.

Ce type de squenceur permet une grande optimisation et un fonctionnement rapide puisque ses changements dtat rsultent de lvolution de quelques bascules. Toutefois, il peut apparatre des portes complexes pour regrouper les commandes gnres par les diffrentes tapes destination du chemin de donne. Les portes ayant un trs grand nombre dentres sont difciles raliser en CMOS classique. Des solutions dynamiques peuvent tre utilises, mais elles compliquent le test et demandent une vitesse de fonctionnement minimale, certainement non compatible avec la montre. Des portes en pseudo NMOS peuvent aussi tre utilises, mais elles augmentent la consommation. Le squencement doit tre tudi dans le dtail pour permettre les changements de mode sans gnrer de commandes parasites. Nous voyons quil permet un fonctionnement successif du chemin de donnes et du squenceur. La grande rapidit du squenceur permet toutefois de rester biphas. Linuence des parasites en dbut de cycle sur les commandes de slection devra tre soigneusement tudie et ventuellement limine par un formatage adquat de ces signaux (gure 9.40).

240

9 Conception algorithmique des circuits VLSI complexes

Changement de mode du squenceur

Nouvel tat du gnrateur d'instants

Commandes (brutes) Nouvelles conditions Registre micro-matre transparent

Cycle suivant

Conditions

Commandes de slection

Commandes de chargement

CHEMIN DE DONNEE

Figure 9.40

Fonctionnement du squenceur cbl

Ce type de squenceur peut tre tendu des squences de plusieurs dures possibles en introduisant des aiguillages dans le gnrateur dinstants. Il convient pour des algorithmes de faible complexit. Il existe plusieurs outils qui permettent sa synthse automatique partir de la description du comportement.

9.9

DESSIN DES SQUENCEURS

Contrairement au chemin de donnes, il nexiste pas de technique spcique pour raliser le dessin dun squenceur. Celui-ci ne constitue pas vraiment un bloc de dessin mais plutt lassemblage de modules spars tels que des ROM, des PLA, des dcodeurs et de la logique non structure. Le dessin dun squenceur est obtenu par lutilisation des techniques classiques de placement et dinterconnexion des diffrents blocs qui le constituent. La forme de certains blocs pourra tre optimise pour faciliter leur interconnexion. Par exemple, un PLA peut tre dessin de manire rpartir ses sorties sur son ct. Ceci permet dadapter la position de ces sorties la topologie des blocs auxquels elles doivent tre connects (gure 9.41). Une optimisation supplmentaire consiste enlever les parties de la matrice ET qui ne contiennent que des (cest--dire aucun transistor).

9.9

Dessin des squenceurs

241

ET Etat courant Conditions OU

Chemin de donnes

Figure 9.41

PLA sorties latrales

BIBLIOGRAPHIE
[WIL53] M.V. Wilkes, J.B. Stringer, Microprogramming and the design of the Control Circuits in an Electronic Digital Computer, Proc. Cambridge Phil. Soc. pt 2, 49, pp. 30-38, Manchester, 1953.

Dunod La photocopie non autorise est un dlit.

Chapitre 10

10

Mcanismes dhorlogerie

10.1 MCANISMES CLASSIQUES DHORLOGERIE


La performance et le bon fonctionnement des circuits intgrs complexes sont souvent lis la qualit de leurs mcanismes dhorlogerie. Un mcanisme dhorlogerie classique comprend (gure 10.1) : Un oscillateur, souvent pilot par un quartz ou un rsonateur pizo-lectrique externe (gure 10.2). Les quartz et les rsonateurs permettent de raliser des oscillateurs jusque vers 150 MHz. Loscillateur est souvent ralis par un couple dinverseurs polariss dans leurs zones de conduction Vcc/2 et formant un amplicateur. Le quartz, ou le rsonateur, reboucle ces inverseurs, provoquant une contre-raction positive pour sa frquence de rsonance. Le gain de lamplicateur form par le couple dinverseur doit tre sufsamment important pour que loscillation dmarre facilement, mais pas trop pour maintenir un signal sinusodal et viter lapparition dharmoniques. Certains circuits fonctionnent avec un oscillateur externe. Un circuit de formatage, gnralement constitu par un inverseur qui se comporte comme un amplicateur de gain important. Celui-ci amplie et crte le signal sinusodal pour en faire un signal logique.
quartz oscillateur %2 diviseur par 2 gnrateur des phases

Dunod La photocopie non autorise est un dlit.

1f 0 2

amplificateur amplificateur

Figure 10.1

Mcanisme classique dhorlogerie

244

10 Mcanismes dhorlogerie

F
(sinusodale!)

Figure 10.2 Oscillateur quartz ( gauche) ; sortie de loscillateur et seuillage par lamplicateur ( droite)

Un diviseur par 2 fournit un signal carr de rapport cyclique gal 1. Ce qui signie que la frquence de lhorloge interne au circuit est gnralement la moiti de celle du quartz. Un gnrateur de phases fabrique ces signaux en respectant les temps de nonrecouvrement. Les amplicateurs de sortie du gnrateur de phase sont reboucls pour viter tout recouvrement des phases (gure 10.3). Linstallation de retards (couples dinverseurs) dans ces rebouclages permet dlargir les temps de non-recouvrement.

2
Figure 10.3 Gnrateur de phases biphas

Si le nombre de phases est suprieur 2, le gnrateur de phases est gnralement bti autour dun compteur de Johnson trs facile dcoder (gure 10.4). Dans les circuits de petite taille, la distribution des signaux dhorloges se fait partir dun ensemble damplicateurs uniques et centraliss de manire viter dintroduire des retards entre les phases distribues. Ces amplicateurs dhorloge sont de taille importante et contribuent de manire signicative la consommation globale du circuit.

10.2 HORLOGERIE DES CIRCUITS RAPIDES ET COMPLEXES


Laugmentation de la puissance de calcul des microprocesseurs suit depuis trente ans une loi exponentielle, appele loi de Moore, sans aucune marque de chissement.

10.2

Horlogerie des circuits rapides et complexes

245

quartz oscillateur oscil lateur

Gn bi-phas

1 2

compteur (Johnson)

1 2 3
Figure 10.4 Gnrateur de phases

Plus des 2/3 de lvolution de la puissance de calcul de ces machines provient de laccroissement rgulier de leur frquence dhorloge [GES01]. La frquence de ces circuits rapides atteint aujourdhui des valeurs, proches des limites des technologies utilises (gure 10.5). De telles frquences, qui se situent maintenant dans le domaine des micro-ondes, taient inimaginables il y a seulement une quinzaine dannes. Il faut toutefois remarquer que les microprocesseurs conus pour les stations de travail reprsentent une certaine forme de monstruosit dans le monde de la conception des circuits intgrs. En effet, de telles performances ne sont obtenues quau prix de la dissipation dune puissance norme (tableau 10.1) qui ncessite la ventilation force de ces circuits et bientt lutilisation dun refroidissement par liquide.
TABLEAU 10.1 CONSOMMATION DE PROCESSEURS X86
Horloge (MHz) 16 33 66 1 000 2 000 2 200 Techno (m) 1,5 1 0.7 0,18 0.18 0.13 Conso (W) 3 6 13 26 75 50

Processeur I 386 I 486 Pentium


Dunod La photocopie non autorise est un dlit.

Pentium III P4 Willamette P4 Northwood

Le dveloppement de versions basse-consommation de ces processeurs, pour les ordinateurs portables, montre quil est possible de rduire fortement leur consommation (par un facteur voisin de dix) au prix dune division de leurs performances par un facteur voisin de deux. Lindustrie a opt pour cette seconde classe de machines. Celles-ci rgnent dans les applications embarques. Il existe toutefois un march important pour la premire classe de processeurs malgr leurs inconvnients. Leur

246

10 Mcanismes dhorlogerie

d'aprs Fred Pollack, Intel


10 00

Puissance dissipe W/cm2

Cur de racteur nuclaire


1 00

PII Plaque de cuisson


10

P4 3Ghz PIII P4 1,5Ghz

P Pro Pentium I386


1

I486
1 0.7

Familles technologiques
0.5 0.35 0.25 0.18 0.13 0.1 0.07

1.5

Figure 10.5

volution de la puissance dissipe par unit de surface des processeurs Intel X86 (daprs [POL99])

volution ne peut se poursuivre quau prix de lutilisation, dans un avenir assez proche, de techniques de refroidissement complexes. Toutefois, lavenir de cette gamme de machines ne semble pas assur long terme [POL99]. Les techniques utilises pour rduire la consommation dun circuit se divisent en trois groupes complmentaires : Rduction de la frquence dhorloge une valeur normale . Ltude de la circuiterie CMOS suggre lemploi dune frquence dhorloge raisonnable qui correspond un dimensionnement normal des transistors. Cette frquence est environ moiti de celle des circuits hyper-rapides. limination de la logique non complmentaire (pseudo NMOS). Des alimentations temporaires permettent de rduire la consommation des structures matricielles (ROM, PLA). Rduction importante de la frquence dhorloge lorsque le processeur est en attente (ce qui est assez frquent !). Cette technique peut aussi sappliquer des blocs fonctionnels dont on coupe lhorloge lorsquils ne sont pas utiliss (dlestage). titre dexemple, le Mobile Intel Pentium III faible consommation dissipe moins de 1 W 500 MHz, au lieu des 26 W du Pentium III normal 1 Ghz. Il est bon de rappeler que la consommation de la circuiterie CMOS est directement lie sa frquence de fonctionnement. Toutefois, dans les circuits gants la longueur relative des lignes de communication devient telle quelles doivent tre attaques par des amplicateurs puissants si lon souhaite que la performance du circuit soit maximale. Dans ce cas, laugmentation de puissance consomme nest plus linraire relativement la frquence dhorloge, mais exponentielle.

10.2

Horlogerie des circuits rapides et complexes

247

a) Utilisation de multiplicateurs de frquence (PLL)

Lorsque la frquence interne dun circuit complexe dpasse celle quil est possible datteindre avec un oscillateur quartz, on utilise un multiplicateur de frquence. Il sagit dun systme asservissant la frquence dun oscillateur interne sur celle, plus faible, dun oscillateur quartz. De tels systmes, appels PLL (pour Phase Locked Loop) ont t introduits au dbut des annes 1990 pour lhorlogerie des microprocesseurs. Ils ont permis datteindre des frquences dhorloge de plusieurs giga-hertz. Des frquences dhorloge de lordre de 50 60 Ghz pourraient tre atteintes en 2010 pour les microprocesseurs les plus rapides. Toutefois, laugmentation de la puissance dissipe vers des limites intolrables et lorientation du march vers les machines portables a conduit les principaux fabricants de microprocesseurs limiter la frquence 3 Ghz et rechercher laugmentation des performances via celle de la complexit (structures multiprocesseurs et oprateurs spcialiss) (gure 10.6). Un PLL est constitu dune boucle dasservissement comprenant (gure 10.7) : Un oscillateur dont la frquence peut tre ajuste lectriquement (appel VCO pour Voltage Controlled Oscillator) et qui fournit la frquence dsire. Un diviseur qui divise la frquence du VCO par un coefcient N (xe).
F horloge (Mhz) 100 000

50 Ghz
Prvision Intel 24Ghz 10 000 3 Ghz 1 000 Horloge interne Horloges externes (de bus) 50 Mhz

100
Dunod La photocopie non autorise est un dlit.

10 5 Mhz

Utilisation des multiplieurs de frquence (DX n)

Date sortie prototypes 1 75 80 85 90 95 00 05 10

Figure 10.6

volution de la frquence dhorloge des processeurs Intel X86

248

10 Mcanismes dhorlogerie

f0

quartz

oscillateur f0/N

f0/N

VCO f0

Div N

Comp. phase

Boucle d'asservissement en phase filtre passe-bas

Figure 10.7

Multiplicateur de frquence PLL

Un comparateur de phase (de frquence) qui compare la frquence divise avec celle dun oscillateur quartz de rfrence. Un ltre passe-bas qui gnre la tension de commande du VCO partir de la sortie du comparateur de phase. De cette manire, la frquence de la sortie du VCO se trouve verrouille tre N fois celle de loscillateur quartz. 10.2.1 Notion de zone isochrone On appelle zone isochrone, la zone maximale dun circuit intgr que lon peut synchroniser avec un seul gnrateur dhorloge et un seul jeu damplicateurs (gure 10.8). Au-del de cette zone, les dphasages entre les horloges et entre les signaux ne permettent plus de synchroniser la circuiterie. Un circuit complexe sera donc constitu de plusieurs zones isochrones ( titre dexemple, le microprocesseur Intel Pentium 4 est constitu de 47 zones isochrones [KUR01]). Les zones isochrones ont souvent un sens fonctionnel, cest--dire quelles correspondent des fonctions bien identies. Cela prsente deux avantages :

horloge initiale

Amplificateur d'horloge
Figure 10.8 Zone isochrone

10.2

Horlogerie des circuits rapides et complexes

249

Les zones fonctionnelles correspondent gnralement des maxima de connexions internes, ce qui minimise les connexions inter-zones isochrones. Elles constituent des blocs rutilisables pour la conception dautres circuits. Chacune des zones isochrones dun circuit complexe sera excite par son propre gnrateur dhorloge. Le dialogue entre les zones isochrones nest possible que si ces gnrateurs respectent une relation de phase prcise entre eux (gure 10.9).

zones fonctionnelles isochrones

Figure 10.9

Communication entre les zones isochrones dun circuit complexe

Dunod La photocopie non autorise est un dlit.

La communication entre deux zones isochrones voisine consiste mettre un signal par une zone isochrone et le charger dans un registre de lautre (gure 10.10). On remarque que si les horloges de ces deux zones isochrones sont en phase, les conditions temporelles cette communication sont exactement les mmes que celles qui rgissent le transfert dun signal dans une zone isochrone, bien que la gnration et la rception du signal se fassent avec des horloges diffrentes. Globalement, ce genre de circuit continue satisfaire les conditions de synchronisme pour des communications faible distance. Seules, celles grande distance doivent faire lobjet de mesures particulires, par exemple en utilisant plusieurs priodes dhorloge pour un transfert. 10.2.2 Distribution de lhorloge Pour respecter la condition prcdente, il importe que les gnrateurs dhorloge des zones isochrones soient exactement en phase. Pour cela, il faut que la distribution de lhorloge partir de lhorloge principale vers les gnrateurs des zones isochrones respecte cette condition (gure 10.11). On parlera alors de distribution quilibre de lhorloge. La gnration et la distribution de lhorloge occupent une place importante dans les circuits rapides (jusqu 30 % de la surface) et sont responsables dune grande partie

250

10 Mcanismes dhorlogerie

T1 H1 T11 H2

T2 cart de phase dans la distribution de l'horloge

T22

R1

T3

cart de phase de l'horloge dans la zone isochrone bascule

R2

zone isochrone 1
Figure 10.10

temps de propagation du signal

zone isochrone 2

Transfert de donnes entre deux zones isochrones voisines

de leur consommation (40 70 % de la puissance dissipe). Plusieurs techniques permettent de raliser une distribution quilibre de lhorloge [FRI01] : Des plans ou des grilles de distribution. Cette technique, utilise dans le microprocesseur Alpha 21 264 prsente linconvnient de prsenter une capacit importante, source de consommation importante [BAI98]. Elle a ensuite t utilise pour distribuer lhorloge au niveau des zones isochrones [RUS00]. Une arborescence damplicateurs. Une distribution dite en H (gure 10.12). Cette technique de distribution arborescente, maintenant universellement adopte, consiste en une succession de distributions binaires assurant que les diffrents chemins de distribution de lhorloge sont quivalents (lorsque les zones isochrones sont des carrs identiques). Comme la forme et la taille des zones isochrones ne sont pas identiques, lquilibrage parfait de la distribution dhorloge est impossible. Lutilisation de frquences dhorloge trs leves (plusieurs giga-hertz) rend ces carts inacceptables. Pour compenser les drives rsiduelles, il est possible de munir chaque branche de larbre de distribution de son propre circuit de dphasage programmable (gure 10.13). Le microprocesseur Pentium 4 semble utiliser une telle technique [KUR01]. Au moment du test du circuit, des comparateurs de phase semblent fournir la mesure du dphasage relatifs des horloges des diffrentes zones isochrones. Des dphaseurs programmables seraient alors positionns pour ramener les dphasages tre infrieurs 50 ps. Une telle technique prsente linconvnient que lorsque le circuit vieillit, ses caractristiques technologiques voluent et les rglages initiaux peuvent ne plus convenir. Une technique encore plus labore, appele multi-PLL, consiste utiliser les compa-

Dunod La photocopie non autorise est un dlit.

10.2

1 2
HL HL HL

horlogerie d'un horlogerie isochrone bloc isochrone

Zone isochrone Horlogerie locale Distribution quilibre HL HM HL Horlogerie centrale

Ampli principaux

1 2

Horlogerie des circuits rapides et complexes

gnrateur principal d'horloge

1
HL HL

HL

Figure 10.11

Distribution de lhorloge aux zones isochrones

251

252

10 Mcanismes dhorlogerie

Figure 10.12

Distribution de lhorloge laide dun rseau en H

f0
dphaseur programmable zone isochrone

fex
multiplieur PLL

f0

arbre de distribution

Figure 10.13

Resynchronisation de lhorloge distribue au niveau de chaque zone isochrone

rateurs de phase et les dphaseurs pour asservir continuellement les phases des horloges des zones isochrones pour quelles restent en phase [SAI01, SWA01]. Un tel asservissement global est toutefois difcile mettre en uvre (gure 10.14). Comme la distribution dune horloge reprsente lun des facteurs principaux de la puissance dissipe par les circuits de haute performance, il est possible de ne distribuer quune frquence, plus basse, de synchronisation qui sera multiplie par chaque zone

10.3

Vers le futur

253

f0
dphaseur programmable zone isochrone

f0 fex
multiplieur PLL

f0

dphaseur programmable

zone isochrone isochrone

arbre de distribution

Figure 10.14

Asservissement des phases des horloges entre les zones isochrones

isochrone. Linterconnexion de ces multiplieurs permettra de raliser leur asservissement en phase. Lnergie dissipe par le rseau de distribution est dnie par la prcision que lon souhaite obtenir pour chaque transition. En gardant la mme prcision, la diminution de la frquence transmise entranera une diminution correspondante de la puissance dissipe par le rseau de distribution [ANC03] (gure 10.15).

10.3 VERS LE FUTUR


Lvolution de la vitesse dhorloge des microprocesseurs est un phnomne impressionnant qui bouleverse tous les avis dexpert [FIS98]. Il pourrait encore se poursuivre au moins jusqu 2010 par lutilisation de frquences qui sont encore impensables pour la synchronisation des ordinateurs. Lutilisation de telles frquences ferait intervenir des phnomnes de propagation du type de ceux que lon rencontre dans le domaine des micro-ondes. Les rseaux de distribution dhorloge devraient alors faire appel des techniques trs particulires pour permettre un fonctionnement synchronis de ces machines. Toutefois, lvolution de la puissance dissipe vers des valeurs inacceptables et le basculement du march vers le matriel portable, conduit une limitation (actuelle) de la frquence dhorloge aux environs de 3 Ghz, au prot des structures traitement multiples. Lorsque les puissances dissipes redeviendront raisonnables, il nest pas exclu que la course la frquence dhorloge reprenne.

Dunod La photocopie non autorise est un dlit.

254

10 Mcanismes dhorlogerie

f0
multiplieur PLL zone isochrone

f0 fex
multiplieur PLL

f0/N

multiplieur PLL

zone isochrone

arbre de distribution

Figure 10.15

Rduction de la puissance dissipe par la distribution dune frquence dhorloge rduite

f0
PLL zone isochrone

f0
PLL zone isochrone

fex
PLL

f0
zone isochrone

f0
PLL zone isochrone

f0
PLL zone isochrone

Figure 10.16

Multi-PLL

10.3

Vers le futur

255

La distribution dune horloge centralise pourrait cder le pas un rseau de PLL interconnects gnrant des horloges locales toutes en phase. Seul, lun de ces PLL reoit une horloge de rfrence pour xer la frquence de lensemble. De tels rseaux sont appels des multi-PLL [GIL95] (gure 10.16).

BIBLIOGRAPHIE
[ANC82] F. Anceau, A synchroneous approach for clocking VLSI systems, IEEE journal of Solid State Circuits, vol. SC-17, n 1, Feb. 1982. [GIL95] J. Nguyen Gill, A. Pratt, Distributed Synchronous Clocking, IEEE transaction on parallel and distributed systems, Vol. 6, n 3, march 1995. [HAE98] V. von Kaenel, D. Aebischer, R. van Dongen and C. Piguet, A 600 Mhz CMOS PLL Microprocessor Clock Generator with a 1.2 Ghz VCO, ISSCC98 Conference, session 25, Feb. 1998. [FIS98] P.D. Fisher and R. Nesbill, The Test of Time, Circuits & Devices, March 1998. [BAI98] D.W. Bailey and Bradley J. Benschneider, Clocking Desing and Analysis for a 600-Mhz Alpha Microprocessor, IEEE journal of Solid State Circuits, vol. 33, n 11, Nov. 1998. [POL99] F. Pollack, New Microarchitectures Challenges in the Coming Generations of CMOS Process Technologies, Micro32, 1999. [BEN00] B.J. Benschneider et al., A 1Ghz Alpha Microprocessor, ISSCC2000 Conference, session 5, Feb. 2000. [RUS00] S. Rusu and S. Tam, Clock Generation and Distribution for the First IA-64 Microprocessor, ISSCC2000 Conference, session 10, Feb. 2000. [GUT00] V. Gutnick, Active Ghz Clock Network Using Distributed PLLs, IEEE journal of Solid State Circuits, vol. 35, n 11, Nov. 2000. [GES01] P.P. Geslinger, Microprocessors for the New Millennium : Challenges, Opportunities, and the New Frontiers, ISSCC2001 Conference, session 1, Feb. 2001. [FRI01] E.G. Friedman, Clock Distribution Network in Synchronous Digital Integrated Circuits, Proceeding of the IEEE, vol. 89, n 5 May, 2001. [RES01] P.J. Restle et al., A Clock Distribution Network for Microprocessors, IEEE journal of Solid State Circuits, vol. 36, n 5, May 2001. [SAI01] M. Saint-Laurent and M. Swaminathan, A Multi-PLL Clock Distribution Architecture for Gigascale Integration, IEEE Computer Society Workshop VLSI 2001, May 2001. [SWA01] M. Saint-Laurent, M. Swaminathan and James D. Meindl, On the Micro-Architectural Impact of Clock Distribution Using Multiple PLLs, ICCD 2001 Conference, Sept. 2001. [KUR01] N.A. Kurd et al., A Multigigahertz Clocking Scheme for the Pentium 4 Microprocessor, IEEE Journal of Solid-State Circuits, vol. 36, n 11, Nov. 2001. [ANC03] F. Anceau, Une technique de rduction de la puissance dissipe par lhorlogerie des circuits complexes rapides, 4es journes dtude Faible Tension Faible Consommation, Paris, 16 mai 2003.

Dunod La photocopie non autorise est un dlit.

Chapitre 11

11

Outils et mthodes de conception des circuits intgrs complexes

11.1 CONTEXTE
La conception de circuits intgrs complexes est une activit en plein dveloppement. Elle est pratique chez : les fabricants de circuits intgrs (ST Microelectronics, Philips, Inneon, Atmel, Intel, Texas, Freescale.) pour : les circuits de leurs catalogues respectifs, des circuits spciques commands par des entreprises spcialises dans la conception de systmes (tlcom, militaires, arospatial, grand public, informatique) ; les grands fabricants de systmes qui conoivent des circuits spciques pour leurs quipements ; de petites entreprises qui vendent des circuits trs spcialiss (par exemple, Transmeta) quils conoivent mais quils font fabriquer chez des fondeurs (entreprises qui ne se chargent que de la ralisation des circuits). La conception de circuits intgrs se divise en deux grands domaines : La conception automatise de circuits, encore appele la compilation de silicium. Dans cette approche, le travail de conception se restreint crire une spcication du circuit (en VHDL), la vrier, puis surveiller le travail des outils de conception automatique qui fournissent le dessin des masques. Ce type de conception de circuit intgrs se prsente comme une volution technologique de la conception des cartes lectroniques dont elle reprend la mme approche mthodologique

Dunod La photocopie non autorise est un dlit.

258

11 Outils et mthodes de conception des circuits intgrs complexes

(approche monophase, bibliothque de portes, peu ou pas de prise en compte des problmes topologiques). Le travail de conception se trouve fortement allg, mais les circuits rsultants sont faiblement optimiss. Ces approches sont rserves aux circuits produits en faible srie (moins dun million dexemplaires par an). La conception manuelle au niveau des masques, encore appele custom (ou full custom). Dans cette approche, le travail de conception consiste obtenir des circuits trs optimiss en exploitant au maximum toutes les spcicits de la circuiterie VLSI. Cette approche est rserve aux circuits produits en trs grande srie (par exemple les microprocesseurs) ou ceux qui doivent tre particulirement optimiss (en surface ou en vitesse). La conception dun circuit de ce type est beaucoup plus longue et complexe que celle dun circuit conu automatiquement, mais les performances obtenues sont plus importantes, et la surface de silicium occupe plus faible. Toutefois, pour quand mme rduire le cot de conception des circuits complexes, certains blocs des circuits custom sont raliss avec des outils automatiques.

11.2 LA MATRISE DES COTS DE CONCEPTION


Laugmentation rgulire de la taille des circuits intgrs entrane naturellement une augmentation du cot de leur conception (gure 11.1).
Nb Tr
100 000 000

10 000 000

Pentium 4 Celeron PPC620 Pentium II PPC601 Pentium-Pro Pentium MC68040 I486


INTEL

1 000 000

MC68020
100 000

I386 I286

MOTO / IBM

MC 68000 I8086
10 000

MC680 0 I8008 I4004


1971 1976 1981 1986 1991 1996 2001

1 000 1966

Figure 11.1

volution de la complexit des microprocesseurs

Pour viter que celle-ci devienne prohibitive, les entreprises doivent continuellement innover en terme de mthodologie. Lconomie de la conception des circuits intgrs est dailleurs trs comparable celle des logiciels. Des solutions trs voisines sont utilises pour matriser lination des cots et des dlais dans ces deux domaines.

11.3

Circuits compils

259

Dunod La photocopie non autorise est un dlit.

La conception manuelle dun circuit au niveau des transistors cote environ une heure de travail par transistor dessin en incluant la spcication, la vrication et la documentation. Ce cot devient rapidement prohibitif lorsque la complexit atteint quelques centaines de milliers de transistors, dautant plus que la relation cot/complexit nest pas linaire. En effet, le cot de la conception tend augmenter avec la complexit des circuits car sa gestion possde elle-mme un cot. Le meilleur moyen de rduire le cot de conception est daccrotre la rutilisation de blocs dj conus. Cela se fait la foi lintrieur dun circuit et entre des circuits diffrents. Nous verrons que les mthodes modernes de conception sappuient sur la constitution de bibliothques de blocs prconus, vris et documents. Un march de tels blocs est dailleurs en train de se dvelopper sous le nom dIP (pour Intellectual property). Il faut galement tenir compte dun facteur spcique au monde des circuits intgrs qui est une grande variabilit de la technologie. Celle-ci apparat la fois chez chaque fondeur qui fait continuellement voluer sa technologie pour rester comptitif, et entre les fondeurs qui ne disposent pas, un instant donn, de technologies compltement compatibles entre elles. Il est donc ncessaire de dvelopper des outils et des mthodes de conception qui permettent de porter un circuit, ou simplement des blocs, dune technologie une autre sans trop defforts. Les techniques de conception automatique, que nous allons voquer, se sont largement dveloppes en rponse ces problmes. Les techniques, et les cots de conceptions associs, se sont scinds en fonction de limportance du march vis. Par exemple, les microprocesseurs, qui sont la fois des circuits trs complexes et qui doivent aussi tre trs optimiss en performance et en taille, sont destins un vaste march de plusieurs dizaines de millions dunits par an. titre dexemple, la conception du microprocesseur Itanium dIntel (25 Mtr) aurait dur 5 ans et aurait cot 4 500 personnes annes. La majorit des autres circuits trs complexes sont des circuits ddis des applications spciques (GSM, GPS, photographie-cinma, priphrie dordinateurs). Leur march est numriquement beaucoup plus faible et leurs contraintes doptimisation ne sont pas aussi importantes. Toutefois, le cot de conception de ces circuits doit rester de lordre de quelques personnes annes. Ils doivent, en plus, tre conu trs rapidement pour sadapter aux contraintes commerciales qui psent sur ce genre de produits. Les mthodes de conception de ces deux domaines seront donc trs diffrentes, bien que des blocs issus de la premire catgorie puissent tre rutiliss dans la seconde.

11.3 CIRCUITS COMPILS


Le point de dpart dun processus de conception automatique consiste en lcriture dune spcication fonctionnelle du circuit raliser. Suivant les outils dont on dispose, le niveau de cette spcication peut tre : un schma logique donnant linterconnexion de composants extraits dune bibliothque ; une description fonctionnelle (par exemple dans un sous-ensemble de VHDL) ;

260

11 Outils et mthodes de conception des circuits intgrs complexes

une description procdurale (dite comportementale) sous la forme dun algorithme (par exemple, crit sous la forme dun process VHDL ou dun programme en Systme C) qui simule le comportement que devra avoir le circuit. partir de ces donnes, un compilateur de silicium va gnrer un schma logique qui reprsente linterconnexion de cellules prises dans une bibliothque. La suite du processus dpend du type de circuit vis. Ceux-ci peuvent tre : soit la paramtrisation lectrique de circuits pr-existants (FPGA, CPLD). Bien que trs utilise, cette approche nentre pas dans le domaine de la conception de circuits intgrs ; soit la dnition de linterconnexion de circuits dont les premires tapes technologiques sont dj ralises de manire standard (circuits dits gate arrays). Ces circuits comportent initialement des transistors qui sont interconnects la demande pour raliser des blocs de base (portes, bascules) qui sont ensuite cbles pour obtenir le schma logique ; soit la ralisation de circuits standardiss (aussi appels pr-caractriss). La conception (automatique) de ce type de circuits se droule de la manire suivante : le placement en ligne des cellules sur le circuit en mnageant lespace estim pour les interconnexions. Les cellules sont prises dans une bibliothque qui contient leurs dessins et toutes les informations ncessaires leur utilisation. Ces bibliothques sont dveloppes et mises jour par les fondeurs, linterconnexion des cellules en utilisant des canaux entre les lignes de cellules ou en utilisant les couches mtalliques au dessus des cellules, la nition du circuit en le munissant dune couronne de plots et dalimentations. Le cot de ralisation des circuits pr-caractriss fait que cette approche nest presque plus utilise pour la conception automatique de circuits intgrs. Toutefois, lefcacit de loutillage mis au point fait quil est rutilis pour acclrer la conception

Figure 11.2

Dessin dun squenceur cbl en approche pr-caractrise (voir chapitre 9) synthtis avec le systme Alliance

11.4

Circuits custom

261

des circuits conus manuellement en fournissant une ralisation pr-caractrise pour les blocs logiques. Certains compilateurs de silicium sont spcialiss pour raliser des circuits dun type particulier (par exemple, ceux bass sur le modle dun microprocesseur). Ces outils travaillent en adaptant un modle gnrique (fonctionnel et topologique) de circuit au problme particulier. Les circuits obtenus sont beaucoup plus optimiss que ceux issus dun outil gnral. Toutefois, la prise en compte des optimisations nes que lon ralise lors dune conception manuelle reste souvent difcile.

11.4 CIRCUITS CUSTOM


La conception dun circuit custom est un travail trs complexe qui doit tre men avec beaucoup de rigueur et de mthode. Les systmes logiciels de conception disposent tous doutils de gestion de projet qui vitent de sgarer dans la complexit du travail. Le travail suit une dmarche descendante. La premire tape consiste en lcriture de la spcication globale du circuit. Celleci peut tre un schma logique ou un programme VHDL, ce qui permet de la valider. ce niveau du processus de conception, la spcication est trs globale. La seconde tape consiste diviser le futur circuit en gros blocs qui pourront tre conu indpendamment. Un plan de masse du futur circuit sera dessin. Si le circuit est vraiment trs gros, ce dcoupage se poursuivra jusqu lobtention de blocs dont la conception relvera dune approche spcique. Nous pouvons distinguer : les blocs compils qui rutilisent les outils de conception des circuits pr-caractriss ;

blocs compils blocs assembls


Dunod La photocopie non autorise est un dlit.

Figure 11.3

Microcontrleur Intel 80C51

262

11 Outils et mthodes de conception des circuits intgrs complexes

les blocs assembls. Ces blocs sont obtenus par la simple juxtaposition de cellules conues pour semboter exactement les unes dans les autres (et raliser ainsi les connexions inter-cellules). Certains de ces blocs (ROM, PLA, chemins de donnes) sont gnrs par des outils spciques appels gnrateurs. Le travail dassemblage des cellules est souvent pilot par lexcution dun algorithme qui gre les irrgularits (par exemple dans le contenu dun PLA). Avant leur conception, la fonctionnalit de chacun de ces blocs doit tre soigneusement dcrite pour permettre leur vrication. En parallle de la conception des blocs, les diffrentes cellules ncessaires doivent tre dessines la main. Leur complexit ne doit pas excder une trentaine de transistors. Lassemblage des blocs daprs le plan de masse, pour obtenir le circuit se fait ensuite laide dun outil de cblage automatique. Leur placement est gnralement manuel. 11.4.1 Styles de conception La conception manuelle des circuits complexes est un art. Il existe diffrentes approches pour la mener terme, chacune ayant ses avantages et ses inconvnients. Par exemple, les caissons pourront tre disposs verticalement ou horizontalement, ce qui correspondra dailleurs lusage de transistors minimums ou grands . Les concepteurs qui se rapprochent des techniques automatiques ont tendance dessiner des cellules trs gnrales qui peuvent tre utilises dans toutes les congurations et donc utiliser de grands transistors pour obtenir des portes de sortance leves (mais qui ont des capacits dentres et des consommations plus leves !) tandis que les concepteurs qui favorisent un style plus manuel, dessineront des transistors justes dimensionns leur besoin. De mme, le croisement des couches se fera avec plus ou moins de rigueur suivant que lon visera, ou non, un processus dassemblage bas sur la simple juxtaposition des cellules.

11.5 VRIFICATION DE LA CONCEPTION


En parallle de ces tapes de conception se situent les tapes de vrication. Une seule erreur peut rendre un circuit inutilisable. Le cot et le dlai de ralisation dun circuit prototype sont tels quil est prfrable daugmenter leffort de vrication plutt que de multiplier les prototypes. La norme actuelle devrait tre : bon du premier coup ! . Le cot de ralisation dun nouveau jeu de masques est de lordre du million de dollars et le temps de ralisation dun nouveau jeu de circuits varie entre quelques semaines quelques mois. Pour rduire le cot des prototypes, les fondeurs et les centres de recherche utilisent la technique des circuits multiplexs , cest--dire que la surface de la tranche est occupe par plusieurs projets qui ne sont reprsents que par quelques exemplaires. Les cots de fabrication des circuits sont ainsi partags entre le nombre de projets qui partagent le mme lot. La vrication de la conception des circuits intgrs utilise maintenant des outils trs avancs.

11.6

Systmes intgrs SOC (Systems On Chip)

263

Pour la vrication des cellules de base : celles-ci sont vries soigneusement partir de leur masques. le dessin de leurs masques est vri par un outil appel DRC ( Design Rules Checker) qui vrie la bonne application des rgles gomtriques de dessin ; leur comportement lectrique (normal et aux limites de la technologie) est vri en extrayant automatiquement leur schma lectrique. La vrication lectrique commence par sassurer que le schma est sain laide dun outil appel ERC (Electrical Rules Checker) qui vrie que le circuit obit certaines rgles lectriques de bonne construction (vrication du rapport dimensionnel des transistors, dtection des portes non alimentes, des court-circuits). Puis la cellule est simule dans toutes les congurations possibles laide dun simulateur lectrique (par exemple, SPICE) ; leur fonctionnalit est ensuite vrie en extrayant automatiquement une description fonctionnelle partir de leur schma lectrique. Cette description extraite est ensuite compare avec leur spcication fonctionnelle laide dun outil de vrication formelle [MAD88] (V-Formal ou Chrysalys). Pour la vrication des blocs : puisque les cellules sont vries, il ne reste thoriquement qu sassurer que linterconnexion des cellules est correcte. Toutefois, il faut se mettre en garde contre des modications manuelles du cblage et de lajout manuel de transistors annexes . Pour cela, il est prfrable de r-extraire le schma lectrique, didentier automatiquement les cellules, puis dextraire la fonctionnalit globale et de la comparer formellement avec la spcication fonctionnelle du bloc. Les outils actuels permettent deffectuer des vrications formelles de blocs jusqu 100 000 transistors. Les spcications des blocs ont elles-mmes t vries en les assemblant pour obtenir une description du circuit complet sur lequel on peut simuler lapplication. Pour la vrication du circuit complet : il nest pas (encore) possible de raliser une vrication formelle de lensemble dun circuit de plusieurs millions de transistors. Il est toutefois possible de simuler une description fonctionnelle globale, extraite automatiquement, sur un jeu dessai rduit. Une autre vrication nale est souvent pratique. Elle consiste en une vrication globale des rgles de dessin et en une comparaison du schma lectrique extrait avec celui obtenu en assemblant les schmas des cellules telles quelles sont utilises dans les blocs et jusquau circuit complet. Ces dernires oprations sont trs coteuses en volume de calcul. Pour des circuits trs complexes, elles peuvent mobiliser des machines trs performantes pendant plusieurs semaines.

Dunod La photocopie non autorise est un dlit.

11.6 SYSTMES INTGRS SOC (SYSTEMS ON CHIP)


Une nouvelle famille de circuit est maintenant en production. Il sagit de circuits qui ralisent un systme complet (gure 11.4). De tels circuits sont utiliss pour les tlphones portables, les appareils grand public, etc. Gnralement, un tel circuit se compose dun petit systme informatique spcialis qui peut comprendre :

264

11 Outils et mthodes de conception des circuits intgrs complexes

un ou plusieurs processeurs plus ou moins performants ; de la mmoire programme (morte ou inscriptible ou lectriquement reprogrammable) ; de la mmoire de travail ; des dispositifs priphriques standard ou spcialiss.

mmoire dynamique

processeur

canaux de cblage blocs de logique

Figure 11.4 Circuit spcialis pour la commande de disques durs (STMicroelectronics, technologie 0,35 , 1997)

Tous ces organes sont assembls laide de bus intgrs. Un march de blocs pr-conus (IP) se dveloppe pour ce genre dapplications. La ralisation dun tel circuit est fortement simplie par lutilisation doutils qui permettent la simulation de lensemble (avec son logiciel). La conception physique du circuit est ralise en slectionnant les blocs dans une bibliothque, en les paramtrant, en les plaant sur le circuit et en les interconnectant. Seuls les blocs spciques et le logiciel sont concevoir avec des mthodes traditionnelles . Les bus sont conus automatiquement par des outils automatiques qui les dimensionnent, les connectent et les dessinent.

11.7 LA SUITE
La diminution de la taille des motifs de dessin permet la ralisation de circuits de plus en plus complexes. Le seuil des 100 millions de transistors va bientt tre atteint.

11.7

La suite

265

Il devient de plus en plus important de rduire le cot de conception de tels circuits, dautant plus que la demande est trs importante. La solution qui se dessine consiste raliser de tels circuits en assemblant des soussystmes (processeur + mmoires + priphriques) dj conus pour raliser des fonctions bien dtermines comme, par exemple un module GPS complet qui effectue le calcul dune position gographique, en incluant la rception des satellites, ou encore un module qui effectue une connexion radio Bluetooth courte distance (gure 11.5). Lapproche devient alors trs comparable la conception dun systme par lassemblage de cartes qui ralisent de telles fonctions.

Figure 11.5

Un ordinateur personnel sur un seul circuit (ARM7500FE )

Dunod La photocopie non autorise est un dlit.

Loffre de tels modules commence se dessiner sous la forme de macro-blocs IP, avec la cration dentreprises spcialises dans un domaine applicatif (comme par exemple la conceptions de tels blocs spcialiss pour la connexion au rseau Internet). Une approche ultime consiste dvelopper des circuits standard pour une famille de produits et de les particulariser par logiciel. Laugmentation constante du nombre de transistors disponibles, ainsi que de la vitesse dhorloge des circuits amne raliser des circuits SOC de plus en plus complexes qui amnent de plus en plus d intelligence au niveau des applications qui les utilisent (comme par exemple dans le cas des tlphones portables) (gure 11.6). Comme ces circuits gants vont quelquefois se trouver dans des applications critiques (comme par exemple dans les systmes de freinage des automobiles) la responsabilit des diffrents intervenants (fournisseurs de blocs IP, concepteur du circuit, fondeur) risque dtre difcile dpartager en cas de problme.

266

11 Outils et mthodes de conception des circuits intgrs complexes

(Mhz) 100 000


prdiction Intel Intel prvision 24Ghz
10 0 00

60 Ghz 10 Ghz

1 000

100

frquence interne
10

frquence externe
1 75 80 85 90 95

date sortie proto


00 05 10

Figure 11.6

volution de la frquence dhorloge des microprocesseurs X86

BIBLIOGRAPHIE
[MAD88] J.-C. Madre et J.-P. Billon, Proving Circuit Correctness using Formal Comparison Between Expected and Extracted Behaviour, 25th ACM/IEEE Design Automation Conference, Anaheim, juin 1988.

Chapitre 12

12

En guise de conclusion

Dunod La photocopie non autorise est un dlit.

Nous esprons que la lecture de cet ouvrage a montr au lecteur les grandes lignes de force de la conception des circuits intgrs complexes. Pour ce faire, nous avons choisi de montrer ce quest un transistor MOS et comment il est possible den tirer le maximum dintrts. La couverture complte du sujet ncessiterait toute une bibliothque. Beaucoup de choses restent donc apprendre, mais si nous avons russi transmettre au lecteur la passion de la conception manuelle, alors notre effort naura pas t vain. lpoque o certains cours se targuent du titre de microlectronique parce quils enseignent le VHDL et la paramrisation des FPGA, il nous a paru utile de montrer ce quest le vritable paysage des circuits intgrs, et surtout comment ils sont dessins. Dans ce sens, notre dmarche sapparente celle qui consiste apprendre la programmation en commenant par lassembleur. Cet ouvrage est aussi un message de nostalgie. Il cherche participer la conservation de ce savoir qui est en voie de disparition en Europe, sous les coups de boutoir de la desse de la productivit. Passes de mode, ces techniques qui prsentaient pourtant de nombreux avantages, pourraient peut tre encore servir amliorer lefcacit des circuits modernes, au lieu dtre simplement condamnes disparatre. Passionns de longue date par lefcacit de la circuiterie polyphase, nous avons fait un gros effort pour galement prsenter, sur un pied dgalit, la circuiterie monophase qui est devenue quasiment la seule tre maintenant utilise. Aprs cet exercice, nous avons constat que sous une apparence de principes rigoureux. Cette approche conduit raliser des circuits beaucoup plus complexes et cache des points dlicats qui amnent souvent les concepteurs faire des bidouilles peu recommandables. Maintenant que la conception presse-bouton des circuits intgrs amne les concepteurs ne plus regarder les transistors, il serait peut-tre possible dintroduire quelques principes de la conception polyphase dans les outils automatiques.

268

12 En guise de conclusion

Un autre lment de notre nostalgie rside dans la beaut que dgagent les gros circuits dessins manuellement. Il est encore possible, en les regardant, dy voir un style, une intention, une cole, tout ce que lon ne retrouve que dans larchitecture ou dans les objets artisanaux. Lorganisation topologique de ces circuits dgage un effet de ralisation pense, tant au niveau des cellules qui apparaissent comme les rsultats de puzzles complexes dont lembotement russi est synonyme de surface gagne, quau niveau global qui sapparente lorganisation territoriale dun immense pays microscopique. Ces considrations, qui nintressent pas lindustrie, ne sont l que pour montrer la passion avec laquelle certains concepteurs ralisaient ces chefsduvre, que les outils automatiques modernes dessinent maintenant sans art.

11.7

La suite

269

EXERCICES
Conception dune porte CMOS complexe Soit la porte complexe suivante :
A B C D

On supposera quelle est ralise en CMOS classique .


1. Dterminer son schma en transistors . 2. Dimensionner la taille de ses transistors par rapport ceux de linverseur

minimum pour obtenir des performances lectriques comparables (temps de monte et de descente).
3. Dterminer les charges capacitives des entres, par rapport celle de

linverseur minimum.
4. Cette porte peut-elle tre attaque par des inverseurs minimaux ? (justiez

votre rponse.)
5. Proposer un dessin squelettique des masques de cette porte. 1. et 2. Dessin en transistor et leurs dimensionnement :

B A
Dunod La photocopie non autorise est un dlit.

8 4 8

D S D A 1

4 S 2

270

Conception des circuits VLSI

3. Charge des entres


entres A B C D Charge tr N 2 2 2 1 Charge tr P 4 8 8 4 Total 6 10 10 5 Charges equ 2 3,3 3,3 1,6

4. Un inverseur minimal possde une impdance dentre gale 3 fois la capacit

de grille de son transistor N et une sortance de 8. La charge apporte par chacune de ses entres peut tre value relativement celle dun inverseur, ce qui montre que dans tous les cas, elle peut tre attaque par un inverseur minimal. 5. Dessin squelettique des masques de cette porte :
S D A B C

VSS

VDD

Le transistor N excit par lentre A peut tre permut avec les transistors N excits par les entres B et C de manire simplier le dessin des masques. tude dun latch statique Soit un inverseur trois tats :

E C

1. Dessiner le schma squelettique des masques de cet inverseur en res-

pectant le croisement des ux de donne (lentre) et de commande (de chargement).

Exercices

271

Soit un latch statique utilisant deux inverseurs trois tats :


S Ch Ch

2. Rappeler son schma en transistors. 3. Dessiner le schma squelettique de ses masques en respectant le mme

croisement des ux. On rduira la longueur de cette cellule en disposant les portes sur deux niveaux superposs. On vitera aussi la duplication des lignes de commande.
4. Comment peut-on ajuster la sortance de ce latch ? 1. Dessin squelettique des masques dun inverseur 3 tats :

S E

VSS

VDD

2. Dessin du latch en transistors :

E
Dunod La photocopie non autorise est un dlit.

Ch

Ch S

Ch

Ch

3. Dessin squelettique des masques du latch :

272

Conception des circuits VLSI

E S

VSS

Ch

Ch

VDD

VDD

4. Ajustement de la sortance du latch :

La sortie du latch est pilote par son seul inverseur qui nest pas 3 tats. Pour Ajuster la sortance du latch, il suft de modier la taille de ses transistors (dans la limite de la sortance des inverseurs 3 tats qui lattaquent). tude de la synthse dune bascule T Une bascule T asynchrone est un diviseur de frquence par deux.
Q E QB

Elle ne possde pas dhorloge. Ses sorties sinversent chaque transition ngative de lentre E.

Ce sujet propose ltude de cette bascule T vue comme un automate asynchrone.


1. Construire le diagramme dtat asynchrone de la bascule T. 2. Construire le tableau des transitions de cette bascule, en indiquant ses

tats stables.
3. Donner le tableau cod des transitions donnant le code de ltat suivant,

en fonction du code de ltat en cours et de lentre E.


4. En dduire les quations boolennes dnissant les bits de ltat suivant. 5. Traduire ces quations sous forme de NOR, en cherchant obtenir des

termes communs.

Exercices

273

1. Diagramme dtat (asynchrone) :


0 A 1 B 0 1 1 Q =0 0 1 Q =1

0 D

2. Tableau des transitions asynchrones :


E 0 A B C D A C C A 1 B Q=1 B D Q=0 D

Ltat (asynchrone) S de la bascule sera cod sur plusieurs bits. Le bit de poids faible correspondra la sortie Q. Pour viter les alas, le codage des tats sera tel quil ne variera que dun bit lors de lenchanement normal (codage asynchrone). 3. Les tats seront cods sur deux bits en respectant les contraintes prcdentes.
S 0 S1
Dunod La photocopie non autorise est un dlit.

A=1 0 B=1 1 C=0 1 D=0 0

Avec Q = S0.

274

Conception des circuits VLSI

Soit le tableau cod des tats :


E S0S1 1 0 0 10 01 01 10 1 11 11 00 00

1 1 0 1

0 0

4. quations boolennes des bits dtat :

S0 = ( E S1 ) ( E S0 ) S1 = ( E S1 ) ( E S1 )
5. Ralisation en NOR

En couvrant les complments dans le tableau, on obtient : S0 = ( ( E S0 ) ( E S1 ) ) S1 = ( ( E S0 ) ( E S1 ) ) Soit, en appliquant le thorme de De Morgan : S 0 = ( E S 0 ) ( E S 1 ) S 1 = ( E S 0 ) ( E S 1 ) Les deux expressions possdent le terme ( E S 0 ) en commun. Do un premier schma pour la bascule T :

E E B S1

S1

S0 = Q

Exercices

275

On reconnat deux bascules RS. Il reste gnrer conomiquement S 1 . Pour cela, nous allons essayer dutiliser la branche complmentaire A du RS suprieur. Pour cela il faut vrier que S 1 peut tre remplac par ( E S 1 ) (valeur en A) dans ( E S 1 ) , ce qui ne pose aucun problme. De mme, B sera appel QB selon la tradition des RS. Do le schma nal de la bascule T :
E S0

S1

QB

tude dun circuit de commande dun convertisseur analogique/numrique


entre analogique CNA comp 1, 2 Circuit concevoir rst dpes vals fpes sortie numrique 12

comp. A

Dunod La photocopie non autorise est un dlit.

Le circuit tudier doit raliser la commande dun convertisseur analogique numrique approximations successives (par pese). La prcision de ce convertisseur sera de 12 bits. Ce circuit fonctionnera avec des composants externes : Un convertisseur numrique analogique (CNA de 12 bits) et un comparateur analogique, (supposs fournis). Les connexions du circuit de commande avec lextrieur seront : Une sortie numrique vals de 12 bits servant la fois de sortie et dexcitation du convertisseur numrique analogique. Une entre comp recevant la sortie (binaire) du comparateur analogique. (comp = 1 si lentre analogique est > la sortie du CNA).

276

Conception des circuits VLSI

Une entre dpes dont lexcitation dclenche la pese. Une sortie fpes indiquant que la pese est termine et que la sortie vals est disponible pour lextrieur. Deux entres dhorloge (1 et 2). Une entre dinitialisation rst. La vitesse du circuit de commande est limite par les circuits analogiques externes. Lalgorithme de pese est trs classique. Il consiste construire le mot de sortie bit bit partir des poids forts. On commence par proposer un 1, si la sortie du comparateur indique que la valeur propose est trop grande, ce bit est remplac par un 0, sinon il est gard, et lon passe au bit suivant. Lalgorithme se termine lorsque les 12 bits sont dtermins. Une attente devra tre prvue dans cet algorithme pour permettre au convertisseur numrique analogique et au comparateur de fonctionner. Les performances souhaites suggrent de raliser un chemin de donnes de 12 bits et un squenceur base dun PLA.
1. crire lalgorithme raliser sous la forme dun organigramme. 2. Proposer une forme standard. 3. Rcrire lalgorithme optimis avec des instructions standardises. 4. Proposer un chemin de donnes pour ce circuit. 5. Proposer une organisation pour son squenceur. 6. Proposer un contenu pour le PLA. 1. Algorithme : voir ci-contre.

Une autre solution aurait consist utiliser un masque pour slectionner un bit de vals. Puis dcaler ce masque droite. 2. Liste des oprations utilises : fpes <= 1 fpes <= 0 index <= 11 index <= DECR index vals <= 0 vals(index) <= 1 vals(index) <= 0 nop Lattente peut tre ralise par une petite boucle : voir ci-contre.

Exercices

277

rst dpes = 1? o fpes <= 0 index <= 11 vals <= 0 n

vals(index) <= 1 attente ? t comp = 1? o n nop vals(index) <= 0

index <= DECR index <0 ?0 fpes <= 1

attente <= ?t-1 attente <= DECR attente? <0 ?0

Dunod La photocopie non autorise est un dlit.

Tests : dpes =1? ET comp = 1? seront raliss directement par le squenceur. Seul le test du signe du rsultat sera test dans le chemin de donnes : result < 0 / 0 Forme standard :
dest rien fpes vals vals(index) index attente = op transf decr source 0 1 11 t-1 index attente

278

Conception des circuits VLSI

3. Algorithme optimis :

rst rien <= TRANSF 0 dpes=1 dpes=0 fpes <= TRANSF 0 index <= TRANSF 11 vals <= TRANSF 0

vals(index) <= TRANSF 1 attente<=TRANSF (?t-1) attente <= DECR attente? <0 rien <= TRANSF 0 comp=1 comp=0 ?0

rien <= TRANSF 0 vals(index) <= TRANSF 0

index <= DECR index <0 ?0 fpes <= TRANSF1

4. Chemin de donnes (bi-phas) :

0 transf/decr vals index attente test fpes vals 0 1 11 t-1

Le choix doprations (transfert/dcrmentation) peut tre ralis en modiant la retenue initiale dun dcrmenteur.

Exercices

279

5. Organisation du squenceur ( base de PLA).

dpes comp tat tat suiv. dest op sour.

2 result < 0 / 0 rst 4 dest op sources 3

La machine est suppose quadriphase avec un fonctionnement on superpos du squenceur et du chemin de donnes. 6. Contenu du PLA du squenceur :
test dpes=0 dpes=1 tat 0 0 1 2 res = 0 res < 0 res = 0
Dunod La photocopie non autorise est un dlit.

dest rien fpes index vals vals(index) fpes attente attente rien rien vals(index) index matrice OU

op TRANSF TRANSF TRANSF TRANSF TRANSF TRANSF TRANSF DECR TRANSF TRANSF TRANSF DECR

source 0 0 11 0 1 1 t-1 attente 0 0 0 index

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

3 3 4 5 5 6 6 7

res < 0 comp=1 comp=0

matrice ET

tude dun petit commutateur de messages Le sujet consiste tudier un commutateur (routeur) de messages (trs simpli) pour un mini rseau hirarchique. Cet organe reoit des messages sur une voie dentre et rmet intgralement leur contenu sur lune de ses

280

Conception des circuits VLSI

4 voies de sortie, en fonction de ladresse de destination situe dans lentte de chaque message. Toutefois, loctet dadresse sera r-mis avec un dcalage de deux positions gauche pour prparer laiguillage suivant.
Voie d'entre

clk
Commutateur

rst

Voies de sortie Voie 0 Voie 1 Voie 2 Voie 3

Les messages sont constitus dune suite doctets. Leur trame, simplie, est la suivante :

adresse destination (1 octet) longueur de la zone donnes (1 octet)

zone donne (n octets)

Le format de loctet dadresse de destination est le suivant (en entre) :

adresse de la voie de sortie

Les messages arrivent octet par octet sur 8 lignes dentre. Les octets dun message sont spars par un intervalle de temps denviron T. La prsence

Exercices

281

dun octet sur la voie dentre sera indique par lactivation dun signal externe Data_in mis 1 au moment de larrive de chaque octet et remis 0 au bout dun temps dau moins T/4. Les octets seront valides sur la voie dentre pendant que Data_in est 1. Les messages r-mis sur les voies de sortie respecteront les mmes contraintes temporelles. Pour cela, des signaux Data_out identiques Data_in seront gnrs sur chaque voie de sortie. Il est toutefois normal que les messages rmis soient retards par rapport ceux dentre, mais on cherchera minimiser ce dcalage.
data_in

T/4 T voie d'entre

Ce commutateur sera construit laide dun chemin de donnes et dun squenceur. Son fonctionnement sera rythm par une horloge de priode T/16. Pour permettre lacheminement de messages rapides, cette frquence sera la plus leve possible compte tenu des possibilits de la technologie utilise.
1. crire lalgorithme dcrivant le fonctionnement du commutateur sous la

forme dun organigramme. On suggre dutiliser une variable dtat auxiliaire pour distinguer ltape courante dans le traitement du message dentre (adresse, nombre doctets de donne, donnes). On utilisera des instructions ineffectives (NULL) pour assurer la synchronicit de la lecture des octets sur la voie dentre et lmission des octets sur la voie de sortie slectionne.
2. Proposer un schma pour le chemin de donnes du commutateur. La voie
Dunod La photocopie non autorise est un dlit.

dentre sera lue octet par octet dans un registre et les voies de sorties issues de registres spcialiss capables de contenir un octet.
3. Proposer un squenceur mono-PLA. On proposera un format pour la partie

de la matrice de gnration du PLA qui fournira les commandes au chemin de donnes, et une organisation symbolique pour lensemble du PLA.
4. Proposer une version monophase du circuit avec un squenceur cbl

ralis partir dun gnrateur de temps et dun rseau combinatoire gnrant les commandes pour le chemin de donnes.

282

Conception des circuits VLSI

1.

Dmarrage : Etat <= ADD Data_out(*) <= 0


Data_in=1 Data_in=0

Rin <= Entre Etat=ADD Etat=NB RNB <= Rin NULL Etat <= DON

NULL Etat=DON RNB <= RNB-1 NULL **

Radd <= Rin(7-6) Rin <= Rin(5-0)&"00" Etat <= NB

RNB?0

RNB=0

NULL Rvoie <= Rin *** Data_out(Radd) <= 1 NULL NULL NULL

Etat <= ADD

Pour viter de relire loctet prcdent, la boucle de lalgorithme devra comporter au moins 5 instructions. Pour attendre loctet suivant, cette boucle devra comporter moins de 16 instructions. Linstruction Data_out(*)<=0 signie une remise 0 de toutes les sorties Data_out. Remarques : Comme le circuit doit tre le plus rapide possible, les fonctionnements de son chemin de donnes et de son squenceur seront superposs, ce qui entrane que les conditions devront tre calcules au moins une instruction avant dtre testes. Comme la prise en compte des octets des messages ne se fait que lorsque le signal Data_out est actif, il ny a aucun inconvnient exciter toutes les sorties en parallle. Loptimisation du brochage du circuit suggre de ne mettre quune seule sortie Voie, mais en conservant 4 sorties Data_out.
2. Conception du chemin de donnes :

Variables utilises : octet : Rin, Rnb, Rvoie bit : data_out(0 to 3) Instructions : Rin <= Entre Radd <= Rin(7-6) Rin <= Rin(5-6)&"00" Rnb <= Rin Rnb <= Rnb - 1 Rvoie <= Rin data_out(Radd) <= 1 data_out(*) <= 0 Etat <= ADD

2 bits : Radd(1,0) Taille non prcise ( octet) : Etat

Exercices

283

Etat <= NB Etat <= DON NULL (rien <= x"00") Tests : Data_in=1/0 Etat=ADD/NB/DON Rnb=0/?0 Format standard : <Rdest> <= <op>< Rsource> Linstruction NULL sera ralise en ne chargeant aucun registre (Rdest = rien) avec la valeur 0. Avec : Rdest : rien / Rin / Rnb / Radd / Rvoie / data_out(Radd) / data_out(*) / Etat op : transf / decr / decal_gauche_2 Rsource : Entre / Rin / Rnb / ADD / NB / DON / 0 / 1 (Il est possible de coder ADD=0 et/ou NB=1 pour diminuer le nombre de sources raliser.) Schma du chemin de donnes :

RZDA*

LDAAD

LRAD LRV

LETAT

LRNB

LRIN

transf, decr, decal Radd Rvoie Etat


SRNB

=0

RNB

Rin
SRIN

SENT

SAD

SNB

SDON

Voies de sortie

Entre

ADD/0

NB/1

DON

Dunod La photocopie non autorise est un dlit.

Les fonctions decr et transf de loprateur seront obtenues partir dun dcrmenteur dont on fera varier la valeur de la retenue initiale. Un registre tampon a t insr pour viter les rebouclages asynchrones. Le chemin de donnes travaille avec une horloge bi-phase. 3. tude dun squenceur base de PLA Format de la partie gnration des commandes : 3 champs : Rdest 3 bits, op 2 bits, Rsource 3 bits. Contenu symbolique du PLA :
Data_in =0 tat tape 0 tape suiv 1 action

Etat <= ADD

284

Conception des circuits VLSI

Data_in

=0

tat

tape 1

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

action

Data_out(*) <= 0 rien <= 0 Rin <= Entre Radd <= Rin(7-6) Rnb <= Rin Rnb <= Rnb -1 Rin <= Rin(5-6)&"00" Etat <= NB rien <= 0 Etat <= DON rien <= 0 rien <= 0 Etat <= ADD Rvoie <= Rin Data_out(Radd) <= 1 rien <= 0 rien <= 0 rien <= 0

0 1 ADD NB DON

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

Data_in Etat

rsult=0

sources op

dest

Exercices

285

4. Conception dun squenceur cbl :

Reprage des instants de squencement de lalgorithme :


Dmarrage: Etat <= ADD Data_out(*) <= 0
Data_in=0

t0 t1 t2

NULL
Data_in=1

Data_in=0

t3
Etat=ADD

Rin <= Entre


Etat=NB Etat=DON

t4 t5 t6

Radd <= Rin(7-6) Rin <= Rin(5-0)&"00" Etat <= NB

RNB <= Rin NULL Etat <= DON

RNB <= RNB-1 NULL


RNB?0 RNB=0

Etat<=DON * Etat<=ADD

t7 t8 t9 t10 t11

Rvoie <= Rin Data_out(Radd) <= 1 NULL NULL NULL

Dunod La photocopie non autorise est un dlit.

Lalgorithme peut tre rythm par 12 instants. Lattente de limpulsion Data_in est ralise au niveau du gnrateur de temps, tandis que les autres temps ne concernent pas ce gnrateur ; Linstruction NULL dans la branche Etat=DON / RNB?0 est remplace par Etat <=DON qui est aussi ineffective, mais qui permet duniformiser toutes les destinations des oprations dclenches en t6 tre des chargements du registre Etat, ce qui simpliera le circuit combinatoire de gnration des commandes. Le gnrateur dinstants ralise la squence suivante, de laquelle on peut dduire son schma en logique monophase (voir gure page 286). Le signal rst provoquera la mise 1 de la bascule to et la mise 0 de toutes les autres bascules, permettant ainsi le dmarrage du gnrateur de temps. Pour raliser un circuit monophas, le chemin de donnes devra tre lgrement modi (voir gure page 287). Le registre additionnel mis pour viter le rebouclage en logique biphase sera supprim. Tous les autres registres deviendront des matres-esclaves. Le codage des tats sera modi pour quils soient reprsents par de simples bits du registre Etat (ADD=Etat(1), NB=Etat(2), DON=Etat(4)), ce qui impose de rajouter la constante 0. Le circuit combinatoire de gnration des commandes pour le chemin de donnes, suppos monophas, sera obtenu par sa compilation partir de ses quations VHDL : LETAT <= 1 when t0=1 or t6=1 else 0; LRAD <=1 when t4=1 else 0;

286

Conception des circuits VLSI

t0
t0

t0

rst clk

t1
Data_in=0 Data_in=1 t1 Data_in 1

t1
S 0

clk rst

t2

t3

t2
t2 Data_in 1 0 S

clk rst

t11 t3
t3 S clk rst

t11
t11 S

clk rst

RZDA*

LDAAD

LRAD LRV

LETAT

LRNB

LRIN

Radd

Rvoie

Etat
SRNB DON NB ADD

RNB

Rin
SRIN

transf, decr, decal =0

clk

SENT

S0

SAD

SNB

SDON

Voies de sortie

Entre

ADD/1

NB

DON

LRIN <= 1 when t3=1 or (t5=1 and ETAT=ADD) else 0; LRNB <= 1 when t4=1 and (ETAT=NB or ETAT=DON) else 0; LRV <=1 when t7=1 else 0; LDAAD <=1 when t8=1 else 0; RZDA <=1 when t1=1 else 0; SENT <=1 when t3=1 else 0; SRNB <=1 when t4=1 and ETAT=DON else 0; SRIN <=1 when (t4=1 or t5=1) and ETAT=ADD else 0;

Exercices

287

SAD <=1 when t0=1 or (t6=1 and ETAT=DON and result=1) or t8=1 else 0; SNB <=1 when t6=1 and ETAT=ADD else 0 SDON <=1 when t6=1 and (ETAT=NB or (ETAT=DON and result=0)) else 0; S0 <=1 when t1=1 or t2=1 or (t5=1 and (ETAT=DON or ETAT=DON) or t9=1 or t10=1 or t11=1 else 0; commande UAL <= decr when t4=1 and ETAT=DON else decal when t5=1 and ETAT=ADD else transf; Toutes les commandes issues du squenceur seront stockes dans un registre pour leur utilisation dans le cycle suivant. Les sorties de ce registre qui commandent les chargements serviront gnrer des sous horloges spciques chaque registre. Conception dune FIFO En VHDL
ec entree file_pleine rst lec sortie file_vide

Brochage : ecr un front descendant sur cette ligne provoque lcriture dans la FIFO de linformation prsente sur les lignes entree. Lcriture est impossible si la ligne file_pleine est active. entree bus dentre, les informations devront tre prsentes avant et au moment du front descendant de ecr. lec un front descendant sur cette ligne provoque la lecture de linformation dans la FIFO. Linformation lue sera ensuite considre comme efface (sauf si la ligne file_vide est active).
Dunod La photocopie non autorise est un dlit.

sortie bus de sortie, les informations (le mot lire) seront prsentes avant et au moment du front descendant de lect. (linformation ne sera pas pertinente si la ligne file_vide est active) file_pleine cette ligne sera active lorsque la FIFO est plein. Elle sera active juste aprs la dernire criture possible et dsactive aprs la premire lecture qui suit. file_vide cette ligne sera active lorsque la FIFO est vide. Elle sera active juste aprs la dernire lecture possible et dsactive aprs la premire criture qui suit. rst un niveau haut sur cette ligne provoque linitialisation de la FIFO.

288

Conception des circuits VLSI

La FIFO sera ralise laide dune petite mmoire constitue dune batterie de registres. Cette mmoire sera gre de manire circulaire laide de deux index. Lun reprera la position dans laquelle se fera la prochaine criture, lautre reprera la position dans laquelle se fera la prochaine lecture. Ces deux index se suivront dans leur dplacement. Si lindex dcriture rattrape celui de lecture, alors la FIFO est pleine. Si lindex de lecture rattrape celui dcriture, alors la FIFO est vide. Il ny a pas dhorloge, le circuit nest rythm que par les signaux ecr et lec. On crira quatre descriptions de la FIFO : dans les trois premires on supposera les critures et les lectures non simultanes). On crira linterface de lentit FIFO et quatre architectures. Pour saffranchir de la largeur des bus entree et sortie et de la profondeur de la FIFO, on ralisera un modle de FIFO gnrique.
1. La premire description utilisera des variables entires pour reprsenter

les index. Les informations seront stockes, une place xe, dans une mmoire mem constitue dun tableau de registres. Les index dcriture et de lecture sont reprsents par deux signaux entiers.
2. La seconde description, plus proche dune ralisation matrielle, utilisera

des registres dcalage circulaires contenant un seul 1 pour reprsenter les index. Les index dcriture et de lecture seront raliss par des registres dcalage reboucls.
3. La troisime description diffrera de la seconde par le fait que les dtec-

tions de le pleine et de le vide se feront dune manire correspondant une ralisation matrielle. Il devient ncessaire de conserver la mmoire de la dernire opration effectue pour savoir si lgalit des deux index signie que la le est pleine ou vide. Pour cela, nous introduirons un signal operation qui prendra la valeur 0 la suite dune lecture et 1 la suite dune criture. Ce signal servira aiguiller linformation de concidence des index vers les indicateurs de le pleine et de le vide
4. La quatrime description diffrera de la troisime par le fait que les lec-

tures et les critures peuvent tre simultanes (mais cales sur une mme horloge de rfrence).
5. Sur quels principes pourrait-on crire une description compltement

conforme une ralisation physique ?


1. Il faudra initialiser les index 0 par rst pour saffranchir du fait quils peuvent

prendre nimporte quelle valeur avant linitialisation du circuit et provoquer des sorties de bornes des tableaux.

Exercices

289

criture dans la FIFO : Lindex dcriture dsigne la position dans laquelle on va crire. Il est incrment aprs lcriture effective sur le front arrire de ecr (sauf si la le est pleine). Linfo doit tre prsente sur le bus entree avant le front arrire de ecr. Lcriture est bloque si la le est pleine. La dtection de le pleine seffectue par la dtection de lgalit des deux index aprs une criture. Toute criture a pour consquence que la le nest pas vide. Lecture dans la FIFO : Lindex de lecture dsigne la position dans laquelle on va lire. Il est incrment aprs la lecture effective pendant que la ligne lec est active (sauf si la le est vide). Linfo est prsente sur le bus sortie au moins pendant que la ligne lec est active. Linformation est suppose extraite de la le aprs une lecture. La dtection de le pleine seffectue par la dtection de lgalit des deux index aprs une lecture. Toute lecture a pour consquence que la le nest pas pleine. Les tats de le pleine et de le vide apparaissent conscutivement aux ordres dcriture et de lecture. Pour cela, ils doivent tre gnrs respectivement dans les processus dcriture et de lecture. Comme la valeur nale des index napparat quaprs un temps t, il faut retarder dun petit instant la comparaison de ces index. Cette comparaison ne peut pas se faire en dehors des processus car sa signication dpend de laction qui la provoque. Remarque VHDL : Dans certains simulateurs VHDL linstruction : R<=R(7)&R(0 to 6) when clkevent; provoque le dcalage de R de deux positions chaque transition de clk. Tandis que : R<=R(7)&R(0 to 6) after 1ps when clkevent; ou process (clk) begin R<=R(7)&R(0 to 6); end process; ne provoquent que le dcalage de R dune position. Dans le premier cas, le clkevent doit vraisemblablement durer plus de t et permettre deux dcalages, tandis que le process ne fait quun tour.
Premire description VHDL

Dunod La photocopie non autorise est un dlit.

library vector; use vector.functions.all; entity fifo is generic(larg: integer=8; prof: integer); port( ecr :in bit:= 0;

290

Conception des circuits VLSI

lec :in bit:= 0; rst :in bit:= 0; file_pleine :buffer bit; --bascules en sortie file_vide:buffer bit; entree :in bit_vector(larg-1 downto 0); sortie :out bit_vector(larg-1 downto 0)); end fifo; architecture arch1 of fifo is type mat is array(0 to prof-1) of bit_vector(larg-1 downto 0); signal mem:mat; signal clec:integer:=0; --compteur de lecture signal cecr:integer:=0; --compteur dcriture begin process (rst) --initialisation de la file begin clec <= 0; cecr <= 0; file_vide <= 1; file_pleine <= 0; end process; process --ecriture dans le fifo begin --attente transition neg ecr et file non pleine wait until ecrevent and ecr=0and file_pleine=0; mem(cecr)<= entree; --ecriture dans la fifo --incrementation cecr modulo memlength cecr<= (cecr+1)mod memlength(1); file_vide<=0; --la fifo ne peut plus etre vide wait on cecr; -- attente positionnement de cecr if cecr=clec then file_pleine <= 1; end if; end process; process --lecture dans le fifo begin --attente transition neg lec et file non vide wait until lecevent and lec=0 and file_vide=0; --incrementation clec modulo memlength clec<= (clec+1)mod memlength(1); file_pleine <= 0; -- La fifo ne peut plus etre pleine wait on clec; -- attente positionnement de clec if cecr=clec then file_vide <= 1; end if; end process; sortie<= mem(clec); --linfo est disponible le plus longtemps possible end arch1; 2. Un problme VHDL apparat : la slection des registres de la mmoire par les bascules de ses registres dcalage nest pas une opration lmentaire de VHDL.

Exercices

291

Nous devons crire une fonction dans un package prliminaire pour calculer lindice correspondant la position dun 1 dans un registre dcalage. Pour se prmunir du fait que ce registre possde une valeur quelconque avant linitialisation par rst, cette fonction retourne un 0 lorsque ce registre est 0.
Seconde description

Dunod La photocopie non autorise est un dlit.

package complements is function select_dir(a:bit_vector) return integer; end complements; package body complements is function select_dir(a:bit_vector) return integer is --fonction pour alias av:bit_vector(1 to alength) is a; --simuler la begin --selection directe for i in 1 to alength loop if av(i)=1 then return i-1;end if; end loop; return 0; -- cas ou le vecteur est a 0 (initialisation!!) end select_dir; end complements; library vector; use vector.functions.all; use work.complements.all; entity fifo is generic(larg: integer=8; prof: integer); port( ecr :in bit:= 0; lec :in bit:= 0; rst :in bit:= 0; file_pleine :buffer bit; file_vide:buffer bit; entree :in bit_vector(larg-1 downto 0); sortie :out bit_vector(larg-1 downto 0)); end fifo; architecture arch2 of fifo is type mat is array(0 to prof-1) of bit_vector(larg-1 downto 0); signal mem:mat; signal Rlec:bit_vector(0 to prof-1); signal Recr:bit_vector(0 to prof-1); begin process (rst) --initialisation de la file begin if rst=0 then --sur front descendant de rst Rlec(0) <= 1; Recr(0) <= 1; for i in 1 to prof-1 loop Rlec(i) <= 0; Recr(i) <= 0;

292

Conception des circuits VLSI

End loop; file_vide <= 1; file_pleine <= 0; end if; end process; process --ecriture dans le fifo begin --attente transition neg ecr et file non pleine wait until ecrevent and ecr=0and file_pleine=0; mem(select_dir(Recr)) <= entree; --ecriture dans la fifo Recr<= Recr ror 1; --decalage circulaire droit de Recr file_vide<=0; --la fifo ne peut plus etre vide wait on Recr; -- attente positionnement de Recr if Recr=Rlec then file_pleine <=1; else file_pleine <=0; end if; end process; process --lecture dans le fifo begin --attente transition neg lec et file non vide wait until lecevent and lec=0 and file_vide=0; Rlec<= Rlec ror 1; --decalage circulaire droit de Rlec file_pleine <= 0; -- la fifo ne peut plus etre pleine wait on Rlec; -- attente positionnement de Rlec if Recr=Rlec then file_vide <=1; else file_vide <=0; end if; end process; sortie<= mem(select_dir(Rlec)); end arch2;
3.
Troisime description

package complements is function select_dir(a:bit_vector) return integer; end complements; package body complements is function select_dir(a:bit_vector) return integer is --fonction pour alias av:bit_vector(1 to alength) is a; --simuler la begin --selection directe for i in 1 to alength loop if av(i)=1 then return i-1;end if; end loop; return 0; -- cas ou le vecteur est a 0 (initialisation!!)

Exercices

293

Dunod La photocopie non autorise est un dlit.

end select_dir; end complements; library vector; use vector.functions.all; use work.complements.all; entity fifo is generic(larg: integer=8; prof: integer); port( ecr :in bit:= 0; lec :in bit:= 0; rst :in bit:= 0; file_pleine :buffer bit; file_vide:buffer bit; entree :in bit_vector(larg-1 downto 0); sortie :out bit_vector(larg-1 downto 0)); end fifo; architecture arch3 of fifo is type mat is array(0 to prof-1) of bit_vector(larg-1 downto 0); signal mem:mat; signal Rlec:bit_vector(0 to prof-1); signal Recr:bit_vector(0 to prof-1); signal operation:bit:=0; -- 0=> lec / 1=> ecr begin --initialisation de la file process (rst) --initialisation de la file begin if rst=0 then --sur front descendant de rst Rlec(0) <= 1; Recr(0) <= 1; for i in 1 to prof-1 loop Rlec(i) <= 0; Recr(i) <= 0; End loop; file_vide <= 1; file_pleine <= 0; operation <= 0; end if; end process; --ecriture Recr<= Recr ror 1 after 1ps when ecrevent and ecr=0and file_pleine=0; mem(select_dir(Recr)) <= entree when ecrevent and ecr=0and file_pleine=0; operation<=1after 1ps when ecrevent and ecr=0and file_pleine=0; file_vide <= 0when ecrevent and ecr=0and file_pleine=0; file_pleine <= 1 when Recr=Rlec and operation=1; --lecture Rlec<= Rlec ror 1 after 1ps

294

Conception des circuits VLSI

when lecevent and lec=0and file_vide=0; operation<=0after 1ps when lecevent and lec=0and file_vide=0; file_pleine <= 0when lecevent and lec=0and file_vide=0; file_vide <= 1 when Recr=Rlec and operation=0; sortie<= mem(select_dir(Rlec)); end arch3; 4. La concidence entre les critures et les lectures nest vraiment problmatique que lorsque lune dentre elles risque de provoquer ltat le pleine ou le vide. Toutefois, pendant la concidence la bascule operation est sollicite simultanment dans deux tats diffrents (ce qui devrait provoquer un problme de simulation). Une analyse simple nous permet de remarquer quune concidence de change pas ltat de remplissage de la le car les deux pointeurs conservent leur cart relatif qui ne peut tre nul. En effet, si cet cart tait nul, il y aurait dj ltat de pile pleine ou de pile vide qui bloquerait lune des commandes et il ny aurait plus de concidence. Le seul problme rsoudre concerne le remplacement de la bascule operation. Pour cela on utilisera deux signaux (bascules) op_ecr et op_lec qui seront respectivement mis 1 par les fronts descendants de ecr et de lec et qui seront, tous les deux, remis 0 par les fronts montants decr et de lec.
Quatrime description

package complements is function select_dir(a:bit_vector) return integer; end complements; package body complements is function select_dir(a:bit_vector) return integer is --fonction pour alias av:bit_vector(1 to alength) is a; --simuler la begin --selection directe for i in 1 to alength loop if av(i)=1 then return i-1;end if; end loop; return 0; -- cas ou le vecteur est a 0 (initialisation!!) end select_dir; end complements; library vector; use vector.functions.all; use work.complements.all; entity fifo is generic(larg: integer=8; prof: integer); port( ecr :in bit:= 0; lec :in bit:= 0; rst :in bit:= 0; file_pleine :buffer bit; file_vide:buffer bit;

Exercices

295

Dunod La photocopie non autorise est un dlit.

entree :in bit_vector(larg-1 downto 0); sortie :out bit_vector(larg-1 downto 0)); end fifo; architecture arch4 of fifo is type mat is array(0 to prof-1) of bit_vector(larg-1 downto 0); signal mem:mat; signal Rlec:bit_vector(0 to prof-1); signal Recr:bit_vector(0 to prof-1); signal op_ecr:bit:=0; signal op_lec:bit:=0; begin --initialisation de la file process (rst) --initialisation de la file begin if rst=0 then --sur front descendant de rst Rlec(0) <= 1; Recr(0) <= 1; for i in 1 to prof-1 loop Rlec(i) <= 0; Recr(i) <= 0; End loop; file_vide <= 1; file_pleine <= 0; op_ecr <= 0; op_lec <= 0; end if; end process; --ecriture Recr<= Recr ror 1 after 1ps when ecrevent and ecr=0and file_pleine=0; mem(select_dir(Recr))<= entree when ecrevent and ecr=0and file_pleine=0; op_ecr<=1 after 1ps when ecrevent and ecr=0and file_pleine=0; file_vide<=0 when ecrevent and ecr=0and file_pleine=0; op_ecr<=0when (ecrevent and ecr=1) or(lecevent and lec=1); file_pleine<=1when (Recr=Rlec and op_ecr=1); --lecture Rlec<= Rlec ror 1 after 1ps when lecevent and lec=0and file_vide=0; op_lec<=1 after 1ps when lecevent and lec=0and file_vide=0; file_pleine <=0 when lecevent and lec=0and file_vide=0; op_lec<=0when (ecrevent and ecr=1) or(lecevent and lec=1); file_vide<=1when (Recr=Rlec and op_lec=1); sortie<= mem(select_dir(Rlec)); end arch4;

296

Conception des circuits VLSI

5. Dans ce cas, le problme rsoudre concerne llimination des fonctions

select_dir et = ainsi que le process dinitialisation. Ceci ne peut se faire quen remplaant le tableau mem par un ensemble de registres qui peuvent tre slectionns directement par les diffrentes bascules des registres dcalage Recr et Rlec. La suppression de la fonction = ncessite de raliser un and vectoriel entre les deux registres dcalage puis un or entre tous les bits du rsultat. Llimination du process dinitialisation suppose la possibilit dinitialiser les registres Rlec et Recr de longeur paramtrable.

Annexe 1

Rappels dalgbre de Boole

Cette structure algbrique a t tudie par le mathmaticien anglais Georges Boole (1815-1864) pour formaliser les rgles de la logique des propositions. Elle a t publie dans son ouvrage : The Mathematical Analysis of Logic en 1847.

A1.1 DFINITION
On appelle algbre de Boole, un quadruplet ( B , , , ) compos dun ensemble B = {0, 1}, dune opration unaire telle que a B a B appele complmentation, et de deux oprations binaires : , B B B appeles respectivement et et ou . Pour tout a, b, c B, on a les galits suivantes :
Dunod La photocopie non autorise est un dlit.

(a b) c = a (b c) ac = ca a (b c) = (a b) (a c) a0 = a a a = 0 (a b) c = a (b c) ac = ca a (b c) = (a b) (a c) a1 = a a a = 1

298

1 Rappels dalgbre de Boole

En partant de ces dix axiomes on constate que 0 est llment neutre de lopration et 1 celui de lopration . De mme, on montre que : (a b) = a b (a b) = a b appele la loi de De Morgan. Il existe plusieurs formes possibles dcriture de lalgbre de Boole. Les lments de lensemble B peuvent, par exemple, tre appels V, F et les oprations , ou , +. La complmentation, note ici par un surlignement est quelquefois note par ou un . Il est aussi possible de reprsenter une algbre de Boole avec un seul oprateur binaire, par exemple le NI. On montre lquivalence de cette forme en crivant : NI ( a , b ) = ( a b ) do : a = NI ( a , a ) a b = NI ( NI ( a , b ) , NI ( a , b ) ) a b = NI ( NI ( a , a ) , NI ( b , b ) ) Une autre forme est lanneau boolen not (B, , ) dans lequel loprateur est le ou-exclusif qui peut tre dni par : a b = (a b ) ( a b)

A1.2 INTERPRTATION
Lalgbre de Boole, initialement dveloppe pour formaliser les problmes de la logique des propositions, sapplique de trs nombreux domaines dans lesquels lensemble des valeurs se rduit deux lments. Dans le cas de llectronique, ces valeurs pourront tre deux niveaux de tension, deux intensits ou bien le fait quun lment soit conducteur ou isolant. Il faut remarquer que dans le cas des fonctions logiques, les interprtations des arguments et du rsultat pourront tre identiques ou diffrentes. Par exemple, des niveaux de tension en argument et une conduction comme rsultat. Comme beaucoup de ces grandeurs physiques sont continues, la dnition des deux niveaux correspondant des valeurs boolennes se fera via lintroduction de seuils hauts et bas. Lorsque la valeur du signal est infrieure au seuil bas, on dira que sa valeur logique est 0, elle sera dite gale 1 lorsque la valeur du signal est suprieure au seuil haut (ou rciproquement !). Lorsque la valeur du signal est entre les deux seuils, on dira que sa valeur logique nest pas dnie.

A1.3

Fonctions boolennes

299

grandeur valeur logique 1 valeur logique indfinie valeur logique 0


En fait, beaucoup de montages lectroniques se modlisent laide de fonctions incompltement dnies. En plus des valeurs logiques, il est ncessaire de reprsenter soit une valeur non dnie, soit un tat isol. Ceci peut tre formalis en utilisant des logiques multivalues, ternaires, ou darit plus importante, oprant sur des treillis de valeurs (cest le cas du type std_ulogic de la librairie IEEE de VHDL). Exemple : Treillis des tats boolens et isol.

seuil haut seuil bas

court-circuit 0 isol
De telles approches nous permettent de parler dinterrupteurs qui peuvent isoler ou connecter des sources logiques.

A1.3 FONCTIONS BOOLENNES


Dunod La photocopie non autorise est un dlit.

Nous dnirons des fonctions boolennes n arguments comme des applications : f B n B . Les n arguments dune telle fonction constituent un vecteur boolen qui peut prendre 2n valeurs distinctes. Une fonction boolenne revient attribuer des valeurs boolennes ces valeurs des arguments. Elle peut donc tre reprsente par le tableau des 2n valeurs de ces arguments auxquelles on associe la valeur de la fonction. Ce tableau est appel la table de vrit de la fonction. A1.3.1 Terme On appelle terme un produit de variables boolennes directes ou complmentes. Exemple : a b c

300

1 Rappels dalgbre de Boole

A1.3.2 Forme canonique dune fonction boolenne On appelle forme canonique dune fonction boolenne son criture sous la forme dune somme de termes, appels monmes, car contenant lensemble des variables directes ou complmentes. Exemple : f = ( a b c ) ( a b c ) ( a b c ) Cette criture est assez lourde car elle comporte autant de termes que de valeurs 1 dans la table de vrit de la fonction. A1.3.3 Simplication dune fonction boolenne Il est possible de rduire la complexit de lcriture prcdente en regroupant des monmes pour obtenir un nombre plus rduit de termes. Par exemple, les monmes a b c et a b c pourront tre condenss dans le terme a b . Exemple : f peut ainsi scrire : ( a b ) ( a c ) Si la fonction ne comporte que quelques variables, ce processus de simplication pourra tre ralis sur une reprsentation tabule de cette fonction appele table de Karnaugh. Exemple : Table de Karnaugh de la fonction prcdente :

a=0 b=0 c=0 c=1 b=1 1

a=1 b=0 1 1 terme ac terme ab

Les zones rectangulaires pointilles dans ce tableau reprsentent des termes. Lcriture comportant le minimum de termes sera appele forme minimale et ses termes des mintermes. Elle sera utilise pour minimiser la complexit de certains organes comme des PLA. Il existe des outils informatiques [1, 2] trs puissants, capables de minimiser des fonctions boolennes trs complexes. A1.3.4 Duale dune fonction boolenne On appelle duale dune fonction boolenne f ( a , b , c ) la fonction f * = f ( a , b , c ). On montre que la fonction f * sobtient simplement en remplaant les occurrences des oprateurs par et par .

A1.3

Fonctions boolennes

301

Exemple : si f = a b alors f

= ab ;
*

si f = a ( b c ) alors f

= a ( b c ).

La notion de duale intervient dans ltude des montages CMOS.


Fonctions auto-duales

On appelle auto-duale une fonction boolenne gale sa duale. Exemple : f = a b c = ( a b c ) = f *. A1.3.5 Proprits du OU-exclusif Le ou-exclusif est une fonction boolenne trs importante, doue de plusieurs proprits trs intressantes : commutativit : a b = b a associativit : a ( b c ) = ( a b ) c = a b c lment neutre : a 0 = a et aussi : a 1 = a (a b) = a b = a b ab = a b si c = a b , alors b = a c . Toutes ces proprits sont trs utiles pour la ralisation de portes ouex et non-ouex. A1.3.6 Vision dissymtrique des fonctions boolennes Il est possible de voir de manire dissymtrique certaines fonctions boolennes : Par exemple : a b peut tre vu comme si b = 1 alors a sinon 0, cest--dire que b joue le rle dune sorte de commutateur entre la valeur de a et 0. Cette proprit est utilise soit pour slectionner une partie dun mot par un masque, soit pour forcer 0 une partie de ce mot. Exemple : a 10010110 b 00011110 (masque de slection) s 00010110 (zone slectionne) Exemple : a 10010110 b 11110000 (masque de forage) s 10010000 (zone force 0) a b peut tre vu comme si b = 1 alors 1 sinon a, cest--dire que si b vaut 1 alors la valeur de sortie est force 1. Cette proprit est utilise pour forcer 1 une partie dun mot.

Dunod La photocopie non autorise est un dlit.

302

1 Rappels dalgbre de Boole

Exemple : a 10010110 b 00001111 (masque de forage) s 10011111 (zone force 1) a b peut aussi tre vu comme si b = 1 alors 1 sinon a, cest--dire un commutateur entre lun des oprandes et son complmentaire.

BIBLIOGRAPHIE
[1] R.E. Bryant: Graph-Based Algorithms For Boolean Function Manipulation, IEEE Transaction on Computers, Vol C-35 n 8, August 1986. [2] J.-C. Madre, J.-P. Billon: Proving Circuit Correctness by Formaly Comparing their Expected and Extracted Behaviour, Proceeding of the 25th Design Automation Conference, Anaheim, june 1988.

Annexe 2

tude dune montre avec afchage

Lobjectif de cette tude est de montrer lapplication de la mthode de conception prsente au chapitre 9 sur un exemple plus complexe. Ceci permet de montrer linuence de ces extensions sur la structure du circuit obtenu et en particulier sur lintroduction dun dcodeur dans le chemin de donnes. Cet exemple est une extension de ltude de la montre simple donne comme exemple de la mthode de conception dveloppe dans le chapitre 9.

A2.1 ORGANISATION DE LAFFICHAGE


Lafchage de la montre sera ralis laide de six afcheurs 7-segments sans lectronique. Ces afcheurs recevront la mme information concernant les segments afcher. Celle-ci proviendra de deux variables de quatre bits appels : seg_low et seg_high. Ils seront individuellement slectionns par une variable de six bits appele seg_sel. Pour minimiser le matriel utilis, les six chiffres seront afchs squentiellement dix fois par seconde pour donner limpression dun afchage continu. Le temps dafchage de chaque chiffre sera donc de 1/60 seconde.

Dunod La photocopie non autorise est un dlit.

A2.2 NOUVEL ALGORITHME


Le soixantime de seconde est une ancienne unit de temps appele tierce. Le nouvel algorithme de la montre effectuera un tour par tierce. Pendant un cycle de six tierces,

304

2 tude dune montre avec afchage

H2

H1

M2

M1

S2

S1

SEG_HIGH

SEG_LOW

SEG_SEL

il effectuera lafchage des six chiffres. Dix cycles se succderont dans chaque seconde. Nous ajouterons donc deux dcomptages par six puis par dix lalgorithme de la montre. package complements is subtype quad is bit_vector(3 downto 0); -- definition format subtype hex is bit_vector(0 to 5); end complements; library vector; use vector.functions.all; use work.complements.all; entity montre_aff is port(seg_low,seg_high:out quad; seg_sel:out hex; clk, rst:in bit); end montre_aff; architecture arch1 of montre_aff is signal t1,t2,s1,s2,m1,m2,h1,h2:quad; signal valid:bit:=0; function decode_sel(entree:quad) return hex is variable res:hex; begin res:="000000"; if to_natural(entree)<6 then res(to_natural(entree)):=1; end if; return res; end decode_sel; function decode_low(entree:quad) return quad is begin case entree is when x"0" => return "0111"; when x"1" => return "0001"; when x"2" => return "0110";

A2.2

Nouvel algorithme

305

when x"3" => return "0011"; when x"4" => return "0001"; when x"5" => return "0011"; when x"6" => return "0111"; when x"7" => return "0001"; when x"8" => return "0111"; when x"9" => return "0011"; end case; end decode_low; function decode_high(entree:quad) return quad is begin case entree is when x"0" => return "1011"; when x"1" => return "0010"; when x"2" => return "0111"; when x"3" => return "0111"; when x"4" => return "1110"; when x"5" => return "1101"; when x"6" => return "1101"; when x"7" => return "0011"; when x"8" => return "1111"; when x"9" => return "1111"; end case; end decode_high; begin seg_sel<= decode_sel(t1) when valid=1 else "000000"; process(rst) -- mise dans un etat initial connu (23h 59m 40s) begin t1 <= x"0"; t2 <= x"0"; s1 <= x"0"; s2 <= x"4"; m1 <= x"9"; m2 <= x"5"; h1 <= x"3"; h2 <= x"2"; valid <= 0; end process; process variable tv1,tv2,sv1,sv2,mv1,mv2,hv1,hv2:quad; variable validv:bit; begin wait until clkevent and clk=1; --front montant de clk -- transferts signaux => variables tv1:=t1; tv2:=t2; sv1:=s1; sv2:=s2;

Dunod La photocopie non autorise est un dlit.

306

2 tude dune montre avec afchage

mv1:=m1; mv2:=m2; hv1:=h1; hv2:=h2; validv:=valid; -- description de lalgorithme validv:= 0; -- extinction de laffichage case tv1 is -- decodage des segments when x"0" => seg_low <= decode_low(sv1); seg_high <= decode_high(sv1); when x"1" => seg_low <= decode_low(sv2); seg_high <= decode_high(sv2); when x"2" => seg_low <= decode_low(mv1); seg_high <= decode_high(mv1); when x"3" => seg_low <= decode_low(mv2); seg_high <= decode_high(mv2); when x"4" => seg_low <= decode_low(hv1); seg_high <= decode_high(hv1); when x"5" => seg_low <= decode_low(hv2); seg_high <= decode_high(hv2); end case; tv1:= tv1+x"1"; validv:= 1; -- allumage de laffichage if tv1 = x"6" then -- test a 6 tv1:= x"0"; tv2:= tv2+x"1"; if tv2 = x"A" then -- test a 10 tv2:= x"0"; sv1:=sv1+x"1"; if sv1 = x"A" then sv1:=x"0"; sv2:=sv2+x"1"; if sv2 = x"6" then sv2:=x"0"; mv1:=mv1+x"1"; if mv1 = x"A" then mv1:=x"0"; mv2:=mv2+x"1"; if mv2 = x"6" then mv2:=x"0"; hv1:=hv1+x"1"; if (hv2 = x"2") and (hv1 = x"4") then hv1:=x"0"; hv2:=x"0"; elsif hv1 = x"A" then hv1:=x"0"; hv2:=hv2+x"1"; end if; end if; end if;

A2.3

Optimisation de lalgorithme

307

end if; end if; end if; end if; -- transferts variables => signaux t1 <= tv1; t2 <= tv2; s1 <= sv1; s2 <= sv2; m1 <= mv1; m2 <= mv2; h1 <= hv1; h2 <= hv2; valid <= validv; end process; end arch1; Le dcodage des chiffres BCD en 7 segments sera effectu en deux temps par deux fonctions decode_low() et dcode_high() pour utiliser les moyens du chemin de donnes de 4 bits. Les afcheurs seront slectionns par la variable seg_sel issue du dcodage de la variable t1 conditionn par le signal valid. La mise 0 de ce signal pendant le changement de la valeur de t1, de seg_low et de seg_high permet dviter une perturbation temporaire de lafchage.

A2.3 OPTIMISATION DE LALGORITHME


Plusieurs interprtations sont possibles pour donner un sens matriel linstruction case. Celle que nous choisissons consiste effectuer un adressage index des registres afcher. Pour cela nous renommeront ces registres comme une nappe de ls unique R(0 to 5) par les instructions toujours vraies suivantes :
Dunod La photocopie non autorise est un dlit.

R(0) R(1) R(2) R(3) R(4) R(5)

<= <= <= <= <= <=

h2; h1; m2; m1; s2, s1;

Ceci permet de transformer linstruction case en un couple dinstructions suivantes: seg_low <= Decode_low(to_natural(R(t1))); seg_high <= Decode_high(to_natural(R(t1))); Qui se traduira par un simple dcodeur.

308

2 tude dune montre avec afchage

A2.3.1 Organigramme Celui-ci ressemble beaucoup lorganigramme de la montre simple. La boucle est allonge 25 instructions, cela signie que cette montre fonctionnera avec une horloge plus rapide de 1 500 hz.

=x"A" h1 <= Incr(x"F") h2 <= Incr(h2)

valid<='0' seg_low <= Decode_low(R(t1)) seg_high <= Decode_high(R(t1)) t1 <= Incr(t1) x"6" =x"6" t1 <= Incr(x"F") valid<='1' valid<='1' null t2 <= Incr(t2) null x"A" =x"A" t2 <= Incr(x"F") null s1 <= Incr(s1) null x"A" =x"A" s1 <= Incr(x"F") null s2 <= Incr(s2) null x"6" =x"6" s2 <= Incr(x"F") null m1 <= Incr(m1) null x"A" =x"A" m1 <= Incr(x"F") null m2 <= Incr(m2) null x"6" =x"6" m2 <= Incr(x"F") null h1 <= Incr(h1) null x"A",x"4" =x"4" rien <= Incr(h2) null x"3" =x"3" h1 <= Incr(x"F") null h2 <= Incr(x"F") null null null null null null

A2.4

Conception du chemin de donnes

309

A2.4 CONCEPTION DU CHEMIN DE DONNES


Cette tape reprend tous les lments du chemin de donnes de la montre simple. Il ne faut lui ajouter que : Les registres t1, t2, seg_low et seg_high de 4 bits. La bascule valid Un dcodeur qui slectionne : Les registres h2, h1, m2, m1, s2, s1 pour les connecter sur le bus source. Les afcheurs h2, h1, m2, m1, s2, s1 conditionns par la bascule valid. A2.4.1 Forme standard La nouvelle forme standard tend celle de la montre classique. Elle scrira : <dest> <= <ope> <source> Les champs <dest>, <ope> et <source> de la nouvelle forme standard pourront contenir :
<dest> rien t1 t2 s1 s2 m1 m2 h1 h2 seg_high seg_low valid<=0
Dunod La photocopie non autorise est un dlit.

<ope> Incr Decode_high Decode_low

<source> X"F" t1 t2 s1 s2 m1 m2 h1 h2 R(t1)

valid<=1

Loprateur reste unaire, mais il doit maintenant tre capable de raliser trois oprations : lincrmentation comme celui de la montre simple ; le dcodage des 4 segments hauts pour lafchage 7 segments ; le dcodage des 3 segments bas pour lafchage 7 segments. Les lignes valid<=0 et valid<=1 de la colonne <dest> ne sont pas vraiment des destinations, leur dcodage provoquera la mise 0 et 1 de la bascule de validation de la slection des afcheurs.

310

2 tude dune montre avec afchage

A2.4.2 Schma du chemin de donnes

VAL1

bus_dest

OPE

2CD

test (3,4,6,A)

tests

tests

VAL

SELR(T1)

VAL0

LOS1

S1

SELS2

selection afficheurs

LOM1

M1

SEG_SEL

SELM1

LOM2

M1

bus_source

S1

SELS1

LOS2

S2

S2

M2

M2

SELM2

LOH1

H1

SELH1

LOH2

H2

SELH2

LOT2

T2

H2

H1

LOT1

T1

segments (afficheurs)

HIGH LOW

Le dcodeur et sa logique associe peuvent tre dessins comme des tranches supplmentaires largissant le chemin de donnes et simpliant son dessin. Cette extension latrale comportera un nouveau bus vhiculant le contenu du registre t1.

2CD

SEG_HIGH

SEG_LOW

SELT1

SELT2

SELF

x"F"

1CD

A2.5

Conception du squenceur

311

A2.5 CONCEPTION DU SQUENCEUR


Comme pour la montre simple, le squenceur de la montre avec afchage peut tre ralis soit laide dun PLA, soit avec des portes. Dans le cas dune ralisation avec un PLA, le nombre de micromots passera de 16 25. Le nombre de champs de chaque micro-mot passera de trois quatre et la largeur des champs <dest> et <source> passera de trois quatre bits. Le dcodeur du champ <dest> devra comporter deux irrgularits qui correspondront aux pseudo-destinations valid<=0 et valid<=1. Les sorties de leur dcodage serviront positionner la bascule valid, tandis que le chemin de donnes effectuera une opration null. Contenu du PLA :
Matrice ET etat E0 E1 E2 E3 E4 E4 E5 E6 E7 E8 E9 E9 E10 E11 E12 E12 E13 E14 E15 E15 E16 E17 E18 E18 E19 E20 E21 E21 E22 E23 conditions dest Valid<=0 Seg__Low Seg__High T1 T1 Valid<=1 Valid<=1 T2 rien rien T2 rien S1 rien S1 rien S2 rien S2 rien M1 rien M1 rien M2 rien M2 rien H1 rien Matrice OU ope Incr Decode_low Decode_high Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr source x"F" R(T1) R(T1) T1 x"F" x"F" x"F" T2 x"F" x"F" x"F" x"F" S1 x"F" x"F" x"F" S2 x"F" x"F" x"F" M1 x"F" x"F" x"F" M2 x"F" x"F" x"F" H1 x"F" et. suiv. E1 E2 E3 E4 E5 E7 E6 E9 E8 E9 E10 E11 E12 E12 E13 E14 E15 E15 E16 E17 E18 E18 E19 E20 E21 E21 E22 E23 E24 E24

=x"6" x"6"

=x"A" x"A"

=x"A" x"A"

Dunod La photocopie non autorise est un dlit.

=x"6" x"6"

=x"A" x"A"

=x"6" x"6"

312

2 tude dune montre avec afchage

Matrice ET etat E24 E24 E24 E25 E26 E26 E27 E28 E29 E30 E31 E32 E33 conditions =x"A" =x"4" x"4", x"A" =x"3" x"3" dest H1 rien rien H2 H1 rien H2 rien rien rien rien rien rien

Matrice OU ope Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr Incr source x"F" H2 x"F" H2 x"F" x"F" x"F" x"F" x"F" x"F" x"F" x"F" x"F" et. suiv. E25 E26 E26 E28 E27 E28 E29 E29 E30 E31 E32 E33 E0

Index

A
active (zone) 54 addition binaire 123 additionneur cellule 124 parallle 128 after 184 alas 70 algbre de Boole 297 approche verticale/horizontale (de dessin) 112 architecture temporelle 148 assembls (blocs) 262 assembleur de silicium 110 asservissement (de phase) 252 asynchrone 138 attribut de signal (VHDL) 183 automate 137

C
C2 158 caisson N 46 canal de cblage 116 CAO (Conception Assiste par Ordinateur) 9 chemin de donne 205 chronogramme 68 commande de slection-de chargement 220 compilateur de silicium 199, 257 comportement (description du) 201 condition de synchronisme 141 contact 55 couronne (dun circuit intgr) 7 custom (conception) 258

Dunod La photocopie non autorise est un dlit.

D
D (bascule) 157 dcodeur (de ROM) 94 dcodeurs (dans les chemins de donnes) 214 description structurelle-fonctionnelle-procdurale (VHDL) 173, 259 dessin ROM-PLA 118 squelettique 117 diffrenciateur (circuit) 156 dimensionnement portes CMOS 78

B
barrire temporelle 147 bascule 154 niveau 156 matre-esclave 156 sur transitions 156 bi-phase (horloge) 146

314

Conception des circuits VLSI

portes de transfert 86 distribution (de lhorloge) 249 drain (dun transistor MOS) 19 DRC (Design Rules Checker) 263 duale dune fonction boolenne 300

J JK (bascule) 159 jonction 16 L latch 142 dynamique 144 statique 143 liste de sensibilit 179 logique 3 tats (en VHDL) 186 dynamique 88 loi de Moore 2, 244 M machine dtats nis 137 matre-esclave 146 marge de bruit 33 masquage (techno) 42 masques (boolens) 301 matrice (ET-OU) 95 mtal (connexions) 56 mtastabilit 161 microprogramme-microinstruction 230 mobilit () 14 monde intrieur (aux circuits intgrs) 6 monme 300 monophas 141 Moore-Mealey (systmes de) 137 multiplieur 134 multi-PLL 250 N niveau logique 32, 299 O oprateur arithmtique 121 VHDL 184 oscillateur 243 P package 194 partage de charge 89 photolithographie 41 PLA 98 PLL (Phase Locked Loop) 247 plot de connexion 61 polyphas 141 polysilicium 52

E
entrance 79 ERC (Electrical Rules Checker) 263 tat courant-interne 137 Euler (parcours) 112 volution technologique 2

F
fonction boolenne 299 de conduction 73 VHDL 193 fondeur de silicium 257 forme canonique (dune fonction boolenne) 300 standard (des instructions) 208 full custom (conception) 258

G
generate (VHDL) 195 gnrateur de bloc 262 de phases 244 de temps/dinstants 236 gnration (de la retenue) 124 generic (VHDL) 196 gigue (skew) 150, 164 graphe (denchanement dtat) 139, 155 Gray (code de) 140, 162 grille (dun transistor MOS) 19

H
H (rseau de distribution de lhorloge) 250 HLFF (bascule) 158 horloge 141 Huffman (mthode de) 166

I
inverseur CMOS 26 minimal 33 isochrone (zone) 248

Index

315

porte 3 tats 85 CMOS classique 77 CVSL 84 logique 76 OUEX 82 pr-caractris 260 propagation (de la retenue) 124, 126 anticipe de la retenue 129 propret (dun signal) 70 pulse (alimentation de PLA) 100

source (dun transistor MOS) 19 sous-horloge 153 successif (fonctionnement) 219 superpos (fonctionnement) 220 synchrone 138 systme squentiel 137

T
T (bascule) 160 tableau (de transition) 139, 155 temps avant perturbation 71 dexcution-simul 172 de pr-positionnement de maintien de basculement (dune bascule) 156 de rponse (avant perturbation) 71 de traverse de pr-positionnement (dun latch) 144 rel (contrainte de conception) 204 tranche (wafer) 41 transistor MOS 19 transparence (dun bloc) 106 trous 13 type N (silcium) 15 type P (silicium) 15

R reconnaisseur 94 registre 145, 162 rgles au Lambda 107 de dessin/conception 61 symboliques 107 relation de synchronisme 141, 165 rseau de conduction 73 rsine photosensible 41 ROM (matrice de) 91, 98 RS (bascule) 154 S schma logique 259 semiconducteur 13 squenceur 205 cbl 234 signal (VHDL) 177 signaux vnementiels de valeur 69 logiques 67 SOC (System On Chip) 263 sortance 36
Dunod La photocopie non autorise est un dlit.

U
UAL (unit arithmtique et logique) 130

V
variable (VHDL) 178 VCO (Voltage Controlled Oscillator) 247 vrication formelle 263 VHDL-Verilog 171 vision dissymtrique (dune fonction boolenne) 301

50036 (I) (1,4) OSB 80 ALL JME Achev dimprimer sur les presses de SNEL Gracs sa Z.I. des Hauts-Sarts - Zone 3 Rue Fond des Fourches 21 B-4041 Vottem (Herstal) Tl +32(0)4 344 65 60 - Fax +32(0)4 289 99 61 mars 2007 41205 Dpt lgal: mars 2007 Imprim en Belgique

SCIENCES SUP

Franois Anceau, Yvan Bonnassieux

CONCEPTION DES CIRCUITS VLSI


DU COMPOSANT AU SYSTME
La matrise de la conception des circuits intgrs VLSI (Very Large Scale Integration) est ncessaire au dveloppement dune industrie lectronique performante. Cet ouvrage prsente les techniques de conception des circuits intgrs CMOS complexes, du composant jusqu l'aspect systme. Il aborde par consquent les grands principes de la micro-lectronique. Les auteurs prsentent les mthodes et les techniques sous-jacentes au travail de conception de circuits full custom . Les approches modernes de conception par compilation de silicium sont galement abordes. Un exemple complet de conception partir d'une description comportementale est trait. Destin aux lves ingnieurs et aux tudiants en Master dlectronique et dinformatique, ce cours est complt par de nombreux exercices de conception avec corrigs. Cet ouvrage intressera galement les chercheurs et les ingnieurs.
FRANOIS ANCEAU est professeur au Conservatoire National des Arts et Mtiers, chercheur au laboratoire SOC/Lip6 de luniversit Pierre et Marie Curie, fondateur du service CMP de ralisation de circuits intgrs pour lenseignement et la recherche. YVAN BONNASSIEUX est matre de confrences lcole Polytechnique, agrg, ancien lve de lEcole Normale Suprieure de Cachan.

MATHMATIQUES

PHYSIQUE

CHIMIE

SCIENCES DE LINGNIEUR

INFORMATIQUE

SCIENCES DE LA VIE

SCIENCES DE LA TERRE

LICENCE

MASTER

DOCTORAT

1 2 3 4 5 6 7 8
6494454 ISBN 978-2-10-050036-9

www.dunod.com