FR 2933515 A1 20100108 FR 0854580 A 20080704 SYSTEME POUR CALCUL DES VALEURS RESISTIVES POUR LA CAO MICRO ELECTRONIQUE DESCRIPTION DOMAINE TECHNIQUE ÉTAT DE LA TECHNIQUE ANTÉRIEURE L'invention concerne le domaine des circuits intégrés et des procédés et des dispositifs 5 permettant de les concevoir. Pendant la conception d'un circuit intégré on cherche à estimer son comportement électrique avant sa mise en production. On cherche en particulier à estimer les valeurs résistives entre les entrées et 10 sorties d'un réseau électrique de ce circuit. La connaissance de ces valeurs permet de juger si, par exemple, deux lignes électriques offrent la même résistance au courant, ou si une ligne électrique est bien adaptée à la sortie d'un bloc ou d'un composant. Aujourd'hui, deux solutions se présentent au concepteur : - effectuer une simulation complète, mesurer les courants et les tensions et calculer les résistances équivalentes, - ou utiliser des approches très simplifiées pour estimer les résistances équivalentes tel que décrit par exemple dans US 2005/0288914 Al. Une suite d'étapes mettant en oeuvre la première solution est illustrée en Figure 1. Le point de départ (Si) est une netlist 10, ou transcription d'un circuit électrique, contenant des composants et les connexions entre les composants ou 15 20 25 2 les réseaux électriques qui relient les composants conçus. Les connexions sont en général modélisées avec des composants électriques linéaires tels que des résistances. Cette netlist se présente sous la forme d'un fichier dans un format lisible par l'ordinateur et/ou par un opérateur. L'étape suivante (S2) est l'étape de départ d'une boucle d'itération ; cette étape concerne le branchement des sources de tension à certains ports d'entrée et de sortie des réseaux électriques. Au cours d'une étape S3 on réalise une connexion des autres ports à la masse. Dans chaque boucle d'une itération on effectue une simulation S4 pour déterminer des courants. Les courants sont ensuite mesurés (étape S5). Enfin les résistances seront calculées (étape S6) par division des tensions injectées par les courants mesurés. Pour simplifier on peut supposer que la netlist ne contient que des composants qui modélisent les interconnexions. On peut également supposer qu'elle ne contient que des résistances. La netlist contient ainsi seulement un certain nombre de réseaux purement résistifs, connectés entre eux. Malgré cette simplification possible, cette première solution a l'inconvénient que le concepteur doit manuellement ajouter des sources de courants au circuit sous investigation, effectuer plusieurs simulations et faire des calculs pour arriver aux résultats précis. Cette approche mobilise donc beaucoup de ressources et des erreurs de manipulation manuelle sont assez courantes. A titre d'exemple un petit réseau électrique de 5 ports d'entrées P1 - P5 est représenté en figures 2A, 2B et 2C. Entre ces ports se trouve un réseau électrique 230 (figure 2B), purement résistif. Ce réseau est composé de résistances R1 à R6, qui sont reliées entre elles. Plus globalement, on peut voir le réseau comme une boîte noire 220 (figure 2A) dont on ne connaît pas le contenu exact. L'intérêt d'un concepteur d'un circuit intégré est alors de connaître la résistance entre les couples d'entrées P1-P2, P1-P3, P1-P4, P1-P5, P2-P3, P2-P4, P2-P5, P3-P4, P3-P5 et P4-P5. Pour cela une itération doit être effectuée, qui branche une source de tension 410 par exemple sur P1-P2 (figure 2C) et qui court-circuite les autres entrées P3, P4 et P5 à travers la masse 420. Une simulation est ensuite effectuée pour déterminer le courant I12. Puis, la résistance entre les deux ports P1 et P2 est déterminée en divisant la tension V12 par le courant I12. Pour connaître les résistances associées aux autres couples de ports, les branchements doivent être enlevés et remis de façon à isoler les ports en question suivant l'exemple ci-dessus. On comprend que cette approche, malgré sa simplicité, offre l'inconvénient de ne pas être automatisée et de prendre beaucoup de temps de simulation. Elle devient très lente pour des réseaux de taille importante (1000 ports) et inutilisable pour des 4 réseaux de taille plus grande (1 million de ports ou plus). La deuxième solution proposée au niveau industriel est celle décrite dans le document US 2005/0288914 Al. Elle utilise une approche assez drastique pour transformer tout un réseau électrique en une seule résistance. Cette approche est utilisable pour estimer des valeurs avec un niveau d'incertitude extrêmement élevé. Pour résumer, il n'existe pas de solution efficace pour le calcul précis des résistances d'un réseau électrique. Il se pose donc le problème de trouver un nouveau procédé et un nouveau dispositif permettant d'effectuer un tel calcul précis. EXPOSÉ DE L'INVENTION L'invention propose une méthode et un système pour résoudre ces problèmes. L'invention concerne d'abord plus spécifiquement un procédé de calcul des valeurs résistives d'un circuit électronique, représenté sous forme de masques et de connexions, comportant : a) la définition du circuit sous forme d'une première liste de composants électriques et de leurs connexions entre eux, b) l'identification des ports d'entrée et de sortie du circuit, c) la sélection d'une partie des seuls composants résistifs du circuit, d) l'établissement d'une matrice des résistances des seuls composants résistifs sélectionnés lors de l'étape précédente, e) le calcul des résistances équivalentes. L'étape d) peut être mise en oeuvre à l'aide d'une décomposition du réseau résistif retenu sous forme de sommets et de branches. Ainsi elle peut comporter les sous étapes suivantes . la définition d'un réseau résistif avec N~ sommets {v, . . . , vNs } et Nb branches {u, . . . , uNb } , chaque branche étant associée à une résistance Ri, la construction d'un arbre T de taille Nt du réseau et du co-arbre associé CT, 15 l'écriture des équations en maille, l'écriture de la matrice des résistances. Quant à l'étape e), elle peut comporter une réduction de la matrice des résistances en intégrant les équations de cycle. 20 L'invention concerne également un dispositif de calcul des valeurs résistives d'un circuit électronique, représenté sous forme de masques et de connexions, comportant : a) des moyens pour recevoir la définition 25 du circuit sous forme d'une première liste de composants électriques et de leurs connexions entre eux, b) des moyens pour identifier des ports d'entrée et de sortie du circuit, 30 c) des moyens pour sélectionner une partie seulement des seuls composants résistifs du circuit, 5 10 d) des moyens pour établir une matrice de résistances de composants résistifs sélectionnés, par exemple à l'aide d'une décomposition du réseau que constituent lesdits composants résistifs retenus sous forme de sommets et de branches, e) des moyens pour calculer des résistances équivalentes. L'invention concerne également un support de données lisible par ordinateur, comportant les instructions pour mettre en œuvre un procédé selon l'invention. BRÈVE DESCRIPTION DES DESSINS - La figure 1 illustre des étapes d'un procédé selon l'art antérieur, qui mette en œuvre une 15 simulation par itération. - Les figures 2A-2C représentent un exemple de circuit auquel un procédé selon l'art antérieur est appliqué. - La figure 3 illustre des étapes d'un 20 procédé pour produire une netlist. - La figure 4 illustre des étapes d'un procédé selon l'invention. - Les figures 5 et 6 sont des étapes détaillées d'un procédé selon l'invention. 25 - Les figures 7A et 7B illustrent un circuit électrique auquel l'invention est appliquée. - Les figures 8A et 8B représentent schématiquement un dispositif pour mettre en œuvre un procédé selon l'invention. 7 EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS Comme indiqué auparavant, la présente invention est un système pour calculer les résistances équivalentes entre ports d'entrée et de sortie d'un réseau électrique. La connaissance des valeurs précises des résistances est une information importante lors de la conception des circuits intégrés. On va d'abord expliquer, à l'aide de la figure 3, comment une � netlist� est obtenue. Le processus commence à partir du plan 110 des masques lithographiques, ou de la description informatique de ces masques. Ce plan est le schéma des couches des différents composants (géométrie) et de leurs connexions dans le circuit. Ces masques sont organisés en couches, et chacune de ces couches contient les formes géométriques qui vont servir de négatif lors de la fabrication du circuit. Chaque couche contient aussi les profils ou informations technologiques, c'est-à-dire les caractéristiques techniques de matériaux tels que l'impédance en fonction de la distance entre les composants, de la permittivité relative, de la perméabilité des matériaux et de la température, ou encore les caractéristiques des diffusions, les profils de dopage, etc. Par exemple, chaque matériau a sa résistivité par tronçon. Un tronçon a une section et une longueur limitées. L'ensemble des tronçons pour tous les composants ou éléments géométriques définit le réseau résistif. 8 Cette description du plan des masques est encore appelée � layout � 110. Cette description est fournie à un ou deux logiciels d'extraction : un premier logiciel 120, dit Extraction � C �, permet d'extraire le circuit dessiné, et un deuxième logiciel 130, dit extraction � I �, permet d'extraire les interconnexions du plan de masques, à l'aide des informations technologiques telles que celles mentionnées ci dessus, qui sont associées au layout 110. Des exemples de ces logiciels sont : - Pour le logiciel 120, le logiciel � Assura � de Cadence Design Systems, ou � Calibre � de Mentor Graphics ou � Star � de Synopsys. - Pour le logiciel 130, on peut utiliser les extensions pour les interconnexions des logiciels cités ci-dessus, donc notamment le logiciel � Assura RCX � de Cadence Design Systems, ou � Calibre XRC � de Mentor Graphics ou � Star RCXT � de Synospys. Le résultat de ces deux extractions consiste en une liste de composants électriques et de leurs connexions entre eux, dite netlist 140. Autrement dit, cette netlist est une description électrique du circuit intégré qui comporte une liste des composants (tous les types de composants: résistances, capacités, inductions ... etc) reconnus lors de l'étape 120 ou 130 et les connexions entre ces composants. Cette description peut être mémorisée dans une base de données ou un fichier électronique lisible par un ordinateur et/ou par un opérateur. 9 La figure 4 maintenant des étapes d'un procédé selon l'invention. Un tel procédé part d'une netlist (étape S11), constituée par exemple de la manière expliquée ci dessus. La netlist peut être du type généralisé, elle peut donc contenir des éléments actifs et des composants modélisant les interconnexions. Dans une première étape S12 on détecte les ports. Ensuite un tri et une sélection (étape S13) peuvent être effectués. En effet, un concepteur n'est pas toujours intéressé par la totalité des composants et même par la totalité des résistances. Il peut donc choisir de regarder seulement un sous ensemble du réseau. Les composants actifs sont à exclure du calcul, les valeurs capacitives et inductives sont à enlever des réseaux. Selon la présente invention, l'utilisateur peut choisir un sous ensemble du réseau et donc, par exemple, éliminer les valeurs capacitives et inductives des composants correspondants. Les valeurs purement résistives sont stockés dans une base de donnés (étape S14). Ensuite, ces valeurs résistives sont mises sous forme de matrice (étape S15) de la manière décrite ci-dessous. Au cours de l'étape suivante (étape S16) on calcule les résistances équivalentes. Celles-ci sont ensuite stockées (étape S17) dans une base de donnés qui peut être une nouvelle base, du même type que celle précédemment utilisée, ou la même que celle utilisée au cours de l'étape S14 et dans laquelle les données déjà présentes sont écrasées. 10 Ensuite les résultats : - peuvent être affichés (étape S18) ; - et/ou mis sous forme de fichiers pour des procédés de conception automatisés. Il est possible de modifier le circuit ou la netlist si un utilisateur n'est pas satisfait du résultat. D'où par exemple la boucle 19 de la figure 4, qui mène de l'étape S18 à l'étape S1 en passant par l'étape S20 de modifications. Le déroulement de chacune des étapes S15 et S16 va être décrit avec plus de détails en liaison avec les figures 5 et 6. Ces étapes sont appliquées à un exemple de circuit représenté en figures 7A (sur laquelle sont représentées les tensions ui (i=1,...,6) 15 aux bornes des composants et les potentiels vj (j=1,_,5) aux ports) et 7B (sur laquelle sont représentés les courants qui circulent dans les composants et les tensions aux ports). Pour simplifier l'écriture, on suppose que toutes les résistances de ce 20 circuit sont égales à R. Dans la suite on utilise le vocabulaire de la théorie des graphes, dont nous allons redéfinir un certain nombre de concepts, avant de procéder à l'explication de l'étape suivante. On trouve des 25 explications concernant la théorie des graphes dans l'ouvrage de R. Faure et al. � Précis de recherche opérationnelle �, Dunod, 2000. Considérons d'abord des points A, B, C, D, E d'un espace, qui sont reliés par plusieurs flèches 30 (ou encore �branches � ou �arcs� ) entre eux. A chaque point (appelé aussi � sommet �) de 10 11 l'ensemble X = {A, B, C, D, E} correspond un sous-ensemble de X, qui est défini, pour ce sommet, en suivant les flèches qui y sont attachées. Si, par exemple, il se trouve qu'il y a une flèche du sommet A vers le sommet B et une autre de A vers C, le sous-ensemble de A est : r{A} = {B, C}. Les arcs d'un graphe non orienté s'appellent les � arêtes �. Dans un graphe, on appelle � chemin � une suite d'arcs dont l'extrémité terminale de chacun, sauf pour le dernier, est l'extrémité initiale du suivant. Un chemin, qui se ferme sur lui-même est un � circuit �. La longueur d'un chemin est le nombre de ses arcs. Un circuit de longueur 1 est une � boucle �. On appelle � chaîne � une suite d'arêtes, dont chacune a une extrémité commune avec l'arête précédente (sauf la première) et avec l'arête suivante (sauf la dernière). Un graphe est � connexe �, sil existe au moins une chaîne entre toute paire de sommets. Un � arbre � est un graphe connexe et sans cycle. Un � co-arbre � est obtenu lors d'un découpage d'un graphe en plusieurs arbres indépendants. L'étape S15, décomposée sur la figure 5, met d'abord en oeuvre une décomposition du réseau résistif retenu sous forme de sommets et de branches. Soit un réseau résistif (S150) avec N, sommets {v{r...,vNs} et Nb branches {ui,...,uNb} . Chaque branche est associée à une résistance RI. 12 Selon une sous - étape S151 de l'étape S15 on construit un arbre T de taille Nt du réseau et le co-arbre associé CT. On obtient donc, pour l'exemple de la figure 7A, l'arbre suivant : T= {ul , u2, u3 , U4 , u5} Nt= 5 et le co-arbre : CT= {u6} Au cours d'une deuxième sous-étape S152 on écrit les cycles du réseau. Chaque branche d'un coarbre est à l'origine d'un cycle. On obtient N, cycles. Dans l'exemple choisi, on calcule le nombre de cycles N, : Nc= 1 [3] Avec le cycle c : c={u6,ùu2,ù u4} [4] Une sous-étape S153 concerne l'écriture des équations en maille selon les lois de Kirchhoff. On introduit des courants {ilr i } associés aux branches et on écrit les relations de mailles associées. Sur chaque cycle on écrit que la somme des tensions est nulle. On note respectivement UT, IT les tensions et courants associés aux branches de l'arbre. Dans l'exemple choisi on obtient donc: [1] [2] 13 IT On note le les courants associés aux cycles . i, = {i6} En vue de la description matricielle du système on utilise en outre - le vecteur des résistances des branches RIT de l'arbre T ; - le vecteur des résistances branché en parallèle du co-arbre CT ; - et le vecteur des résistances du co-arbre CT. Le vecteur des résistances des branches RIT 15 de l'arbre T s'écrit: Rl 10 RTT = Le vecteur des résistances branché en parallèle du co-arbre CT s'écrit: RcT ={O,ùR2,0,ùR4,0} Enfin, le vecteur des résistances du coarbre CT s'écrit: Rcc _ {R6} On obtient donc la description matricielle 5 suivante du système (S154): [Ir, L 0rJ c [5] Dans le cas de l'exemple de la figure 5A, on obtient le système [6] suivant : u1=R1 il u2= R (i2-i6) u3= R3 j3 U4= R4 (i4-i6) u5= R5 i5 0 = 16 - R2 (12-16) - R4 (14-16) 10 Dans l'exemple pris, on suppose que toutes les résistances Ri sont égales à R pour simplifier le calcul. La matrice R est alors la suivante [7] . .......................................................................... ........................................... i1 11 1 1 1 R 0 0 0 0 0 si Ui 0 R 0 0 0 ùR a U2 01 0 8 0 0 0 3U3 0 0 0 R 0 ùR i4 U4 0 0 0 0 R 0 us 10 ùR 0 ùR 0 3R I i6 15 1 1 1 1 15 A partir de cette matrice, il est possible de calculer les valeurs résistives équivalentes: c'est l'étape S16 de la figure 4, qui va être détaillée en liaison avec la figure 6. Partant de l'écriture matricielle S 160, on réduit, au cours d'une sous-étape S161, le système d'équations matricielles en intégrant les équations des cycles c par substitution. Donc, avec : RTT * IT + RcTT * Ic = UT Et : RcT *1T +Rcc *le =O= ùRcc *RcT *1T =1 On obtient : RTT * IT ù RT CT * Rcc * RcT T =U T On obtient donc une matrice R de résistances associées à l'arbre T : (RTT ùRT cTR iccRcT T IT Donc : RT (RTT ùRcTTRcci RcT ) u 0 2 R 0 -1 R 0 i' ' 3 3 i2 u2 0 0 R 0 0 i3 u3 -1R 0 ù 0 R 0 14 u4 3 3 i$ u$ 0 0 0 0 RIII 1 A RT permet ensuite de rapidement calculer 25 (étape S162) les résistances équivalentes, sans passer 10 15 20 Dans le cas de l'exemple de la figure 7A, on obtient la matrice RT suivante [10] . .......................................................................... ................... 1 1 R 0 0 0 0 [8] [9] (Re 16 par des simulations successives. Pour calculer la résistance équivalente entre deux ports i et j, on fait entrer des courants fixés en i et en j, par exemple d'une valeur égale à +1 en i et d'une valeur égale à -1 en j. A partir de la tension entre les deux ports i, j et des courants qui entrent en i et en j, on obtient la résistance cherchée. La figure 8A représente un système d'ordinateur 300 qui peut être utilisé pour implémenter la présente invention. Un ordinateur 302 reçoit un jeu d'instructions programmées sur un média 304 lisible par l'ordinateur, tel qu'un CD-ROM, DVD, bande ou un lien direct avec un autre ordinateur. L'ordinateur exécute les instructions pour lire tout ou partie d'une description d'un plan de masques à partir d'une base de données 306 ou tout autre médium de stockage, puis pour calculer une netlist qui va permettre de démarrer un procédé selon l'invention (étape S11). L'ordinateur exécute ensuite successivement les étapes d'un procédé selon l'invention, et notamment celles de détection de ports, sélection et tri, mise en matrice et calcul des résistances équivalentes. L'ordinateur 302 peut être un ordinateur isolé ou lié à un réseau. De plus, il peut être lié à d'autres ordinateurs 324 à travers des moyens de communication 320 tel que l'Internet. L'ordinateur ou le micro-ordinateur 302 est configuré de manière adaptée pour le traitement des informations relatives à un circuit selon un procédé conforme à l'invention. Il comporte une section de calcul avec tous les composants électroniques, 17 logiciels ou autres, nécessaires à la mise en oeuvre d'un procédé selon l'invention, par exemple tel que celui de la figure 4. Ainsi, par exemple (figure 8B), il comporte un processeur programmable 326, une mémoire 328 et un périphérique d'entrée, par exemple un disque dur 332, couplés à un bus système 330. Le processeur peut être, par exemple, un microprocesseur, ou un processeur d'unité centrale. La mémoire 328 peut être, par exemple, un disque dur, une mémoire morte ROM, un disque optique compact, une mémoire vive dynamique DRAM ou tout autre type de mémoire RAM, un élément de stockage magnétique ou optique, des registres ou d'autres mémoires volatiles et/ou non volatiles. Un algorithme de traitement selon l'invention comporte des instructions qui peuvent être stockées dans la mémoire, et qui permettent d'effectuer des opérations telles que celles de la figure 4 et qui ont été décrites plus haut, ou, plus généralement des opérations de l'un quelconque des modes de réalisation d'un procédé selon la présente invention. Un programme, permettant de mettre en oeuvre un procédé selon l'invention est résidant ou enregistré sur un support (par exemple : disquette ou un CD ROM ou un DVD ROM ou un disque dur amovible ou un support magnétique) susceptible d'être lu par un système informatique ou par le microordinateur 302. Le micro-ordinateur 302 peut être également relié à d'autres dispositifs périphériques, tels que par exemple, des dispositifs d'impression. Il peut être relié à un réseau électronique de type Internet, 18 permettant d'envoyer des données relatives aux résultats de simulation. Il est possible d'afficher sur un écran une image représentative d'un résultat de calcul de valeurs résistives, et également éventuellement une image des résistances et de leurs couplages. La connaissance des valeurs résistives permet de juger si, par exemple, deux lignes électriques offrent la même résistance au courant, ou si une ligne électrique est bien adaptée à la sortie d'un bloc ou d'un composant. Une fois le circuit testé avec satisfaction par le concepteur, il peut être fabriqué et physiquement testé. Des moyens de fabrication du circuit, tels que connus dans l'industrie des semi-conducteurs et des circuits intégrés, peuvent alors être mis en oeuvre, dès lors que le résultat de simulation obtenu avec un dispositif de simulation d'un circuit électronique selon l'invention est satisfaisant. Un procédé et un dispositif selon l'invention jouent donc un rôle important dans la fabrication d'un circuit intégré, car ils permettent une économie de temps considérable dans l'élaboration et la fabrication d'un tel circuit. REVENDICATIONS1. Procédé de calcul des valeurs résistives d'un circuit électronique, représenté sous forme de masques et de connexions, comportant : a) la définition du circuit sous forme d'une première liste (S11) de composants électriques et de leurs connexions entre eux, b) l'identification (S12) des ports d'entrée et de sortie du circuit, c) la sélection (S13) d'une partie des seuls composants résistifs du circuit, d) l'établissement d'une matrice des résistances des seuls composants résistifs sélectionnés lors de l'étape précédente (S15), e) le calcul (S16) des résistances équivalentes. 2. Procédé selon la revendication 1, l'étape d) comportant : - la définition d'un réseau résistif avec N, sommets {v, ... , vNs } et Nb branches { u1, . . . , uNb } , chaque branche étant associée à une résistance Ri, - la construction d'un arbre T de taille Nt du réseau et du co-arbre associé CT (S151), - l'écriture des équations en maille (S153), - l'écriture de la matrice des résistances (S154).30 3. Procédé selon la revendication 2, l'écriture de la matrice des résistances (S154) mettant en œuvre : - le vecteur des résistances des branches 5 RTT de l'arbre T, - le vecteur des résistances branché en parallèle du co-arbre CT, - et le vecteur des résistances du co-arbre CT. 4. Procédé selon l'une des revendications 1 à 3, l'étape e) comportant une réduction (S161) de la matrice des résistances en intégrant les équations de cycle. 15 5. Dispositif de calcul des valeurs résistives d'un circuit électronique, représenté sous forme de masques et de connexions, comportant : a) des moyens pour recevoir la définition 20 du circuit sous forme d'une première liste (140) de composants électriques et de leurs connexions entre eux, b) des moyens pour identifier des ports d'entrée et de sortie du circuit, 25 c) des moyens (S13) pour sélectionner une partie seulement des seuls composants résistifs du circuit, d) des moyens pour établir une matrice de résistances des composants résistifs sélectionnées 30 (S15), 10e) des moyens pour calculer (S16) des résistances équivalentes à partir de ladite matrice de résistances. 6. Dispositif selon la revendication 5, les moyens pour établir une matrice de résistances comportant : - des moyens pour définir un réseau résistif avec Nc sommets {v1,...,vNS} et Nb branches (u1,...,uNb}, chaque branche étant associée à une résistance Ri, - des moyens pour construire un arbre T de taille Nt du réseau et le co-arbre associé CT, - des moyens pour écrire les équations en maille, - des moyens pour l'écriture de la matrice des résistances.