You are on page 1of 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

www.biblio-scientifique.net
www.biblio-scientifique.net
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

www.biblio-scientifique.net
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. tablissements denseignement suprieur,


Son objet est dalerter le lecteur sur provoquant une baisse brutale des achats
la menace que reprsente pour lavenir de livres et de revues, au point que la
de lcrit, particulirement dans possibilit mme pour les auteurs
le domaine de ldition tech- de crer des uvres nouvelles et
nique et universitaire, le dvelop- de les faire diter correctement
pement massif du photo- est aujourdhui menace.
copillage. Nous rappelons donc que
Le Code de la proprit toute reproduction, partielle ou
intellectuelle du 1er juillet 1992 totale, de la prsente publication
interdit en effet expressment la est interdite sans autorisation du
photocopie usage collectif Centre franais dexploitation du
sans autorisation des ayants droit. Or, droit de copie (CFC, 20 rue des Grands-
cette pratique sest gnralise dans les Augustins, 75006 Paris).

Dunod, Paris, 2007


ISBN 978-2-10-050036-9

  
  
   

       




       
    
        

      
     
  


 
       
 ! " 
     #
      
 
  $ %    $    


 
 % 
    
 $&
' 
   
   
(         )   '&   '  
  

*$ %  '  

 &   $&  &    
  
    + %    ,  &   $ % 
  
   - 

www.biblio-scientifique.net
Table des matires

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

CHAPITRE 2 DU SILICIUM LINVERSEUR CMOS 13


2.1. Semiconducteurs 13
2.1.1 Semiconducteur intrinsque 13
Dunod La photocopie non autorise est un dlit.

2.1.2 Semiconducteur de type N 15


2.1.3 Semiconducteur de type P 15
2.2. Diode/jonction 15
2.3. Capacit MOS 16
2.4. Transistor MOS 19
2.4.1 Courant dans un transistor MOS 20
2.4.2 Cas des transistors P 24
2.4.3 Effets du second ordre 24

www.biblio-scientifique.net
VI Conception des circuits VLSI

2.5. Linverseur CMOS 26


2.5.1 Caractristique de transfert de linverseur 26
2.5.2 Niveaux logiques 32
2.5.3 Inverseur minimal 33
2.5.4 Caractrisation dynamique de linverseur minimal 34

CHAPITRE 3 FABRICATION DES CIRCUITS INTGRS 41


3.1. Introduction 41
3.1.1 Photolithographie optique 42
3.2. Squence de fabrication dun inverseur CMOS 44
3.2.1 Fabrication des tranches de silicium 44
3.2.2 tape 1 : ralisation du caisson N 46
3.2.3 tape 2 : prparation des zones actives 49
3.2.4 tape 3 : ralisation des grilles 51
3.2.5 tape 4 : dopage des zones actives 54
3.2.6 tape 5 : ralisation des via des contacts 55
3.2.7 tape 6 : ralisation des connexions en mtal 1 56
3.2.8 tape 7 : ralisation des via mtal 1 mtal 2 58
3.2.9 tape 8 : ralisation des connexions en mtal 2 59
3.3. Principes de dfinition des rgles de dessin 61
3.3.1 Les diffrents types de contraintes 62
3.3.2 Exemples de rgles de dessin 63

CHAPITRE 4 RSEAUX DE CONDUCTION ET PORTES 67


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

www.biblio-scientifique.net
Table des matires VII

4.5. Logique dynamique 88


4.5.1 Logique Domino 89
4.5.2 Partage de charges 89
4.6. Logique matricielle 91
4.6.1 Matrice de ROM 91
4.6.2 Utilisation des matrices de ROM comme reconnaisseurs/dcodeurs 94
4.6.3 PLA-ROM 95
4.6.4 ROM 98
4.6.5 PLA boolen 98
4.6.6 Alimentation pulse 100
4.6.7 PLA dynamique 100
4.6.8 Optimisation des PLA 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 107
5.3.1 Rgles dites au Lambda 107
5.3.2 Dessin symbolique sur grille 108
5.4. Couches technologiques et flux dinformation 109
5.4.1 Organisation matricielle du dessin des blocs 109
5.4.2 Affectation des flux aux couches technologiques 111
5.5. Dessin des portes CMOS classiques 111
5.5.1 Dessin dun rseau de conduction 112
5.5.2 Dessin des portes classiques 113
5.6. Dessins squelettiques 117
5.7. Dessin des ROM et des PLA 118
5.7.1 Matrices NOR 118
5.7.2 Matrices NAND 119
5.8. Assemblage des macro-blocs dun circuit 120
Dunod La photocopie non autorise est un dlit.

CHAPITRE 6 OPRATEURS ARITHMTIQUES 121


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

www.biblio-scientifique.net
VIII Conception des circuits VLSI

6.2.4 Additionneur parallle 128


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

CHAPITRE 7 SYSTMES SQUENTIELS 137


7.1. Dfinitions 137
7.1.1 Reprsentation du comportement des systmes squentiels 139
7.2. Systmes squentiels asynchrones 139
7.3. Systmes squentiels synchrones 140
7.3.1 Ralisation des systmes synchrones 142
7.4. Systmes polyphass 142
7.4.1 Notion de latches 142
7.4.2 Systmes polyphass 145
7.5. Systmes monophass 153
7.5.1 Bascules 154
7.5.2 Systmes monophass 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 173
8.2.1 Lentit 174
8.2.2 Larchitecture 174
8.3. Les diffrents types de description 175
8.3.1 Descriptions structurelles 175
8.3.2 Descriptions fonctionnelles 177
8.3.3 Descriptions procdurales 178
8.3.4 Descriptions mixtes 180
8.4. Types des signaux et des variables 180
8.4.1 Types standard et drivs 180
8.4.2 Types IEEE 182
8.5. Expressions 183
8.5.1 Attributs des signaux 183

www.biblio-scientifique.net
Table des matires IX

8.5.2 Oprateurs 184


8.5.3 Temps de transit 184
8.6. Instructions de connexion conditionnelle 185
8.6.1 Multiplexeurs 185
8.6.2 Logique 3 tats et latches 186
8.6.3 Blocs 187
8.7. Comportement temporel des descriptions 187
8.7.1 Intervalle temporel de dfinition des signaux 187
8.7.2 Cas des dispositifs temps de rponse trs long 188
8.8. Instructions spcifiques aux processus 189
8.8.1 Instructions conditionnelles 189
8.8.2 Instruction de choix 190
8.8.3 Instructions de bouclage 190
8.8.4 Mise en attente dun processus 191
8.8.5 Filtrage des vnements lors de lexcution dun process 192
8.8.6 Choix du front de dclenchement dun process 192
8.9. Descriptions comportementales 193
8.10. Fonctions 193
8.10.1 Programmation des fonctions 193
8.10.2 Fonctions de rsolution de conflits 194
8.11. Packages 194
8.11.1 Mise en uvre des packages 195
8.12. Duplication et paramtrisation du matriel 195
8.12.1 Structures vectorielles et matricielles 195
8.12.2 Paramtrisation du matriel 196
8.13. Matriel complmentaire 197
8.13.1 Environnement de simulation 197

CHAPITRE 9 CONCEPTION ALGORITHMIQUE DES CIRCUITS VLSI COMPLEXES 199


9.1. Introduction 199
Dunod La photocopie non autorise est un dlit.

9.2. Domaines dapplication de cette technique de conception 200


9.3. Description du comportement 201
9.3.1 Description du squencement 201
9.3.2 Choix du compromis cot/performance 203
9.4. Dmarche gnrale de conception 205
9.5. Conception du chemin de donnes 207
9.5.1 Spcification du chemin de donnes de la montre 207
9.5.2 Mise sous forme standard des instructions opratives 208
9.5.3 Conception physique du chemin de donnes 210

www.biblio-scientifique.net
X Conception des circuits VLSI

9.6. Architecture temporelle 218


9.6.1 Fonctionnements relatifs du squenceur et du chemin de donnes 219
9.7. Conception du squenceur de la montre 223
9.7.1 Mise en forme de lalgorithme 223
9.7.2 Ralisation du squenceur de la montre 224
9.7.3 Contenu du PLA 224
9.7.4 Optimisation topologique du PLA 226
9.7.5 Squencement global de la montre 226
9.7.6 Description VHDL du squenceur de la montre 226
9.8. Autres organisations possibles de squenceur 230
9.8.1 Squenceurs microprogramms 230
9.8.2 Squenceurs cbls 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 244
10.2.1 Notion de zone isochrone 248
10.2.2 Distribution de lhorloge 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 261
11.4.1 Styles de conception 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

www.biblio-scientifique.net
Table des matires XI

ANNEXE 1 RAPPELS DALGBRE DE BOOLE 297


A1.1. Dfinition 297
A1.2. Interprtation 298
A1.3. Fonctions boolennes 299
A1.3.1 Terme 299
A1.3.2 Forme canonique dune fonction boolenne 300
A1.3.3 Simplification dune fonction boolenne 300
A1.3.4 Duale dune fonction boolenne 300
A1.3.5 Proprits du OU-exclusif 301
A1.3.6 Vision dissymtrique des fonctions boolennes 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 307
A2.3.1 Organigramme 308
A2.4. Conception du chemin de donnes 309
A2.4.1 Forme standard 309
A2.4.2 Schma du chemin de donnes 310
A2.5. Conception du squenceur 311
Dunod La photocopie non autorise est un dlit.

www.biblio-scientifique.net
www.biblio-scientifique.net
Chapitre 1 1

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 dpar-
tements 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 micro-
processeurs [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
Dunod La photocopie non autorise est un dlit.

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 appro-
fondie de lensemble des sujets abords ncessiterait dcrire une encyclopdie.
Nous avons donc choisi de ne traiter que les lments importants de chaque domaine

www.biblio-scientifique.net
2 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 per-
mis de raliser, de manire monolithique, des organes lectroniques de plus en plus
complexes qui taient auparavant raliss sous la forme darmoires (par exemple : des
processeurs, des mmoires, des commutateurs tlphoniques).

Nb Tr
1 000 000 000
Prvision Intel

100 000 000

Pentium 4
Celeron
10 000 000 Pentium II
PPC620
PPC601 Pentium-Pro
Pentium
1 000 000 MC68040 I486 INTEL
MOTO / IBM
MC68020 I386
100 000 I286
MC 68000
MC6800 I8086
10 000
I8008
I4004
1 000
1970 1975 1980 1985 1990 1995 2000 2005 2010

Figure 1.1 volution exponentielle de la complexit des microprocesseurs


(illustration de la loi de Moore)

Le principal moteur de cette volution rside dans la diminution rgulire de la taille


des motifs de dessin des circuits intgrs. Partis de quelques dizaines de microns
dans les annes 1960, ceux-ci sont maintenant de 60 nm en 2006, et tout montre que
cette volution nest pas termine.
La capacit de lindustrie microlectronique poursuivre cette volution est pro-
prement 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 prdic-
tion est encore le simple prolongement du pass, aussi incroyable quil puisse tre.

www.biblio-scientifique.net
1.2 Lvolution des circuits intgrs 3

Taille des motifs minimaux (microns)


100
55m

12m
10
6m
5m
4m
3m
2m
1m
1
800nm
350nm
250nm apparition des
180nm phnomnes
130nm
0,1 90nm quantiques
65nm
45nm
prdiction Intel

0,01
1960 1970 1980 1990 2000 2010 2020

Figure 1.2 volution de la taille des motifs minimaux de la technologie

1.2 LVOLUTION DES CIRCUITS INTGRS

Lvolution des circuits intgrs est certainement laventure technologique la plus


fabuleuse de lhistoire humaine. Lampleur des progrs raliss dpasse de loin tout ce
qui a t fait dans les autres domaines, y compris laviation et le spatial.
Les circuits intgrs utilisent deux types de composants actifs, appels transis-
tors :
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.
Dunod La photocopie non autorise est un dlit.

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 transis-
tors effet de champ, dont le dbit est command par une tension, les transistors
bipolaires se comportent comme des amplificateurs de courant.

www.biblio-scientifique.net
4 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 compor-
taient 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 mil-
lions 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 dis-
sipation 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 con-
sommation. 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.

www.biblio-scientifique.net
1.3 Petit historique de la circuiterie logique 5

d'aprs Fred Pollack, Intel


Puissance dissipe 10 00

Cur de racteur nuclaire


W/cm2

1 00

P4 3Ghz
PII PIII P4 1,5Ghz
Plaque de cuisson
10
P Pro
Pentium
I386 I486
Familles technologiques
1
1.5 1 0.7 0.5 0.35 0.25 0.18 0.13 0.1 0.07

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

La poursuite de cette course aurait ncessit lutilisation de dispositifs de refroidis-


sement trs coteux. Heureusement, lavenir de ces circuits complexes se situe en
grande majorit dans des appareils portables (tlphone, gadgets lectroniques, ordi-
nateurs, baladeurs musicaux et vido), ce qui a permis de changer de cible commer-
ciale et de bnficier dun sursis momentan.

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 dve-
loppa 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 suc-
cessifs. Cela conduisit utiliser des couplages capacitifs et une reprsentation des
Dunod La photocopie non autorise est un dlit.

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 dactiva-
tion. 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 conti-
nuaient 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

www.biblio-scientifique.net
6 1 Introduction

doigt certain. Pour assainir le fonctionnement de ces machines, la logique syn-


chrone 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 fr-
quentes entre les lots de circuits. Pour saffranchir de ce problme, une logique poly-
phase, 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 lutili-
sation 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 hor-
loge 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 sur-
tout qui nentraient pas dans la culture classique des lectroniciens malgr les avan-
tages 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.

www.biblio-scientifique.net
1.4 le monde intrieur aux circuits intgrs 7

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

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.

www.biblio-scientifique.net
8 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 dispo-
sitifs 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 ralentis-
sement 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 dif-
frentes fonctions dans le mme circuit intgr en augmentant ainsi sa complexit.
Cette tendance est dailleurs incite par lvolution technologique qui permet une aug-
mentation 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 arti-
sanal, 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

www.biblio-scientifique.net
1.5 Leffort de conception des circuits intgrs 9

intgrs disposent de bibliothques de cellules qui sont la base de leur approches


de conception automatique. Dautre part, il existe un march pour des sous-
ensembles importants, appels IP (pour Intellectual Property) tels que des proces-
seurs, 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 perma-
nence 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 :
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 technolo-
gique 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
Dunod La photocopie non autorise est un dlit.

rapport une conception manuelle. Ce compromis na rien de surprenant, il est com-


parable celui obtenu pour le logiciel pour lequel il a t tranch, depuis dj long-
temps, en faveur de lautomatisme.
La quasi-totalit des circuits intgrs est maintenant compile. Restent les micro-
processeurs gants dont environ la moiti de la surface est encore dessine manuel-
lement 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-lec-
tronique redeviendrait donc possible sans perturber lespace cognitif des concepteurs.

www.biblio-scientifique.net
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 pro-
grammation 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 informa-
tique 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 comportemen-
tales 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 concep-
teurs de circuits intgrs. Leur volution vers linformatique est une rsultante dune
certaine diminution de lintrt pour llectronique au profit de linformatique.

www.biblio-scientifique.net
1.6 Les langages de conception 11

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

www.biblio-scientifique.net
www.biblio-scientifique.net
Chapitre 2 2

Du silicium linverseur CMOS

2.1 SEMICONDUCTEURS
Les semiconducteurs sont des matriaux qui se situent entre les mtaux et les mtal-
lodes 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 princi-
paux semiconducteurs sont le germanium, le silicium et le carbone. Actuellement, seuls
le germanium et le silicium sont utiliss en microlectronique. Les alliages de mtaux-
mtallodes 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 utili-
Dunod La photocopie non autorise est un dlit.

serons 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 com-
portent comme des charges positives mobiles. Les trous se dplacent par des mouve-

www.biblio-scientifique.net
14 2 Du silicium linverseur CMOS

Figure 2.1 Cristal de silicium

- - - - -

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

-- -- -- -- --

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

-- -- -- -- --

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

- - - - -

Figure 2.2 Reprsentation planaire dun cristal de silicium

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

www.biblio-scientifique.net
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 enga-
gent 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.

- - -
+ - + - +
lectron mobile
- - - - - -
P
-
- - -
+ - + - +

- - - - - -

- - -
+ - + - +

Figure 2.3 Semiconducteur de type N

2.1.3 Semiconducteur de type P


Si le matriaux dopant est maintenant de valence 3 (bore dans une proportion de 10 19
104). Ses atomes vont sengager dans trois liaisons chimiques du cristal (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
Dunod La photocopie non autorise est un dlit.

matriau dautant plus conducteur quil contient plus de dopant. La mobilit du sili-
cium 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

www.biblio-scientifique.net
16 2 Du silicium linverseur CMOS

- - -
+ - + - +

- - - - - -
B trou mobile
- -
+ - +
+ - +

- - - - - -

- - -
+ - + - +

Figure 2.4 Semiconducteur de type P

mobiles respectives vers la jonction o elles sannihilent provoquant leur ralimenta-


tion, 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 cer-
taine 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 lappari-
tion 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 mtal-
lique, 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 semi-
conducteur 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).

www.biblio-scientifique.net
2.3 Capacit MOS 17

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

type N jonction type P

Figure 2.5 Jonction N/P

- +

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

type N recombinaisons type P

Figure 2.6 Courant direct au travers une jonction

+ -

i=0

- - - - - - - - - + + + + + + +
- - - - - - - - + + + + + + +
- - - - - - - - - + + + + + + +
Dunod La photocopie non autorise est un dlit.

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

zone
type N dplte type P

Figure 2.7 Jonction polarise en inverse

Dans un second temps, portons llectrode mtallique un potentiel positif. Les


trous vont alors tre repousss. Ils vont quitter la zone sous llectrode mtallique.

www.biblio-scientifique.net
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 Transistor MOS 19

2.4 TRANSISTOR MOS


Un transistor MOS (aussi appel transistor FET pour Field Effect Transistor) est cons-
titu 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+) canal drain (N+)

