FR 2839568 A1 20031114 FR 0303096 A 20030313 en oeuvre un precede selon rune des revendications 1 a 15. - 1 - 2839568 CHAMP DE L' INVENTION L' invention se rapporte a la conception des circuits integres CMOS. En particulier, l' invention se rapporte au re-dimensionnement automatique des dispositifs et a la substitution selective des dispositifs a faible seuil dans des circuits integres CMOS pour optimiser la vitesse, la capacite du circuit et la dissipation de puissance. ARRIERE PLAN DE L' INVENTION Beaucoup de processus CMOS mettent en jou des etapes pour ajuster des seuils par implantation. Ces implantations pour ajuster les seuils impliquent de maniere typique des operations de masquage, de telle maniere que des seuils de dispositifs de type N et de type P puissent etre ajustes de maniere independante. Il est bien connu que des dispositifs du type N ayant des seuils reduits peuvent etre fabriques en bloquant de maniere selective une partie de l' implant permettant d'ajuster le seuil du type N pendant la fabrication des dispositifs de type N. On peut, de la meme maniere, fabriquer aussi des dispositifs a seuil reduit de type P. Un processus particulier donne en exemple fournit des transistors ayant des longueurs de grille d' environ un dixieme de micron, des tensions de seuil nominales de type N d' environ 0,3V pour un transistor a seuil reduit Vt, et d' environ 0,35V pour un transistor a seuil normal. Ce processus fournit aussi des dispositifs a Vt reduit de type P ayant un seuil d' environ -0,31V et des dispositifs de type P a seuil normal ayant une tension de seuil d' environ -0,365V. Sur le processus donne en exemple, les courants de saturation des dispositifs a Vt reduit tendent a etre - 2 - 2839568 % plus eleves que pour des dispositifs a seuil normal. Des dispositifs du type a enrichissement, a Vt reduit et intrinseque vent souvent utilises ensemble dans la conception d'une circuiterie analogique et d'une circuiterie numerique a but special. Par exemple, un dispositif a Vt reduit, utilis& en source suiveuse offre une tension de garde legerement meilleure qu'un dispositif a enrichissement i un dispositif a Vt reduit necessite une tension de polarisation plus petite qu'un dispositif a enrichissement lorsqu'il est utilise comme un condensateur. Un dispositif monte en source suivouse de type N a Vt reduit peut aussi etre utilisee en parallele avec le tirage vers le haut de type P d'un pilote d'horloge numerique. Les niveaux d'un signal numerique typique ne peuvent pas etre garantis pour bloquer completement des dispositifs a Vt reduit; en fait ces dispositifs fuient plus que leurs contreparties a Vt normal. Dans le processus donne en exemple, la fuite de dispositif des dispositifs a Vt reduit est environ dix fois plus elevee que celle de dispositifs a seuil normal et peut atteindre ou depas ser deux microampere s par micron de largeur de grille aux temperatures elevees. Ceci peut produire un courant de fuite important si un grand pourcentage des transistors sur un circuit integre de grandes dimensions, par exemple un circuit integre d'un processeur moderne, vent du type a Vt reduit. On peut par consequent faire reference a des portes construites en utilisant des transistors a Vt reduit comme etant des portes du type rapide mais presentant une fuite, et celles utilisant des seuils standards comme des portes du type lent mais ne presentant pas de fuite. 3 _ 2839568 Il est connu que la resistance effective source- drain d'un transistor CMOS utilise comme dispositif de commutation dans une porte logique depend fortement de la difference entre sa tension grille-source et sa tension de seuil. Un transistor de tirage vers le teas, a enrichissement, du type N. ayant une tension grille- source d'un volt conduira par consequent un courant significativement moins important qu'un dispositif de type N a Vt reduit de la meme taille et ayant la meme tension grille-source. Sur un processus donne a titre d'exemple, ce courant peut etre de 20% plus eleve pour des dispositifs a Vt reduit que pour des dispositifs normaux. Pour cette raison, des dispositifs a Vt reduit ont ete utilises dans des circuits logiques ou la vitesse est critiquje lorsque les contraintes de cadencement ne peuvent etre respectees d'aucune autre maniere. La tension de seuil peut aussi etre augmentee de maniere efficace, et la fuite reduite d'une maniere considerable, en augmentant la longueur du dispositif, avec, pour consequence, une capacite de grille augmentee et un IDSat reduit (et par consequent une vitesse reduite). Meme un petit accroissement de la longueur peut considerablement reduire la fuite. La conception d'un CMOS peut utiliser des grilles ayant des longueurs (L) normales pour la vitesse la ou cela est necessaire, et des grilles de L legerement plus grandes la ou une plus falble fuite est importante. Les dispositifs a L normal peuvent aussi etre designee comme etant du type rapide mais presentant une fuite et les dispositifs a L plus grands comme du type lent mais ne presentant pas de fuite. Par exemple, les tran- sistors dans un processus a 0,1p pourraient avoir un L de 0,1 lorsqu'une vitesse elevee est necessaire, 4 - 2839568 tandis qu'ils pourraient etre 10% plus longs lorsqu'une fuite plus faible l'emporte sur le desavantage de la vitesse. Il est aussi connu que la tension effective de seuil des transistors MOS dans des circuits logiques peut etre ajustee en appliquant une tension de substrat ou de putts. La variation du seuil avec la polarisation du substrat est connue comme etant l'effet de corps. Pour des transistors a canal N. la polarisation conventionnelle du substrat est 0V, et pour des transistors a canal P. la polarisation conventionnelle est la tension d'alimentation locale VDD. Si la polarisation du type N est portee a un niveau au-dessus de la masse du circuit, Vt peut etre reduit un peu aux depens d'une augmentation de la capacite de la jonction. De meme, si la polarisation du type N est diminuee a un niveau au-dessous de la masse du circuit, Vt peut etre effectivement augmente et la capacite de la jonction diminuee. Les transistors a canal P vent affectes de maniere similaire, la polarite etant toutefois inversee. Les processus standard CMOS a puits N se present directement a l' application d'une polarisation aux puits, et par consequent a des transistors du type P. D'autres processus peuvent etre adaptables a l' application d'une polarisation a des transistors de type P. Pour les objets de ce brevet, des dispositifs ayant des transistors avec une polarisation telle que la valeur absolue de la tension de seuil est reduite vent aussi designee comme etant du type rapide mais presentant une fuite et des dispositifs avec une polari sation tel le que la valeur absolue de la tens ion de seuil est augmentee vent designee comme etant du type lent mais ne presentant pas de fuite. La puissance dissipee dans des circuits integres _ 5 - 2839568 CMOS est souvent decrite comme ayant une composante statique et une composante dynamique. La puissance statique comprend la puissance dissipee a travers la jonction et la fuite du dispositif, la puissance dissipee a travers les charges resistives et ayant le forme de sources de courant et d'autres consommations de puissance qui ne vent pas fonction de l'activite de commutation. La puissance dynamique comprend la puissance dissipee lors de la charge et la decharge des capacites, qui comprennent les capacites de porte, ainsi que le courant de croisement dissipe pendant les transitions du signal aux entrees de la porte. Le courant de croisement comprend un courant qui passe de rail a rail a travers les piles de type N et de type P a la fois d'une porte CMOS parce que les deux piles vent partiellement conductrices pendant la transition du signal d' entree applique a la porte. La puissance dynamique est generalement une fonction de parametres comprenant la frequence de l'horloge, la capacite commutee par les dispositifs et la tension d'alimentation. Historiquement, la composante de la puissance dynamique associee a la charge et a la decharge des capacites a ete plus importante que celle associee au courant de croisement. Ceci resultait du fait que les transistors dans des circuits CMOS transitent de maniere historique de l'etat bloque a l'etat passant et vice versa plutot que de transiter entre un etat partiellement conducteur et l'etat completement conducteur. La composante de la puissance dynamique associee au courant de croisement a d'une maniere generale ete ignoree dans la conception des circuits integres. La composante de la puissance dynamique associee a 6- 2839568 la charge et a la decharge des capacites est proportionnelle au produit de la capacite par la frequence de charge et de decharge par le carre de la tension. Le taux d'activite de chaque nud est le rapport de la frequence de charge et de decharge du nud a la frequence de l'horloge. La puissance dynamique est par consequent proportionnelle, d'une maniere generale, au produit de la frequence d'horloge par le taux d'activite par la capacite du nud par le carre de la tension d'alimentation. Les taux d'activite des nuds d'un processeur ou de tout autre circuit integre de grandes dimensions varient avec la conception du circuit, la position des les nuds dans le circuit et avec l'environnement fonctionnel du circuit. Les taux d'activite des differents nuds dans un circuit peuvent varier de maniere considerable. L'environnement fonctionnel du circuit comprend, pour des circuits du genre processeur, l' execution d'un code sur le processeur. La puissance totale dissipee par un dispositif comprend a la fois une puissance statique et une puissance dynamique. La fuite dans des dispositifs a Vt reduit utilises dans des portes logiques contribue a la puissance statique. Une grande partie de la conception des circuits integres complexes est accomplie par l'intermediaire d'un deroulement de conception qui commence avec la creation d'une description du circuit synthetisable au niveau de transfert des registres (RTL). Des outils de synthese, disponibles aupres de Cadence Design, Mentor Graphics et Synopsys, parmi d'autres vendeurs, cartographient cette description RTL en une > (liste des interconnexions, ci-dessous) au niveau des portes. La circuiterie selectionnee peut aussi etre synthetisee de maniere manuelle par creation de schemes - 7 - 2839568 au niveau de la porte et extraction des schemes pour creer la liste des interconnexions au niveau de la porte. Un logiciel effectuant une analyse du cadencement stat ique est ensuite uti li se pour determiner les retards attendus dans un circuit, et pour comparer ces retards a des limites exprimees dans un >. Un logiciel d'analyse du cadencement statique est incorpore dans beaucoup d'outils d'analyse commune et est aussi disponible sous forme de logiciel independent aupres de vendeurs comprenant Synopsys, Mentor Graphics et Avertec. Les resultats de cette analyse preliminaire du cadencement vent souvent reintroduits dans l'outil de synthese, qui remplace des portes plus rapides et peut rearranger la logique, autant que cela est necessaire pour respecter les contraintes de cadencement. Une logique synthetisee qui respecte les con- traintes de cadencement avant implantation ( > est ensuite implantee, ou concue de maniere physique, souvent par un logiciel de routage et de placement tel que celui disponible aupres de Cadence Design, Avant! et Monterrey Systems. Une information dependante de ['implantation, relative a la charge capacitive et a la resistance dtinterconnexion est alors extraite de la conception physique, et une analyse de cadencement statique supplementaire est effectuee pour verifier que le circuit respecte touj ours aux contraintes de cadencement. L'univers des circuits possibles pour chaque chemin dans un circuit integre peut etre assez grand. Chaque circuit possible possede un produit puissance- retard associe. Il est connu qu'il peut y avoir plusieurs minimums locaux dans l'univers des produits puissance-retard pour chaque chemin. Certains de ces minimums locaux peuvent avoir des produits puissance - 8 - 2839568 retard inferieurs aux autres; il est souhaitable de trouver et d' executer la solution ayant le plus faible produit puissance-retard dans l'univers, cette solution est le minimum global. Un logiciel existent pour la conception des circuits integres, oriente vers le cadencement, considere de maniere typique le cadencement et la consommation en puissance de maniere separee. Ceci peut resulter dans des conceptions qui dissipent considerablement plus de puissance que celle qui serait necessaire si le circuit etait optimise pour a la fois la consommation en puissance et le cadencement parce que l'on trouve un minimum local plutot qu'un minimum global. Les logiciels d'optimisation conventionnels d&marrent avec une condition initiale et determinant une direction de recherche en examinant une derivee du produit puissanceretard de l'univers des solutions. Il fait alors > en descendant la fonction produit puissance-retard en unites d'une taille de pas predeterminee pour atteindre un point minimum. Ce minimum est vraisemblablement un minimum local pour beaucoup des conditions initiales, mais pas pour toutes. La recherche effectuee par le logiciel d'optimisation est cite > si elle permet uniquement a sa recherche de continuer dans une direction qui, a partir de la derivee, paralt mener a un membre plus optimal de l'univers des solutions. Une recherche > s'arretera lorsque le logiciel d'optimisation a > en descendant vers un minimum local. Le logiciel d'optimisation peut alors rapporter ce minimum local comme etant la meilleure solution trouvee, souvent sans grimper une > a partir de laquelle un meilleur minimum peut etre trouve; une condition appelee 9 2839568 local >>. Une opt imi sat ion de la gourmandi se e st typiquement rapide mais a tendance a bloquer dans un minimum local. Les logiciels d'optimisation de ce type peuvent etre qualifies de logiciels d'optimisation locaux, puisqu'ils trouvent le minimum local le plus proche. Les logiciels d'optimisation de la gourmandise necessitent par consequent de bonnes solutions initiales > de la solution optimale; des solutions initiales qui peuvent etre difficiles a fournir. Les logiciels d'optimisation globale ont une capacite a trouver un minimum global, par opposition a un minimum local. Certains logiciels d'optimisation, utilises en conception assistee par Qrdinateur (CAO) de circuits integres, y compris les logiciels de placement et routage, utilisent un processus appele > ( >). Dans un recuit simule, un etat initial est change d'une maniere aleatoire en un etat successeur. L'etat successeur est evalue et le resultat de l' evaluation est compare a l'etat initial. En general, des etats successeurs remplacent l'etat initial pour des iterations suivantes si l'on determine qu'ils vent une amelioration de l'etat initial. Certains logiciels d'optimisation par recuit simule > permettent une retention occasionnelle d'un etat evalue comme inferieur a l'etat initial (ou parent). Typiquement, un recuit simule possede un parametre de > qui commande l' importance du changement effectue entre l'etat initial et chaque etat successeur. Avec un logiciel d'optimisation qui grimpe une colline, cette temperature commande aussi la probabilite pour qu'un etat inferieur soit retenu comme l'etat parent pour des - 10 - 2839568 iterations ulterieures. Cette temperature est reduite de maniere graduelle a mesure que l'optimisation avance. Les logiciels d'optimisation genetique vent des logiciels d'optimisation globaux employant des algorithmes qui vent modelises d'apres le processus de l' evolution en nature. Typiquement, des algorithmes genetiques operent en creant une population de variations individuelles, ou mutations, a partir d' au moins un individu parent. Chaque individu est une solution proposee a un probleme particulier. Chaque individu est typiquement represente sous la forme d'une representation de machine ayant un etat particulier. Les individus de la population peuvent etre crees en operant des mutations sur un parent ou en croisant des parties de plusieurs parents. Ces algorithmes subissent alors un processus de selection, dans lequel on attribue un score aux individus de la population et les individus particuliers qui vent determines comme etant meilleurs que la plupart de la population vent retenus, tandis que le reste est supprime. Les individus retenus peuvent etre utilises comme des parents dans des iterations ulterieures. Apres une ou plusieurs generations de la population, un > individu particulier est select ionne comme une solution optimi see au probleme en cours de resolution. Les logiciels d'optimisation a recuit simule creent de maniere typique un seul etat mute a chaque iteration, l'etat mute etant derive en modifiant un seul etat parent. Les logiciels d'optimisation genetique creent de maniere typique une population ayant plus d'un etat mute individual a chaque iteration. Les logiciels d'optimisation genetique creent aussi souvent des etats mutes individuals de la population par des operations de croisement a partir de plus d'un etat parent. Il est souhaitable de reduire la puissance globale dissipee dans un circuit integre. Il est aussi necessaire de s' assurer que les contraintes de cadencement du circuit vent respectees. L' invention, telle qu'elle est decrite plus loin, aide l'ingenieur concepteur a atteindre ces objectifs. RESUME DE L' INVENTION Dans un premier aspect, l' invention propose un procede pour optimiser la vitesse et la consommation de puissance predite d'une conception d'un circuit integre, ladite conception d'un circuit integre comprenant au moins un chemin comprenant en outre au moins une porte, ledit procede comprenant les etapes consistent a: creer un etat parent representant des dispositifs de la conception du circuit integre, ou pour chaque dispositif dans un chemin du circuit integre L'etat comprend en outre une information de taille de dispositif et une information de type du dispositif, l' information de type de dispositif comprenant en outre une selection entre au moins un type > et au moins un type >; creer une population d' etats individuals a partir d' au moins un etat parent; calculer le score des etats individuals de la population en matiere de cadencement et de dissipation de puissance pour creer un score pour chaque etat individual; selectionner des etats individuals survivants de la population sur la base de leurs scores; iterer les etapes consistent a creer une population, calculer le score des etats individuals et selectionner des etats individuals survivants, les etats individuals survivants de chaque iteration - 12 - 2839568 devenant des etats parents de l' iteration suivante; et selectionner un meilleur etat individual survivant comme etat optimise et mettre a j our Ia liste des interconnexions du circuit integre a partir de la. Selon une variante de realisation, l' invention comprenant en outre les etapes consistent a consigner des taux d'activite a partir d'une logique pour simuler le circuit integre, et dans lequel l'etape consistent a calculer le score utilise les taux d'activite consignee pour calculer la dissipation de puissance. - Selon une autre variante de realisation, l' invention comprend en outre l'etape consistent a e ffectuer une optimi sat ion de la gourmandi se sur des survivants, et l'etape consistent a selectionner un meilleur etat individual survivant est effectuee sur des survivants optimises par l'optimisation de la gourmandise. Dans cette variante de realisation, l' invention peut en outre comprendre l'etape consistent a consigner des taux d'activite a partir d'une logique pour simuler le circuit integre, et l'etape consistent a calculer le score utilise des taux d'activite consignee pour calculer une dissipation de puissance. Selon une autre variante de realisation, l' invention prevoit qu'une difference entre au moins un type > et au moins un type > soit une dose d'implant telle que les tensions de seuil des transistors utilisees dans le type > different des tensions de seuil des transistors utilisees dans le type presentant pas de fuite >>. Selon une autre variante de realisation, l' invention prevoit qutune difference entre au moins un type > et au moins un type > soit la longueur des transistors. Selon une autre variante de realisation, l' invention prevoit qu'une difference entre au moins un type > et au moins un type > soit une tens ion de polari s at ion appliquee aux transistors. Dans un autre aspect, l' invention propose un procede pour optimiser la vitesse et la consommation de puissance predite d'une conception d'un circuit integre, la conception d'un circuit integre comprenant au moins un chemin comprenant en outre au moins une porte, le procede comprenant les etapes consistent a: creer un etat parent representant des dispositifs de la conception du circuit integre, ou pour chaque dispositif dans une partition du circuit integre l'etat comprend en outre une information de taille de dispositif et une information de type du dispositif, ou l' information de type de dispositif comprend en outre une selection entre au moins deux types ayant des caracteristiques de fuite differentes; creer une population d'etats individuals a partir d'au moins un etat parent; calculer le score des etats individuals de la population en matiere de cadencement et de dissipation de puissance pour creer un score pour chaque etat individual; selectionner des etats individuals survivants de la population sur la base de leurs scores; et selectionner un meilleur etat individual survivant comme un etat optimise et mettre a j our la liste des interconnexions du circuit integre a partir de la. Dans une variante de real i sat ion de ce deuxieme aspect, l' invention comprend en outre l'etape consistent a iterer les etapes consistent a creer une 14 - 2839568 population, affecter des scores aux etats individuals et selectionner des etats individuals survivants, dans laquelle les etats individuals survivants de chaque iteration deviennent des etats parents de l' iteration suivante. Dans cette variante du procede selon l' invention, au moins deux types ayant des caracteristiques de fuite differentes vent prevus pour recevoir differentes doses d' implant pendant la fabrication. BREVE DESCRIPTION DES DESSINS La figure 1 est un schema d'une porte logique CMOS NON-ET typique de la technique ancienne; la figure 2 est un deroulement de la conception, selon la technique ancienne, pour concevoir des circuits integres CMOS; la figure 3 est un organigramme d'un procede pour reduire la consommation en puissance dans la conception d'un circuit integre; la figure 4 est un organigramme d'un procede pour optimiser genetique pour optimiser ensemble le cadencement et la consommation en puissance dans une conception d'un circuit integre; la figure 5 est un organigramme illustrant un calcul de la dissipation de puissance comprenant un terme de courant de croisement; la figure 6 est un organigramme illustrant une optimi sat ion a la foi s par optimi sat ion genet ique et optimisation de la gourmandise; la figure 7 est une illustration d'une logique avec une partition d'un circuit integre hypothetique; la figure est une illustration d'une structure de donnees permettant une optimisation genetique rapide; et la figure 9 est un organigramme simplifie - 2839568 illustrant une optimisation a la fois par optimisation genetique et par optimisation de la gourmandise. DESCRIPTION DETAILLEE DES MODES DE REALISATION Une porte CMOS NON-ET typique 100 (figure 1) possede un premier transistor de tirage vers le teas 102 en serie avec un deuxieme transistor de tirage vers le teas 104. Il y a un premier transistor de tirage vers le haut 106 et un deuxieme transistor de tirage vers le haut 108. Des portes simplex, telle que la porte NON-ET illustree a la figure 1, les portes NON-OU (non montrees) et les inverseurs (non montres) vent connus pour avoi r une capacite de port e proport i onnel le a leur taille de dispositif. Des dispositifs de grande taille ont une grande capacite de porte, tandis que des dispositifs de petite taille ont une petite capacite de porte. Ces portes simples vent aussi capables de piloter des charges capacitives dans un temps qui varie inversement avec les tailles de dispositif. Pour la meme charge capacitive, des portes ayant de grandes tailles de dispositif piloteront des charges importantes plus rapidement que des portes ayant de petites tailles de dispositif. Il est aussi connu que, pour la meme taille de dispositif et structure de porte, des portes construites a partir de transistors a Vt reduit pilotent des charges capacitives plus rapidement que des portes construites a partir de dispositifs a seuil standard. De telles portes construites a ['aide de transistors a Vt reduit vent aussi connues pour fuir plus que des portes a seuil standard; une telle fuite peut apporter une contribution importante a la consommation statique de puissance. On peut faire reference a des dispositifs a Vt reduit comme etant - 16 - 2839568 rapides mais presentant une fuite et a des dispositifs a seuil standard comme etant rents mais ne presentant pas de fuite. Pendant le deroulement 200 selon la technique ancienne (figure 2) d'une conception d'un circuit integre CMOS tel que la porte de la figure 1 peut en incorporer, une description au niveau d'un registre de transfert (RTL) du fonctionnement du circuit peut etre creee. Cette description RTL est fournie a un outil de synthese, qui cartographic 202 la description RTL en une liste des interconnexions au plan de la porte. La liste des interconnexions au plan de la porte est fournie a un analyseur de cadencement statique, habituellement une partie de l'outil de synthese, qui chronometre 204 la conception en calculant les retards attendus pour chaque porte de la liste des interconnexions. Le delai attendu est base sur des facteurs comprenant la taille des transistors de chaque porte, la sortance, la capacite du cablage attendue et la capacite de charge de la porte. Les retards des trajets a travers la liste des interconnexions vent ensuite totalises et verifies 206 par rapport aux contraintes de cadencement fixees par le concepteur. Si 208 les contraintes de cadencement ne vent pas respectees, des portes sur les chemins en defaut vent souvent substituee 210 par des portes plus rapides, construites de maniere typique a ['aide de transistors de plus grande taille ou de transistors de faible Vt, et le cadencement est. a nouveau verifie 206 pour assurer que les contraintes vent respectees. Certains outils de synthese peuvent aussi restructurer la liste des interconnexions au niveau de la porte pour reduire le nombre d'etages logiques sur des chemins critiques pour aider a respecter le cadencement. Une fois les contraintes de cadencement 17 - 2839568 respectees, la conception physique du circuit integre est effectuee. Une conception physique est souvent faite en placant et en routant 212 de maniere automatique des portes physiques dans une implantation. Puisque l' implantation peut avoir une capacite d'interconnexion qui pdifferer de maniere considerable de celle qui est attendu avant implantation, des capacites parasites et souvent des resistances parasites vent extraites 214 de ['implantation et un retard de cadencement apres implantation 216 est calcule pour chaque porte dans la liste des interconnexions. Ce retard apres implantation est additionne pour chaque chemin et fait ['objet d'une verification 218 par rapport aux contraintes de cadencement. Finalement, la consommation en puissance peut etre calculee 220 en faisant la somme des capacites parasites et des capacites de porte du circuit, en multipliant par le carre de la tension en operation, en multipliant par la frequence en operation et en multipliant par un facteur d'activite. Dans un autre deroulement 300 d'une conception conformement a la technique ancienne (figure 3), une liste des interconnexions, au plan de la porte, chronometree, d'un circuit integre est optimisee pour reduire la dissipation totale en puissance. Pour des circuits integres processeurs, un jou de programmes d' evaluation 302 est selectionne dont on suppose les caracteristiques semblables aux programmes utilises par des acheteurs typiques du circuit integre. Pour des circuits integres de dispositifs peripheriques, un jeu de programmes de test est developpe, pour lequel on suppose qu'il sollicite les nuds du circuit integre d'une maniere similaire a celles selon lesquelles les nuds seront sollicites en usage reel. La liste des - 18 - 2839568 interconnexions est simulee de maniere logique pendant le deroulement des programmes d' evaluation ou de test, tandis que des taux d'activite vent consignee 304 pour chaque porte de la liste des interconnexions. Ensuite, des portes vent identifiees 306 par un programme s'executant sur un ordinateur comme cibles pour une substitution. L' identification peut etre basee sur la taille de la porte. Pour chaque porte individuelle 308, le programme selectionne 310 une porte candidate au remplacement, construite a l' aide de transistors a Vt reduit de taille relativement petite. Le candidat au remplacement est selectionne pour avoir une vitesse equivalente a la porte d'origine. Puisque la porte candidate au remplacement possede de plus petites tailles de dispositif, elle presente une capacite de porte inferieure a la porte d'origine. Le taux d'activite de la porte, tel qu'il a ete consigne precedemment 304, est utilise pour calculer 312 une epargne de puissance dynamique obtenue par la substitution. Cette epargne de puissance dynamique se produit parce que la porte a Vt reduit peut avoir de plus petites tailles de dispositif tout en produisant un pilotage equivalent; des dispositifs de plus petite taille ont une plus petite capacite de sorte que la composante de la puissance dynamique associee a la charge et a la decharge de la capacite est reduite. Cette epargne de puissance dynamique est comparee 314 a la puissance statique attendue du fait de la fuite dans une porte a Vt reduit. Si 316 la puissance dynamique epargnee est superieure a la puissance de fuite, la porte candidate au remplacement est substituee 318 dans la liste des interconnexions. Le programme repete 320 ce processus jusqu'a ce que toutes les portes candidates, non marquees >, aient ete verifiees pour une substitution eventuelle. 19 - 2839568 Dans un mode de real i sat ion du present logiciel d'optimisation 400 (figure 4), une optimisation est effectuee a la fois pour la dissipation de puissance et pour la vitesse par un ordinateur numerique a vitesse elevee. La liste des interconnexions fait ['objet d'une partition 402 selon des sections qui incluent au moins un chemin d'horloge a horloge dans chaque section. Pour chaque partition, une representation de machine d'un etat parent initial est creee 404 pour optimisation. Une population d'etats individuals est creee 406 a partir de l'etat parent en effectuant des operations de mutation et de croisement. Chaque etat de la population comprend la taille et le genre des portes particulieres qui vent presentes dans au moins un chemin. Une mutation met en jeu une substitution des portes de taille differente ou un remplacement de portes lenses mais ne presentant de fuite par des portes rapides mais presentant une fuite ou un remplacement de portes rapides mais presentant une fuite par des portes lenses mais ne presentant pas de fuite. Nous avons trouve qu'il etait avantageux d'effectuer une mutation avec une probabilite non nulle d' alteration a la fois du type du dispositif et de la taille du dispositif dans la meme iteration. Les operations de transition impliquent d'echanger des parties d'un etat parent avec un autre etat parent, en creant ainsi un nouvel etat individual ayant certaines tailles et certains types de porte d'un premier etat parent et certaines tailles et certains type de porte de l'autre etat parent. Dans un mode de realisation initial, les portes lenses mais ne presentant pas de fuite ont des transistors a Vt standard, tandis que les portes rapides mais presentant une fuite vent construites en utilisant des transistors a Vt reduit. 3 5 Dans un autre mode de real i sat ion, le s portes - 2839568 lenses mais ne presentant pas de fuite possedent des transistors ayant un L de dispositif legerement superieur au minimum, tandis que les portes rapides mais presentant une fuite vent construites a l' aide de transistor ayant un L de dispositif minimum. Dans une variante de ce mode de realisation, il y a trots types de dispositif qui peuvent etre echanges pendant l'optimisation, un type de porte rapide mais presentant une fuite construite a l' aide de transistors a Vt reduit avec un L minimum, un type porte normale construite en utilisant des transistors a Vt standard avec un L minimum et un type de porte lente mais ne presentant pas de fuite construite a l' aide de transistors a Vt standard avec un L de dispositif superieur d' environ dix pourcent au minimum. En particulier, les types de portes rapides mais ne presentant pas de fuite peuvent etre construits en ayant des transistors avec un L de dispositif superieur de 5 a 20% a la regle minimum normale pour le processus. La presente approche d'optimisation fonctionnera aussi avec un dispositif du type rapide mais presentant une fuite et un dispositif du type lent mais ne presentant pas de fuite differencies par le fait d'avoir des tensions de polarisation differentes appliquees a certains de leurs transistors. Les etats dans la population vent connus sous le nom de chromosomes, chaque chromosome possede un gene type de porte et un gene taille de porte pour chaque porte dans le chemin. Les tailles et les types de portes vent selectionnes a partir des types et des tailles de portes particuliers disponibles dans une bibliotheque de cellules contenant des cellules ... predeflnles. Chaque etat de la population fait alors ['objet - 21 - 2839568 d'un calcul de score 408 en matiere de cadencement et la dissipation de puissance. Un retard pour chaque chemin d'horloge a horloge de la partition est calcule et le total de chaque retard est compare aux contraintes de cadencement. Si un chemin quelconque depasse les contraintes de cadencement, le score de l'individu est affecte de maniere negative. La dissipation de puissance est calculee sur la base des taux d'activite de chaque porte, qui vent consignee pendant la simulation des programmes d'evaluation, comme cela a ete expose plus haut en 304. Le score de l'individu est affecte de maniere inverse a la dissipation de puissance. Des etats individuals de la population vent selectionnes 410 pour trouver un survivant sur la base de leurs scores. Les etats particuliers ayant le meilleur score ont une survie garantie; on accorde aux etats ayant des scores inferieurs une probabilite de survie plus faible mais finie. On accorde aux etats individuals ayant de mauvais scores une chance de survie pour assurer que l'algorithme puisse converger sur un optimum global pour la partition et ne reste pas bloque dans des optima locaux. Si 412 les contraintes de cadencement ne vent pas remplies, les individus survivants vent retenus comme des parents et une nouvelle population d'individus est creee 406 a partir de ceux-ci. De la meme maniere, si, en 414, on ne depasse pas une limite d' iteration, les individus survivants vent retenus comme des parents et une nouvelle population d'individus est creee 406 a partir de ceux-ci. Une fois que l'on a atteint la limite de l' iteration, le meilleur individu survivant est selectionne 416 et le processus d'optimisation est repete 418 pour toutes les partitions restantes qui ont encore besoin d'une optimisation. - 22 - 2839568 La liste des interconnexions est mise a j our avec les informations du meilleur individu survivant a mesure que chaque partition est optimisee. Pendant le calcul du score 408, une dissipation de puissance est calculee 500 (figure 5) pour chaque individu, une puissance statique SP associee a la foite du dispositif est calculee 501 pour chaque porte de la partition. Ceci est effectue en multipliant le courant de fuite attendu pour la porte par le carre de la tension d' operation. Une composante de la puissance dynamique reliee a la capacite, DPC, est calculee 502 sur la base de la capacite des dispositifs et de l'interconnexion (Ctotal), la vitesse d'horloge (ClockRate), la tension d' operation elevee au carre (V**2) et le facteur d'activite ( >). DPC = ClockRate*ActivityFactor*Ctotal*(V**2) Nous avons trouve que la precision est amelioree dans une grande mesure pour des processus submicroniques profonds si l'on calcule 504 une composante de la puissance dynamique reliee a la transition, DPX, donnee par: DPX = Weff*(A*TransitionTime B*Cload)*ActivityRatio*ClockRate; ou A et B vent des coefficients dependent du processus, de la tension d' operation et du type de dispositif. Pour un exemple de processus et de tension d' operation, A = 0,12 et B = 0,019 pour des portes a Vt normal et A = 0,27 et B = 0,0345 pour des portes a Vt reduit. A et B vent des constantes de caracterisation derivees d'une simulation de circuit pour des portes prises comme exemple de chaque tension de seuil ou de chaque type de fuite dans le processus en utilisation. A et B vent conserves dans une table et selectionnes 505 pour une utilisation dans le calcul conformement a - 23 - 2839568 la tension de seuil ou au type de fuite de chaque porte. Cload est une capacite de charge totale, incluant la capacite d'interconnexion et la charge de sortance du dispositif, de la porte qui fait ['objet du calcul de consommation de puissance. Le terme TransitionTime est calcule 506 comme une moyenne des temps de montee et de descente attendus sur les entrees de la porte. Weff est calcule 508 comme une largeur effective d'un transistor composite sous la forme: pstack _ Weff * nstack _ Weff Weff = pstack _ Weff + nstack _ Weff ou pstack_Weff est une largeur effective totale pour les dispositifs de type P dans la porte et nstack- Weff est une largeur effective totale pour les dispositifs de type N dans la porte. Une puissance totale pour chaque porte (Pgate) est alors calculee 510 par: Pgate = somme(SP+DPC+DPX) La largeur effective nstack_Weff ou pstak_Weff pour une branche de commutation comprenant des transistors en serie est calculee comme: stack_Weff = 1/((1/W1) + (1/W2) +...+ (1/Wn)) La largeur effective pour une branche de commutation consistent en des transistors en parallele est calculee comme la somme des largeurs de tous les transistors de commutation. Des configurations serie- parallele vent communes dans les structures logiques complexes, y compris dans des portes ET-OU-NON. Pour ces structures, la largeur effective stack_Weff est calculee en combinant ces equations. La puissance totale pour une partition est alors calculee en additionnant la puissance totale pour chaque porte de la partition. Une premiere variante de mode de realisation est d'une utilite particuliere la ou la liste des - 24 - 2839568 interconnexions est avant tout une list e de s interconnexions de transistors individuals plutot que de cellules caracterisees d'une porte standard. Dans ce mode de realisation, le processus d'optimisation avance d'une maniere similaire a celui qui est decrit en reference a la figure 4, excepte qu'il existe un gene de type Vt de transistor et un gene taille de transistor pour chaque transistor individual, au lieu d'un type Vt de porte et taille de porte. Une substitution est par consequent effectuee sur une base par transistor au lieu de celle decrite precedemment sur une base par porte. Une analyse de cadencement pour cheque chemin d'une partition est effectuee comme cela est connu dans la technique. Nous avons trouve que l'optimisation genetique decrite en reference a la figure 4 une bonne chance de trouver un minimum global, mais prend de multiples iterations pour converger sur la solution minimum. Une autre variante du mode de realisation 600 (figure 6) combine par consequent une optimisation genetique avec une optimisation de la gourmandise. Dans une forme grandement simplifiee, ce mode de realisation 650 (figure 9) implique de realiser une partition de la liste des interconnexions 652, d'effectuer une optimisation globale 654 de chaque partition ou de la liste des interconnexions comme un tout dans le cas d'une partition si la liste des interconnexions est suffisamment petite pour une manipulation sans effectuer de partition et d'effectuer une optimisation locale 656 sur des resultats concernant des survivants selectionnes pour l'optimisation globale. La liste des interconnexions est ensuite mise a j our avec le meilleur resultat de l'optimisation combinee. Dans ce mode de realisation, figure 6, des simulations logiques, faites de maniere typique de - 25 - 2839568 programmes d' evaluation, vent mises en muvre pour consigner des taux d'activite 602 des nuds du circuit comme cela a ete expose plus haut. La liste des interconnexions fait ensuite ['objet d'une partition 604 selon des partitions que l'on peut optimiser de maniere independante comme cela a ete expose plus haut. L'optimisation genetique procede de maniere similaire a celle exposee plus haut, toutefois des generations ou iterations vent necessaires en nombre moindre qu'avec le procede de la figure 4. Pour chaque partition, une representation de machine d'un etat parent initial est creee 606. Une population d'etats est creee 608 a partir d'au moins un etat parent et on evalue ou calcule un score 610 pour chaque individu de la population pour determiner un score. La probabilite de survie des individus de la population depend de ce score. Les individus survivants deviennent des parents dans des generations ulterieures a mesure que l'optimisation itere 612. Lorsqu'un compte d' iterations est atteint, les individus survivants vent en outre optimises par une optimisation de la gourmandise. Ceci commence par determiner 614 les pentes de la taille de porte selon les fonctions de vitesse et de puissance. Une direction de recherche est determinee a partir des pentes, et les tailles de porte vent ajustees 616 dans la direction de la meilleure performance de puissance et de vitesse combinees. L'ajustement continue jusqu'a ce qu'un pas supplementaire fournisse une performance degradee pour la performance de vitesse et de puissance. Les survivants optimises vent ensuite evalues 618 en ce qui concerne la performance de puissance et de vitesse et la meilleure solution trouvee est selectionnee pour installation dans la liste des interconnexions. L'optimisation est iteree 620 pour chaque - 26 - 2839568 partition de la liste des interconnexions jusqu'a ce que toutes les partitions aient ete optimisees. Nous avons trouve que cette combinaison d'optimisation locale et d'optimisation globale est particulierement efficace pour produire des conceptions optimales. Les presents procedes pour optimiser vent applicables a la fois avant implantation et apres implantation. Par exemple, il est possible d'utiliser des valeurs approchees avant implantation de la resistance et de la capacite d'interconnexion, basees de maniere typique sur la sortance de la porte, avec le present procede pour optimiser pour produire une meilleure conjecture d'une liste des interconnexions optimale. Apres une implantation initiale, on repete l'optimisation en utilisant des resistances et des capacites d'interconnexion extraites dans les calculs de cadencement et de puissance. Des modifications apportees a la liste des interconnexions pendant l'optimisation vent aussi faites dans ['implantation et une implantation finale est engendree. L' implantation finale est re-extraite et le cadencement final est .. verlfle. Considerons une logique 700 (figure 7) telle qu'elle peut se presenter dans une partition d'une liste des interconnexions. Une porte, tel l'inverseur 702, peut former une partie de plus d'un chemin presentant un interet pour l'analyse du cadencement. Par exemple, l'inverseur 702 forme une partie du chemin A 703 allant de la sortie Q de la bascule de type D 706 vers l' entree D de la bascule de type D 708, et il fait partie du chemin B 704 allant de la bascule de type D 706 vers l' entree D de la bascule de type D 710. La porte 712 fait partie du chemin A et la porte 714 fait partie du chemin B. Supposons que le chemin A 703 soit un chemin - 27 - 2839568 critique du circuit. Le chemin B 704, qui partage un inverseur 702 avec le chemin A 703, peut, mais cela n'est pas necessaire, aussi etre un chemin critique. Notons que dans cet exemple particulier, la porte 714 du chemin B 704 est une charge sur l'inverseur 702; des changements de type de taille et de porte a la porte 714 ont par consequent un potentiel pour affecter le cadencement du chemin A 703. Nous avons trouve avantageux, au cours de la realisation de la partition 402, 604, d'inclure toutes les branches d'un chemin critique dans la meme partition, qui est ensuite soumi se a une optimi sat ion sur tous le s element s de la partition. La porte 714 est par consequent incLuse dans la part ition util i see pour une opt imi s ation du chemin A 703 et la porte 714 peut etre modifiee en taille et en type pendant les etapes consistent a creer une population d'individus 406, 608. Dans une autre variante du mode de realisation, une representation de machine d'une partition 799 est creee en incluant une structure de donnees, telle qu'une structure de donnees 800 (figure 8) pour chaque porte, telle la porte 712. La structure de donnees comprend des pointeurs, tels que le pointeur total 802 du chemin A, vers les totaux du chemin, tel un total 804 sur le chemin A du retard et de la dissipation de puissance associes a chaque chemin au travers de la porte. La structure de donnees comprend aussi des informations avec lesquelles le retard d'une porte substituee peut etre calcule d'une maniere rapide, en incluant la capacite de charge 805 et l'interconnexion RC 806. A mesure que chaque etat individual est cree, l'effet des substitutions sur le retard de la porte substituee peut etre calcule de maniere rapide et efficace en appliquant la capacite de charge 805 et 28 - 2839568 l'interconnexion RC 806 a un modele caracterise associe a la porte substituee. La difference entre le nouveau retard et l'ancien retard 807 est calculee de maniere rapide et appliquee a des copies des totaux, tel le total 804. Les totaux de la puissance peuvent aussi etre mis a j our de maniere immediate et rapide. La structure de donnees comprend aussi un ou plusieurs liens inverses, tel le lien inverse 808, qui relient a une structure semblable associee a chaque porte, tel l'inverseur 702, qui pilote la porte 712 associee a la structure 800. Ceci permet une identification rapide des portes qui pilotent, dont le cadencement et la consommation en puissance peuvent etre affectes par la substitution. Le lien inverse 808 est suivi jusqu'a la structure, telle la structure 820, associee a chaque porte qui pilote. La capacite de charge 822 de la structure 820 associee a la porte qui pilote est ajustee en fonction des differences de capacite d' entree entre les portes d'origine et de substitution et les changements de cadencement et de puissance vent appliques aux copies des totaux 804 specifiques aux individus. Un produit formant un programme informatique est constitue d'un support quelconque risible par une machine, tel qu'une EPROM, une ROM, une RAM, une DRAM, une memoire a disque ou une bande, sur lequel est enregistre un code risible par un ordinateur qui, lorequ'il est lu et execute par un ordinateur, instruit cet ordinateur d'effectuer une fonction particuliere ou une sequence de fonctions. Alors que l' invention a ete montree d'une maniere particuliere et decrite en reference a des modes de realisation particuliers de celle-ci, ceux qui ont des competences dans la technique comprendront que divers autres changements dans la forme et les details peuvent - 29 - 2839568 etre fan's sans departir de l' esprit et de la portee de l' invention. IT faut comprendre que differents changements peuvent etre fan's en adaptant l' invention a di fferents mode s de real i sat ion sans depart i r des concepts inventifs plus larges divulques ici et inclus par les revendications qui suivent. _ 30 - 2839568 R E V E N D I C A T I O N S 1. Procede pour optimiser la vitesse et la consommation de puissance predite d'une conception d'un circuit integre, la conception d'un circuit integre comprenant au moins un chemin (703) comprenant en outre au moins une porte (702), le procede comprenant les etapes consistent a: creer un etat parent (606) representant des dispositifs de la conception du circuit integre, ou pour chaque dispositif (702) dans un chemin du circuit integre l'etat comprend en outre une information de taille de dispositif et une information de type du dispositif, ou l' information de type de dispositif comprend en outre une selection entre au moins un type > et au moins un type >; creer une population (406, 608) d'etats individuals a partir d' au moins un etat parent; calculer le score (408, 610), des etats individuals de la population en matiere de cadencement et de dissipation de puissance pour creer un score pour chaque etat individual; selectionner des etats individuals (410) survivants de la population sur la base de leurs scores; iterer (414, 612), les etapes consistent a creer une population, calculer le score des etats individuals et selectionner des etats individuals survivants, les etats individuals survivants de chaque iteration devenant des etats parents de l' iteration suivante; et selectionner (416, 618) un meilleur etat individual survivant comme etat optimise et mettre a j our la liste des interconnexions du circuit integre a - 31 - 2839568 partir de la. 2. Procede de la revendication 1, comprenant en outre les etapes consistent a consigner des taux d'activite (602) a partir d'une logique pour simuler le circuit integre, et dans lequel l'etape consistent a calculer le score (408) utilise les taux d'activite consignee pour calculer la dissipation de puissance. 3. Procede de la revendication 1, comprenant en outre l'etape consistent a effectuer une optimisation de la gourmandise sur des survivants (616), et dans loquel l'etape consistent a selectionner un meilleur etat (618) individual survivant est effectuee sur des survivants optimises par l'optimisation de la gourmandise. 4. Procede de la revendication 3, comprenant en outre l'etape consistent a consigner des taux d'activite (602) a partir d'une logique pour simuler le circuit integre, et dans lequel l'etape consistent a calculer le score (408) utilise des taux d'activite consignee pour calculer une dissipation de puissance. 5. Procede de la revendication 1, dans loquel une difference entre au moins un type > et au moins un type > est une dose d' implant telle que les tensions de seuil des transistors utilisees dans le type > different des tensions de seuil des transistors utilisees dans le type fuite >>. 6. Procede de la revendication 1, dans lequel une - 32 - 2839568 difference entre au moins un type > et au moins un type > est la longueur des transistors. 7. Procede de la revendication 1, dans lequel une difference entre au moins un type > et au moins un type > est une tension de polarisation appliquee aux transistors. 8. Procede pour optimiser la vitesse et la consommation de puissance predite d'une conception d'un circuit integre, la conception d'un circuit integre comprenant au moins un chemin (703) comprenant en outre au moins une porte (702), le procede comprenant les etapes consistent a: creer un etat parent (606) representant des dispositifs de la conception du circuit integre, ou pour chaque dispositif (702) dans une partition du circuit integre l'etat comprend en outre une information de taille de dispositif et une information de type du dispositif, ou l' information de type de dispositif comprend en outre une selection entre au moins deux types ayant des caracteristiques de fuite differentes; creer une population (406, 608) d'etats individuals a partir d' au moins un etat parent; calculer le score (408, 610), des etats individuals de la population en matiere de cadencement et de dissipation de puissance pour creer un score pour chaque etat individual; selectionner des etats individuals survivants (410) de la population sur la base de leurs scores et 33 2839568 selectionner (416, 618) un meilleur etat individual survivant comme un etat optimise et mettre a j our la liste des interconnexions du circuit integre a partir de la. 9. Procede de la revendication 8, comprenant en outre l'etape consistent a iterer (414, 612) les etapes consistent a creer une population, affecter des scores aux etats individuals et selectionner des etats individuals survivants, dans laquelle les etats individuals survivants de chaque iteration deviennent des etats parents de l' iteration suivante. 10. Procede de la revendication 9, dans lequel au moins deux types ayant des caracteristiques de fuite differentes vent prevus pour recevoir differentes doses