Brevet FR2873833A1 — publié le 20060203

DEBOGUEUR D'UN CIRCUIT ELECTRONIQUE FABRIQUE A PARTIR D'UN PROGRAMME EN LANGAGE DE DESCRIPTION DE MATERIEL Domaine de l'invention La présente invention concerne un dispositif et un procédé de débogage d'un circuit électronique décrit par un programme rédigé dans un langage de description de matériel ou HDL (de l'anglais Hardware Description Language). Exposé de l'art antérieur Le langage HDL est un langage de programmation qui a été développé et optimisé pour la conception et la modélisation de circuits électroniques puisqu'il permet de décrire précisément le cougportement des circuits électroniques. Il s'agit par exemple du langage VHDL (de l'anglais VHSIC Hardware Description Language, VHSIC signifiant circuit intégré à très grande vitesse de l'anglais Very High Speed Integrated Circuit) ou du langage Verilog. Des exemples de circuits électroniques réalisés à partir de programmes HDL sont les circuits prédiffusés programmables ou FPGA (de l'anglais Field Programmable Gate Array) et les circuits dédiés à une application spécifique ou ASIC (de l'anglais Application Specific Integrated Circuit). Plus précisément, un circuit FPGA comprend des portes électroniques préimplantées sur un circuit suivant une certaine topologie. A l'état initial, ces portes ne sont pas connectées entre elles. Pour réaliser un circuit électronique réalisant des fonctions spécifiques à partir d'un circuit FPGA, il suffit de réaliser certaines connexions (ce qui peut être obtenu par la fermeture de transistors MOS) entre certaines portes électroniques du FPGA pour obtenir les fonctions souhaitées. Pour ce faire, on peut utiliser une mémoire vive dans laquelle on stocke des données de configuration (en anglais "bitstream") représentant notamment des connexions du circuit. Les données de configuration sont obtenues à partir du programme HDL décrivant le circuit électronique. Lors du processus complet de conception d'un circuit électronique, il est nécessaire de prévoir une étape de débogage qui comprend la détection, le diagnostic et la correction d'erreurs lors du fonctionnement du circuit électronique. Pour un circuit électronique conçu à partir d'un programme HDL, une correction d'erreur peut correspondre à une modification du programme HDL décrivant le circuit électronique. Il existe actuellement principalement deux types de 20 procédés de débogage d'un circuit électronique obtenu à partir d'un programme MDL. Le premier procédé consiste à utiliser un analyseur logique. Il s'agit par exemple de l'analyseur logique conunercialisé par la société Altera sous la marque Signal TAP. Un analyseur logique permet de modifier le programme HDL initial décrivant un circuit électronique de façon à obtenir un programme HDL modifié qui décrit le même circuit électronique avec l'ajout de circuits additionnels qui n'influent généralement pas sur le comportement du circuit électronique et qui réalisent des fonctions spécifiques utiles pour déboguer le circuit électronique. Un circuit additionnel peut réaliser des opérations logiques sur certains signaux utilisés par le circuit électronique et fournir un signal d'alerte lorsqu'une condition logique est remplie, vérifier les valeurs de plusieurs signaux en parallèle, etc. Le débogage d'un circuit FPGA programmé à partir du programme HDL initial est réalisé en programmant le circuit FPGA avec le programme HDL modifié. On fait alors fonctionner le circuit FPGA modifié en temps réel dans son environnement de fonctionnement normal, et on utilise l'analyseur logique pour recueillir les différents signaux fournis par les circuits additionnels ajoutés au circuit électronique décrit par le programme HDL initial. L'analyseur logique propose à un utilisateur une liste de circuits additionnels à partir desquels il détermine les fonctions spécifiques pour le débogage du circuit électronique. Toutefois, les fonctions de débogage pouvant être obtenues sont limitées par les circuits additionnels proposés par l'analyseur logique. Même en définissant des fonctions de débogage plus complexes en combinant les fonctions proposées par l'analyseur logique, l'utilisateur ne peut pas toujours définir des fonctions de débogage spécifiques qui seraient particulièrement adaptées au débogage du circuit électronique. Le second procédé correspond à un débogage direct du programme HDL. Un tel procédé de débogage peut être mis en oeuvre au moyen du débogueur commercialisé par la société Synplicity sous la marque Identify. Un tel débogueur permet d'insérer des points d'observation (de l'anglais Watchpoints) au niveau de certaines parties d'un programme HDL initial décrivant un circuit électronique et de fournir un programme HDL modifié à partir duquel un circuit FPGA, par exemple, est programmé. Lors du fonctionnement du circuit FPGA modifié ainsi programmé, le débogueur échange des signaux avec le circuit FPGA et peut indiquer à un utilisateur si les parties du programme HDL initial marquées par des points d'observation ont été exécutées au cours du fonctionnement du circuit FPGA. Le débogueur peut également indiquer la valeur de signaux utilisés par le programme HDL initial au moment où les parties marquées du programme MDL initial sont exécutées. Si des erreurs se produisent au cours du fonctionnement du circuit FPGA, l'utilisateur peut repérer les parties du programme HDL initial au niveau desquelles les erreurs se sont produites. Toutefois, un tel débogueur, étant purement orienté "code", ne permet pas de construire des scénarii de vérification complexes à partir des valeurs des signaux utilisés par le circuit FPGA. L'absence d'outil du type analyseur logique peut rendre difficile la détection de certaines erreurs lors du fonctionnement du circuit FPGA ou la détermination de l'origine de certaines erreurs détectées. Par ailleurs, avant la programmation d'un circuit FPGA ou la fabrication d'un circuit ASIC, le débogage du programme HDL initial peut être réalisé au moyen d'un analyseur statique. Il s'agit d'un outil entièrement automatisé, utilisable pour tout type de programme, et permettant de prédire le comportement à l'exécution d'un programme par le seul examen de son texte afin de déceler des erreurs dans la conception du programme. L'analyse est réalisée directement sur le programme HDL et non sur la façon dont fonctionne un circuit FPGA programmé à partir du programme HDL. Toutefois, dès que la complexité du programme HDL initial devient importante, un analyseur statique s'avère moins fiable et peut ne pas déceler certaines erreurs dans la conception du programme initial. En outre, un tel outil ne permet pas de prendre en compte certains problèmes inhérents à la nature physique des composants du circuit fabriqué à partir du programme HDL initial. Aucun des procédés de débogage précédemment décrit ne permet à un utilisateur de définir librement ses propres circuits additionnels à incorporer au circuit électronique associé au programme de description HDL initial et qui permettent, au cours du fonctionnement du circuit électronique fabriqué à partir du programme de description HDL modifié, l'exécution de fonctions de débogage spécifiques adaptées au débogage du circuit électronique considéré. En outre, il est souhaitable que l'utilisateur puisse, au cours du fonctionnement du circuit électronique, modifier la valeur d'un signal d'entrée, d'un signal de sortie ou d'un signal interne utilisé par les circuits additionnels précédemment définis pour réaliser un test particulier. Un objet de la présente invention est de prévoir un dispositif et un procédé de débogage d'un circuit électronique fabriqué à partir d'un programme HDL qui facilite l'opération de débogage du circuit électronique en permettant à l'utilisateur de définir librement les circuits additionnels à incorporer au circuit électronique et d'imposer les valeurs de signaux relatifs aux circuits additionnels au cours d'une phase de débogage. Résumé de l'invention Pour atteindre cet objet, la présente invention prévoit un dispositif de débogage d'un circuit électronique fabriqué à partir d'un programme initial en langage de description de matériel, IIDL, comprenant un module d'instrumentation adapté à recevoir le programme initial; à recevoir un programme additionnel décrivant des fonctions déterminées; à déterminer un circuit additionnel à incorporer dans le circuit électronique à partir dudit programme additionnel, ledit circuit additionnel comprenant au moins une borne d'entrée et/ou une borne de sortie reliées au circuit électronique et étant adapté à mettre à une valeur déterminée un signal choisi parmi un signal reçu à ladite borne d'entrée, un signal fourni à ladite borne de sortie ou un signal interne audit circuit additionnel; et à fournir un programme modifié en langage HDL à partir du programme initial incorporant une description en langage HDL du circuit additionnel; et comprenant un module de débogage adapté à déboguer un circuit électronique modifié fabriqué à partir du programme modifié, le module de débogage étant adapté à communiquer avec le circuit additionnel pour commander la mise à ladite valeur déterminée dudit signal choisi. Selon un mode de réalisation de la présente invention, 35 la borne d'entrée et/ou la borne de sortie sont reliées à un autre circuit additionnel à incorporer dans le circuit électronique. Selon un mode de réalisation de la présente invention, le programme additionnel est écrit dans un langage différent du langage HDL, le module d'instrumentation comprenant un moyen de conversion du programme additionnel en langage HDL. Selon un mode de réalisation de la présente invention, le circuit additionnel comprend un multiplexeur commandé par un signal de commande et recevant à une première entrée ledit signal de circuit additionnel et à une seconde entrée ladite valeur déterminée, le module de débogage étant adapté à fournir au circuit additionnel la valeur du signal de commande. Selon un mode de réalisation de la présente invention, le circuit additionnel est adapté à fournir un signal représentatif du signal choisi, le module de débogage comprenant en outre un écran de visualisation et étant adapté à afficher sur l'écran de visualisation la valeur du signal représentatif. Selon un mode de réalisation de la présente invention, le circuit électronique est un circuit prédiffusé programmable programmé à partir du programme initial et le circuit électronique modifié est un circuit prédiffusé programmable programmé à partir du programme modifié. La présente invention prévoit également un procédé de débogage d'un circuit électronique fabriqué à partir d'un programme initial en langage de description de matériel, HDL, comprenant les étapes consistant à recevoir un programme additionnel décrivant des fonctions déterminées; à déterminer un circuit additionnel à incorporer dans le circuit électronique à partir dudit programme additionnel, ledit circuit additionnel comprenant au moins une borne d'entrée et/ou une borne de sortie reliées au circuit électronique et étant adapté à mettre à une valeur déterminée un signal choisi parmi un signal reçu à ladite borne d'entrée, un signal fourni à ladite borne de sortie ou un signal interne audit circuit additionnel; à fournir un programme modifié en langage HDL à partir du programme initial incorporant une description en langage HDL du circuit additionnel; à fabriquer un circuit électronique modifié à partir du programme modifié ; et à déboguer le circuit électronique modifié en mettant, à un instant déterminé, le signal choisi à ladite valeur déterminée par l'intermédiaire du circuit additionnel. Selon un mode de réalisation de la présente invention, les fonctions déterminées sont des fonctions de débogage, de test et/ou de vérification. Brève description des dessins Cet objet, ces caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles: la figure 1 illustre, de façon générale, les étapes d'un exemple de réalisation du procédé de débogage selon l'invention; la figure 2 représente schématiquement un exemple d'interface graphique du dispositif de débogage selon l'invention lors de la préparation d'une opération de débogage; la figure 3 illustre schématiquement un exemple de réalisation de l'outil de débogage selon l'invention; la figure 4 illustre les étapes d'un exemple de procédé de réalisation de l'outil de débogage selon l'invention; et les figures 5A, 5B à 7A, 7B représentent des exemples de réalisation de l'outil de débogage selon l'invention. Description détaillée De mêmes références représentent de mêmes éléments aux différentes figures. Pour des raisons de clarté, seuls les éléments nécessaires à la compréhension de la présente invention ont été représentés. La figure 1 illustre, sous la forme d'un schéma par 35 blocs, un exemple de réalisation du procédé de débogage selon l'invention. Dans la suite de la description, le procédé de débogage selon l'invention sera décrit pour le débogage d'un circuit FPGA 10 que l'on souhaite programmer à partir d'un programme HDL initial 12. Toutefois, la présente invention trouve aussi une application pour le débogage d'un circuit électronique dédié, par exemple du type ASIC, fabriqué à partir du programme HDL initial 12. Le dispositif de débogage selon l'invention comprend un module d'instrumentation 14 adapté à recevoir le programme 10}IDL initial et à fournir un programme HDL modifié 16 à partir du programme HDL initial 12 selon des instructions fournies par un utilisateur comme cela est décrit plus en détail par la suite. A cette fin, le module d'instrumentation 14 comprend une interface homme/machine comprenant, par exemple, un écran de visualisation, une souris et un clavier, ou tout autre moyen adapté. Le programme HDL modifié 16 est alors fourni à un module de programmation 18 adapté, de façon classique, à programmer le circuit FPGA 10 à partir du programme BDL modifié 16 et dont le fonctionnement ne sera pas décrit plus en détail. Le dispositif de débogage selon l'invention comprend un module de débogage 20, qui, lors du fonctionnement du circuit FPGA programmé à partir du programme HDL modifié, est adapté à échanger des données avec le circuit FPGA 10 et à fournir à l'utilisateur des indications quant au déroulement de l'opération de débogage par l'intermédiaire de l'interface homme/machine. L'échange de données entre le module de débogage 20 et le circuit FPGA 10 est, par exemple, réalisé par l'intermédiaire de broches dédiées du circuit FPGA 10, selon le protocole de test JTAG défini par la norme IEEE 1149.1. La figure 2 représente un exemple d'affichage sur l'écran de visualisation du module d'instrumentation 14 utilisé pour la modification du programme FIDL initial 12. Une fenêtre 24, appelée fenêtre d'Instruments, propose à l'utilisateur une liste de blocs 26, chaque bloc étant associé à un outil de débogage adapté à aider l'utilisateur durant l'opération de débogage. Il peut s'agir des outils proposés par l'analyseur logique commercialisé par la société Temento sous la marque DLI. A titre d'exemple, les outils proposés par le module d'instrumentation 14 correspondent notamment à la liste non exhaustive suivante: - un outil recevant des signaux d'entrée et fournissant un ou plusieurs signaux de sortie en réalisant des opérations logiques sur les signaux d'entrée, les opérations logiques étant éventuellement définies par l'utilisateur; - un outil comparant simultanément les valeurs de plusieurs signaux d'entrée à des valeurs prédéfinies et indiquant, par exemple en fournissant un signal de sortie à l'état actif, si les valeurs des signaux d'entrée sont, à un instant donné, égales aux valeurs prédéfinies; - un outil observant l'évolution temporelle d'un signal et indiquant si la suite des valeurs prises par le signal observé correspond à une suite de valeurs prédéfinies; - un outil observant l'évolution temporelle d'un signal et indiquant si le signal observé présente une impulsion transitoire; et - un outil analysant les flux de données sur des bus du circuit électronique, par exemple en mesurant le débit de données sur le bus ou l'occupation du bus. L'utilisateur peut choisir certains outils parmi les outils proposés et définir quels signaux alimentent ces outils. L'utilisateur peut également relier les outils entre eux, une sortie d'un outil attaquant une entrée d'un autre outil. Ceci permet à l'utilisateur d'obtenir des outils de débogage plus complexes à partir des outils initialement proposés par le module d'instrumentation 14. La présente invention consiste à prévoir un outil particulier, appelé module logique d'utilisateur, qui permet à l'utilisateur de définir librement et facilement les fonctions à réaliser par l'outil lors d'une opération de débogage et qui permet à l'utilisateur, lors de l'opération de débogage, de commander la valeur d'un ou de plusieurs signaux utilisés par l'outil qu'il a défini. La figure 3 représente, de façon schématique, les éléments constituant le module logique d'utilisateur 30. Les fonctions qui seront exécutées par le module logique d'utilisateur 30 lors d'une opération de débogage sont définies par un programme de description d'outil 32, en langage HDL, obtenu à partir d'un programme rédigé par l'utilisateur. Le module logique d'utilisateur 30 comprend un module d'interface 34 qui permet de relier les signaux d'entrée/sortie du programme de description d'outil 32 à d'autres signaux de la description initiale HDL 12 ou à des signaux associés à d'autres outils de débogage. De plus, le module logique d'utilisateur 30 comprend un module de commande et d'observation 36 qui permet de commander et/ou d'observer la valeur d'un ou de plusieurs signaux d'entrée, de signaux de sortie ou de signaux internes du programme de description d'outil 32. La figure 3 décrit les étapes d'un exemple de procédé 20 de réalisation d'un outil à partir du module logique d'utilisateur 30. A l'étape 40, l'utilisateur écrit, dans un langage approprié, un programme de base définissant les fonctions de test, de débogage et/ou de vérification que l'outil doit exécuter lors d'une phase de débogage. Il peut s'agir du langage de description HIDL, particulièrement adapté à l'écriture de fonctions de débogage, ou du langage PSL Sugar ou System Verilog, particulièrement adaptés à l'écriture de fonctions dites d'assertion consistant à vérifier qu'une propriété attendue est vérifiée. Le programme de base doit comporter des signaux d'interface destinés à être connectés à d'autres signaux (par exemple des signaux de la description HDL initiale 12 ou des signaux d'entrée/sortie d'outils déjà incorporés à la description HDL initiale 12) . Par ailleurs, un des signaux d'entrée du programme de base doit correspondre à un signal d'horloge qui, lors d'une phase de débogage, est notamment utilisé par le module de commande et d'observation 36 pour l'échantillonnage des signaux observés. A l'étape 42, l'utilisateur ajoute un module logique d'utilisateur 30 aux outils qu'il a déjà reliés à la description HDL initiale 12. A cet instant, le module logique d'utilisateur 30 ne comprend pas encore de programme de description d'outil 32. A l'étape 44, l'utilisateur incorpore le programme de base défini à l'étape 40 dans le module logique d'utilisateur 30 comme programme de description d'outil 32. Le module d'instrumentation 14 convertit, s'il y a lieu, le programme de base en langage BDL. De plus, le module d'instrumentation 14 affiche sur l'écran de visualisation les signaux d'entrée et de sortie et les signaux internes associés au programme de description d'outil. A l'étape 46, l'utilisateur relie, à sa convenance, les signaux d'entrée/sortie du programme de description d'outil 32 à des signaux utilisés par la description HDL initiale 12 ou à des signaux d'entrée/sortie d'outils que l'utilisateur a déjà relié à la description initiale 12. Par ailleurs, l'utilisateur relie le signal d'horloge du module logique d'outil 30 au signal d'horloge utilisé dans la description HDL initiale 12, ou à l'un des signaux d'horloge utilisés dans la description HDL initiale 12. L'utilisateur relie alors, au module de commande et d'observation 36, les signaux d'entrée, les signaux de sortie et/ou les signaux internes du programme de description d'outil 32 qu'il souhaiterait observer lors de l'étape de débogage ultérieure. Enfin, l'utilisateur relie, au module de commande et d'observation 36, les signaux d'entrée, les signaux de sortie et/ou les signaux internes du module logique d'utilisateur 30 dont il souhaite pouvoir imposer la valeur au cours de l'étape de débogage ultérieure. A l'étape 48, le module d'instrumentation 14 modifie 35 le programme de description d'outil 32 pour tenir compte des signaux à observer ou à commander et modifie alors la description BDL initiale 12 pour y inclure la description en langage BDL du module logique d'utilisateur 30. Un circuit FPGA est alors programmé à partir de la description HDL modifiée 16. Au cours de la phase de débogage ultérieure, le module de débogage 20 peut afficher sur l'écran de visualisation les valeurs des signaux d'entrée, des signaux de sortie ou des signaux internes observés, sous la forme d'un chronogramme ou sous la forme de valeurs numériques, chaque valeur numérique étant associée à un symbole représentatif du signal considéré, par exemple une diode électroluminescente virtuelle. L'utilisateur peut alors facilement visualiser les résultats des fonctions de test, de débogage, et/ou de vérification exécutées par le module logique d'utilisateur 30 qu'il a incorporé à la description HDL initiale 12. Au cours de l'étape de débogage, l'utilisateur peut, en outre, à tout moment, fixer les valeurs indépendamment les unes des autres des signaux d'entrée/sortie ou des signaux internes du module logique d'utilisateur 30 qu'il a auparavant spécifiés comme signaux à commander. Pour l'observation et la commande des signaux associés au module logique d'utilisateur 30, le module de débogage 20 utilise, par exemple, les bornes d'accès du circuit FPGA dédiées au protocole de test JTAG défini par la norme IEEE 1149.1. Plus précisément, pour l'observation de signaux, on prévoit, au niveau du circuit FPGA programmé, un registre d'observation ayant la taille du nombre de signaux à observer. Au moyen des instructions utilisées de façon classique par le protocole de test JTAG, on capture la valeurs des signaux à observer dans le registre d'observation dont les bits sont transmis en série au module de débogage 20 par la borne TDO du circuit FPGA dédiée au protocole de test JTAG. La capture des signaux est réalisée de façon synchrone avec l'horloge qui a été spécifiée pour le module logique d'utilisateur 30. Ceci permet d'échantillonner les valeurs de signaux à observer en étant sûr qu'elles ne sont pas en train de changer. La commande d'un signal d'entrée/sortie ou d'un signal interne du programme de description d'outil 32 est obtenue par l'ajout, dans le circuit décrit par le programme de description d'outil 32, d'un multiplexeur, de deux nouveaux signaux d'entrée, à savoir un signal SCOM qui correspond à la valeur que l'on souhaite imposer au signal à commander et un signal Smux qui commande le multiplexeur, et d'un nouveau signal interne Ste. Selon un exemple de réalisation, on prévoit, au niveau du circuit FPGA programmé, un registre de commande composé d'un nombre de bits égal à deux fois le nombre de signaux que l'on veut commander, c'est-à-dire égal au nombre de signaux SCOM et Ste. Lors d'une phase de débogage, les valeurs de SCOM et S sont fournies par le module de débogage 20 au registre de commande en série par la borne TDI du circuit FPGA dédiée au protocole de test JTAG. Les nouvelles valeurs sont alors effectivement transmises au module logique d'utilisateur 30 de façon synchrone avec le signal d'horloge qui a été spécifié pour le module logique d'utilisateur 30. En modifiant, au cours de l'étape de débogage, la valeur d'un ou de plusieurs signaux d'entré/sortie et/ou de signaux internes mis en oeuvre par le module logique d'utilisateur 30, on peut exécuter différents tests au cours d'une même étape de débogage à la vitesse de fonctionnement normale du circuit FPGA programmé avec la description HDL modifiée. Les figures 5A, 5B à 7A, 7B illustrent très schématiquement des exemples de réalisation de la commande de signaux du programme de description d'outil 32. La figure 5A représente un module logique d'utilisateur 30 contenant un élément interne 50 défini à partir du programme de base écrit par l'utilisateur et qui fournit un signal de sortie SOS du module logique d'utilisateur 30 dont on souhaite pouvoir imposer la valeur. La figure 5B représente une figure analogue à la figure 5A dans laquelle un multiplexeur 52 est placé en aval de l'élément 50. Le nouveau signal interne SN correspond au signal fourni par l'élément 50 et attaque une première entrée du multiplexeur 52 qui fournit le signal de sortie SOS. Le signal SCOM attaque une seconde entrée du multiplexeur 52 et le signal Smux commande le multiplexeur 52. La figure 6A représente un module logique d'utilisateur 30 contenant un élément interne 50 défini à partir du programme de base écrit par l'utilisateur et qui reçoit un signal d'entrée SIN du module logique d'utilisateur 30 dont on souhaite pouvoir imposer la valeur. La figure 6B représente une figure analogue à la figure 6A dans laquelle le multiplexeur 52 est placé en amont de l'élément 50. Le nouveau signal interne SNEW correspond au signal fourni par le multiplexeur 52 et attaque l'élément interne 50. Le signal d'entrée SIN attaque une première entrée du multiplexeur 52, le signal SCOM attaque une seconde entrée du multiplexeur 52 et le signal Smux commande le multiplexeur 52. La figure 7A représente un module logique d'utilisateur 30 contenant un premier élément interne 52 fournissant un signal interne SINT à un second élément interne 20 54, les premier et second éléments internes 52, 54 étant définis à partir du programme de base écrit par l'utilisateur. On souhaite imposer la valeur du signal interne SINT. La figure 7B représente une figure analogue à la figure 7A dans laquelle le multiplexeur 52 est placé entre les éléments internes 52, 54. Le nouveau signal interne SNEW est fourni par le multiplexeur 52 au second élément interne 56. Le signal interne SINT attaque une première entrée du multiplexeur 52. Le signal SCOM attaque une seconde entrée du multiplexeur 52 et le signal Smux commande le multiplexeur 52. Dans son expression la plus simple, le module logique d'utilisateur 30 consiste en un seul multiplexeur comprenant une première entrée reliée au signal dont on souhaite imposer la valeur, c'est-à-dire un signal de la description HDL initiale 12 ou un signal d'entrée ou de sortie d'un autre outil incorporé à 35 la description HDL initiale 12, et une seconde entrée recevant 10 le signal SCOMÉ Le module logique d'utilisateur 30 reçoit également le signal Smux qui commande le multiplexeur 52. De façon plus générale, la présente invention permet de réaliser des tests selon des scenarii spécifiques que l'utilisateur peut adapter précisémentà la description}IDL initiale. Il s'agit, par exemple, de la vérification d'une machine à état complexe. En effet, il serait difficile de définir une telle opération de vérification par l'intermédiaire d'une interface graphique alors que l'écriture d'une telle opération de vérification par un langage de programmation classique est généralement simple et rapide. Les scénarii peuvent mettre en oeuvre des fonctions de test, de débogage et/ou de vérification qui peuvent être utilisées conjointement ou séparément. En outre, au cours d'une phase de débogage, l'utilisateur peut commander séparément ou simultanément les signaux reliés au module de commande et d'observation du module logique d'utilisateur. L'utilisateur peut ainsi facilement appliquer des vecteurs de test spécifiques directement dans le circuit FPGA. Un programme EJL peut mettre en oeuvre plusieurs signaux d'horloge de commande utilisés pour synchroniser différentes parties du circuit FPGA programmé à partir du programme HDL. Chaque module logique d'utilisateur est alors avantageusement commandé par le signal d'horloge de coitunande qui a la fréquence la plus élevée et la mesure des signaux observés est réalisée à la fréquence du signal d'horloge de commande la plus élevée de façon que tout changement d'état d'un signal soit capturé. REVENDICATIONS 1. Dispositif de débogage d'un circuit électronique fabriqué à partir d'un programme initial (12) en langage de description de matériel, HDL, comprenant: un module d'instrumentation (14) adapté à recevoir le programme initial; recevoir un programme additionnel décrivant des fonctions déterminées; déterminer un circuit additionnel à incorporer dans le circuit électronique à partir dudit programme additionnel, ledit circuit additionnel comprenant au moins une borne d'entrée et/ou une borne de sortie reliées au circuit électronique et étant adapté à mettre à une valeur déterminée un signal choisi parmi un signal reçu à ladite borne d'entrée, un signal fourni à ladite borne de sortie ou un signal interne audit circuit additionnel; et fournir un programme modifié (16) en langage HDL à partir du programme initial incorporant une description en langage HDL du circuit additionnel; et un module de débogage (20) adapté à déboguer un circuit électronique modifié fabriqué à partir du programme modifié, le module de débogage étant adapté à communiquer avec le circuit additionnel pour commander la mise à ladite valeur déterminée dudit signal choisi. 2. Dispositif selon la revendication 1, dans lequel la borne d'entrée et/ou la borne de sortie sont reliées à un autre circuit additionnel à incorporer dans le circuit électronique. 3. Dispositif selon la revendication 1, dans lequel le programme additionnel est écrit dans un langage différent du langage HDL, le module d'instrumentation (14) comprenant un moyen de conversion du programme additionnel en langage HDL. 4. Dispositif selon la revendication 1, dans lequel le circuit additionnel comprend un multiplexeur commandé par un signal de commande et recevant à une première entrée ledit signal de circuit additionnel et à une seconde entrée ladite valeur déterminée, le module de débogage (20) étant adapté à fournir au circuit additionnel la valeur du signal de commande. 5. Dispositif selon la revendication 1, dans lequel le circuit additionnel est adapté à fournir un signal représentatif du signal choisi, le module de débogage (20) comprenant en outre un écran de visualisation et étant adapté à afficher sur l'écran de visualisation la valeur du signal représentatif. 6 Dispositif selon la revendication 1, dans lequel le circuit électronique est un circuit prédiffusé programmable (10) programmé à partir du programme initial (12) et dans lequel le circuit électronique modifié est un circuit prédiffusé programmable programmé à partir du programme modifié (16). 7. Procédé de débogage d'un circuit électronique fabriqué à partir d'un programme initial (12) en langage de description de matériel, UDL, comprenant les étapes suivantes: recevoir un programme additionnel décrivant des fonctions déterminées; déterminer un circuit additionnel à incorporer dans le circuit électronique à partir dudit programme additionnel, ledit circuit additionnel comprenant au moins une borne d'entrée et/ou une borne de sortie reliées au circuit électronique et étant adapté à mettre à une valeur déterminée un signal choisi parmi un signal reçu à ladite borne d'entrée, un signal fourni à ladite borne de sortie ou un signal interne audit circuit additionnel; fournir un programme modifié (16) en langage HDL à partir du programme initial incorporant une description en langage HDL du circuit additionnel; fabriquer un circuit électronique modifié à partir du 30 programme modifié ; et déboguer le circuit électronique modifié en mettant, à un instant déterminé, le signal choisi à ladite valeur déterminée par l'intermédiaire du circuit additionnel. 8. Procédé selon la revendication 7, dans lequel les fonctions déterminées sont des fonctions de débogage, de test et/ou de vérification.