Brevet FR2691817A1 — publié le 19931203

L'invention concerne le développement de circuits intégrés ayant un logiciel complexe à bord. Les technologies actuelles de fabrication de semiconducteurs permettent l'intégration d'un nombre de composants de plus en plus important sur une même plaquette de matériau semi-conducteur monocristallin (silicium, arséniure de gallium...). On fabrique ainsi des circuits destinés à une grande diffusion (microprocesseur par exemple), des circuits semipersonnalisés comportant une mémoire programmable permettant leur utilisation dans des applications variées, des circuits intégrés spécifiques.... L'invention concerne plus particulièrement le développement de ce type de circuit désigné sous le terme ASIC (Application Specific Integrated Circuit). Ces composants dont la réalisation est assistée par ordinateur, sont conçus à partir d'éléments connus, et leur personnalisation permet l'optimisation du rapport prix/performance, de leur fiabilité et la réduction des délais de conception. La conception des circuits intégrés spécifiques (ASIC) suit généralement les étapes suivantes - la réalisation du cahier des charges décrivant l'ensemble matériel/logiciel nécessaire pour la réalisation des fonctions souhaitées par l'utilisateur, la définition de l'architecture interne sous la forme d'un schéma synoptique, la description du logiciel, la caractérisation électrique et le brochage du circuit - le développement matériel, au cours duquel une étude préalable définit le schéma d'intégration du circuit comportant l'ensemble des fonctions de chaque bloc, la saisie graphique de ce schéma sur une station de travail qui permet la vérification de la conception, la simulation fonctionnelle et l'étude de la testabilité du circuit ; le placement et routage au cours duquel les éléments de la bibliothèque du fondeur susceptibles de remplir les fonctions définies précédemment sont déterminés, leurs interconnexions sont également définies - le développement du logiciel, au cours duquel une étude préalable définit l'architecture du logiciel, la liste des blocs logiciels et des fonctions qu'ils réalisent, la liste des interfaces logiciel/logiciel et logiciel/matériel, la réalisation du logiciel et sa validation - la fabrication. Au cours de cette conception, le développement du logiciel est long. Il est généralement fait sur la représentation du circuit intégré saisie sur une station de travail, pour un premier niveau, puis sur le circuit intégré lui-même, lorsqu'il existe, pour les tests complets. L'objet de la présente invention est de permettre le développement du logiciel, et la réalisation d'un grand nombre de tests pour sa validation, dans des conditions proches des conditions réelles, avant même que le circuit intégré ne soit disponible. C'est un autre objectif de la présente invention de permettre le développement du logiciel, et la réalisation d'un très grand nombre de tests pour sa validation à l'aide d'un micro-ordinateur de faible puissance, beaucoup moins important que les stations de travail généralement utilisées. A cet effet, l'invention concerne un procédé de développement d'un circuit intégré dédié à une application incorporant sur une même puce - un processeur de signal, - une mémoire vive RAM, une mémoire morte ROM, - des éléments spécifiques de l'application. Le processeur de signal, la mémoire vive RAM et la mémoire morte ROM correspondent chacun à des composants discrets existants. Ils ont des interfaces entre eux, et avec les éléments spécifiques de l'application. Selon l'invention, les interfaces et les éléments spécifiques sont testés sur une maquette réalisée avec les composants discrets. Le logiciel destiné à figurer dans la mémoire morte ROM est également testé. Dans un mode de réalisation préféré, les tests faits sur la maquette sont pilotés par un micro-ordinateur. On constitue avantageusement dans le micro-ordinateur une base de données des tests et de leurs résultats. L'invention concerne également la maquette, réalisée par le biais d'une carte électronique, dédiée à une application incorporant sur une même puce - un processeur de signal, - une mémoire vive RAM, une mémoire morte ROM, - des éléments spécifiques de l'application. Selon l'invention, cette carte électronique comporte des composants discrets correspondants respectivement au processeur de signal, à la mémoire vive RAM, à la mémoire morte ROM, et est accompagnée d'un logiciel d'interface avec un micro-ordinateur. De préférence, cette carte électronique accompagnée du logiciel d'interface avec le micro-ordinateur permet avantageusement le test des interfaces entre les composants discrets et le test du logiciel destiné à figurer dans la mémoire morte ROM. Un mode de réalisation particulier de l'invention sera décrit en détail, en référence ctux dessins annexés, dans lesauels : - la Figure 1 est une représentation schématique d'un ASIC ; - la Figure 2 est une représentation schématique de la carte-électronique de l'invention. Sur la Figure 1, le circuit intégré i dédié, de type ASIC, comporte un microprocesseur DSP (Digital Signal Processor) 2, une mémoire morte ROM 3 destinée à recevoir un programme, une mémoire vive RAM 4 et des éléments particuliers divers 5 auxquels sont reliés l'entrée-sortie 6 du circuit intégré. L'ensemble de ces éléments est destiné à être implanté sur une puce unique. Par ailleurs, ces éléments existent chacun à l'état discret et ont déjà été complètement testés dans cet état, indépendamment les uns des autres. Lors de la conception du circuit intégré spécifique, la définition des fonctions bloc par bloc a conduit au choix des différents éléments, à la répartition de ces fonctions et à leurs interconnexions. Parallèlement au développement du circuit intégré (vérification de la conception, simulation fonctionnelle, étude de la stabilité... sur une station de travail, placement et routage, fabrication), on réalise une carte électronique regroupant les composants discrets et les reliant de manière à permettre de faire remplir à chacun d'eux les fonctions préalablement déterminées. De plus, cette carte électronique est accompagnée d'un logiciel d'interface avec un micro-ordinateur. Ce micro-ordinateur permet la simulation de l'environnement du circuit intégré, en remplissant les fonctions qui ne sont pas susceptibles d'être remplies par des composants discrets existants, en permettant la réalisation du logiciel destiné à figurer dans la mémoire morte ROM 3, en permettant la conception et la réalisation des tests des fonctions logicielles réalisées et des interfaces logiciel/logiciel et logiciel/matériel, en constituant une base de données des tests réalisés qui pourront ainsi être mis en oeuvre sur le circuit intégré lorsqu'il sera disponible. Ainsi, avec des moyens limités, les principaux points spécifiques et sensibles (fonctions et interfaces) du circuit intégré et du logiciel peuvent être testés, sans qu'il soit nécessaire à recourir à des tests particulièrement longs et sophistiqués, qui nécessitent la mise en oeuvre de moyens de calculs importants seulement disponibles sur de grosses machines ou sur des stations de travail. Sur la Figure 2, le microprocesseur DSP 2 a été représenté en faisant apparaître son unité de calcul ALU (Arithmetic Logic Unit) 21 et ses mémoires vives 22 et 23. Le circuit intégré comporte une mémoire vive 112 émulant la RAM 4 destinée au stockage des données, une mémoire vive 111 émulant la mémoire morte ROM 3 et permettant le chargement du logiciel. L'émulation des parties 5 et 6 est assurée par un convertisseur 7 assurant sa liaison avec les entrées-sorties 61, 62. Des registres 71, 72 FIFO (de type First-In First-Out) assurent le transfert de données, d'une part depuis le microprocesseur vers l'extérieur 72, d'autre part de l'extérieur vers le microprocesseur 71, et un registre 81, ait registre de commande et de statut, coordonnant les entrées et sorties de données par les registres FIFO 7i et 72. Un registre 82 contrôle le fonctionnement de la carte électronique. Un bus local 91 permet la communication du microprocesseur 2 avec les autres éléments du circuit intégré. Un bus 92 associé à une mémoire vive 111 assure les échanges des données du circuit intégré vers l'extérieur. Cet ensemble 200 permet au logiciel d'interface de communiquer avec le micro-ordinateur 300. Des interfaces 101 à 110 assurent la liaison des différents éléments du circuit intégré avec les bus de données 91 et 92. L'interface 101 relie le microprocesseur au bus local 91. L'interface 102 relie la mémoire vive externe 4 au bus local 91. L'interface 103 relie le convertisseur 7 au bus local 91. L'interface 104 relie le registre FIFO d'entrée 71 au bus local 91. L'interface 105 relie le bus local 92 au registre FIFO d'entrée 71. L'interface 106 relie le registre FIFO de sortie 72 au bus local il. L'interface 107 relie le bus local 92 au registre FIFO de sortie 72. L'interface 108 relie le registre de commande 81 au bus local 91. L'interface 109 relie le bus 92 au registre de commande 81. L'interface 110 relie le bus 92 au registre de contrôle 82. Le micro-ordinateur 300 permet le test des différents interfaces 101 à 110, et ie test du logiciel destiné à figurer dans la mémoire morte ROM 3. Alors que les tests logiciels sont habituellement réalisés grâce à des modèles de type VHDL (Very High Development Language) qui nécessitent des calculs, des temps de traitement très longs, l'invention permet la réalisation de ces opérations dans un temps limité et avec des puissances ae calculs restreintes. Le micro-ordinateur 300 peut également être utilisé pour la réalisation du logiciel destiné à figurer dans la mémoire morte ROM 3. Dans une première étape, la mémoire de masse du microordinateur 300 est utilisée pour stocker ce logiciel. Le logiciel est chargé dans la mémoire vive 111, qui joue le rôle de la mémoire morte ROM 3. Les différents tests réalisés sont stockés dans la mémoire de masse du micro-ordinateur et associés aux résultats de ces tests. Lorsque le circuit intégré est disponible, il est possible de comparer son fonctionnement à celui de la carte électronique et de tester progressivement, par analogie, l'ensemble de ces éléments. Le procédé et la carte électronique de l'invention peuvent être adaptés et mis en oeuvre pour tester et développer de nombreux circuits intégres. Parmi les circuits intégrés susceptibles d'être traités de cette manière, indiquons ceux destinés à la compression des données représentant la parole, les modems, les compressions d'images.... Les signes de référence, insérés après les caractéristiques techniques mentionnées dans les revendications, ont pour seul but de faciliter la compréhension de ces dernières, et n'en limitent aucunement la portée. REVENDICATIONS 1. Procédé de développement d'un circuit intégré dédié à une application incorporant sur une même puce : - un processeur de signal, - une mémoire vive RAM, une mémoire morte ROM, - des éléments spécifiques de l'application, le processeur de signal, la mémoire vide RAM et la mémoire morte ROM correspondant respectivement à des composants discrets existants ei ayant des interfaces entre eux, et avec les éléments spécifiques de l'application, caractérisé en ce que les interfaces et les éléments spécifiques sont testés sur une maquette réalisée avec les composants discrets. 2. Procédé de développement d'un circuit intégré selon la revendication 1, caractérisé en ce que les tests faits sur la maquette sont pilotés par un micro-ordinateur. 3. Procédé de développement d'un circuit intégré selon l'une des revendications l et 2, caractérisé en ce que le logiciel destiné à figurer dans la mémoire morte ROM est également testé. 4. Procédé de développement d'un circuit intégré selon l'une des revendications 2 et 3, caractérisé en ce que l'on constitue dans le micro-ordinateur une base de données des tests et de leurs résultats. 5. Carte électronique pour le développement d'un circuit intégré (1) dédié à une application incorporant sur une même puce - un processeur de signal (2), - une mémoire vive RAM (4), une mémoire morte ROM (3), - des éléments spécifiques de l'application (5), caractérisée en ce qu'elle comporte des composants discrets correspondants respectivement au processeur de signal (2), à la mémoire vive RAM (4), à la mémoire morte ROM (3), et un ensemble matériel (200) permettant à un logiciel d'interface accompagnant cette carte de communiquer avec un micro-ordinateur (300). 6. Carte électronique pour le développement d'un circuit intégré (1) selon la revendication 5, caractérisée en ce que l'ensemble matériel (200) accompagné d'un logiciel d'interface avec le micro-ordinateur (300) permet le test des interfaces (101-110) entre les composants discrets. 7. Carte électronique pour le développement d'un circuit intégré (1) selon l'une des revendications 5 et 6, caractérisée en ce que l'ensemble matériel (200) accompagné d'un logiciel d'interface avec le micro-ordinateur (300) permet le test du logiciel destiné à figurer dans la mémoire morte ROM (3).