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
  
  
   

       




       
    
        

      
     
  


 
       
 ! " 
     #
      
 
  $ %    $    


 
 % 
    
 $&
' 
   
   
(         )   '&   '  
  

*$ %  '  

 &   $&  &    
  
    + %    ,  &   $ % 
  
   - 

Dunod La photocopie non autorise est un dlit.

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

10

CHAPITRE 2 DU SILICIUM LINVERSEUR CMOS

13

2.1. Semiconducteurs
2.1.1 Semiconducteur intrinsque
2.1.2 Semiconducteur de type N
2.1.3 Semiconducteur de type P

13
13
15
15

2.2. Diode/jonction

15

2.3. Capacit MOS

16

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

19
20
24
24

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

41

3.1. Introduction
3.1.1 Photolithographie optique

41
42

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

44
44
46
49
51
54
55
56
58
59

3.3. Principes de dfinition des rgles de dessin


3.3.1 Les diffrents types de contraintes
3.3.2 Exemples de rgles de dessin

61
62
63

CHAPITRE 4 RSEAUX DE CONDUCTION ET PORTES

67

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)

67
67
68
69
70
71

4.2. Le transistor vu comme un interrupteur


4.2.1 Imperfections

72
72

4.3. Rseaux de conduction


4.3.1 Logique de conduction
4.3.2 Utilisation des rseaux de conduction

73
73
75

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

76
76
77
80
85

Dunod La photocopie non autorise est un dlit.

Table des matires

VII

4.5. Logique dynamique


4.5.1 Logique Domino
4.5.2 Partage de charges

88
89
89

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

91
91
94
95
98
98
100
100
103

CHAPITRE 5 DESSIN DES MASQUES DUN CIRCUIT INTGR

105

5.1. Dfinition du problme

105

5.2. Conception topologique

106

5.3. Rgles symboliques


5.3.1 Rgles dites au Lambda
5.3.2 Dessin symbolique sur grille

107
107
108

5.4. Couches technologiques et flux dinformation


5.4.1 Organisation matricielle du dessin des blocs
5.4.2 Affectation des flux aux couches technologiques

109
109
111

5.5. Dessin des portes CMOS classiques


5.5.1 Dessin dun rseau de conduction
5.5.2 Dessin des portes classiques

111
112
113

5.6. Dessins squelettiques

117

5.7. Dessin des ROM et des PLA


5.7.1 Matrices NOR
5.7.2 Matrices NAND

118
118
119

5.8. Assemblage des macro-blocs dun circuit

120

CHAPITRE 6 OPRATEURS ARITHMTIQUES

121

6.1. Introduction
6.1.1 Oprations ralises
6.1.2 Reprsentation des nombres

121
121
122

6.2. Additionneur
6.2.1 Rutilisation de laddition
6.2.2 Addition binaire
6.2.3 Synthse dune cellule dadditionneur

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

130
130
131
131
131

6.4. Multiplieur cbl


6.4.1 Multiplieur simple

134
134

CHAPITRE 7 SYSTMES SQUENTIELS

137

7.1. Dfinitions
7.1.1 Reprsentation du comportement des systmes squentiels

137
139

7.2. Systmes squentiels asynchrones

139

7.3. Systmes squentiels synchrones


7.3.1 Ralisation des systmes synchrones

140
142

7.4. Systmes polyphass


7.4.1 Notion de latches
7.4.2 Systmes polyphass

142
142
145

7.5. Systmes monophass


7.5.1 Bascules
7.5.2 Systmes monophass

153
154
162

7.6. Systmes mixtes monophass/polyphass

168

CHAPITRE 8 LMENTS DE VHDL

171

8.1. Bref historique des langages de description du matriel

171

8.2. Structure dune description VHDL


8.2.1 Lentit
8.2.2 Larchitecture

173
174
174

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

175
175
177
178
180

8.4. Types des signaux et des variables


8.4.1 Types standard et drivs
8.4.2 Types IEEE

180
180
182

8.5. Expressions
8.5.1 Attributs des signaux

183
183

Table des matires

Dunod La photocopie non autorise est un dlit.

8.5.2 Oprateurs
8.5.3 Temps de transit

IX

184
184

8.6. Instructions de connexion conditionnelle


8.6.1 Multiplexeurs
8.6.2 Logique 3 tats et latches
8.6.3 Blocs

185
185
186
187

8.7. Comportement temporel des descriptions


8.7.1 Intervalle temporel de dfinition des signaux
8.7.2 Cas des dispositifs temps de rponse trs long

187
187
188

8.8. Instructions spcifiques 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

189
189
190
190
191
192
192

8.9. Descriptions comportementales

193

8.10. Fonctions
8.10.1 Programmation des fonctions
8.10.2 Fonctions de rsolution de conflits

193
193
194

8.11. Packages
8.11.1 Mise en uvre des packages

194
195

8.12. Duplication et paramtrisation du matriel


8.12.1 Structures vectorielles et matricielles
8.12.2 Paramtrisation du matriel

195
195
196

8.13. Matriel complmentaire


8.13.1 Environnement de simulation

197
197

CHAPITRE 9 CONCEPTION ALGORITHMIQUE DES CIRCUITS VLSI COMPLEXES

199

9.1. Introduction

199

9.2. Domaines dapplication de cette technique de conception

200

9.3. Description du comportement


9.3.1 Description du squencement
9.3.2 Choix du compromis cot/performance

201
201
203

9.4. Dmarche gnrale de conception

205

9.5. Conception du chemin de donnes


9.5.1 Spcification 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

207
207
208
210

Conception des circuits VLSI

9.6. Architecture temporelle


9.6.1 Fonctionnements relatifs du squenceur et du chemin de donnes

218
219

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

223
223
224
224
226
226
226

9.8. Autres organisations possibles de squenceur


9.8.1 Squenceurs microprogramms
9.8.2 Squenceurs cbls

230
230
234

9.9. Dessin des squenceurs

240

CHAPITRE 10 MCANISMES DHORLOGERIE

243

10.1. Mcanismes classiques dhorlogerie

243

10.2. Horlogerie des circuits rapides et complexes


10.2.1 Notion de zone isochrone
10.2.2 Distribution de lhorloge

244
248
249

10.3. Vers le futur

253

CHAPITRE 11 OUTILS ET MTHODES DE CONCEPTION DES CIRCUITS INTGRS COMPLEXES

257

11.1. Contexte

257

11.2. La matrise des cots de conception

258

11.3. Circuits compils

259

11.4. Circuits custom


11.4.1 Styles de conception

261
262

11.5. Vrification de la conception

262

11.6. Systmes intgrs SOC (Systems On Chip)

263

11.7. La suite

264

CHAPITRE 12 EN GUISE DE CONCLUSION

267

EXERCICES

269

Dunod La photocopie non autorise est un dlit.

Table des matires

XI

ANNEXE 1 RAPPELS DALGBRE DE BOOLE

297

A1.1. Dfinition

297

A1.2. Interprtation

298

A1.3. Fonctions boolennes


A1.3.1 Terme
A1.3.2 Forme canonique dune fonction boolenne
A1.3.3 Simplification 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

299
299
300
300
300
301
301

ANNEXE 2 TUDE DUNE MONTRE AVEC AFFICHAGE

303

A2.1. Organisation de laffichage

303

A2.2. Nouvel algorithme

303

A2.3. Optimisation de lalgorithme


A2.3.1 Organigramme

307
308

A2.4. Conception du chemin de donnes


A2.4.1 Forme standard
A2.4.2 Schma du chemin de donnes

309
309
310

A2.5. Conception du squenceur

311

Chapitre 1

Dunod La photocopie non autorise est un dlit.

Introduction

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 profit 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 spcifiques 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 spcificit 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
Prvision Intel

1 000 000 000

100 000 000

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

10 000 000

1 000 000

INTEL

MOTO / IBM

MC68020
100 000

I386
I286

MC 68000
10 000

I8086

MC6800

1 000
1970

Figure 1.1

I8008
I4004
1975

1980

1985

1990

1995

2000

2005

2010

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

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

0,1

0,01
1960

Figure 1.2

1.2

1970

1980

1990

2000

2010

2020

volution de la taille des motifs minimaux de la technologie

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.

