Partons des sch´emas de principe de la planche 3.9. En combinant deux mux cMOS et en r´ealisant chaque amplificateur par deux inverseurs en s´erie, on obtient un registre binaire qui comprend `a priori 20 transistors cMOS. Comme l’horloge est distribu´ee sur deux rails - clk et clk′- on n’a besoin en fait que des 16 transistors de la planche 3.10.
3.2 Conception et r´ealisation d’un circuit
A ce point, nous savons r´ealiser toutes les portes de la base (not, mux, reg). Ceci suffit pour compiler un circuit CDS arbitraire en sa r´ealisation ´electronique cMOS. Cette traduction part d’une description d’un circuit C - en2Zou dans tout autre langage - et produit une description de C ∈ Cds sous forme d’un ensemble
E(C) d’´equations dans la base (not, mux, reg) voir chapitre 1. Notre propos
-pour le chapitre pr´esent - commence une fois connues les ´equations de base du circuit `a r´ealiser.
a
c
b
xs
r
c 1 0 1 0 1 0Pour illustrer le processus, nous utilisons l’additionneur binaire complet abc ci-dessus, donn´e par cinq ´equations de base.
abc(a,b,c) = (s,r) // Full Adder en 5 portes
where b’= not(b); // b′ =¬ b x = mux(a,b’,b); // x = a ⊕ b r = mux(x, c, b); // r = ab ⊕ bc ⊕ ca c’= not(c); // c′ =¬ c s = mux(x,c’,c); // s = a ⊕ b ⊕ c end where;
3.2.1 De la logique au plan des masques
Sch´emas ´electriques
Partant des ´equationsE du circuit C, on compile une liste des transistors et
´equi-potencielles du circuit - dite netlist - en associant `a chaque ´equation les composants des sch´emas associ´es dans la section pr´ec´edente aux primitives (not, mux, reg).
Dans le cas de notre circuit type abc, on a 2 transistors par not , et 6 par mux , soient 22 transistors `a priori. Comme x est grille commune de deux mux , on peut partager un inverseur et r´eduire le compte `a 20 transistors. La netlist de abc prend alors la forme suivante.
abc(a,b,c) = (s,r) // Full Adder en 20 transistors
where transN(b,GND,b’); // b′=¬ b transP(b,VDD,b’); // b′=¬ b transN(a,GND,a’); // a′ =¬ a transP(a,VDD,a’); // a′ =¬ a transN(c,GND,c’); // c′ =¬ c transP(c,VDD,c’); // c′ =¬ c transN(x,GND,x’); // x′ =¬ x transP(x,VDD,x’); // x′ =¬ x
transN(a,b’,x); // x = mux (a,b’,b)
transP(a’,b’,x); // x = mux (a,b’,b)
transN(a’,b,x); // x = mux (a,b’,b)
transP(a,b,x); // x = mux (a,b’,b)
transN(x,c,r); // r = mux (x,c,b) transP(x’,c,r); // r = mux (x,c,b) transN(x’,b,r); // r = mux (x,c,b) transP(x,b,r); // r = mux (x,c,b) transN(x,c,s); // s = mux (x,c’,c) transP(x’,c,s); // s = mux (x,c’,c) transN(x’,c’,s); // s = mux (x,c’,c) transP(x,c’,s); // s = mux (x,c’,c) end where;
3.2. CONCEPTION ET R ´EALISATION D’UN CIRCUIT 101 Placement et routage
Partant de la netlist, l’´etape suivante est de placer les transistors et de router les fils qui constituent chaque ´equipotentielle. Chaque variable de la netlist devient alors un dessin en deux dimensions. Le placement/routage automatique est l’une des composantes importantes des logiciels de CAD. Un placement et routage pos-sible pour notre abc est le suivant.
c' c b b' a' a x x' s r VDD GND
Ce placement de abc est g´en´er´e automatiquement. Il n’est pas optimal : sa densit´e de transistors est faible. Un dessinateur comp´etent peut, en quelques jours, r´eduire la surface de moiti´e. Ceci en vaut la peine pour un circuit que l’on compte tirer `a un tr`es grand nombre d’exemplaires. Il ne faut pas le faire quand l’objectif est de mettre ce circuit au plus vite sur le march´e.
Planche 3.11 – Masques de fabrication
Simulation et optimisation
Ce n’est qu’apr`es le placement et le routage que les param`etres n´ecessaires `a la simulation ´electrique sont connus. En effet chaque net - c’est `a dire chaque variable de la netlist, c’est `a dire chaque ´equipotentielle du circuit final - est une capacit´e, compos´ee en partie des transistors dont il est la grille et, pour le reste, des fils de routage qui le composent.
Une fois mesur´es ces param`etres ´electriques, on peut proc´eder `a une simulation r´ealiste du comportement dynamique du circuit. Le mod`ele de transistor donn´e par les formules passe-partout n’est qu’une approximation au premier ordre du com-portement, dans laquelle on ignore divers effets parasites qui d´egradent les perfor-mances - au second ordre. Dans la simulation d’un circuit ´electronique critique, comme par exemple les circuits analogiques qui suivent, on mod´elise le transistor par un r´eseau qui comprend plusieurs dizaines de composants ´electriques primitifs, `a prendre parmi : r´esistances, capacit´es, inductances2, sources de courants, sources de tensions.
L’objet de la simulation est de v´erifier les performances a ttendues du circuit - vitesse, consommation - et de les optimiser en jouant sur les dimensions des transistors et les autres param`etres. En effet, quand on double la longueur du canal d’un transistor, on divise sa conductance par deux. A l’inverse, quand on double sa largeur, on multiplie la conductance par deux. Dans les deux cas, on double la capacit´e de sa grille, ce qui reporte le probl`eme d’optimisation un cran plus haut dans la chaˆıne logique.
3.2. CONCEPTION ET R ´EALISATION D’UN CIRCUIT 103 Ici encore, les outils de CAD donnent une solution automatique aux dimensions des transistors. Elle est fiable et on l’obtient vite. Elle n’est jamais optimale et le concepteur humain peut l’am´eliorer, s’il en a le temps.
Dessin des masques
Une fois termin´ee la conception ´electrique et g´eom´etrique du circuit, il faut en tirer les plans. C’est un dessin informatique `a l’´echelle de tous les fils, contacts et transistors constituant le circuit. A ce stade, chaque variable logique prend une forme g´eom´etrique (dessin complet de l’´equipotentielle ´electrique) et des couleurs, qui codent les mat´eriaux de r´ealisation (planches 3.11, 3.12 et 3.8). Les plans d’un circuit de 100 000 transistors comportent typiquement plusieurs millions de poly-gones, repr´esent´es par quelques centaines de Mb.
Avant de lancer la fabrication, proc´ed´e long et coˆuteux, on proc`ede `a de mul-tiples v´erifications des plans.
R`egles de dessin On v´erifie que le dessin de chaque ´equipotentielle est ´electrique-ment connexe, et que les fils qui la composent ont la largeur requise. On v´erifie que deux ´equipotentielles diff´erentes sont espac´ees d’une garde mi-nimale, pour ´eviter les courts-circuits. Ces r`egles sont toutes exprim´ees en
microns (1µm = 10−6m).
Sch´emas logiques La structure en portes logiques du circuit est reconstruite `a par-tir du dessin des plans, et on v´erifie qu’elle est bien isomorphe `a la netlist de d´epart. C’est `a une activit´e de mˆeme nature que se livre le personnage de la planche 3.1.
Sch´emas ´electriques Les caract´eristiques ´electriques - r´esistance, capacit´e, . . .- de chaque net sont calcul´ees `a partir du dessin, et des caract´eristiques de la tech-nologie de r´ealisation. On v´erifie alors, par des simulations aussi exhaustives que possible, que les performances du circuit (surface, vitesse, consomma-tion) sont bien conformes au cahier des charges.
Planche 3.12 – Trois masques et les plans d’une porte
Microphotographie d’une porte, apr`es r´ealisation d’apr`es les plans de la planche 3.12. Les (fausses) couleurs sont obtenues par un jeu de filtres polarisants.
3.2. CONCEPTION ET R ´EALISATION D’UN CIRCUIT 105
3.2.2 Du silicium au circuit test´e
Planche 3.14 – Fabrication d’un transistor
Fonderie de silicium
Toutes v´erifications faites, on s´epare les plans suivant les diverses couches de mat´eriau constitutif, typiquement de l’ordre d’une dizaine. Le dessin de chaque couche est alors grav´e sur du verre, pour constituer le jeu des masques, qui est au circuit ce que le n´egatif est `a la photographie - planches 3.11, et 3.12.
Le mat´eriau de base des circuits MOS est le silicium mono-cristallin, ´etir´e en lingots puis d´ecoup´e en galettes - wafers - rigoureusement planes et orthogonales `a la structure du cristal - planche 3.15. Ces galettes subissent alors une suite de traite-ments physico-chimiques visant `a mat´erialiser sur le silicium les diverses couches de la structure du circuit d´efini par le jeu des masques - planches 3.16 et 3.14. Test et montage
A la fin de ce processus, on a grav´e de multiples copies du circuit sur les galettes trait´ees (planche 3.18). On descend alors des pointes conductrices sur les pattes (planche 3.22) de connexion de chaque puce, et on injecte des configurations de test visant `a s´eparer les circuits op´erationnels des rejets (planche 3.20). On scie alors les galettes et chaque puce r´eput´ee bonne est mont´ee sur un support boˆıtier (planches 3.21 et 3.22). On proc`ede `a une derni`ere s´erie de tests de comportements, et les circuits qui survivent `a cette ´epreuve sont livr´es `a l’utilisateur.
Planche 3.15 – Lingot de silicium mono-cristallin, d´ecoup´e en galettes
Planche 3.16 – Mise au four des galettes
3.2. CONCEPTION ET R ´EALISATION D’UN CIRCUIT 107
Planche 3.18 – Circuits sur tranche
Planche 3.20 – Test sous pointes des circuits
3.2. CONCEPTION ET R ´EALISATION D’UN CIRCUIT 109
Data[d] Address[a]
ROM
a d2a bits d DataOut[d]RAM
ReadAddress[a] a double access d2a bits d WriteAddress[a] a DataIn[d] d WriteEnablePlanche 3.23 – Interfaces de la ROM et de la RAM double acc´es