Figure 2.11 Transistor MOS de type N

Ce transistor est physiquement symtrique, toutefois son fonctionnement lectrique


ne lest pas.
Lutilisation dun substrat de type oppos permet de raliser des transistors compl-
mentaires qui deviendront conducteurs pour des potentiels opposs. On parlera alors
de transistors N ou P suivant le type du semiconducteur induit pour constituer leurs
canaux.
Ces transistors sont schmatiss par les symboles suivants :
Dunod La photocopie non autorise est un dlit.

drain drain

grille substrat grille substrat

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 phy-
sique. 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 semi-
conducteur 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+) drain (N+)

Figure 2.14 Polarisation dun transistor MOS de type N


2.4 Transistor MOS 21

La charge lectrique contenue dans cette tranche sera :



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 ---------
v dv
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
0 e vs
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
e L
le facteur de forme du transistor.
Cette intgration peut se faire graphiquement. Nous supposerons que vt varie linai-
rement le long du canal (figure 2.15) :

vt

vg
Dunod La photocopie non autorise est un dlit.

Vt0

v (le long du canal)


vs vd

Figure 2.15
22 2 Du silicium linverseur CMOS

Plusieurs cas sont considrer :


vd petit (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

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 :

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

vt

vg

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 ----- ---------------------------
L 2
Cette zone de la caractristique du transistor est appele sature.
La caractristique i(vd) du transistor est donc :

id
Dunod La photocopie non autorise est un dlit.

vg = ct

vds
vg-Vt0

zone zone zone


linaire quadratique 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 fonc-
tionnement 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 pro-
voque 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 25

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

S D

canal
zone de
pinch off

Figure 2.22 Zone de pinch-off

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

vg = ct

vds
vg-Vt0

Figure 2.23
26 2 Du silicium linverseur CMOS

2.5 LINVERSEUR CMOS


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

Vdd

E S

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 dali-
mentation, 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) Vout = 0 v.

a) Points caractristiques

Point

Lexpression du courant commun est :


2.5 Linverseur CMOS 27

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

Vout

A

B

D
Vin
E
Vdd

Figure 2.26
Dunod La photocopie non autorise est un dlit.

1 Wn
i = --- n c ox ------- ( V in V T ) 2
2 Ln
1 Wp
= --- p c ox -------- [ 2 ( ( Vdd V in ) V T ) ( Vdd V out ) ( Vdd V out ) 2 ]
2 Lp
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
-------- = -----n-
Wn 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 nampli-
fie 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)
2
Reportons dans (1) pour liminer Vout :
2
( V in V T ) 2 = 2 ( Vdd V in V T ) ---------- V in ---------- V in
Vdd Vdd
2 2

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


Vdd 3
2 2
2 3
V T = 4V in V T 2VddV in + --- Vdd 2 VddV T
4
V
2V in ( Vdd 2V T ) = ( Vdd 2V T ) --- Vdd + ------T-
3
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.5 Linverseur CMOS 29

en tenant compte de lexpression de Vin :


Vdd 1
V out = ---------- + --- ( 3Vdd + 2V T )
2 8

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

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

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 :

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

comme il peut aussi scrire :


Dunod La photocopie non autorise est un dlit.

1 Wn
i = --- n c ox ------- ( V out V T ) 2
2 Ln
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 :
1 Wn 1 Wp
= --- n c ox ------- [ 2 ( V in V T )V out V out ] = --- p c ox -------- ( Vdd V in V T )
2 2
2 Ln 2 Lp
Un raisonnement identique conduit :
2 ( V in V T )V out V out
2
= ( 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 ---------- (4)
2
que nous reportons dans (3) :
Vdd 2
2 ( V in V T ) V in ---------- V in ---------- = ( Vdd V in V T ) 2
Vdd
2 2
Ce qui donne, aprs dveloppement :
V
2V in ( Vdd 2V T ) = ( Vdd 2V T ) --- Vdd ------T-
5
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 :
1 Wn
i = --- n c ox ------- [ 2 ( V in V T )V out V out
2
]
2 Ln
2.5 Linverseur CMOS 31

De (3) liminons Vout :


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

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.

A
Dunod La photocopie non autorise est un dlit.

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 mini-
males 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 :
Wp
-------- = -----n- voisin de 2
Wn p
Dunod La photocopie non autorise est un dlit.

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

Nous verrons que cet inverseur minimal peut jouer un rle de rfrence dans le
calcul des portes logiques.
34 2 Du silicium linverseur CMOS

2.5.4 Caractrisation dynamique de linverseur minimal

La caractrisation dynamique de cet inverseur consiste dterminer ses temps de


monte, de descente et de transit. Pour cela, il doit tre mis en situation, cest--dire
attaqu par un signal identique celui quil produit et charg de la mme manire que
ce quil prsente en entre (ou par un multiple, pour ltude de la sortance). Cette situa-
tion est obtenue en simulant une chane dinverseurs et en tudiant celui dispos au
centre (figure 2.31). La construction dun modle mathmatique crdible pour dter-
miner ces valeurs est beaucoup trop complexe.

Inverseur tudier

points d'observation

Figure 2.31 Montage de test dun inverseur

Figure 2.32 Signaux dentre et de sortie de linverseur minimal

Sur ce chronogramme, nous pouvons mesurer les temps de monte et de descente


gaux 260 ps environ et le temps de propagation gal 150 ps environ. Une capacit
de charge de 15 ff sur le dernier inverseur lamne gnrer un signal trs voisin de
celui des inverseurs centraux. Cette capacit correspond donc celle dentre de
linverseur.
2.5 Linverseur CMOS 35

a) Dsquilibrage des transistors


Lorsque nous nous cartons du rapport n/ p pour dimensionner la largeur des tran-
sistors 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 TrP = TrN


(normal)

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.
b) Temps de propagation en fonction de la charge
Dunod La photocopie non autorise est un dlit.

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

Figure 2.34 Signal de sortie dun inverseur minimal en fonction de sa charge capacitive
36 2 Du silicium linverseur CMOS

Nous constatons que le temps de propagation dun inverseur est proportionnel la


somme de sa charge capacitive et de sa capacit de sortie.
= k ( Cs + Cch ) (3)

temps de propagation ps
500

450

400

350

300

250

200

150

capacit de
100
sortie (25ff)

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

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

En prolongeant cette courbe, nous voyons que limpdance de sortie de linverseur


contient une capacit denviron 25 ff relie Vss.

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

points d'observation

Figure 2.36

constitue de 8 inverseurs du mme type. Toutefois, les inverseurs qui constituent la


charge sont encore tout fait capables de reformater le signal. La sortance de cet inver-
seur savre donc tre dau moins 8.

signal
reformat
par la porte
suivante
charge 1
Dunod La photocopie non autorise est un dlit.

charge 8

Figure 2.37 Dformation et reformatage des signaux


pour une charge de 8 inverseurs de mme type.
38 2 Du silicium linverseur CMOS

d) 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 ra-
liser 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 inver-
seur 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).

= K ------- + ----------
Cs Cch
Ce Ce
Posons = Cch Ce pour reprsenter le coefficient de charge relative de linver-
seur (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 :

= K ------- +
Cs
Ce
Do le temps de propagation de la chane dadaptation est de :

T = n = nK ------- +
Cs
(4)
Ce
le fait que tous les inverseurs de la chane aient le mme coefficient de charge signifie
que :
CF
------- = n
Dunod La photocopie non autorise est un dlit.

Ce
soit :
CF
log ------- = n log ( )
Ce
Remplaons n dans (4) par sa valeur :
CF
log -------
Ce
T = --------------------- K ------- +
Cs
log Ce
40 2 Du silicium linverseur CMOS

CF
dT = K log ------- -----------------2- --- ------- + + ----------- d
1 1 Cs 1
Ce ( log ) Ce log
La valeur minimale de T est obtenue pour :
CF
------- = K log ------- -----------------2- --- ------- + + ----------- = 0
dT 1 1 Cs 1
d Ce ( log ) Ce log
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 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.
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
Dunod La photocopie non autorise est un dlit.

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 consti-
tuent 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 ta-
pes de lithographie doivent tre ralises dans des conditions de trs grande pro-
pret. Celles-ci sont ralises dans des salles blanches. Dans ces dernires, la quan-
tit 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

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

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
Graphite

Solnode de
Dunod La photocopie non autorise est un dlit.

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


limtres 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 dpais-
seur. 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 pre-
mires 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 photolitho-
graphie 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 correspon-
dant 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

Masque caisson N
Vue en coupe

Oxyde
Rsine Photosensible

Substrat type P

Vue de dessus

Masque caisson N

Figure 3.6 tape 1 (masquage de la rsine)

Vue en coupe

Oxyde
Rsine photosensible

Substrat type P

Figure 3.7 tape 1 (dveloppement de la rsine)


Dunod La photocopie non autorise est un dlit.

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 com-
prises 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 per-
met 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 col-
lisions 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).

b) Croissance de loxyde de champ


Les zones non protges par le SiN sont oxydes par oxydation thermique. La couche
Dunod La photocopie non autorise est un dlit.

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 per-
mettre 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 pro-
tection des composants.
50 3 Fabrication des circuits intgrs

Masque zone active


Vue en coupe

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 Rsine


SiN

Substrat type P

Figure 3.11 tape 2 (gravure du SiN)

Vue en coupe

Caisson N Nitrure de Silicium


SiN
FOX

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 Atmos-
pheric 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


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

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 sur-
face 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 photolithogra-
phie 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 doxy-
gne 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 gn-
ralis 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

Masque polysilicium
Vue en coupe

Polysilicium
Caisson N Rsine
FOX
Oxyde mince

Substrat type P

Vue de dessus

Masque polysilicium

Figure 3.14 tape 3 (masquage du polysilicium)

Figure 3.15 tape 3 (gravure du polysilicium)


Dunod La photocopie non autorise est un dlit.

Figure 3.16 tape 3 (Gravure de loxyde mince)


54 3 Fabrication des circuits intgrs

3.2.5 tape 4 : dopage des zones actives


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

a) Masquage et dveloppement de la rsine pour les zones P+


