PROCEDE DE DETERMINATION DU DIMENSIONNEMENT DES METHOD FOR DETERMINING THE DIMENSIONING OF
TRANSISTORS D'UN CIRCUIT ANALOGIQUE TRANSISTORS OF AN ANALOGUE CIRCUIT
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 I P ( « I P » 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. The present invention relates to the field of systems on chips or SoC for System on Chip in English, and more specifically the structured design of the analog IP blocks integrated in a SoC, where the IP (IP) blocks ("IP" for Intellectual Property in English) are pre-characterized blocks arranged especially to perform one or more given functions.
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 Métal 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 I P 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. Systems on chip, hereafter "SoC" by concision or indifferently "circuit", are generally manufactured in CMOS technology (Complementary Metal Oxide Semiconductor), and typically comprise a digital part and a part analog. Digital IP blocks are well managed today and are not developed further here. On the other hand, analog I P blocks, which generally perform amplification, filtering or digital <-> conversion functions, are generally very difficult to take into account when designing a SoC. For the sake of brevity, and unless otherwise stated, in the text that follows, block means an analog IP block.
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. For a block, there is currently no general method or synthesis tools for providing a behavioral description of said block, more commonly known as "netlist", from a library of standard cells (Standard Cells in English) pre-characterized.
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 : To date, for a given function or behavior (amplification, filtering, conversion), the analog synthesis essentially breaks down into the following three phases:
1 . trouver une structure adéquate pour la fonction donnée; 1. find a suitable structure for the given function;
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 2. Determine the value of the parameters of the structure chosen by the designer to meet particular electrical specifications (for example the W-labeled widths of the transistors, and the polarizations of certain points of the circuit must be calculated); and
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. 3. Draw the masks of the selected structure. For the sizing phase, an optimizer and a performance evaluator are commonly used that interact in a loop.
La synthèse automatisée des circuits analogiques est classées typiquement dans les deux catégories suivantes : Automated synthesis of analog circuits is typically classified into the following two categories:
A. l'optimisation basée sur la simulation, et A. optimization based on simulation, and
B. l'optimisation basée sur la connaissance. B. knowledge-based optimization.
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). Category A (simulation) offers the advantage of using complex standard models implemented in a simulator. However, the disadvantage is to have to run the simulator many times, which implies a consequent synthesis time (several hours for a circuit of a hundred 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. For category B (knowledge), everything depends on the designer. The modeling of the circuit by equations is a rather long task that depends on several factors. The relationship between the performance of the circuit and the dimensions of the transistors are complex and the analysis time can extend up to several months. However, the advantage is that the synthesis becomes very fast since simulations are avoided.
Quelle que soit la catégorie de synthèse, l'utilisation d'un optimiseur peut conduire à des solutions présentant des inconvénients. Whatever the category of synthesis, the use of an optimizer can lead to solutions with disadvantages.
La présente invention vise à cumuler les avantages des deux catégories ci- dessus. The present invention aims to combine the advantages of the two categories above.
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 sur puce, comprenant des étapes consistant à : More specifically, the invention relates to a method for determining the values of electrical parameters of the transistors of an analog circuit of a system-on-a-chip, comprising the steps of:
- (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 ; - (100) decompose the circuit into a set of blocks at least some of which are interconnected, each block having a defined functionality and comprising a transistor arrangement specific to said block;
- (1 10) é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 ; - (1 10) establish the circuit diagram of the circuit comprising said blocks; - (120) define a set of electrical constraints specific to said circuit, said blocks and the transistors of each block according in particular to the circuit diagram of the circuit;
- (130) définir des paramètres électriques de circuit, des paramètres électriques de bloc et des paramètres électriques de transistors ; - (130) defining circuit electrical parameters, block electrical parameters and transistor electrical parameters;
- (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; - (140) selecting, for each transistor of the circuit, an operator for calculating the electrical parameter values of said transistor, each calculation operator making it possible, for a given transistor, to calculate electrical output parameter values as a function of said operator, of electrical parameters input and electrical constraints applied to said 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 nœuds ; - (150) generating structured graphs of each block of the circuit from defined constraints and selected operators, each graph comprising a set of nodes;
- (151 ) assembler ces graphes structurés de blocs en un graphe général du circuit, en utilisant les équipotentielles dudit circuit ; - (151) assembling these structured block graphs into a general graph of the circuit, using the equipotentials of said circuit;
- (160) identifier si l'un au moins des nœuds présente un conflit ; et - (160) identifying if at least one of the nodes has a conflict; and
- (170) émettre un signal d'alarme s'il existe un conflit. - (170) emit an alarm signal if there is a conflict.
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. Preferably, said general structured graph comprises the set of calculation operators and constraints defined by the designer.
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. It is possible to provide a step (171) of graphical representation of the alarm signal, in which, in the structured graph of the circuit, at least one of the block, the operator and the electrical parameter of said operator at the origin of the conflict are represented in a predetermined color.
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 à : It can be provided that the step (160) of identifying a conflict comprises a step (161) consisting of, for a given electrical parameter, counting the number of electrical parameters whose value is propagated towards said given electrical parameter, and wherein the alarm signal is transmitted (170) if said input or output parameter of an operator is defined by more than one other electrical parameter. There may be steps of:
- (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 - (101) defining, for at least one block, an assembly of at least one reference transistor and a set of at least one corresponding secondary transistor, and
- (152) propager à l'ensemble de transistors secondaires les valeurs des paramètres électriques calculées pour le transistor de référence correspondant. And (152) propagating to the set of secondary transistors the values of the electrical parameters calculated for the corresponding reference transistor.
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. Preferably, if there is a conflict over an input electrical parameter value of an operator, the method includes a step (162) of removing in the defined electrical constraints the value of the block parameter at the origin of the conflict.
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. Preferably, if there is a conflict on an operator's output electrical parameter value, the method includes a step (163) of replacing the selected operator whose output parameter is in contention by a replacement operator such that the output parameter of the operator causing the conflict is an input parameter of the override operator.
On peut prévoir une étape (180) d'évaluation consistant à calculer le point de repos du circuit analogique. An evaluation step (180) of calculating the rest point of the analog circuit can be provided.
On peut prévoir une étape (190) consistant à simuler le comportement dudit circuit. One can provide a step (190) of simulating the behavior of said 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 œuvre du procédé selon l'invention lorsqu'il est exécuté sur un ordinateur. According to another of its objects, the invention relates to a computer program comprising program code instructions for implementing the method according to the invention when it is executed on a computer.
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. The point of rest of a transistor is defined by the set of electrical quantities characterizing said transistor in the absence of signals to be amplified. The point of rest is the state of the operating point of the transistor in the absence of any useful signal. The polarization of the transistor makes it possible to place the point of rest of this one at a desired value, on the load line of this one. The point of polarization of a circuit is located at the intersection of the load lines during the static regime and during the dynamic regime, which make it possible to study the behavior of the 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. The present invention makes it possible to automatically calculate the polarization point of an analog circuit and to calculate the dimensions of the transistors constituting the analog IP blocks of a given SoC. In addition, these calculations are performed in accordance with the assumptions and knowledge of the SoC designer.
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. The present invention makes it possible to generate and test several calculation procedures for the same analog IP block that a designer can very easily debug, which also makes it possible to possibly explore several design scenarios of the same IP block.
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. The present invention also makes it possible to manage the design conflicts of a given IP block, such as the design conflicts of the assembly of IP blocks with each other, which is particularly advantageous in the case of collaborative work for example.
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 connaissance liées à un bloc IP donné. The present invention provides a hierarchical and standard representation for the design and verification of a SoC comprising analog IP blocks. This representation can be easily shared and reused within a group of analog IP block developers to correct, evaluate, and protect knowledge related to a given IP block.
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. Advantageously, the invention is independent of SoC manufacturing technology. It can therefore be used to design and redesign an analog IP block for different technologies very easily.
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. The present invention makes it possible to increase the design speed of analog IP blocks. In addition to the design assistance, the present invention also makes it possible to simulate the static and transient (dynamic) behavior of the IP blocks. This structured simulation makes it possible to verify the electrical behavior of an IP block designed according to the 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 : Other characteristics and advantages of the present invention will emerge more clearly on reading the following description given by way of illustrative and nonlimiting example and with reference to the appended figures in which:
- la figure 1 illustre un mode de réalisation d'un schéma électrique d'un circuit analogique, FIG. 1 illustrates an embodiment of an electrical diagram of an analog circuit,
- 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, M1 AP et M2P du bloc GMD du circuit de la figure 1 , FIG. 2 illustrates an embodiment of a set of possible operators according to the invention for the 3 reference transistors M9AP, M1 AP and M2P of the block GMD of the circuit of FIG. 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 , FIG. 3 illustrates an embodiment according to the invention of a structured graph for the block GMD of the circuit of FIG. 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, FIG. 4 illustrates an embodiment according to the invention of a truncated structured graph for the circuit of FIG. 1 presenting a conflict,
- 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, FIG. 5 is a truncated illustration of the graph of FIG. 4 generated according to a different design choice, leading to other conflicts,
- la figure 6 illustre de façon tronquée un graphe selon l'invention résolvant les conflits du graphe de la figure 4, FIG. 6 is a truncated illustration of a graph according to the invention solving the conflicts of the graph of FIG. 4;
- la figure 7 illustre un mode de réalisation du procédé selon l'invention, et FIG. 7 illustrates an embodiment of the method according to the invention, and
- la figure 8 illustre les résultats d'une simulation de filtres du 3eme et 5eme ordre conçus à partir du circuit de la figure 1 grâce à l'invention. - Figure 8 illustrates the results of the 3 rd filter simulation and 5 th order designed from the circuit of Figure 1 with the 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 The present invention is placed in the context where a designer wishes to design a SoC. From constraints particular to the circuit topology and designer design assumptions, it can automatically calculate a No. 2 umber reduced or minimum, of the electrical parameters of transistors necessary and their dimensions the computation of the circuit bias point . Electrical diagram
On prévoit une étape 1 10 consistant à établir le schéma électrique du circuit, par exemple grâce à un logiciel de conception de schémas électriques sur un ordinateur. There is provided a step 1 of establishing the circuit diagram of the circuit, for example by means of computer diagram design software on a computer.
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. The establishment of the electrical circuit diagram is preceded by a step of defining the topology of the circuit, that is to say, to decompose 100 the overall circuit in hierarchical levels into a set of sub-circuits or blocks connected between them and to define the arrangement of the transistors in each sub-circuit, each block having a defined functionality.
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. It is intended 130 to define electrical circuit parameters, block electrical parameters and transistor electrical parameters.
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. In a block, a plurality of transistors can be assembled into an elementary device, for example a current mirror, composed of a small number of interconnected transistors among which a reference transistor and secondary transistors are defined. The reference transistor controls the sizing and polarization of the other transistors within the elementary device. In a manner known per se, the electrical parameters of a reference transistor in fact uniquely define those of the secondary transistors by propagation of the parameters of said reference transistor towards the secondary transistors.
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. It can be provided 101 to define, for at least one block, an assembly of at least one reference transistor and an assembly of at least one corresponding secondary transistor.
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. The propagation property is advantageously used in the structured graphs described later where only the reference transistors are represented, which makes it possible to increase the speed of calculation. Each transistor or elementary device can be selected by the designer in a component library. It is possible to propagate to the set of secondary transistors the values of the electrical parameters calculated for the corresponding reference transistor.
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 M1 AP et M1 AN 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 cœur 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. For example in FIG. 1, there is illustrated a global circuit exerting a function of controlling the linear transconductance of the block GMD with the voltage Vc, by controlling the drains of the transitos M1 AP and M1 AN differentially, where the transconductance is the ratio between the variation of the output current and the variation of the input voltage of a component or a circuit. Concisely, this circuit serves as a unique circuit example for the present invention. This circuit comprises 4 CMC, AMP, GMD and AMP blocks or sub-circuits represented in dotted lines. Each of these blocks performs a given function. In this case, the GMD block is the core of the differential transconductance, the AMP blocks allow tuning frequencies and CMC is a counter-reaction sub-circuit to stabilize the operating point.
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. The two AMP blocks are identical and therefore bear the same reference (see the matching constraints below); they are electrically connected only to the GMD block. The CMC block is electrically connected only to the GMD block.
Le schéma électrique du circuit permet de définir une partie au moins des contraintes de celui-ci. The electrical diagram of the circuit makes it possible to define at least part of the constraints of this circuit.
Définition des contraintes Definition of constraints
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. Once the electrical circuit diagram is completed, it is expected 120 to define a set of electrical constraints at each hierarchical level of the circuit: for the global circuit, the blocks, and the components (transistors or elementary devices) blocks.
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. The constraints may depend on the intended use of the circuit. They comprise for example at least one of the following elements: the supply voltage, the electrical connections (for example the equipotentials), the pairing of certain components, and the assumptions of the designer. The assumptions or constraints of the designer are constraints that can not be extract from the circuit diagram of a circuit. This is for example the scheduling of transistors, linear constraints (see below), or the choice of operators (described later). At least some of the assumptions of the designer can be modified, while other constraints (typically the supply voltage) can not be modified by the designer.
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. For the constraints relating to the blocks and the components, provision is made to define at least some and preferably all the electrical stresses on all the blocks and transistors of the circuit.
Typiquement, il existe les contraintes électriques linéaires, d'appariement, d'ordonnancement et les contraintes de dimensionnement et de polarisation. Typically, there are linear electrical constraints, matching, scheduling and sizing and polarization constraints.
- Les contraintes linéaires permettent d'exprimer les dépendances linéaires entre paramètres. - The linear constraints make it possible to express the linear dependences between parameters.
Les contraintes linéaires sont inhérentes à la topologie du circuit, par exemple du fait des lois de Kirchhoff (loi des nœuds 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. Linear constraints are inherent to the topology of the circuit, for example because of the laws of Kirchhoff (law of the nodes and law of the meshes), or inherent to the circuit, for example by equipotentials (with or without electrical connection) or by the values of reference bias current received by each transistor (each transistor receives either the value of the reference bias current, or a multiple of this value). They can therefore be defined according to the electrical diagram of the circuit or according to a choice of design.
- 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. - Matching constraints, or matching constraints by anglicism, allow to consider as equivalent blocks performing the same given function, for example amplification, filtering or 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. The matching constraints make it possible to consider that the reference transistor of a block is identical to the equivalent transistor in a paired block, ie of the same width. In each paired block, a reference transistor is defined. The calculation of the dimensions of the reference transistor is applied to the paired transistor. For example in Figure 1, the two AMP blocks are matched, the dimensions of their reference transistors are the same. Therefore, only the dimensions of the transistors of one of the blocks are calculated and only one of the AMP blocks can be used in the structured graph described later.
- Les contraintes d'ordonnancement, ou scheduling par anglicisme, définissent l'ordre de conception des transistors. - Scheduling constraints, or scheduling by anglicism, define the design order of the 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. The scheduling constraints are based on the circuit diagram; they make it possible to define the order in which the transistors of a block are dimensioned.
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 201 1 . Advantageously, this order is graphically represented by structured graphs described later. Such graphs have been published in the reference F. Javid, R. Iskander, M-M Louërat and D. Dupuis "Analog Circuits Sizing Using Bipartite Graphs", IEEE, Midwest Symposium on Circutis and Systems, August 201 1.
- 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. The sizing and polarization constraints correspond to the selection by the designer of a given operator for each transistor, the operator making it possible to calculate the electrical parameters of the corresponding transistor.
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). By electrical parameter of a transistor is meant in particular the dimensions thereof (width and length) as well as at least some of the electrical voltages thereof (gate voltage, drain and source).
Opérateurs operators
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 », Intégration, 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 Conférence, 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. It is expected 140 to select a set of operators; each operator corresponds to a given transistor and makes it possible to calculate electrical parameters of said transistor as a function of the type of operator selected and of certain electrical input parameters. Operators are known, for example from the publication R. Iskander, M. Louërat, A. Kaiser "Hierarchical Sizing and Biaising of Analog Firm Intellectual Properties", Integration, VLSI Journal, March 2013 - pp. 172-188; Vol 46, issue 2 in press, DOI 10.1016 / j.vsli.2012.01 .001; or the 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. They allow, on the base of the electrical circuit diagram (Figure 1) to calculate parameters of a given transistor, for example the gate voltage, drain or source at any particular point of the circuit and the width of the corresponding transistor.
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. For example, for transistor M6BP (FIG. 1), the source voltage is connected to the supply voltage, which is known. The gate voltage can be determined by an operator, for example the operator OPVG which makes it possible to determine this gate voltage in addition to the width of the transistor. The knowledge of the gate voltage makes it possible to calculate the source voltage. Conversely, the designer may choose to determine the source voltage by an operator, in this case OPVS, and then calculate the gate voltage according to the source voltage.
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. Each operator calculates electrical output parameters based on input electrical parameters and the type of operator.
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, M1 AP et M2P, de la figure 1 . Ils se présentent sous forme de logiciel. In FIG. 2, a set of possible operators for each reference transistor of block GMD, in this case M9AP, M1 AP and M2P, of FIG. They come in the form of software.
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. The selection by a designer of a given operator for a given reference transistor subsequently makes it possible to calculate the corresponding dimensions of said reference transistor and to propagate these values to the secondary transistors of the elementary device to which said reference transistor belongs.
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 For this purpose, once the electrical diagram is made and the circuit constraints determined, it is expected to produce a structured graph corresponding to the selected operators. Hierarchical Structured Block Graph
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 nœuds 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. It is expected to produce a structured graph corresponding to the operators selected for all the blocks of a given circuit. In this case it is a graphical representation in the form of a dependency graph whose nodes represent the electrical parameters of the transistors, the operators and the constraints. The arcs represent the propagation of the electrical parameters in the graph.
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. The structured block graphs are then assembled into a general graph of the circuit, using the equipotentials of said 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 . A simplified example of a hierarchical structured graph is illustrated in FIG. 3 which represents an embodiment of a hierarchical structured graph for the block GMD of the circuit of FIG.
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 M1 AP pour calculer respectivement les paramètres des transistors secondaires M9AN, M2N et M1 AN. In the case in point, the GMD block is symmetrical, so that the transistors M9AP, M2P and M1 AP are defined as reference transistors for respectively calculating the parameters of the secondary transistors M9AN, M2N and M1 AN.
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. The block is represented in a predetermined form, in this case a rectangle comprising in the header the identification of said block, in this case GMD.
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 M1 AP. 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 « _ ». Par exemple on représente par M9AP_M9AN l'appariement entre le transistor M9AP et le transistor M9AN, et de même pour M1 AP_M1 AN ou M2P_M2N. Each transistor is represented in a predetermined form, in this case a rectangle, comprising in the header the identification of said transistor, for example M1 AP. The pairing between transistors is also represented by a predetermined shape, in this case a rectangle, comprising in the header the identification of said transistors interconnected by a predetermined symbol, in this case the symbol "_". For example one represents by M9AP_M9AN the pairing between the M9AP transistor and the M9AN transistor, and similarly for M1 AP_M1 AN or 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. The electrical input and output parameters of an operator for a given transistor are represented by a predetermined form, in this case the circles or ellipses, each circle or ellipse comprising a single parameter whose label illustrates said parameter, for example Vd for the drain voltage, L for the width, Vg for the gate voltage, W for the width, Id for the terminal current of drain, Vs for the source voltage, L for the length.
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 ». The parameters representing the constraints of said block are arranged, by convention, at the top of the structured graph and arranged in a predetermined form, in this case a rectangle, and identified as block constraints, in this case by the heading " 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. Some electrical parameters are interconnected by arrows. For a given operator, the direction of the arrows between the parameters and said operator indicates whether the parameters are input parameters or output parameters. Two electrical parameters can be connected to each other via a mathematical function representing the associated constraints. The mathematical function is illustrated in a predetermined form, in this case a square, comprising a symbol of said mathematical function.
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 : Rectangles marked for example "eq1", "eq2", etc. or more generally "eqN" represent the constraints established by the designer. For example, the equation "eq1" located in the rectangle "GMD Input Parameters" of Figure 3 4 or in the rectangle "AMP1 Input Parameters (Pin)" of Figure 4 is defined by:
eq1 : L_M1 AP = L * K1 eq1: L_M1 AP = L * K1
où L_M1 AP est la longueur du transistor M1 AP de la figure 1 , L et K1 sont deux paramètres définis par le concepteur. where L_M1 AP is the length of the transistor M1 AP of Figure 1, L and K1 are two parameters defined by the designer.
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 nœud labellisé « x (-1 ) » dans la figure 3 représente l'équation suivante : The rectangles marked "x 1", "x (-1)" or more generally "x N" correspond to functions of multiplication by a factor N, which make it possible to establish relations between the currents of the transistors of the circuit. For example, the node labeled "x (-1)" in Figure 3 represents the following equation:
ld_M1 AP = ld_M9AP * (-1 ) ld_M1 AP = ld_M9AP * (-1)
où ld_M1 AP et ld_M9AP sont respectivement les courants des transistors M1 AP 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. where ld_M1 AP and ld_M9AP are respectively the currents of transistors M1 AP and M9AP of FIG. Finally, the rectangles marked "=" express the equality of two (or more) parameters. The equipotentials (ie electrical connections) of the circuit are represented by such 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 M1 AP. For example, the value of the bias current Ibias is equal to the value of the current Id of the transistor M9AP. This value of the current Id is an input parameter of the operator OPVG (VEG) of said transistor M9AP. At the same time, this value of the current Id of the transistor M9AP is multiplied by the mathematical function (-1) as an input parameter value Id of the operator OPW (VG, VS) of the transistor M1 AP.
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 : More generally, the arrows correspond to the constraints and illustrate the propagation of the value of a parameter. They are generated automatically. They can connect the parameters of a transistor:
- à un autre transistor du même bloc, - to another transistor of the same block,
- aux contraintes du bloc aux paramètres d'un autre bloc. - block constraints to the parameters of another block.
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 : The values of the input electrical parameters are known because imposed or function of a previous calculation result. For example :
- la valeur Vg du transistor M1 AP 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 ; the value Vg of the transistor M1 AP is imposed; in this case it is equal to the value Vg defined by the constraints of the GMD block in the rectangle "GMD Input Parameters" which represents the constraints imposed by the designer for the GMD block;
- la valeur Id du transistor M1 AP est calculée à partir de la valeur Id du transistor M9AP dont elle est multipliée par (-1 ). the value Id of the transistor M1 AP is calculated from the value Id of the transistor M9AP of which it is multiplied by (-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 M1 AP 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. The values of the output electrical parameters are calculated by an operator. For example, the output parameters of the OPW operator (VG, VS) for the transistor M1 AP are Vb (for mass voltage or bulk by anglicism), Vth (for threshold voltage) and W (for width). The values of these output parameters are calculated by said operator as a function of the values of the input parameters.
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 M1 AP (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é. Each operator is represented in a predetermined form, in this case a rectangle, comprising in the header the identification of said operator, for example OPW (VG, VS) for the transistor M1 AP (FIG. 3). All operators are configured to calculate as output parameter at least the width W of the corresponding transistor. Preferably, all the operators are further configured to calculate as output parameter at least the threshold voltage Vth of the corresponding transistor. The calculation of the bulk voltage Vb, the gate voltage Vg or the source voltage Vs typically depends on the selected operator.
Bien entendu, d'autres formes que les carrés, les rectangles et les cercles peuvent être choisies. Of course, other shapes than squares, rectangles and circles can be chosen.
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 M1 AP, lui-même créé avant le transistor M2P. The graphical arrangement of the transistors with respect to each other satisfies the scheduling constraints. By convention we define that the structured graph is read from top to bottom. In this case the transistor M9AP is created before the transistor M1 AP, itself created before the M2P transistor.
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. For a given block, the design order of the transistors can be defined according to the electrical diagram of the circuit. Preferably, the transistors are made by branches, where a branch is the set of transistors interconnected by their source or their drain. Preferably, for a given branch, the transistors are made in a predetermined sequence.
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. For example in FIG. 1, an embodiment sequence for the first left branch of the left AMP block is the following: the transistor M5BP then the transistor M7BP, then the transistor M4BP. This linear order is not mandatory, it is possible to provide more complex embodiments where the sequence is different: the M5BP transistor then the M4BP transistor, then the M7BP transistor.
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 M1 AP du bloc GMD de la figure 1 correspond à la séquence de transistors M9AP, M1 AP et M2P de la figure 3. The advantage of an embodiment sequence, and therefore of a design sequence, is that certain parameters of the transistors can propagate along the sequence in a given branch. For example, on the upper left part of the AMP block of FIG. 1, the voltage VC makes it possible to calculate the voltage VB7, which makes it possible to calculate the voltage VB5. For example, the branch of the transistors M9AP, M2P and M1 AP of the block GMD of FIG. 1 corresponds to the sequence of transistors M9AP, M1 AP and M2P of FIG.
Graphe structuré hiérarchique de circuit Hierarchical Structured Circuit Graph
Les contraintes définies par le concepteur pour chaque bloc peuvent amener à des conflits de conception lors de l'assemblage de blocs entre eux. Constraints defined by the designer for each block can lead to design conflicts when assembling blocks together.
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. By generalizing the previous example of a structured graph for the GMD block, once the electrical circuit diagram has been defined, the constraints defined and the operators selected, it is planned to produce a hierarchical structured graph for all the blocks of said circuit. Preferably, the graph comprises all the hierarchical levels: the circuit, the blocks of the circuit and the transistors of each block.
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 . For example, FIG. 4 illustrates, in a truncated manner for greater readability, a structured hierarchical graph of the circuit of FIG.
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. The graph is structured in that each block and each transistor is clearly identified. It is hierarchical in that there exists a reading convention making it possible to order the calculations of the parameters of the block-by-block transistors. The position of the blocks is determined by the designer, it defines the order of design of the sub-circuits in the reading direction of the graph. Finally the graph is bipartite in that it contains two types of nodes: the parameters (represented by circles) and the equations (represented by rectangles). The graph makes it easy to illustrate possible conflicts in a first evaluation phase and their solution in a second 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. A first step is to obtain the corresponding graph of each block of the circuit and then a second step is to obtain the graph corresponding to the 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.AMPI et Transconductor.AMP2. For example, with reference to FIG. 1, the circuit comprises three blocks (since the two AMP blocks are paired). These three blocks are illustrated in Figure 4. As a transconductance control circuit, the CMC and GMD blocks are respectively identified by Transconductor.CMC and Transconductor.GMD. Since the two AMP blocks are paired, the two AMP blocks are identified by Transconductor.AMPI and 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. Once the graph is built, it is evaluated. This evaluation makes it possible, thanks to the electrical diagram of the circuit, to the constraints defined and according to the reading convention, to calculate the electrical output parameters of all the operators of the transistors of the whole circuit. We speak indistinctly of evaluation, reading or execution of the graph, in this case by software.
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. This evaluation makes it possible to generate the calculation of the dimensions of the components, the hitherto unknown voltages of the connectors, as well as all the parameters of all the transistors of the circuit, thanks to the selected operators and the defined constraints.
Conflits de conception entre les blocs Design conflicts between blocks
Dans le graphe il peut exister des conflits impliquant des paramètres reliant deux blocs. In the graph there may be conflicts involving parameters connecting two blocks.
On prévoit 160 d'identifier les conflits éventuels, ce qui peut permettre de rendre le graphe toujours évaluable. It is anticipated 160 to identify possible conflicts, which can make the graph always evaluable.
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é. The identification of a conflict may comprise a step 161 consisting of, for a given electrical parameter, counting the number of electrical parameters whose value propagates towards said given electrical parameter.
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é. FIG. 4 illustrates a truncated structured graph corresponding to the circuit of FIG. 1 and for which block constraints have been defined by the designer in the "Input Parameters (Pin)" rectangles for each block CMC, GMD and AMP; and operators selected for each reference transistor of each block. Depending on the constraints defined as the input parameters of the various operators and the choice of the operators, the output parameters of each operator are calculated. The value of an output parameter of an operator can be reused (propagated) as an input parameter for another operator in the reading direction of the structured graph.
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. For example in FIG. 4, the first constraints defined are those of the global circuit "Transconductor Input Parameters (Pin)", then those of the CMC block ("CMC Input Parameters (Pin)") some of which are used as input parameters of the operator OPVG (VEG) of the 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. For example, the value Vd propagates from the constraints of the CMC block to the transistor M13 as an input parameter of the operator OPVG (VEG). Then this value Vd propagates with an equality constraint as an output parameter Vg of the operator OPVG (VEG) of the transistor M9AP of the block GMD, etc. Since this value Vg is also defined as an output parameter calculated by the OPVG operator (VEG) of the M9AP transistor, there is therefore a conflict since this value Vg is 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. In case of conflict, it is anticipated that an alarm will be generated which signifies this conflict. For example, it is possible to send a message whose content indicates the existence of a conflict. Preferably, it is expected that the message content identifies at least the operator and the electrical parameter at the origin of the conflict. Alternatively or in combination, it is possible to provide a graphic representation of the alarm, for example by a color code. In the present case, at least one of the block, the operator and the electrical parameter of the said operator at the origin of the conflict are colored, for example in red. The designer can thus easily and very quickly identify design conflicts.
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 M1 1 AP 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. Another example of a conflict is illustrated in FIG. 5, which truncates another embodiment of a structured graph of the circuit of FIG. In this case, the design order of the sub-circuits is different compared to Figure 4, which can generate different conflicts. In FIG. 5, the value Vg of the input parameter of the OPVS operator (VEG, VB) of the transistor M1 1 AP of the block CMC is defined both by the value Vg of the constraints of the block "CMC Input Parameters (Pin ) Of said block and by the value Vd of the output parameter of the transistor M9AN of the block GMD. So there is a conflict. Similarly, the value Vd of the input parameter of the operator OPVG (VEG) of the transistor M13 of the block CMC is defined both by the value Vd of the constraints of the block "CMC Input Parameters (Pin)" of said block and by the value Vg of the output parameter of the transistor M9AP of the block GMD. So there is a conflict.
Essentiellement deux types de conflits peuvent exister, sur les paramètres de sortie ou sur les paramètres d'entrée. Essentially two types of conflicts may exist, on the output parameters or on the input parameters.
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. Typically, since each input and output parameter must be defined according to a single previous parameter in the direction of propagation, the identification of a conflict consists in detecting whether an input or output parameter of an operator is defined by more than one parameter, therefore an alarm will be generated in this case.
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. For example, it is expected to count, for a given parameter, the number of incident arcs, that is to say which point towards or who enter, on this parameter. This operation is repeated for all the parameters of the circuit.
Résolution des conflits Conflict Resolution
Comme vu ci-dessus, un conflit existe par exemple lorsque la valeur d'un paramètre est définie par plus d'une équation. As seen above, a conflict exists for example when the value of a parameter is defined by more than one equation.
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. On an input parameter, a conflict may exist between a block parameter and an output parameter that both propagate their value to the same input parameter.
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. In this case, it is expected 162 to remove one of the block or output parameters causing the conflict. Preferably, it is intended to privilege the physical reality of the circuit, ie to privilege the constraint corresponding to the physical reality of the circuit. circuit. In general, the block constraints are defined by the designer and the constraints between blocks or between transistors of the same block are physical constraints. Preferably, it is expected to remove the parameter of the block constraint at the origin of the conflict.
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. For example, in FIG. 4, there is a conflict for the value Vd at the input of the operator OPVG (VEG) of the transistor M9AP of the block GMD since this value is defined both by the value Vd of the transistor M9AN and by the Vd value of the parameters of the GMD block.
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)). This conflict is solved as illustrated in FIG. 6 by privileging the physical reality of the circuit, ie by keeping the value Vd at the input of the operator OPVG (VEG) of the transistor M9AP of the block GMD as being defined by the value Vd of the M9AN transistor only and by deleting the value Vd of the parameters of the GMD block (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. In the case where a block parameter propagates its value to two parameters of which only one generates a conflict, the conflict-bound operator is changed to resolve the conflict, but the block parameter is maintained to propagate to the parameter that does not generate not the conflict.
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. On an output parameter, a conflict may exist between a parameter whose value would be calculated by two operators or by an operator and by the propagation of a value of another electrical parameter according to certain constraints.
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. In this case, provision is made for example 163 to replace the selected operator whose output parameter is in conflict with another operator, said replacement operator. Preferably, the replacement operator is an operator of the same class as that of the first operator, the class of an operator defining the voltages (gate, drain or source) calculated by the latter. For example, with reference to FIG. 2, the operators OPIDS (VEG), OPIDS (VG, VS), OPIDS (VGS, VG) and OPIDS (VGS, VS) are of the same class. Similarly, the class of OPVG operators and those of OPW operators are defined. Advantageously, it is expected that the output parameter of the operator causing the conflict is an input parameter of the replacement operator.
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 M1 3 du bloc CMC. For example, as shown in FIG. 4, the value Vg of the output parameter of the operator OPVG (VEG) of the transistor M9AP of the block GMD is in conflict because also defined by the value Vd of the transistor M1 3 of the block 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. In this case, the conflict is resolved, as illustrated in FIG. 6, by replacing the operator OPVG (VEG) of the transistor M9AP of the block GMD whose output parameter is at the origin of the conflict by a replacement operator, in the the operator OPW (VG, VS) in which the value Vg is then an input parameter, always defined by the value Vd of the transistor M13 of the CMC block. The propagation is thus preserved and the conflict resolved.
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. A structured graph can detect and resolve conflicts. It can also be reused later for the synthesis and re-design of the circuit.
Simulation 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 3eme et du 5eme 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. Once the conflicts have been solved, thanks to the invention, it is also possible, thanks to the structured graph of a given circuit, to simulate the DC (direct current) behavior of said circuit, using the values of the output parameters. . FIG. 8 represents the evolution of the gain of the 3 th and 5 th order circuit (filter) designed from the circuit of FIG. 1 as a function of the frequency, for four control voltage values Vc.
On peut ainsi optimiser la conception d'un circuit. We can optimize the design of a 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. The invention is a tool for assisting the design of analog circuits which makes it possible to calculate the dimensions of the transistors, and which makes it possible to guide the designer in the design of an analog circuit. The invention is independent of the number of blocks, the number of electrical parameters. The number of operators is linear with the number of transistors, which allows very fast calculations.
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. Once the dimensions of the transistors have been calculated and the conflicts resolved, a step 180 consisting in calculating the rest point of the analog circuit is provided.
L'utilisation d'un optimiseur n'est pas obligatoire. Si un optimiseur est néanmoins mis en œuvre, 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. The use of an optimizer is not mandatory. If an optimizer is nevertheless implemented, then the graph makes it possible to accelerate the optimization very strongly by acting in the manner of a filter that only allows configurations that work.
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.
Tests have been carried out by the applicant on the time required for sizing the circuit illustrated in FIG. According to the techniques of the prior art, this time is several hours; according to the invention, the time required for reading and evaluating the structured graph representing the circuit of FIG. 1, the identification and the resolution of the conflicts is 64 seconds, after optimization of the parameters.