Brevet FR2910146A1 — publié le 20080620

PROCEDE ET DISPOSITIF D'AIDE A LA CONCEPTION DE CIRCUITS INTEGRES 5 10 La présente invention concerne un procédé et un dispositif d'aide à la conception de circuits intégrés. Elle s'applique, en particulier à l'industrie électronique. Le flot de conception et d'intégration d'un bloc IP est par nature fortement hétérogène et instable. Il est constitué d'un grand nombre d'outils et de méthodes pour chaque phase d'implémentation et de vérification, et est complété par des pratiques spécifiques et 15 propriétaires bâties sur l'expérience des différents acteurs. La mise en oeuvre de ces outils et méthodes génère un ensemble de données utiles à la mesure et au contrôle de la qualité. Mais la nature de ces données, leur format, leur emplacement sont directement liés à l'outil et à la méthode utilisés. Leur interprétation pour en déduire un paramètre qualité nécessite donc une connaissance spécifique. 20 Les paramètres qualité utilisés pour mesurer et contrôler la conception et l'intégration d'un bloc IP sont universels (dans le cadre de la conception de circuits intégrés) et sont indépendants des outils et méthodes utilisés. Par exemple un bloc IP conçu dans le cadre d'un flot A doit pouvoir être utilisé dans le cadre d'un flot B. La qualité intrinsèque d'un bloc IP' ne doit pas dépendre des moyens mis en oeuvre pour le concevoir. C'est pourtant ces 25 moyens qui vont donner les indications sur sa qualité. Concernant les paramètres qualité, il existe des standards de fait, promus par certains organismes comme le VSIA, mais il est important de laisser la porte ouverte à la définition d'autres paramètres si nécessaire. Il existe donc le besoin d'obtenir une vue homogène de la qualité d'un bloc IP, au travers des différentes phases de son cycle de vie, mais aussi une même vue entre 30 différents blocs IP, à partir de données fournies par une très grande variété d'outils et de méthodes, dans un même flot ou entre différents flots. Cette vue de la qualité doit être obtenue grâce à une méthode permettant de supporter le concepteur ou l'utilisateur du bloc IP dans la capture des informations nécessaires et l'exploitation de ces informations pour la mesure et le contrôle de la qualité. 35 L'invention ici décrite permet de mettre en place une telle méthode et de remédier aux inconvénients de l'art antérieur. 2910146 2 A cet effet, selon un premier aspect, la présente invention vise un procédé d'aide à la conception de circuits intégrés, caractérisé en ce qu'il comporte : une étape de mise en place d'une couche d'abstraction de l'information mettant en oeuvre un ensemble de classes d'objets pour créer des objets, la couche d'abstraction étant indépendante du flot de conception de tout ou partie de circuits intégrés, - une étape de capture de données représentative dudit flot de conception, pour attribuer des valeurs à des champs d'au moins une partie des dits objets et - une étape d'interprétation des objets par des applications de mesure et/ou de contrôle de la qualité de la conception. La présente invention fournit donc une structure d'objets et un procédé qui permettent de recueillir, sous une forme homogène et stable, l'ensemble des informations nécessaires pour mesurer et contrôler la qualité de tout ou partie d'un circuit intégré pendant les phases de conception et d'intégration. Ce procédé permet ainsi la mise en place d'un tableau de bord qualité unique pour toutes les phases du cycle de vie de tout ou partie d'un circuit intégré, dans un environnement fortement hétérogène et instable. On note que la couche d'abstraction étant indépendante du flot de conception de circuit intégré, fournit une base stable et homogène pour la mesure et le contrôle de la qualité. Selon des caractéristiques particulières, au cours de l'étape de mise en place de la couche d'abstraction, la couche d'abstraction possède une structure dynamique pour stocker des informations nécessaires à la mesure et au contrôle qualité de blocs de circuits intégrés réutilisables. La mise en oeuvre de la présente invention fournit ainsi au moins un tableau de bord pour la mesure et le contrôle de la qualité de conception et d'intégration de blocs de circuit intégré réutilisables, aussi appelés IP (acronyme de Intellectual Property pour propriété intellectuelle). Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus comporte une étape de stockage de noms des champs et de leurs valeurs dans des listes dynamiques, des catégories d'objets mises en oeuvre dans la couche d'abstraction étant, elles-mêmes, des objets, donc étant créées dynamiquement, et ayant des listes dynamiques pour leurs caractéristiques. Les structures permettant de stocker les informations qualité peuvent donc être programmées, créées, modifiées selon les besoins, par l'intermédiaire de l'interface graphique, sans avoir à modifier le code source de l'application. Selon des caractéristiques particulières, au cours de l'étape de mise en place de la couche d'abstraction, ladite couche d'abstraction est basée sur deux classes d'objets avec 2910146 3 listes dynamiques de champs, la première classe permettant de créer des objets ( catégories définissant les formats et caractéristiques des objets informations instances de la deuxième classe. Grâce à sa structure dynamique, la couche d'abstraction peut être reconfigurée 5 dynamiquement en fonction des besoins. Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus comporte une étape de modification dynamique de menus d'une interface graphique pour la saisie et la visualisation des objets informations , ces menus étant modifiés dynamiquement en fonction de la nouvelle structure des objets. 10 Ainsi, les objets existants sont mis à jour dynamiquement en fonction de la nouvelle structure : les champs obsolètes sont supprimés et les champs nouveaux sont éventuellement remplis à la prochaine modification des objets. Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus comporte une étape de référencement d'objets informations les uns avec les 15 autres par des champs de type lien, les objets informations possédant au moins un champ dont la valeur est obtenue au cours de l'étape de capture de données. Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus comporte une étape de stockage des objets catégories et des objets informations dans au moins une base de données relationnelle. 20 Selon des caractéristiques particulières, chaque dite base de données comporte, au moins, une table CATEGORY pour stocker les objets catégories et une table CUSTOM pour stocker les objets informations . Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus comporte une étape de création d'une base de données pour chaque projet et/ou 25 pour chaque bloc de circuit intégré. Les catégories d'objets informations peuvent donc être personnalisées projet par projet et les objets informations sont stockés projet par projet. Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus comporte une étape de spécification d'au moins un objet capteur mis en oeuvre 30 au cours de l'étape de capture de données, pour créer une passerelle entre la couche d'abstraction et le flot de conception de circuit intégré. Ainsi, la mesure et le contrôle de qualité d'un bloc IP sont effectués sans perturber le processus de conception, grâce à l'automatisation de la capture des informations nécessaires, tout en préservant l'intégrité des données captées. 35 Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus comporte une étape de capture automatique de valeurs de champs d'objets, par un lien avec au moins un objet capteur . 2910146 4 Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus comporte une étape de construction d'une bibliothèque d'applications de mesure et/ou de contrôle de la qualité. On observe que la mise en oeuvre de la présente invention permet que cette bibliothèque soit stable et standardisée au sein d'une organisation. 5 Selon des caractéristiques particulières, l'étape d'interprétation des objets par des applications de mesure et/ou de contrôle de la qualité de la conception est effectuée en mémoire vive dans des listes. Ainsi, cette étape ne met pas en oeuvre de requêtes SQL sur la base de données. L'utilisation des requêtes SQL se limite donc préférentiellement à la constitution des listes 10 pour traitement dans la couche métier. Les applications reposant sur la couche d'abstraction peuvent ainsi manipuler un grand nombre d'objets (plusieurs dizaines de milliers) et la vitesse d'exécution est optimisée. Selon un deuxième aspect, la présente invention vise un dispositif d'aide à la conception de circuits intégrés, caractérisé en ce qu'il comporte : 15 - un moyen de mise en place d'une couche d'abstraction de l'information mettant en oeuvre un ensemble de classes d'objets pour créer des objets, la couche d'abstraction étant indépendante du flot de conception de tout ou partie de circuits intégrés, un moyen de capture de données représentative dudit flot de conception, 20 pour attribuer des valeurs à des champs d'au moins une partie des dits objets et un moyen d'interprétation des objets par des applications de mesure et/ou de contrôle de la qualité de la conception. Les avantages, buts et caractéristiques de ce dispositif étant similaires à ceux du 25 procédé tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre, faite, dans un but explicatif et nullement limitatif en regard des dessins annexés, dans lesquels : la figure 1 représente, schématiquement, des classes mises en oeuvre par 30 des modes de réalisation particuliers du procédé objet de la présente invention, - la figure 2 représente, schématiquement, des bases de données mises en oeuvre par des modes de réalisation particuliers du procédé objet de la présente invention, 35 - la figure 3 représente des interactions entre un flot et des composants logiciels mis en oeuvre par des modes de réalisation particuliers du procédé objet de la présente invention, 2910146 5 - la figure 4 représente, sous forme d'un logigramme des étapes mises en oeuvre dans des modes de réalisation particuliers du procédé objet de la présente invention et la figure 5 représente, schématiquement, un mode de réalisation particulier 5 du dispositif objet de la présente invention. En ce qui concerne la couche, ou niveau, d'abstraction mise en oeuvre pour l'implémentation de la présente invention, la figure 1 illustre un diagramme de classes dans lequel se trouvent : - une classe 105 Field , 10 - une classe 110 Element , une classe 115 ElementList , - une classe 120 Category et - une classe 125 Custom . On observe que toutes les informations et données nécessaires à la mesure et au 15 contrôle qualité sont stockées, dans les classes 105 à 125, sous la forme d'objets ou d'attributs d'objets. Ainsi, la classe 105 Field comporte les champs suivants, dont le détail est donné plus loin : - name , 20 title , - type , - size , - formSize , formValue , 25 capture , - color et import . La classe 110 Element comporte les champs suivants : - name , 30 summary , - description , - author , - creationDate et - modificationDate . 35 La classe 115 ElementList comporte l'objet suivant : - Elements . La classe 120 Category comporte les champs suivants : 2910146 6 fieldName , - fieldTitle , - fieldType , fieldSize , 5 - fieldFormSize , - fieldFormValue , - fieldCapture , fieldColor , - fieldlmport et 10 - fieldObject . Et la classe 125 Custom comporte les champs suivants : - categoryName , - fieldName et fieldValue . 15 Les objets appartiennent à une catégorie (ou type) d'objets dont la structure est décrite ci-dessous. Un certain nombre de catégories d'objets sont prédéfinies mais leur structure peut être modifiée (liste des attributs ou champs) et de nouvelles catégories peuvent être créées, en préservant l'intégrité des objets déjà crées. La structure des objets est construite à partir de deux classes : la classe 120 20 Category qui permet de définir les catégories par une liste de champs avec leurs caractéristiques et une classe 125 Custom qui permet de créer des objets informations et de stocker les valeurs des champs selon leur catégorie. Les catégories sont donc, elles-même, des objets instances de la classe 120 Category et les informations de qualité sont stockées dans des objets instances de la classe 125 25 Custom . Les classes 120 Category et 125 Custom héritent de la classe mère 110 Element . Tous les objets catégories et tous les objets informations possèdent donc les champs de cette classe : name , summary , description , author , creationDate et modificationDate . La persistance des objets catégories et des objets informations est assurée 30 par une couche de bases de données relationnelles, représentées en figure 2. En figure 2, deux bases de données 215 et 220 sont représentées. Chaque base de données, 215 et 220, est constituée de deux tables : la table 205 CATEGORY et la table 210 CUSTOM . La structure des enregistrements dans les tables est décrite ci-dessous. Une base de données est créée par projet et par bloc IP. Les catégories d'objets informations 35 peuvent donc être personnalisées projet par projet et les objets informations sont stockés projet par projet. 2910146 7 On note que la persistance des objets peut être aussi assurée par d'autres moyens, par exemple des fichiers XML. (acronyme de eXtended Markup Language pour langage de balisage étendu ). La classe 120 Category permet d'instancier un objet définissant une catégorie 5 d'information. Cet objet catégorie d'information est ensuite référencé lors de la création d'un objet information par le champ categoryName de la classe 125 Custom . La définition d'une catégorie consiste à spécifier la liste des champs qui seront remplis lors de la création de l'objet information appartenant à cette catégorie, avec leurs caractéristiques, par exemple graphique, titre, valeurs possibles, mapping, couleurs et ordre. La classe 10 Category comporte un ensemble de champs de type liste pour spécifier chaque champ de la catégorie. A une position dans une liste correspond une caractéristique d'un champ. Les champs de type liste sont les suivants : fieldName : Nom du champ ; doit être unique pour une catégorie donnée, fieldTitle : Titre du champ ; texte apparaissant dans l'interface graphique 15 pour la saisie ou la lecture du champ, - fieldType : Type du champ ; qui permet de définir à la fois la fonction du champ et le mode graphique utilisé pour sa saisie ; parmi les exemples de types, on peut citer Title , Text , TextArea , Password , Path , FileUpload , Date , Select , Radio , LinkSingle et 20 LinkMultiple . D'autres types peuvent être rajoutés, l'interprétation des types étant programmée dans une interface graphique et des applications correspondantes, fieldSize : Taille du champ en mémoire, utile pour les types textes, - fieldFormSize : Taille de la zone du champ dans l'interface graphique de 25 saisie (formulaire), - feldFormValue : Enumération des valeurs possibles pour la saisie du champ dans l'interface graphique de saisie (formulaire). Dans le cas du type LinkSingle , lien avec un autre objet, ou du type LinkMultiple , lien avec d'autres objets, énumération des catégories pouvant être liées avec ce 30 champ de cette catégorie, - fieldCapture : Nom de la catégorie de l'objet utilisé pour la saisie automatique de la valeur du champ, fieldColor : Couleur de la zone du champ dans l'interface graphique et - fieldlmport : Nom du mapping correspondant pour l'import d'objets 35 informations d'une source externe. La classe 120 Category comporte aussi un champ fieldObject de type liste d'objets de classe Field permettant d'accéder directement aux caractéristiques d'un 2910146 8 champ de l'objet information , lors des traitements sur cet objet par l'interface graphique ou par les applications. Un champ de type liste ci-dessus est utilisé pour les transferts des catégories avec la base de données et lors de la saisie des catégories par l'interface graphique. 5 La classe 125 Custom permet d'instancier un objet information . La catégorie de l'objet est précisée par le champ categoryName , dont la valeur correspond au nom d'un objet catégorie précédemment créé , instance de la classe Category décrite ci-dessus. La classe 125 Custom comporte deux champs de type liste, fieldName et 10 fieldValue permettant de stocker, d'une part, les noms des champs de l'objet information et, d'autre part, les valeurs correspondantes. Ainsi, à une position donnée, on obtient, dans la première liste, le nom du champ et, dans la deuxième liste, la valeur correspondant à ce champ. Les caractéristiques des champs sont stockées dans l'objet catégorie correspondant. Les valeurs des champs sont toutes stockées sous la forme 15 d'une chaîne de caractères. L'interprétation des valeurs des champs en type entier, réel ou autres, est programmée dans les applications correspondantes. La cohérence des valeurs saisies ou capturées automatiquement est vérifiée grâce au type du champ spécifié dans l'objet catégorie correspondant. Les noms des champs et leurs valeurs étant stockées dans des listes dynamiques, 20 les catégories étant elles-mêmes des objets (donc crées dynamiquement) ayant des listes dynamiques pour leurs caractéristiques. Les structures permettant de stocker les informations qualité peuvent donc être programmées, créées, modifiées selon les besoins, par l'intermédiaire de l'interface graphique, sans avoir à modifier le code source de l'application. 25 Les menus graphiques pour la saisie et la visualisation des objets informations sont, eux aussi, modifiés dynamiquement en fonction de la nouvelle structure. Les objets existants sont mis à jour dynamiquement en fonction de la nouvelle structure : les champs obsolètes sont supprimés et les champs nouveaux sont éventuellement remplis à la prochaine modification des objets (synchronisation automatique des listes fieldName et 30 fieldValue ). La classe Category peut aussi évoluer en ajoutant de nouveaux champs liste pour spécifier des nouvelles caractéristiques pour les champs des objets informations . La modification du code de la classe Category impose donc une mise à jour des objets catégories instances de cette classe, une telle modification devant être effectuée lors de 35 la réinstallation de l'application. En revanche, tous les objets informations déjà existants dans la base de données sont préservés par une telle modification puisque les caractéristiques de leurs champs ne sont pas dans la classe 125 Custom . On peut ainsi 2910146 9 enrichir l'application en rajoutant de nouvelles caractéristiques pour les champs des objets informations sans impacter les objets informations créés par une version précédente de l'application. Comme expliqué ci-dessus, la persistance des objets catégories et 5 informations est réalisée par le stockage des objets en base de données relationnelle. Chaque objet est mémorisé sous la forme d'un seul enregistrement dans une table, CATEGORY ou CUSTOM . Les champs liste dynamiques sont mappés, c'est-à-dire stockés de manière structurée dans des colonnes de type TEXT , les éléments des listes étant séparés par une expression régulière programmable, par exemple le caractère `1'. 10 Un champ de type liste est ainsi stocké dans la base de données sous la forme d'une chaîne de caractères dans une colonne, ses différents éléments étant séparés par le séparateur choisi. L'expression régulière choisie ne doit pas apparaître dans les valeurs des éléments de la liste. Lors d'un transfert d'un objet mettant en oeuvre une base de données, une conversion est effectuée entre les champs de type liste de l'objet et les colonnes de 15 type TEXT de l'enregistrement dans la base de données. D'autres mappings des champs de type liste peuvent être envisagés. Ce choix permet de limiter l'utilisation de la base de données à des instructions SQL (acronyme de Structured Query Language pour langage de recherche structuré) les plus simples pour enregistrer, modifier ou sélectionner les objets, l'aspect dynamique de la structure des objets 20 étant traitée au niveau des classes et leurs champs de type liste . Le mode de réalisation particulier du procédé objet de la présente invention ne repose donc pas sur une organisation complexe des objets dans la base de données exploitée par des instructions SQL de jointure (voir méthode MatrixOne , marque déposée), afin de séparer la couche métier de la couche de persistance et ainsi de pouvoir choisir facilement d'autres 25 techniques de mémorisation, comme des fichiers XML. L'architecture du système peut donc être optimisée et sécurisée en fonction des besoins et en cas de panne, par exemple, par un basculement vers une mémorisation sous forme de fichiers XML, si le serveur SQL n'est pas disponible. De plus, les applications reposant sur la couche d'abstraction peuvent manipuler un 30 grand nombre d'objets (plusieurs dizaines de milliers) et ont besoin d'accéder aux différents champs de façon optimale. Pour optimiser la vitesse d'exécution, tous ces traitements se font préférentiellement en mémoire vive dans des listes et non par des requêtes SQL sur la base de données. L'utilisation des requêtes SQL se limite donc préférentiellement à la constitution des listes pour traitement dans la couche métier. 35 La couche d'abstraction propose une API (acronyme de Application Programming Interface pour interface de programmation d'application) simple. En langage orienté objet, il s'agit de l'ensemble des méthodes publiques et documentées d'une classe permettant de 2910146 10 créer des objets de cette classe et de les manipuler. Il s'agit par exemple de méthodes de set et de get permettant de lire ou d'écrire les différents champs de l'objet référencé dans le code d'une application. Dans des modes de réalisation de la présente invention, cette API s'enrichit au fil du temps, de façon à constituer une bibliothèque de méthodes, 5 permettant la création de nouvelles applications. Une application pouvant devenir elle-même une nouvelle méthode de la bibliothèque si elle s'avère utile pour d'autres, de façon à pouvoir programmer de nouvelles applications, par exemple : recherche d'objets en fonction de leur catégorie et/ou de leur nom, récupération de la valeur d'un champ d'un objet et 10 création, modification, suppression d'objet(s). La classe 115 ElementList est utilisée pour stocker les listes d'objets sélectionnés pour traitement. En ce qui concerne la capture de l'information, toutes les informations et données nécessaires à la mesure et au contrôle qualité sont capturées : 15 manuellement au travers d"un interface graphique, ou GUI (acronyme de Graphical User Interface pour interface utilisateur graphique), par exemple, pour les données et remarques issues d'une réflexion humaine ou - automatiquement, par exécution d'objets capteurs pour les valeur de paramètres mesurables. 20 L'interface graphique propose un ensemble de menus pour la visualisation et l'édition des objets catégories et informations . Le format des menus pour les objets informations est automatiquement construit à partir des caractéristiques décrites dans la catégorie correspondante. Par ces menus, les objets et leurs champs peuvent être manuellement spécifiés. 25 Dans le cadre de la mesure et du contrôle de la qualité d'un processus, il est primordial que la collecte des informations nécessaires se fasse de manière continue et sans perturber le processus lui-même. Dans le cas de la conception de circuit intégré, il est important de minimiser le coût requis pour la capture des informations afin de ne pas consommer des ressources dédiées à la réalisation du bloc IP, ce qui, au final, impacterait 30 de façon négative la qualité du bloc IP. Un grand nombre d'informations utiles pour la mesure et le contrôle de la qualité étant générées par des outils de conception et des méthodes formelles, sous différentes formes, leur capture dans la couche d'abstraction précédemment décrite est effectuée automatiquement. L'information peut être disponible dans des fichiers texte, dans des bases de données ou retournée par appel de programmes. 35 La méthode mise en oeuvre pour l'implémentation du procédé objet de la présente invention s'appuie sur des routines logicielles encapsulées dans des objets informations programmables comme précédemment décrit. Les champs de cette catégorie d'objet 2910146 11 permettent de spécifier les expressions régulières à rechercher dans les fichiers, les paramètres de connexion à des bases de données, les appels de programmes. Ces objets ( capteurs sont accrochés à des champs d'objets informations pour importer automatiquement leur valeur. Les objets capteurs sont utilisés pour importer des objets 5 d'une catégorie en utilisant les informations de mapping pour la correspondance des champs. Ces objets capteurs peuvent donc être créés, modifiés et mémorisés afin de bâtir une passerelle automatique entre les éléments spécifiques et instables des flots de conception et la couche d'abstraction stable et homogène. L'adaptation d'un objet ( capteur à une nouvelle situation se fait par la modification d'un ou plusieurs champs de 10 l'objet correspondant. En ce qui concerne les applications, les objets et les champs des objets capturés et stockés dans la couche d'abstraction comme précédemment décrit, sont interprétés par des programmes générant les vues qualité sous différentes formes, par exemple, tableaux, graphes, rapports, metrics (ensemble de points de mesure dont la valeur permet de mesurer 15 une qualité ou une tendance, par exemple le taux de bugs trouvés par semaine) ou supports standards. L'indépendance de la couche d'abstraction avec les spécificités des flots de conception permet de bâtir un ensemble d'applications de mesure et de contrôle de la qualité stable et standardisé au sein d'une organisation. 20 Les applications dépendent uniquement du format de la couche d'abstraction défini par les objets catégories . De nouvelles applications peuvent être développées en utilisant l'API de la couche d'abstraction fournissant toutes les fonctions nécessaires à la manipulation des objets. La figure 3 illustre l'environnement spécifique lié à un flot 305 et le domaine 25 indépendant 310, qui comporte des capteurs 315 reliés au flot 305, une couche d'abstraction 320, une API 325, des applications 330 et l'interface graphique 335. Les capteurs forment l'interface entre le flot et la couche d'abstraction 320. La figure 4 illustre un mode de réalisation particulier du procédé objet de la présente invention pour la création d'objets de catégorie FUNCTSPEC , spécification fonctionnelle, 30 contenant un champ permettant de lier ce type d'objets FUNCTSPEC avec un ou plusieurs objets de catégorie REQUIREMENT , expression des besoins pour la conception d'un bloc IP, déjà définie, et de catégorie DOCUMENT ,méta-information sur les documents de référence ou de standards utilisés pour la conception, déjà définie, un champ permettant de stocker l'état de sa revue manuelle, et un champ permettant de lier ce 35 type d'objets avec un objet de catégorie RELEASE , version du bloc IP, déjà définie. 2910146 12 Au cours d'une étape 405, on crée une couche, ou niveau, d'abstraction avec les classes 105 à 125 illustrées en figure 1. On note que la couche d'abstraction propose une API simple, de façon à pouvoir programmer de nouvelles applications, par exemple : recherche d'objets en fonction de leur catégorie, de leur nom, 5 récupération de la valeur d'un champ d'un objet et création, modification, suppression d'objet(s). La couche d'abstraction de l'information met en oeuvre un ensemble de classes d'objets pour créer des objets, et est indépendante du flot de conception de tout ou partie de circuits intégrés. La couche d'abstraction possède une structure dynamique pour stocker des 10 informations nécessaires à la mesure et au contrôle qualité de blocs de circuits intégrés réutilisables. La couche d'abstraction est basée sur deux classes d'objets avec listes dynamiques de champs, la première classe permettant de créer des objets catégories définissant les formats et caractéristiques des objets informations instances de la deuxième classe. 15 Au cours d'une étape 410, on crée des objets catégories qui définissent une catégorie (ou type) d'objets dont la structure est décrite ci-dessus. On rappelle qu'un certain nombre de catégories d'objets sont prédéfinies et que leur structure peut être modifiée (liste des attributs ou champs) et de nouvelles catégories peuvent être créées, en préservant l'intégrité des objets déjà crées. La structure des objets est construite à partir de deux 20 classes : la classe 120 Category qui permet de définir les catégories par une liste de champs avec leurs caractéristiques et une classe 125 Custom qui permet de créer des objets informations et de stocker les valeurs des champs selon leur catégorie. La classe 120 Category permet d'instancier un objet définissant une catégorie d'information. Cet objet catégorie d'information est ensuite référencé lors de la création 25 d'un objet information par le champ categoryName de la classe 125 Custom . La définition d'une catégorie consiste à spécifier la liste des champs qui seront remplis lors de la création de l'objet information appartenant à cette catégorie, avec leurs caractéristiques, par exemple graphique, titre, valeurs possibles, mapping, couleurs et ordre. La classe 120 Category comporte, en particulier, le champ fieldObject de type 30 liste d'objets de classe Field permettant d'accéder directement aux caractéristiques d'un champ de l'objet information , lors des traitements sur cet objet par l'interface graphique ou par les applications. Un champ de type liste ci-dessus est utilisé pour les transferts des catégories avec la base de données et lors de la saisie des catégories par l'interface graphique. 35 La classe 125 Custom permet d'instancier un objet information Les noms des champs et leurs valeurs étant stockées dans des listes dynamiques, les catégories étant elles-mêmes des objets (donc crées dynamiquement) ayant des listes 2910146 13 dynamiques pour leurs caractéristiques. Les structures permettant de stocker les informations qualité peuvent donc être programmées, créées, modifiées selon les besoins, par l'intermédiaire de l'interface graphique, sans avoir à modifier le code source de l'application. 5 L'étape 410 est en fait la création des objets catégorie dans lesquels un ou plusieurs champs peuvent être spécifiés comme étant un lien vers d'autres objets informations d'une certaine catégorie. Ce mécanisme de lien permet la spécification d'un champs de type lien ( LinkSingle , LinkMultiple ). Dans l'exemple illustré par la figure 4, on définit un objet catégorie avec les 10 valeurs suivantes pour les champs de la classe Category , c'est-à-dire que cet objet est créé par un programme ou que l'on crée une nouvelle instance de la classe Category en précisant les valeurs des champs, les champs de type listes qui permettent de préciser les caractéristiques de chaque champ de la catégorie ainsi créée étant saisis dans une table par l'intermédiaire de l'interface graphique 335 : 15 - name : FUNCTSPEC , nom permettant de référencer la catégorie pour les objets informations , summary : catégorie pour les objets de spécifications fonctionnelles (texte libre pour présenter brièvement la nature de l'objet), description : cette objet catégorie comporte les 20 champs requirementName , manualReview , configuration . Le champ requirementName est utilisé pour etc (texte libre permettant de décrire dans les détails le rôle de cet objet), fieldName : IrequirementNamelmanualReviewIconfigurationl (noms des champs spécifiques des objets appartenant à cette catégorie, séparés par l'expression régulière choisie, en l'occurence le caractère 'I'), fieldTitle : IRequirement NamelManual ReviewlConfigurationl (titres des champs spécifiques utilisés pour la visualisation des objets et dans les formulaires de saisie), fieldType : ILinkMultiplelRadiolLinkSingleI (types des champs permettant de définir leur fonction et leurs caractéristiques graphiques : le premier est un lien multiple saisi par liste de sélection, le deuxième est un bouton radio, le troisième est un lien unique saisi par liste de sélection, fieldSize : Inoneinoneinonel (la taille mémoire n'est pas à préciser pour ces types de champs), fieldFormSize : Inoneinoneinonel (la taille des zones graphiques n'est pas à préciser pour ces types de champs), 25 30 35 2910146 14 fieldFormValue : IR.EQUIREMENT,DOCUMENTIYes,NoIRELEASEI (pour le premier champ, tous les objets de catégorie REQUIREMENT et de catégorie DOCUMENT, déjà définis, seront proposés en sélection, pour le deuxième champ, les valeurs Yes et No seront proposées en bouton 5 radio, pour le troisième champ, tous les objets de catégorie RELEASE, déjà définis, seront proposés en sélection), - fieldCapture : Inoneinoneinonel (aucun de ces champs n'est capturé automatiquement), - fieldColor : ISILVERIBISQUEISILVERI (couleurs différentes pour le 10 deuxième champ dans l'interface graphique) et - fieldl mport IrequirementNamelmanualReviewlconfigurationl (correspondance de noms pour le mapping en cas d'importation automatique des objets de cette catégorie). Au cours d'une étape 420, on met à jour une interface graphique dont les menus 15 graphiques pour la saisie et la visualisation des objets informations sont, eux aussi, modifiés dynamiquement en fonction de la nouvelle structure. Les objets existants sont mis à jour dynamiquement en fonction de la nouvelle structure : les champs obsolètes sont supprimés et les champs nouveaux sont éventuellement remplis à la prochaine modification des objets (synchronisation automatique des listes fieldName et fieldValue ). 20 L'interface graphique propose un ensemble de menus pour la visualisation et l'édition des objets catégories et informations . Le format des menus pour les objets informations est automatiquement construit à partir des caractéristiques décrites dans la catégorie correspondante. Par ces menus, les objets et leurs champs peuvent être manuellement spécifiés. 25 Dans l'exemple illustré en figure 4, une fois chaque objet catégorie créé, l'interface graphique dispose de toutes les caractéristiques nécessaires pour proposer automatiquement tous les menus pour éditer les objets informations de catégorie FUNCTSPEC , instances de la classe Custom . Au cours d'une étape 425, on crée une base de données relationnelle pour assurer la 30 persistance des objets catégories et des objets informations , constituée de deux tables : la table 205 CATEGORY et la table 210 CUSTOM . La structure des enregistrements dans les tables est décrite ci-dessus. On stocke ainsi les objets catégories et les objets informations dans une base de données relationnelle. Préférentiellement, on crée une base de données pour chaque projet et/ou pour 35 chaque bloc de circuit intégré. Chaque base de données comporte, au moins, une table CATEGORY pour stocker les objets catégories et une table CUSTOM pour stocker les objets informations . 2910146 15 Au cours d'une étape 430, on crée des objets capteurs qui effectue la capture de l'information, c'est-à-dire des informations et données nécessaires à la mesure et au contrôle qualité. La spécification d'au moins un objet capteur crée une passerelle entre la couche d'abstraction et le flot de conception de circuit intégré. 5 Pour que la collecte des informations nécessaires se fasse de manière continue et sans perturber le processus lui-même, dans le cas de la conception de circuit intégré, on minimise le coût requis pour la capture des informations afin de ne pas consommer des ressources dédiées à la réalisation du bloc IP, ce qui, au final, impacterait de façon négative la qualité du bloc IP. Un grand nombre d'informations utiles pour la mesure et le contrôle de 10 la qualité étant générées par des outils de conception et des méthodes formelles, sous différentes formes, leur capture dans la couche d'abstraction précédemment décrite est effectuée automatiquement. L'information peut être disponible dans des fichiers texte, dans des bases de données ou retournée par appel de programmes. On s'appuie ici sur des routines logicielles encapsulées dans des objets 15 informations programmables comme précédemment décrit. Les champs de cette catégorie d'objet permettent de spécifier les expressions régulières à rechercher dans les fichiers, les paramètres de connexion à des bases de données, les appels de programmes. Ces objets capteurs sont accrochés à des champs d'objets informations pour importer automatiquement leur valeur. Les objets capteurs sont utilisés pour importer des 20 objets d'une catégorie en utilisant les informations de mapping pour la correspondance des champs. Ces objets capteurs peuvent donc être créés, modifiés et mémorisés afin de bâtir une passerelle automatique entre les éléments spécifiques et instables des flots de conception et la couche d'abstraction stable et homogène. L'adaptation d'un objet capteur à une nouvelle situation se fait par la modification d'un ou plusieurs champs de 25 l'objet correspondant. Au cours d'une étape 435, on effectue la création d'au moins une application, développée en utilisant l'API de la couche d'abstraction pour accéder aux objets informations de la catégorie FUNCTSPEC et aux valeurs des différents champs de ces objets : name , summary , description , requirementName , 30 manualReview , configuration , author , creationDate et modificationDate . Les fonctions de l'API permettent aussi d'accéder à l'objet catégorie FUNCTSPEC et aux valeurs de ses différents champs. Les caractéristiques de chaque champ peuvent être directement obtenues en utilisant la liste d'objet Field fieldObject de l'objet catégorie FUNCTSPEC . 35 Une application vérifie, par exemple, la couverture des besoins (catégorie REQUIREMENT ) par les spécifications fonctionnelles et met en évidence les manquements. 2910146 16 Au cours d'une étape 440, on effectue la construction d'une bibliothèque d'applications de mesure et/ou de contrôle de la qualité. Au cours d'une étape 445, on crée des objets informations faisant, chacun, référence à un objet catégorie et les objets capteurs effectuent une capture 5 automatique de valeurs de champs d'objets informations , par un lien avec au moins un objet capteur . Un référencement des objets informations , les uns par rapport aux autres, s'effectue pendant l'étape 445, au fur et à mesure que ces objets informations sont crées pendant la capture. En effet, la capture de données consiste à créer les objets 10 informations et à remplir leurs champs (manuellement ou automatiquement), le lien se faisant effectivement pendant la création des objets informations pendant l'étape 445. Au cours d'une étape 450, on effectue le traitement des objets par des applications de mesure et/ou de contrôle de la qualité de la conception. On note que les applications reposant sur la couche d'abstraction peuvent manipuler 15 un grand nombre d'objets (plusieurs dizaines de milliers) et ont besoin d'accéder aux différents champs de façon optimale. Pour optimiser la vitesse d'exécution, tous ces traitements se font préférentiellement en mémoire vive dans des listes et non par des requêtes SQL sur la base de données. L'utilisation des requêtes SQL se limite donc préférentiellement à la constitution des listes pour traitement dans la couche métier. 20 En ce qui concerne les applications, les objets et les champs des objets capturés et stockés dans la couche d'abstraction sont interprétés par des programmes générant les vues qualité sous différentes formes, par exemple, tableaux, graphes, rapports, metrics ou supports standards. L'indépendance de la couche d'abstraction avec les spécificités des flots de 25 conception permet de bâtir un ensemble d'applications de mesure et de contrôle de la qualité stable et standardisé au sein d'une organisation. Les applications dépendent uniquement du format de la couche d'abstraction défini par les objets catégories . De nouvelles applications peuvent être développées en utilisant l'API de la couche d'abstraction fournissant toutes les fonctions nécessaires à la 30 manipulation des objets. Au cours d'une étape 455 optionnelle, on effectue une modification dynamique d'au moins une catégorie d'objets, sans modification ni recompilation de l'application et en préservant l'intégrité de tous les objets informations existants. Par exemple, on effectue le stockage de noms des champs et de leurs valeurs dans des listes dynamiques, les 35 catégories étant elles-mêmes des objets, donc étant créées dynamiquement, ayant des listes dynamiques pour leurs caractéristiques. 2910146 17 Au cours d'une étape 460, optionnelle, on effectue une mise à jour automatique d'une interface graphique, sans modification ni recompilation de l'application. Par exemple, on effectue la modification dynamique de menus d'une interface graphique pour la saisie et la visualisation des objets informations , ces menus étant modifiés dynamiquement en 5 fonction de la nouvelle structure. Puis on retourne à l'étape 445. On observe, en figure 5, un ordinateur 500 comportant un contrôleur 505 doté d'une mémoire vive 510 et d'une mémoire non volatile 515 conservant un logiciel 520 implémentant le procédé objet de la présente invention, au moins une base de données relationnelle 525 et une application 530 de mesure et/ou de contrôle de la qualité de la 10 conception. L'ordinateur 500 constitue un dispositif d'aide à la conception de circuits intégrés, qui comporte : un moyen de mise en place d'une couche d'abstraction de l'information mettant en oeuvre un ensemble de classes d'objets pour créer des objets, la 15 couche d'abstraction étant indépendante du flot de conception de tout ou partie de circuits intégrés, un moyen de capture de données représentative dudit flot de conception, pour attribuer des valeurs à des champs d'au moins une partie des dits objets et 20 - un moyen d'interprétation des objets par des applications de mesure et/ou de contrôle de la qualité de la conception. A la lecture de la description du procédé et du dispositif objets de la présente invention, qui précède, on comprend qu'ils permettent la mise en place d'une couche d'abstraction à structure dynamique pour stocker les informations nécessaires à la mesure et 25 au contrôle qualité de blocs de circuits intégrés réutilisables, basée sur deux classes d'objets avec listes dynamiques de champs, la première classe permettant de créer des objets catégories définissant les formats et caractéristiques des objets informations instances de la deuxième classe, la couche d'abstraction étant indépendante du flot de conception d'un bloc IP et fournissant une base stable et homogène pour la mesure et le 30 contrôle de la qualité. Grâce à sa structure dynamique, elle peut être reconfigurée dynamiquement en fonction des besoins. La mise en oeuvre de la présente invention permet la modification dynamique des catégories d'objets, sans modification ni recompilation de l'application et en préservant 35 l'intégrité de tous les objets informations existants. 2910146 18 La mise en oeuvre de la présente invention permet aussi la modification dynamique des catégories d'objets avec mise à jour automatique de l'interface graphique sans modification ni recompilation de l'application. La mise en oeuvre de la présente invention permet encore de référencer les objets 5 informations les uns avec les autres par des champs de type lien. Elle permet de spécifier des objets capteurs pour créer une passerelle dynamique entre la couche d'abstraction et les sources d'information, de capturer automatiquement les valeurs des champs par un lien avec des objets capteurs , de bâtir une bibliothèque d'applications de mesure et contrôle de la qualité, stable et standardisée au sein d'une organisation. 10 La mise en place de la présente invention permet de mesurer et contrôler la qualité d'un bloc IP sans perturber le processus de conception : automatisation de la capture des informations nécessaires en préservant l'intégrité des données. On note que la présente invention peut être étendue à d'autres domaines que la conception de blocs IP, à toutes applications où il s'agit de recueillir et d'exploiter des 15 informations au travers d'une couche d'abstraction permettant de dé-corréler la mesure des spécificités de l'environnement. REVENDICATIONS 1 -• Procédé d'aide à la conception de circuits intégrés, caractérisé en ce qu'il comporte : une étape (405) de mise en place d'une couche d'abstraction (320) de l'information mettant en oeuvre un ensemble de classes d'objets (105 à 125) pour créer des objets, la couche d'abstraction étant indépendante du flot de conception (305) de tout ou partie de circuits intégrés, - une étape (445) de capture de données représentative dudit flot de conception, pour attribuer des valeurs à des champs d'au moins une partie 10 des dits objets et - une étape (450) d'interprétation des objets par des applications de mesure et/ou de contrôle de la qualité de la conception. 2 -- Procédé selon la revendication 1, caractérisé en ce que, au cours de l'étape (405) de mise en place de la couche d'abstraction (320), la couche d'abstraction possède une 15 structure dynamique pour stocker des informations nécessaires à la mesure et au contrôle qualité de blocs de circuits intégrés réutilisables. 3 •- Procédé selon l'une quelconque des revendications 1 ou 2, caractérisé en ce qu'il comporte une étape (410) de stockage de noms des champs et de leurs valeurs dans des listes dynamiques, des catégories d'objets mises en oeuvre dans la couche d'abstraction 20 (320) étant, elles-mêmes, des objets, donc étant créées dynamiquement, et ayant des listes dynamiques pour leurs caractéristiques. 4 -- Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que, au cours de l'étape (405) de mise en place de la couche d'abstraction (320), ladite couche d'abstraction est basée sur deux classes d'objets avec listes dynamiques de champs, la 25 première classe (120) permettant de créer des objets catégories définissant les formats et caractéristiques des objets informations instances de la deuxième classe (125). 5 -- Procédé selon la revendication 4, caractérisé en ce qu'il comporte une étape (420, 460) de modification dynamique de menus d'une interface graphique pour la saisie et la visualisation des objets informations , ces menus étant modifiés dynamiquement en 30 fonction de la nouvelle structure des objets. 6 -- Procédé selon l'une quelconque des revendications 4 ou 5, caractérisé en ce qu'il comporte une étape (445) de référencement d'objets informations les uns avec les autres par des champs de type lien, les objets informations possédant au moins un champ dont la valeur est obtenue au cours de l'étape de capture de données. 35 7 -- Procédé selon l'une quelconque des revendications 4 à 6, caractérisé en ce qu'il comporte une étape (425) de stockage des objets catégories et des objets informations dans au moins une base de données relationnelle (215). 2910146 20 8 - Procédé selon la revendication 7, caractérisé en ce que chaque dite base de données (215) comporte, au moins, une table (205) pour stocker les objets catégories et une table (210) pour stocker les objets informations . 9 - Procédé selon l'une quelconque des revendications 7 ou 8, caractérisé en ce qu'il 5 comporte une étape (425) de création d'une base de données pour chaque projet et/ou pour chaque bloc de circuit intégré. -Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'il comporte une étape (430) de spécification d'au moins un objet capteur mis en oeuvre au cours de l'étape (445) de capture de données, pour créer une passerelle entre la couche 10 d'abstraction (320) et le flot (305) de conception de circuit intégré. 11 - Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce qu'il comporte une étape (445) de capture automatique de valeurs de champs d'objets, par un lien avec au moins un objet capteur . 12 - Procédé selon l'une quelconque des revendications 1 à 11, caractérisé en ce qu'il comporte une étape (440) de construction d'une bibliothèque d'applications de mesure et/ou de contrôle de la qualité. 13 - Procédé selon l'une quelconque des revendications 1 à 12, caractérisé en ce que l'étape (450) d'interprétation des objets par des applications de mesure et/ou de contrôle de la qualité de la conception est effectuée en mémoire vive (510) dans des listes. 14 - Dispositif (500) d'aide à la conception de circuits intégrés, caractérisé en ce qu'il comporte : un moyen (505, 405) de mise en place d'une couche d'abstraction (320) de l'information mettant en oeuvre un ensemble de classes (105 à 125) d'objets pour créer des objets, la couche d'abstraction étant indépendante du flot (305) de conception de tout ou partie de circuits intégrés, un moyen (505, 520, 445) de capture de données représentative dudit flot de conception, pour attribuer des valeurs à des champs d'au moins une partie des dits objets et un moyen (505, 530, 450) d'interprétation des objets par des applications de mesure et/ou de contrôle de la qualité de la conception. 30