La rsine est insole travers le masque zone P+ (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

Caisson N Polysilicium
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


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

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 cou-
plages 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 plana-
risation.

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 57

Figure 3.20 tape 5 (masquage des contacts)

Vue en coupe

Silice
Rsine planarise

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


Dunod La photocopie non autorise est un dlit.

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

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


Dunod La photocopie non autorise est un dlit.

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 impor-
tantes (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.

3.3 PRINCIPES DE DFINITION DES RGLES DE DESSIN


La ralisation des motifs constituants un circuit doit respecter les diffrentes con-
Dunod La photocopie non autorise est un dlit.

traintes 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 distor-
sion 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 dimen-
sions diminuent (due la rsistivit des matriaux). Idem pour les connexions
mtalliques.
Le maintien de la valeur de la capacit parasite des connexions lorsque les dimen-
sions 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 carac-
tristiques 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 concep-
tion 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 con-
nexions et les ventuels effets micro-onde qui apparaissent avec laugmentation des
frquences de fonctionnement.

3.3.2 Exemples de rgles de dessin


Lobjectif ne peut tre ici de dcrire de manire exhaustive lensemble des rgles de
Dunod La photocopie non autorise est un dlit.

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 rsolu-
tion 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 msa-
lignement 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 65

Figure 3.27 Exemple de rgles 0,6 m


Dunod La photocopie non autorise est un dlit.
Chapitre 4 4

Rseaux de conduction et portes

4.1 REPRSENTATION SYMBOLIQUE DES SIGNAUX


Lorsque lon regarde un montage lectronique avec le niveau dabstraction logique, les
groupements de transistors sont vus comme des portes et les signaux quils changent
comme des signaux logiques.

4.1.1 Signaux logiques


Les signaux logiques reprsentent des niveaux de tension. Une valeur logique 1 repr-
sente 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
Dunod La photocopie non autorise est un dlit.

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
valeur dfinie nouvelle valeur dfinie t
0

transition

Figure 4.3 Transition entre deux valeurs dfinies non connues

v
1
valeur dfinie nouvelle valeur dfinie
0 t

valeur non
dfinie

Figure 4.4 Valeur non dfinie entre deux valeurs dfinies non connues

t relation de causalit

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 :
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 nga-
tives. Celles-ci doivent donc tre dfinies sans ambigut. Le signal doit donc tre
exempt de toute transition parasite qui crerait des vnements non souhaits.
Dunod La photocopie non autorise est un dlit.

vnement vnement

Figure 4.7 Signal vnementiel

La combinaison des vnements suit une logique particulire dans laquelle le repre
temporel doit tre bien 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 vne-
mentiels. 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 pro-
vient 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 diff-
remment. 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

Entres Sortie

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


mencer 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). Linter-
valle 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 beau-
coup plus complexes.

4.1.5 Validation des signaux temporels (horloges)


Il est dconseill de gnrer ou mme de valider, un signal temporel laide dun
circuit combinatoire complexe sans prcautions trs particulires. Par exemple, il est
dconseill dutiliser directement les sorties dun dcodeur comme des signaux
temporels.
Une bonne technique pour conditionner un signal dhorloge consiste utiliser une
porte ET spciale, alimente par cette horloge (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
Dunod La photocopie non autorise est un dlit.

condition horloge
(complmente) conditionne

Figure 4.11 Conditionnement dune horloge


72 4 Rseaux de conduction et portes

4.2 LE TRANSISTOR VU COMME UN INTERRUPTEUR


Les transistors MOS peuvent se comporter comme des interrupteurs (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

bloqu Vd

Figure 4.12 Un transistor vu comme un interrupteur

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

g
g
s d s d

Figure 4.13 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 Vt
Vdd-Vt Vdd
d s
Vdd
0v
t

Figure 4.14 Mauvaise transmission des 1 par un transistor N

4.3 RSEAUX DE CONDUCTION

4.3.1 Logique de conduction


Depuis longtemps, on ralise des rseaux complexes en assemblant des interrupteurs
et des relais. Ces rseaux ont pour proprit que la 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 cor-
respond raliser un OU de leurs fonctions de conduction.

A
A B
B

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

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

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

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 transis-
tors 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 fonc-
tion de conduction.

X
X

X X

Figure 4.19 Interrupteur CMOS

La permutation des commandes X et X entre les transistors N et P permet dinverser


la fonction de conduction de linterrupteur CMOS.

4.3.2 Utilisation des rseaux de conduction


Les rseaux de conduction sont utiliss pour amener, conditionnellement, des valeurs
logiques sur certains nuds du circuit. Ces valeurs logiques peuvent provenir dautres
nuds ou des alimentations (Vdd et Vss). Plusieurs rseaux peuvent tre utiliss con-
jointement (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 contri-
butions des diffrents rseaux peuvent tre disjointes ou avoir des superpositions.
Dans ce cas, les valeurs amenes simultanment au nud destination ne doivent pas
Dunod La photocopie non autorise est un dlit.

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 comp-
ter 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
a S

rseau j
b

rseau k
u

Figure 4.20 Signal gnr par plusieurs rseaux de conduction

nb de "1"
"0" 4

"0" 3

"0" 2

"0" 1

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

B3 B3 B2 B2 B1 B1 B0 B0

Figure 4.21 Circuit Tally vu comme un rseau dinterrupteurs

4.4 PORTES LOGIQUES


Dans un circuit CMOS, les portes sont constitues par lassemblage de rseaux de
conduction branchs entre Vdd, Vss, les entres et leurs sorties. Les diffrents schmas
possibles permettent dobtenir toute une gamme de rapports performance/complexit
qui offrent diffrent choix pour optimiser la conception dun circuit.

4.4.1 Consommation des portes logiques


Dans la grande majorit des cas, les portes dun circuit CMOS sont charges par de
pures capacits. En effet, les portes sont trs souvent connectes sur les grilles des tran-
sistors qui constituent les portes suivantes. Ceci entrane quelles nont pas de consom-
mation continue. Lnergie quelles consomment nest dissipe que lors des charges
4.4 Portes logiques 77

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

4.4.2 Portes CMOS classiques


Les portes CMOS dites classiques sont constitues par lassemblage de deux rseaux
de conduction branchs entre Vdd, Vss et la sortie et qui reoivent les mmes entres.

VDD

Rseau de Tr P
=> fonction de conduction
conduction f*
Entres
Sortie => f

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

VSS

Figure 4.22 Une porte classique vue


comme lassemblage de deux rseaux de conduction duaux

Un premier rseau de conduction, dit N, constitu de transistors N, est charg de


tirer la sortie vers Vss. Il est donc branch entre la sortie et Vss. Si la porte doit ra-
liser 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 cons-
titu 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 inver-


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

VDD

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

rseau N

Figure 4.23 Exemple de porte ( ( A B ) C )

Les portes classiques sont celles qui permettent datteindre les meilleures perfor-
mances en vitesse. En effet, les rseaux de transistors N et P sont utiliss de manire
optimale. Toutefois, ces portes comportent beaucoup de transistors qui occupent de
la surface et chargent les entres de manire importante.

a) Dimensionnement des portes CMOS

Dimensionnement des transistors


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

VDD

B 4
rseau P
A 4 C 2

A 2 B 2

rseau N

C 2

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


frence entre la mise en parallle ou en srie des transistors dans les rseaux de con-
duction. 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.

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

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


A 2 4 6 2
B 2 4 6 2
C 2 2 4 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 sim-
plifis en cherchant partager, entre plusieurs portes, des sous-rseaux identiques.
Ces sous rseaux doivent tre en srie et branchs Vdd ou Vss pour ne partager que
les effets de leurs variations de conduction. Il est galement possible de permuter
des sous-rseaux en srie ou en parallle pour pouvoir les partager.

VDD

B
sous-rseau commun

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

A B E A B C

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. Lutili-
sation de ces portes ncessite souvent de disposer des valeurs directes et compl-
mentaires 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 complmen-
taire de lune des entres.

b b
r1
a S
r2 a S

b b

porte ET porte OU

Figure 4.26 Portes ET et OU

Il existe dautres faons de raliser des portes ET et OU. Nous pouvons mentionner
le schma suivant de porte ET qui consiste alimenter un inverseur par lun des
oprandes :

H
Dunod La photocopie non autorise est un dlit.

C HC

Figure 4.27 Porte ET pour le conditionnement dune horloge

Ce type de porte est utilis pour gnrer des sous-horloges en conditionnant une hor-
loge 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
a I2
NON-OUEX 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

a S
I P

a
b

Figure 4.29 Porte OUEX


constitue dun interrupteur et dun inverseur alimentation commande

A S

Figure 4.30 Porte OUEX quatre transistors

NON-OUEX(A, B) = A si B = 1, B si A = 1, 1 si A = 0 et B = 0
ce qui peut tre ralis par la figure 4.31 :
Cette porte possde linconvnient de gnrer une sortie 1 altre lorsque A = B = 1.
Dunod La photocopie non autorise est un dlit.

A S

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 sym-
trique, avec des rseaux N et P apparemment non duaux qui ralisent les fonctions
de connection gN et gP symtriques.

VDD

A B
B

A C

S = Min(A,B,C)

A C

B
A B

Figure 4.32 Porte MINORIT symtrique (et duale)

En fait, les rseaux N et P sont bien duaux. Pour le voir, il 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 systma-
tique que celui des portes classiques.
4.4 Portes logiques 85

VDD VDD

VDD VDD
AB AB

f f A A A A

entres f f
B
B

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

E S

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

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.

E S

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

Vdd
Vdd

entres rseau P

C
transistors C
d'isolation S
E S
C
C

entres rseau N

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

b) Dimensionnement des portes de transfert


Le dimensionnement des transistors des portes de transfert se fait de la mme manire
que pour ceux des portes standard. Il faut identifier les chemins lectriques de la capa-
cit de charge VDD et la masse puis dimensionner les transistors qui les compo-
sent 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 par-
courent. 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 C

Figure 4.38 Interrupteur suivant un inverseur

Chemin de charge de la capacit de sortie

Vdd

Sel
4
4 S
E

C
Dunod La photocopie non autorise est un dlit.

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

www.biblio-scientifique.net
88 4 Rseaux de conduction et portes

Chemin de dcharge de la capacit de sortie

S
E
2
2
Sel C

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

4.5 LOGIQUE DYNAMIQUE


La logique dynamique consiste utiliser les proprits de mmorisation naturelle de
lentre dune porte lorsquelle est isole. En effet, limpdance des entres dune
porte est gnralement capacitive. Celle-ci retiendra donc la dernire valeur qui lui a
t applique avant son isolation par une porte amont 3 tats. Comme la capacit en jeu
est gnralement trs faible (de lordre de la dizaine de fentofarads) et que son isolation
nest pas parfaite, la dure de rtention de linformation nest que de quelques micro-
secondes. 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 co-
nomiques dans lesquelles la valeur de la sortie est labore sur plusieurs instants. Dans

VDD
prcharge
P
S VS

Entres
f

rseau N dcharge t

P
prcharge dcharge

Figure 4.41 Principe de la logique dynamique

www.biblio-scientifique.net
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

P
S
VS
f2
f1 f2 f3 123
entres

t
P

niveau 1 niveau 2 niveau 3 prcharge dcharge (effet domino)

Figure 4.42 Principe de la logique Domino


Dunod La photocopie non autorise est un dlit.

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.

www.biblio-scientifique.net
90 4 Rseaux de conduction et portes

1
1 2
2

E V1 V2 S

C1 C2
1
1 2
2

Figure 4.43 Effet de transfert de charges

La capacit C1 est charge V1 (VDD) pendant 1. La capacit C2 est alors


charge V2. Pendant 2 se produit un transfert de charges et une galisation des
potentiels. En ngligeant les pertes rsistives, la valeur du potentiel 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

C T1 Cp

T2
E S

T3
CS

C T4

Figure 4.44 Exemple de partage de charges dans une porte 3 tats

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

www.biblio-scientifique.net
4.6 Logique matricielle 91

Vdd

Vdd

C
C
S E S
E

C
C

Figure 4.45 Portes 3 tats sans effet de partage de charges

4.6 LOGIQUE MATRICIELLE


La ralisation matricielle de fonctions logiques ou de mmorisation permanente con-
duit des ralisations trs denses mais souvent peu rapides.

4.6.1 Matrice de ROM


La structure de base de la logique matricielle est la matrice de ROM (Read Only
Memory/mmoire morte).

Lignes de
slection Matrice de ROM
Dunod La photocopie non autorise est un dlit.

Sorties

Figure 4.46 Matrice de ROM

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

www.biblio-scientifique.net
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 encom-
brement 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 :

Vdd Vdd Vdd Vdd

1
E0

Lignes de E1 0
slection

E2 0

0 1 0 1

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 program-
mation, 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.

www.biblio-scientifique.net
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 slec-
tion excite est porte 0, ce qui rend isols les transistors auxquels elle est connecte.

Lignes de sortie

0 1 0 1
Vdd Vdd Vdd Vdd

1
E0

Lignes de E1 0
slection

E2 1

Figure 4.48 Matrice de NAND

c) Rappel des lignes de sortie


Quune matrice de ROM soit constitue de portes NOR ou NAND, ses lignes de sortie
doivent tre rappeles Vdd :
soit par des transistors P de prcharge, dans le cas dun fonctionnement dynamique
de la matrice ;
soit par des transistors P, dit de charge , monts en rsistance et connects Vdd.
Dunod La photocopie non autorise est un dlit.

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 (alimen-
tation 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 programma-
tion de ces matrices diffrent suivant la facilit avec laquelle on veut pouvoir modifier
leur contenu.

www.biblio-scientifique.net
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 pro-
fils 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 dsac-
cords 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. Symtri-
quement, 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.

www.biblio-scientifique.net
4.6 Logique matricielle 95

Vdd

Vdd
0 1
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 con-
ductrice donc liminer (figure 4.50).

4.6.3 PLA-ROM
Le couplage dun reconnaisseur et dune matrice de ROM permet de cbler une fonc-
Dunod La photocopie non autorise est un dlit.

tion boolenne vectorielle (ventuellement incomplte) en tabulant la suite de ses argu-


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

www.biblio-scientifique.net
96 4 Rseaux de conduction et portes

Vdd

1 0
Vdd

Lignes
Vdd de sortie

Vdd

E0 E1 E2 E3

Lignes d'ente

Figure 4.50 Programmation dun reconnaisseur NAND

reconnaisseur matrice de ROM

x y

x y

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

www.biblio-scientifique.net
4.6 Logique matricielle 97

Matrice OU

Vdd Vdd Vdd Vdd


Matrice ET

1
Vdd

0
Vdd

0
Vdd

1 0 0 1 0 1 0 1

Lignes d'entre Lignes de sortie

Figure 4.52 PLA NOR-NOR

Matrice OU

Lignes de sortie

0 1 0 1
Vdd Vdd Vdd Vdd
Matrice ET

1 Vdd

0 Vdd
Dunod La photocopie non autorise est un dlit.

1 Vdd

1 0 0 1

Lignes d'ente

Figure 4.53 PLA NAND-NAND

www.biblio-scientifique.net
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 ra-
liser 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 transis-
tors 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 )
qui peut se rcrire :
mi = (E j, Ek )

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

b) PLA NAND-NAND
Ce point de vue sappuie sur le fait que lexpression des sorties de la matrice ET est
donn par lexpression :

mi = (E j, Ek )
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

www.biblio-scientifique.net
100 4 Rseaux de conduction et portes

qui peut se rcrire :


sp = ( mi )
i
do, pour lensemble du PLA :
sp = ( (E j, Ek ))
i
qui montre que les sorties du PLA sont des fonctions boolennes exprimes en somme
de produits des variables dentre directes et complmentes. Dans ce cas, plusieurs
lignes intermdiaires, appeles monmes, peuvent tre simultanment actives.

4.6.6 Alimentation pulse


La rduction de la consommation des PLA peut tre obtenue en ne les alimentant que
lorsquils sont utiliss.

Vcc

matrice ET 2 matrice OU

Vcc

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 fonction-
nement de la matrice OU. Les valeurs maintenues pendant tout le cycle de fonction-
nement 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.

www.biblio-scientifique.net
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 dvalua-
tion, 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 rela-
tivement importante entre les deux matrices, prcisment l o les lignes de monme
sont trs serres.

Vcc

1
matrice ET

1
Vcc
Dunod La photocopie non autorise est un dlit.

1 2
2

2
2 2
1
sortie
entre

Figure 4.57 PLA NOR-NOR biphas

www.biblio-scientifique.net
102 4 Rseaux de conduction et portes

2 1 2 1 2

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

entres entres
maintenues actives
0
Matrice OU
prcharge dcharge
sorties sorties

Figure 4.58 Fonctionnement du PLA NOR-NOR biphas

b) PLA NAND-NAND dynamique


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

www.biblio-scientifique.net
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 elles-
mmes plus rapides.

a) Optimisation boolenne
Tout PLA peut tre considr comme un PLA boolen et tre optimis avec des tech-
niques 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 OU

Figure 4.60 Optimisation des PLA par cration de zones vides

Il faut remarquer que cette optimisation namliore pas la connectabilit du


PLA.
Dunod La photocopie non autorise est un dlit.

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 aux-
quelles 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 mon-
mes raccourcis permet de tirer des connexions entre les segments de sortie et leur
utilisation, des emplacements qui permettent leur connexion directe.

www.biblio-scientifique.net
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.

www.biblio-scientifique.net
Chapitre 5 5

Dessin des masques


dun circuit intgr

5.1 DFINITION DU PROBLME


Le dessin des masques dun circuit intgr peut se faire laide de diffrents outils sui-
vant le degr doptimisation choisi (nous verrons les diffrents outils qui peuvent tre
utiliss dans le pragraphe 11.4). Trs souvent, les cellules sont dessines manuel-
lement. 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 tech-
nologie 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
Dunod La photocopie non autorise est un dlit.

lectroniques, la conception des circuits VLSI offre des degrs de libert supplmen-
taires 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 ra-
liser 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).

www.biblio-scientifique.net
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 tra-
verser par des connexions qui ne le concernent pas (figure 5.4).
La conception des circuits VLSI est ainsi un bon exemple du fait quune optimisa-
tion globale ne rsulte pas forcment de lassemblage de sous-ensembles optimaux
(optimisations locales).

www.biblio-scientifique.net
5.3 Rgles symboliques 107

surface minimale

dimension minimale
x

Figure 5.3 Loi de dformation dun bloc dessin manuellement

Figure 5.4 Transparence dun bloc

5.3 RGLES SYMBOLIQUES


Lutilisation des rgles technologiques se heurte leur spcificit et leur prcarit.
En effet, les dessins raliss avec un jeu de rgles ne peuvent pas tre utiliss directe-
ment 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 doptimi-
sation moindre qui se traduit par une perte de surface. Diffrentes approches ont t
utilises :
Dunod La photocopie non autorise est un dlit.

dessin sur grille ;


dessins symboliques pas 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 homo-
thtique. 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

www.biblio-scientifique.net
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 perfor-
mance 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 trans-
forms :
5.4 Couches technologiques et flux dinformation 109

pas segment segment


mtal 1 poly

contact transistor

Figure 5.6 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 expan-
sion sera toujours correcte.
Cette approche t utilise par lindustrie (Bull S.A.) pour raliser des circuits
trs complexes qui ont pu tre fabriqus chez plusieurs fondeurs. Elle est aussi la base
du systme Alliance.

5.4 COUCHES TECHNOLOGIQUES ET FLUX DINFORMATION


