Brevet FR3028637A1 — publié le 20160520

B13593FR - DD15524 1 PROCEDE DE CONCEPTION DE CIRCUITS 3D Domaine La présente description concerne le domaine de la conception de circuits intégrés, et en particulier la conception de circuits tridimensionnels. Exposé de l'art antérieur Afin d'obtenir une meilleure compacité et de meilleures performances, on a déjà proposé de mettre en oeuvre des circuits intégrés en utilisant la technologie dite 3D dans laquelle deux ou plusieurs niveaux sont empilés, chaque niveau comprenant une couche semi-conductrice formant un circuit 2D, et les niveaux étant interconnectés par des vias de connexion. Des exemples de technologies 3D comprennent la technologie 3D à haute densité à vias de silicium (HD-TSV), la 15 technologie cuivre sur cuivre, et les technologies d'intégration 3D monolithiques (M3D). La conception de circuits 3D conEence en général par une représentation en circuit 2D du circuit global, et implique une opération de partitionnement dans laquelle les diverses portions 20 de la représentation en circuit 2D sont affectées aux niveaux du circuit 3D. 3028637 B13593FR - DD15524 2 Les procédés de partitionnement courants qui ont été proposés utilisent des fonctions de coût soit pour minimiser le nombre de vias 3D dans la représentation en circuit 3D, soit pour obtenir une répartition de surface souhaitée entre les niveaux. 5 Par exemple, la publication par J.Tada et al., intitulée "A Middle-Grain Circuit Partitioning Strategy for 3-D Integrated Floating-Point Multipliers", 3DIC, pages 1-6, IEEE 2011, décrit un tel procédé de partitionnement qui égalise la surface de chaque couche et évite le plus possible que le chemin critique ne traverse 10 des couches différentes. Cependant, le partitionnement est une tâche complexe, et les conceptions de circuits 3D réalisées sur la base de procédés de partitionnement existants ont tendance à avoir comme résultat des circuits 3D qui sont loin d'être à l'optimum en termes de performances et/ou de consommation d'énergie. Il y a donc un besoin dans la technique d'un nouveau procédé et d'un nouveau dispositif pour partitionner une représentation en circuit 2D pour générer une représentation en circuit 3D d'un circuit 3D ayant des performances et/ou une consommation d'énergie relativement bonne. Résumé Ainsi, un mode de réalisation de la présente description est de résoudre au moins partiellement un ou plusieurs problèmes 25 de l'art antérieur. Selon un aspect, on prévoit un procédé de conception de circuit 3D mis en oeuvre par un dispositif de traitement, le procédé comprenant : partitionner une représentation de circuit 2D en deux ou plusieurs niveaux d'une représentation de circuit 30 3D, la représentation de circuit 2D définissant une pluralité d'éléments de circuit et une pluralité de fils d'interconnexion, chaque fil d'interconnexion représentant une connexion électrique entre deux ou plusieurs éléments de circuit, chaque fil d'interconnexion étant pondéré sur la base d'au moins un élément parmi : 35 sa longueur ; son délai de propagation ; et son niveau de priorité 3028637 B13593FR - DD15524 3 sur la base de l'étendue dans laquelle il représente un chemin de transmission critique, la représentation de circuit 2D formant initialement un premier niveau de la représentation de circuit 3D, le partitionnement comprenant : 5 a) sélectionner un premier fil, interconnectant au moins des premier et deuxième éléments de circuit dans le premier niveau, qui a un poids supérieur à un premier seuil ; b) déplacer l'un des premier et deuxième éléments de circuit connectés par le fil sélectionné vers un autre niveau de 10 la représentation de circuit 3D et remplacer le fil d'interconnexion par un via de connexion entre le premier niveau et l'autre niveau ; et c) répéter a) et b) pour un ou plusieurs autres fils d'interconnexion du premier niveau. 15 Selon un mode de réalisation, a) et b) sont répétés jusqu'à ce qu'une ou plusieurs des conditions suivantes aient été satisfaites : il n'y a plus de fils d'interconnexion dans le premier niveau ayant un poids supérieur au premier seuil ; le compte de vias de connexion a atteint ou dépassé une limite ; un 20 certain rapport de surface entre le premier niveau et un ou plusieurs autres niveaux a été atteint ; et un certain rapport de puissance entre le premier niveau et un ou plusieurs autres niveaux a été atteint. Selon un mode de réalisation, la sélection d'un premier 25 fil comprend un classement des fils d'interconnexion sur la base de leurs poids, et la sélection du fil d'interconnexion ayant le poids le plus élevé. Selon un mode de réalisation, les fils d'interconnexion sont pondérés sur la base de leurs longueurs, et le premier seuil 30 est un seuil de longueur. Selon un mode de réalisation, la longueur des fils est estimée en utilisant un modèle de longueur de fil à demi-périmètre (HPWL). Selon un mode de réalisation, le procédé comprend en 35 outre : 3028637 B13593FR - DD15524 4 d) identifier dans la représentation du circuit 3D un fil d'interconnexion ayant un poids inférieur à un deuxième seuil et qui a été remplacé par un via de connexion ; e) restaurer le fil d'interconnexion identifié en 5 remplaçant le via de connexion par un fil d'interconnexion entre des éléments de circuit se trouvant dans un même niveau ; et f) répéter d) et e) jusqu'à ce qu'il n'y ait plus de vias de connexion remplaçant des fils d'interconnexion qui ont un poids inférieur au deuxième seuil. 10 Selon un mode de réalisation, chaque élément de circuit dans la représentation de circuit 2D comprend une indication d'au moins un élément parmi : sa surface ; et sa consommation d'énergie ; le procédé comprenant en outre : vérifier si une limite parmi une limite de rapport de surface, une limite de 15 rapport de consommation d'énergie, et une limite de compte de vias de connexion, a été dépassée dans la représentation de circuit 3D, et si oui restaurer un ou plusieurs fils d'interconnexion en remplaçant le via de connexion par un fil d'interconnexion entre des éléments de circuit se trouvant dans un même niveau. 20 Selon un mode de réalisation, la représentation de circuit 2D est une liste d'interconnexions 2D, et le partitionnement de la représentation de circuit 2D comprend la conversion de la liste d'interconnexions 2D en un hypergraphe ayant des sommets correspondant aux éléments de circuit de la représentation de circuit 2D, et des arêtes correspondant aux fils d'interconnexion de la représentation de circuit 2D. Selon un mode de réalisation, les éléments de circuit sont des cellules standard sélectionnées dans une librairie de cellules standard. Selon un mode de réalisation, les éléments de circuit sont des dispositifs semiconducteurs, au moins l'un des éléments de circuit étant un transistor. Selon un mode de réalisation, le procédé comprend en outre : réaliser un placement routage sur la représentation de 35 circuit 3D pour générer une conception de circuit 3D. 3028637 B13593X - DD15524 5 Selon un mode de réalisation, le procédé comprend en outre la fabrication d'un circuit intégré sur la base de la conception de circuit 3D. Selon un autre aspect, on prévoit un dispositif de 5 stockage non transitoire mémorisant un programme d'ordinateur qui, lorsqu'il est exécuté par mise en oeuvre du procédé Selon un autre calcul comprenant : une un dispositif de traitement, amène la susmentionné. aspect, on prévoit un dispositif de ou plusieurs mémoires mémorisant des 10 instructions et une représentation de circuit 2D ; et un dispositif de traitement adapté à générer, sous le contrôle des instructions, une représentation de circuit 3D en : partitionnant la représentation de circuit 2D en deux ou plusieurs niveaux de la représentation de circuit 3D, la représentation de circuit 2D 15 définissant une pluralité d'éléments de circuit et une pluralité de fils d'interconnexion, chaque fil d'interconnexion représentant une connexion électrique entre deux ou plusieurs éléments de circuit, chaque fil d'interconnexion étant pondéré sur la base d'au moins un élément parmi : sa longueur ; son délai de 20 propagation ; et son niveau de priorité sur la base de l'étendue dans laquelle il représente un chemin de transmission critique, la représentation de circuit 2D formant initialement un premier niveau de la représentation de circuit 3D, le partitionnement comprenant : 25 a) sélectionner un premier fil, interconnectant au moins des premier et deuxième éléments de circuit dans le premier niveau, qui a un poids supérieur à un premier seuil ; b) déplacer l'un des premier et deuxième éléments de circuit connectés par le fil sélectionné vers un autre niveau de 30 la représentation de circuit 3D et remplacer le fil d'interconnexion par un via de connexion entre le premier niveau et l'autre niveau ; et c) répéter a) et b) pour un ou plusieurs autres fils d'interconnexion du premier niveau. 3028637 B13593FR - DD15524 6 Selon un mode de réalisation, le premier fil interconnecte en outre un ou plusieurs autres éléments de circuit aux premier et deuxième éléments de circuit, et b) comprend en outre le déplacement d'un ou plusieurs des autres éléments de circuit 5 vers l'autre niveau. Brève description des dessins Les caractéristiques et avantages susmentionnés et d'autres, apparaîtront clairement à la lecture de la description détaillée suivante de modes de réalisation, donnés à titre 10 d'illustration et non de limitation en faisant référence aux dessins joints dans lesquels : la figure 1 est une vue en coupe d'une portion d'un circuit 3D comprenant deux niveaux selon un exemple de réalisation de la présente description ; 15 la figure 2 est un organigramme représentant des opérations dans un procédé de conception de circuit 3D selon un exemple de réalisation de la présente description ; les figures 3A à 3C sont des représentations hypergraphes d'un circuit selon un exemple de réalisation de la 20 présente description ; la figure 4 est un organigramme représentant plus en détail des opérations dans un procédé de conception de circuits 3D selon un exemple de réalisation de la présente description ; et 25 la figure 5 illustre un dispositif de calcul pour générer une représentation de circuits 3D selon un exemple de réalisation de la présente description. Description détaillée 30 Dans la description suivante, certains modes de réalisation vont être décrits sur la base de la conception d'un circuit 3D qui utilise une technologie 3D monolithique. Une telle technologie est décrite plus en détail dans la publication de P. Batude et at., intitulée "Demonstration of low-temperature 3D sequential FDSOI integration down to 50 nm gate level", VLSI 3028637 B13593FR - DD15524 7 Technology (VLSIT), symposium on, IEEE, 2011, dont le contenu est considéré comme inclus ici dans les limites autorisées par la loi. Une telle technologie permet par exemple des via 3D ayant des diamètres aussi faibles que 0,1 à 0,25 gm, un pas aussi faible 5 que 0,2 à 0,5 gm, et une densité atteignant 25 millions par mm2. Cependant, il apparaîtra clairement à l'homme de l'art que les modes de réalisation décrits ici pourraient être appliqués à d'autres technologies 3D, comme : la technologie cuivre sur cuivre, qui est par exemple décrite plus en détail dans la 10 publication de R. Taibi, et al., intitulée "Full Characterization of Cu/Cu Direct Bonding for 3D Integration", Electronic Components and Technology Conference (ECTC), 2010 Proceedings 60th. IEEE, 2010, dont le contenu est considéré comme inclus ici dans les limites autorisées par la loi ; et la technologie 3D à haute 15 densité par l'intermédiaire de vias de silicium (HD-TSV), qui est par exemple décrite plus en détail dans la publication de H. Chaabouni, et al., intitulée "Investigation on TSV impact on 65 nm CMOS devices and circuits", Electron Devices Meeting (IEDM), IEEE International, 2010, dont le contenu est considéré comme 20 inclus ici dans les limites autorisées par la loi. La figure 1 est une vue en coupe d'une portion 100 d'un circuit intégré 3D monolithique selon un exemple de réalisation dans lequel il y a deux niveaux, un niveau inférieur 102 et un niveau supérieur 104. Alors qu'un circuit intégré 2D comprend en 25 général une seule couche semi-conductrice dans laquelle des transistors sont formés dans sensiblement le même plan, dans un circuit intégré 3D, chaque niveau comprend une couche semiconductrice 106. Les couches semi-conductrices 106 sont par exemple en silicium, et chaque niveau comprend aussi par exemple 30 une couche métallique 108, connectant des dispositifs dans la couche semi-conductrice 106. Des dispositifs CMOS (MOS complémentaire) 110 sont répartis dans la couche semi-conductrice 106, et correspondent par exemple à des cellules standard constituées de transistors 35 112. Conne cela est connu de l'homme de l'art, une cellule standard 3028637 B13593FR - DD15524 8 est un groupe de transistors et d'interconnexions qui permet de réaliser une fonction booléenne ou une fonction de mémorisation spécifiques. Pendant la synthèse du circuit, on utilise en général une librairie de cellules standard dans laquelle chaque cellule 5 standard est représentée par des données décrivant ses caractéristiques. Par exemple, les caractéristiques peuvent inclure la fonction booléenne de la cellule standard, représentée par exemple par une table de vérité ou similaire, et la conception physique de la cellule standard, représentée par exemple par une 10 liste de connexions des transistors et/ou d'autres dispositifs qui mettent en oeuvre la cellule standard, et/ou par un tracé. Les couches métalliques 108 comprennent des interconnexions métalliques 114, par exemple constituées de cuivre ou d'un autre matériau conducteur. Certaines des interconnexions 15 connectent des transistors dans une cellule standard, tandis que d'autres forment des fils d'interconnexion entre cellules standard. En outre, deux vias de connexion 116, appelés aussi ici vias 3D, sont représentés en figure 1 et assurent des interconnexions entre les cellules standard 110 se trouvant dans des niveaux 20 différents. Comme cela a été mentionné précédemment, les vias 3D 116 ont par exemple des diamètres dans la plage de 0,1 à 0,25 gm dans le cas de la technologie 3D monolithique. Dans le cas de la technologie HD-TSV ou de la technologie cuivre sur cuivre, les via 3D 116 ont par exemple des diamètres d'environ 3 gm. 25 Comparé à un circuit 2D, un avantage d'un circuit 3D est que la surface peut être réduite. En outre, comme cela va être décrit plus en détail ci-après, il est possible d'améliorer les performances en réduisant de façon significative les longueurs de fils dans le circuit. 30' Pendant la conception d'un circuit 3D, comme celui de la figure 2, le circuit est par exemple d'abord généré sous forme d'une liste d'interconnexions 2D définissant les diverses cellules standard qui doivent former le circuit dans une mise en oeuvre 2D. La liste d'interconnexions 2D est ensuite par exemple 3028637 B13593FR - DD15524 9 partitionnée pour définir les cellules standard qui doivent former chaque niveau du circuit 3D. La figure 2 est un organigramme représentant des opérations dans un procédé de conception de circuits 3D, et en 5 particulier dans un procédé de génération d'une représentation de circuits 3D par partitionnement d'une liste d'interconnexions 2D en niveaux d'un circuit 3D. Le procédé est par exemple mis en oeuvre par du logiciel, en d'autres termes par un dispositif de traitement sous le contrôle d'instructions se trouvant dans une 10 mémoire d'instructions. La liste d'interconnexions 2D a par exemple été convertie en une représentation hypergraphe. Comme cela va être décrit plus en détail ci-après, une représentation hypergraphe est constituée de noeuds sommets qui représentent des éléments de 15 circuit, et d'hyper-arêtes qui représentent des fils d'interconnexion entre les éléments de circuit. Le terme "élément de circuit" est utilisé ici pour désigner toute granularité de dispositifs dans le circuit, qui pourraient correspondre à des dispositifs semi-conducteurs individuels, comme des transistors, 20 des condensateurs ou des résistances, ou à des groupes de dispositifs semi-conducteurs, comme des portes logiques ou des dispositifs plus gros, par exemple mis en oeuvre par des cellules standard. Dans le cas de condensateurs et de résistances, ils sont par exemple définis par une liste d'interconnexions synthétisée, 25 en d'autres termes une liste d'interconnexions générée par un processus de synthèse sur la base de librairies de cellules standard. Dans le cas de transistors, une liste d'interconnexions plus détaillée, comme une liste d'interconnexions SPICE, est par exemple utilisée pour définir les transistors et permettre 30 d'estimer les interconnexions de câblage entre les transistors. La représentation hypergraphe permet par exemple d'appliquer une pondération aux noeuds sommets, et aussi aux hyper-arrêtes. On supposera ici, qu'au moins les hyper-arrêtes ont été pondérées. Le poids est par exemple basé sur le gain de 35 performance potentiel qui pourrait être obtenu si le fil est 3028637 B13593FR - DD15524 10 remplacé par un via 3D, et plus le gain de performance potentiel est élevé, plus la pondération est élevée. La caractéristique de performance principale d'un fil est sa longueur, puisque plus le fil est longi plus sa valeur RC est grande, et donc plus le délai 5 et la consommation d'énergie du fil sont grands. Chaque poids est par conséquent généré par exemple sur la base de la longueur du fil d'interconnexion correspondant et/ou du délai de propagation du fil d'interconnexion correspondant. A la place ou en plus, les fils pourraient être pondérés sur la base de leur niveau de 10 priorité au vu des signaux qu'ils propagent, le poids indiquant par exemple le degré avec lequel le fil représente un chemin de transmission critique dans la conception de circuit 2D. Des niveaux de priorité sont par exemple affectés aux chemins critiques de la conception, comme par exemple le signal d'horloge, 15 le signal de réinitialisation et/ou les signaux de commande. Ces signaux sont spécifiques à chaque conception. Il apparaîtra clairement à l'homme de l'art que, plutôt qu'une représentation hypergraphe, on pourrait utiliser d'autres représentations du circuit 2D qui permettent d'appliquer une 20 pondération aux fils de connexion. On supposera que le nombre de niveaux dans la représentation de circuit 3D a été choisi par un utilisateur ou déterminé d'une autre façon. En outre, bien que certains éléments de circuit puissent être fixés à des niveaux particuliers avant 25 le partitionnement, on supposera que tous les éléments de circuit non placés de la liste d'interconnexions 2D sontinitialement affectés à un premier niveau de la représentation de circuit 3D. Dans une première opération 201, un premier fil de la liste d'interconnexions 2D, interconnectant au moins des premier 30 et deuxième éléments de circuit dans le premier niveau, et qui a un poids supérieur à un premier seuil WTH1, est sélectionné. Dans certains modes de réalisation, le fil peut en outre interconnecter les premier et deuxième éléments de circuits à un ou plusieurs autres éléments de circuit. Cette sélection est par exemple faite 35 en classant les fils d'interconnexion dans un ordre basé sur leur 3028637 B13593R - DD15524 11 poids, et en sélectionnant initialement le fil d'interconnexion ayant le rang le plus élevé, en d'autres termes, le fil ayant le poids le plus élevé. Comme on va le décrire plus en détail ci-après, le seuil WTH1 est par exemple choisi sur la base de la 5 performance d'un via 3D dans la technologie donnée par rapport à un fil d'interconnexion ayant une pondération donnée. Dans une deuxième opération 202, l'un des premier et deuxième éléments de circuit est déplacé vers un autre niveau de la conception de circuit 3D, et le fil d'interconnexion sélec- 10 tionné est remplacé par un via 3D. Le choix entre le déplacement du premier ou du deuxième élément de circuit vers l'autre niveau est par exemple basé sur la pondération des autres fils d'interconnexion de chaque élément de circuit, et/ou sur d'autres caractéristiques physiques des premier et deuxième éléments de 15 circuit, comme leur surface ou leur consommation d'énergie. En outre, dans le cas où le fil d'interconnexion sélectionné interconnecte plus que deux éléments de circuit, on peut déplacer plus qu'un seul des éléments de circuit vers l'autre niveau. Dans un mode de réalisation, jusqu'à la moitié du nombre d'éléments de 20 circuit interconnectés par le fil sélectionné est déplacée vers l'autre niveau. Le fil d'interconnexion sélectionné est coupé, en d'autres termes il est désigné comme étant remplacé par un via 3D entre le premier niveau et l'autre niveau. En outre, tous les 25 autres fils d'interconnexion connectant l'élément de circuit déplacé à d'autres éléments de circuit dans le premier niveau seront aussi coupés, et remplacés par des vias 3D. Dans une troisième opération 203, on détermine s'il y a d'autres fils d'interconnexion dans le premier niveau qui ont un 30 poids supérieur au seuil WTH1- Si oui, les opérations 201 et 202 sont répétées pour un nouveau fil d'interconnexion dans le premier niveau. Ces opérations sont par exemple répétées jusqu'à ce qu'il n'y ait plus de fils dans le premier niveau ayant une pondération supérieure au seuil WTH1- Lorsque c'est le cas, l'opération 35 suivante après l'opération 203 va être une opération 204. A la 3028637 B13593FR - DD15524 12 place ou en plus, dans certains modes de réalisation l'opération 203 peut aussi contenir une vérification d'un ou plusieurs autres critères, comme une limite dans le rapport de surface ou le rapport de puissance entre les niveaux ou une limite dans le nombre de 5 vias 3D, et le procédé peut passer à l'opération 204 si un ou plusieurs de ces autres critères est satisfait. -Dans l'opération 204, le procédé peut se terminer. En variante, un ou plusieurs des fils d'interconnexion coupés peuvent être rèstaurés si leur poids était inférieur à un autre seuil 10 WTH2, leur coupure conduisant par exemple à une dégradation significative des performances. En variante ou en plus, un ou plusieurs fils d'interconnexion coupés peuvent être restaurés si le nombre global de vias 3D autorisés ou la limite de densité de vias 3D ont été dépassés, ou si une région cible ou une répartition 15 de puissance entre les niveaux n'ont pas été atteintes. La figure 3A illustre un exemple d'hypergraphe 300 dans lequel il y a cinq noeuds sommets représentant des éléments de circuit référencés 1 à 5. Ces noeuds sommets sont par exemple affectés de poids de 100, 75, 270, 320 et 140 respectivement, qui 20 dans cet exemple représentent leurs surfaces respectives. En outre, des hyper-arêtes sont représentées reliant les noeuds sommets et représentant des interconnexions entre les éléments de circuit. Les hyper-arêtes sont pondérées, les poids allant de 3 à 12 dans cet exemple, ce poids représentant par exemple la longueur 25 du fil correspondant. La figure 3B illustre le même hypergraphe 300 qu'en figure 3A, et illustre aussi, par une ligne en pointillés 302, un partitionnement possible des éléments de circuit, en deux niveaux si le critère principal est l'égalisation de la surface dans 30 chacun des niveaux. En effet, les éléments de circuits 1, 2, 3 sont regroupés, ce qui conduit à un poids de surface total de 445, qui est proche du poids de surface total de 460 des éléments de circuits 4 et 5 restants. Toutefois, les fils ayant des poids de 3 et 4 sont coupés en accord avec cette stratégie de 35 partitionnement, et ceux ayant des poids de 10 et 12 n'ont pas 3028637 B13593FR - DD15524 13 été coupés, ce qui implique de relativement mauvaises performances du circuit 3D résultant de cette conception en termes de délai et de consommation d'énergie. La figure 3C illustre aussi le même hypergraphe 300 5 qu'en figure 3A, et illustre, par une ligne en pointillés 304, un partitionnement des éléments de circuit. en deux niveaux en accord avec le procédé de partitionnement décrit ici sur la base des poids des fils d'interconnexion. Ainsi, les fils pondérés 10 et 12 sont coupés, ainsi que des fils pondérés 6 et 7, et les fils 10 pondérés 3, 4 et 5 restent intacts, ce qui implique de meilleures performances du circuit 3D résultant de cette conception en termes de délai et de consolimation d'énergie, comparé au cas de la figure 3B. La figure 4 est un organigramme illustrant des 15 opérations dans un procédé de conception de circuit 3D selon un exemple de réalisation. Dans une première opération 401, la liste d'interconnexions 2D est générée, par exemple par un concepteur de circuit utilisant une librairie de cellules standard. 20 Dans une opération suivante 402, la liste d'inter- connexions 2D est partitionnée. Cela implique par exemple des sous-opérations 403 à 416, comme on va le décrire maintenant. Dans l'opération 403, la liste d'interconnexions 2D est convertie en une représentation hypergraphe, 25 représentation appropriée. Dans une opération OU une autre suivante 404, l'hypergraphe est pondéré avec des poids à utiliser pendant l'algorithme de partitionnement. Par exemple, au moins chaque hyper-arête de l'hypergraphe est pondérée avec une valeur numérique représentant son 30 poids. Comme cela a été décrit précédemment, les poids sont par exemple basés sur les caractéristiques physiques des fils correspondants. Dans le cas où chaque fil est pondéré sur la base de la longueur du fil, les longueurs de fil peuvent être déterminées en réalisant une opération de placement routage sur 35 la liste d'interconnexions 2D. En variante, un modèle de longueur 3028637 B13593FR - DD15524 14 de fil,en demi-périmètre (HPWL) pourrait être utilisé pour estimer les longueurs de fil, selon lequel la longueur de fil de chaque interconnexion est par exemple calculée sur la base de l'addition de la largeur et de la hauteur des cellules standard qu'il 5 connecte. La largeur et la hauteur des cellules standard sont par exemple définies dans la librairie de cellules standard. Additionnellement, chaque sommet peut être pondéré sur la base de caractéristiques physiques de l'élément de circuit correspondant, comme sa surface de cellule physique, son courant 10 de fuite, ou sa consommation d'énergie interne. Dans une opération suivante 405, un partitionnement de l'hypergraphe est réalisé. Ces opérations impliquent des sous-opérations 406 à 415. Dans l'opération 406, une liste de "cellules fixes" est 15 par exemple générée, listant les cellules qui doivent être placées dans certains niveaux du circuit 3D, et donnant une indication du niveau dans lequel elles doivent être placées. Cette liste est par exemple définie par l'utilisateur, et peut être générée automatiquement sur la base d'un fichier de spécification d'utili- 20 sateur. Par exemple, tous les ports de la conception pourraient être situés dans l'un des niveaux, et ainsi on pourrait souhaiter que tous les éléments de circuits connectés à des ports soient localisés dans ce niveau. En plus ou à la place, la conception du circuit peut comprendre un arbre d'horloge synchrone dans l'un 25 des niveaux, et ainsi toutes les cellules standard pilotées par horloge peuvent être fixées dans ce niveau et font partie de la liste de cellules fixes. Dans une opération suivante 407, l'algorithme de partitionnement multi-seuil décrit ci-avant et basé sur des seuils 30 de poids WTH1 et WTH2 est mis en oeuvre. Cette opération implique des sous-opérations 408 à 414. Dans l'opération 408, les fils d'interconnexion sont par exemple classés dans l'ordre décroissant sur la base de leurs poids respectifs. Par exemple, les fils d'interconnexion sont 35 disposés du plus long au plus court. 3028637 B13593FR - DD15524 15 Dans une opération suivante 409, les cellules fixées indiquées par la liste générée dans l'opération 406 sont par exemple marquées. Par exemple, les cellules se trouvant dans la liste "cellules fixes" générée dans l'opération 406 sont iden- 5 tifiées de telle sorte que ces cellules n'aillent pas être transférées d'un niveau vers un autre pendant les opérations de partitionnement ultérieures. Dans une opération ultérieure 410, les fils d'interconnexion ayant des pondérations supérieures au seuil WTH1 sont 10 coupés, et remplacés par des vias, comme cela a été décrit précé- demment. Cette opération est par exemple itérative, la liste de connexions étant réévaluée après chaque coupe, et par exemple peut s'arrêter lorsqu'il n'y a plus de fils ayant des pondérations supérieures à WTH1, ou lorsqu'un autre critère, comme un rapport 15 de surface AR, a été satisfait. Dans une opération suivante 411, toutes les coupes de fils d'interconnexion ayant une pondération inférieure au seuil WTH2 sont par exemple restaurées. Le seuil WTH2 est différent du seuil WTH1, par exemple inférieur. Par exemple, une valeur de 20 poids WU peut être définie pour correspondre à un fil d'interconnexion ayant une performance équivalente à un via 3D. Le seuil WTH1 est par exemple choisi supérieur à Wv, et le seuil WTH2 est par exemple choisi égal ou inférieur à W. Dans une opération suivante 412, le compte de vias 3D 25 est fixé optionnellement, si une limite dans le nombre ou la densité des via 3D a été dépassée. Cela est par exemple obtenu en restaurant un ou plusieurs des fils d'interconnexion, en commençant par ceux ayant le poids le plus faible. Par exemple, les fils sont classés dans l'ordre du poids le plus faible au poids le plus 30 fort, et les fils sont restaurés en commençant à partir du poids le plus faible jusqu'à ce que le nombre de vias 3D ou la limite de densité ne soient plus dépassés. Dans une opération suivante 413, le rapport de surface entre les niveaux dans la conception 3D est fixé optionnellement, 35 si un rapport de surface souhaité n'a pas été atteint. Par exemple, 3028637 B13593FR - DD15524 16 il peut être souhaité que le rapport de surface dans le cas d'une conception à deux niveaux tombe entre des limites a et b, où a est par exemple 40/60, et b est 60/40, en d'autres termes un niveau donné n'a pas moins de 40 % ni plus de 60 % de la surface 5 totale. Si le rapport de surface souhaité n'a pas été atteint, un ou plusieurs des fils d'interconnexion peuvent être restaurés, ici encore en commençant par ceux ayant le poids le plus faible. En variante, afin de réduire le nombre de fils d'interconnexion qui sont restaurés, les fils qui sont associés aux éléments de 10 circuit ayant la surface la plus élevée pourraient être restaurés en premier. Bien que cela ne soit pas représenté en figure 4, plutôt que, ou en plus de fixer un rapport de surface entre les niveaux, un rapport de puissance peut aussi être fixé de façon similaire, 15 en supposant que la puissance consommée par chaque élément de circuit soit connue. Dans une opération suivante 414, la partition finale en niveaux du circuit 3D est par exemple générée, accompagnée de son rapport ou de ses rapports de surface entre les niveaux, et du 20 compte de vias 3D. Après l'algorithme de partitionnement multi-seuil 407, l'opération suivante est l'opération 415, dans laquelle les fichiers d'hypergraphes partitionnés sont générés, achevant ainsi le procédé de partitionnement multi-seuil. 25 Après l'opération de partitionnement d'hypergraphe 405, l'opération suivante est l'opération 416, dans laquelle l'hypergraphe est par exemple reconverti en une liste d'interconnexions, la liste d'interconnexions étant une liste d'interconnexions partitionnée 3D définissant le circuit 2D associé à chaque niveau 30 de la conception 3D. La liste d'interconnexions 3D fait par exemple une distinction entre les fils d'interconnexion se trouvant dans un même niveau, et les vias 3D entre les niveaux. Par exemple, la liste d'interconnexions 3D comprend une liste d'interconnexions 2D pour chaque niveau, et une liste d'inter- 35 connexions d'un niveau hiérarchique supé'rieur définissant les 3028637 B13593FR - DD15524 17 connexions entre les listes d'interconnexions 2D, chacune de ces connexions représentant un via 3D. Après le partitionnement de la liste d'interconnexions 2D pour générer la liste d'interconnexions partitionnée 3D par 5 les opérations 402, une opération suivante 417 implique par exemple la réalisation d'un placement routage sur la base de la liste d'interconnexions partitionnée 3D. Le placement routage implique par exemple un premier stade consistant à décider où placer chaque élément de circuit dans son niveau respectif, et un 10 deuxième stade consistant à concevoir les fils d'interconnexion et les vias 3D pour interconnecter les éléments du circuit. Par exemple, comme cela a été mentionné précédemment, la liste d'interconnexions 3D peut comprendre une liste d'interconnexions 2D pour chaque niveau, et une liste d'interconnexions de niveau 15 hiérarchique supérieur, et cette étape implique de réaliser un placement routage sur chaque liste d'interconnexions 2D, les interconnexions entre les listes d'interconnexions 2D indiquées par la liste d'interconnexions de niveau supérieur étant mise en oeuvre sous forme de vias. 20 Dans une opération suivante 418, un ou plusieurs circuits 3D sont par exemple fabriqués sur la base de la conception de circuit 3D générée par l'opération de placement routage 417. La figure 5 illustre schématiquement un dispositif de calcul 500 pour mettre en oeuvre le procédé de partitionnement de 25 la figure 2 et/ou de l'opération 402 de la figure 4 comme cela a été décrit précédemment. Le dispositif de calcul 500 comprend par exemple un dispositif de traitement 502, qui peut comprendre un ou plusieurs processeurs sous le contrôle d'instructions mémorisées par une 30 mémoire d'instructions 504. Une mémoire 506, qui peut être intégrée avec la mémoire 504 ou être un dispositif mémoire distinct, est aussi couplée au dispositif de traitement 502, et mémorise par exemple la liste d'interconnexions 2D avant le partitionnement, et la liste d'interconnexions partitionnée 3D 3028637 B13593FR - DD15524 18 après la mise en oeuvre du procédé de partitionnement par le dispositif de traitement 502. Une interface de communication 508 est aussi par exemple prévue pour coupler le dispositif de traitement 502 à un ou 5 plusieurs réseaux et par exemple, permettre de transmettre la conception de circuits 3D à une usine pour la fabrication. Un ou plusieurs dispositifs d'entrée 510 et un afficheur 512 peuvent aussi assurer une interface d'utilisateur permettant à un utilisateur d'introduire certains paramètres pendant le 10 procédé de partitionnement, par exemple pour définir le nombre de niveaux du circuit 3D, et/ou pour indiquer les éléments de circuit qui doivent être fixés à un niveau donné. Un avantage des procédés de partitionnement 3D décrits ici, basés sur des fils d'interconnexion pondérés, est qu'il 15 conduit à des circuits 3D ayant de meilleures performances que des circuits générés en utilisant d'autres procédés de parti-tionnement. Avec la description ainsi faite d'au moins un mode de réalisation illustratif, diverses altérations, modifications et 20 améliorations apparaîtront facilement à l'homme de l'art. Par exemple, bien que le cas d'une conception de circuits 3D comportant deux niveaux ait été décrit ici, la façon dont ce procédé pourrait être étendu de façon plus générale à des circuits 3D comportant N niveaux, N étant un entier supérieur ou 25 égal à 2, apparaîtra clairement à l'homme de l'art. Par exemple, dans un mode de réalisation, l'algorithme décrit ici en relation avec la figure 2 est appliqué à un premier niveau en utilisant un seuil de longueur de fil relativement élevé afin de transférer environ 1/N du circuit 2D vers un deuxième niveau adjacent, par 30 exemple sur la base du critère de surface ou de consommation d'énergie de chaque élément de circuit. L'algorithme est ensuite par exemple appliqué de nouveau au premier niveau en utilisant un seuil de longueur de fil plus bas afin de transférer environ une autre proportion de 1/N du circuit 2D initial vers un troisième 35 niveau adjacent, ici encore sur la base du critère de surface ou 3028637 B13593FR - DD15524 19 de consommation d'énergie. Ce processus est par exemple répété jusqu'à ce qu'environ 1/N du circuit reste dans le premier niveau. En outre, à chaque fois que l'algorithme est appliqué à deux niveaux, le seuil de longueur de fil est par exemple ajusté sur 5 la base de la distance séparant les deux niveaux. En effet, cette distance va déterminer la longueur des vias 3D, et ainsi leurs paramètres de technologie, comme leurs effets parasites. En outre, bien qu'on ait décrit un procédé dans lequel des fils d'interconnexion sélectionnés sont coupés, puis certains 10 fils sont restaurés s'ils ont une longueur inférieure à un autre seuil de longueur WTH2, des algorithmes alternatifs seraient possibles. Par exemple, il sera possible de regrouper les éléments de circuit interconnectés par des fils plus courts que l'autre seuil de longueur WTH2, et de traiter chaque groupe d'éléments de 15 circuit comme un seul élément de circuit lors de l'application du processus de partitionnement décrit ici. Toutefois, un avantage de laisser des interconnexions courtes être coupées puis restaurées est que, par ce processus, les deux éléments de circuit connectés par l'interconnexion courte peuvent être déplacés vers un autre 20 niveau, plutôt que de rester dans le niveau initial, ce qui conduit à un partitionnement mieux équilibré. En outre, bien qu'on ait décrit des modes de réalisation basés sur la technologie de transistors MOS, il apparaîtra clairement à l'homme de l'art que les techniques décrites ici pourraient 25 être appliquées à d'autres technologies. REVENDICATIONS1. Procédé de conception de circuit 3D mis en oeuvre par un dispositif de traitement, le procédé comprenant : partitionner une représentation de circuit 2D en deux ou plusieurs niveaux d'une représentation de circuit 3D, la 5 représentation de circuit 2D définissant une pluralité d'éléments de circuit et une pluralité de fils d'interconnexion, chaque fil d'interconnexion représentant une connexion électrique entre deux ou plusieurs éléments de circuit, chaque fil d'interconnexion étant pondéré sur la base d'au moins un élément parmi : sa 10 longueur ; son délai de propagation ; et son niveau de priorité sur la base de l'étendue dans laquelle il représente un chemin de transmission critique, la représentation de circuit 2D formant initialement un premier niveau de la représentation de circuit 3D, le partitionnement comprenant : 15 a) sélectionner un premier fil, interconnectant au moins des premier et deuxième éléments de circuit dans le premier niveau, qui a un poids supérieur à un premier seuil (WTH1) ; b) déplacer l'un des premier et deuxième éléments de circuit connectés par le fil sélectionné vers un autre niveau de 20 la représentation de circuit 3D et remplacer le fil d'interconnexion par un via de connexion entre le premier niveau et l'autre niveau ; et c) répéter a) et b) pour un ou plusieurs autres fils d'interconnexion du premier niveau. 25 2. Procédé selon la revendication 1, dans lequel a) et b) sont répétés jusqu'à ce qu'une ou plusieurs des conditions suivantes aient été satisfaites il n'y plus de fils d'interconnexion dans le premier niveau ayant un poids supérieur au premier seuil ; 30 le compte de vias de connexion a atteint ou dépassé une limite ; un certain rapport de surface entre le premier niveau et un ou plusieurs autres niveaux a été atteint ; et 3028637 B13593FR DD15524 21 un certain rapport de puissance entre le premier niveau et un ou plusieurs autres niveaux a été atteint. 3. Procédé selon la revendication 1 ou 2, dans lequel la sélection d'un premier fil comprend un classement des fils 5 d'interconnexion sur la base de leurs poids, et la sélection du fil d'interconnexion ayant le poids le plus élevé. 4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel les fils d'interconnexion sont pondérés sur la base de leurs longueurs, et dans lequel le premier seuil est un 10 seuil de longueur. 5. Procédé Selon la revendication 4, dans lequel la longueur des fils est estimée en utilisant un modèle de longueur de fil à demi-périmètre (HPWL). 6. Procédé selon l'une quelconque des revendications 1 15 à 5, conprenant en outre : d) identifier dans la représentation du circuit 3D un fil d'interconnexion ayant un poids inférieur à un deuxième seuil (WTH2) et qui a été remplacé par un via de connexion e) restaurer le fil d'interconnexion identifié en 20 remplaçant le via de connexion par un fil d'interconnexion entre des éléments de circuit se trouvant dans un même niveau ; et f) répéter d) et e) jusqu'à ce qu'il n'y ait plus de vias de connexion remplaçant des fils d'interconnexion qui ont un poids inférieur au deuxième seuil (WTH2)- 25 7. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel chaque élément de circuit dans la représentation de circuit 2D comprend une indication d'au moins un élément pa.uui sa surface ; et sa consommation d'énergie ; le procédé comprenant en outre : 30 vérifier si une limite parmi une limite de rapport de surface, une limite de rapport de consommation d'énergie et une limite de compte de vias de connexion, a été dépassée dans la représentation de circuit 3D, et si oui restaurer un ou plusieurs fils d'interconnexion en remplaçant le via de connexion par un 3028637 B13593FR - DD15524 22 fil d'interconnexion entre des éléments de circuit se trouvant dans un même niveau. 8. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel la représentation de circuit 2D est une liste d'interconnexions 2D, et le partitionnement de la représentation de circuit 2D comprend la conversion de la liste d'interconnexions 2D en un hypergraphe ayant des sommets correspondant aux éléments de circuit de la représentation de circuit 2D, et des arêtes correspondant aux fils d'interconnexion de la représentation de circuit 2D. 9. Procédé selon l'une quelconque des revendications 1 à 8, dans lequel les éléments de circuit sont des cellules standard sélectionnées dans une librairie de cellules standard. 10. Procédé selon l'une quelconque des revendications 1 15 à 8, dans lequel les éléments de circuit sont des dispositifs semi-conducteurs, au moins l'un des éléments de circuit étant un transistor. 11. Procédé selon l'une quelconque des revendications 1 à 10, comprenant en outre 20 réaliser un placement et un routage sur la repré- sentation de circuit 3D pour générer une conception de circuit 3D. 12. Procédé comprenant la fabrication d'un circuit intégré sur la base de la conception de circuit 3D générée par le 25 procédé de la revendication 11. 13. Dispositif de stockage non transitoire mémorisant un programme d'ordinateur qui, lorsqu'il est exécuté par un dispositif de traitement, amène la mise en oeuvre du procédé de l'une quelconque des revendications 1 à 11. 30 14. Dispositif de calcul comprenant : une ou plusieurs mémoires (504, 506) mémorisant des instructions et une représentation de circuit 2D ; et un dispositif de traitement (502) adapté à générer, sous le contrôle des instructions, une représentation de circuit 3D 35 en ! 3028637 B13593FR DD15524 23 partitionnant la représentation de circuit 2D en deux ou plusieurs niveaux de la représentation de circuit 3D, la représentation de circuit 2D définissant une pluralité d'éléments de circuit et une pluralité de fils d'interconnexion, chaque fil 5 d'interconnexion représentant une connexion électrique entre deux ou plusieurs éléments de circuit, chaque fil d'interconnexion étant pondéré sur la base d'au moins un élément parmi : sa longueur ; son délai de propagation ; et son niveau de priorité sur la base de l'étendue dans laquelle il représente un chemin de 10 transmission critique, la représentation de circuit 2D formant initialement un premier niveau de la représentation de circuit 3D, le partitionnement comprenant : a) sélectionner un premier fil, interconnectant au moins des premier et deuxième éléments de circuit dans le premier 15 niveau, qui a un poids supérieur à un premier seuil (wmi) b) déplacer l'un des premier et deuxième éléments dé circuit connectés par le fil sélectionné vers un autre niveau de la représentation de circuit 3D et remplacer le fil d'interconnexion par un via de connexion entre le premier niveau et 20 l'autre niveau ; et c) répéter a) et b) pour un ou plusieurs autres fils d'interconnexion du premier niveau. 15. Dispositif de calcul selon la revendication 14, dans lequel le premier fil interconnecte en outre un ou plusieurs 25 autres éléments de circuit aux premier et deuxième éléments de circuit, et b) comprend en outre le déplacement d'un ou plusieurs des autres éléments de circuit vers l'autre niveau.