FR 2903794 A1 20080118 FR 0652987 A 20060713 1 Procédé de modélisation de l'activité de commutation d'un circuit numérique La présente invention concerne un procédé de modélisation de l'activité de commutation d'un circuit numérique. L'invention est une alternative à la simulation exhaustive ou pseudo-exhaustive pour déterminer l'activité de commutation d'un circuit, l'invention n'étant pas une méthode de simulation. L'invention permet de calculer rapidement un modèle d'activité de io commutation d'un circuit, sans qu'il soit nécessaire de connaître précisément l'architecture de ce circuit. L'invention trouve une application particulièrement avantageuse dans le domaine des logiciels pour le contrôle d'intégrité de signaux dans un système électronique mixte comportant des circuits analogiques et des 15 circuits numériques. A titre d'exemple non restrictif, les systèmes électroniques englobent les circuits intégrés sur un bloc de silicium unique, ou sur plusieurs substrats silicium dans un même boîtier, aussi bien que l'assemblage de composants (intégrés ou non) sur un circuit imprimé. La fabrication de ces systèmes électroniques est une opération très 20 onéreuse, particulièrement lorsque le système comporte un ou plusieurs composants intégrés sur silicium. Ainsi, avant de démarrer une fabrication en grande série, il est indispensable de contrôler tous les paramètres de fabrication, et de conférer à certains des valeurs qui permettent de maximiser la probabilité que le circuit fabriqué fonctionne correctement. 25 A cette fin, il existe un ensemble de produits logiciels, appelés outils d'automatisation de conception électronique , qui permettent d'aider à la conception de systèmes électroniques depuis la description des spécifications du système à réaliser jusqu'à la réalisation des masques photographiques utilisés lors de la fabrication du système. 30 Un des éléments importants dans la conception d'un système électronique est de quantifier le bruit produit par les circuits, notamment dans un système mixte. En effet, avant fabrication, une étape consiste à vérifier l'intégrité des signaux sur un système, c'est-à-dire à établir une cartographie précise du bruit observable à l'intérieur du système afin de savoir si certains 35 circuits sensibles au bruit vont fonctionner ou pas. 2903794 2 A cet effet, on identifie des circuits générateurs de bruit (les agresseurs) et des circuits sensibles au bruit (les victimes). Plus précisément, tous les circuits du système peuvent être considérés comme générateurs de bruit (agresseurs). Toutefois, il est préférable de choisir les 5 circuits générateurs de bruit dans le groupe comportant : les circuits numériques, les cellules mémoires, des circuits analogiques et radiofréquenciels (RF), tels que les VCO (Voltage Controlled Oscillator en anglais), les amplificateurs de puissance, et les circuits d'entrée-sortie. En particulier, les circuits numériques ont tendance à générer du bruit au io moment des commutations de leurs signaux d'entrée. Bien entendu, un circuit comportant au moins un circuit générateur de bruit est lui-même considéré comme un circuit générateur de bruit. Les circuits sensibles au bruit (victimes) sont choisis dans le groupe comportant : les circuits analogiques et RF, tels que les amplificateurs, les 15 filtres, les oscillateurs, les mélangeurs, les échantilloneurs-bloqueurs, des circuits numériques de type mémoire, les boucles de phase, les circuits d'entrée-sortie et les références de tension. Bien entendu, un circuit comportant au moins un circuit sensible au bruit est lui-même considéré comme sensible au bruit. 20 Le bruit généré par les agresseurs se répand vers les victimes en passant par les substrats sur lesquels sont intégrés les circuits, les interconnections métalliques et les boîtiers. Ce bruit a tendance à dégrader les performances des victimes. Ainsi, on entend par bruit tout signal généré par un bloc agresseur qui a une influence non désirée sur les victimes. 25 Plus précisément, le bruit observable dans de tels systèmes est lié à l'activité de commutation des cellules numériques qui composent les circuits numériques du système. Dans les logiciels d'aide à la conception, il peut donc être nécessaire de connaître l'activité de commutation de la partie numérique d'un circuit intégré, c'est-à-dire connaître les instants où chaque 30 cellule commute, pour déterminer à quel moment les cellules injectent du bruit à l'intérieur du système électronique. Une cellule qui commute est une cellule dont les entrées changent d'état logique, un état logique (0 ou 1) correspondant à une plage de tension. L'état logique 0 peut par exemple correspondre à une tension comprise entre 35 0 et 5% de la tension d'alimentation d'une cellule, tandis que l'état logique 1 2903794 3 peut par exemple correspondre à une tension comprise entre 95 et 100% de la tension d'alimentation d'une cellule. La cellule présente une activité interne dès qu'une de ses entrées change d'état. Dans la problématique particulière des logiciels de vérification 5 d'intégrité des signaux sur les systèmes intégrés avant mise en fabrication, il peut être utile de déterminer les bornes de l'activité de commutation régnant dans ce circuit. Ainsi, il peut être utile de déterminer l'activité maximale pour laquelle le plus grand nombre de cellules du circuit commutent, l'activité minimale pour laquelle le moins de cellules du circuit commutent, ou l'activité io moyenne c'est-à-dire l'activité la plus souvent observable lors d'un fonctionnement du circuit. De ces activités maximale, minimale ou moyenne, on peut déduire des informations de dimensionnement d'alimentation, comme la puissance maximale consommée par un circuit, et/ou des éléments pour reconstituer le bruit généré maximal, minimal ou moyen 15 généré par ce circuit. Dans le cadre des méthodes connues, pour déterminer l'activité de commutation d'un circuit numérique, on simule de manière exhaustive ou pseudo-exhaustive le comportement des circuits. Dans une simulation exhaustive, on applique toutes les combinaisons de signaux d'entrée (ou 20 pattern de test) possibles aux entrées primaires du circuit, c'est-à-dire les entrées contrôlables de l'extérieur. Et on observe alors à quels moments chaque cellule commute en fonction de leurs signaux d'entrée respectifs. Tandis que dans une simulation pseudo-exhaustive, on applique sur des entrées du circuit certaines combinaisons de signaux qui peuvent être 25 tirées au sort parmi toutes les combinaisons possibles. On construit alors un estimateur de l'activité de commutation à partir d'un échantillon de cas par rapport à la totalité des patterns de test possibles. La détermination de l'activité de commutation, qu'elle soit moyenne ou bornée peut être réalisée à partir d'une modélisation SPICE tout transistor du 30 circuit. Cette modélisation permet de simuler très précisément une activité de commutation pour des signaux d'entrée donnés, mais nécessite beaucoup de ressources et n'est applicable qu'avec des circuits de petite taille. Il est aussi possible de simuler l'activité de commutation à partir de modèles comportementaux (VHDL, VERILOG) utilisés dans la simulation de 35 circuits VLSI (Very Large Scale Integration en anglais) pouvant comporter un 2903794 4 très grand nombre de portes logiques, soit quelques millions de portes logiques dans un exemple. Les méthodes de simulation comportementale présentent différents niveaux de simulation. Le premier niveau est une simulation fonctionnelle 5 stricto sensu des cellules dans laquelle aucun délai de propagation de l'information n'est pris en compte. Un deuxième niveau de simulation prend en compte les délais internes de commutation des cellules (délais pour passer d'un état logique à un autre). Un troisième niveau de simulation prend en compte les délais internes de commutation, ainsi que les délais de io propagation de l'information sur les lignes entre les cellules (wire delay). Toutefois, les techniques de simulation comportementale ou détaillée de type SPICE nécessitent d'utiliser un grand nombre de motifs de test pour calculer une activité moyenne et/ou bornée. En effet, pour N entrées pouvant prendre deux états logiques, 2"N*(2"N-1) patterns de test sont à appliquer 15 aux entrées primaires du circuit pour un traitement exhaustif ; ce qui engendre un temps de traitement très long. D'autres méthodes, telles que la simulation par résolution de graphes, les réseaux de Pétri, des méthodes basées sur les chaînes de Markov, ou des matrices de probabilités permettent également de déterminer l'activité de 20 commutation des cellules. Ces techniques non simulatives sont basées sur le comportement stochastique de chaque cellule et génèrent des données de comportement du circuit numérique. Avec ces techniques, le circuit numérique ne réagit pas de manière précise à des patterns de test limités, mais à un comportement moyen des cellules. Toutefois, ces techniques de 25 résolution de graphes ne font ressortir que l'activité moyenne du circuit. En outre, que ce soit les techniques de simulation ou les techniques s'appuyant sur la résolution de graphes, elles nécessitent de connaître toute l'architecture du circuit. Une estimation de l'activité de commutation lors d'étapes de floorplanning, ou de simulation RTL, lorsque l'on ne connaît que 30 le nombre de portes du circuit, c'est-à-dire une estimation de l'activité de commutation avant la synthèse logique n'est donc pas possible avec les méthodes connues. L'invention se propose de résoudre les problèmes de mise en oeuvre complexe des techniques existantes et une application plus large quand on 35 ne dispose pas de l'architecture complète du circuit. 2903794 5 L'invention résulte d'un constat simple sur la façon dont se transmettent les signaux au sein d'un circuit numérique. Lors de l'excitation du circuit numérique par un signal d'horloge et/ou l'application d'un signal d'excitation sur des entrées de ce circuit, les cellules connectées aux entrées 5 de ce circuit commutent et transmettent un signal aux cellules suivantes qui leur sont reliées, les signaux se transmettant ainsi de proche en proche à l'intérieur du circuit. L'activité de commutation augmente donc jusqu'à atteindre un pic d'activité. Puis l'activité décroît jusqu'à ce que les différentes cellules aient commuté pour ce signal d'horloge ou ce signal d'excitation. io On peut donc, par expérience, appliquer des modèles de profil d'activité de commutation qui répondent génériquement à ce constat sur l'évolution de l'activité de commutation. Ces profils d'activité peuvent être issus de modèles de distribution statistique connus, comme la distribution Normale ou la distribution de Poisson. 15 Le choix de la distribution statistique la plus pertinente au constat qui a été fait est la distribution de Poisson, qui introduit la notion de service des cellules numériques ou de file d'attente . On établit ainsi une correspondance entre cette notion de service et le nombre de cellules susceptibles de commuter pour un signal d'excitation particulier. La 20 distribution de Poisson indique ainsi la quantité de cellules ayant commuté au cours du temps (l'aire de la distribution), pour finalement donner une aire totale représentative du nombre de cellules ayant commuté pour un front d'horloge ou un signal d'excitation donné. A cet effet, le modèle mathématique de Poisson est adapté, de 25 manière empirique, à des critères physiques qui rendent compte de l'activité de commutation réelle des cellules. Autrement dit, le modèle est adapté à des paramètres physiques en fonction desquels il est vraisemblable que la distribution des instants de commutation varie en fonction du temps. La distribution de Poisson telle qu'elle a été adaptée est ainsi 30 paramétrable selon le nombre de cellules susceptibles de commuter (estimation ou détermination), la valeur de la sortance (fanout en anglais) moyenne rencontrée pour chaque cellule, et le délai minimum de transmission de l'information d'une cellule à une autre. La sortance de chaque cellule donne le nombre de cellules branchées 35 en sortie de chaque cellule considérée. Tandis que le délai minimum de 2903794 6 transmission est le minimum de la somme du délai de commutation d'une cellule (gate delay en anglais) et du délai de transmission des signaux sur les interconnexions entre deux cellules (wire delay en anglais). Une telle distribution de Poisson présente l'avantage de permettre la 5 modélisation de l'activité de commutation à l'intérieur d'un circuit numérique sans connaître précisément la description complète des cellules de ce circuit et des connexions entre elles. En effet, simplement avec une indication sur la population des cellules (nombre de cellules, fanout moyen, etc...), on peut modéliser l'activité de commutation du circuit tôt dans le flot de conception, io par exemple avant la synthèse logique du circuit numérique. A partir de l'analyse de cette activité de commutation, on peut notamment dimensionner les alimentations, et associer des instants de commutation à des macromodèles de cellules modélisant une injection de bruit afin d'établir une cartographie du bruit dans le système mixte. 15 L'invention concerne donc un procédé de modélisation d'une activité de commutation d'un circuit numérique, ce circuit numérique comportant des cellules reliées entre elles par des interconnexions, ces cellules commutant à un instant où au moins une de leurs entrées change d'état, des commutations successives des cellules du circuit se produisant pendant une 20 période d'horloge Tclk de ce circuit, cette période d'horloge Tclk étant le délai sur lequel un signal appliqué en entrée du circuit est traité par les cellules de ce circuit numérique, caractérisé en ce que, la période d'horloge étant divisée en intervalles de temps, il comporte les étapes suivantes : 25 -calculer, à partir d'un modèle statistique adapté le nombre de cellules susceptibles de commuter sur chaque intervalle de temps de la période d'horloge, et - attribuer des instants de commutation aux différentes cellules du circuit numérique, à partir de la connaissance du nombre de cellules 30 susceptibles de commuter sur les intervalles de temps. L'invention sera mieux comprise à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Ces figures ne sont données qu'à titre illustratif mais nullement limitatif de l'invention. Ces figures montrent : 2903794 7 - figure 1 : une représentation graphique d'un modèle statistique selon l'invention d'une activité de commutation élaboré à partir d'un modèle de Poisson et une représentation schématique de la distribution des intervalles de commutation aux différentes cellules d'un circuit numérique ; 5 - figure 2 : un algorithme selon l'invention assurant l'adaptation de la loi de Poisson pour obtenir des valeurs discrètes de cellules susceptibles de commuter pendant les intervalles de temps d'une période d'horloge ; - figure 3 : une représentation schématique de plusieurs profils d'activité selon l'invention d'un circuit lors d'une période d'horloge, le modèle io d'activité de Poisson prenant en compte plusieurs stimuli dans une période de référence d'un système électronique ; - figure 4 : une représentation schématique d'étapes d'une variante de l'invention dans laquelle on découpe la distribution de Poisson en aires égales correspondant aux appels du même nombre de cellules dans un 15 intervalle de temps donné. Les éléments identiques conservent la même référence d'une figure à l'autre. La figure 1 montre une représentation schématique d'un système électronique mixte 1 comportant des blocs analogiques 2.1-2.Q et des blocs 20 numériques 3.1-3.K. Le bloc 3.3 numérique comporte des cellules 4.1-4.L numériques. Chaque cellule 4.1-4.L comporte une ou plusieurs portes logiques et réalisent une fonction particulière. Ces cellules 4.1-4.L sont reliées entre elles par l'intermédiaire d'interconnexions 6. Les changements d'état de ces cellules 4.1-4.L sont synchronisés par un signal d'horloge CLK 25 appliqué sur des entrées d'horloge du bloc 3.3. Ce signal d'horloge CLK possède une période Tclk qui est la période sur laquelle un signal appliqué sur des entrées primaires El-EN du bloc est traité par les cellules 4.1-4.L du bloc 3.3. Pour déterminer le modèle d'activité de commutation du bloc 30 numérique 3.3 par exemple, on utilise la loi de Poisson discrète adaptée d'équation 2LA D[k] = e^ . k .Na k! 2903794 Avec = log((fa û 1).Na +1) log(fa) La loi de Poisson a ainsi été adaptée à la sortance moyenne des cellules fa et au nombre de cellules susceptibles de commuter Na, k étant 5 un nombre entier positif. Plus précisément, Na est le nombre de cellules du circuit susceptibles d'être appelées sur une période d'horloge Tclk, c'est-à-dire celles susceptibles de recevoir une variation sur leurs entrées. Na est utilisé pour faire correspondre l'aire unitaire (=1) de la distribution de Poisson à un io nombre de cellules Na. On peut choisir Na égal au nombre de cellules L du bloc 3.3. Toutefois, en général, on choisit un nombre de cellules susceptibles de commuter inférieur au nombre de cellules total du circuit, car une cellule dont les entrées changent d'état peut avoir une sortie qui ne change pas d'état. Or 15 les cellules suivantes connectées après une telle cellule ne reçoivent aucune modification de leurs entrées. Ainsi, dans le cas où peu d'information technique est disponible sur le circuit, on choisit Na=L/2, qui est représentatif de l'activité de commutation moyenne d'un bloc numérique. En variante, pour déterminer Na, on peut résoudre un graphe avec les 20 probabilités d'appel sur les cellules et les probabilités de changement d'état des différents noeuds entre cellules, un noeud correspondant à une interconnexion entre plusieurs cellules. fa est le fanout moyen ou sortance moyenne des cellules en commutation du circuit, c'est-à-dire le nombre moyen de cellules connectées 25 en sortie de chaque cellule du circuit. Par exemple, pour un circuit qui possède une première cellule ayant une sortie connectée à des entrées de deux autres cellules et une deuxième cellule ayant une sortie connectée à une entrée d'une autre cellule, la sortance vaut (2+1)/2=1.5. Dans la pratique, on peut déterminer la sortance moyenne à partir 30 d'une liste d'informations sur le bloc 3.3 appelée netlist. Cette netlist comporte des informations sur les cellules 4.1-4.L et les interconnexions entre ces cellules. Si de telles informations ne sont pas disponibles, on sait par expérience que le fanout moyen d'un circuit électronique peut valoir 2, 3 ou 4 comme première hypothèse. 8 2903794 9 On adapte en outre la distribution discrète en faisant correspondre les unités de temps discrètes k à des instants tk=k*tm. k est un nombre entier appartenant à [O ; int(Tclk/tm)], int(Tclk/tm) représentant la partie entière de Tclk/tm. tm est la durée de transmission minimale de l'information d'une 5 cellule à une autre à l'intérieur du bloc numérique 3.3. La durée tm est définie par la durée minimale séparant deux commutations de deux cellules successives l'une étant branchée en entrée de l'autre et la contrôlant. La durée tm résulte de la combinaison de deux délais. Le premier est le délai de commutation d'une cellule qui est le temps io pour que la cellule change d'état quand une de ses entrées reçoit un front montant ou descendant. Le deuxième est le délai de transmission des signaux entre les cellules qui correspond au délai de propagation des signaux sur les interconnexions entre cellules liée notamment aux réseaux RC de lignes et aux capacités d'entrée de cellules. Le délai tm peut être 15 déterminé à partir de données constructeur des cellules 4.1-4.L. La durée tm, qui est une durée inférieure à Tclk, pourrait être aussi une valeur constante autre que la durée minimale séparant deux commutations de deux cellules successives. Dans un mise en oeuvre, on calcule les valeurs de D[k] pour k entier 20 appartenant à [O...int(Tclk/tm)], et on associe ces valeurs à des instants discrets tk=k.tm. On obtient alors les points représentés à la figure 1. Il est à noter que la distribution discrète D[k] de cette figure a été obtenue pour le bloc 3.3 avec Na=50, fa =2, tm=lms et Tclk=l7ms. On calcule ensuite les valeurs de la distribution pour des intervalles de 25 temps [tk ; tk+l [. On réalise à cet effet une interpolation linéaire entre D[k] et D[k+l] à l'aide de la formule suivante : S[i]=(D[k+l ]+D[k])/2 Avec i, intervalle, qui est un entier appartenant à [O; int(Tclk/tm)-1], int (Tclk/tm) représentant la partie entière de Tclk/tm. 30 Ainsi, par exemple, si D[0]=1 et D[1]=3.3, l'interpolation linéaire sur [t0 ; t1 [ vaut S[i]=2.15. En multipliant la partie entière de S[i] par l'intervalle de temps tm, on obtient des valeurs approchées de l'aire de la distribution de Poisson sur chaque intervalle de temps. Autrement dit, on obtient une valeur approchée 2903794 du nombre de cellules susceptibles de commuter dans cet intervalle de temps. Les valeurs ainsi obtenues sont des valeurs réelles. Pour adapter ces valeurs réelles calculées à la réalité dans laquelle un nombre entier de cellules est appelé sur un intervalle de temps donné, on 5 redistribue les valeurs réelles de S[i]. tm en valeurs entières. On détermine à cet effet l'arrondi à l'entier le plus proche de S[i].tm et on associe cet arrondi entier à l'intervalle correspondant. Ainsi le nombre de cellules susceptibles de commuter sur l'intervalle de temps [t0 ; t1 [ est égal à la partie entière de (2,15.tm). io On obtient alors un graphe 12 en bâtons, l'aire de chaque bâton 13 donnant un nombre entier de cellules susceptibles de commuter pour chaque intervalle de temps [tk ; tk-F1 [. L'aire de l'ensemble des bâtons 13 est égale au nombre total de cellules susceptibles d'être appelées (autrement dit de commuter) pendant une période d'horloge Tclk. Les instructions de la partie A de l'algorithme de la figure 2, qui sont incluses à l'intérieur d'une boucle mise en oeuvre pour chaque intervalle [tk ; tk-F1 [, permettent de réaliser le calcul du nombre entier de cellules commutant sur un intervalle. A cet effet, on définit la variable Sub ares qui est égale à S[i] multiplié par tm. Et on calcule avec la fonction ROUND l'arrondi à l'entier le plus proche de cette variable que l'on stocke dans la variable Cells_called_in_delay qui est égale à l'aire d'un bâton 13 pouvant correspondre à un nombre physique (entier) de cellules appelées dans un intervalle. Par ailleurs, la différence 14 qui existe entre la valeur réelle de l'aire et l'arrondi à l'entier le plus proche de cette aire est conservée en mémoire et cumulée avec les autres différences existant sur les autres intervalles [tk ; tk-F1 [. Lorsque la partie entière de cette différence est non nulle, on ajoute cette partie entière (positive ou négative) au nombre de cellules susceptibles de commuter sur l'intervalle suivant. On s'assure ainsi que l'aire totale des barres 13 est égale à Na. Autrement dit, on redistribue sur l'ensemble du graphe 12 les différences pouvant exister entre la valeur de l'aire du bâton et l'arrondi à l'entier le plus proche de cette aire. La partie B de l'algorithme de la figure 2 comporte des instructions permettant une redistribution des différences 14 calculées. A cette fin, la variable difference correspond au cumul des différences entre les valeurs 2903794 11 de cellules réelles et l'arrondi à l'entier le plus proche de ces valeurs. La partie entière (INT) de la variable difference est ajoutée au nombre de cellules susceptibles de commuter sur l'intervalle de temps, si cette partie entière est différente de O. Toutefois, en général, entre les arrondis à l'entier 5 supérieur et les arrondis à l'entier inférieur, les différences peuvent se compenser naturellement et il n'est alors pas nécessaire de réaliser ce calcul de compensation pour mettre en oeuvre le procédé selon l'invention. En outre, dans le procédé selon l'invention, on considère que, sur le premier intervalle [t0 ; t1 [ de temps, au moins une cellule commute, même si io l'arrondi à l'entier le plus proche de ce nombre de cellules en commutation sur ce premier intervalle vaut O. Un tel choix permet d'approcher au mieux le comportement des cellules pendant la commutation puisqu'il est évident qu'au début de l'activité de commutation du bloc 3. 3 au moins une cellule commute. Toutefois, il n'est pas nécessaire de considérer qu'au moins une 15 cellule commute sur le premier intervalle ]t0 ; t1] de temps pour mettre en oeuvre le procédé selon l'invention. La partie C de l'algorithme de la figure 2 comporte donc des instructions permettant de s'assurer qu'au moins une cellule commute dans le premier intervalle de temps. A cette fin, s'il s'agit du premier intervalle 20 (k=1) et que le nombre de cellules susceptibles de commuter sur cet intervalle est égal à 0 (Cells_called_in_delay=O), alors on attribue la valeur 1 au nombre de cellules susceptibles de commuter dans ce premier intervalle. De ce fait, on décrémente la variable différence de 1. On conserve également la continuité dans la commutation des cellules 25 qui est observable lors du fonctionnement du circuit. En effet, dans la réalité, lorsqu'il n'y a plus de cellule qui commute, cela signifie que toutes les cellules susceptibles de commuter ont commuté. On évite donc d'assigner des valeurs nulles de cellules à un intervalle [tk ; tk-F1 [ alors que toutes les cellules du circuit susceptibles de commuter n'ont pas encore été appelées. 30 Autrement dit, on évite de laisser des intervalles sans cellules commutant, et de reprendre la commutation plus tard, car ces intervalles sans commutation seraient incohérents dans la continuité du traitement de l'information assuré par le circuit. La partie D de l'algorithme de la figure 2 permet ainsi d'assigner une 35 valeur non nulle à la variable Cells_called_in_delay représentant, on l'a 2903794 12 vu, le nombre de cellules susceptibles d'être appelées sur un intervalle, lorsque le nombre de cellules sur cet intervalle devrait être égal à zéro selon l'algorithme, mais que l'aire de la courbe de Poisson n'est pas égale au nombre de cellules (Na) susceptibles de commuter dans le bloc 3.3. On 5 décrémente là encore la variable différence de 1 pour compenser, sur l'intervalle suivant, cette cellule qui a été attribuée à l'intervalle. Après avoir obtenu le graphe en bâtons 12, on attribue un délai aléatoire à chaque cellule sur chaque intervalle de temps [tk ; tk-F1 [. Pour un intervalle de temps [tk ; tk-F1[ et pour une cellule susceptible de commuter io sur cet intervalle de temps, ce délai vaut k.tm+rand().tm, rand() étant une fonction donnant une valeur aléatoire comprise entre 0 et 1. Ce choix permet de lisser les appels de courant au sein d'un intervalle de temps [tk ; tk-F1[ pendant lequel l'appel s'effectue sur un intervalle et non strictement à des instants k.tm avec k entier (ce qui pourrait aussi être possible). 15 Ici par exemple, on tire au sort 2 cellules auxquelles on attribue respectivement un instant de commutation égal par exemple à tm+O.ltm et à tm+0.3tm par rapport au début de la période d'horloge. On tire ensuite au sort 5 autres cellules qui sont appelées sur [t1 ;t2[ à l'instant 2tm+rand().tm par rapport au début de la période d'horloge, etc... Les tirages des cellules 20 sont effectués sans remise, c'est-à-dire qu'une fois qu'une cellule a été tirée au sort, elle ne peut plus être tirée au sort. En effet, dans la modélisation de l'activité de commutation suivant un modèle de Poisson, on néglige les phénomènes de glitches, c'est-à-dire les appels consécutifs d'une cellule qui ne sont pas utile au traitement de 25 l'information parle circuit. On obtient alors une évolution du nombre de cellules appelées entre chaque intervalle. La distribution des instants de commutation des cellules 4.1-4.L du bloc 3.3 intervient à chaque fois qu'un front montant 17 ou un front descendant 18 d'un signal d'horloge CLK ou signal de référence est 30 observable. Un seul signal de référence est défini pour tous les blocs numériques du système électronique. Toutefois, comme le montre la figure 3, un bloc numérique 3.1-3.K peut avoir plusieurs profils 12 d'activité de commutation sur une période d'horloge Tclk, un même profil d'activité se répétant à l'intérieur de la période 2903794 13 d'horloge. Deux profils successifs 12 peuvent être séparés l'un de l'autre d'un délai non nul. Cette multiplication des profils de commutation est observable lorsque le bloc numérique 3.1-3.K fonctionne à des fréquences multiples 5 fmult=l/Tmult de la fréquence du signal d'horloge CLK. Dans ce cas, on répète le profil de commutation Tclock/Tmult fois. La multiplication des profils est également observable sur différents fronts, par exemple sur le front montant et sur le front descendant d'horloge. Dans ce cas on répète le même modèle de poisson sur les deux fronts. io Dans l'exemple représenté, le bloc numérique 3 fonctionne à une fréquence quatre fois plus grande que celle du signal d'horloge CLK. Il peut y avoir un décalage Td temporel entre le début de la période de référence du système Tclk et le début de l'activité de commutation du bloc numérique 3.1-3.K. Ce décalage Td peut par exemple être du à un temps de 15 réponse du bloc numérique 3.1-3.K lié au signal d'horloge qui passe par d'autres circuits ou par un arbre d'horloge (clocktree en anglais) avant d'être appliqué au bloc numérique. En outre, dans le système mixte 1 comportant plusieurs circuits numériques 3.1-3.K, on peut avoir une distribution d'instants de commutation 20 par circuit et modéliser les activités de chaque circuit 3.1-3.K. On utilise alors un jeu de paramètres de la distribution de poisson adaptée, propre à chaque circuit numérique 3.1-3.K. Dans une application particulière, pour calculer le bruit observable dans le bloc numérique 3.3, on associe aux cellules 4.1-4.L des spectres 25 d'injection de bruit ainsi qu'un délai par rapport au front d'horloge pour le temps effectif d'appel de la forme d'onde de bruit injecté, ce délai étant calculé à l'aide de la modélisation de Poisson 12. On obtient ainsi pour chaque cellule un spectre résultant qui est le spectre multiplié par un opérateur de délai fréquentiel. Il est alors possible de combiner ces spectres 30 résultants pour calculer le bruit global d'un bloc. Et il est ensuite possible de combiner ces bruits de blocs pour calculer le bruit global injecté dans le système 1 pour un modèle d'activité de commutation donné. En variante, comme représenté à la figure 4, on cherche les intervalles de temps différents [tq ;tq+l [ pour lesquels un même nombre de cellules a 35 commuté. 2903794 14 A cet effet, on approche la distribution discrète de Poisson D[k] associée aux instants tk par une fonction continue P(t), par exemple une fonction polynomiale d'équation P(t)=aO+al.t+a2.t"2+...+ar.t"r qui a été obtenue par la technique d'approximation aux moindres carrés. On obtient 5 alors une expression continue de la distribution de Poisson, avec une erreur très faible comparé aux valeurs discrètes D[k]. L'aire de la courbe P(t) indique le nombre de cellules susceptibles de commuter pour un intervalle de temps associé à cette aire. L'aire totale 31 de la courbe P(t) est ainsi égale au nombre total Na de cellules du circuit io numérique susceptibles de commuter. Les Na cellules considérées comme susceptibles de commuter sont choisies au hasard de la même manière que précédemment. Pour obtenir l'évolution du cumul de cellules ayant commuté en fonction du temps, on intègre 32 la fonction P(t) sur [0, Tclk] et on obtient une 15 fonction F(t) dont la représentation graphique est dessinée. Cette intégration est facile à calculer étant donné que la fonction P(t) est un polynôme. La courbe F(t) est croissante, de sorte qu'au début de la période d'horloge Tclk aucune cellule du circuit n'a encore commuté et à la fin de la période d'horloge Tclk, toutes les cellules Na susceptibles de commuter ont 20 commuté. Ensuite, on cherche les n intervalles de temps [tq ; tq+l [ pour chacun desquels un même nombre Na/n de cellules est susceptible de commuter. n est choisi de sorte que Na/n soit un nombre entier de cellules. Dans l'exemple représenté à la figure 4, n=6, Na étant un multiple de 6. 25 A cet effet, on résout la fonction F(t) pour différentes valeurs du nombre de cellules appelées, ces valeurs étant multiples du nombre de cellules Na/n. Ainsi, on cherche tq pour F(tq)=q*Na/n et q entier allant de 1 à n, soit pour F(tl)=Na/n, F(t2)=2Na/n, F(t3)=3Na/n, ..., jusqu'à F(tn)=Na. On en déduit une suite d'intervalles [tq ; tq+l[ délimitant les aires A1- 30 An que l'on stocke dans un tableau. On découpe ensuite l'axe des temps de la fonction P(t). On obtient alors des intervalles d'appel différents [tq ; tq+l [ avec pour chaque subdivision d'aire Al-An de la courbe P(t) le même nombre de cellules appelées. Ainsi on a : 35 (tq+2-tq+1) # (tq+1-tq) 2903794 Et ti+ 2 ti+1 JFt) rit = JFt) rit ti+1 ti ou A1=A2=A3...=An 5 On remarque que les intervalles de temps [tq ; tq-F1 [ présentent une durée qui diminue au cours du temps pour ensuite augmenter de nouveau. Car lors d'une période d'horloge Tclk, l'activité de commutation a tendance à augmenter jusqu'à un maximum d'activité pour ensuite diminuer. Ensuite, on attribue les délais de commutation aux Na cellules io susceptibles de commuter. A cette fin, on choisit d'abord, au hasard, un intervalle [tq ; tq-F1 [ de commutation. On détermine ensuite un délai d'appel dans l'intervalle choisi, ce délai d'appel valant tq+rand()*(tq+1-tq). On l'a vu, rand() est une fonction aléatoire donnant une valeur comprise entre 0 et 1. 15 Et on attribue le délai d'appel à une cellule. Pour un intervalle [tq ; tq-F1 [ donné, l'attribution d'un délai d'appel aléatoire à une cellule est répété Na/n fois. On considère qu'il n'est pas possible d'attribuer un délai d'appel à une cellule à laquelle un délai d'appel a déjà été attribué. D'un point de vue 20 statistique, le tirage des cellules s'effectue donc sans remise. De la même manière que précédemment, le profil de commutation peut être répété plusieurs fois à l'intérieur d'une période d'horloge Tclk. Bien entendu, les différentes étapes du procédé selon l'invention peuvent être mises en oeuvre par un circuit électronique ou à l'aide d'un 25 logiciel exécuté par un ordinateur, le logiciel étant enregistré sur un support du type disquette, CD, DVD, mémoire USB, ou tout autre support équivalent. L'invention s'étend au procédé de fabrication de circuit comprenant une étape préalable de modélisation de l'activité de commutation selon l'invention, ainsi qu'au logiciel permettant la mise en oeuvre de l'invention. 15 REVENDICATIONS 1 - Procédé de modélisation d'une activité de commutation d'un circuit numérique (3.3), ce circuit numérique (3.3) comportant des cellules (4.1-4.L) reliées entre elles par des interconnexions (6), ces cellules (4.1-4.L) commutant à un instant où au moins une de leurs entrées change d'état, des commutations successives des cellules du circuit (3.3) se produisant pendant une période d'horloge Tclk de ce circuit, cette période d'horloge Tclk étant le délai sur lequel un signal appliqué en entrée du circuit est traité par les io cellules de ce circuit numérique (3.3), caractérisé en ce que, la période d'horloge étant divisée en intervalles de temps [tk, tk-F1 [, il comporte les étapes suivantes : - calculer, à partir d'un modèle statistique adapté le nombre de cellules susceptibles de commuter sur chaque intervalle de temps [tk, tk+l [ de la 15 période d'horloge, et - attribuer des instants de commutation aux différentes cellules (4.1-4.L) du circuit numérique (3.3), à partir de la connaissance du nombre de cellules susceptibles de commuter sur les intervalles [tk ; tk+l [ de temps. 2 - Procédé selon la revendication 1, caractérisé en ce que : 20 - le modèle statistique est un modèle de distribution statistique de Poisson. 3 - Procédé selon la revendication 2, caractérisé en ce que le modèle de Poisson est un modèle adapté d'expression : 25 D[k] = e^ X. k .Na k! Avec = log((fa -1).Na +1) log(fa) - tk valant tk=k.tm, k étant un nombre entier appartenant à [0 ; int (Tclk/tm)], et tm étant une durée constante inférieure à la période d'horloge 30 Tclk, - Na étant le nombre de cellules du circuit susceptibles d'être appelées sur une période d'horloge Tclk, 2903794 17 - fa étant le nombre de cellules moyen connecté en sortie de chaque cellule. 4 - Procédé selon la revendication 3, caractérisé en ce que : - le nombre de cellules (Na) du circuit susceptibles de commuter est 5 égal au nombre de cellules du circuit (L), ou à la moitié de ce nombre de cellules du circuit pour une activité de commutation moyenne de ce circuit. 5 - Procédé selon la revendication 3, caractérisé en ce que : - le nombre de cellules (Na) est déterminé par résolution d'un graphe avec les probabilités d'appel sur les cellules et les probabilités de io changement d'état des différents noeuds entre cellules, un noeud correspondant à une interconnexion entre plusieurs cellules. 6 - Procédé selon l'une des revendications 3 à 5, caractérisé en ce que : - tm est la durée de transmission minimale de l'information d'une 15 cellule à une autre à l'intérieur du circuit numérique, cette durée de transmission comprenant le délai minimum de commutation d'une cellule et le délai minimum de transmission d'un signal sur une interconnexion. 7 - Procédé selon l'une des revendications 3 à 6, caractérisé en ce que, pour calculer le nombre de cellules susceptibles de commuter sur un 20 intervalle de temps, on met en oeuvre les étapes suivantes : - calculer une interpolation linéaire entre D[k] et D[k+1] sur les intervalles de temps avec S[i]=(D[k+1 ]+D[k])/2 avec i appartenant à [0 ; int(Tclk/tm)-1 ], int(Tclk/tm) représentant la partie entière de Tclk/tm, 25 - multiplier S[i] par l'intervalle de temps tm, de manière à obtenir une valeur approchée de l'aire de la distribution de Poisson adaptée sur chaque intervalle de temps [tk ; tk-F1 [, et - arrondir à l'entier le plus proche les valeurs de S[i].tm, de manière à obtenir le nombre entier de cellules susceptibles de commuter pour chaque 30 intervalle de temps [tk ; tk-F1 [. 8 - Procédé selon la revendication 7, caractérisé en ce qu'il comporte l'étape suivante : - compenser la différence entre la valeur réelle de S[i].tm et la valeur entière de S[i].tm sur l'ensemble des intervalles de temps. 2903794 18 9 - Procédé selon l'une des revendications 7 à 8, caractérisé en ce qu'il comporte l'étape suivante : - adapter le nombre de cellules commutant au début de l'activité de commutation, soit sur le premier intervalle de temps [t0 ; tl [, de sorte qu'il 5 soit au moins égal à un. - Procédé selon l'une des revendications 7 à 9, caractérisé en ce qu'il comporte l'étape suivante : - conserver une chaîne continue dans l'activité de commutation des cellules (4.1-4.L), toutes les cellules du circuit susceptibles de commuter io devant avoir commuté lorsque le nombre de cellules susceptibles de commuter sur un intervalle [tk ; tk-F1 [ devient nul. 11 - Procédé selon l'une des revendications 7 à 10, caractérisé en ce que pour attribuer des instants de commutation aux différentes cellules, il comporte les étapes suivantes pour chaque intervalle de temps [tk ; tk-F1 [ : - tirer au sort dans le circuit un nombre de cellules égal au nombre de cellules susceptibles de commuter sur cet intervalle de temps, et - attribuer à ces cellules tirées au sort un instant de commutation lui-même tiré au sort sur l'intervalle de temps [tk ; tk-F1 [, - cet instant de commutation étant égal à k.tm+rand().tm, tm étant la durée d'un intervalle de temps [tk ; tk-F1[ et rand() une valeur aléatoire comprise entre 0 et 1. 12 - Procédé selon la revendication 11, caractérisé en ce que : - les cellules auxquelles un instant de commutation a été attribué ne peuvent plus être tirées au sort. 13 - Procédé selon l'une des revendications 3 à 6, caractérisé en ce qu'il comporte les étapes suivantes : - calculer une fonction continue polynomiale P(t) approximant au sens des moindres carrés la distribution discrète D[k] associée à des instants tk, - intégrer la fonction continue P(t) sur la durée [0 ; Tclk] et obtenir une fonction F(t), - trouver tq en résolvant F(tq)=q*Na/n, pour q entier de [0 à n], n étant choisi de sorte que Na/n soit un nombre entier, - déduire les n intervalles de temps successifs [tq ; tq-F1 [ pour chacun desquels un même nombre Na/n de cellules est susceptible de commuter, et 2903794 19 - attribuer un délai de commutation à partir de ces intervalles à Na cellules choisies au hasard comme susceptibles de commuter. 14 - Procédé selon la revendication 13, caractérisé en ce que pour attribuer un délai de commutation à chacune des cellules, il comporte les 5 étapes suivantes : - choisir au hasard un intervalle de temps [tq ; tq-F1 [, - calculer un délai d'appel dans l'intervalle choisi, ce délai d'appel valant tq+rand()*(tq+1-tq), rand() étant une fonction aléatoire donnant une valeur comprise entre 0 et 1, et io - attribuer le délai d'appel à une cellule, l'attribution d'un délai d'appel à une cellule étant répété Na/n fois pour chaque intervalle [tq ; tq-F1 [ donné. 15 -Procédé selon l'une des revendications 1 à 14, caractérisé en ce que : -dans le cas où le circuit (3.3) numérique fonctionne à une fréquence 15 multiple (fmult) du signal d'horloge (CLK) ou sur front montant et sur front descendant du signal d'horloge, plusieurs modèles de poisson sont utilisés au sein de la période d'horloge Tclk pour déterminer l'activité de commutation du circuit. 16 - Circuit électronique ou logiciel apte à mettre en oeuvre le procédé 20 selon l'une des revendications 1 à 15.