Un circuit intgr est dabord une surface plate qui offre son concepteur un certain
nombre de couches technologiques correspondants aux principaux masques dessiner :
zones actives de type N et P (implantes ou diffuses) ;
Dunod La photocopie non autorise est un dlit.

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 direc-
tions (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

0 caissons
1 zones actives Transistors
(dopes) Connexions locales
2 polysilicium Connexions locales
3 mtal 1 flux 1 + alim locales
4 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

Figure 5.9 Croisement des flux dans le dessin des cellules


Dunod La photocopie non autorise est un dlit.

5.5 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 gn-
ralement destines tre assembles par juxtaposition, donc relies par des con-
nections 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. Lexci-
tation 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 G4 G5

G2
G1 G2 G3 G4 G5

Figure 5.10 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 remar-
quer 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 per-
muts 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 T3
T1

T4 T5 T6 T4
T2

T5

T6
T3

Figure 5.11 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
VDD S
S
transistors N
Dunod La photocopie non autorise est un dlit.

GND
G3 G4 G5

S G1 G2 G3 G4 G5

Figure 5.12 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 tran-
sistors en parallle ne pose aucun problme. La mise en srie des transistors compl-
mentaires 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 per-
mutation 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 con-
duction 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 connec-
tions 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 cons-
tituant 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 horizon-
tales qui parcourent chaque bande de cellules. Les grilles sont des bandes de poly-
silicium 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

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

Interconnexion des cellules


La disposition et linterconnexion des cellules peut se faire de diffrentes manires
suivant que lon considre un bloc dessin manuellement ou automatiquement
(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 lon-
gueur 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 canal de
cellules 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 per-


mettent 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 117

Figure 5.17 Dessin dun squenceur cbl (cf. chapitre 9)


synthtis avec le systme Alliance

5.6 DESSINS SQUELETTIQUES


Cette approche, adapte au dessin vertical , permet de projeter le dessin dune cel-
lule 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
bi
Dunod La photocopie non autorise est un dlit.

c2 c3 ri c1

Figure 5.18 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 Couleur

Caisson 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 Expansion de la mme cellule

5.7 DESSIN DES ROM ET DES PLA


Le dessin des matrices de ROM/PLA suit exactement les mmes rgles de croisement
des couches. La technique de dessin dpend du nombre de maques altrer pour
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

absence de transistor
(pont mtallique)
Dunod La photocopie non autorise est un dlit.

VSS

Figure 5.21 Dessin des cellules dun PLA NAND

Pour permettre la 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 Dessin des masques dun circuit intgr

5.8 ASSEMBLAGE DES MACRO-BLOCS DUN CIRCUIT


Les macro-blocs dun circuit possdent gnralement une transparence faible ou nulle.
Ils sont conus pour simbriquer au mieux. Leur cblage se fait laide de canaux de
cblage dessins laide doutils 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 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 indispen-
sables aux microprocesseurs et aux circuits de traitement du signal.

6.1.1 Oprations ralises


Bien que le nombre doprations arithmtiques intressantes soit assez important,
les oprateurs arithmtiques cbls nen ralisent quune faible partie laquelle vient
sajouter la ralisation des oprations logiques et des dcalages.

TABLEAU 6.1 OPRATIONS RALISES PAR UN OPRATEUR ARITHMTIQUE


Dunod La photocopie non autorise est un dlit.

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 reprsen-
ts 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 clas-
siques 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, op-
rations trigonomtriques) se font par des enchanements doprations plus simples,
de tests et de dcalages. Le calcul des lvations des puissances leves ou fraction-
naires, 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 laddition-
neur qui est normalement 0, mais qui peut tre porte 1.

6.2.2 Addition binaire


Laddition binaire seffectue de la mme manire quune addition dcimale, mais en
se situant dans larithmtique des nombres binaires.
Exemple :
1111 retenues
1001101 a
Dunod La photocopie non autorise est un dlit.

+ 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

ri
bi bi
aibi
ai ai ri

bi bi ai=bi

ri+1 si

Figure 6.1 Cellule dadditionneur 20 transistors

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

b) Cellule dadditionneur symtrique


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

ri

ai bi bi ai bi ri
bi

ri ai ai

si

ri ai ai

bi
ai bi bi ai bi ri

ri

ri+1

Calcul de ri+1 Calcul de si

Figure 6.2 Cellule dadditionneur symtrique

Cette cellule est ralise laide de 24 transistors.

c) Cellule dadditionneur avec gnration de pi et gi


La synthse de ce type de cellule dadditionneur correspond la synthse simultane
de gi , pi , ri + 1 et si .
p i = a i b i peut se rcrire p i = ( a i b i ) ( a i b i ) , do une synthse en
portes :

pi = ( ai bi ) ( ai bi )
Nous remarquons que le terme ( a i b i ) correspond g i .
Dunod La photocopie non autorise est un dlit.

La synthse simultane de g i et p i est reprsente figure 6.3.

ai
pi

gi
bi

Figure 6.3 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.
Non-ouex de sortie
Nous verrons que ce circuit (figure 6.7) prsente les plus faibles contraintes de vitesse
de toute la cellule dadditionneur.
Dunod La photocopie non autorise est un dlit.

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 vec-
teurs 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 daddition-
neur 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

p2
r3
Dunod La photocopie non autorise est un dlit.

p3
a3

b3 s3

propagation
acclre
r4 de la retenue

Figure 6.9 Acclration de la retenue pour un groupe de 4 bits


130 6 Oprateurs arithmtiques

un tel dispositif, le temps maximal de propagation de la retenue sera le temps de pro-


pagation 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 regrou-
pement des additionneurs lmentaires.

6.3 UNIT ARITHMTIQUE ET LOGIQUE (UAL)


Un additionneur peut tre modifi pour lui permettre dexcuter les principales op-
rations 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 pi=(ai bi) si=(ai bi)


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

6.3.3 Calcul du ET
Cette fois-ci, on va chercher transmettre en sortie la valeur de g i = a i b i . Toute-
fois, 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 com-
mande est utilise pour forcer 1 la valeur de a i b i entrant dans la composition de
p i (figure 6.12).
Dunod La photocopie non autorise est un dlit.

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 inver-
seur 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 Calcul du ET

c3 ri c1

ai
pi si

pi
gi
bi
VDD

c2 ri+1

Figure 6.13 Cellule dUAL

Vss Vdd Vss ri+1 Vdd Vss Vdd

ai
si
bi

c2 c3 ri c1

Figure 6.14 Schma squelettique de lUAL


6.3 Unit arithmtique et logique (UAL) 133

TABLEAU 6.2 CODES DE FONCTION DE LUAL

c1 c2 c3

addition 0 1 0
ouex 1 1 0
ou 1 0 0
et 0 1 1

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

rn-1
Dunod La photocopie non autorise est un dlit.

r1

a0
s0
b0

c2 c3 r0 c3

Figure 6.16 Assemblage des cellules par juxtaposition


pour raliser un additionneur de 4 bits
134 6 Oprateurs arithmtiques

La valeur de r0 est 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 com-
binatoire. 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
i = 0, n 1

b = bi 2 i b i = 0 ou 1
i = 0, n 1
Leur produit P scrit :
P = ab = ai 2 i bj 2j
i = 0, n 1 j = 0, n 1
qui peut aussi scrire :
P = ab = ai b j 2i + j
i = 0, n 1 j = 0, n 1
Ce produit peut scrire sur 2n bits en regroupant les termes affects de la mme
puissance de 2.
a j b k 2 i
P = ab =
i = 0, n 1 j + k = i

Chacun de ses termes p 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

0 0 0 0
0 1 0 0
1 0 0 0
1 1 1 1
6.4 Multiplieur cbl 135

Un multiplieur trivial consiste utiliser des cellules dadditionneur pour additionner


les produits partiels (pr-calculs par des ET) ligne ligne puis colonne par colonne
(figure 6.17).

0 a3b1 a3b0 a2b1 a2b0 a1b1 a1b0 a0b1 a0b0

a3b2 a2b2 a1b2 a0b2

a3b3 a2b3 a1b3 a0b3

p7 p6 p5 p4 p3 p2 p1 p0

Figure 6.17 Exemple de multiplieur trivial pour des nombres de 4 bits

Le chemin critique de ce multiplieur est de 8 cellules. Il peut tre ramen 6 en


remarquant que dans une colonne les produits partiels peuvent tre additionns dans
nimporte quel ordre (figure 6.18).

0 a3b1 a3b0 a2b1 a2b0 a1b1 a1b0 a0b1 a0b0

0 0 0

a3b2 a2b2

a1b2 a0b2

a3b3 a2b3 a1b3

a0b3

p7 p6 p5 p4 p3 p2 p1 p0
Dunod La photocopie non autorise est un dlit.

Figure 6.18 Multiplieur 4 bits optimis en vitesse

Des techniques plus complexes permettent de rduire encore la longueur du chemin


critique, donc daccrotre la vitesse du multiplieur au prix dune augmentation de sa
complexit.

BIBLIOGRAPHIE
[1] A. Guyot, notes informatises du cours : Oprateurs arithmtiques, INP Grenoble, dpar-
tement Tlcom, 2003.
Chapitre 7 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 complexifica-
tion dans la conception des systmes logiques. Par rapport aux circuits combinatoi-
res qui simplement associent leurs sorties aux diffrents profils dentre quils
reoivent, les systmes squentiels possdent un tat interne qui influence leur com-
portement.
Celui-ci peut tre reprsent par les deux formules suivantes :
St = f ( Et , Qt )
Q t + 1 g ( Et , Qt )
dans lesquelles :
Dunod La photocopie non autorise est un dlit.

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 St
Circuit
combinatoire g

Etat courant Etat suivant


Qt 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 nom-
breuses 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 suc-
cessifs 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.

7.2 SYSTMES SQUENTIELS ASYNCHRONES


Une grande partie des systmes squentiels asynchrones correspond de simples cir-
cuits 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
Dunod La photocopie non autorise est un dlit.

il sagit de retards technologiques , ceux-ci ne sont pas dfinis avec une grande pr-
cision. Ils peuvent varier avec la technologie, la temprature, la tension dalimentation,

E S
C

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 nou-
velle 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
Ei Ek

eu eu

Figure 7.3 tats transitoires et stables dans un systme squentiel asynchrone

On appelle course le passage par une succession dtats transitoires. Une telle course
peut tre soit :
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 fr-
quence bien dtermine et le montage peut alors tre utilis comme un oscillateur.
Ltat dun systme asynchrone est cod de telle manire que seul un bit varie
chaque transition (code de Gray). Si plusieurs bits variaient, on ne pourrait assurer
la simultanit rigoureuse de leurs transitions et le systme pourrait se retrouver dans
des tats imprvus. Une contrainte similaire est utilise pour le codage des entres (et
ventuellement aussi pour les sorties).

7.3 SYSTMES SQUENTIELS SYNCHRONES


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

ticuliers appels horloges. On distinguera deux classes trs diffrentes de systmes


synchrones :
les systmes monophass dans lesquels une simple horloge rythme lvolution de
ltat interne ;
les systmes polyphass dans lesquels plusieurs horloges rythment cette volution.
Dune manire gnrale, tous les systmes synchrones doivent satisfaire la relation
suivante appele condition de synchronisme :
T >
dans laquelle T correspond la priode (minimale) du ou des, signaux dhorloge et
le temps (maximal) dtablissement du rseau combinatoire. Cette relation 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 rali-
sation 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 corres-
pondent 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
Dunod La photocopie non autorise est un dlit.

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 tech-
nologies sub-microniques et le besoin de concevoir rapidement des circuits trs
complexes ont provoqu une gnralisation des techniques de conception automa-
tique 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 dasynchro-


nisme 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 satis-
faire 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 compor-
tement (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 S

Figure 7.4 Schma conceptuel dun latch

Les latches peuvent tre raliss de diffrentes manires :


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

E S

Ch

Ch

Figure 7.5 Schma logique dun latch portes 3 tats

Ce qui donne le schma suivant :

Ch Ch
Dunod La photocopie non autorise est un dlit.

E S

Ch Ch

Figure 7.6 Schma lectrique dun latch portes 3 tats

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

R
Ch

E S

Figure 7.7 Schma de principe dun latch rsistance

Ce qui donne le schma suivant :

Ch

E S

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 vne-
ments, 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 vali-
dit. 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 bat-
terie de latches constituant un registre (figure 5.11).

ch
latch

Entres Sorties
Registre

Figure 7.11 Registre constitu de latches

7.4.2 Systmes polyphass


Comme les latches ont un tat de transparence, il faut viter que le systme ne puisse
Dunod La photocopie non autorise est un dlit.

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 trans-
parence 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 micro-
processeurs. 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.

E S
C
Etat courant Etat futur

2 1

L2 L1

Esclave Matre

Figure 7.12 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 simulta-
nment 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

Figure 7.13 Systme dhorloges biphases


7.4 Systmes polyphass 147

1 2 1 2

Sortie C

C excit par C excit par


transparence la sortie de L2
au travers L2

L2 transp. L1 transp.

Figure 7.14 Squencement dun systme biphas matre-esclave

matre, au travers du latch esclave, ds que ce dernier passe en mode transparent.


Cette excitation perdure lorsque le latch esclave passe en mode mmorisant (phase 1).
Le circuit combinatoire est donc excit pendant la totalit du cycle. Il doit fournir ses
valeurs de sortie avant la 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


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

E1 S1
C1

L1 1
2 L2

C2
S2 E2

Figure 7.15 Systme squentiel biphas rseaux combinatoires distribus


148 7 Systmes squentiels

que nous appellerons architecture temporelle. Lapproche polyphase permet aussi


la prise en compte de problmes topologiques, ce qui fait que les structures qui sont
conues avec cette approche sont souvent les plus optimises dun circuit VLSI.
Pour tudier le fonctionnement dun tel systme, faisons dabord lhypothse quil
est symtrique, cest--dire que ses deux circuits combinatoires ont le mme temps de
traverse. Pour que les latches puissent capturer linformation, celle-ci doit tre valide
avant la fin de leur phase de transparence. Nous pouvons donc dbuter notre raison-
nement en supposant que les circuits combinatoires commencent recevoir de linfor-
mation 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 !

1 2 1 2 t

Etab. C1

Etab. C2

C2 excit par C1 excit par


L1 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 ven-
tuelles fluctuations des dures dtablissement.
7.4 Systmes polyphass 149

1 2 1 2 t

Etab. C1
Etab. C2

C1 excit par C2 excit par


transparence transparence
au travers L2 au travers L1

Figure 7.17 Squencement dun rseau combinatoire biphas


(cas de la somme des retards infrieure la priode)

Si maintenant on diminue la dure dtablissement de lun des rseaux combina-


toires en augmentant celle de lautre, (tout en maintenant la somme en dessous de
la priode de lhorlogerie), le systme volue vers le comportement dun matre-
esclave (figure 7.18).

1 2 1 2 t

Etab. C1
Etab. C2

C1 excit par C2 excit par


transparence transparence
au travers L2 au travers L1

Figure 7.18 Squencement dun rseau combinatoire biphas


(cas de retards disymtriques)
Dunod La photocopie non autorise est un dlit.

c) Systmes polyphass rels


Comme nous lavons dj mentionn, lutilisation des techniques polyphases est
rserve aux curs des microprocesseurs et plus particulirement la conception de
leur chemin de donnes. Ces structures, gnralement biphases, sont caractrises par
le fait quelles sont reboucles et que leur tat interne est constitu par des donnes
dont le codage est impos.
Dans les systmes polyphass rels les informations pertinentes sont contenues dans
des registres pertinents constitus de latches statiques. Les autres registres ne sont
introduits que pour viter que les registres pertinents ne soient reboucls sur eux-
mmes. 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 linfor-
mation 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 cri-
ture 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 transpa-
rent. 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 dif-
frents organes mis en jeu (bus sources, unit arithmtique et logique, bus destina-
tion) senchanent sans attente dans la priode de lhorloge. Cela montre une utilisa-
tion 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 com-
plexe.

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 recou-
vrement 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 2
(statiques)

1
Barrire temporelle
ajoute
(dynamique)

Figure 7.19 Chemin de donnes vu comme un systme biphas

2 1 2 1 t

bus source
tablissement UAL

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

Figure 7.20 Chronogramme typique dun chemin de donnes biphas

non rec
2 1
Dunod La photocopie non autorise est un dlit.

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 tat profils des
entres cour suiv sorties

2
1
Squencement

Entres Sorties

Figure 7.22 Squenceur biphas utilisant un PLA

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

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 bas-
cules sont des petits systmes asynchrones qui simulent un comportement syn-
chrone. 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 mono-
phass. 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.

R Q

S QB

Figure 7.24 Bascule RS

Le schma de cette bascule peut tre redessin pour faire apparatre le rseau com-
binatoire et le rebouclage (figure 7.25).
Le graphe dtat de cette bascule est reprsent figure 7.26.
7.5 Systmes monophass 155

circuit combinatoire

R Q

S QB

Figure 7.25 Une bascule RS vue comme un systme squentiel asynchrone

R S

A/0 B/1

Figure 7.26 Graphe dtat de la bascule RS

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

R R
S
Q QB 10 00 01 11

A= 0 1 01 01 10 xx

B= 1 0 01 10 10 xx

Figure 7.27 Tableau dtats du RS


Dunod La photocopie non autorise est un dlit.

Du tableau nous pouvons tirer lexplicitation des fonctions boolennes qui dter-
minent 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

R Q

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

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

S QB

Figure 7.28 Synthse spare des deux fonctions boolennes du RS

Les deux dessins sont superposables, ce qui donne le schma classique de la bas-
cule 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 bascu-
lement 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.

D Q

H QB

R S

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

chrone. Nous pouvons donc distinguer trois familles de bascules D.

D
H
00 01 11 10

0 0 0 0 0

1 1 1 1 1

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 cata-
logues 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

A A B B A
Q = 0
B A B B C

C C D D C
Q = 1
D A D D C

Figure 7.32 Tableau dtats dune bascule D niveaux

D 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

Q
D

D=0
H

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 l-
ment des bibliothques utilises pour raliser la synthse automatique des circuits
intgrs.

QB

D Q

H H H

H H
Dunod La photocopie non autorise est un dlit.

H H

Matre Esclave

Figure 7.35 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 suppl-


mentaires RS asynchrones.

J Q

K QB

H R S

Figure 7.36 Symbole dune bascule JK

K K
J
10 00 01 11

0 0 0 1 1

1 0 1 1 0

