• Aucun résultat trouvé

Conception et r´ealisation d’un circuit

Dans le document Systeme digital : de l'algorithme au circuit (Page 104-115)

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

x

s

r

c 1 0 1 0 1 0

Pour 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 WriteEnable

Planche 3.23 – Interfaces de la ROM et de la RAM double acc´es

Dans le document Systeme digital : de l'algorithme au circuit (Page 104-115)

Documents relatifs