Professional Documents
Culture Documents
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
! "
#
$ % $
%
$&
'
( ) '&
'
*$ % '
& $& &
+ %
,
& $ %
-
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
www.biblio-scientifique.net
VI Conception des circuits VLSI
www.biblio-scientifique.net
Table des matires VII
www.biblio-scientifique.net
VIII Conception des circuits VLSI
www.biblio-scientifique.net
Table des matires IX
www.biblio-scientifique.net
X Conception des circuits VLSI
EXERCICES 269
www.biblio-scientifique.net
Table des matires XI
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.
www.biblio-scientifique.net
2 1 Introduction
Nb Tr
1 000 000 000
Prvision Intel
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
www.biblio-scientifique.net
1.2 Lvolution des circuits intgrs 3
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
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
www.biblio-scientifique.net
1.3 Petit historique de la circuiterie logique 5
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])
www.biblio-scientifique.net
6 1 Introduction
www.biblio-scientifique.net
1.4 le monde intrieur aux circuits intgrs 7
Figure 1.4 Le dessin dun circuit intgr complexe peut tre compar
Dunod La photocopie non autorise est un dlit.
www.biblio-scientifique.net
8 1 Introduction
www.biblio-scientifique.net
1.5 Leffort de conception des circuits intgrs 9
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.
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
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.
www.biblio-scientifique.net
14 2 Du silicium linverseur CMOS
- - - - -
- - - - -
- + - + - + - + - +
-- -- -- -- --
- - - - -
- + - + - + - + - +
-- -- -- -- --
- - - - -
- + - + - + - + - +
- - - - -
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
- - -
+ - + - +
lectron mobile
- - - - - -
P
-
- - -
+ - + - +
- - - - - -
- - -
+ - + - +
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
- -
+ - +
+ - +
- - - - - -
- - -
+ - + - +
www.biblio-scientifique.net
2.3 Capacit MOS 17
- - - - - - - - - + + + + + + + +
- - - - - - - - + + + + + + +
- - - - - - - - - + + + + + + + +
- - - - - - - - + + + + + + +
- - - - - - - - - + + + + + + + +
- - - - - - - - + + + + + + +
- - - - - - - - - + + + + + + + +
- +
- - - - - - - - -+ + + + + + + +
- - - - - - - - + + + + + + +
- - - - - - - - -+ + + + + + + +
- - - - - - - - + + + + + + +
- - - - - - - - -+ + + + + + + +
- - - - - - - - + + + + + + +
- - - - - - - - -+ + + + + + + +
+ -
i=0
- - - - - - - - - + + + + + + +
- - - - - - - - + + + + + + +
- - - - - - - - - + + + + + + +
Dunod La photocopie non autorise est un dlit.
- - - - - - - - + + + + + + +
- - - - - - - - - + + + + + + +
- - - - - - - - + + + + + + +
- - - - - - - - - + + + + + + +
zone
type N dplte type P
www.biblio-scientifique.net
18 2 Du silicium linverseur CMOS
isolant
mtal
substrat
(silicium P)
substrat P (+)
charge dplace
(trous)
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)
VG (+)
grille
(polysilicium)
isolant
(SiO2)
substrat (P)
source (N+) canal drain (N+)
drain drain
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).
vt
vt(x)
vg
Vt0
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+)
vt
vg
Dunod La photocopie non autorise est un dlit.
Vt0
Figure 2.15
22 2 Du silicium linverseur CMOS
vt
vg
Vt0
Figure 2.16
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
Figure 2.17
2.4 Transistor MOS 23
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
Figure 2.18
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
Figure 2.19
24 2 Du silicium linverseur CMOS
vt
Vt0
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
S D
canal
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
Vdd
E S
Vss
Figure 2.24
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
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
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
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
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
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.
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
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.
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
Inverseur tudier
points d'observation
TrP = 4 TrN
TrP = 4 TrN
TrP = TrN
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
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
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
signal
reformat
par la porte
suivante
charge 1
Dunod La photocopie non autorise est un dlit.
charge 8
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
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
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
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
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
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.
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
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
Vue en coupe
Oxyde
Rsine photosensible
Substrat type P
Vue en coupe
Oxyde
Rsine photosensible
Substrat type P
Vue en coupe
Caisson N
Oxyde
Substrat type P
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.
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.
Caisson N Rsine
Nitrure de Silicium
SiN
Substrat type P
Vue de dessus
Vue en coupe
Substrat type P
Vue en coupe
Substrat type P
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.
Gravure du polysilicium.
Gravure de loxyde de grille.
limination de la rsine.
Vue en coupe
Caisson N
FOX
Oxyde mince
Substrat type P
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
Vue en coupe
Caisson N Polysilicium
Rsine
Zones P+ Zone P+
Substrat type P
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
soit parfaitement plane. Cela est obtenu par un polissage mcanique appel plana-
risation.
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).
Vue en coupe
Silice
Rsine planarise
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
Vue en coupe
Silice
planarise
Vue de dessus
a) Gravure du mtal 2
Vue en coupe
Mtal
(second niveau)
Vue de dessus
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.
d) Passivation du circuit
Le circuit termin est recouvert dune couche de nitrure de silicium pour le protger
contre les agressions mcaniques et chimiques.
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.
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
dessin dune technologie particulire mais dillustrer cette problmatique par deux
exemples.
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
V in
Dunod La photocopie non autorise est un dlit.
Vdd
valeur logique 1
seuil haut
seuil bas
valeur logique 0
t
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
1
valeur dfinie nouvelle valeur dfinie t
0
transition
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
0.1ns
0.07 ns
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.
vnement vnement
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
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
Figure 4.10 Chronogramme des variations dune sortie dun rseau combinatoire
horloge initiale
Dunod La photocopie non autorise est un dlit.
condition horloge
(complmente) conditionne
Id
satur
bloqu Vd
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
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
A
A B
B
A B A B
Figure 4.15
Dunod La photocopie non autorise est un dlit.
A
A B
B
A B A B
Figure 4.16
A
A B
B
AB A B
Figure 4.17
g3
g1 g2
g4
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.
X
X
X X
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
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
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.
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
VDD
B
rseau P
A C A
V
S = ((A V B) C) B
S
A B C
rseau N
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.
VDD
B 4
rseau P
A 4 C 2
A 2 B 2
rseau N
C 2
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.
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
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
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
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.
b
OUEX I1
a
a S
b
a I2
NON-OUEX a
b
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
A S
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
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
En fait, les rseaux N et P sont bien duaux. Pour le voir, il suffit dappliquer la
relation ( A B ) ( A B ) A B .
VDD VDD
VDD VDD
AB AB
f f A A A A
entres f f
B
B
E S
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)
E S
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
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
Vdd
Sel
4
4 S
E
C
Dunod La photocopie non autorise est un dlit.
www.biblio-scientifique.net
88 4 Rseaux de conduction et portes
S
E
2
2
Sel C
VDD
prcharge
P
S VS
Entres
f
rseau N dcharge t
P
prcharge dcharge
www.biblio-scientifique.net
4.5 Logique dynamique 89
P
S
VS
f2
f1 f2 f3 123
entres
t
P
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
VDD
C T1 Cp
T2
E S
T3
CS
C T4
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
Lignes de
slection Matrice de ROM
Dunod La photocopie non autorise est un dlit.
Sorties
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
1
E0
Lignes de E1 0
slection
E2 0
0 1 0 1
Lignes de sortie
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
Lignes de sortie
0 1 0 1
Vdd Vdd Vdd Vdd
1
E0
Lignes de E1 0
slection
E2 1
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.
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
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.
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
x y
x y
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
1
Vdd
0
Vdd
0
Vdd
1 0 0 1 0 1 0 1
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
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
www.biblio-scientifique.net
4.6 Logique matricielle 99
sel0
sel1
sel2
sel3
sel4
sel5
sel6
sel7
a 2 a1 a 0
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
Vcc
matrice ET 2 matrice OU
Vcc
sortie
entre
www.biblio-scientifique.net
4.6 Logique matricielle 101
Vcc
1
matrice ET
1
Vcc
Dunod La photocopie non autorise est un dlit.
1 2
2
2
2 2
1
sortie
entre
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
Lignes de sortie
2
2
1
1
1
1
1
1
1
1 2
2
Lignes d'entre
www.biblio-scientifique.net
4.6 Logique matricielle 103
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.
zones enleves
ET OU
www.biblio-scientifique.net
104 4 Rseaux de conduction et portes
Entres ET
OU
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
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
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
www.biblio-scientifique.net
5.3 Rgles symboliques 107
surface minimale
dimension minimale
x
www.biblio-scientifique.net
108 5 Dessin des masques dun circuit intgr
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.
contact transistor
flux de donnes
flux d'adresse
cellule lmentaire
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).
TABLEAU 5.1
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
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.
G1
G3 G4 G5
G2
G1 G2 G3 G4 G5
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
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
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
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).
cellules
caissons
bandes de
cellules
alimentations
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
ai
si
bi
Dunod La photocopie non autorise est un dlit.
c2 c3 ri c1
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).
lignes de bit
ligne de bit
prsence de transistor
lignes de mot
absence de transistor
(pont mtallique)
Dunod La photocopie non autorise est un dlit.
VSS
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
canal de connexion
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.
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
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.
+ 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
ri
bi bi
aibi
ai ai ri
bi bi ai=bi
ri+1 si
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
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
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.
ai
pi
gi
bi
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
ri
ai
pi si
pi
gi pr
bi
VDD
ri+1
ri
ai
pi si
pi
gi
bi
VDD
ri+1
pi
ri
si
pi
r0
a0
s0
b0
r1
a1
s1
b1
rn
an
sn
bn
rn+1
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.
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
ri c1=1
=0
Figure 6.10
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
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.
=1
ai
pi=ai bi si=ai bi
pi
gi=(ai bi)
bi
c2=1
c3 ri c1
ai
pi si
pi
gi
bi
VDD
c2 ri+1
ai
si
bi
c2 c3 ri c1
c1 c2 c3
addition 0 1 0
ouex 1 1 0
ou 1 0 0
et 0 1 1
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
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.
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
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
p7 p6 p5 p4 p3 p2 p1 p0
0 0 0
a3b2 a2b2
a1b2 a0b2
a0b3
p7 p6 p5 p4 p3 p2 p1 p0
Dunod La photocopie non autorise est un dlit.
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.
f
Et St
Circuit
combinatoire g
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.
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
eu
Ei Ek
eu eu
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).
Ch
E S
E S
Ch
Ch
Ch Ch
Dunod La photocopie non autorise est un dlit.
E S
Ch Ch
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
Ch
E S
Ch
Ch
E
latch transparent
temps de pr-positionnement
entre du latch
temps de traverse
sortie du 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
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
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
1 2 1 2
Sortie C
L2 transp. L1 transp.
E1 S1
C1
L1 1
2 L2
C2
S2 E2
1 2 1 2 t
Etab. C1
Etab. C2
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
1 2 1 2 t
Etab. C1
Etab. C2
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.
Registres pertinents 2
(statiques)
1
Barrire temporelle
ajoute
(dynamique)
2 1 2 1 t
bus source
tablissement UAL
Registre source
slectionn
A transp. Registre dest. bus dest
transparent
non rec
2 1
Dunod La photocopie non autorise est un dlit.
prep
gigue
1'
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
PLA
1+2
tats des tat tat profils des
entres cour suiv sorties
2
1
Squencement
Entres Sorties
vnements
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
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
R S
A/0 B/1
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
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
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
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
D
H
00 01 11 10
0 0 0 0 0
1 1 1 1 1
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
D QB
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
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
Bascule JK
J Q
K QB
H R S
K K
J
10 00 01 11
0 0 0 1 1
1 0 1 1 0
Q
T
QB
H R S
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
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.
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
Ch H
E
S
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
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)
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.
A B s=0
P=0 D=0
P=0 D=0 P=0 D=1
P=0 D=1
D C s=1
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
Dunod La photocopie non autorise est un dlit.
Squencement
Entres Sorties
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.
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.
lments de VHDL
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
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.
XOR1
X S1
Y XOR2
Cin Sum
AND2
S2
OR1
Cout
AND1
S3
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;
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;
Variable
entire Tableau
Dunod La photocopie non autorise est un dlit.
dcodeur
(implicite)
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
IR
31 15 10 0
5 0
code_op
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.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
retard
valeur prise en compte
ignore
retard
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.1 Multiplexeurs
Une condition permet de choisir entre deux expressions pour dfinir la valeur dun
signal (figures 8.5 et 8.6).
Exemple :
U <= K when A=B else
X when A>=B else
Z
A,B
K
U X
Z
Exp1
D Exp2
Exp3
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.
(figure 8.7).
t t
a) ti b) tj
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
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
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
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.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.
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
signal Z : word;
...
U <= Z xor IN1 after 1.5*PERIODE;
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.
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
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
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
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
commandes
bus
oprateur
registre
COMPORTEMENT
(algorithme)
OPERATIONS STRUCTURE
(+VARIABLES +PREDICATS)
Figure 9.4
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.
<dest> <source>
rien X"F"
s1 s1
s2 s2
m1 m1
m2 m2
h1 h1
h2 h2
une opration
2CD
Barrire temporelle
d'origine
(registres pertinents)
1CD
Barrire temporelle
Ajoute
(registres intermdiaires)
1CD 2CD t
bus dest
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.
H t
bus source
tablissement UAL
bus de
dest
st
selection des sources
selection du dest.
registre dest.
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.
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)
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.
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
registres oprateurs
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.
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.
squenceur
chemin de donnes
squenceur
latches 2S
d'interface
commandes commandes
de slection de chargement
chemin de donnes
Dunod La photocopie non autorise est un dlit.
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
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
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
squenceur
latches M
d'interface
2
S 1
commandes commandes
de slection de chargement
chemin de donnes
2 1 2 1 2 1 t
fonctionnement
squenceur
latches com
M transp.
commandes
latches tests de slection
Es transp.
commandes
de chargement
donc utiliser ces informations dans tout le cycle i pour gnrer des commandes pour
le cycle i +1.
squenceur
registre H
d'interface
commandes commandes
de slection de chargement
chemin de donnes
H t
sorties du
squenceur
positionnement
sorties registre
d'interface
chargement
basc. de test
horloge de
chargement chargement
chemin de donnes
(conditionnelle) registre
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
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).
=x"6" x"6"
Figure 9.26
matrice ET matrice OU
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.
Matrice ET
surface
gagne
Matrice OU
OU
conditions tat
courant
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
Fonctionnement du Fonctionnement du
squenceur chemin de donnes
Dunod La photocopie non autorise est un dlit.
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
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
ROM tat
tat courant
(microinstructions)
R mic
horloges
micro-adresse
tests
lignes de commande remplacement
bits
conditions
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.
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
X4 XA
0 0 => Null
0 1 => H1<= Incr(x"F")
1 0 => Rien <= Incr(H2)
1 1 impossible
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
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
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
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.
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
T1
T2
Rseau
combinatoire
T16
Commandes vers le
chemin de donnes
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
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
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
2 1 2 1
Commandes (brutes)
Nouvelles
conditions
Registre
micro-matre
transparent
Cycle suivant
CHEMIN DE DONNEE
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.
ET
Etat
courant
Conditions OU
Chemin de donnes
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
quartz 1f
oscillateur %2 0
2
diviseur gnrateur
amplificateur
amplificateur par 2 des phases
F
(sinusodale!)
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
quartz 1
Gn compteur
oscillateur
oscil lateur
bi-phas 2 (Johnson)
1 2 3
Figure 10.4 Gnrateur de phases
I 386 16 1,5 3
I 486 33 1 6
Pentium 66 0.7 13
Dunod La photocopie non autorise est un dlit.
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
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
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.
f0 f0/N
quartz
oscillateur
f0/N
filtre
passe-bas
horloge initiale
Amplificateur
d'horloge
Figure 10.9 Communication entre les zones isochrones dun circuit complexe
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
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
f0
dphaseur zone
programmable isochrone
f0
fex
multiplieur
PLL
arbre de distribution
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
f0
multiplieur zone
PLL isochrone
f0
multiplieur zone
f0/N
fex PLL isochrone
multiplieur
PLL
arbre de distribution
f0
zone
PLL
isochrone
f0
zone
PLL
isochrone
fex f0
zone
PLL
isochrone
f0
zone
PLL
isochrone
f0
zone
PLL
isochrone
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.
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
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
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.
Figure 11.2 Dessin dun squenceur cbl en approche pr-caractrise (voir chapitre 9)
synthtis avec le systme Alliance
11.4 Circuits custom 261
blocs
compils
blocs
assembls
Dunod La photocopie non autorise est un dlit.
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.
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.
mmoire
processeur
dynamique
canaux
de cblage
blocs
de logique
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
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
1 000
100
frquence interne
10
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.
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
A
B
C S
D
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
A 2 4 6 2
B 2 8 10 3,3
C 2 8 10 3,3
D 1 4 5 1,6
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.
E S
E S
Ch
Ch
S
E
VSS C C VDD
Ch Ch
E S
Dunod La photocopie non autorise est un dlit.
Ch Ch
Q
E
QB
0 1
1
A B Q =1
0 0
1 Q =0
D C
1 0
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
S0S1 0 1
1 0 10 11
1 1 01 11
0 1 01 00
0 0 10 00
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 )
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
CNA 12
comp. A
comp vals
1, 2 fpes
Circuit concevoir
rst dpes
rst
dpes = 1?
o n
fpes <= 0
index <= 11
vals <= 0
vals(index) <= 1
attente ? t
comp = 1?
o n
fpes <= 1
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
attente<=TRANSF (?t-1)
0
transf/decr
test
fpes vals
0 1 11 t-1
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 :
Voie d'entre
clk
Commutateur
rst
Voies de
sortie
adresse destination
(1 octet) zone donne (n octets)
longueur de la zone
donnes (1 octet)
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
1. Dmarrage :
Etat <= ADD
Data_out(*) <= 0
Data_in=1 Data_in=0
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 :
transf, decr,
decal =0
Radd Rvoie Etat RNB Rin
SRNB SRIN
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.
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
Dmarrage:
t0 Etat <= ADD
t1 Data_out(*) <= 0
Data_in=0
t2 NULL Data_in=0
Data_in=1
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.
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
transf, clk
decr,
decal
Radd Rvoie Etat RNB Rin
=0
SRNB SRIN
NB
DON ADD
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
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
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
sortie<= mem(select_dir(Rlec));
end arch4;
296 Conception des circuits VLSI
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
court-circuit
0 1
isol
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
Exemple : a b c
300 1 Rappels dalgbre de Boole
a=0 a=1
b=0 b=1 b=0
c=0 1 1
c=1
1 terme ab
terme ac
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 *.
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
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.
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
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.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
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
(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
Matrice ET Matrice OU
Matrice ET Matrice OU
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
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
1 2 3 4 5 6 7 8
6494454
ISBN 978-2-10-050036-9 www.dunod.com