Figure 7.37 Tableau dtats dune bascule JK

Bascule T (figure 7.38)

Q
T
QB

H R S

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, com-
mand 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 cer-
taines conditions, des effets parasites peuvent apparatre.

Risque de transparence
Les bascules niveau possdent un mode de transparence lorsque le niveau de lhor-
loge atteint une valeur intermdiaire (les portes se comportent alors comme des ampli-
ficateurs). 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 fonc-
tionne 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 gn-
rale 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).

info
Dunod La photocopie non autorise est un dlit.

chargement

mtastabilit

Figure 7.39 Mise en tat mtastable dune bascule


162 7 Systmes squentiels

La largeur de la relation temporelle qui peut mettre une bascule en tat mtastable
est trs faible (de lordre dune fraction de ps). La probabilit doccurrence de la
mtastabilit pour une bascule qui reoit des signaux compltement dsynchroniss,
est donc trs faible (1012 1014). Toutefois, si la frquence de fonctionnement est
assez leve, ce phnomne peut effectivement apparatre sur des systmes en fonc-
tionnement 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 peu-
vent 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 gn-
rale, un registre peut tre utilis pour stocker une information vectorielle.

Ch
Bascule D

Entres Sorties
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 com-
mande particulire :
Chargement systmatique des bascules chaque cycle dhorloge. Dans ce cas, un
multiplexeur permet de dterminer si la future valeur provient du reste du sys-
tme o est le contenu de la bascule elle-mme (figure 7.41).

Ch H

E
S
D

Figure 7.41 lment de registre chargement systmatique de sa bascule D

Cette approche prsente lavantage que toutes les bascules reoivent strictement la
mme horloge, ce qui rduit sa gigue et ses consquences. Par contre, elle ncessite
du matriel supplmentaire (qui constitue une sorte de seconde boucle de mmorisa-
tion) 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 impul-
sions 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
Dunod La photocopie non autorise est un dlit.

H
t
H
Ch

signal de
chargement
E S
D
horloge de
chargement chargement
registre

Figure 7.42 Chargement dune bascule par la validation de son horloge


164 7 Systmes squentiels

inconvnient est de produire un lger dcalage des horloges valides. Toutefois, ce


dcalage peut tre compens en dcalant systmatiquement lhorloge non valide.

b) Relations temporelles
Lanalyse du fonctionnement temporel des systmes monophass conduit 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 syn-


chronisme. Cette relation indique que le dcalage maximum gigue de lhorloge dun
systme monophas doit tre infrieur au temps, avant perturbation, du rseau combi-
natoire 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
non perturb.
Bi C 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 :
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
Dunod La photocopie non autorise est un dlit.

validation introduisent des retards qui doivent tre compatibles avec la relation pr-
cdente.

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 nces-
saire 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 s=0

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

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

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

A B C D

P P
P D P D
RST H H RST H RST H RST

Figure 7.46 Machine squentielle obtenue par le cblage du graphe dtats prcdent

Dans ces montages, les retards apports par les couches logiques entre les bascules
sont relativement faibles. Cela signifie que la distribution de lhorloge doit tre parti-
culirement 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

matrice "ET" matrice "OU"


Dunod La photocopie non autorise est un dlit.

tats des tat tat profils des


entres cour suiv sorties

Squencement

Entres Sorties

Figure 7.47 Ralisation dun systme monophas avec un PLA


168 7 Systmes squentiels

pour reconnatre les combinaisons utiles de ltat courant et des 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 fonction-
nement, 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 matre-
esclave permettent la mme optimisation temporelle que celle obtenue avec les sys-
tmes 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).

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

2
1 1

H t

recouvrement
H

Figure 7.49 Mauvais recouvrement des phases gnres par un simple inverseur

BIBLIOGRAPHIE
[CAT66] I. Catt, Time loss through gating of asynchronous logic signal pulses, IEEE Trans.
Electronic. Comput., Vol. EC-12 Feb. 1966, pp. 108-111.
[CHA73] T.J. Chaney, C.E. Molnar, Anomalous behaviour of synchronizer and arbiter circuits,
IEEE Trans. Comput., Vol. C-22 April 1973, pp. 421-422.
[SUZ73] Y. Suzuki, Clocked CMOS Calculator Circuitery, IEEE journal of Solid State Cir-
cuits, Dec. 1973.
[NOG75] G. Noguez, tude dun modle temporel des systmes squentiels, Thse dtat, Ins-
titut de programmation, Paris, septembre 1975.
[LAG76] J. Lagasse, M. Courvoisier, J.-P. Richard, Logique squentielle, Dunod Universit,
1976.
Dunod La photocopie non autorise est un dlit.

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

lments de VHDL

8.1 BREF HISTORIQUE DES LANGAGES DE DESCRIPTION


DU MATRIEL
Les approches modernes de la conception des circuits (logiques) lectroniques nces-
sitent 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
Dunod La photocopie non autorise est un dlit.

dans ce domaine pour se concentrer sur lassimilation et la mise en uvre des nou-
veaux 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 auto-
matiques 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 formel-
lement 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 dappli-
cations (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 rali-
sateurs 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 lordi-
nateur 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 rare-
ment 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 parle-
rons 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 lan-
gage. Les outils de la premire famille sont gnralement beaucoup moins onreux que
ceux de la seconde, toutefois leurs possibilits de simulation sont souvent rduites
linterface externe des circuits ainsi cres ou paramtrs.

8.2 STRUCTURE DUNE DESCRIPTION VHDL


Une description VHDL se compose de deux parties :
La description de linterface du circuit (appele entity) avec le monde qui lutilise
(connecteur, brochage, interface). Celle-ci est constitue par la liste des signaux
de cette interface, leur sens, leur nature, etc.
La description de la ralisation du circuit (appele architecture) qui peut contenir
trois formes de descriptions :
La description de linterconnexion de sous-circuits dont lassemblage constitue
le circuit tudi (cette forme de description peut tre appele structurelle).
La description des fonctions boolennes mises en uvre (cette forme de descrip-
tion peut tre appele fonctionnelle).
Des algorithmes dont lexcution simule le comportement du circuit ou de cer-
tains de ses sous-ensembles (cette forme de description peut tre appele pro-
cdurale).
Ces trois formes peuvent tre utilises conjointement dans la description de larchi-
tecture dun circuit.
Plusieurs architectures peuvent tre associes une mme entit pour montrer
Dunod La photocopie non autorise est un dlit.

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

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, ventuel-
lement 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 con-
siste, tout simplement, dcrire la mise en uvre et linterconnexion de ses compo-
sants. Elle est directement inspire des techniques de description des cartes lectro-
niques (liste de cblage). Elle consiste en :
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
Dunod La photocopie non autorise est un dlit.

son type (dautres formes existent).


Ce type de description permet une conception hirarchique en sparant la con-
ception 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 S1
Y XOR2
Cin Sum

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 laddi-
tionneur, 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 beha-
vioral dans la littrature. Elle consiste dcrire les quations boolennes qui dfinis-
sent 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.
Ces fonctions boolennes sont dcrites comme des instructions dun langage infor-
matique 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 opra-
teurs 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 fonc-
tions 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 pro-
gramme informatique.
Pour respecter la causalit physique, la valeur des signaux dfinis par les instruc-
tions de connexion apparat un certain temps aprs celle des arguments des expres-
sions 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 fonction-
nement du systme dcrit.
Il ny a aucun ordre de prsance entre les instructions de connexion. Lordre dcri-
ture 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
Dunod La photocopie non autorise est un dlit.

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 des-
criptions 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 lexcu-
tion 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 con-
ditions 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 dclen-
chement 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 :
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 affec-
tation 1 ne sera effective que t aprs la fin de ce process.
La smantique des instructions de connexion invoques dans un process est dif-
frente 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 instruc-
tions sont donc isols pendant tout le reste du temps et ils se comportent comme des
bascules.
Lvolution dun process peut tre suspendue par des instructions wait. Celles-ci
peuvent attendre :
Dunod La photocopie non autorise est un dlit.

loccurrence dune condition (wait until <condition>;) ;


la variation dun signal dune liste de sensibilit (wait on <liste de
sensibilit>;) ;
une dure spcifie (wait for <dure>;).
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 condi-
tions. 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 maxi-
mum les choix techniques dans le processus de conception (manuel ou auto-
matique).
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).

Variable
entire Tableau
Dunod La photocopie non autorise est un dlit.

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 0

5 0

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 nou-
velles 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 fonc-
tions de conversion et de dtection des fronts. Les oprateurs standard sont auto-
matiquement 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 interpr-
ts 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


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

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 men-
tionn.
Lexistence dun temps de transit obligatoire assure la causalit de la descrip-
tion. 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 trans-
port 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

Figure 8.5 Le multiplexeur correspondant


Dunod La photocopie non autorise est un dlit.

Une seconde forme permet de dcrire des multiplexeurs plus complexes.


Exemple :
with Z select
D <= <expression1> when x"00",
<expression2> when x"01" | x"02",
<expression3> when others;
La variable z doit tre numrable et non structure (record).
186 8 lments de VHDL

Z
Exp1

D Exp2

Exp3

Figure 8.6 Le multiplexeur correspondant

8.6.2 Logique 3 tats et latches


Une forme conditionnelle peut reprsenter une porte 3 tats si toutes les alternatives
ne sont pas utilises. Dans ce dernier cas, Le comportement de VHDL fait que la con-
nexion 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 vne-
ments (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 fonction-
nelles 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 pro-
blmes difficiles localiser.

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

(figure 8.7).

t t

a) ti b) tj

Figure 8.7 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 vraisem-
blablement 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 ti+ t

Figure 8.8 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 com-
binatoires complexes) ncessite lutilisation de la clause after. Toutefois, son utili-
sation 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;
Deuxime forme :
if not (C = 1) then
<instruction1>;
else
<instruction2>;
Dunod La photocopie non autorise est un dlit.

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 squen-
tiels 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;
Par un process :
process
Dunod La photocopie non autorise est un dlit.

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 mani-
pulent 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 macrosco-
pique 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 ex-
cution. Nous verrons une telle description dans le chapitre consacr la conception
algorithmique.

8.10 FONCTIONS
Il est possible dutiliser des fonctions (dclares ou prises dans une bibliothque) dans
les expressions. Leur excution simule le fonctionnement dun rseau combina-
toire. Lexcution dune fonction se produit chaque modification de lun de ses argu-
ments (paradigme data-flow) et laffectation du rsultat se produit donc t aprs lex-
cution 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)
Dunod La photocopie non autorise est un dlit.

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 gn-
ralit. 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 program-
mation 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 utilisa-
tion 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 :
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
Dunod La photocopie non autorise est un dlit.

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 ins-
tructions 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 lcri-
ture 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 vri-
table 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 visua-
lises par les simulateurs.

BIBLIOGRAPHIE
[1] R. Airiau, J.-M. Berg, V. Olive, J. Rouillard, VHDL, Presses Polytechniques et Universitaires
Romandes.
Dunod La photocopie non autorise est un dlit.
Chapitre 9 9

Conception algorithmique
des circuits VLSI complexes

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

phase, 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 com-
portement (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 (com-
pilateurs 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 laccrois-
sement 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 param-
trables 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.

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

mme. 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 squen-
cement 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 environ-
nement 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 squence-


ment 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 impor-
tant 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 traite-
ments dcoule aussi de la complexit des oprateurs matriels utiliss. Par exemple,
une multiplication pourra se faire en quelques cycles par un multiplieur cbl ou
squentiellement, en beaucoup de cycles, par une suite doprations dadditions et de
dcalages.

a) Adaptation de lalgorithme aux caractristiques du futur circuit


Les oprations dcrites dans lalgorithme devront tre ralisables par le circuit et
correspondre au compromis cot/performance recherch :
Les transferts entre les lments matriels (registres, oprateurs) devront se faire
avec des bus dont la largeur correspondra au taux de srialisation recherch.
La nature des oprations qui seront ralises de manire combinatoire par des
oprateurs matriels correspondra la mise en uvre de plus ou moins de matriel
et une ralisation plus ou moins squentielle des oprations complexes. Les op-
rations habituellement ralises par les oprateurs matriels combinatoires sont :
les oprations logiques bit--bit : et, ou, ouex, non,
Dunod La photocopie non autorise est un dlit.

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 opra-
teurs,
des oprations simples, spcifiques lapplication, comme par exemple la trans-
formation dun code BCD en allumage des segments pour un affichage 7 seg-
ments.
204 9 Conception algorithmique des circuits VLSI complexes

Des oprations comme des divisions, des extractions de racines, etc. seront pratique-
ment 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 ex-
cutions 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;

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

duite 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
squenceur externes

ordres
d'excution tests

chemin donnes
de 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 STRUCTURE
(+VARIABLES +PREDICATS)

CHEMIN DE DONNEES SEQUENCEUR

Figure 9.4

La structure abstraite de lalgorithme (son schma de contrle) constituera la sp-


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

signal s1,m1,h1 :quad; -- 4 bits


Instructions opratives :
s1<= s1 + x"1";
s1<= x"0";
s2<= s2 + x"1";
s2<= x"0";
m1<= m1 + x"1";
m1<= x"0";
m2<= m2+x"1";
m2<= x"0";
h1<= 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 inef-
fective 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
........
qui devront tre rcrites en :
.......
hv1 <= Incr(hv1);
if (resultat = x"4") then
rien <= Incr(hv2);
if (resultat = x"3") then
........
Dunod La photocopie non autorise est un dlit.

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 poly-
phase ou monophase (figure 9.5). Dans les deux cas sa conception dcoule directe-
ment 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 cor-
respond une utilisation quasi-optimale du temps. Les chemins de donnes poly-
9.5 Conception du chemin de donnes 211

2CD
Barrire temporelle
d'origine
(registres pertinents)

1CD
Barrire temporelle
Ajoute
(registres intermdiaires)

Figure 9.6 Squencement bi-phas dun chemin de donnes

1CD 2CD t

bus source tablissement UAL

bus dest

registres int. registre dest.


transparents transparent

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

parence 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 condi-
tionnel 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 t

bus source
tablissement UAL

bus de
dest
st
selection des sources

selection du dest.
registre dest.

chargement registre dest

Figure 9.8 Chronogramme du fonctionnement dun chemin de donnes monophas

ception. Lexemple de la montre sera trait en polyphas, tandis que la conception


complte dun circuit monophas sera trait dans lexercice n xxx.

b) Structure du chemin de donnes de la montre


Nous choisissons de raliser la montre en logique polyphase. Son chemin de donnes
ne comporte quun seul bus source (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
9.5 Conception du chemin de donnes 213

2CD

(3,4,6,A)
test
tests
tests

incr
bus_dest

1CD
A
S1
LOS1

SELS1

bus_source
S2
LOS2

SELS2
M1
LOM1

SELM1

x"F"
SELF
M2
LOM2

SELM2
H1
LOH1

SELH1
H2
LOH2

SELH2
2CD
Dunod La photocopie non autorise est un dlit.

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 com-
portent 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) R(1) R(2)

Figure 9.10 Dcodeur pour adressage index

Un mcanisme similaire peut tre utilis pour accder aux bits dun registre. Le lec-
teur intress pourra voir lutilisation dun tel dcodeur dans lannexe 2 : tude dune
montre avec affichage.

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

sation 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 repr-
sentent 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 oprateurs

Figure 9.11 Organisation du dessin dun chemin de donnes

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

Lensemble des tranches est surmont dune ligne 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 verti-
cales 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 tests

phases
ampli

Incr
m2
m1
S1

XF
S2

h1
h2

T
Figure 9.13 Chemin de donnes de la montre

Exemple de cellules :
Dunod La photocopie non autorise est un dlit.

Figure 9.14 lment de registre pour la montre


(technologie symbolique Alliance)
218 9 Conception algorithmique des circuits VLSI complexes

Figure 9.15 Tranche dun bit dincrmenteur pour la montre


(technologie symbolique Alliance)

Ces dessins obissent raisonnablement aux rgles de croisement des couches tech-
nologiques. 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 fonction-
nement. En effet, beaucoup de problmes des circuits VLSI proviennent dune mau-
vaise 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 suc-
cessif. 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 fonction-
nement 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 suc-
cessivement 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 immdiate-


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

squenceur

latches 2S
d'interface

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

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 squen-
ceur pourra utiliser ces informations ds 1S du cycle suivant.
Dans le cas des circuits monophass, il est possible de gnrer deux horloges suc-
cessives, la premire pour le squenceur et la seconde pour le chemin de donnes.
220 9 Conception algorithmique des circuits VLSI complexes