Dunod La photocopie non autorise est un dlit.

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 fin 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 dfinitive (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 amplificateurs de courant.

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


Puissance dissipe
W/cm2

10 00

Cur de racteur nuclaire


1 00

PII

P4 3Ghz
PIII P4 1,5Ghz

Plaque de cuisson
10

P Pro
Pentium

I386

I486

Familles technologiques

1.5

Figure 1.3

0.7

0.5 0.35 0.25 0.18 0.13 0.1

0.07

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 bnficier dun sursis momentan.

Dunod La photocopie non autorise est un dlit.

1.3

PETIT HISTORIQUE DE LA CIRCUITERIE LOGIQUE

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

Dunod La photocopie non autorise est un dlit.

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

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 damplificateurs 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 amplificateurs multi-tages pour les sorties, des dispositifs de protection lectrique pour les entres, et des plots de connexion suffisamment
gros pour que lon puisse se connecter dessus. Vue de lintrieur du circuit intgr,
la commande dun dispositif sur la carte ncessite une amplification et un ralentissement des signaux comparables ceux ncessits par la commande de dispositifs
lectromcaniques partir dune carte lectronique. Cela signifie 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 spcificits 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 signifie 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
difficiles 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 spcificits de la technologie des
circuits intgrs. Cette option a t prise pour au moins deux raisons :

Dunod La photocopie non autorise est un dlit.

Les spcificits 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 spcifiques la micro-lectronique redeviendrait donc possible sans perturber lespace cognitif des concepteurs.

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 justifier 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 fin 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 :
spcification (contractuelle) des futurs circuits ;
vrification de leur comportement (par simulation puis par vrification 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 finit 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 profit de linformatique.

1.6

Les langages de conception

11

BIBLIOGRAPHIE

Dunod La photocopie non autorise est un dlit.

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

Chapitre 2

Du silicium linverseur CMOS

Dunod La photocopie non autorise est un dlit.

2.1

SEMICONDUCTEURS

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

+
-

+
--

--

+
--

--

--

--

--

--

Cristal de silicium

--

--

Figure 2.1

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

Figure 2.3

lectron mobile

- -

- -

- -

- +

- P

- +

Semiconducteur de type N

Dunod La photocopie non autorise est un dlit.

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

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 (figure 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

trou mobile

Figure 2.4

- -

- -

- +

+
+

- -

- -

- -

Semiconducteur de type P

mobiles respectives vers la jonction o elles sannihilent provoquant leur ralimentation, do un courant (figure 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 (figure 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 (figure 2.8).
Au repos, le substrat contient des charges ngatives fixes (les atomes de semiconducteur ioniss) et des charges positives mobiles (les trous).
Supposons que le substrat soit maintenu un potentiel fixe (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 (figure 2.9).

2.3

Capacit MOS

17

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

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

type N

jonction

Figure 2.5

type P

Jonction N/P

+
i

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

type N

Figure 2.6

recombinaisons

type P

Courant direct au travers une jonction

Dunod La photocopie non autorise est un dlit.

i=0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

type N

Figure 2.7

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

zone
dplte

type P

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 suffisamment importante pour inverser le type du
semiconducteur qui va devenir localement de type N puisque ses charges mobiles
deviennent des lectrons (figure 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

2.4

Transistor MOS

19

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 (figure 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+)

drain (N+)

canal

Figure 2.11

Transistor MOS de type N

Dunod La photocopie non autorise est un dlit.

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

drain
substrat

grille

substrat

grille

source

source

Transistor N

Transistor P
Figure 2.12

20

2 Du silicium linverseur CMOS

Les symboles utiliss pour reprsenter les transistors refltent 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
(figure 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+)

Figure 2.14

drain (N+)

Polarisation dun transistor MOS de type N

2.4

Transistor MOS

21

La charge lectrique contenue dans cette tranche sera :

dq = ---- W dx ( vg vt ( x ) )
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
dt = ------ = dx --------dv
v
do :
dx 2

i ----------- = ---- W dx ( vg vt ( x ) )
dV
e
W
i dx = ----- ( vg vt ( x ) )dv
e
en intgrant le long du canal et en prenant directement vt comme variable, on obtient :
L
W vd
i dx = ----- ( vg vt ) dv
e vs
0

W vd
i = ---- ----- ( vg vt ) dv
e L vs
W

---- = c ox est la capacit dun carr unitaire de la grille vis--vis du substrat, ----- est
L
e
le facteur de forme du transistor.
Cette intgration peut se faire graphiquement. Nous supposerons que vt varie linairement le long du canal (figure 2.15) :
vt

Dunod La photocopie non autorise est un dlit.

vg
i

Vt0
v (le long du canal)
vs

vd
Figure 2.15

22

2 Du silicium linverseur CMOS

Plusieurs cas sont considrer :

vd petit (figure 2.16) :


vt
vg

Vt0
v (le long du canal)
vs vd
Figure 2.16

Le courant est alors de la forme :


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

vd ( vg V t 0 ) (figure 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
i = c ox ----- ( vg V t 0 )vd --------

L
2
Cette zone de la caractristique du transistor est appele quadratique.

vd ( vg V t 0 ) (figure 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 :

Dunod La photocopie non autorise est un dlit.

id

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 signifie 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 (figure 2.23).
La polarisation locale de la capacit grille ne varie pas linairement le long du canal
(figure 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 (figures 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

Figure 2.21

25

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
Dunod La photocopie non autorise est un dlit.

caractristique relle

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 (figure 2.25).
Considrons les diffrentes zones de la caractristique de transfert (figure 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

Lexpression du courant commun est :

Vout = 0 v.

2.5

Linverseur CMOS

Figure 2.25

27

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

Vout
A

B
C

D
E
Vdd

Vin

Dunod La photocopie non autorise est un dlit.

Figure 2.26

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

28

2 Du silicium linverseur CMOS

si Ln = Lp = dimension minimale, alors :


Wp

-------- = -----nWn
p
lgalit des courants se simplifie en :
( V in V T ) 2 = 2 ( Vdd V in V T ) ( Vdd V out ) ( Vdd V out ) 2

(1)

que lon drive par rapport Vin et Vout :


2 ( V in V T )dV in = 2 [ ( Vdd V out )dV in + ( Vdd V in V T )dV out ]
+ 2 ( Vdd V out )dV out
dV out
dV ou
V in V T ) = ( Vdd V out ) + ( Vdd V in V T ) ------------- + ( Vdd V out ) ------------
dV in
dV in
Le point est choisi de manire que pour toute tension < Vin linverseur namplifie pas le bruit qui pourrait tre superpos son signal dentre. Cela correspond la
relation :
dV out
------------- = 1
dV 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 T ) 2 = 2 ( Vdd V in V T ) ---------- V in ---------- V in
2
2

3
Vdd
= ---------- V in --- Vdd V in 2V T
2
2

3
2
V T = 4V in V T 2VddV in + --- Vdd 2 VddV T
4
V
3
2V in ( Vdd 2V T ) = ( Vdd 2V T ) --- Vdd + ------T-
4
2
do :
1
V in = --- ( 3Vdd + 2V T )
8
Calcul de la tension de sortie : de 2) on dduit :
Vdd
V out = ---------- + V in
2

(2)

2.5

Linverseur CMOS

29

en tenant compte de lexpression de Vin :


Vdd 1
V out = ---------- + --- ( 3Vdd + 2V T )
8
2
1
V out = --- ( 7Vdd + 2V T )
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
i = --- n c ox ------- ( V in V T ) 2
Ln
2
2
W n 3 Vdd
1
= --- n c ox ------- --- ---------- V T

Ln 4 2
2
2
W n Vdd
9
i = ------ n c ox ------- ---------- V T

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 :

Dunod La photocopie non autorise est un dlit.

2
W n Vdd
1
i = --- n c ox ------- ---------- V T

Ln 2
2

comme il peut aussi scrire :


Wn
1
i = --- n c ox ------- ( V out V T ) 2
Ln
2
qui ne dpend pas de Vin. Le gain de linverseur, considr comme un amplificateur
analogique, est donc thoriquement infini. Pratiquement, les effets parasites le
ramnent une valeur voisine de 10.

30

2 Du silicium linverseur CMOS

Point

Lexpression du courant commun est :


Wn
Wp
1
1
2
2
= --- n c ox ------- [ 2 ( V in V T )V out V out ] = --- p c ox -------- ( Vdd V in V T )
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 :


dV out
dV out
V out + ( V in V T ) ------------- V out ------------- = ( Vdd V in V T )
dV in
dV in
Le point est choisi avec des contraintes semblables celles du point , do :
dV out
------------- = 1
dV in
on obtient :
Vdd
V out = V in ---------2

(4)

que nous reportons dans (3) :


Vdd
Vdd 2
2 ( V in V T ) V in ---------- V in ---------- = ( Vdd V in V T ) 2

2
2
Ce qui donne, aprs dveloppement :
V
5
2V in ( Vdd 2V T ) = ( Vdd 2V T ) --- Vdd ------T-
4
2
do :
1
V in = --- ( 5Vdd 2V T )
8
Calcul de la tension de sortie : on reporte la valeur de Vin dans (4) :
1
Vdd
V out = --- ( 5Vdd 2V T ) ---------8
2
1
V out = --- ( Vdd 2V T )
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
i = --- n c ox ------- [ 2 ( V in V T )V out V out
]
Ln
2

2.5

Linverseur CMOS

31

De (3) liminons Vout :


Wn
1
Vdd
Vdd 2
i = --- n c ox ------- 2 ( V in V T ) V in ---------- V in ----------

Ln
2
2
2
Remplaons Vin par sa valeur au point :
Wn
1
1
1
Vdd
i = --- n c ox ------- 2 --- ( 5Vdd 2V T ) V T --- ( 5Vdd 2V T ) ----------
8

Ln 8
2
2
1
Vdd 2
--- ( 5Vdd 2V T ) ----------
8

2
qui se rcrit en :
2
W n Vdd
9
i = ------ n c ox ------- ---------- V T

Ln 2
32

9
On remarque que i = i = ------ i = 0,56i , ce qui est vident par symtrie.
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.

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

Vdd

VT

valeur logique "1"

seuil haut
valeur logique indfinie
seuil bas
VT

valeur logique "0"


t

Figure 2.28

Vout

porte su
suivante
ivante

marges
de bruit

Vin

Vdd
Figure 2.29

Marges de bruit

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
n c ox ------- = p c ox -------Ln
Lp
soit, en supposant Cox et L identiques pour les deux transistors :

Dunod La photocopie non autorise est un dlit.

Wp

-------- = -----nWn
p

Figure 2.30

voisin de 2

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 (figure 2.31). La construction dun modle mathmatique crdible pour dterminer ces valeurs est beaucoup trop complexe.
Inverseur tudier

points d'observation
Figure 2.31

Figure 2.32

Montage de test dun inverseur

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

Influence de la largeur relative des transistors N et P

Laugmentation de la largeur du transistor P finit par ralentir la descente du signal


de sortie de la porte modifie car cet largissement augmente la capacit de sortie de
la porte.

Dunod La photocopie non autorise est un dlit.

b) Temps de propagation en fonction de la charge

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 )

500

(3)

temps de propagation ps

450
400
350
300
250
200
150
100

capacit de
sortie (25ff)

50

charge ff

0
-30

Figure 2.35

-20

-10

10

20

30

40

50

60

70

80

90

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

Dunod La photocopie non autorise est un dlit.

charge 1

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) Influence 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 coefficient, 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 fixes, 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 modification homothtique de la
chane de portes (2.5.4.d).
Cs Cch
= K ------- + ----------
Ce Ce
Posons = Cch Ce pour reprsenter le coefficient 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
coefficient 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)

Dunod La photocopie non autorise est un dlit.

le fait que tous les inverseurs de la chane aient le mme coefficient de charge signifie
que :
CF
------- = n
Ce
soit :
CF
log ------- = n log ( )
Ce
Remplaons n dans (4) par sa valeur :
CF
log -------
Ce
Cs
T = --------------------- K ------- +
Ce

log

40

2 Du silicium linverseur CMOS

CF
1 Cs
1
1
dT = K log ------- -----------------2- --- ------- + + ----------- d
log
Ce ( log ) Ce
La valeur minimale de T est obtenue pour :
CF
1 Cs
1
dT
1
------- = K log ------- -----------------2- --- ------- + + ----------- = 0
log
Ce ( log ) Ce
d
do :
Cs 1
------- --- + ( log 1 ) = 0
Ce
soit :
Cs 1
log = ------- --- + 1
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 figures 3.1 et 3.2 montrent de manire rapide les diffrentes tapes de cette
technologie. Celles-ci seront plus dtailles dans les chapitres suivants.

Dunod La photocopie non autorise est un dlit.

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 dfinir 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.
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 fine couche de rsine photosensible qui recouvre une tranche
de semi-conducteur. Ces motifs dfinissent les diffrentes rgions dun circuit intgr
telles que : les zones de dopage, les connections mtalliques, les points de contacts, etc.
Les motifs de rsine dfinis 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 fine 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 figure 3.3. Cette mthode
peut entraner des dgradations des masques surtout en prsence de poussires.
Source lumineuse

Lentille

Masque
Rsine
Substrat

Dunod La photocopie non autorise est un dlit.

Figure 3.3

Masquage par contact

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 (figure 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 modifi 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 field 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 (figure 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

Cristal de silicium

Interface solide /
liquide

Creuset en silice

Dunod La photocopie non autorise est un dlit.

Graphite

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 (figure 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 (figure 3.7).
c) Gravure de la silice

La silice est ensuite grave par attaque chimique ou par plasma (figure 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

Vue en coupe

Masque caisson N

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

Dunod La photocopie non autorise est un dlit.

Figure 3.7

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 (figure 3.9).
Seule la zone non protge par la silice est dope. Cette dernire ralise donc un
masque qui dfini 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 flux 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 filament 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 flux. 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 dflexion et de focalisation permettent de diriger le flux 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 (figure 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
(figure 3.11).

Dunod La photocopie non autorise est un dlit.

b) Croissance de loxyde de champ

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 (figure 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

Vue en coupe

Masque zone active

Caisson N

Rsine

Nitrure de Silicium
SiN

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 finale des circuits intgrs et comme protection contre
les rayures et lhumidit.
3.2.4 tape 3 : ralisation des grilles

Dunod La photocopie non autorise est un dlit.

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.

a) Croissance de loxyde mince

Cette tape commence par la croissance thermique de loxyde mince sur toute la surface de la tranche (figure 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) (figures
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) (figure 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 flux 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 fiabilit.
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

Vue en coupe

Masque polysilicium

Polysilicium
Caisson N

Rsine

FOX
Oxyde mince

Substrat type P

Vue de dessus

Masque polysilicium

Dunod La photocopie non autorise est un dlit.

Figure 3.14

Figure 3.15

Figure 3.16

tape 3 (masquage du polysilicium)

tape 3 (gravure du polysilicium)

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+ (figure 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 (figure 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

Polysilicium

Caisson N
Rsine
Zones P+

Zone P+

Substrat type 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 (figure 3.19).
3.2.6 tape 5 : ralisation des via des contacts

Dunod La photocopie non autorise est un dlit.

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.

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

Rsine
Zones N+

Zone N+
Substrat type P

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 figure 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 (figure 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

Figure 3.20

57

tape 5 (masquage des contacts)

Vue en coupe

Silice
planarise

Rsine

Dunod La photocopie non autorise est un dlit.

Figure 3.21

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
(figure 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 difficile 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 flux 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 flux 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 (figure 3.23).


Vue en coupe

Silice
planarise

Vue de dessus

Dunod La photocopie non autorise est un dlit.

Figure 3.23

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 finition 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 dfinition 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 fils 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 fins fils dor thermo-compresss entre les plots des circuits et ceux de
leurs botiers. Un test final permet de sassurer du bon fonctionnement des circuits
monts.

Dunod La photocopie non autorise est un dlit.

3.3

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 dfinissent les conditions pour quun circuit fonctionne
convenablement et quil soit fiable. Les rgles de dessin constituent une simplification
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 fiabilit.
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 identifies. 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 modifie.
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 dfinition 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 fiabilit

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

Dunod La photocopie non autorise est un dlit.

3.3.2 Exemples de rgles de dessin


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 figure 3.25.
La dimension de louverture (note R1 sur la figure) qui est contrle par la rsolution de la photolithographie (on accepte larrondissement de louverture). Dans les
technologies actuelles, la taille des contacts est fixe.
Le dbordement des mtaux (note R2 sur la figure) 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 figure suivante, impose que le polysilicium soit sur loxyde
pais (FOX) donc une distance minimale de la zone active (rgle note R3 sur la
figure 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 (figure 3.27).

3.3

Principes de dfinition des rgles de dessin

Dunod La photocopie non autorise est un dlit.

Figure 3.27

Exemple de rgles 0,6 m

65

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

Dunod La photocopie non autorise est un dlit.

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 dfinie.
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 figures 4.2 4.6.

1
t
0
transition

Figure 4.2

Transition entre une valeur 1 suivie dune valeur 0

1
nouvelle valeur dfinie

valeur dfinie

0
transition

Figure 4.3

Transition entre deux valeurs dfinies non connues

v
1
nouvelle valeur dfinie

valeur dfinie
0

valeur non
dfinie

Figure 4.4

Valeur non dfinie entre deux valeurs dfinies non connues

relation de causalit
t

Figure 4.5 Relation de causalit


entre une transition et le dbut dune valeur dfinie 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 dfinie connue

Les valeurs dfinies non connues peuvent avoir une valeur (stabilise) 1 ou 0 suivant
le fonctionnement particulier du montage. Les valeurs non dfinies 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 :

Dunod La photocopie non autorise est un dlit.

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) (figure 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 dfinies sans ambigut. Le signal doit donc tre
exempt de toute transition parasite qui crerait des vnements non souhaits.

vnement

Figure 4.7

vnement

Signal vnementiel

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

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 (figure 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 modifier ltat du systme (figure 4.9).

parasites
vnement

vnement

vnements
parasites

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, selfiques), 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
afficher des valeurs transitoires incorrectes avant dafficher la valeur dfinitive 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)
valeurs transitoires (alas)

Sorties

Sortie

Entres

t. avant perturbation

valeurs
stabilises

temps de rponse

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 finale,
que nous appellerons le temps de rponse du circuit combinatoire (figure 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)

Dunod La photocopie non autorise est un dlit.

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 (figure 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.
horloge initiale

condition
(complmente)

Figure 4.11

horloge
conditionne

Conditionnement dune horloge

72

4.2

4 Rseaux de conduction et portes

LE TRANSISTOR VU COMME UN INTERRUPTEUR

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

satur

Vd

bloqu

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) (figure 4.13).

g
s
Figure 4.13

g
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 (figure 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

Vt
Vdd

Vdd-Vt

0v
t
Figure 4.14

4.3

Mauvaise transmission des 1 par un transistor N

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 signification 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 (figure 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

A B

Dunod La photocopie non autorise est un dlit.

Figure 4.15

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 (figure 4.16).

A
A

A B

A B
Figure 4.16

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 (figure 4.17).

A
A

AB

A B
Figure 4.17

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

g3
g1

g2
g4

Figure 4.18

Exemple dun rseau N ralisant la fonction de conduction : g1 g2 ( g3 g4 )

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

Dunod La photocopie non autorise est un dlit.

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 (figure 4.20). Chacun deux ne transmet quune partie du tableau de vrit
de la fonction raliser qui peut tre complte ou partiellement dfinie. 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] (figure 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 .

76

4 Rseaux de conduction et portes

rseau i
S

a
rseau j
b

rseau k
u
Figure 4.20

Signal gnr par plusieurs rseaux de conduction

nb de "1"
"0"

"0"

"0"

"0"

"1"

0
"0"

B3

"0"

B3

Figure 4.21

4.4

B2

"0"

B2

B1

"0"

B1

B0

B0

Circuit Tally vu comme un rseau dinterrupteurs

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

Dunod La photocopie non autorise est un dlit.

Rseau de Tr N
=> fonction de conduction f
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

C
S = ((A V B)

C)

B
S

C
rseau N

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

4
rseau P

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 linfluence 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 coefficient dsir.

Dunod La photocopie non autorise est un dlit.

Calcul de lentrance des portes

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

larg. Tr. N

larg. Tr. P

larg. Tr. P + N.

quiv. inv

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 fil (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 simplifis 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

sous-rseau commun

S1 = (A V B V E)
A

S2 = (A V B V (C
A

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.

r1

S
r2

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 :

Dunod La photocopie non autorise est un dlit.

Figure 4.27

HC

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,

A si B = 1

b
OUEX

I1

a
a

S
b

NON-OUEX

I2

a
a
b

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 (figure 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 figure 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

Figure 4.29 Porte OUEX


constitue dun interrupteur et dun inverseur alimentation commande

Figure 4.30

Porte OUEX quatre transistors

Dunod La photocopie non autorise est un dlit.

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 figure 4.31 :
Cette porte possde linconvnient de gnrer une sortie 1 altre lorsque A = B = 1.

B
Figure 4.31

Porte NON-OUEX quatre transistors

84

4 Rseaux de conduction et portes

Porte MINORIT

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

B
A

C
S = Min(A,B,C)

B
A

Figure 4.32

Porte MINORIT symtrique (et duale)

En fait, les rseaux N et P sont bien duaux. Pour le voir, il suffit 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 bnfice 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 dfinie. Pour certaines configurations des entres, aucun
rseau ne dfinit 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).

S
C

Dunod La photocopie non autorise est un dlit.

Figure 4.34

Symbole gnral dun inverseur 3 tats

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 dfinit la valeur logique de ce nud, tandis que toutes les autres sont isoles.
bus

ssource
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

Figure 4.36

Inverseur 3 tats obtenu avec un interrupteur CMOS

Modification 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

entres

transistors
d'isolation

Vdd

rseau P

entres

Figure 4.37

rseau N

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 identifier 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 suffisamment 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
S

E
Sel

Figure 4.38

Interrupteur suivant un inverseur

Chemin de charge de la capacit de sortie

Vdd

Sel
4
E

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

2
2

Sel

Figure 4.40

4.5

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

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

VS

Entres
f
rseau N

dcharge

P
prcharge
Figure 4.41

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

VDD

VDD

VS
f1

f2
f2

f3

123

entres

Dunod La photocopie non autorise est un dlit.

niveau 1

niveau 2

niveau 3

Figure 4.42

prcharge dcharge (effet domino)

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

2
2

V1

V2

C1
1
1

Figure 4.43

S
C2

2
2

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 final est :
C1V 1 + C2V 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

S
T3

Figure 4.44

CS

T4

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
S

Figure 4.45

4.6

Portes 3 tats sans effet de partage de charges

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

Dunod La photocopie non autorise est un dlit.

Lignes de
slection

Matrice de ROM

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 profil 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 profils 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 flux 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 :

E0

Lignes de
slection

Vdd

Vdd

Vdd

Vdd

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 profil de sortie
est associ chaque ligne de slection. La dfinition de ce profil, 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 flux 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

E0

Lignes de
slection

1
Vdd

0
Vdd

1
Vdd

E1 0

E2 1

Figure 4.48

Matrice de NAND

c) Rappel des lignes de sortie

Dunod La photocopie non autorise est un dlit.

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

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 modifier
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 modification, 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 signifie 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 modification, 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 profils 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 profils 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 profil en entre et un autre enregistr dans la matrice sous la forme
de transistors. Il suffit 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 (figure 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 configuration 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 configuration 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 configuration 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 profil 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 configuration deux transistors nest jamais conductrice donc liminer (figure 4.50).

Dunod La photocopie non autorise est un dlit.

4.6.3 PLA-ROM
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 (figure 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

0
Vdd

Vdd

Lignes
de sortie

Vdd

E0

E1

E3

E2

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 profil 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 (figure 4.52).
Dans le cas dun PLA NAND-NAND, la reconnaissance dun profil 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 (figure 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

Vdd

Vdd

Vdd

Vdd

Dunod La photocopie non autorise est un dlit.

Matrice ET

Vdd

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
modifier 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
(figure 4.55).
Lutilisation de portes NAND se justifie par le fait qelles ncessitent des transistors P plus petits, malgr la ncessit dun inverseur supplmentaire qui peut servir
damplificateur 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 =

(E j, Ek )

mi =

(E j, Ek )

qui peut se rcrire :

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 justifie le nom de matrice ET donn au reconnaisseur.


Le fonctionnement de la matrice OU est donn par lexpression :
sp =

( mi )
i

do, pour lensemble du PLA :


sp =

( (E j, Ek ))
i

Dunod La photocopie non autorise est un dlit.

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

ce qui justifie, une ngation prs, le nom de matrice ET donn au reconnaisseur.


Le fonctionnement de la matrice OU est donn par lexpression :
sp =

( mi )
i

100

4 Rseaux de conduction et portes

qui peut se rcrire :


sp =

( mi )
i

do, pour lensemble du PLA :

( (E j, Ek ))

sp =

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 raffine 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
Dunod La photocopie non autorise est un dlit.

Vcc

1 2

2
1
sortie

entre

Figure 4.57

PLA NOR-NOR biphas

102

4 Rseaux de conduction et portes

entres
maintenues
0

entres
actives

prcharge
sorties

dcharge
sorties

Matrice ET
mmorisation
et transfert

entres
maintenues
0

entres
actives

prcharge
sorties

dcharge
sorties

Figure 4.58

Matrice OU

Fonctionnement du PLA NOR-NOR biphas

b) PLA NAND-NAND dynamique

La ralisation dun PLA NAND-NAND dynamique est plus simple puisquil suffit
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
2
1
1

1
1
1
1

1
1

2
2

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 difficult 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 efficaces 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

Dunod La photocopie non autorise est un dlit.

Figure 4.60

OU

Optimisation des PLA par cration de zones vides

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

Dunod La photocopie non autorise est un dlit.

5.1

DFINITION DU PROBLME

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 efficace. 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 (figure 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 (figure 5.2). Cet assemblage doit se faire
le plus efficacement 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 fils 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 figure 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 (figure 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

5.3

Transparence dun bloc

RGLES SYMBOLIQUES

Dunod La photocopie non autorise est un dlit.

Lutilisation des rgles technologiques se heurte leur spcificit 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 :
dessin sur grille ;
dessins symboliques pas fixe 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 dfinitivement fix 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 suffisamment grand pour permettre la
transposition directe des dessins vers cette technologie (figure 5.5).

Figure 5.5

Exemple de dessin au Lambda

Le principal inconvnient de cette approche rside dans le fait que ces rgles,
dfinies pour la technologie nMOS de la fin 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 fixe (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
(figure 5.6). Toutefois, le dessin est ralis laide de symboles (souvent paramtrables
qui reprsentent des lments (transistors, contacts, fils). 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 fines
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 flux dinformation

pas

segment
mtal 1

contact
Figure 5.6

109

segment
poly

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

Dunod La photocopie non autorise est un dlit.

Un circuit intgr est dabord une surface plate qui offre son concepteur un certain
nombre de couches technologiques correspondants aux principaux masques dessiner :
zones actives de type N et P (implantes ou diffuses) ;
polysilicium (grilles et connexions trs courte distance) ;
mtaux (connexions et alimentations).
Outre leurs proprits spcifiques, 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 flux dans un bloc matriciel

aussi les interconnexions. Pour cela, nous chercherons voir chaque bloc comme le
croisement de deux, ou plus, flux dinformation, dhorlogerie ou dalimentation. Par
exemple, une mmoire peut tre vue comme le croisement dun flux de donnes
( crire ou lire) et dun flux de slection des mots (issu de ladresse). Chaque point
de croisement entre les informations lmentaires de ces flux donnera une cellule
(figure 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 (figure 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 lefficacit 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 flux aux couches technologiques


Nous affectons chaque flux, ainsi que les alimentations, une couche technologique
(figure 5.9).
TABLEAU 5.1
Niveau

Couches techno.

Ralise

caissons

zones actives
(dopes)

Transistors
Connexions locales

polysilicium

Connexions locales

mtal 1

flux 1 + alim locales

mtal 2

flux 2 + alim globales

......

......

......

Cela signifie :
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

Dunod La photocopie non autorise est un dlit.

Figure 5.9

5.5

Croisement des flux dans le dessin des cellules

DESSIN DES PORTES CMOS CLASSIQUES

Les principes gnraux prcdents peuvent tre appliqus au dessin des portes CMOS
en considrant le flux 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 simplifier 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 qualifier 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 qualifier 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 fils mtalliques dans des canaux de cblage ou au-dessus des cellules. Lexcitation de ces longs fils 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 dfinissent des transistors. Des connections locales
en mtal sont utilises pour mettre en parallle ou en srie les transistors du rseau
(figure 5.10).
G1
G3

G2

G4

G5

G1
Figure 5.10

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 (figure 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

T4 T5 T6

T2

T4

T3
Figure 5.11

T3

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 signifie que les parcours dEuler
des graphes correspondants doivent parcourir leurs transistors dans le mme ordre
(figure 5.12).

GND

VDD

G1
transistors P

G2
S

VDD

S
Dunod La photocopie non autorise est un dlit.

transistors N

G3

G4

GND

G5

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 (figure 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 (figure 5.14).

Figure 5.14 Dessin horizontal de la cellule nao2o22_X4


de la librairie SXLIB du systme Alliance

Dunod La photocopie non autorise est un dlit.

La cellule nao2o22_X4 se compose dune porte CMOS complexe ralisant la fonction


( A B ) ( C D ) suivie de deux tages damplification 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.
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
(figure 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 fixe, 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) (figure 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 (figure 5.17).

5.6

Dessins squelettiques

Figure 5.17

5.6

117

Dessin dun squenceur cbl (cf. chapitre 9)


synthtis avec le systme Alliance

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 (figure 5.18).
Vss

Vdd

Vss

ri+1

Vdd

Vss

Vdd

ai
si

Dunod La photocopie non autorise est un dlit.

bi

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

Couleur
Gris

zones implantes N

Vert

zones implantes P

Marron

Polysilicium

Rouge

mtal 1

Bleu

mtal 2

bleu ciel

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

Figure 5.19

5.7

Expansion de la mme cellule

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
modifier 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 (figure 5.20).
Pour permettre la modification 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 (figure 5.21).
ligne de bit

prsence de transistor

lignes de mot

Dunod La photocopie non autorise est un dlit.

absence de transistor
(pont mtallique)

VSS
Figure 5.21

Dessin des cellules dun PLA NAND

Pour permettre la modification 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.8

5 Dessin des masques dun circuit intgr

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 spcifiques au dernier niveau dinterconnexion du
circuit (figure 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.

Dunod La photocopie non autorise est un dlit.

TABLEAU 6.1

OPRATIONS RALISES PAR UN OPRATEUR ARITHMTIQUE

a+b

addition

ab

soustraction

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

addition avec report entrant

a b r, r {0, 1}

soustraction avec report entrant

Ab

ou-exclusif

Ab

ou

Ab

et

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 = 2a 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 =

2 i a i = a 0 + 2a 1 + 4a 2 +

i = 0, n 1

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

Dunod La photocopie non autorise est un dlit.

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 )

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

ri

bi
aibi

ai

ai
bi

bi

ri
ai=bi
ri+1

Figure 6.1

si

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 dfinissent la cellule se traduit par le fait
que les trois entres sont permutables (figure 6.2).

ri
ai

bi

bi

ri

ai

bi

ri

bi

ai

ai

si
ri

ai

ai

bi

ai

bi

ai

bi

bi

ri

ri

ri+1
Calcul de ri+1

Figure 6.2

Calcul de si

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 :

Dunod La photocopie non autorise est un dlit.

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

pi

bi
Figure 6.3

gi
Circuit de calcul de p i g i

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 amplifier 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 figure 6.4.
ri
ai

pi

si

gi
bi

ri+1
Figure 6.4

Cellule dadditionneur propagation statique

Le changement de polarit des signaux de retenue permet de simplifier 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 (figure 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 simplifier 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

si
pi

gi

pr

bi

VDD
ri+1

Figure 6.5

Cellule dadditionneur propagation dynamique

Prcharge automatique (figure 6.6)


ri
ai

pi

si
pi

gi
bi

VDD
ri+1

Figure 6.6

Cellule dadditionneur recharge automatique

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.

Dunod La photocopie non autorise est un dlit.

Non-ouex de sortie

Nous verrons que ce circuit (figure 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 profitant 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 (figure 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 (figure 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

p0

a0
b0

s0

p1

Dunod La photocopie non autorise est un dlit.

p2
r3
p3

a3
b3

s3

r4

Figure 6.9

propagation
acclre
de la retenue

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 modifi 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 modifie 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 (figure 6.10).
ri c1=1
=0
ai
bi

pi=(ai bi)

si=(ai bi)

pi
Figure 6.10

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 c1 = 1 = 0 s i = a i b i
si c1 = 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 c1 = 1 s i = p i
Le circuit de gnration de g i et p i est modifi pour forcer sa sortie 1 par une
commande c2. p i devient alors (figure 6.11) :
pi = ( gi ( ai bi ) ) = ( ai bi )
ri c1=1

=0

ai

pi=(aibi)

si=aibi
pi

gi=1

bi
c2=0

Figure 6.11

Calcul du OU

Dunod La photocopie non autorise est un dlit.

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 (figure 6.12).
6.3.4 Schma et dessin de la cellule dUAL complte
La ralisation de cette UAL (figures 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
(figures 6.14 et 6.15).

132

6 Oprateurs arithmtiques

c3=1

ri=0 c1=0
=1

ai

pi=ai bi

si=ai bi
pi

gi=(ai bi)

bi
c2=1

Figure 6.12

c3

Calcul du ET

ri c1

ai

pi

si
pi

gi
bi

VDD
ri+1

c2
Figure 6.13

Vss

Vdd

Vss

ri+1

Cellule dUAL

Vdd

Vss

Vdd

ai
si
bi

c2

c3
Figure 6.14

ri

c1

Schma squelettique de lUAL

6.3

Unit arithmtique et logique (UAL)

TABLEAU 6.2

133

CODES DE FONCTION DE LUAL


c1

c2

c3

addition

ouex

ou

et

Figure 6.15 Dessin des masques de la cellule dUAL


(technologie CMOS standardise (Alliance))

rn+1
an
sn
bn
rn

an-1

sn-1
bn-1

Dunod La photocopie non autorise est un dlit.

rn-1

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 fixe 0 pour une addition normale et pour une soustraction
avec retenue. Elle est fixe 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 =

ai 2 i

a i = 0 ou 1

bi 2 i

b i = 0 ou 1

i = 0, n 1

b =

i = 0, n 1

Leur produit P scrit :


P = ab =

ai 2 i

ai

bj 2j

j = 0, n 1

i = 0, n 1

qui peut aussi scrire :


P = ab =

b j 2i + j

j = 0, n 1

i = 0, n 1

Ce produit peut scrire sur 2n bits en regroupant les termes affects de la mme
puissance de 2.

P = ab =

i = 0, n 1 j + k = i

Chacun de ses termes p i =

a j b k 2 i

a j b k est la somme des produits partiels affects

j+k = i

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

bj

ai b j

ai bj

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
(figure 6.17).
0

a3b1

a2b0 a1b1

a3b0 a2b1

a1b0 a0b1

a0b0

0
a3b2

a2b2

a0b2

a1b2

a3b3

a2b3

a1b3

a0b3

p7

p6

p5

Figure 6.17

p4

p3

p2

p0

p1

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 (figure 6.18).
0

a3b2

a3b3

a3b1

a2b0 a1b1

a3b0 a2b1

a1b0 a0b1

a1b2

a0b2

a0b0

a2b2

a2b3

a1b3
a0b3

Dunod La photocopie non autorise est un dlit.

p7

p6

p5

Figure 6.18

p4

p3

p2

p1

p0

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 finis ou automates, suivant
le domaine dapplication, reprsentent une tape supplmentaire de complexification dans la conception des systmes logiques. Par rapport aux circuits combinatoires qui simplement associent leurs sorties aux diffrents profils dentre quils
reoivent, les systmes squentiels possdent un tat interne qui influence leur comportement.
Celui-ci peut tre reprsent par les deux formules suivantes :
St = f ( Et , Qt )

Dunod La photocopie non autorise est un dlit.

Q t + 1 g ( Et , Qt )
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 fini des entres possibles ;
St S, ensemble fini de ses sorties possibles ;
Q t , Q t + 1 Q, ensemble fini 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
(figure 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

Et
Circuit
combinatoire

Etat courant
Qt

St
g
Etat suivant
Qt+1

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 simplifier 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 prdfini (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 classification :
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 spcifiques sur ce codage) ;
dterminer les projections bit bit des fonctions f et g ;
raliser leur synthse dans la technologie choisie.

Dunod La photocopie non autorise est un dlit.

7.2

SYSTMES SQUENTIELS ASYNCHRONES

Une grande partie des systmes squentiels asynchrones correspond de simples circuits combinatoires reboucls (figure 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 dfinis avec une grande prcision. Ils peuvent varier avec la technologie, la temprature, la tension dalimentation,
S

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 (figure 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

tat stable
eu
Ek

Ei
eu

Figure 7.3

eu

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 :
finie, cest--dire quelle se termine sur un tat stable ;
infinie, cest--dire quelle forme une boucle contenant plusieurs tats, qui sera
parcourue tant que lentre ne sera pas modifie.
On supposera que les entres nont pas le temps de varier pendant le parcours des
courses finies.
Les courses infinies 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 infinies 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 >

Dunod La photocopie non autorise est un dlit.

dans laquelle T correspond la priode (minimale) du ou des, signaux dhorloge et


le temps (maximal) dtablissement du rseau combinatoire. Cette relation signifie
simplement que la priode de lhorloge doit tre suffisamment 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 difficult 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
difficilement 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.

142

7 Systmes squentiels

De manire simplifier 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 (figure 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

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.

S
Ch
Ch

Figure 7.5

Schma logique dun latch portes 3 tats

Ce qui donne le schma suivant :

Dunod La photocopie non autorise est un dlit.

Ch

Ch

S
Ch

Figure 7.6

Ch

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

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


(figure 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 fils peut tre captur dans une batterie de latches constituant un registre (figure 5.11).
ch
latch

Sorties

Entres
Registre

Figure 7.11

Registre constitu de latches

Dunod La photocopie non autorise est un dlit.

7.4.2 Systmes polyphass


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 dfinissent 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 spcifiques 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 fins 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 (figure 7.12). Nous verrons
quelles sont galement utilises par les systmes monophass.

C
Etat courant

Etat futur

L2

L1

Esclave
Figure 7.12

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
(figure 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
T

1
2

Figure 7.13

Systme dhorloges biphases

7.4

Systmes polyphass

147

Sortie C
C excit par
transparence
au travers L2
L2 transp.

Figure 7.14

C excit par
la sortie de L2

L1 transp.

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 fin de la phase correspondant la transparence du latch matre
(figure 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

Dunod La photocopie non autorise est un dlit.

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] (figure 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
S1

E1

C1

L1

L2

C2
S2

Figure 7.15

E2

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 fin 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 fin
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 fin 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 finir par sortir de la phase de transparence des latches (figure 7.16).
Le systme va cesser de fonctionner, ce qui est normal puisquil nobit pas la
relation de synchronisme !

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 (figure 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 signifie
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 fin des phases de transparence. Ce sont
ces priodes dattente qui assurent la stabilit du systme en absorbant les ventuelles fluctuations des dures dtablissement.

7.4

Systmes polyphass

149

C1 excit par
transparence
au travers L2

C2 excit par
transparence
au travers L1

Etab. C1
Etab. C2

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 (figure 7.18).

Etab. C1
Etab. C2

C1 excit par
transparence
au travers L2

Dunod La photocopie non autorise est un dlit.

Figure 7.18

C2 excit par
transparence
au travers L1

Squencement dun rseau combinatoire biphas


(cas de retards disymtriques)

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 fin 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 fin de cette phase.
Exemple : Chemin de donnes de processeur (figures 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 dfinir


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 modifier le contenu dun registre pertinent pendant le recouvrement
(figure 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)

Figure 7.19

Barrire temporelle
ajoute
(dynamique)

Chemin de donnes vu comme un systme biphas

bus source
tablissement UAL

Registre source
slectionn
A transp.

Figure 7.20

Registre dest.
transparent

Chronogramme typique dun chemin de donnes biphas

non rec
1

2
Dunod La photocopie non autorise est un dlit.

bus dest

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 affine 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 signifie 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 (figure 7.22). Sa matrice

7.5

Systmes monophass

153

ET est programme pour reconnatre les combinaisons utiles de ltat courant et


des profils dentre. La matrice OU est programme pour gnrer ltat suivant et
les sorties correspondant la configuration 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

Figure 7.22

Dunod La photocopie non autorise est un dlit.

7.5

Sorties

Squenceur biphas utilisant un PLA

SYSTMES MONOPHASS

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 dfini par
les vnements vhiculs par lhorloge (figure 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 (figure 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.

QB

Figure 7.24

Bascule RS

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

7.5

Systmes monophass

155

circuit combinatoire

Figure 7.25

QB

Une bascule RS vue comme un systme squentiel asynchrone

R
S

R
A/0

B/1
S

Figure 7.26

Graphe dtat de la bascule RS

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

10

00

01

11

A= 0 1

01

01

10

xx

B= 1 0

01

10

10

xx

Q QB

Dunod La photocopie non autorise est un dlit.

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
(figure 7.28).

156

7 Systmes squentiels

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

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

Figure 7.28

QB

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

QB

Dunod La photocopie non autorise est un dlit.

Figure 7.30

Symbole dune bascule D

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

01

11

10

Figure 7.31

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 (figures 7.32 et 7.33).
Cette machine asynchrone possde 4 tats dont deux stables et deux transitoires.
D
H
00

01

11

10

Q = 0

Q = 1

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
figure 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] (figure 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

Dunod La photocopie non autorise est un dlit.

H
H

H
Matre

Figure 7.35

Esclave

Bascule D C2MOS matre-esclave

Bascule JK

La bascule JK est une extension synchronise de la bascule RS (figures 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

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

QB

Figure 7.36

Symbole dune bascule JK

K
J
10

00

01

11

Figure 7.37

Tableau dtats dune bascule JK

Bascule T (figure 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 amplificateurs). 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 suffisamment 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 suffisamment lente pour permettre au systme de fonctionner (condition gnrale de synchronisme) ;
avoir des transitions suffisamment 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
suffisamment prcise, la bascule peut basculer incompltement car elle ne dispose pas
de suffisamment 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 (figure 7.39).

Dunod La photocopie non autorise est un dlit.

info
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 fin 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 (figure 7.40). Dune manire gnrale, un registre peut tre utilis pour stocker une information vectorielle.
Ch
Bascule D

Sorties

Entres
Registre

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 (figure 7.41).
Ch

E
D

Figure 7.41

lment de registre chargement systmatique de sa bascule D

Dunod La photocopie non autorise est un dlit.

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 (figure 7.42). Des portes sont alors
utilises pour conditionner les signaux dhorloge par les commandes de chargement.
Le chargement se produit la fin 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

Ch

signal de
chargement

S
horloge de
chargement

Figure 7.42

chargement
registre

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 dfinir 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
afficher 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 suffisamment
important, une bascule peut capturer une valeur dentre errone calcule partir de
la sortie dune autre bascule prise aprs son vnement dhorloge (figure 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 (figure 7.44).
Do la relation :
gigue < rseaux avant perturb. + prep.

7.5

Systmes monophass

165

Ti

Tj

sortie basc i

Ti

Tj
entre basc j

Bi

non perturb.

Bj

prep.
gigue

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 :

Dunod La photocopie non autorise est un dlit.

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

Nous voyons que la relation de synchronisme peut aussi tre affine 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 spcification 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 superflus.
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 figure 7.45.
P=0 D

P=1 D

P=1 D
A

B
P=0 D=0

P=0 D=0

s=0
P=0 D=1

P=0 D=1

P=1 D
Figure 7.45

s=1

D
P=1 D

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
(figure 7.46).

RST H

Figure 7.46

C
P

H RST

H RST

D
P

H RST

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 signifie 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 (figure 7.47). Sa matrice ET est programme
PLA

Dunod La photocopie non autorise est un dlit.

matrice "ET"

tats des tat


entres cour

matrice "OU"

tat
suiv

profils des
sorties

H
Squencement

Entres

Figure 7.47

Sorties

Ralisation dun systme monophas avec un PLA

168

7 Systmes squentiels

pour reconnatre les combinaisons utiles de ltat courant et des profils dentre. La
matrice OU est programme pour gnrer ltat suivant et les sorties correspondant
la configuration 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 (figure 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 (figure 7.49).

H
H

Figure 7.49

t
recouvrement

Mauvais recouvrement des phases gnres par un simple inverseur

Dunod La photocopie non autorise est un dlit.

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 flip-flop hybrid elements,
ISSCC Dig. Tech. Papers, Feb. 1996.

Chapitre 8

lments de VHDL

Dunod La photocopie non autorise est un dlit.

8.1

BREF HISTORIQUE DES LANGAGES DE DESCRIPTION


DU MATRIEL

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 spcification). 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 spcification 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 vrifications. Par exemple, les annes 1980 et 1990 ont vu apparatre des
outils capables de vrifier 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 profit 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 spcificits du matriel. Cela a amen les ralisateurs de compilateurs donner des interprtations diverses certains points mal
dfinis. 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 spcifique, 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 :

Dunod La photocopie non autorise est un dlit.

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

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 fils,
bit_vector(<dimension>) dans le cas dune nappe de fils. Les dimensions
seront donnes par les deux indices extrmaux. Les fils 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 spcifique (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 :

Dunod La photocopie non autorise est un dlit.

la liste des signaux internes qui sont de simples fils, ou des nappes de fils, 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 (figure 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;

176

8 lments de VHDL

XOR1

X
Y

S1
XOR2
Sum

Cin
AND2
S2
OR1

Cout

AND1
S3

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 figurer des lettres accentues).
La spcification 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 dfinissent les diffrents signaux. Elle contient :
la liste des signaux internes que nous assimilerons, dans un premier temps, de
simples fils qui vhiculent les valeurs qui leur sont donnes ;
la liste des fonctions boolennes qui dfinissent les valeurs des diffrents signaux.

Dunod La photocopie non autorise est un dlit.

Ces fonctions boolennes sont dcrites comme des instructions dun langage informatique volu. La partie gauche correspond au signal qui doit tre dfini et connect.
Elle est spare de la dfinition 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 dfinir la valeur future dun fil ou celle, totale
ou partielle, dune nappe de fils 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 signifie 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 dfinis par les instructions de connexion apparat un certain temps aprs celle des arguments des expressions qui les calculent. Ce temps peut tre explicitement spcifi par une clause
after situe la fin 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 influence sur leur comportement. Il est tout fait possible dutiliser
un signal comme argument dune instruction crite avant celle qui dfinit la valeur
de ce signal.
Les signaux ne doivent tre dfinis quune seule fois (sinon il pourrait y avoir des
conflits). Toutefois, nous verrons ultrieurement comment rsoudre de tels conflits.
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 modifi. Par abus de langage, ce type de
description VHDL est souvent appel data-flow.

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 dfinir la valeur de signaux (instructions de connexions),
. soit dfinir 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, spcifi 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 modifis 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 :

Dunod La photocopie non autorise est un dlit.

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 fin 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 :
loccurrence dune condition (wait until <condition>;) ;
la variation dun signal dune liste de sensibilit (wait
sensibilit>;) ;
une dure spcifie (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 spcifi 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 dfinition 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 (fils ou nappes de fils).
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 fils 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 (figure 8.2).

Dunod La photocopie non autorise est un dlit.

Variable
entire

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 fils 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 fils dune nappe.
Exemple (figure 8.3) :
alias code_op : bit_vector (5 downto 0) is IR (15 downto 10);

IR
31

15

10

code_op
Figure 8.3

Redfinition 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 conflits lectriques. Ce module (appel library) contient :
Un package appel std_logic_1164 qui dfinit 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 conflit entre deux sorties fortes
W ltat de conflit entre deux sorties faibles
- un tat indiffrent (pour optimiser la logique)

8.5

Expressions

183

Des packages appels numeric_bit et numeric_std qui dfinissent 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 dfinir 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

Dunod La photocopie non autorise est un dlit.

Ils correspondent lextraction de proprits des signaux laide de suffixes. Leurs


valeurs dpendent du type du signal sur lequel porte le suffixe. 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).

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 (figure 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 dfinir la valeur dun
signal (figures 8.5 et 8.6).
Exemple :
U <= K when A=B else
X when A>=B else
Z
A,B
K
U

X
Z

Dunod La photocopie non autorise est un dlit.

Figure 8.5

Le multiplexeur correspondant

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 fil 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 conflit doit tre gr par une fonction spciale appele fonction
de rsolution des conflits ;
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 conflits, spcifiant 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 difficiles localiser.

Dunod La photocopie non autorise est un dlit.

8.7.1 Intervalle temporel de dfinition des signaux


Un signal externe est dfini 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
(figure 8.7).

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, dfini linstant t, apparatra linstant t+t.
Ceci signifie que les signaux internes sont dfinis sur des intervalles ]ti, ti+1]. Il existe
donc un dcalage entre la dfinition 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-flow, 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 (figure 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 difficults :
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
(figure 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 spcifiques 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 indfinie 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;

Dunod La photocopie non autorise est un dlit.

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 : =, /=, >=, <=.

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 infini :
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 spcifiques 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;

Dunod La photocopie non autorise est un dlit.

Par un process :
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 fin. Les variables complexes, telles que des mmoires, ne seront
pas recopies si leur valeur nest modifie quau plus une fois pendant chaque excution. Nous verrons une telle description dans le chapitre consacr la conception
algorithmique.

8.10 FONCTIONS

Dunod La photocopie non autorise est un dlit.

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 modification de lun de ses arguments (paradigme data-flow) 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) :
A <= memoire(to_natural(Adresse)); (bibli spcifique)
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 spcifie 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 conflits
Celles-ci sont gnralement utilises pour rsoudre les cas o plusieurs sources veulent
dfinir 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 spcifique 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 fichier que la description :
use work.<nom du package>.all;
(.all pour utiliser la totalit du contenu du package)
soit dans une bibliothque :

Dunod La photocopie non autorise est un dlit.

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;

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;
fin : 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 dfinition 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 spcifiques du simulateur pour :
dfinir 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

Dunod La photocopie non autorise est un dlit.

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

Chapitre 9

Conception algorithmique
des circuits VLSI complexes

Dunod La photocopie non autorise est un dlit.

9.1

INTRODUCTION

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) (figure 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,
filtres 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 spcifiques 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 simplification du processus de conception. En fait, cela savre
trs perturbant pour les lectroniciens plus habitus manipuler des notions concrtes
quabstraites.

Dunod La photocopie non autorise est un dlit.

9.3.1 Description du squencement


La description du comportement pourra, ou non, prciser le squencement fin du
circuit. Lorsquil sagit dune application purement algorithmique (par exemple, pour
raliser un circuit dencryption), il nest pas utile dimposer un squencement fin. 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 fin 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 fins 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 modifier 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

202

9 Conception algorithmique des circuits VLSI complexes

variables. Celles-ci seront charges au dbut du process et sauvegardes la fin. 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 fin des diffrentes oprations dincrmentation et de report nest pas
encore dfini. Cela nous amne supposer un certain squencement fin implicite dans
le process et donc devoir utiliser des variables qui seront sauvegardes dans des
signaux.
Pour simplifier, nous ne traiterons pas les parties concernant la mise lheure et
laffichage de la montre. Une simple remise zro commande par un signal rst
permettra de dmarrer les simulations dans un tat bien dfini.
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

Dunod La photocopie non autorise est un dlit.

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 justifie, compte tenu du cot important de tels oprateurs,
des oprations simples, spcifiques lapplication, comme par exemple la transformation dun code BCD en allumage des segments pour un affichage 7 segments.

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 modifi, lalgorithme
devient un diviseur de la frquence du quartz utilis pour rythmer le squencement
fin 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;

Dunod La photocopie non autorise est un dlit.

9.4

DMARCHE GNRALE DE CONCEPTION

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 (figure 9.2).
Le rle du squenceur est denvoyer une succession de commandes lmentaires
au chemin de donnes (figure 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

commandes
externes

squenceur

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


raffinerie. 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 raffinerie).
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 spcifique. Elle est ralise
par des mthodes et des outils trs diffrents.
Les spcifications de ces deux parties dcoulent directement dune dcomposition
simple de lalgorithme raliser (figure 9.4) :
Lensemble de toutes les instructions opratives constituera la spcification du
chemin de donnes.

9.5

Conception du chemin de donnes

207

COMPORTEMENT
(algorithme)

OPERATIONS
(+VARIABLES +PREDICATS)

CHEMIN DE DONNEES

STRUCTURE

SEQUENCEUR

Figure 9.4

La structure abstraite de lalgorithme (son schma de contrle) constituera la spcification 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 Spcification du chemin de donnes de la montre

Dunod La photocopie non autorise est un dlit.

Cette spcification est constitue de la liste des variables utilises (supposes tre des
signaux), des instructions opratives (cest--dire modifiant les variables explicites) et
des tests.
Variables utilises :
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 simplifier 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>

<source>

rien

X"F"

s1

s1

s2

s2

m1

m1

m2

m2

h1

h1

h2

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

Dunod La photocopie non autorise est un dlit.

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 suffisament gnral pour excuter nimporte quel algorithme.
Nous dirons alors que la machine correspondante est devenue universelle.

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 (figure 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 (figure 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

Figure 9.6

Squencement bi-phas dun chemin de donnes

1CD
bus source

Barrire temporelle
Ajoute
(registres intermdiaires)

2CD

tablissement UAL
bus dest
registres int.
transparents

Dunod La photocopie non autorise est un dlit.

Figure 9.7

registre dest.
transparent

Chronogramme du fonctionnement dun chemin de donnes biphas

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 (figure 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 (figure 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

t
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 (figure 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

Conception du chemin de donnes

213

Dunod La photocopie non autorise est un dlit.

1CD

incr

x"F"

bus_source
SELF

SELS1
SELS2
SELM1
SELM2
SELH1
SELH2

2CD

LOH2

H2

LOH1

H1

LOM2

M2

LOM1

M1

LOS2

S2

LOS1

S1

bus_dest

tests

tests

test
(3,4,6,A)

2CD

9.5

Figure 9.9

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;

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 signifie 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 (figure 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)

Figure 9.10

R(1)

R(2)

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

Dunod La photocopie non autorise est un dlit.

e) Dessin du chemin de donnes

Des techniques trs efficaces sont utilises pour dessiner les chemins de donnes
(figures 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 flux 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

Figure 9.11

Figure 9.12

oprateurs

Organisation du dessin dun chemin de donnes

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

Lensemble des tranches est surmont dune ligne damplificateurs et de bascules


destins renforcer les commandes et ventuellement les formater par les horloges,
ainsi que pour stocker les rsultats des tests.
Le dessin final 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 (figure 9.13).
slections

phases

tests

Figure 9.13

Chemin de donnes de la montre

Dunod La photocopie non autorise est un dlit.

Exemple de cellules :

Figure 9.14 lment de registre pour la montre


(technologie symbolique Alliance)

Incr

XF

h2

h1

m2

m1

S2

S1

ampli

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 fiabilit 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 (figure 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 (figure 9.17).
Deux phases pour le squenceur (1S et 2S) ;
deux phases pour le chemin de donnes (1CD et 2CD).
squenceur

2S

latches
d'interface

Dunod La photocopie non autorise est un dlit.

commandes
de slection

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 (figure 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

1CD

latches
dinterface
transp.

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 (figure 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 influencer 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 modifi 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 (figure 9.20)

squenceur

latches M
d'interface

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 (figure 9.21).
cycle i-1

cycle i

cycle i+1

fonctionnement
squenceur
latches com

M transp.
latches tests
Es transp.

Dunod La photocopie non autorise est un dlit.

latches tests
M transp.

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 (figure 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 (figure 9.23).
cycle i -1

cycle i

cycle i +1

sorties du
squenceur
positionnement
sorties registre
d'interface
chargement
basc. de test

chemin de donnes

Figure 9.23

horloge de
chargement
(conditionnelle)

chargement
registre

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) (figure 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).

Dunod La photocopie non autorise est un dlit.

=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.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 (figure 9.25). Nous prsenterons aussi des ralisations microprogrammes
et sous la forme dun automate cbl.
matrice "ET"

cond.

tat
cour

matrice "OU"

tat
suiv

Squencement

gnration des commandes

Commandes

Conditions

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 (figure 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

s2 <= Incr(s2)

225

null

(produit toujours 0)

x"6"

=x"6"
s2 <= x"0"

mme tat

null

Figure 9.26
TABLEAU 9.1

VALEURS POSSIBLES DES CONDITIONS

matrice ET

Dunod La photocopie non autorise est un dlit.

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

=x"A"
x"A"

=x"6"
x"6"

=x"A"
x"A"

=x"6"
x"6"

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

matrice OU
actions

et. suiv.

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")

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

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 (figure 9.27).
Matrice ET

surface
gagne
Matrice OU
OU

conditions

Figure 9.27

tat
courant

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 (figure 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 (figure 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

matrice "ET"

227

matrice "OU"

1S + 2S
cond

tat
suiv

tat
cour

commandes

2S

1S
tests

tat

commandes

Chemin de donnes

Figure 9.28

2CD

Architecture dun circuit complexe utilisant un squenceur base de PLA

1S

2S

tablissement PLA

nouvel tat

Registre
micro-matre
transparent

conditions

1CD

2CD

Registre
micro-esclave
transparent

Registre
micro-esclave
mmorisant

Registre
micro-matre
mmorisant

commandes
de slection

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

1CD
2CD

1S

nouvel tat

nouvelles conditions

cycle PLA suivant

commandes
de chargement

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 :

Dunod La photocopie non autorise est un dlit.

PHI pour indiquer que lon ne souhaite pas tester une condition ;
NVTy pour indiquer que lon souhaite tester spcifiquement labsence du profil 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 difficult 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 fin de la phase PH2S (mais ne garantit pas
le maintien des entres !).

230

9.8

9 Conception algorithmique des circuits VLSI complexes

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 (figure 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 modifications
aprs coup.

Figure 9.30

Squenceur microprogramm de lIntel 38S

a) Principe des squenceurs microprogramms

Les squenceurs microprogramms sont gnralement des machines de Moore


(figure 9.31). Chaque mot de la ROM constitue une microinstruction qui est constitue
dune suite de champs qui dfinissent 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 dfini par un ou plusieurs champs particuliers

9.8

Autres organisations possibles de squenceur

231

tat
tat courant

ROM
(microinstructions)

R mic

horloges

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.

Dunod La photocopie non autorise est un dlit.

b) Squenceur microprogramm pour la montre

Le squencement de la montre se prte bien la ralisation dun squenceur microprogramm, bien quil soit trs simple (figure 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 difficiles 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
enfin 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

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"
H1 <= Incr(x"F")
H2 <= Incr(H2)

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

XA

=> 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 (figure 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")

Figure 9.33

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

Micro-adresses affectes aux microinstructions

Dunod La photocopie non autorise est un dlit.

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 spcifier 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
(figure 9.34).

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

T1

00000

S1

S1

000

XA

00001

S2

S2

010

X6

00010

rien

XF

001

00011

S1

XF

000

00100

rien

XF

011

00101

H1

XF

101

00110

rien

H2

011

X3

00111

rien

XF

010

01000

rien

XF

100

01001

S2

XF

100

01010

rien

XF

100

01011

M1

XF

100

01100

rien

XF

101

01101

M2

XF

101

01110

rien

XF

101

01111

H1

XF

110

10000

M1

M1

010

XA

10001

rien

XF

010

10010

rien

XF

011

10011

M2

M2

011

X6

10100

rien

XF

001

10101

H1

H1

001

X4

XA

10110

H2

H2

101

10111

rien

XF

110

11000

H2

XF

110

11001

rien

XF

110

11010

rien

XF

110

11011

rien

XF

111

11100

rien

XF

000

9.8.2 Squenceurs cbls


Il sagit de cbler avec des portes les fonctions f et g de lautomate qui constitue le
squenceur (figure 9.36). Cette technique produit des squenceurs trs rapides mais
non modifiables. 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

ad

ROM
29 mots
de
14 bits

2S
1CD

ad pF
dest.

T2

T1

source

3
3

S1 S2 M1 M2 H1 K2

XF S1 S2 M1 M2 H1 K2

Dunod La photocopie non autorise est un dlit.

Figure 9.35

X4

0
XA X6

X3

Schma du squenceur microprogramm de la montre

Figure 9.36

Squenceur cbl du Motorola MC 6800

236

9 Conception algorithmique des circuits VLSI complexes

Un faon efficace 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 (figure 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.

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"

Squence
ineffective

Gnrateur
d'instants
<= T1

nop
nop

<= T2
<= T3

nop
nop

<= T4
<= T5

nop
nop

<= T6
<= T7

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

<= T8
<= T9

x"6"
x"A"
x"6"

Figure 9.37

<= T10
<= T11
<= T12
<= T13
<= T14
<= T15
<= T16

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 (figure 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

Dunod La photocopie non autorise est un dlit.

b) Description VHDL du squenceur cbl de la montre

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 fils 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 (figure 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

Dunod La photocopie non autorise est un dlit.

Figure 9.39

Schma du squenceur cbl de la montre (compil)

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 difficiles 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. Linfluence 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 (figure 9.40).

240

9 Conception algorithmique des circuits VLSI complexes

Nouvel tat du
gnrateur d'instants

Changement de mode
du squenceur

Commandes (brutes)
Nouvelles
conditions
Registre
micro-matre
transparent

Conditions

Commandes
de slection

Cycle suivant

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 spcifique 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 (figure 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

Dunod La photocopie non autorise est un dlit.

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

Chapitre 10

10

Mcanismes dhorlogerie

10.1 MCANISMES CLASSIQUES DHORLOGERIE

Dunod La photocopie non autorise est un dlit.

La performance et le bon fonctionnement des circuits intgrs complexes sont souvent


lis la qualit de leurs mcanismes dhorlogerie.
Un mcanisme dhorlogerie classique comprend (figure 10.1) :
Un oscillateur, souvent pilot par un quartz ou un rsonateur pizo-lectrique
externe (figure 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 amplificateur.
Le quartz, ou le rsonateur, reboucle ces inverseurs, provoquant une contre-raction
positive pour sa frquence de rsonance. Le gain de lamplificateur form par le
couple dinverseur doit tre suffisamment 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 amplificateur de gain important. Celui-ci amplifie et crte le signal sinusodal pour en faire un signal logique.

1f
0
2

quartz
oscillateur

amplificateur
amplificateur

Figure 10.1

%2
diviseur
par 2

gnrateur
des phases

Mcanisme classique dhorlogerie

244

10 Mcanismes dhorlogerie

F
(sinusodale!)

Figure 10.2 Oscillateur quartz ( gauche) ;


sortie de loscillateur et seuillage par lamplificateur ( droite)

Un diviseur par 2 fournit un signal carr de rapport cyclique gal 1. Ce qui signifie
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 amplificateurs de sortie du gnrateur de phase sont reboucls pour viter tout
recouvrement des phases (figure 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 (figure 10.4).
Dans les circuits de petite taille, la distribution des signaux dhorloges se fait partir
dun ensemble damplificateurs uniques et centraliss de manire viter dintroduire
des retards entre les phases distribues. Ces amplificateurs dhorloge sont de taille
importante et contribuent de manire significative 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 flchissement.

10.2

Horlogerie des circuits rapides et complexes

quartz

Gn
bi-phas

oscillateur
oscil
lateur

245

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 (figure 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

Processeur

Dunod La photocopie non autorise est un dlit.

I 386

Horloge
(MHz)

Techno
(m)

Conso
(W)

16

1,5

I 486

33

Pentium

66

0.7

13

Pentium III

1 000

0,18

26

P4 Willamette

2 000

0.18

75

P4 Northwood

2 200

0.13

50

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

Puissance dissipe
W/cm2

10 00

Cur de racteur nuclaire


1 00

PII

P4 3Ghz
PIII P4 1,5Ghz

Plaque de cuisson
10

P Pro
Pentium
I386

I486

Familles technologiques

1.5

Figure 10.5

0.7

0.5 0.35 0.25 0.18 0.13 0.1

0.07

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 amplificateurs 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) (figure 10.6).
Un PLL est constitu dune boucle dasservissement comprenant (figure 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 coefficient N (fixe).
F horloge (Mhz)
100 000

50 Ghz
Prvision Intel
24Ghz
10 000

3 Ghz
Horloge
interne

1 000

Horloges
externes
(de bus)

Dunod La photocopie non autorise est un dlit.

100
50 Mhz

Utilisation des multiplieurs


de frquence (DX n)

10
5 Mhz

Date sortie prototypes


1
75

80

Figure 10.6

85

90

95

00

05

10

volution de la frquence dhorloge des processeurs Intel X86

248

10 Mcanismes dhorlogerie

f0

quartz

VCO
f0

oscillateur
f0/N

f0/N

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 filtre 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 damplificateurs
(figure 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 identifies. 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 (figure 10.9).

zones fonctionnelles isochrones

Dunod La photocopie non autorise est un dlit.

Figure 10.9

Communication entre les zones isochrones dun circuit complexe

La communication entre deux zones isochrones voisine consiste mettre un signal


par une zone isochrone et le charger dans un registre de lautre (figure 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 (figure 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

H2
T11

R1

zone isochrone 1
Figure 10.10

T22

T3

temps de
propagation
du signal

R2

T2 cart de
phase dans la
distribution de
l'horloge

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

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 damplificateurs.
Une distribution dite en H (figure 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 (figure 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-

gnrateur
principal
d'horloge

Ampli principaux

Dunod La photocopie non autorise est un dlit.

Figure 10.11

HL

HL

HL

HL

HM

HL

HL

HL

HL

Distribution de lhorloge aux zones isochrones

horlogerie d'un
horlogerie
isochrone
bloc isochrone

Horlogerie centrale

Distribution quilibre

Horlogerie locale

Zone isochrone

10.2
Horlogerie des circuits rapides et complexes
251

252

10 Mcanismes dhorlogerie

Figure 10.12

Distribution de lhorloge laide dun rseau en H

f0
dphaseur
programmable

zone
isochrone

f0

fex
multiplieur
PLL

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 difficile mettre en uvre (figure 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
f0

fex

dphaseur
programmable

zone
isochrone
isochrone

multiplieur
PLL

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 dfinie 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] (figure 10.15).

Dunod La photocopie non autorise est un dlit.

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 profit des structures traitement
multiples. Lorsque les puissances dissipes redeviendront raisonnables, il nest pas
exclu que la course la frquence dhorloge reprenne.

254

10 Mcanismes dhorlogerie

f0
multiplieur
PLL

zone
isochrone

f0
multiplieur
PLL

f0/N

fex

zone
isochrone

multiplieur
PLL

arbre de distribution

Figure 10.15

Rduction de la puissance dissipe par la distribution


dune frquence dhorloge rduite

f0
zone
isochrone

PLL

f0
zone
isochrone

PLL

f0

fex

zone
isochrone

PLL

f0
zone
isochrone

PLL

f0
PLL

Figure 10.16

zone
isochrone

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 fixer la frquence de lensemble. De tels rseaux
sont appels des multi-PLL [GIL95] (figure 10.16).

Dunod La photocopie non autorise est un dlit.

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.

Chapitre 11

11

Outils et mthodes de conception


des circuits intgrs complexes

11.1 CONTEXTE

Dunod La photocopie non autorise est un dlit.

La conception de circuits intgrs complexes est une activit en plein dveloppement.


Elle est pratique chez :
les fabricants de circuits intgrs (ST Microelectronics, Philips, Infineon, Atmel,
Intel, Texas, Freescale.) pour :
les circuits de leurs catalogues respectifs,
des circuits spcifiques 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 spcifiques 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 spcification
du circuit (en VHDL), la vrifier, 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

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 spcificits 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 (figure 11.1).
Nb Tr
100 000 000

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

10 000 000

1 000 000

I486
INTEL

MC68020
100 000

I386

MOTO / IBM

I286

MC 68000
I8086
MC680
0
I8008
I4004

10 000

1 000
1966

1971

Figure 11.1

1976

1981

1986

1991

1996

2001

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 linflation des cots et des dlais dans ces deux domaines.

Dunod La photocopie non autorise est un dlit.

11.3

Circuits compils

259

La conception manuelle dun circuit au niveau des transistors cote environ une
heure de travail par transistor dessin en incluant la spcification, la vrification 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, vrifis 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 spcifique 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 spcifiques (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 spcification fonctionnelle du circuit raliser. Suivant les outils dont on dispose, le niveau de cette spcification 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 dfinition 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 finition 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,
lefficacit 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 fines
que lon ralise lors dune conception manuelle reste souvent difficile.

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 spcification 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 spcification 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 spcifique. Nous pouvons distinguer :
les blocs compils qui rutilisent les outils de conception des circuits pr-caractriss ;

blocs
compils

Dunod La photocopie non autorise est un dlit.

blocs
assembls

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 spcifiques 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 vrification.
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 configurations 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 vrification. 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 vrification 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 vrification de la conception des circuits intgrs utilise maintenant des outils
trs avancs.

11.6

Systmes intgrs SOC (Systems On Chip)

263

Dunod La photocopie non autorise est un dlit.

Pour la vrification des cellules de base : celles-ci sont vrifies soigneusement


partir de leur masques.
le dessin de leurs masques est vrifi par un outil appel DRC (Design Rules
Checker) qui vrifie la bonne application des rgles gomtriques de dessin ;
leur comportement lectrique (normal et aux limites de la technologie) est vrifi
en extrayant automatiquement leur schma lectrique. La vrification lectrique
commence par sassurer que le schma est sain laide dun outil appel ERC
(Electrical Rules Checker) qui vrifie que le circuit obit certaines rgles
lectriques de bonne construction (vrification du rapport dimensionnel des transistors, dtection des portes non alimentes, des court-circuits). Puis la cellule
est simule dans toutes les configurations possibles laide dun simulateur
lectrique (par exemple, SPICE) ;
leur fonctionnalit est ensuite vrifie en extrayant automatiquement une description fonctionnelle partir de leur schma lectrique. Cette description extraite
est ensuite compare avec leur spcification fonctionnelle laide dun outil de
vrification formelle [MAD88] (V-Formal ou Chrysalys).
Pour la vrification des blocs : puisque les cellules sont vrifies, il ne reste thoriquement qu sassurer que linterconnexion des cellules est correcte. Toutefois,
il faut se mettre en garde contre des modifications manuelles du cblage et de lajout
manuel de transistors annexes . Pour cela, il est prfrable de r-extraire le
schma lectrique, didentifier automatiquement les cellules, puis dextraire la fonctionnalit globale et de la comparer formellement avec la spcification fonctionnelle du bloc. Les outils actuels permettent deffectuer des vrifications formelles
de blocs jusqu 100 000 transistors.
Les spcifications des blocs ont elles-mmes t vrifies en les assemblant pour
obtenir une description du circuit complet sur lequel on peut simuler lapplication.
Pour la vrification du circuit complet : il nest pas (encore) possible de raliser une
vrification 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 vrification finale est souvent pratique. Elle consiste en une vrification
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.

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 (figure 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 simplifie 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 spcifiques 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 (figure 11.5).
Lapproche devient alors trs comparable la conception dun systme par lassemblage de cartes qui ralisent de telles fonctions.

Dunod La photocopie non autorise est un dlit.

Figure 11.5

Un ordinateur personnel sur un seul circuit (ARM7500FE )

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) (figure 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 difficile dpartager en cas de problme.

266

11 Outils et mthodes de conception des circuits intgrs complexes

(Mhz) 100 000

60 Ghz
prdiction
Intel Intel
prvision
24Ghz

10 Ghz

10 0 00

1 000

100

frquence interne
10

date sortie proto

frquence externe
1
75

Figure 11.6

80

85

90

95

00

05

10

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

Dunod La photocopie non autorise est un dlit.

En guise de conclusion

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 lefficacit
des circuits modernes, au lieu dtre simplement condamnes disparatre.
Passionns de longue date par lefficacit 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 ? (justifiez

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

B
C

A
Dunod La photocopie non autorise est un dlit.

8
4

4
S

S
D

270

Conception des circuits VLSI

3. Charge des entres


entres

Charge tr N

Charge tr P

Total

Charges equ

10

3,3

10

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 simplifier le dessin des masques.
tude dun latch statique
Soit un inverseur trois tats :

S
C

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

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

Exercices

271

Soit un latch statique utilisant deux inverseurs trois tats :


S

E
Ch
Ch

2. Rappeler son schma en transistors.


3. Dessiner le schma squelettique de ses masques en respectant le mme

croisement des flux. 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 :

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 suffit de modifier 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 dfinissant 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) :


1

0
1

Q =1
0

0
1

Q =0

C
0

2. Tableau des transitions asynchrones :


E
0

Q=1

Q=0

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.

Dunod La photocopie non autorise est un dlit.

S 0 S1
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

10

11

1 1

01

11

01

00

0 0

10

00

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 :

S1
E
B

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 vrifier 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 final de la bascule T :
E

S0

S1

QB

tude dun circuit de commande dun convertisseur


analogique/numrique
entre analogique

sortie numrique
CNA

comp. A
comp

12
vals

1, 2

fpes
Circuit concevoir

Dunod La photocopie non autorise est un dlit.

rst

dpes

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

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

vals(index) <= 0

index <= DECR index


<0
?0
fpes <= 1

attente <= ?t-1

Dunod La photocopie non autorise est un dlit.

attente <= DECR attente?


<0
?0

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

op

source

rien

transf

fpes

decr

vals

11

vals(index)

t-1

index

index

attente

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

11

t-1

Le choix doprations (transfert/dcrmentation) peut tre ralis en modifiant la


retenue initiale dun dcrmenteur.

Exercices

279

5. Organisation du squenceur ( base de PLA).

dpes
tat

comp

tat
suiv.

dest op sour.

2
result < 0 / 0

rst
4
dest

sources
op

La machine est suppose quadriphase avec un fonctionnement on superpos du


squenceur et du chemin de donnes.
6. Contenu du PLA du squenceur :

Dunod La photocopie non autorise est un dlit.

test

tat

dest

op

source

tat suiv

dpes=0

rien

TRANSF

dpes=1

fpes

TRANSF

index

TRANSF

11

vals

TRANSF

res = 0

vals(index)

TRANSF

res < 0

fpes

TRANSF

attente

TRANSF

t-1

res = 0

attente

DECR

attente

res < 0

rien

TRANSF

comp=1

rien

TRANSF

comp=0

vals(index)

TRANSF

index

DECR

index

matrice ET

matrice OU

tude dun petit commutateur de messages


Le sujet consiste tudier un commutateur (routeur) de messages (trs simplifi) 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, simplifie,
est la suivante :

adresse destination
(1 octet)

zone donne (n octets)

longueur de la zone
donnes (1 octet)

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.

Dunod La photocopie non autorise est un dlit.

2. Proposer un schma pour le chemin de donnes du commutateur. La voie

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

Rin <= Entre


Etat=ADD

Data_in=0

NULL

Etat=NB

Radd <= Rin(7-6)


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

RNB <= Rin


NULL
Etat <= DON

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

RNB?0

NULL

RNB=0

Etat <= ADD

Rvoie <= Rin ***


Data_out(Radd) <= 1
NULL
NULL
NULL

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

LETAT

LRAD LRV

LRIN

LRNB

transf, decr,
decal
Radd

RNB

Etat

Rvoie

SRNB

SENT

Entre

Dunod La photocopie non autorise est un dlit.

Voies de sortie

SAD

ADD/0

=0

Rin
SRIN

SNB

SDON

NB/1

DON

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

tape suiv

action

Etat <= ADD

284

Conception des circuits VLSI

Data_in

=0

tat

0
1

tape

tape suiv

action

Data_out(*) <= 0

rien <= 0

Rin <= Entre

ADD

Radd <= Rin(7-6)

NB

Rnb <= Rin

DON

Rnb <= Rnb -1

Rin <= Rin(5-6)&"00"

10

Etat <= NB

rien <= 0

10

Etat <= DON

rien <= 0

non

10

rien <= 0

oui

10

Etat <= ADD

10

11

Rvoie <= Rin

11

12

Data_out(Radd) <= 1

12

13

rien <= 0

13

14

rien <= 0

14

rien <= 0

Data_in
Etat

rsult=0

sources

dest
op

Exercices

285

4. Conception dun squenceur cbl :

Reprage des instants de squencement de lalgorithme :

t0
t1

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

t2

NULL

Data_in=0

Data_in=1

t3

Rin <= Entre


Etat=ADD

t4
t5
t6

Dunod La photocopie non autorise est un dlit.

t7
t8
t9
t10
t11

Etat=NB

Etat=DON

Radd <= Rin(7-6)


Rin <= Rin(5-0)&"00"

RNB <= Rin


NULL

RNB <= RNB-1


NULL

Etat <= NB

Etat <= DON

Etat<=DON * Etat<=ADD

RNB?0

RNB=0

Rvoie <= Rin


Data_out(Radd) <= 1
NULL
NULL
NULL

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 simplifiera 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 figure 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
modifi (voir figure 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 modifi 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

rst
clk

t0

t1

t1
Data_in=0

clk
rst

t1
Data_in

Data_in=1

t2

t2

t3

clk
rst

t2
Data_in
1

t11
t3
t3

clk
rst

clk
rst

t11
t11

RZDA*

LDAAD

LRAD LRV

Radd

LETAT

RNB

Etat

Rvoie

LRIN

LRNB

SRNB
DON

SENT

Voies de sortie

NB

S0

Entre

SRIN

ADD

SAD

Rin

transf,
decr,
decal

ADD/1

SNB

SDON

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;

clk

=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 spcifiques chaque registre.
Conception dune FIFO En VHDL
ec

lec

entree

sortie

file_pleine

file_vide
rst

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.

Dunod La photocopie non autorise est un dlit.

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).
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 fixe, 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 file pleine et de file 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 signifie que la file 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 file pleine et de file 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 file est pleine). Linfo
doit tre prsente sur le bus entree avant le front arrire de ecr. Lcriture est bloque si la file est pleine. La dtection de file pleine seffectue par la dtection de
lgalit des deux index aprs une criture. Toute criture a pour consquence que la
file 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 file est vide). Linfo
est prsente sur le bus sortie au moins pendant que la ligne lec est active. Linformation est suppose extraite de la file aprs une lecture. La dtection de file pleine
seffectue par la dtection de lgalit des deux index aprs une lecture. Toute lecture
a pour consquence que la file nest pas pleine.
Les tats de file pleine et de file 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 finale 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 signification 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;

Dunod La photocopie non autorise est un dlit.

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

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.

Dunod La photocopie non autorise est un dlit.

Seconde 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;
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!!)

Dunod La photocopie non autorise est un dlit.

Exercices

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

293

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 file pleine ou file 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 file 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;

Dunod La photocopie non autorise est un dlit.

Exercices

295

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

Dunod La photocopie non autorise est un dlit.

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 :
(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 dfini 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 dfinition 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 dfinie.

A1.3

Fonctions boolennes

299

grandeur
valeur logique 1

seuil haut

valeur logique indfinie

seuil bas

valeur logique 0
En fait, beaucoup de montages lectroniques se modlisent laide de fonctions
incompltement dfinies. En plus des valeurs logiques, il est ncessaire de reprsenter
soit une valeur non dfinie, 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.

court-circuit
0

1
isol

De telles approches nous permettent de parler dinterrupteurs qui peuvent isoler


ou connecter des sources logiques.

Dunod La photocopie non autorise est un dlit.

A1.3 FONCTIONS BOOLENNES


Nous dfinirons 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 Simplification 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 simplification
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

a=1
b=1
1

b=0
1
1

terme ab

terme ac
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

Exemple : si f = a b alors f

301

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

Dunod La photocopie non autorise est un dlit.

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.

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 affichage

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

Dunod La photocopie non autorise est un dlit.

A2.1 ORGANISATION DE LAFFICHAGE


Laffichage de la montre sera ralis laide de six afficheurs 7-segments sans
lectronique. Ces afficheurs recevront la mme information concernant les segments
afficher. 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 affichs squentiellement
dix fois par seconde pour donner limpression dun affichage continu. Le temps daffichage de chaque chiffre sera donc de 1/60 seconde.

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 affichage

H2

SEG_HIGH

H1

M2

M1

S2

S1

SEG_LOW

SEG_SEL

il effectuera laffichage 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

Dunod La photocopie non autorise est un dlit.

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;

305

306

2 tude dune montre avec affichage

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

A2.3 OPTIMISATION DE LALGORITHME

Dunod La photocopie non autorise est un dlit.

Plusieurs interprtations sont possibles pour donner un sens matriel linstruction


case. Celle que nous choisissons consiste effectuer un adressage index des registres
afficher. Pour cela nous renommeront ces registres comme une nappe de fils unique
R(0 to 5) par les instructions toujours vraies suivantes :
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 affichage

A2.3.1 Organigramme
Celui-ci ressemble beaucoup lorganigramme de la montre simple. La boucle est
allonge 25 instructions, cela signifie 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 afficheurs 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>

<ope>

<source>

rien

Incr

X"F"

t1

Decode_high

t1

t2

Decode_low

t2

s1

s1

s2

s2

m1

m1

m2

m2

h1

h1

h2

h2

seg_high

R(t1)

seg_low

Dunod La photocopie non autorise est un dlit.

valid<=0
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 laffichage 7 segments ;
le dcodage des 3 segments bas pour laffichage 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 afficheurs.

310

2 tude dune montre avec affichage

1CD

bus_source

S1
S2

x"F"

M1

SELF

M2
H1
H2
T2
T1

SELT2

LOH2
LOT2
SEG_LOW
SEG_HIGH

LOT1

2CD

HIGH LOW

segments
(afficheurs)

SELT1

LOM1
LOM2
LOH1

SELM2
SELH1
SELH2

H2

OPE

bus_dest
LOS2

SELS1
SELM1

SEG_SEL

SELS2

S2
M1
M2
H1

selection afficheurs

LOS1

SELR(T1)

VAL

S1

VAL0

VAL1

2CD

tests

tests

test
(3,4,6,A)

A2.4.2 Schma du chemin de donnes

Le dcodeur et sa logique associe peuvent tre dessins comme des tranches


supplmentaires largissant le chemin de donnes et simplifiant son dessin. Cette
extension latrale comportera un nouveau bus vhiculant le contenu du registre t1.

A2.5

Conception du squenceur

311

A2.5 CONCEPTION DU SQUENCEUR


Comme pour la montre simple, le squenceur de la montre avec affichage 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

Dunod La photocopie non autorise est un dlit.

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

=x"6"
x"6"

=x"A"
x"A"

=x"A"
x"A"

=x"6"
x"6"

=x"A"
x"A"

=x"6"
x"6"

Matrice OU
dest

ope

source

et. suiv.

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

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

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"

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

312

2 tude dune montre avec affichage

Matrice ET

Matrice OU

etat

conditions

dest

ope

source

et. suiv.

E24
E24
E24
E25
E26
E26
E27
E28
E29
E30
E31
E32
E33

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

H1
rien
rien
H2
H1
rien
H2
rien
rien
rien
rien
rien
rien

Incr
Incr
Incr
Incr
Incr
Incr
Incr
Incr
Incr
Incr
Incr
Incr
Incr

x"F"
H2
x"F"
H2
x"F"
x"F"
x"F"
x"F"
x"F"
x"F"
x"F"
x"F"
x"F"

E25
E26
E26
E28
E27
E28
E29
E29
E30
E31
E32
E33
E0

=x"3"
x"3"

Dunod La photocopie non autorise est un dlit.

Index

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

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

B
barrire temporelle 147
bascule 154
niveau 156
matre-esclave 156
sur transitions 156
bi-phase (horloge) 146

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

314

portes de transfert 86
distribution (de lhorloge) 249
drain (dun transistor MOS) 19
DRC (Design Rules Checker) 263
duale dune fonction boolenne 300

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

Conception des circuits VLSI

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

Index

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

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

Dunod La photocopie non autorise est un dlit.

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

315

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

U
UAL (unit arithmtique et logique) 130

V
variable (VHDL) 178
VCO (Voltage Controlled Oscillator) 247
vrification 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 Grafics 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