Brevet FR3019922A1 — publié le 20151016

Arrière-plan de l'invention L'invention s'inscrit dans le domaine du développement des réseaux logiques configurables. De tels réseaux sont des circuits intégrés composés de nombreuses éléments logiques librement connectables. Des réseaux logiques configurables connus sont les FPGA (« field-10 programmable gate array», ou réseaux de portes programmables in situ) et les PLD (« programmable logic device », circuits logiques programmables), ou encore les EPLD (« erasable programmable logic device », circuits logiques programmables et effaçables). Ces réseaux logiques ont l'avantage qu'un même composant physique 15 (puce) peut être utilisée dans de nombreux systèmes électroniques différents, ce qui permet de rendre disponible plus rapidement une nouvelle fonction. Les réseaux logiques configurables sont utilisés dans diverses applications nécessitant de l'électronique numérique, notamment l'aéronautique, mais aussi les télécommunications. 20 La configuration est obtenue par un processus en plusieurs étapes. Tout d'abord, le concepteur numérique rédige, pour décrire le comportement du circuit électronique souhaité, un fichier source dans un langage de description de matériel (HDL pour « hardware description language »). Le langage de description peut par exemple être le langage VHDL ou le 25 langage Verilog. Il peut être de niveau de description RTL (« Register Transfer Level»). Un outil de synthèse logique permet ensuite, à partir du ou des fichier(s) source ainsi constitué(s), de produire un fichier de description de circuit électrique, couramment appelé « netlist». Celui-ci est enfin utilisé pour l'opération de placement-routage, qui permet de 30 produite un fichier de configuration qui est alors chargé directement dans la puce, ou dans une mémoire attachée à celle-ci, de sorte à configurer la puce dans la configuration souhaitée. Bien que beaucoup d'attention soit donnée à la qualité des produits proposés et leur mise en oeuvre, il est actuellement compliqué de caractériser la fiabilité d'une configuration donnée d'un réseau logique configurable. Notamment, on ne sait pas bien effectuer, une fois la description de la configuration écrite par l'opérateur, des contrôles complets du respect des règles de conception. De telles règles sont connues dans le domaine de la configuration des circuits configurables, et visent à vérifier que la description est conforme à l'architecture du composant configurable. Elles concernent en général les connexions autorisées en entrée ou en sortie d'un élément logique donné. La vérification du respect de ces règles se fait souvent par une inspection manuelle du code de description de matériel, par exemple le code VHDL ou Verilog, ce qui implique que l'opérateur effectuant l'inspection comprenne comment l'outil de synthèse logique interprète le code quand celui-ci lui est fourni. Cela ne peut guère être mis en oeuvre pour l'intégralité d'un circuit configurable, et ces inspections sont souvent mises en oeuvre uniquement pour certaines parties du circuit, jugées critiques, telles la génération d'horloge ou de commande « reset», ou le changement de domaine d'horloge. Et même si les ambitions des inspections sont limitées, la fiabilité même de celles-ci n'est pas absolue, car elles reposent sur des opérateurs humains, pouvant se tromper. Par ailleurs, on est actuellement en manque d'estimation fiable de la sensibilité d'une configuration de réseau logique configurable aux effets transitoires (SEU ou SEE pour, en anglais « Single Event Upset» ou « Single Event Effect»), qui sont les conséquences des rayonnements ionisants existant à haute altitude, dans l'espace, ou dans les zones irradiées. Les bascules et les blocs mémoire sont notamment sensibles aux effets transitoires. Par sécurité, des hypothèses conservatrices sont faites dans les calculs approchés qui sont menés, visant à évaluer le taux de défaillance aux effets transitoires d'un type d'élément logique donné. De tels calculs sont par exemple menés en sommant, sur l'intégralité du réseau logique, les taux de défaillance unitaires des éléments logiques dans la situation d'irradiation maximale, c'est-à-dire dans le domaine de l'aéronautique et du spatial, à l'altitude maximale. C'est donc un risque grossier et surévalué qui est estimé par une telle méthode. Notamment, on ne sait pas anticiper le comportement sortie par sortie d'un réseau logique configurable subissant un évènement singulier. Ce comportement peut être éventuellement complexe et impacter plusieurs sorties, toutes les sorties, ou seulement un nombre limité de sorties. Ainsi, à travers ces exemples, on voit que la fiabilité d'une configuration donnée d'un réseau logique configurable est difficilement estimable de manière fine, et il y aurait donc un bénéfice pour les développeurs numériques à disposer d'outils d'assistance leur permettant de mieux juger de la pertinence de leur travail. Objet et résumé de l'invention Pour résoudre ce problème il est proposé une méthode de réalisation d'un réseau logique, comprenant une étape de génération d'une table d'éléments, à l'aide d'une description de circuit électrique relative à une configuration d'un réseau logique configurable, chaque ligne de la table d'éléments indiquant pour un élément logique instancié dans ladite configuration de réseau, un type dudit élément logique et au moins un élément logique connecté à une entrée dudit élément logique, puis une étape d'exploitation d'au moins une entrée de ladite table avec une table de données comprenant des informations individuelles relatives à des types d'éléments logiques de réseau logique, pour éventuellement réécrire la description de circuit électrique de manière à améliorer une fiabilité intégrée de la configuration, et enfin une étape de génération de données de configuration et d'intégration des desdites données de configuration dans un réseau logique configurable. Cette méthode permet un traitement automatique et reproductible, ainsi qu'exhaustif et fin, des problèmes de fiabilité défini dans la table de données. Il s'agit là d'une avancée qui permet aux concepteurs de réseaux logiques configurables (le concepteur numérique) de tester rapidement la pertinence de leurs réalisations, et de garantir aux utilisateurs un certain niveau de sécurité, évalué finement sans prendre d'hypothèse conservatrice coûteuse. Cela est obtenu grâce à l'utilisation d'une table d'éléments indiquant pour un élément logique instancié dans le réseau dans ladite configuration, un type dudit élément logique et au moins un élément logique connecté à une entrée dudit élément logique, qui constitue un outil permettant la mise en place du traitement automatique évoqué, dans l'étape d'exploitation. Dans un mode de réalisation, on procède à la mise en évidence au cours de l'étape d'exploitation, d'éventuelles anomalies de connexion entre éléments logiques dans la configuration à caractériser. Dans un autre mode de réalisation, on procède au calcul d'un taux de défaillance aux évènements singuliers d'une sortie du réseau logique configurable. La table de données peut indiquer pour un type d'éléments logiques un 25 taux de défaillance unitaire en cas d'évènement singulier et/ou une règle de connexion. Dans certaines réalisations, l'étape d'exploitation comprend une étape d'intégration sur une liste d'éléments logiques connectés directement ou indirectement en amont d'une sortie du réseau logique configurable. Dans certaines réalisations, l'étape d'exploitation comprend une étape d'intégration sur un profil de vol, par exemple un profil d'altitude au cours du vol. L'invention concerne également un programme d'ordinateur comprenant 5 des instructions aptes à, quand elles sont exécutées par un microprocesseur, mettre en oeuvre un procédé tel qu'évoqué. Brève description des dessins D'autres caractéristiques et avantages de la présente invention 10 ressortiront de la description qui va maintenant être poursuivie en relation avec les figures annexées sur lesquelles :. La figure 1 présente un premier mode de réalisation de l'invention. La figure 2 présente un aspect de l'invention. La figure 3 présente un deuxième mode de réalisation de l'invention. 15 Les figures 4 et 5 présentent deux aspects du deuxième mode de réalisation. Description détaillée d'un mode de réalisation En figure 1, on a représenté un premier mode de réalisation d'un procédé 20 selon l'invention. Il porte sur la réalisation d'un réseau logique configurable configuré pour obtenir un composant répondant à des spécifications données. Une configuration de réseau électronique configurable est décrite, sur la base des spécifications, dans un langage de haut niveau sous la forme 25 d'une description de matériel 10, dans un fichier source HDL, rédigé par exemple en Verilog ou en VHDL. L'étape de synthèse logique 100 mène ensuite à la génération d'une « net/ist» 20, ou fichier de description de circuit électrique 20. C'est ce fichier qui est utilisé classiquement lors de processus de placement-30 routage menant in fine à la configuration du circuit. Au cours d'une étape de génération 110, une table d'éléments 30 est créée. Cette table recense tous les éléments logiques du réseau logique configurable qui sont instanciés dans la configuration considérée. Un exemple de mode de réalisation de la table d'éléments 30 est présenté plus en détails en figure 2. Comme évoqué précédemment, la table 30 est générée à partir de la description de circuit électrique contenue dans (ou constituée par) le fichier « nedist» 20. La netlist 20 comprend une liste d'éléments logiques instanciés dans la configuration décrite, et la liste des connexions entre ces éléments logiques dans la configuration décrite. La table d'éléments 30 comprend une série de lignes, chaque ligne étant relative à un élément logique instancié dans la configuration du réseau configurable étudiée. Inversement, chaque élément logique instancié fait l'objet d'une ligne, qui dans le mode de réalisation présenté est une ligne unique. L'élément logique instancié objet d'une ligne est décrit dans un champ de celle-ci par son type. Des exemples de type d'éléments logiques sont les types bascule, mémoire, Lookup Table (tableau de correspondances), Phase-locked Loop (boucle à phase asservie), buffer d'entrée (mémoire tampon d'entrée), buffer de sortie (mémoire tampon de sortie), buffer d'horloge (mémoire tampon d'horloge). Les lignes de la table d'éléments peuvent être identifiées par un numéro de ligne. Dans chaque ligne, en plus du type de l'élément logique, des moyens d'identifier les éléments logiques connectés à chacune des bornes de l'élément logique sont présents. Par exemple, pour des éléments logiques comportant quatre bornes (horloge, Reset, Enable, Pins d'entrée), quatre champs (colonnes) sont présents dans la ligne, correspondant aux entrées. Dans chacun de ces champs, le moyen d'identifier l'élément logique connecté concerné par le champ peut être le numéro de la ligne dont cet élément logique est l'objet. Si l'élément logique a plusieurs broches d'entrée fonctionnelle, plusieurs champs « pin d'entrée » sont présents dans la ligne. En revenant à la figure 1, la table d'éléments 30 est confrontée, au cours d'une étape de confrontation 120, avec au moins un contenu d'un fichier 5 de règles 40. Ce fichier 40 comprend une liste de règles de conception de réseaux électroniques, dont des exemples sont donnés ci-après : Ne pas connecter une entrée Reset de bascule avec une sortie de bascule. Ne pas connecter une entrée Horloge de bascule à une sortie de 10 bascule. Connecter chaque pin d'entrée de buffer de sortie à une sortie de bascule. Ce fichier 40 comprend donc des règles individuelles, puisqu'elles sont chacune relatives à un type d'éléments logiques. Chacune de ces règles 15 porte sur les connexions autorisées pour un élément logique du type concerné avec un autre élément logique, du même type ou d'un autre type. Dans le mode de réalisation présenté, il est recherché pour chaque élément logique de la table d'éléments 30 si une règle du fichier 40 est 20 enfreinte. On effectue donc une double boucle, de manière à parcourir tous les éléments logiques instanciés et pour chaque élément logique instancié parcourir toutes les règles. Cette étape de confrontation 120 permet de produire une liste d'anomalies 50, comprenant une description et/ou une localisation de ces anomalies. 25 Cette liste d'anomalies constitue une information intégrée portant sur la configuration étudiée du réseau logique configurable. Sur cette base le concepteur numérique peut analyser les anomalies indiquées au regard de son expérience et de ses choix de conception et éventuellement corriger des anomalies ou justifier ces anomalies dans une documentation accompagnant le produit en phase de développement. L'éventuelle correction se fait sous la forme d'une boucle de réécriture (itération) 130 par laquelle il est procédé à une nouvelle étape de 5 description du matériel 10, puis aux étapes présentées précédemment, jusqu'à la production d'une nouvelle liste d'anomalies 50. Un test (critère d'arrêt) permettant de sortir de la boucle 130 est par exemple l'obtention d'un nombre restreint d'anomalies (par exemple 0 anomalies, ou 0 anomalies d'une catégorie donnée), ou une validation par 10 un ou des spécialistes humains (notamment des pairs techniques) chargés de la revue de la configuration, le ou les spécialistes prenant en compte la liste d'anomalies 50 pour leur décision de validation. Une fois une description de matériel validée par sortie de la boucle de réécriture 130, il est procédé à une étape de placement-routage 140, 15 permettant la création d'un fichier de configuration 55 à partir de la netlist 20, puis à une étape d'intégration 150 du fichier de configuration 55 dans un composant physique (puce), pour obtenir un réseau logique configuré 58. En figure 3, un deuxième mode de réalisation est présenté. Il peut être 20 combiné au mode de réalisation de la figure 1. Il utilise à nouveau le fichier netlist 20, et procède par une étape de génération 110 similaire à celle présentée ci-dessus. Une table d'éléments 30 est produite, comme précédemment. Elle est ensuite combinée au cours d'une étape de combinaison 220 avec une table de données de taux de défaillance 60 25 présentant des taux de défaillance unitaires pour les types d'éléments logiques utilisés dans un réseau logique configurable. La table de données 60 comprend une liste de types d'élément logiques présents dans les circuits logiques configurables, et pour chaque type, un taux de défaillance individuel (c'est-à-dire pour le type d'élément logique) et unitaire (c'est à dire pour un exemplaire de l'élément logique) face au risque d'évènements singuliers (SEE, SEU) estimé au niveau de la mer. L'étape de combinaison 220 comprend l'extraction hors de la table de données 60 du taux de défaillance associé à un élément logique présent dans la table 30. L'étape de combinaison 220 peut être intégrée dans une étape plus vaste d'intégration 230. Une telle étape d'intégration intègre plusieurs taux de défaillance obtenus par des étapes de combinaison successives. Dans le mode de réalisation présenté, l'intégration est effectuée pour 10 l'ensemble des éléments logiques qui sont connectés directement ou indirectement à une sortie du circuit électronique configurable. Pour effectuer cette intégration, une sortie 70 du circuit est identifiée. Une sortie du circuit peut être indiquée par référence à une ligne de la table 30, dont l'objet est l'élément logique constituant la sortie. L'intégration est 15 une somme des taux de défaillance individuels unitaires des s connectés directement ou indirectement à la sortie. Son résultat est un taux de défaillance intégré 90, pour une sortie donnée du réseau configurable, pour un profil de vol. Le calcul peut être reproduit pour d'autres sorties du composant, voire toutes les sorties. 20 Une éventuelle modification de la configuration du circuit se fait sous la forme d'une boucle de réécriture (itération) 130 par laquelle il est procédé à une nouvelle étape de description du matériel 10, comme évoqué en relation avec la figure 1. Un test (critère d'arrêt) permettant de sortir de la boucle 130 est par 25 exemple l'obtention de taux de défaillance suffisamment faibles, pour chacune des sorties du composant, ou pour certaines sorties du composant. Comme précédemment, une fois une description de matériel validée par sortie de la boucle de réécriture 130, il est procédé à une étape de 30 placement-routage 140, permettant la création d'un fichier de configuration 55 à partir de la netlist 110, puis à une étape d'intégration 150 du fichier de configuration 55 dans un composant physique (puce), pour obtenir un réseau logique configuré 58. Des détails d'un mode de réalisation de l'opération d'intégration 230 sont 5 présentés en figure 4. A partir de l'identification d'une sortie 70 dans la table d'éléments 30, on effectue un recensement 215 des éléments logiques connectés directement ou indirectement à la sortie (ces éléments logiques forment un arbre), à l'aide de la table d'éléments 30. Cette étape permet la 10 formation d'une liste 35 des éléments logiques impliqués. Ceux-ci sont identifiés dans cette liste par exemple uniquement par leur type, sans autre information, notamment sans information de connexion. Par ailleurs, à partir de la table d'éléments 30 et de la table de données de taux de défaillance unitaires 60, une boucle est effectuée jusqu'à 15 épuisement des éléments logiques de la table (constaté par un test 225). Dans cette boucle, une combinaison (extraction) 200 du contenu de la base 60 avec le contenu de la table d'éléments 30 permet d'enrichir cette table avec les taux de défaillance pour créer une table enrichie 37. Ces taux sont ensuite additionnés (étape 227) pour tous les éléments logiques 20 de la liste 35. Le taux de défaillance pour la sortie considérée est alors obtenu (référence 87). L'intégration est également effectuée (étape 228) en fonction du temps le long d'un profil de vol 1000, qui indique pour un vol l'évolution de l'altitude en fonction du temps t, comme cela apparaît en figure 5. Dans 25 le mode de réalisation présenté, le taux de défaillance intégré calculé comme évoqué ci-dessus est multiplié le long du profil de vol par un coefficient 1010 dépendant de l'altitude 1000, représentant la variation du taux de radiation par rapport à ce taux mesuré au niveau de la mer. On obtient alors les taux de défaillance 89 sur chacun des segments du profil 30 de vol (ou si le profil de vol est défini par une courbe non segmentée, on obtient des taux de défaillance instantanés), puis un taux de défaillance final 90 pour une sortie du réseau configurable pour une mission complète suivant un profil de vol. L'opération est de préférence répétée pour chaque sortie du réseau configurable. Le concepteur numérique peut alors sur cette base évaluer la fiabilité de la configuration du réseau logique configurable qu'il étudie. L'invention n'est pas limitée aux modes de réalisation présentés mais s'étend à toutes les variantes dans le cadre de la portée des revendications.10 REVENDICATIONS1. Méthode de réalisation d'un réseau logique, comprenant : une étape de génération (110) d'une table d'éléments (30), à l'aide d'une description de circuit électrique (20) relative à une configuration (10) d'un réseau logique configurable, chaque ligne de la table d'éléments (30) indiquant pour un élément logique instancié dans ladite configuration de réseau, un type dudit élément logique et au moins un élément logique connecté à une entrée dudit élément logique, une étape d'exploitation (120 ; 220) d'au moins une entrée de ladite table d'éléments (30) avec une table de données (40 ; 60) comprenant des informations individuelles relatives à des types d'éléments logiques de réseau logique, pour éventuellement réécrire (130) la description de circuit électrique (20) de manière à améliorer une fiabilité intégrée (50 ; 90) de la configuration (10), et une étape de génération (140) de données de configuration (55) et d'intégration (150) des desdites données de configuration dans un réseau logique configurable. 2. Méthode selon la revendication 1, comprenant la mise en évidence au cours de l'étape d'exploitation, d'éventuelles anomalies de connexion (50) entre éléments logiques dans la configuration à caractériser. 3. Méthode selon la revendication 1 ou la revendication 2, comprenant le calcul d'un taux de défaillance aux évènements singuliers d'une sortie du réseau logique configurable (90). 4. Méthode selon l'une des revendications 1 à 3, dans laquelle la table de données (60) indique pour un type d'éléments logiques un taux de défaillance unitaire en cas d'évènement singulier. 5. Méthode selon l'une des revendications 1 à 4, dans laquelle la table de données (40) indique pour un type d'éléments logiques une règle de connexion. 6. Méthode selon l'une des revendications 1 à 5, comprenant au cours de l'étape d'exploitation une étape d'intégration (227) sur une liste (35) d'éléments logiques connectés directement ou indirectement en amont d'une sortie du réseau logique configurable. 7. Méthode selon l'une des revendications 1 à 6, comprenant au cours de l'étape d'exploitation une étape d'intégration (228), sur un profil de vol (1000). 8. Programme d'ordinateur comprenant des instructions aptes à, quand elles sont exécutées par un microprocesseur, mettre en oeuvre un procédé selon l'une des revendications 1 à 7.