1S 2S 1CD 2CD 1S t

latches
dinterface
transp. 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 possi-
bilit de faire un choix conditionnel dans le squencement. Du point de vue de lcri-
ture de lalgorithme, un test ne pourra porter que sur les rsultats de ltape qui pr-
cde 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
2

S 1

commandes commandes
de slection 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

2 1 2 1 2 1 t

fonctionnement
squenceur

latches com
M transp.
commandes
latches tests de slection
Es transp.

latches tests latches com


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

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


rises 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 H
d'interface

commandes commandes
de slection 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 charge-
ment valident des sous-horloges qui attaquent les registres concerns du chemin de
donnes (figure 9.23).

cycle i -1 cycle i cycle i +1

H t

sorties du
squenceur

positionnement
sorties registre
d'interface
chargement

basc. de test

horloge de
chargement chargement
chemin de donnes
(conditionnelle) registre

Figure 9.23 Chronogramme du fonctionnement de linterface


(systme monophas superpos)
9.7 Conception du squenceur de la montre 223

Les retours du chemin de donnes vers le squenceur (tests, valeurs) seront


stocks, comme des destinations, dans des registres par la transition dhorloge qui
termine le cycle i 1. Le squenceur pourra utiliser ces informations ds le dbut du
cycle i pour gnrer des commandes pour le cycle i +1.

9.7 CONCEPTION DU SQUENCEUR DE LA MONTRE


9.7.1 Mise en forme de lalgorithme
Lalgorithme de la montre est rcrit de manire mettre en vidence les instructions
opratives formates ainsi que le squencement qui doit tre tel que lalgorithme se
prsente comme un diviseur prcis de la frquence de lhorloge. Pour cela, des ins-
tructions ineffectives (null) seront ajoutes de manire ce que toutes les branches
aient la mme longueur (ici 16 instructions) (figure 9.24). Lexcution de cet algo-
rithme 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).

S1 <= Incr(S1)
=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"A", x"4"
H1 <= Incr(x"F") rien <= Incr(H2) null
H2 <= Incr(H2) =x"3" x"3"
H1 <= Incr(x"F") null
H2 <= Incr(x"F") null
null
null
Dunod La photocopie non autorise est un dlit.

null
null

Figure 9.24

Lalgorithme de la montre est crit de manire sadapter aux contraintes du mat-


riel. 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" matrice "OU"

tat tat
cond. gnration des commandes
cour suiv

Squencement 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 225

s2 <= Incr(s2) null (produit toujours 0)

=x"6" x"6"

s2 <= x"0" null mme tat

Figure 9.26

TABLEAU 9.1 VALEURS POSSIBLES DES CONDITIONS

matrice ET matrice OU

tat conditions actions et. suiv.

E1 S1<=Incr(S1) E2
E2 =x"A" S1<=Incr(x"F") E3
E2 x"A" rien<=Incr(x"F") E4
E3 S2<=Incr(S2) E5
E4 rien<=Incr(x"F") E5
E5 =x"6" S2<=Incr(x"F") E6
E5 x"6" rien<=Incr(x"F") E7
E6 M1<=Incr(M1) E8
E7 rien<=Incr(x"F") E8
E8 =x"A" M1<=Incr(x"F") E9
E8 x"A" rien<=Incr(x"F") E10
E9 M2<=Incr(M2) E11
E10 rien<=Incr(x"F") E11
E11 =x"6" M2<=Incr(x"F") E12
E11 x"6" rien<=Incr(x"F") E13
E12 H1<=Incr(H1) E14
E13 rien<=Incr(x"F") E14
E14 =x"A" H1<=Incr(X"F") E15
Dunod La photocopie non autorise est un dlit.

E14 =x"4" rien<=Incr(H2) E16


E14 x"4", x"A" rien<=Incr(x"F") E16
E15 H2<=Incr(H2) E18
E16 =x"3" H1<=Incr(x"F") E17
E16 x"3" rien<=Incr(x"F") E18
E17 H2<=Incr(x"F") E19
E18 rien<=Incr(x"F") E19
E19 rien<=Incr(x"F") E20
E20 rien<=Incr(x"F") E21
E21 rien<=Incr(x"F") E22
E22 rien<=Incr(x"F") 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 tat
courant

Figure 9.27 Surface gagne par rarrangement du PLA

La surface ainsi gagne peut servir loger un autre bloc de dessin.

9.7.5 Squencement global de la montre


Comme la montre est un dispositif lent, nous choisirons dutiliser un squencement
successif quatre phases dans lequel les deux premires phases 1S et 2S seront
ddies au fonctionnement du squenceur et les deux suivantes 1CD et 2CD au
chemin de donnes (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 227

matrice "ET" matrice "OU"

1S + 2S
tat tat
cond commandes
cour suiv

2S
1S
tests tat commandes
1CD
2CD
Chemin de donnes

Figure 9.28 Architecture dun circuit complexe utilisant un squenceur base de PLA

2CD 1S 2S 1CD 2CD 1S t

tablissement PLA Registre Registre nouvel tat


micro-esclave micro-esclave
transparent mmorisant

Registre Registre nouvelles conditions


micro-matre micro-matre
transparent mmorisant
cycle PLA suivant
nouvel tat

conditions commandes commandes


de slection de chargement

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

Figure 9.29 Chronogramme du fonctionnement successif


dun PLA et dun chemin de donnes

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

type val_dest is(rien,S1,S2,M1,M2,H1,H2);


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

i :=i +1;
assert i >= 30
report "erreur simulation PLA" severity failure;
end loop;
- report sortie PLA fin de PH2S
Reg_mic1<=PLA_OU(i) after Duree_Phase * 1.8;
end process;
-- chargement esclave et initialisation
Reg_mic2 <=E1 when RST=1 else
Reg_mic1.Etat_suivant when PH1S=1else
Reg_mic2;
-- generation des commandes
-- selections bus source
SELS1<=1when (Reg_mic1.source=S1) else 0;
SELS2<=1when (Reg_mic1.source=S2) else 0;
SELM1<=1when (Reg_mic1.source=M1) else 0;
SELM2<=1when (Reg_mic1.source=M2) else 0;
SELH1<=1when (Reg_mic1.source=H1) else 0;
SELH2<=1when (Reg_mic1.source=H2) else 0;
SELF <=1when (Reg_mic1.source=F) else 0;
-- commandes chargement bus destination
LOS1<=1when (Reg_mic1.dest=S1) else 0;
LOS2<=1when (Reg_mic1.dest=S2) else 0;
LOM1<=1when (Reg_mic1.dest=M1) else 0;
LOM2<=1when (Reg_mic1.dest=M2) else 0;
LOH1<=1when (Reg_mic1.dest=H1) else 0;
LOH2<=1when (Reg_mic1.dest=H2) else 0;
end rtl2;
Le nombre de symboles dcrits dans le type numr val_cond a du tre augment
pour reprsenter le fonctionnement du PLA :
PHI pour indiquer que lon ne souhaite pas tester une condition ;
NVTy pour indiquer que lon souhaite tester 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 dif-
Dunod La photocopie non autorise est un dlit.

ficult 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 Conception algorithmique des circuits VLSI complexes

9.8 AUTRES ORGANISATIONS POSSIBLES DE SQUENCEUR


Il existe plusieurs autres techniques pour raliser le squenceur dun circuit complexe.
En particulier, il peut tre cbl ou microprogramm.

9.8.1 Squenceurs microprogramms


La microprogrammation est une technique ancienne qui fut largement utilise dans
la conception des processeurs complexes de 1965 1985. Elle fut invente par
M.V. Wilkes en 1953 [WIL53]. Dans ce cas, lalgorithme qui dcrit le comportement
de la machine est inscrit dans une mmoire ROM sous la forme dune suite de micro-
instructions 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

ROM tat
tat courant
(microinstructions)

R mic
horloges
micro-adresse

tests
lignes de commande 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 per-
met 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 micro-
programme appropries.

b) Squenceur microprogramm pour la montre


Le squencement de la montre se prte bien la ralisation dun squenceur micro-
Dunod La photocopie non autorise est un dlit.

programm, 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 limplan-
tation 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" 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"A", x"4"
H1 <= Incr(x"F") rien <= Incr(H2) null
H2 <= Incr(H2) =x"3" x"3"
H1 <= Incr(x"F") null
H2 <= Incr(x"F") null
null
null
null
null

Figure 9.32

Un fonctionnement superpos aurait t possible, au prix dune adaptation de lalgo-


rithme.
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
0 0 => Null
0 1 => H1<= Incr(x"F")
1 0 => Rien <= Incr(H2)
1 1 impossible

Ce branchement doit concerner un groupe de trois adresses conscutives se termi-


nant 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 rempla-
ant 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" x"A"
(3) S1 <= Incr(x"F") nop (2)
(1) S2 <= Incr(S2) nop (7)
=x"6" x"6"
(9) S2 <= Incr(x"F") nop (8)
(16) M1 <= Incr(M1) nop (17)
=x"A" x"A"
(11) M1 <= Incr(x"F") nop (10)
(19) M2 <= Incr(M2) nop (18)
=x"6" x"6"
(13) M2 <= Incr(x"F") nop (12)
(21) H1 <= Incr(H1) nop (20)
=x"A" =x"4" x"A", x"4"
(5) H1 <= Incr(x"F") (6) rien <= Incr(H2) nop (4)
(22) H2 <= Incr(H2) =x"3" x"3"
(15) H1 <= Incr(x"F") nop (14)
(24) H2 <= Incr(x"F") nop (23)
nop (25)
nop (26)
nop (27)
(28) nop

Figure 9.33 Micro-adresses affectes aux microinstructions

Format des microinstructions : celui-ci doit prciser la nature des actions com-
mandes 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).
Dunod La photocopie non autorise est un dlit.

dest. source pF T2 T1

adresse suivante
Figure 9.34 Format des microinstructions
234 9 Conception algorithmique des circuits VLSI complexes

TABLEAU 9.2 IMPLANTATION DU MICROPROGRAMME DANS LA ROM

add. suivante
add. impl. dest. source
poids forts T2 T1

00000 S1 S1 000 1 XA
00001 S2 S2 010 0 X6
00010 rien XF 001 1 1
00011 S1 XF 000 0 1
00100 rien XF 011 1 0
00101 H1 XF 101 1 0
00110 rien H2 011 1 X3
00111 rien XF 010 0 0
01000 rien XF 100 0 1
01001 S2 XF 100 0 0
01010 rien XF 100 1 0
01011 M1 XF 100 1 1
01100 rien XF 101 0 0
01101 M2 XF 101 0 1
01110 rien XF 101 1 1
01111 H1 XF 110 0 0
10000 M1 M1 010 1 XA
10001 rien XF 010 1 0
10010 rien XF 011 0 0
10011 M2 M2 011 0 X6
10100 rien XF 001 0 0
10101 H1 H1 001 X4 XA
10110 H2 H2 101 1 1
10111 rien XF 110 0 1
11000 H2 XF 110 0 1
11001 rien XF 110 1 0
11010 rien XF 110 1 1
11011 rien XF 111 0 0
11100 rien XF 000 0 0

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

3
2S ad pF T2 T1
1CD dest. source
3

3 2 3

S1 S2 M1 M2 H1 K2

X4 1 0
XF S1 S2 M1 M2 H1 K2
XA X6 X3 1 0

Figure 9.35 Schma du squenceur microprogramm de la montre


Dunod La photocopie non autorise est un dlit.

Figure 9.36 Squenceur cbl du Motorola MC 6800


236 9 Conception algorithmique des circuits VLSI complexes

Un faon 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 opti-
mis. 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.

Gnrateur
d'instants
Squence
Squence S1 <= Incr(S1) <= T1
ineffective
normale =x"A" x"A"
S1 <= Incr(x"F") nop <= T2
S2 <= Incr(S2) nop <= T3
=x"6" x"6"
S2 <= Incr(x"F") nop <= T4
M1 <= Incr(M1) nop <= T5
=x"A" x"A"
M1 <= Incr(x"F") nop <= T6
M2 <= Incr(M2) nop <= T7
Squence =x"6" x"6"
spciale Incr(x"F
M2 <= Incr(x "F") nop <= T8
H1 <= Incr(H1) nop <= T9
=x"A" =x"4" x"A", x"4"
H1 <= Incr(x"F") rien <= Incr(H2) nop <= T10
=x"3" x"3"
H2 <= Incr(H2) H1 <= Incr(x"F") nop <= T11
H2 <= Incr(x"F") nop <= T12
nop <= T13
nop <= T14
nop <= T15
nop <= T16

Figure 9.37
9.8 Autres organisations possibles de squenceur 237

Lutilisation de bascules asynchrones est ici possible, compte tenu de la lenteur du


circuit. Pour un circuit rapide, il faudrait utiliser des bascules synchrones (figure 9.38).

NOR SPE INE


Gnrateur
d'instants

T1

T2

Rseau
combinatoire

T16

SELS1 SELF Clk Rst


SELS2

Commandes vers le
chemin de donnes

Figure 9.38 Organisation du squenceur cbl de la montre

b) Description VHDL du squenceur cbl de la montre


La description VHDL ci-dessous concerne un squenceur cbl pour la montre,
lexclusion du gnrateur dinstants. Elle dcrit les conditions dactivation et de dsac-
tivation 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.
Dunod La photocopie non autorise est un dlit.

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

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. Toute-
fois, il peut apparatre des portes complexes pour regrouper les commandes gnres
Dunod La photocopie non autorise est un dlit.

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 per-
met 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

Changement de mode Nouvel tat du


du squenceur gnrateur d'instants

2 1 2 1

Commandes (brutes)

Nouvelles
conditions
Registre
micro-matre
transparent
Cycle suivant

Conditions Commandes Commandes


de slection de chargement

CHEMIN DE DONNEE

Figure 9.40 Fonctionnement du squenceur cbl

Ce type de squenceur peut tre tendu des squences de plusieurs dures possi-
bles 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 dco-
deurs et de la logique non structure. Le dessin dun squenceur est obtenu par lutili-
sation 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
[WIL53] M.V. Wilkes, J.B. Stringer, Microprogramming and the design of the Control Circuits
in an Electronic Digital Computer, Proc. Cambridge Phil. Soc. pt 2, 49, pp. 30-38, Manchester,
1953.
Dunod La photocopie non autorise est un dlit.
Chapitre 10 10

Mcanismes dhorlogerie

10.1 MCANISMES CLASSIQUES DHORLOGERIE


