Brevet FR3010811A1 — publié le 20150320

PROCEDE DE DETERMINATION DU DIMENSIONNEMENT DES TRANSISTORS D'UN CIRCUIT ANALOGIQUE La présente invention concerne le domaine des systèmes sur puces ou SoC pour System on Chip en anglais, et plus précisément la conception structurée des blocs IP analogiques intégrés dans un SoC, où les blocs IP (« IP » pour Intellectual Property en anglais) sont des blocs pré-caractérisés agencés particulièrement pour réaliser une ou plusieurs fonctions données. Les systèmes sur puce, ci-après « SoC » par concision ou indifféremment « circuit », sont généralement fabriqués en technologie CMOS (Complementary Metal Oxide Semiconductor en anglais, une technologie de fabrication de composants électroniques) et comprennent typiquement une partie numérique et une partie analogique. Les blocs IP numériques sont bien gérés aujourd'hui et ne sont pas développés plus avant ici. En revanche, les blocs IP analogiques, qui font généralement des fonctions d'amplification, de filtrage ou de conversion analogique <> numérique, sont généralement très difficiles à prendre en compte lors de la conception d'un SoC. Par concision, et sauf précision contraire, dans le texte qui suit, on entend donc par « bloc » un bloc IP analogique. Pour un bloc, il n'existe pas à l'heure actuelle de méthode générale ou d'outils de synthèse permettant de fournir une description comportementale dudit bloc, plus communément appelée « netlist », à partir d'une bibliothèque de cellules standards (Standard Cells en anglais) pré-caractérisées. A ce jour, pour une fonction ou un comportement donné (amplification, filtrage, conversion), la synthèse analogique se décompose essentiellement dans les trois phases suivantes : 1. trouver une structure adéquate pour la fonction donnée; 2. déterminer la valeur des paramètres de la structure retenue par le concepteur pour répondre à des spécifications électriques particulières (par exemple les largeurs -notées W- des transistors, et les polarisations de certains points du circuit doivent être calculés); et 3. dessiner les masques de la structure retenue. Pour la phase de dimensionnement, on utilise généralement un optimiseur et un évaluateur de performances qui interagissent en boucle. La synthèse automatisée des circuits analogiques est classées typiquement dans les deux catégories suivantes : A. l'optimisation basée sur la simulation, et B. l'optimisation basée sur la connaissance. La catégorie A (simulation) offre l'avantage d'utiliser des modèles standards complexes implantés dans un simulateur. Cependant, l'inconvénient est de devoir lancer le simulateur de nombreuses fois, ce qui implique un temps de synthèse conséquent (plusieurs heures pour un circuit d'une centaine de transistor). Pour la catégorie B (connaissance), tout dépend du concepteur. La modélisation du circuit par des équations est une tâche assez longue qui dépend de plusieurs facteurs. Les relations entre les performances du circuit et les dimensions des transistors sont complexes et le temps d'analyse peut s'étendre jusqu'à plusieurs mois. Cependant, l'avantage est que la synthèse devient très rapide puisqu'on évite les simulations. Quelle que soit la catégorie de synthèse, l'utilisation d'un optimiseur peut conduire à des solutions présentant des inconvénients. La présente invention vise à cumuler les avantages des deux catégories ci- dessus. Plus précisément, l'invention concerne un procédé de détermination des valeurs de paramètres électriques des transistors d'un circuit analogique d'un système 30 sur puce, comprenant des étapes consistant à : - (100) décomposer le circuit en un ensemble de blocs dont certains au moins sont reliés entre eux, chaque bloc ayant une fonctionnalité définie et comprenant un agencement de transistors propre audit bloc ; - (110) établir le schéma électrique du circuit comprenant lesdits blocs ; - (120) définir un ensemble de contraintes électriques propres audit circuit, auxdits blocs et aux transistors de chaque bloc en fonction notamment du schéma électrique du circuit ; - (130) définir des paramètres électriques de circuit, des paramètres électriques de bloc et des paramètres électriques de transistors ; - (140) sélectionner, pour chaque transistor du circuit, un opérateur de calcul des valeurs de paramètres électriques dudit transistor, chaque opérateur de calcul permettant pour un transistor donné de calculer des valeurs de paramètres électriques de sortie en fonction dudit opérateur, de paramètres électriques d'entrée et des contraintes électriques appliquées audit transistor; (150) générer des graphes structurés de chaque bloc du circuit à partir des contraintes définies et des opérateurs choisis, chaque graphe comprenant un ensemble de noeuds ; - (151) assembler ces graphes structurés de blocs en un graphe général du circuit, en utilisant les équipotentielles dudit circuit ; - (160) identifier si l'un au moins des noeuds présente un conflit ; et - (170) émettre un signal d'alarme s'il existe un conflit. De préférence, ledit graphe structuré général comprend l'ensemble des opérateurs de calcul et des contraintes définies par le concepteur. On peut prévoir une étape (171) de représentation graphique du signal d'alarme, dans laquelle, dans le graphe structuré du circuit, l'un au moins des éléments parmi le bloc, l'opérateur et le paramètre électrique dudit opérateur à l'origine du conflit sont représentés dans une couleur prédéterminée. On peut prévoir que l'étape (160) d'identification d'un conflit comprend une étape (161) consistant à, pour un paramètre électrique donné, compter le nombre de paramètres électriques dont la valeur se propage vers ledit paramètre électrique donné, et dans lequel le signal d'alarme est émis (170) si ledit paramètre d'entrée ou de sortie d'un opérateur est défini par plus d'un autre paramètre électrique. On peut prévoir des étapes consistant à : - (101) définir, pour au moins un bloc, un ensemble d'au moins un transistor de référence et un ensemble d'au moins un transistor secondaire correspondant, et - (152) propager à l'ensemble de transistors secondaires les valeurs des paramètres électriques calculées pour le transistor de référence correspondant. De préférence, s'il existe un conflit sur une valeur de paramètre électrique d'entrée d'un opérateur, le procédé comprend une étape (162) consistant à supprimer dans les contraintes électriques définies la valeur du paramètre de bloc à l'origine du conflit. De préférence, s'il existe un conflit sur une valeur de paramètre électrique de sortie d'un opérateur, le procédé comprend une étape (163) consistant à remplacer l'opérateur sélectionné dont le paramètre de sortie est en conflit par un opérateur de remplacement tel que le paramètre de sortie de l'opérateur à l'origine du conflit soit un paramètre d'entrée de l'opérateur de remplacement. On peut prévoir une étape (180) d'évaluation consistant à calculer le point de repos du circuit analogique. On peut prévoir une étape (190) consistant à simuler le comportement dudit circuit. Selon un autre de ses objets, l'invention concerne un programme d'ordinateur comprenant des instructions de code de programme pour la mise en oeuvre du procédé selon l'invention lorsqu'il est exécuté sur un ordinateur. Le point de repos d'un transistor est défini par l'ensemble des grandeurs électriques caractérisant ledit transistor en l'absence de signaux à amplifier. Le point de repos est donc l'état du point de fonctionnement du transistor en l'absence de tout signal utile. La polarisation du transistor permet de placer le point de repos de celui-ci à une valeur désirée, sur la droite de charge de celui-ci. Le point de polarisation d'un circuit se situe à l'intersection des droites de charge lors du régime statique et lors du régime dynamique, qui permettent d'étudier le comportement du circuit. La présente invention permet de calculer automatiquement le point de polarisation d'un circuit analogique et de calculer les dimensions des transistors constituant les blocs IP analogiques d'un SoC donné. En outre, ces calculs sont effectués en respectant les hypothèses et la connaissance du concepteur du SoC. La présente invention permet de générer, tester, plusieurs procédures de calcul pour un même bloc IP analogique qu'un concepteur peut très facilement déboguer, ce qui permet en outre d'explorer éventuellement plusieurs scénarii de conception d'un même bloc IP. 15 La présente invention permet également de gérer les conflits de conception d'un bloc IP donné, comme les conflits de conception de l'assemblage de blocs IP entre eux, ce qui est particulièrement avantageux en cas de travail collaboratif par exemple. 20 La présente invention permet une représentation hiérarchique et standard pour la conception et pour la vérification d'un SoC comprenant des blocs IP analogiques. Cette représentation peut être partagée facilement et réutilisée au sein d'un groupe de développeurs de blocs IP analogiques pour corriger, évaluer et protéger la 25 connaissance liées à un bloc IP donné. Avantageusement, l'invention est indépendante de la technologie de fabrication du SoC. Elle peut donc être utilisée pour concevoir et reconcevoir un bloc IP analogique pour différentes technologies très facilement. 30 10 La présente invention permet d'augmenter la vitesse de conception de blocs IP analogiques. Outre l'aide à la conception, la présente invention permet également de simuler le comportement statique et transitoire (dynamique) des blocs IP. Cette simulation structurée permet de vérifier le comportement électrique d'un bloc IP conçu selon l'invention. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante donnée à titre d'exemple illustratif et non limitatif et faite en référence aux figures annexées dans lesquelles : - la figure 1 illustre un mode de réalisation d'un schéma électrique d'un circuit analogique, - la figure 2 illustre un mode de réalisation d'un ensemble d'opérateurs possibles selon l'invention pour les 3 transistors de référence M9AP, M1AP et M2P du bloc GMD du circuit de la figure 1, - la figure 3 illustre un mode de réalisation selon l'invention d'un graphe structuré pour le bloc GMD du circuit de la figure 1, - la figure 4 illustre un mode de réalisation selon l'invention d'un graphe structuré tronqué pour le circuit de la figure 1 présentant un conflit, - la figure 5 illustre de façon tronquée le graphe de la figure 4 généré selon un choix de conception différent, amenant à d'autres conflits, - la figure 6 illustre de façon tronquée un graphe selon l'invention résolvant les conflits du graphe de la figure 4, - la figure 7 illustre un mode de réalisation du procédé selon l'invention, et - la figure 8 illustre les résultats d'une simulation de filtres du 3ème et 5ème ordre conçus à partir du circuit de la figure 1 grâce à l'invention. La présente invention se place dans le contexte où un concepteur souhaite concevoir un SoC. A partir des contraintes liées notamment à la topologie du circuit et des hypothèses de conception du concepteur, elle permet de calculer automatiquement un no2mbre réduit, voire minimum, de paramètres électriques des transistors et leurs dimensions nécessaires au calcul du point de polarisation du circuit. Schéma électrique On prévoit une étape 110 consistant à établir le schéma électrique du circuit, par exemple grâce à un logiciel de conception de schémas électriques sur un ordinateur. L'établissement du schéma électrique du circuit est précédée d'une étape consistant à définir la topologie du circuit, c'est-à-dire à décomposer 100 le circuit global selon des niveaux hiérarchiques en un ensemble de sous-circuits ou blocs reliés entre eux et à définir l'agencement des transistors dans chaque sous-circuit, chaque bloc ayant une fonctionnalité définie. On prévoit 130 de définir des paramètres électriques de circuit, des paramètres électriques de bloc et des paramètres électriques de transistors. Dans un bloc, une pluralité de transistors peut être assemblée en un dispositif élémentaire, par exemple un miroir de courant, composé d'un petit nombre de transistors interconnectés parmi lesquels on définit un transistor de référence et des transistors secondaires. Le transistor de référence contrôle le dimensionnement et la polarisation des autres transistors au sein du dispositif élémentaire. De façon connue en soi, les paramètres électriques d'un transistor de référence définissent en effet d'une manière unique ceux des transistors secondaires par propagation des paramètres dudit transistor de référence vers les transistors secondaires. On peut prévoir 101 de définir, pour au moins un bloc, un ensemble d'au moins un transistor de référence et un ensemble d'au moins un transistor secondaire correspondant. La propriété de propagation est avantageusement utilisée dans les graphes structurés décrits ultérieurement où seuls les transistors de référence sont représentés, ce qui permet d'augmenter la vitesse de calcul. Chaque transistor ou chaque dispositif élémentaire peut être sélectionné par le concepteur dans une bibliothèque de composants. On peut prévoir 152 de propager à l'ensemble de transistors secondaires les valeurs des paramètres électriques calculées pour le transistor de référence correspondant. Par exemple sur la figure 1, on a illustré un circuit global exerçant une fonction de contrôle de la transconductance linéaire du bloc GMD avec la tension Vc, en contrôlant les drains des transitros M1AP et M1AN de façon différentielle, où la transconductance est le rapport entre la variation du courant de sortie et la variation de la tension d'entrée d'un composant ou d'un circuit. Par concision, ce circuit sert d'unique exemple de circuit pour la présente invention. Ce circuit comprend 4 blocs ou sous-circuits CMC, AMP, GMD et AMP représentés en pointillés. Chacun de ces blocs exerce une fonction donnée. En l'espèce, le bloc GMD est le coeur de la transconductance différentielle, les blocs AMP permettent un accordage en fréquences et CMC est un sous-circuit de contre réaction pour stabiliser le point d'opération. Les deux blocs AMP sont identiques et portent par conséquent la même référence (voir les contraintes d'appariement ci-après) ; ils sont reliés électriquement uniquement au bloc GMD. Le bloc CMC est relié électriquement uniquement au bloc GMD. Le schéma électrique du circuit permet de définir une partie au moins des contraintes de celui-ci. Définition des contraintes Une fois le schéma électrique du circuit terminé, on prévoit 120 de définir un ensemble de contraintes électriques à chaque niveau hiérarchique du circuit : pour le circuit global, les blocs, et les composants (transistors ou dispositifs élémentaires) des blocs. Les contraintes peuvent dépendre de l'utilisation prévue du circuit. Elles comprennent par exemple au moins l'un des éléments suivants : la tension d'alimentation, les connexions électriques (par exemple les équipotentiels), l'appariement de certains composants, et les hypothèses du concepteur. Les hypothèses ou contraintes du concepteur sont des contraintes que l'on ne peut extraire du schéma électrique d'un circuit. Il s'agit par exemple de l'ordonnancement des transistors, des contraintes linéraires (voir ci-dessous), ou du choix des opérateurs (décrits ultérieurement). Certaines au moins des hypothèses du concepteur peuvent être modifiées, alors que d'autres contraintes (typiquement la tension d'alimentation) ne peuvent pas être modifiées par le concepteur. Pour les contraintes relatives aux blocs et aux composants, on prévoit de définir au moins certaines et de préférence toutes les contraintes électriques sur l'ensemble des blocs et des transistors du circuit. Typiquement, il existe les contraintes électriques linéaires, d'appariement, d'ordonnancement et les contraintes de dimensionnement et de polarisation. - Les contraintes linéaires permettent d'exprimer les dépendances linéaires entre paramètres. Les contraintes linéaires sont inhérentes à la topologie du circuit, par exemple du fait des lois de Kirchhoff (loi des noeuds et loi des mailles), ou inhérentes au circuit, par exemple par des équipotentiels (avec ou sans connexion électrique) ou par les valeurs de courant de polarisation de référence reçues par chaque transistor (chaque transistor reçoit soit la valeur du courant de polarisation de référence, soit un multiple de cette valeur). Elles peuvent donc être définies en fonction du schéma électrique du circuit ou en fonction d'un choix de conception. - Les contraintes d'appariement, ou contraintes de matching par anglicisme, permettent de considérer comme équivalents des blocs réalisant une même fonction donnée, par exemple amplification, filtrage ou conversion. Les contraintes d'appariement permettent de considérer que le transistor de référence d'un bloc est identique au transistor équivalent dans un bloc apparié, c'est à dire de même largeur. Dans chaque bloc apparié, on définit un transistor de référence. Le calcul des dimensions du transistor de référence est appliqué au transistor apparié. Par exemple sur la figure 1, les deux blocs AMP sont appariés, les dimensions de leurs transistors de référence sont les mêmes. Par conséquent, seules les dimensions des transistors de l'un des blocs sont calculées et seul l'un des blocs AMP peut être utilisé dans le graphe structuré décrit ultérieurement. - Les contraintes d'ordonnancement, ou scheduling par anglicisme, définissent l'ordre de conception des transistors. Les contraintes d'ordonnancement sont fondées sur le schéma électrique du circuit ; elles permettent de définir l'ordre dans lequel les transistors d'un bloc sont dimensionnés. Avantageusement, on représente cet ordre de manière graphique par des graphes structurés décrits ultérieurement. De tels graphes ont été publiés dans la référence F. Javid, R. Iskander, M-M Louërat et D. Dupuis « Analog Circuits Sizing Using Bipartite Graphs », IEEE, Midwest Symposium on Circutis and Systems, August 2011. - Les contraintes de dimensionnement et de polarisation correspondent à la sélection par le concepteur d'un opérateur donné pour chaque transistor, l'opérateur permettant de calculer les paramètres électriques du transistor correspondant. Par paramètre électrique d'un transistor, on entend notamment les dimensions de celui-ci (largeur et longueur) ainsi que certaines au moins des tensions électriques de celui-ci (tension de grille, drain et source). Opérateurs On prévoit 140 de sélectionner un ensemble d'opérateurs ; chaque opérateur correspond à un transistor donné et permet de calculer des paramètres électriques dudit transistor en fonction du type d'opérateur sélectionné et de certains paramètres électriques d'entrée. Les opérateurs sont connus, par exemple de la publication R. Iskander, M-M Louërat, A. Kaiser « Hierarchical Sizing and Biaising of Analog Firm Intellectual Properties », Integration, the VLSI Journal, March 2013 - pp. 172-188; Vol 46, issue2 in press, DOI 10.1016/j.vsli.2012.01.001 ; ou de la publication F. Javid, R. Iskander, M- M Louërat « Simulation-Based Hierarchical Sizing and Biaising of Analog Firm IPs », IEEE International Behavioral Modeling and Simulation Conference, pages 43-48, September 2009. Ils permettent, sur la base du schéma électrique du circuit (figure 1) de calculer des paramètres d'un transistor donné, par exemple la tension de grille, de drain ou de source en un point particulier quelconque du circuit et la largeur du transistor correspondant. Par exemple pour le transistor M6BP (figure 1) la tension de source est reliée à la tension d'alimentation, qui est connue. La tension de grille peut être déterminée par un opérateur, par exemple l'opérateur OPVG qui permet de déterminer cette tension de grille en plus de la largeur du transistor. La connaissance de la tension de grille permet de calculer la tension de source. Réciproquement, le concepteur peut choisir de déterminer la tension de source par un opérateur, en l'espèce OPVS, et de calculer alors la tension de grille en fonction de la tension de source. Chaque opérateur calcule des paramètres électriques de sortie sur la base de paramètres électriques d'entrée et du type d'opérateur. Sur la figure 2, on a illustré par ligne un ensemble d'opérateurs possibles pour chaque transistor de référence du bloc GMD, en l'espèce M9AP, M1AP et M2P, de la figure 1. Ils se présentent sous forme de logiciel. La sélection par un concepteur d'un opérateur donné pour un transistor de référence donné permet ultérieurement de calculer les dimensions correspondantes dudit transistor de référence et de propager ces valeurs aux transistors secondaires du dispositif élémentaire auquel appartient ledit transistor de référence. A cet effet, une fois le schéma électrique réalisé et les contraintes du circuit déterminées, on prévoit de réaliser un graphe structuré correspondant aux opérateurs sélectionnés. Graphe structuré hiérarchique de bloc On prévoit 150 de réaliser un graphe structuré correspondant aux opérateurs sélectionnés pour l'ensemble des blocs d'un circuit donné. En l'espèce il s'agit d'une représentation graphique sous forme de graphe de dépendance dont les noeuds représentent les paramètres électriques des transistors, les opérateurs et les contraintes. Les arcs représentent la propagation des paramètres électriques dans le graphe. Les graphes structurés de blocs sont ensuite assemblés 151 en un graphe général du circuit, en utilisant les équipotentielles dudit circuit. Un exemple simplifié de graphe structuré hiérarchique est illustré en figure 3 qui représente un mode de réalisation d'un graphe structuré hiérarchique pour le bloc GMD du circuit de la figure 1. En l'espèce, le bloc GMD est symétrique, de sorte qu'on définit comme transistors de références les transistors M9AP, M2P et M1AP pour calculer 20 respectivement les paramètres des transistors secondaires M9AN, M2N et M1AN. Le bloc est représenté dans une forme prédéterminée, en l'espèce un rectangle comprenant en en-tête l'identification dudit bloc, en l'espèce GMD. 25 Chaque transistor est représenté dans une forme prédéterminée, en l'espèce un rectangle, comprenant en en-tête l'identification dudit transistor, par exemple M1AP. L'appariement entre transistors est également représenté par une forme prédéterminée, en l'espèce un rectangle, comprenant en en-tête l'identification desdits transistors reliés entre eux par un symbole prédéterminé, en l'espèce le symbole « _ ». 30 Par exemple on représente par M9AP_M9AN l'appariement entre le transistor M9AP et le transistor M9AN, et de même pour M1AP_M1AN ou M2P_M2N. Les paramètres électriques d'entrée et de sortie d'un opérateur pour un transistor donné sont représentés par une forme prédéterminée, en l'espèce des cercles ou ellipses, chaque cercle ou ellipse comprenant un paramètre unique dont le libellé illustre ledit paramètre, par exemple Vd pour la tension de drain, L pour la largeur, Vg pour la tension de grille, W pour la largeur, Id pour courant terminal de drain, Vs pour la tension de source, L pour la longueur. Les paramètres représentant les contraintes dudit bloc sont disposées, par convention, en haut de graphe structuré et disposées dans une forme prédéterminée, en l'espèce un rectangle, et identifiées comme contraintes de bloc, en l'espèce par l'en-tête « GMD Input Parameters ». Certains paramètres électriques sont reliés entre eux par des flèches. Pour un opérateur donné, le sens des flèches entre les paramètres et ledit opérateur indique si les paramètres sont des paramètres d'entrée ou des paramètres de sortie. Deux paramètres électriques peuvent être reliés entre eux par l'intermédiaire d'une fonction mathématique représentant les contraintes associées. La fonction mathématique est illustrée dans une forme prédéterminée, en l'espèce un carré, comprenant un symbole de ladite fonction mathématique. Les rectangles marqués par exemple « eq1 », « eq2 », etc. ou plus généralement « eqN » représentent les contraintes établies par le concepteur. Par exemple, l'équation « eq1 » située dans le rectangle « GMD Input Parameters » de la figure 3 4 ou dans le rectangle « AMP1 Input Parameters (Pin)» de la figure 4 est définie par : eq1 : L_M1AP = L * K1 où L_M1AP est la longueur du transistor M1AP de la figure 1, L et K1 sont deux paramètres définis par le concepteur. Les rectangles marqués « x 1 », « x (-1) » ou plus généralement « x N » correspondent à des fonctions de multiplication par un facteur N, qui permettent d'établir des relations entre les courants des transistors du circuit. Par exemple, le noeud labellisé « x (-1) » dans la figure 3 représente l'équation suivante : Id M1AP = Id_M9AP * (-1) où Id _ M1AP et Id _M9AP sont respectivement les courants des transistors M1AP et M9AP de la figure 1. Enfin, les rectangles marqués « = » expriment l'égalité de deux (ou plus) paramètres. Les équipotentielles (i.e. connexions électriques) du circuit sont représentées par de tels rectangles. Par exemple, la valeur du courant de polarisation Ibias est égale à la valeur du courant Id du transistor M9AP. Cette valeur du courant Id est un paramètre d'entrée de l'opérateur OPVG(VEG) dudit transistor M9AP. Parallèlement, cette valeur du courant Id du transistor M9AP est multipliée par la fonction mathématique (-1) comme valeur de paramètre d'entrée Id de l'opérateur OPW(VG,VS) du transistor M1AP. Plus généralement, les flèches correspondent aux contraintes et illustrent la propagation de la valeur d'un paramètre. Elles sont générées automatiquement. Elles peuvent relier les paramètres d'un transistor : - à un autre transistor du même bloc, - aux contraintes du bloc aux paramètres d'un autre bloc. Les valeurs des paramètres électriques d'entrée sont connues car imposées ou fonction d'un résultat de calcul précédent. Par exemple : - la valeur Vg du transistor M1AP est imposée; en l'espèce elle est égale à la valeur Vg définie par les contraintes du bloc GMD dans le rectangle « GMD Input Parameters » qui représente les contraintes imposées par le concepteur pour le bloc GMD ; - la valeur Id du transistor M1AP est calculée à partir de la valeur Id du transistor M9AP dont elle est multipliée par (-1). Les valeurs des paramètres électriques de sortie sont calculées par un opérateur. Par exemple les paramètres de sortie de l'opérateur OPW(VG, VS) pour le transistor M1AP sont Vb (pour tension de masse ou bulk par anglicisme), Vth (pour tension de seuil) et W (pour largeur). Les valeurs de ces paramètres de sortie sont calculées par ledit opérateur en fonction des valeurs des paramètres d'entrée. Chaque opérateur est représenté dans une forme prédéterminée, en l'espèce un rectangle, comprenant en en-tête l'identification dudit opérateur, par exemple OPW(VG,VS) pour le transistor M1AP (figure 3). Tous les opérateurs sont configurés pour calculer comme paramètre de sortie au moins la largeur W du transistor correspondant. De préférence, tous les opérateurs sont en outre configurés pour calculer comme paramètre de sortie au moins la tension de seuil Vth du transistor correspondant. Le calcul de la tension de bulk Vb, de la tension de grille Vg ou de la tension de source Vs dépend typiquement de l'opérateur sélectionné. Bien entendu, d'autres formes que les carrés, les rectangles et les cercles peuvent être choisies. La disposition graphique des transistors les uns par rapport aux autres répond aux contraintes d'ordonnancement. Par convention on définit que le graphe structuré est lu de haut en bas. En l'espèce le transistor M9AP est donc créé avant le transistor M 1AP, lui-même créé avant le transistor M2P. Pour un bloc donné, l'ordre de conception des transistors peut être défini en fonction du schéma électrique du circuit. De préférence, les transistors sont réalisés par branches, où une branche est l'ensemble des transistors reliés entre eux par leur source ou leur drain. De préférence, pour une branche donnée, les transistors sont réalisés selon une séquence déterminée. Par exemple sur la figure 1, une séquence de réalisation pour la première branche de gauche du bloc AMP de gauche est la suivante : le transistor M5BP puis le transistor M7BP, puis le transistor M4BP. Cet ordre linéaire n'est pas obligatoire, on peut prévoir des modes de réalisation plus complexes où la séquence est différente : le transistor M5BP puis le transistor M4BP, puis le transistor M7BP. L'avantage d'une séquence de réalisation, donc d'une séquence de conception, réside en ce que certains paramètres des transistors peuvent se propager le long de la séquence dans une branche donnée. Par exemple sur la partie haute gauche du bloc AMP de la figure 1, la tension VC permet de calculer la tension VB7, qui permet de calculer la tension VB5. Par exemple, la branche des transistors M9AP, M2P et M1AP du bloc GMD de la figure 1 correspond à la séquence de transistors M9AP, M1AP et M2P de la figure 3. Graphe structuré hiérarchique de circuit Les contraintes définies par le concepteur pour chaque bloc peuvent amener à des conflits de conception lors de l'assemblage de blocs entre eux. En généralisant l'exemple précédent de graphe structuré pour le bloc GMD, une fois le schéma électrique du circuit défini, les contraintes définies et les opérateurs sélectionnés, on prévoit de réaliser un graphe structuré hiérarchique pour l'ensemble des blocs dudit circuit. De préférence, le graphe comprend tous les niveaux hiérarchiques : le circuit, les blocs du circuit et les transistors de chaque bloc. Par exemple la figure 4 illustre, de façon tronquée pour plus de lisibilité, un graphe structuré hiérarchique du circuit de la figure 1. Le graphe est structuré en ce que chaque bloc et chaque transistor est clairement identifié. Il est hiérarchique en ce qu'il existe une convention de lecture permettant d'ordonner les calculs des paramètres des transistors bloc par bloc. La position des blocs est déterminée par le concepteur, elle définit l'ordre de conception des sous-circuits dans le sens de lecture du graphe. Enfin le graphe est biparti en ce qu'il contient deux types de noeuds : les paramètres (représentés par des cercles) et les équations (représentées par des rectangles). Le graphe permet d'illustrer facilement les conflits éventuels dans une première phase d'évaluation et leur solution dans une deuxième phase. Une première étape consiste à obtenir le graphe correspondant de chaque bloc du circuit puis une deuxième étape consiste à obtenir le graphe correspondant au circuit. Par exemple, en référence à la figure 1, le circuit comprend trois blocs (puisque les deux blocs AMP sont appariés). Ces trois blocs sont illustrés en figure 4. S'agissant d'un circuit de contrôle de transconductance, les blocs CMC et GMD sont respectivement identifiés par Transconductor.CMC et Transconductor.GMD. Puisque les deux blocs AMP sont appariés on identifie les deux blocs AMP par Transconductor.AMP1 et Transconductor.AMP2. Une fois que le graphe est construit, il est évalué. Cette évaluation permet, grâce au schéma électrique du circuit, aux contraintes définies et selon la convention de lecture, de calculer les paramètres électriques de sortie de tous les opérateurs des transistors de l'ensemble du circuit. On parle indistinctement d'évaluation, de lecture ou d'exécution du graphe, en l'espèce par un logiciel. Cette évaluation permet de générer le calcul des dimensions des composants, les tensions jusqu'alors inconnues des connecteurs, ainsi que tous les paramètres de tous les transistors du circuit, grâce aux opérateurs sélectionnés et aux contraintes définies. Conflits de conception entre les blocs Dans le graphe il peut exister des conflits impliquant des paramètres reliant deux blocs. On prévoit 160 d'identifier les conflits éventuels, ce qui peut permettre de rendre le graphe toujours évaluable. L'identification d'un conflit peut comprendre une étape 161 consistant à, pour un paramètre électrique donné, compter le nombre de paramètres électriques dont la valeur se propage vers ledit paramètre électrique donné. Sur la figure 4 est illustré un graphe structuré tronqué correspondant au circuit de la figure 1 et pour lequel des contraintes de bloc ont été définies par le concepteur dans les rectangles « Input Parameters (Pin) » pour chaque bloc CMC, GMD et AMP ; et des opérateurs sélectionnés pour chaque transistor de référence de chaque bloc. En fonction des contraintes définies comme paramètres d'entrée des différents opérateurs et du choix des opérateurs, les paramètres de sortie de chaque opérateur sont calculés. La valeur d'un paramètre de sortie d'un opérateur peut être réutilisée (propagée) comme paramètre d'entrée pour un autre opérateur dans le sens de lecture du graphe structuré. Par exemple sur la figure 4, les premières contraintes définies sont celles du circuit global « Transconductor Input Parameters (Pin) », puis celles du bloc CMC (« CMC Input Parameters (Pin) ») dont certaines sont utilisées comme paramètres d'entrée de l'opérateur OPVG(VEG) du transistor M13. Par exemple, la valeur Vd se propage des contraintes du bloc CMC au transistor M13 comme paramètre d'entrée de l'opérateur OPVG(VEG). Puis cette valeur Vd se propage avec une contrainte d'égalité comme paramètre de sortie Vg de l'opérateur OPVG(VEG) du transistor M9AP du bloc GMD, etc. Comme cette valeur Vg est également définie comme paramètre de sortie calculée par l'opérateur OPVG(VEG) du transistor M9AP, il existe donc un conflit puisque cette valeur Vg est définie de manière non unique. En cas de conflit, on prévoit 170 de produire une alarme signifiant ce conflit. Par exemple on peut prévoir d'émettre un message dont le contenu signale l'existence d'un conflit. De préférence, on prévoit que le contenu du message identifie au moins l'opérateur et le paramètre électrique à l'origine du conflit. Alternativement ou en combinaison, on peut prévoir 171 une représentation graphique de l'alarme, par exemple par un code couleur. En l'espèce, l'un au moins des éléments parmi le bloc, l'opérateur et le paramètre électrique dudit opérateur à l'origine du conflit sont coloriés, par exemple en rouge. Le concepteur peut ainsi repérer très facilement et très rapidement les conflits de conception. Un autre exemple de conflit est illustré en figure 5 qui illustre de façon tronquée un autre mode de réalisation d'un graphe structuré du circuit de la figure 1. Dans ce cas, l'ordre de conception des sous-circuits est différent par rapport à la figure 4, ce qui peut générer des conflits différents. Sur la figure 5, la valeur Vg du paramètre d'entrée de l'opérateur OPVS(VEG, VB) du transistor M11AP du bloc CMC est définie à la fois par la valeur Vg des contraintes du bloc « CMC Input Parameters (Pin) » dudit bloc et par la valeur Vd du paramètre de sortie du transistor M9AN du bloc GMD. Il existe donc un conflit. De même la valeur Vd du paramètre d'entrée de l'opérateur OPVG(VEG) du transistor M13 du bloc CMC est définie à la fois par la valeur Vd des contraintes du bloc « CMC Input Parameters (Pin) » dudit bloc et par la valeur Vg du paramètre de sortie du transistor M9AP du bloc GMD. Il existe donc un conflit. Essentiellement deux types de conflits peuvent exister, sur les paramètres de sortie ou sur les paramètres d'entrée. Typiquement, comme chaque paramètre d'entrée et de sortie doit être défini en fonction d'un unique paramètre antérieur dans le sens de la propagation, l'identification d'un conflit consiste à détecter si un paramètre d'entrée ou de sortie d'un opérateur est défini par plus d'un paramètre, en conséquence une alarme sera produite dans ce cas. Par exemple on prévoit de compter, pour un paramètre donné, le nombre d'arcs incidents, c'est à dire qui pointent vers ou qui entrent, sur ce paramètre. Cette opération est répétée pour tous les paramètres du circuit. Résolution des conflits Comme vu ci-dessus, un conflit existe par exemple lorsque la valeur d'un paramètre est définie par plus d'une équation. Sur un paramètre d'entrée, un conflit peut exister entre un paramètre de bloc et un paramètre de sortie qui propagent tous deux leur valeur vers un même paramètre d'entrée. Dans ce cas, on prévoit 162 de supprimer l'un des paramètres de bloc ou de sortie à l'origine du conflit. De préférence, on prévoit de privilégier la réalité physique du circuit, c'est à dire de privilégier la contrainte correspondant à la réalité physique du circuit. En général, les contraintes de bloc sont définies par le concepteur et les contraintes entre bloc ou entre transistors d'un même bloc sont des contraintes physiques. De préférence, on prévoit de supprimer le paramètre de la contrainte de bloc à l'origine du conflit. Par exemple, sur la figure 4, il existe un conflit pour la valeur Vd en entrée de l'opérateur OPVG(VEG) du transistor M9AP du bloc GMD puisque cette valeur est définie à la fois par la valeur Vd du transistor M9AN et par la valeur Vd des paramètres du bloc GMD. Ce conflit est résolu comme illustré sur la figure 6 en privilégiant la réalité physique du circuit, c'est à dire en conservant la valeur Vd en entrée de l'opérateur OPVG(VEG) du transistor M9AP du bloc GMD comme étant définie par la valeur Vd du transistor M9AN uniquement et en supprimant la valeur Vd des paramètres du bloc GMD (GMD Input Parameters (Pin)). Dans le cas où un paramètre de bloc propage sa valeur vers deux paramètres dont un seulement génère un conflit, l'opérateur lié au conflit est changé pour résoudre le conflit, mais le paramètre de bloc est maintenu pour se propager vers le paramètre qui ne génère pas le conflit. Sur un paramètre de sortie, un conflit peut exister entre un paramètre dont la valeur serait calculée par deux opérateurs ou par un opérateur et par la propagation d'une valeur d'un autre paramètre électrique en fonction de certaines contraintes. Dans ce cas, on prévoit par exemple 163 de remplacer l'opérateur sélectionné dont le paramètre de sortie est en conflit par un autre opérateur, dit opérateur de remplacement. De préférence, l'opérateur de remplacement est un opérateur de même classe que celle du premier opérateur, la classe d'un opérateur définissant les tensions (grille, drain ou source) calculées par celui-ci. Par exemple, en référence à la figure 2, les opérateurs OPIDS(VEG), OPIDS(VG, VS), OPIDS(VGS, VG) et OPIDS(VGS, VS) sont de même classe. De même, on définit la classe des opérateurs OPVG et celles des opérateurs OPW. Avantageusement, on prévoit que le paramètre de sortie de l'opérateur à l'origine du conflit soit un paramètre d'entrée de l'opérateur de remplacement. Par exemple, comme illustré sur la figure 4, la valeur Vg du paramètre de sortie de l'opérateur OPVG(VEG) du transistor M9AP du bloc GMD est en conflit car définie également par la valeur Vd du transistor M13 du bloc CMC. Dans ce cas, le conflit est résolu, comme illustré en figure 6, en remplaçant l'opérateur OPVG(VEG) du transistor M9AP du bloc GMD dont un paramètre de sortie est à l'origine du conflit par un opérateur de remplacement, en l'espèce l'opérateur OPW(VG,VS) dans lequel la valeur Vg est alors un paramètre d'entrée, toujours définie par la valeur Vd du transistor M13 du bloc CMC. La propagation est ainsi conservée et le conflit résolu. Un graphe structuré permet de détecter et résoudre les conflits. Il peut en outre être réutilisé ultérieurement pour la synthèse et la re-conception du circuit. Simulation Une fois les conflits résolus, grâce à l'invention, on peut en outre, grâce au graphe structuré d'un circuit donné, simuler 190 le comportement DC (en courant continu) dudit circuit, à l'aide des valeurs des paramètres de sortie. La figure 8 représente l'évolution du gain du circuit (filtre) de 3ème et du 5ème ordre conçu à partir du circuit de la figure 1 en fonction de la fréquence, pour quatre valeurs de tension de contrôle Vc. On peut ainsi optimiser la conception d'un circuit. L'invention est un outil d'aide à la conception des circuits analogiques qui permet de calculer les dimensions des transistors, et qui permet de guider le concepteur dans la conception d'un circuit analogique. L'invention est indépendante du nombre de blocs, du nombre de paramètres électriques. Le nombre d'opérateurs est linéaire avec le nombre de transistors, ce qui permet des calculs très rapides. Une fois les dimensions des transistors calculés et les conflits résolus, on prévoit une étape 180 consistant à calculer le point de repos du circuit analogique. L'utilisation d'un optimiseur n'est pas obligatoire. Si un optimiseur est néanmoins mis en oeuvre, alors le graphe permet d'accélérer très fortement l'optimisation en agissant à la manière d'un filtre qui ne laisse passer que les configurations qui fonctionnent. Des essais ont été menés par le déposant sur le temps nécessaire pour le dimensionnement du circuit illustré en figure 1. Selon les techniques de l'art antérieur, ce temps est de plusieurs heures ; selon l'invention, le temps nécessaire à la lecture et à l'évaluation du graphe structuré représentant le circuit de la figure 1, l'identification et la résolution des conflits est de 64 secondes, après optimisation des paramètres. REVENDICATIONS1. Procédé de détermination des valeurs de paramètres électriques des transistors d'un circuit analogique d'un système sur puce, comprenant des étapes consistant à : - (100) décomposer le circuit en un ensemble de blocs dont certains au moins sont reliés entre eux, chaque bloc ayant une fonctionnalité définie et comprenant un agencement de transistors propre audit bloc ; - (110) établir le schéma électrique du circuit comprenant lesdits blocs ; - (120) définir un ensemble de contraintes électriques propres audit circuit, auxdits blocs et aux transistors de chaque bloc en fonction notamment du schéma électrique du circuit ; - (130) définir des paramètres électriques de circuit, des paramètres électriques de bloc et des paramètres électriques de transistors ; - (140) sélectionner, pour chaque transistor du circuit, un opérateur de calcul des valeurs de paramètres électriques dudit transistor, chaque opérateur de calcul permettant pour un transistor donné de calculer des valeurs de paramètres électriques de sortie en fonction dudit opérateur, de paramètres électriques d'entrée et des contraintes électriques appliquées audit transistor; - (150) générer des graphes structurés de chaque bloc du circuit à partir des contraintes définies et des opérateurs choisis, chaque graphe comprenant un ensemble de noeuds ; - (151) assembler ces graphes structurés de blocs en un graphe général du circuit, en utilisant les équipotentielles dudit circuit ; - (160) identifier si l'un au moins des noeuds présente un conflit ; et - (170) émettre un signal d'alarme s'il existe un conflit. 2. Procédé selon la revendication 1, dans lequel ledit graphe structuré général comprenant l'ensemble des opérateurs de calcul et des contraintes définies par le concepteur. 3. Procédé selon la revendication 2, comprenant une étape (171) de représentation graphique du signal d'alarme, dans laquelle, dans le graphe structuré du circuit, l'un au moins des éléments parmi le bloc, l'opérateur et le paramètreélectrique dudit opérateur à l'origine du conflit sont représentés dans une couleur prédéterminée. 4. Procédé selon l'une quelconque des revendications précédentes, dans lequel l'étape (160) d'identification d'un conflit comprend une étape (161) consistant à, pour un paramètre électrique donné, compter le nombre de paramètres électriques dont la valeur se propage vers ledit paramètre électrique donné, et dans lequel le signal d'alarme est émis (170) si ledit paramètre d'entrée ou de sortie d'un opérateur est défini par plus d'un autre paramètre électrique. 5. Procédé selon l'une quelconque des revendications précédentes, comprenant des étapes consistant à : - (101) définir, pour au moins un bloc, un ensemble d'au moins un transistor de référence et un ensemble d'au moins un transistor secondaire correspondant, et - (152) propager à l'ensemble de transistors secondaires les valeurs des paramètres électriques calculées pour le transistor de référence correspondant. 6. Procédé selon l'une quelconque des revendications précédentes, dans lequel, s'il existe un conflit sur une valeur de paramètre électrique d'entrée d'un opérateur, le procédé comprend une étape (162) consistant à supprimer dans les contraintes électriques définies la valeur du paramètre de bloc à l'origine du conflit. 7. Procédé selon l'une quelconque des revendications précédentes, dans lequel, s'il existe un conflit sur une valeur de paramètre électrique de sortie d'un opérateur, le procédé comprend une étape (163) consistant à remplacer l'opérateur sélectionné dont le paramètre de sortie est en conflit par un opérateur de remplacement tel que le paramètre de sortie de l'opérateur à l'origine du conflit soit un paramètre d'entrée de l'opérateur de remplacement. 8. Procédé selon l'une quelconque des revendications précédentes, comprenant une étape (180) d'évaluation consistant à calculer le point de repos du circuit analogique. 9. Procédé selon l'une quelconque des revendications précédentes, comprenant une étape (190) consistant à simuler le comportement dudit circuit. 10. Programme d'ordinateur comprenant des instructions de code de programme pour la mise en oeuvre du procédé selon l'une quelconques des revendications précédentes lorsqu'il est exécuté sur un ordinateur.10