Brevet FR2879787A1 — publié le 20060623

DOMAINE TECHNIQUE La présente description concerne de façon générale le calcul électronique. Un mode de réalisation concerne plus particulièrement la synthèse de modèle. CONTEXTE La synthèse de modèle est généralement utilisée lors de la conception de circuits intégrés (CI). Diverses équipes d'ingénierie travaillent souvent en même temps sur des blocs différents d'une conception de CI. Chaque bloc peut être représenté dans divers fichiers informatiques. Pour construire un modèle complet du CI, un processus de synthèse est utilisé pour coordonner une version désirée de chacun de ces blocs en cours de conception par les diverses équipes de conceptions. Généralement, les efforts de synthèse consomment du temps, en partie parce qu'elles exigent l'intervention manuelle d'un opérateur. Sur le même projet, diverses méthodologies de synthèse peuvent également être utilisées par des équipes différentes dans ce même projet. Ces méthodologies peuvent souvent être incompatibles et le maintien de ces différents efforts de synthèse d'un bout à l'autre d'un projet est inefficace. De plus, avec des outils de synthèse répartis et séparés, il est difficile d'effectuer des modifications globales de la synthèse sur la totalité d'un projet. RÉSUMÉ Dans un mode de réalisation décrit, un procédé comprend la génération d'un état d'une pluralité de fichiers correspondant à un modèle de conception l'utilisation d'un système de contrôle de mise à jour pour déterminer si l'état 2879787 2 produit a changé par rapport à une version antérieure de l'état; et si l'état produit a changé, l'obtention de copies de la pluralité de fichiers pour valider la stabilité du modèle de conception et, la synthèse du modèle de conception. BRÈVE DESCRIPTION DES DESSINS La description détaillée est fournie en référence aux dessins annexés. Sur les dessins, le ou les chiffres les plus à gauche d'un numéro de référence identifient la figure sur laquelle apparaît pour la première fois le numéro de référence. L'utilisation des mêmes numéros de référence sur des figures différentes indique des éléments similaires ou identiques. La figure 1 illustre un exemple de système de synthèse de modèle selon un mode de réalisation. La figure 2 illustre un exemple de 20 procédé de synthèse de modèle selon un mode de réalisation. La figure 3 illustre des exemples d'étapes de synthèse correspondant à l'étape de synthèse de modèle 216 de la figure 2, selon un mode de réalisation. La figure 4 illustre divers composants d'un exemple de dispositif de calcul pouvant être utilisé pour mettre en oeuvre des parties des techniques ici présentées, selon un mode de réalisation. DESCRIPTION DÉTAILLÉE Des exemples de techniques pour la synthèse de modèle sont décrits. Les techniques permettent une synthèse de modèle efficace, par exemple, en permettant des contrôles de stabilité périodique d'un modèle et/ou en utilisant un 2879787 3 ensemble pouvant être personnalisé d'outils communs et/ou de processus parmi différents modèles. On envisage que ces modes de réalisation réduisent les coûts de maintenance associés à la synthèse de modèle, en partie en raison de l'uniformité des outils appliqués parmi les modèles multiples (par exemple, pouvant correspondre à des projets entièrement différents). Ceci réduit encore ou supprime la nécessité d'une intervention fréquente d'un opérateur. De plus, des modifications globales de la synthèse peuvent être plus facilement effectuées sur la totalité d'un projet. VUE D'ENSEMBLE D'UN SYSTÈME DE SYNTHÈSE DE MODÈLE La figure 1 illustre un exemple de système de synthèse de modèle 100. Le système de synthèse de modèle 100 comporte un ou plusieurs modules (ou outils logiciels) de synthèse de modèle 102, tels qu'un module de génération d'état 104, un module de gestion de fichiers 106, un module de validation de stabilité 108, un module de synthèse 110 et un module séquenceur 112. Comme illustré sur la figure 1, les modules 104 à 112 peuvent avoir accès à une source de données (114). On envisage que les données 114 peuvent inclure une ou plusieurs unités électroniques de mémorisation (telles que celles qui sont présentées en référence à la figure 4), par exemple, un ou plusieurs fichiers, bases de données, etc., pouvant être physiquement situés à des emplacements divers (y compris à des emplacements éloignés. Dans un mode de réalisation, le module séquenceur 112 fait fonctionner les autres modules de synthèse (par exemple, 104 à 110) 2879787 4 selon un séquencement prédéterminé, par exemple, toutes les heures, quotidiennement, hebdomadairement et analogue. Comme il va être expliqué en référence à la figure 2, le module séquenceur 112 peut initialiser un procédé 200 ou un système 100 de synthèse, par exemple en créant un répertoire de travail, en faisant fonctionner un ou plusieurs des quatre modules ci-dessus, en vérifiant le bon achèvement ou l'échec des processus (ou tâches) et/ou en exécutant des tâches postérieures au traitement. Le système de synthèse de modèle 100 peut comporter en outre, un système de contrôle de mise à jour (RCS) 116, qui peut être en communication électronique avec un ou plusieurs des modules de synthèse de modèle 102. Le RCS 116 peut être mis en oeuvre sous la forme d'une base de données, d'un fichier et analogue. Le RCS 116 peut conserver un historique des modifications d'un ou plusieurs fichiers (par exemple, les données 114). Le RCS 116 peut affecter un numéro de version ou un identifiant au(x) fichier (x) à chaque fois qu'une modification est sauvegardée. En conséquence, le RCS 116 peut saisir une image de chacune des modifications lorsqu'une telle modification est soumise au RCS 116. Par exemple, dans un scénario de conception par puce, un ingénieur peut modifier la conception d'un bloc secondaire de CI et lorsqu'il obtient un résultat satisfaisant, l'ingénieur peut soumettre la modification (pouvant identifier un certain nombre de fichiers associés) à un RCS. Le RCS affecte lui-même un ou plusieurs identifiants ou numéros de mise à jour au(x) fichier (s) nouveau (x) ou modifié (s) et gère les données concernant la mise à jour effectuée par 2879787 5 l'ingénieur, par exemple, pour un traitement ultérieur par des modules de synthèse de modèle (par exemple, 104 à 112 sur la figure 1). PROCÉDÉ DE SYNTHÈSE DE MODÈLE La figure 2 illustre un exemple de procédé de synthèse de modèle 200. La synthèse est initialisé 202, par exemple, en créant un nouveau répertoire de travail. L'étape d'initialisation 202 est envisagée pour s'assurer que les nouvelles informations fournies par un état produit 204 sont utilisées lors de l'exécution des étapes du procédé de synthèse de modèle 200, sans se baser sur un état précédemment produit pouvant interférer avec le fonctionnement du procédé de synthèse de modèle 200. Dans un mode de réalisation, le procédé 200 peut être exécuté selon un séquencement prédéterminé (tel que celui qui est présenté en référence au module séquenceur 112 de la figure 1). Un séquencement périodique est envisagé pour permettre une détection continue et/ou précoce des incompatibilités pouvant être présentes lors d'une génération ultérieure d'une conception (par exemple, en raison de modifications effectuées sur une génération antérieure). L'état produit 204 peut fournir une liste de noms de fichiers, comportant un chemin et leurs numéros ou identifiants de mise à jour spécifiques (par exemple, en accédant au RCS 116 de la figure 1) correspondant au modèle en cours de synthèse. Ces informations peuvent être enregistrées dans un fichier d'état qui peut faire partie des données 114. On envisage qu'un fichier d'état saisisse une liste de noms de fichiers et de mises à jour. En produisant l'état 2879787 6 204, on peut considérer certaines contraintes (par exemple, provenant des données 114) qui spécifient quels répertoires, fichiers et/ou autres états situés dans un RCS doivent être recherchés. Après que l'état est produit 204, on détermine si l'état produit a changé par rapport à un état antérieur 206. Par exemple, l'état produit peut être comparé à un état précédemment enregistré. À titre de variante, un RCS (tel que 116 sur la figure 1) peut être utilisé pour déterminer si le nouvel état produit comporte des modifications. Si l'on détermine que l'état produit est inchangé, le procédé 200 s'arrête 208 et attend un autre appel (par exemple, du module séquenceur 112 de la figure 1). Après avoir atteint l'étape 208, les effets de l'étape d'initialisation 202 peuvent être inversés, par exemple le répertoire de travail créé peut être supprimé. Si l'état a changé 206, des copies locales (ou séparées) de tous les fichiers spécifiés par l'état sont obtenues 210, par exemple copiées dans le répertoire de travail créé à l'étape 202 depuis un RCS. L'étape 210 peut être exécutée par le module de gestion de fichiers 106 de la figure 1. On envisage que l'étape 210 puisse être exécutée en obtenant des données état provenant de dispositifs d'entrée standard (par exemple, un clavier ou d'autres dispositifs d'entrée présentés en référence à la figure 4), de la sortie d'un autre programme, d'un module de génération d'état 104 et/ou d'un fichier. Les fichiers obtenus sont ensuite utilisés pour valider manuellement la stabilité du modèle 212. 2879787 7 Dans un mode de réalisation, la validation peut être effectuée en exécutant une ou plusieurs instructions (étapes de régression), par exemple, comme déterminé précédemment, et enregistrées par exemple dans un fichier (telles que les données 114 de la figure 1). Ces instructions peuvent être personnalisées à la synthèse spécifique requise par chacun des modèles. Un compte-rendu de régression présentant la réussite ou l'échec de chaque étape de régression peut être produit 214 et utilisé pour assembler le modèle 216 comme il va être davantage expliqué en référence à la figure 3. ÉTAPES DE LA SYNTHÈSE La figure 3 illustre des exemples d'étapes de synthèse correspondant à l'étape de synthèse de modèle 216 de la figure 2. Les résultats de régression (par exemple, le compte- rendu de régression produit par 214 de la figure 2) sont contrôlés 302 pour déterminer si les fichiers contenus dans l'état produit (par exemple, 204 sur la figure 1) représentent un modèle avec un niveau minimum d'exactitude. La définition exacte de ce niveau minimum d'exactitude peut être prédéterminée et décrite dans un fichier (par exemple, les données 114 de la figure 1). Si le niveau minimum d'exactitude n'est pas atteint (c'est-à-dire que le modèle n'est pas stable), la synthèse se termine 306. Le résultat de l'échec de la synthèse peut être envoyé à une ou plusieurs destinations telles qu'une console d'opérateur, un fichier, une adresse de courrier électronique, un numéro de téléavertisseur et analogue. La destination peut être prédéterminée, par exemple dans les données 2879787 8 114. De plus, les fichiers de travail peuvent être archivés, par exemple pour permettre des contrôles ultérieurs par un opérateur. Lorsque les résultats de régression sont contrôlés et que l'on a déterminé que le modèle est stable 304 (c'est-à-dire, satisfait le niveau d'exactitude minimum), alors l'état est accepté et ajouté à un RCS (par exemple 116 de la figure 1). Une notification concernant la stabilité du modèle peut alors être envoyée à une ou plusieurs destinations telles qu'une console d'opérateur, un fichier, une adresse de courrier électronique, un numéro de téléavertisseur et analogue. Ces destinations peuvent être prédéterminées, par exemple dans les données 114. Après que l'état est ajouté au RCS 308, tous les fichiers spécifiés par l'état sont marqués par un identifiant symbolique dans le RCS. L'identifiant symbolique peut également être utilisé pour marquer l'état, indiquant des versions correspondantes de l'état et les fichiers spécifiés par cette version de l'état. On détermine ensuite si le modèle doit être diffusé 310. Le fait que le modèle doive ou non être diffusé (et la façon dont les étapes doivent être exécutées pour la diffusion réelle) peut être prédéterminé, par exemple comme indiqué par les données 114 présentées en référence à la figure 1. Si l'on détermine que le modèle doit rester non diffusé, la synthèse se termine 312. Le résultat de la synthèse non diffusée peut être envoyé vers une ou plusieurs destinations telles qu'une console d'opérateur, un fichier, une adresse de courrier électronique, un numéro de téléavertisseur et analogue. La destination peut 2879787 9 être prédéterminée, par exemple dans les données 114. De plus, les fichiers de travail peuvent être archivés, par exemple, pour permettre des contrôles ultérieurs par un opérateur. Le résultat de la synthèse non diffusée peut inclure des informations d'état, la comparaison de données concernant l'état actuellement produit et de quelconques modifications en cours et analogue. À titre de variante, si l'on détermine que le modèle doit être diffusé, une ou plusieurs commandes de diffusion peuvent être exécutées 314, personnalisables pour chaque modèle (par exemple, et lues à partir des données 114 de la figure 1). Par exemple, des copies des résultats diffusés peuvent être distribuées à des membres spécifiques d'une équipe. On envisage également qu'un contrôle de stabilité 304 puisse être exécuté sur une base périodique différente de celle de la diffusion du modèle 314, par exemple en exécutant un contrôle chaque nuit, mais en diffusant le modèle hebdomadairement. EXEMPLE D'ENVIRONNEMENT INFORMATIQUE La figure 4 illustre divers composants d'un exemple de dispositif de calcul 400 pouvant être utilisé pour mettre en oeuvre des parties des techniques ici présentées. Dans un certain mode de réalisation, le dispositif de calcul 400 peut être utilisé pour exécuter les procédés des figures 2 et 3. Le dispositif de calcul 400 peut également être utilisé pour réaliser le système 100 de la figure 1. Le dispositif de calcul 400 comporte un 35 ou plusieurs processeurs 402 (par exemple, des microprocesseurs, contrôleurs, etc.), des 2879787 10 interfaces d'entrée/sortie 404 pour l'entrée et/ou la sortie de données et des dispositifs d'entrée de l'utilisateur 406. Le ou les processeurs 402 traitent diverses instructions pour contrôler le fonctionnement du dispositif de calcul 400, tandis que les interfaces d'entrée/sortie 404 constituent un mécanisme pour que le dispositif de calcul 400 communique avec d'autres dispositifs électroniques et de calcul. Les dispositifs d'entrée de l'utilisateur 406 peuvent inclure un clavier, une souris, un dispositif de pointage et/ou d'autres mécanismes pour interagir avec et pour entrer des informations dans le dispositif de calcul 400. Les interfaces d'entrée/sortie 404 peuvent inclure des interfaces série, parallèle et/ou de réseau. Une interface de réseau permet à des dispositifs couplés à un réseau de communication de données commun de communiquer des informations au dispositif de calcul 400. De façon similaire, une interface de communication, telle qu'une interface série et/ou parallèle, une interface de bus série universel (USB), une interface Ethernet, une interface Institute of Electrical & Electronics Engineers (IEEE) 802.11 et/ou une combinaison quelconque d'interfaces de communication sans fil ou câblées, fournissent directement un chemin de communication de données (ou par l'intermédiaire d'un ou plusieurs dispositifs de calcul ou composants de réseau) entre le dispositif de calcul 400 et un autre dispositif électronique ou de calcul. Le dispositif de calcul 400 peut également inclure une mémoire 408 (telle qu'une mémoire à lecture seule (ROM) et/ou une mémoire à accès aléatoire (RAM)), une unité de disque 410, un lecteur de disquettes 412 et une mémoire à lecture seule à disque compact (CD-ROM) et/ou une unité de disque numérique vidéo (DVD) 414, pouvant constituer des mécanismes de mémorisation de données pour le dispositif de calcul 400. Un nombre et une combinaison quelconque de dispositifs de mémoire et d'enregistrement peuvent être connectés avec ou mis en oeuvre à l'intérieur du dispositif de calcul 400. Bien que n'étant pas représenté, un bus de système connecte typiquement les divers composants à l'intérieur du dispositif de calcul 400. Le dispositif de calcul 400 comporte également un ou plusieurs programmes applicatifs 416 et un système d'exploitation 418 pouvant être enregistrés dans une mémoire non volatile (par exemple, la mémoire 408) et exécutés sur le ou les processeurs 402 pour fournir un environnement exécutable dans lequel le ou les programmes applicatifs 416 peuvent fonctionner ou s'exécuter. Le dispositif de calcul 400 peut également inclure un dispositif d'affichage intégré 420, par exemple pour un PDA, un dispositif de calcul portatif et un quelconque autre dispositif de calcul mobile. Les modes de réalisation sélectionnés ici présentés (tels que ceux qui sont présentés en référence aux figures 1 à 3) peuvent inclure diverses opérations. Ces opérations peuvent être exécutées par des composants matériels ou peuvent être incorporées dans des instructions exécutables par une machine, pouvant elles-mêmes être utilisées pour provoquer l'exécution des opérations par un processeur à usage général ou à usage spécifique ou des circuits logiques programmés avec les instructions. À titre de variante, les opérations peuvent être exécutées par une combinaison de circuits et de logiciels. De plus, certains modes de réalisation peuvent être fournis sous la forme de produits logiciels informatiques, pouvant inclure un support lisible par une machine ou lisible par un ordinateur comportant, enregistrées sur celui-ci, des instructions utilisées pour programmer un ordinateur (ou d'autres dispositifs électroniques) pour exécuter un processus ici présenté. Le support lisible par une machine peut inclure, mais sans y être limité, des disquettes, un disque dur, des disques optiques, des CD-ROM et des disques magnéto-optiques, des ROM, des RAM, des ROM programmables effaçables (EPROM), des EPROM programmables électriquement (EEPROM), des cartes magnétiques ou optiques, une mémoire flash ou d'autres types de supports ou des supports lisibles par une machine convenables pour enregistrer des instructions électroniques et/ou des données. De plus, les données ici présentées peuvent être enregistrées dans une base de données unique, des bases de données multiples ou sinon sous des formes sélectionnées (par exemple dans une table). De plus, certains modes de réalisation ici présentés peuvent être téléchargés sous la forme d'un produit de programme informatique, dans lequel le programme peut être transféré d'un ordinateur distant (par exemple un serveur) à un ordinateur demandeur (par exemple un client) au moyen de signaux de données incorporés dans une onde porteuse ou un autre milieu de propagation par l'intermédiaire d'une liaison de communication (par exemple, une connexion par 2879787 13 modem ou réseau). En conséquence, une onde porteuse sera ici considérée comme comprenant un support lisible par une machine. Dans la spécification, la référence à un certain mode de réalisation ou à un mode de réalisation signifie qu'une propriété, structure ou caractéristique particulière décrite en relation avec le mode de réalisation est incluse dans au moins une mise en oeuvre. Les apparitions de la phrase dans un certain mode de réalisation à divers endroits dans la spécification ne se réfèrent pas toutes obligatoirement au même mode de réalisation. Ainsi, bien que l'invention ait été décrite dans un langage spécifique aux propriétés structurelles et/ou actions méthodologiques, on comprendra que l'invention définie dans les revendications annexées n'est pas obligatoirement limitée aux propriétés ou actions spécifiques décrites. En remplacement, les propriétés et actions spécifiques sont décrites sous la forme d'exemples de mises en oeuvre de l'invention revendiquée. Par exemple, les techniques ici présentées peuvent s'appliquer à un quelconque processus de synthèse pour assurer le rendement et/ou la facilité de maintenance. R E V E N D I C A T I O N S 1. Procédé comprenant: la génération d'un état (204) d'une pluralité de fichiers correspondant à un modèle 5 de conception; l'utilisation d'un système de contrôle de mise à jour (116) pour déterminer si l'état produit a changé par rapport à une version antérieure de l'état; et si l'état produit a changé, l'obtention de copies (210) de la pluralité de fichiers pour valider la stabilité (212) du modèle de conception et, la synthèse (216) du modèle de conception. 2. Procédé selon la revendication 1, dans lequel la synthèse du modèle de conception comprend: le contrôle (302) d'un ou plusieurs résultats de régression produits par l'action de validation de la stabilité du modèle de conception; la détermination du fait que le modèle de conception est stable (304) ; et si l'on a déterminé que le modèle de 25 conception est stable, l'ajout de l'état produit au système de contrôle de mise à jour (308). 3. Procédé selon la revendication 1, dans lequel l'état produit est enregistré dans un fichier de 30 données (114). 4. Procédé selon la revendication 1, comprenant en outre l'initialisation d'une synthèse (202), dans lequel l'initialisation de la synthèse comprend la génération d'un nouveau répertoire de 2879787 15 travail pour enregistrer les copies obtenues de la pluralité de fichiers. 5. Procédé selon la revendication 1, dans lequel 5 le modèle de conception correspond à un circuit intégré.