La performance et le bon fonctionnement des circuits intgrs complexes sont souvent
lis la qualit de leurs mcanismes dhorlogerie.
Un mcanisme dhorlogerie classique comprend (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 oscil-
lateurs jusque vers 150 MHz. Loscillateur est souvent ralis par un couple dinver-
seurs 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.
Dunod La photocopie non autorise est un dlit.

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 sinu-
sodal pour en faire un signal logique.

quartz 1f
oscillateur %2 0
2
diviseur gnrateur
amplificateur
amplificateur par 2 des phases

Figure 10.1 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 non-
recouvrement.
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.

H 1

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 245

quartz 1
Gn compteur
oscillateur
oscil lateur
bi-phas 2 (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 repr-
sentent une certaine forme de monstruosit dans le monde de la conception des
circuits intgrs. En effet, de telles performances ne sont obtenues quau prix de la
dissipation dune puissance norme (tableau 10.1) qui ncessite la ventilation force
de ces circuits et bientt lutilisation dun refroidissement par liquide.

TABLEAU 10.1 CONSOMMATION DE PROCESSEURS X86

Horloge Techno Conso


Processeur
(MHz) (m) (W)

I 386 16 1,5 3
I 486 33 1 6
Pentium 66 0.7 13
Dunod La photocopie non autorise est un dlit.

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 consom-
mation (par un facteur voisin de dix) au prix dune division de leurs performances
par un facteur voisin de deux. Lindustrie a opt pour cette seconde classe de machines.
Celles-ci rgnent dans les applications embarques. Il existe toutefois un march
important pour la premire classe de processeurs malgr leurs inconvnients. Leur
246 10 Mcanismes dhorlogerie

d'aprs Fred Pollack, Intel


10 00
Puissance dissipe

Cur de racteur nuclaire


W/cm2

1 00

P4 3Ghz
PII PIII P4 1,5Ghz
Plaque de cuisson
10
P Pro
Pentium
I386 I486
Familles technologiques
1
1.5 1 0.7 0.5 0.35 0.25 0.18 0.13 0.1 0.07

Figure 10.5 volution de la puissance dissipe par unit de surface


des processeurs Intel X86 (daprs [POL99])

volution ne peut se poursuivre quau prix de lutilisation, dans un avenir assez proche,
de techniques de refroidissement complexes. Toutefois, lavenir de cette gamme de
machines ne semble pas assur long terme [POL99].
Les techniques utilises pour rduire la consommation dun circuit se divisent en
trois groupes complmentaires :
Rduction de la frquence dhorloge une valeur normale . Ltude de la circui-
terie 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 fonc-
tionnels 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 maxi-
male. Dans ce cas, laugmentation de puissance consomme nest plus linraire relati-
vement 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 microproces-
seurs. 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 por-
tables 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
1 000
interne

Horloges
externes
100 (de bus)
50 Mhz
Dunod La photocopie non autorise est un dlit.

Utilisation des multiplieurs


10 de frquence (DX n)
5 Mhz

Date sortie prototypes


1
75 80 85 90 95 00 05 10

Figure 10.6 volution de la frquence dhorloge des processeurs Intel X86


248 10 Mcanismes dhorlogerie

f0 f0/N
quartz
oscillateur
f0/N

VCO Div N Comp.


f0
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

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

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 T2 cart de
phase dans la
H1 H2 distribution de
l'horloge

T11 T22
cart de phase
de l'horloge
dans la zone
isochrone
T3
R1 R2
bascule

temps de
propagation
zone isochrone 1 du signal zone isochrone 2

Figure 10.10 Transfert de donnes entre deux zones isochrones voisines

de leur consommation (40 70 % de la puissance dissipe). Plusieurs techniques per-


mettent de raliser une distribution quilibre de lhorloge [FRI01] :
Des plans ou des grilles de distribution. Cette technique, utilise dans le micropro-
cesseur Alpha 21 264 prsente linconvnient de prsenter une capacit importante,
source de consommation importante [BAI98]. Elle a ensuite t utilise pour dis-
tribuer lhorloge au niveau des zones isochrones [RUS00].
Une arborescence damplificateurs.
Une distribution dite en H (figure 10.12). Cette technique de distribution arbo-
rescente, maintenant universellement adopte, consiste en une succession de distri-
butions 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, lquili-
brage parfait de la distribution dhorloge est impossible. Lutilisation de frquences
dhorloge trs leves (plusieurs giga-hertz) rend ces carts inacceptables. Pour com-
penser 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 pro-
grammables seraient alors positionns pour ramener les dphasages tre infrieurs
50 ps.
Une telle technique prsente linconvnient que lorsque le circuit vieillit, ses carac-
tristiques technologiques voluent et les rglages initiaux peuvent ne plus convenir.
Une technique encore plus labore, appele multi-PLL, consiste utiliser les compa-
Dunod La photocopie non autorise est un dlit.
10.2

horlogerie
horlogerie d'un
1 Zone isochrone
isochrone
bloc isochrone
2 Horlogerie locale
Ampli principaux HL HL HL

1 Distribution quilibre

gnrateur 2
principal HL HM HL
d'horloge

Horlogerie centrale
Horlogerie des circuits rapides et complexes

1 HL HL HL
2

Figure 10.11 Distribution de lhorloge aux zones isochrones


251
252 10 Mcanismes dhorlogerie

Figure 10.12 Distribution de lhorloge laide dun rseau en H

f0
dphaseur zone
programmable 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 hor-
loges 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 zone
programmable isochrone

f0
dphaseur zone
f0
fex programmable 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 asservis-


sement 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 pr-
cision, la diminution de la frquence transmise entranera une diminution correspon-
dante de la puissance dissipe par le rseau de distribution [ANC03] (figure 10.15).

10.3 VERS LE FUTUR

Lvolution de la vitesse dhorloge des microprocesseurs est un phnomne impres-


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

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 zone
PLL isochrone

f0
multiplieur zone
f0/N
fex PLL isochrone

multiplieur
PLL

arbre de distribution

Figure 10.15 Rduction de la puissance dissipe par la distribution


dune frquence dhorloge rduite

f0
zone
PLL
isochrone

f0
zone
PLL
isochrone

fex f0
zone
PLL
isochrone

f0
zone
PLL
isochrone

f0
zone
PLL
isochrone

Figure 10.16 Multi-PLL


10.3 Vers le futur 255

La distribution dune horloge centralise pourrait cder le pas un rseau de PLL


interconnects gnrant des horloges locales toutes en phase. Seul, lun de ces PLL
reoit une horloge de rfrence pour fixer la frquence de lensemble. De tels rseaux
sont appels des multi-PLL [GIL95] (figure 10.16).

BIBLIOGRAPHIE
[ANC82] F. Anceau, A synchroneous approach for clocking VLSI systems, IEEE journal of
Solid State Circuits, vol. SC-17, n 1, Feb. 1982.
[GIL95] J. Nguyen Gill, A. Pratt, Distributed Synchronous Clocking, IEEE transaction on
parallel and distributed systems, Vol. 6, n 3, march 1995.
[HAE98] V. von Kaenel, D. Aebischer, R. van Dongen and C. Piguet, A 600 Mhz CMOS PLL
Microprocessor Clock Generator with a 1.2 Ghz VCO, ISSCC98 Conference, session 25, Feb.
1998.
[FIS98] P.D. Fisher and R. Nesbill, The Test of Time, Circuits & Devices, March 1998.
[BAI98] D.W. Bailey and Bradley J. Benschneider, Clocking Desing and Analysis for a 600-Mhz
Alpha Microprocessor, IEEE journal of Solid State Circuits, vol. 33, n 11, Nov. 1998.
[POL99] F. Pollack, New Microarchitectures Challenges in the Coming Generations of CMOS
Process Technologies, Micro32, 1999.
[BEN00] B.J. Benschneider et al., A 1Ghz Alpha Microprocessor, ISSCC2000 Conference,
session 5, Feb. 2000.
[RUS00] S. Rusu and S. Tam, Clock Generation and Distribution for the First IA-64 Micropro-
cessor, 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.
Dunod La photocopie non autorise est un dlit.

[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 Micropro-
cessor, 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
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 con-
ception de systmes (tlcom, militaires, arospatial, grand public, informa-
tique) ;
les grands fabricants de systmes qui conoivent des circuits spcifiques pour leurs
quipements ;
Dunod La photocopie non autorise est un dlit.

de petites entreprises qui vendent des circuits trs spcialiss (par exemple,
Transmeta) quils conoivent mais quils font fabriquer chez des fondeurs (entre-
prises 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 concep-
tion 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 perfor-
mances 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
10 000 000 PPC620 Pentium II
PPC601 Pentium-Pro
MC68040 Pentium
1 000 000
I486
INTEL
MC68020 I386 MOTO / IBM
100 000 I286
MC 68000
I8086
10 000 MC680
0 I8008
I4004
1 000
1966 1971 1976 1981 1986 1991 1996 2001

Figure 11.1 volution de la complexit des microprocesseurs

Pour viter que celle-ci devienne prohibitive, les entreprises doivent continuellement
innover en terme de mthodologie. Lconomie de la conception des circuits intgrs
est dailleurs trs comparable celle des logiciels. Des solutions trs voisines sont
utilises pour matriser linflation des cots et des dlais dans ces deux domaines.
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/com-
plexit 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.
Dunod La photocopie non autorise est un dlit.

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 dis-
pose, le niveau de cette spcification peut tre :
un schma logique donnant linterconnexion de composants extraits dune biblio-
thque ;
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 Sys-
tme 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 technolo-
giques 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 biblio-
thques 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. Celle-
ci 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 cir-
cuit 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-carac-
triss ;

blocs
compils
blocs
assembls
Dunod La photocopie non autorise est un dlit.

Figure 11.3 Microcontrleur Intel 80C51


262 11 Outils et mthodes de conception des circuits intgrs complexes

les blocs assembls. Ces blocs sont obtenus par la simple juxtaposition de cel-
lules 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 soigneu-
sement 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 dol-
lars 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

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 tran-
sistors, 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 descrip-
tion 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 thori-
quement 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 fonc-
tionnalit globale et de la comparer formellement avec la spcification fonction-
nelle 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
Dunod La photocopie non autorise est un dlit.

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 tl-
phones portables, les appareils grand public, etc. Gnralement, un tel circuit se com-
pose 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 reprogram-
mable) ;
de la mmoire de travail ;
des dispositifs priphriques standard ou spcialiss.

mmoire
processeur
dynamique

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 param-
trant, 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 sous-
systmes (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 lassem-
blage de cartes qui ralisent de telles fonctions.

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

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 com-
plexes 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 cri-
tiques (comme par exemple dans les systmes de freinage des automobiles) la respon-
sabilit 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 0 00 10 Ghz

1 000

100

frquence interne
10

frquence externe date sortie proto


1
75 80 85 90 95 00 05 10

Figure 11.6 volution de la frquence dhorloge des microprocesseurs X86

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

En guise de conclusion

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 maxi-
mum 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 program-
mation en commenant par lassembleur.
Cet ouvrage est aussi un message de nostalgie. Il cherche participer la conser-
vation 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 pour-
tant de nombreux avantages, pourraient peut tre encore servir amliorer lefficacit
Dunod La photocopie non autorise est un dlit.

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 mono-
phase 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 recomman-
dables. 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 chefs-
duvre, 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 S
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 8

A C 4 8
Dunod La photocopie non autorise est un dlit.

D 4
S S

D A 1 2

B C 2 2
270 Conception des circuits VLSI

3. Charge des entres

entres Charge tr N Charge tr P Total Charges equ

A 2 4 6 2
B 2 8 10 3,3
C 2 8 10 3,3
D 1 4 5 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

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 :

E S

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


pectant le croisement des flux de donne (lentre) et de commande (de char-
gement).
Exercices 271

Soit un latch statique utilisant deux inverseurs trois tats :

E S

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 C C VDD

2. Dessin du latch en transistors :

Ch Ch
E S
Dunod La photocopie non autorise est un dlit.

Ch Ch

3. Dessin squelettique des masques du latch :


272 Conception des circuits VLSI

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


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

0 1

1
A B Q =1

0 0

1 Q =0
D C

1 0

2. Tableau des transitions asynchrones :

E
0 1

A A B
Q=1
B C B

C C D
Q=0
D A D

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

S 0 S1

A=1 0
Dunod La photocopie non autorise est un dlit.

B=1 1

C=0 1

D=0 0

Avec Q = S0.
274 Conception des circuits VLSI

Soit le tableau cod des tats :

S0S1 0 1
1 0 10 11
1 1 01 11
0 1 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 :

A
E 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
Q

S1 QB

tude dun circuit de commande dun convertisseur


analogique/numrique

entre analogique sortie numrique

CNA 12
comp. A

comp vals

1, 2 fpes

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

Ce circuit fonctionnera avec des composants externes :


Un convertisseur numrique analogique (CNA de 12 bits) et un compa-
rateur 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 dexci-
tation 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 con-
vertisseur 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 n

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

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

dest = op source

rien transf 0
fpes decr 1
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 ?0
rien <= TRANSF 0
comp=1 comp=0

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

index <= DECR index


<0 ?0

fpes <= TRANSF1

4. Chemin de donnes (bi-phas) :

0
transf/decr

vals index attente

test

fpes vals
0 1 11 t-1

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


retenue initiale dun dcrmenteur.
Exercices 279

5. Organisation du squenceur ( base de PLA).

dpes
tat
comp tat dest op sour.
suiv.

2
result < 0 / 0
3
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 :

test tat dest op source tat suiv

dpes=0 0 rien TRANSF 0 0


dpes=1 0 fpes TRANSF 0 1
1 index TRANSF 11 2
2 vals TRANSF 0 3
res = 0 3 vals(index) TRANSF 1 4
res < 0 3 fpes TRANSF 1 0
4 attente TRANSF t-1 5
res = 0 5 attente DECR attente 5
res < 0 5 rien TRANSF 0 6
Dunod La photocopie non autorise est un dlit.

comp=1 6 rien TRANSF 0 7


comp=0 6 vals(index) TRANSF 0 7
7 index DECR index 3
matrice ET matrice OU

tude dun petit commutateur de messages


Le sujet consiste tudier un commutateur (routeur) de messages (trs sim-
plifi) 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 dca-
lage de deux positions gauche pour prparer laiguillage suivant.

Voie d'entre

clk
Commutateur
rst

Voies de
sortie

Voie Voie Voie Voie


0 1 2 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) :

7 6

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 auxi-
liaire pour distinguer ltape courante dans le traitement du message dentre
(adresse, nombre doctets de donne, donnes). On utilisera des instructions
ineffectives (NULL) pour assurer la synchronicit de la lecture des octets
sur la voie dentre et lmission des octets sur la voie de sortie slectionne.
2. Proposer un schma pour le chemin de donnes du commutateur. La voie
dentre sera lue octet par octet dans un registre et les voies de sorties issues
de registres spcialiss capables de contenir un octet.
Dunod La photocopie non autorise est un dlit.

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 gn-
rant les commandes pour le chemin de donnes.
282 Conception des circuits VLSI

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

Data_in=1 Data_in=0

Rin <= Entre NULL

Etat=ADD Etat=NB Etat=DON

Radd <= Rin(7-6) RNB <= Rin RNB <= RNB-1


Rin <= Rin(5-0)&"00" NULL NULL **
Etat <= NB Etat <= DON RNB?0 RNB=0
NULL 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 paral-
lle. Loptimisation du brochage du circuit suggre de ne mettre quune seule sor-
tie Voie, mais en conservant 4 sorties Data_out.
2. Conception du chemin de donnes :
Variables utilises :
octet : Rin, Rnb, Rvoie 2 bits : Radd(1,0)
bit : data_out(0 to 3) Taille non prcise ( octet) : Etat
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
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 ra-
liser.)
Schma du chemin de donnes :

RZDA* LDAAD LRAD LRV LETAT LRNB LRIN

transf, decr,
decal =0
Radd Rvoie Etat RNB Rin
SRNB SRIN

SENT SAD SNB SDON 1


Voies de sortie Entre ADD/0 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.
Dunod La photocopie non autorise est un dlit.

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

0 1 Etat <= ADD


284 Conception des circuits VLSI

Data_in =0 tat tape tape suiv action

1 2 Data_out(*) <= 0
0 2 2 rien <= 0
1 2 3 Rin <= Entre
ADD 3 4 Radd <= Rin(7-6)
NB 3 5 Rnb <= Rin
DON 3 6 Rnb <= Rnb -1
4 7 Rin <= Rin(5-6)&"00"
7 10 Etat <= NB
5 8 rien <= 0
8 10 Etat <= DON
6 9 rien <= 0
non 9 10 rien <= 0
oui 9 10 Etat <= ADD
10 11 Rvoie <= Rin
11 12 Data_out(Radd) <= 1
12 13 rien <= 0
13 14 rien <= 0
14 1 rien <= 0

Data_in

Etat

rsult=0

sources dest
op
Exercices 285

4. Conception dun squenceur cbl :


Reprage des instants de squencement de lalgorithme :

Dmarrage:
t0 Etat <= ADD
t1 Data_out(*) <= 0
Data_in=0
t2 NULL Data_in=0
Data_in=1

t3 Rin <= Entre

Etat=ADD Etat=NB Etat=DON


t4
Radd <= Rin(7-6) RNB <= Rin RNB <= RNB-1
t5
Rin <= Rin(5-0)&"00" NULL NULL
RNB?0 RNB=0
t6
Etat <= NB Etat <= DON Etat<=DON * Etat<=ADD

t7
t8 Rvoie <= Rin
Data_out(Radd) <= 1
t9
NULL
t10 NULL
t11 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 simpli-
fiera 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.
Dunod La photocopie non autorise est un dlit.

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

R rst
t0 clk
t0
t0

t1 t1 clk
Data_in=0 t1 S rst
Data_in
Data_in=1 1 0
t2

t2 clk
t3 rst
t2 S
Data_in
1 0

t11
t3 clk
S rst
t3

t11 clk
S rst
t11

RZDA* LDAAD LRAD LRV LETAT LRNB LRIN

transf, clk
decr,
decal
Radd Rvoie Etat RNB Rin
=0
SRNB SRIN
NB
DON ADD

SENT S0 SAD SNB SDON


Voies de sortie Entre 0 ADD/1 NB DON

LRIN <= 1 when t3=1 or (t5=1 and ETAT=ADD) else 0;


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

SAD <=1 when t0=1 or (t6=1 and ETAT=DON and result=1)


or t8=1 else 0;
SNB <=1 when t6=1 and ETAT=ADD else 0
SDON <=1 when t6=1 and (ETAT=NB or (ETAT=DON and result=0))
else 0;
S0 <=1 when t1=1 or t2=1 or (t5=1 and (ETAT=DON or ETAT=DON)
or t9=1 or t10=1 or t11=1 else 0;
commande UAL <= decr when t4=1 and ETAT=DON else
decal when t5=1 and ETAT=ADD else transf;
Toutes les commandes issues du squenceur seront stockes dans un registre pour
leur utilisation dans le cycle suivant. Les sorties de ce registre qui commandent les
chargements serviront gnrer des sous horloges 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.
lec un front descendant sur cette ligne provoque la lecture de linformation
dans la FIFO. Linformation lue sera ensuite considre comme efface
(sauf si la ligne file_vide est active).
Dunod La photocopie non autorise est un dlit.

sortie bus de sortie, les informations (le mot lire) seront prsentes avant
et au moment du front descendant de lect. (linformation ne sera pas per-
tinente 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 pre-
mire 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 cri-
ture 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 sup-
posera 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 ser-
vira 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 sor-
ties 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 blo-
que 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. Linfor-
mation 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 dcri-
ture 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 com-
paraison 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;
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
Dunod La photocopie non autorise est un dlit.

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

signal mem:mat;
signal Rlec:bit_vector(0 to prof-1);
signal Recr:bit_vector(0 to prof-1);
begin
process (rst) --initialisation de la file
begin
if rst=0 then --sur front descendant de rst
Rlec(0) <= 1;
Recr(0) <= 1;
for i in 1 to prof-1 loop
Rlec(i) <= 0;
Recr(i) <= 0;
292 Conception des circuits VLSI

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

Troisime description

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

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

end process;
--ecriture
Recr<= Recr ror 1 after 1ps
when ecrevent and ecr=0and file_pleine=0;
mem(select_dir(Recr)) <= entree
when ecrevent and ecr=0and file_pleine=0;
operation<=1after 1ps when ecrevent and ecr=0and
file_pleine=0;
file_vide <= 0when ecrevent and ecr=0and file_pleine=0;
file_pleine <= 1 when Recr=Rlec and operation=1;
--lecture
Rlec<= Rlec ror 1 after 1ps
294 Conception des circuits VLSI

when lecevent and lec=0and file_vide=0;


operation<=0after 1ps when lecevent and lec=0and
file_vide=0;
file_pleine <= 0when lecevent and lec=0and file_vide=0;
file_vide <= 1 when Recr=Rlec and operation=0;

sortie<= mem(select_dir(Rlec));
end arch3;
4. La concidence entre les critures et les lectures nest vraiment problmatique
que lorsque lune dentre elles risque de provoquer ltat 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 respecti-
vement mis 1 par les fronts descendants de ecr et de lec et qui seront, tous les
deux, remis 0 par les fronts montants decr et de lec.
Quatrime description
package complements is
function select_dir(a:bit_vector) return integer;
end complements;
package body complements is
function select_dir(a:bit_vector) return integer is --fonction
pour
alias av:bit_vector(1 to alength) is a; --simuler la
begin --selection directe
for i in 1 to alength loop
if av(i)=1 then return i-1;end if;
end loop;
return 0; -- cas ou le vecteur est a 0 (initialisation!!)
end select_dir;
end complements;
library vector;
use vector.functions.all;
use work.complements.all;
entity fifo is
generic(larg: integer=8;
prof: integer);
port(
ecr :in bit:= 0;
lec :in bit:= 0;
rst :in bit:= 0;
file_pleine :buffer bit;
file_vide:buffer bit;
Exercices 295

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

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 pro-
cess dinitialisation suppose la possibilit dinitialiser les registres Rlec et Recr de
longeur paramtrable.
Annexe 1 1

Rappels dalgbre de Boole

Cette structure algbrique a t tudie par le mathmaticien anglais Georges Boole


(1815-1864) pour formaliser les rgles de la logique des propositions. Elle a t publie
dans son ouvrage : The Mathematical Analysis of Logic en 1847.

A1.1 DFINITION
On appelle algbre de Boole, un quadruplet ( B, , , ) compos dun ensemble
B = {0, 1}, dune opration unaire telle que a B a B appele complmen-
tation, 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
Dunod La photocopie non autorise est un dlit.

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

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

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 a=1
b=0 b=1 b=0

c=0 1 1

c=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 301

Exemple : si f = a b alors f * = ab ;
si f = a ( b c ) alors f * = a ( b c ).
La notion de duale intervient dans ltude des montages CMOS.

Fonctions auto-duales
On appelle auto-duale une fonction boolenne gale sa duale.

Exemple : f = a b c = ( a b c ) = f *.

A1.3.5 Proprits du OU-exclusif


Le ou-exclusif est une fonction boolenne trs importante, doue de plusieurs pro-
prits trs intressantes :
commutativit : a b = b a
associativit : a ( b c ) = ( a b ) c = a b c
lment neutre : a 0 = a
et aussi : a 1 = a
(a b) = a b = a b
ab = a b
si c = a b , alors b = a c .
Toutes ces proprits sont trs utiles pour la ralisation de portes ouex et non-ouex.

A1.3.6 Vision dissymtrique des fonctions boolennes


Il est possible de voir de manire dissymtrique certaines fonctions boolennes :
Par exemple : a b peut tre vu comme si b = 1 alors a sinon 0, cest--dire que
b joue le rle dune sorte de commutateur entre la valeur de a et 0. Cette proprit
est utilise soit pour slectionner une partie dun mot par un masque, soit pour forcer
0 une partie de ce mot.
Exemple :
a 10010110
b 00011110 (masque de slection)
Dunod La photocopie non autorise est un dlit.

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 com-
mutateur entre lun des oprandes et son complmentaire.

BIBLIOGRAPHIE
[1] R.E. Bryant: Graph-Based Algorithms For Boolean Function Manipulation, IEEE Transac-
tion 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 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 exten-
sion de ltude de la montre simple donne comme exemple de la mthode de concep-
tion dveloppe dans le chapitre 9.

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

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 daffi-
chage 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 H1 M2 M1 S2 S1

SEG_HIGH 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 305

when x"3" => return "0011";


when x"4" => return "0001";
when x"5" => return "0011";
when x"6" => return "0111";
when x"7" => return "0001";
when x"8" => return "0111";
when x"9" => return "0011";
end case;
end decode_low;
function decode_high(entree:quad) return quad is
begin
case entree is
when x"0" => return "1011";
when x"1" => return "0010";
when x"2" => return "0111";
when x"3" => return "0111";
when x"4" => return "1110";
when x"5" => return "1101";
when x"6" => return "1101";
when x"7" => return "0011";
when x"8" => return "1111";
when x"9" => return "1111";
end case;
end decode_high;
begin
seg_sel<= decode_sel(t1) when valid=1 else "000000";

process(rst) -- mise dans un etat initial connu (23h 59m 40s)


begin
t1 <= x"0";
t2 <= x"0";
s1 <= x"0";
s2 <= x"4";
m1 <= x"9";
m2 <= x"5";
h1 <= x"3";
h2 <= x"2";
valid <= 0;
Dunod La photocopie non autorise est un dlit.

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;
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 chan-
gement de la valeur de t1, de seg_low et de seg_high permet dviter une perturbation
temporaire de laffichage.

A2.3 OPTIMISATION DE LALGORITHME


Plusieurs interprtations sont possibles pour donner un sens matriel linstruction
case. Celle que nous choisissons consiste effectuer un adressage index des registres
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) <= h2;
Dunod La photocopie non autorise est un dlit.

R(1) <= h1;


R(2) <= m2;
R(3) <= m1;
R(4) <= s2,
R(5) <= 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.

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"A",x"4"
h1 <= Incr(x"F") rien <= Incr(h2) null
h2 <= Incr(h2) =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
valid<=0
valid<=1
Dunod La photocopie non autorise est un dlit.

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

A2.4.2 Schma du chemin de donnes

(3,4,6,A)
test
tests
tests

2CD
VAL1

OPE
bus_dest

1CD
A
SELR(T1)
VAL0

VAL

LOS1

S1

bus_source
S1

SELS1

LOS2

S2
S2

SELS2

LOM1
selection afficheurs

M1
M1

SEG_SEL

SELM1

LOM2

x"F"
M2

SELF
M2

SELM2

LOH1

H1
H1

SELH1

LOH2

H2
H2

SELH2

LOT2

T2
SELT2
LOT1

T1
SELT1
SEG_LOW
(afficheurs)

HIGH LOW
segments

SEG_HIGH
2CD

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 correspon-
dront 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 Matrice OU

etat conditions dest ope source et. suiv.

E0 Valid<=0 Incr x"F" E1


E1 Seg__Low Decode_low R(T1) E2
E2 Seg__High Decode_high R(T1) E3
E3 T1 Incr T1 E4
E4 =x"6" T1 Incr x"F" E5
E4 x"6" Valid<=1 Incr x"F" E7
E5 Valid<=1 Incr x"F" E6
E6 T2 Incr T2 E9
E7 rien Incr x"F" E8
E8 rien Incr x"F" E9
E9 =x"A" T2 Incr x"F" E10
E9 x"A" rien Incr x"F" E11
E10 S1 Incr S1 E12
E11 rien Incr x"F" E12
E12 =x"A" S1 Incr x"F" E13
E12 x"A" rien Incr x"F" E14
E13 S2 Incr S2 E15
E14 rien Incr x"F" E15
Dunod La photocopie non autorise est un dlit.

E15 =x"6" S2 Incr x"F" E16


E15 x"6" rien Incr x"F" E17
E16 M1 Incr M1 E18
E17 rien Incr x"F" E18
E18 =x"A" M1 Incr x"F" E19
E18 x"A" rien Incr x"F" E20
E19 M2 Incr M2 E21
E20 rien Incr x"F" E21
E21 =x"6" M2 Incr x"F" E22
E21 x"6" rien Incr x"F" E23
E22 H1 Incr H1 E24
E23 rien Incr x"F" E24
312 2 tude dune montre avec affichage

Matrice ET Matrice OU

etat conditions dest ope source et. suiv.

E24 =x"A" H1 Incr x"F" E25


E24 =x"4" rien Incr H2 E26
E24 x"4", x"A" rien Incr x"F" E26
E25 H2 Incr H2 E28
E26 =x"3" H1 Incr x"F" E27
E26 x"3" rien Incr x"F" E28
E27 H2 Incr x"F" E29
E28 rien Incr x"F" E29
E29 rien Incr x"F" E30
E30 rien Incr x"F" E31
E31 rien Incr x"F" E32
E32 rien Incr x"F" E33
E33 rien Incr x"F" E0
Index

A C
active (zone) 54 C2 158
addition binaire 123 caisson N 46
additionneur canal de cblage 116
cellule 124 CAO (Conception Assiste par Ordinateur) 9
parallle 128 chemin de donne 205
after 184 chronogramme 68
alas 70 commande de slection-de chargement 220
algbre de Boole 297 compilateur de silicium 199, 257
approche verticale/horizontale (de dessin) comportement (description du) 201
112 condition de synchronisme 141
architecture temporelle 148 contact 55
couronne (dun circuit intgr) 7
assembls (blocs) 262
custom (conception) 258
assembleur de silicium 110
asservissement (de phase) 252 D
Dunod La photocopie non autorise est un dlit.

asynchrone 138
D (bascule) 157
attribut de signal (VHDL) 183
dcodeur (de ROM) 94
automate 137 dcodeurs (dans les chemins de donnes) 214
B description structurelle-fonctionnelle-proc-
durale (VHDL) 173, 259
barrire temporelle 147 dessin
bascule 154 ROM-PLA 118
niveau 156 squelettique 117
matre-esclave 156 diffrenciateur (circuit) 156
sur transitions 156 dimensionnement
bi-phase (horloge) 146 portes CMOS 78
314 Conception des circuits VLSI

portes de transfert 86 J
distribution (de lhorloge) 249 JK (bascule) 159
drain (dun transistor MOS) 19 jonction 16
DRC (Design Rules Checker) 263
duale dune fonction boolenne 300 L
latch 142
E
dynamique 144
entrance 79 statique 143
ERC (Electrical Rules Checker) 263 liste de sensibilit 179
tat courant-interne 137 logique
Euler (parcours) 112 3 tats (en VHDL) 186
volution technologique 2 dynamique 88
loi de Moore 2, 244
F
fonction M
boolenne 299 machine dtats finis 137
de conduction 73 matre-esclave 146
VHDL 193 marge de bruit 33
fondeur de silicium 257 masquage (techno) 42
forme masques (boolens) 301
canonique (dune fonction boolenne) matrice (ET-OU) 95
300 mtal (connexions) 56
standard (des instructions) 208 mtastabilit 161
full custom (conception) 258 microprogramme-microinstruction 230
mobilit () 14
G monde intrieur (aux circuits intgrs) 6
generate (VHDL) 195 monme 300
monophas 141
gnrateur
Moore-Mealey (systmes de) 137
de bloc 262
multiplieur 134
de phases 244
multi-PLL 250
de temps/dinstants 236
gnration (de la retenue) 124 N
generic (VHDL) 196
niveau logique 32, 299
gigue (skew) 150, 164
graphe (denchanement dtat) 139, 155 O
Gray (code de) 140, 162
oprateur
grille (dun transistor MOS) 19 arithmtique 121
H VHDL 184
oscillateur 243
H (rseau de distribution de lhorloge) 250
HLFF (bascule) 158 P
horloge 141 package 194
Huffman (mthode de) 166 partage de charge 89
photolithographie 41
I
PLA 98
inverseur PLL (Phase Locked Loop) 247
CMOS 26 plot de connexion 61
minimal 33 polyphas 141
isochrone (zone) 248 polysilicium 52
Index 315

porte source (dun transistor MOS) 19


3 tats 85 sous-horloge 153
CMOS classique 77 successif (fonctionnement) 219
CVSL 84 superpos (fonctionnement) 220
logique 76 synchrone 138
OUEX 82 systme squentiel 137
pr-caractris 260
propagation T
(de la retenue) 124, 126 T (bascule) 160
anticipe de la retenue 129 tableau (de transition) 139, 155
propret (dun signal) 70 temps
pulse (alimentation de PLA) 100 avant perturbation 71
R dexcution-simul 172
de pr-positionnement de maintien de
reconnaisseur 94 basculement (dune bascule) 156
registre 145, 162 de rponse (avant perturbation) 71
rgles de traverse de pr-positionnement
au Lambda 107 (dun latch) 144
de dessin/conception 61
rel (contrainte de conception) 204
symboliques 107
tranche (wafer) 41
relation de synchronisme 141, 165
transistor MOS 19
rseau de conduction 73
rsine photosensible 41 transparence (dun bloc) 106
ROM (matrice de) 91, 98 trous 13
RS (bascule) 154 type N (silcium) 15
type P (silicium) 15
S
U
schma logique 259
semiconducteur 13 UAL (unit arithmtique et logique) 130
squenceur 205
V
cbl 234
signal (VHDL) 177 variable (VHDL) 178
signaux VCO (Voltage Controlled Oscillator) 247
vnementiels de valeur 69 vrification formelle 263
logiques 67 VHDL-Verilog 171
SOC (System On Chip) 263 vision dissymtrique (dune fonction boo-
sortance 36 lenne) 301
Dunod La photocopie non autorise est un dlit.
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 FRANOIS ANCEAU
est professeur au Conservatoire
Scale Integration) est ncessaire au dveloppement dune industrie National des Arts et Mtiers,
lectronique performante. Cet ouvrage prsente les techniques chercheur au laboratoire
SOC/Lip6 de luniversit
de conception des circuits intgrs CMOS complexes, du Pierre et Marie Curie,
composant jusqu l'aspect systme. Il aborde par consquent fondateur du service CMP
de ralisation de circuits
les grands principes de la micro-lectronique. intgrs pour lenseignement
et la recherche.
Les auteurs prsentent les mthodes et les techniques sous-jacentes
au travail de conception de circuits full custom . Les approches YVAN BONNASSIEUX
modernes de conception par compilation de silicium sont est matre de confrences
lcole Polytechnique,
galement abordes. Un exemple complet de conception agrg, ancien lve de
partir d'une description comportementale est trait. lEcole Normale Suprieure
de Cachan.
Destin aux lves ingnieurs et aux tudiants en Master
dlectronique et dinformatique, ce cours est complt par de
MATHMATIQUES
nombreux exercices de conception avec corrigs. Cet ouvrage
intressera galement les chercheurs et les ingnieurs. 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

You might also like