FR2870955A1 - Debogueur d'un circuit electronique fabrique a partir d'un programme en langage de description de materiel - Google Patents

Debogueur d'un circuit electronique fabrique a partir d'un programme en langage de description de materiel Download PDF

Info

Publication number
FR2870955A1
FR2870955A1 FR0451039A FR0451039A FR2870955A1 FR 2870955 A1 FR2870955 A1 FR 2870955A1 FR 0451039 A FR0451039 A FR 0451039A FR 0451039 A FR0451039 A FR 0451039A FR 2870955 A1 FR2870955 A1 FR 2870955A1
Authority
FR
France
Prior art keywords
electronic circuit
observation
signal
circuit
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0451039A
Other languages
English (en)
Other versions
FR2870955B1 (fr
Inventor
Pierre Colle
Anne Wantens
Thomas Guillemin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Temento Systems
Original Assignee
Temento Systems
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Temento Systems filed Critical Temento Systems
Priority to FR0451039A priority Critical patent/FR2870955B1/fr
Priority to US11/136,119 priority patent/US7434181B2/en
Priority to JP2005154611A priority patent/JP4769021B2/ja
Publication of FR2870955A1 publication Critical patent/FR2870955A1/fr
Application granted granted Critical
Publication of FR2870955B1 publication Critical patent/FR2870955B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

L'invention concerne un dispositif de débogage d'un circuit électronique fabriqué à partir d'un programme initial (12) en langage de description de matériel comprenant un module d'instrumentation (14) adapté à déterminer un premier circuit additionnel adapté à activer un premier signal d'observation représentatif du fonctionnement d'une partie du circuit électronique correspondant à une partie déterminée du programme initial, un deuxième circuit additionnel adapté à recevoir un signal d'entrée et à activer un signal de condition lorsqu'une condition sur le signal d'entrée est remplie, un troisième circuit additionnel adapté à activer un second signal d'observation lorsque le signal de condition est activé, un quatrième circuit additionnel adapté à mémoriser des données représentatives de l'ordre d'activation des premier et second signaux d'observation et adapté à fournir un programme modifié (16) incorporant les circuits additionnels, et un module de débogage (20) adapté à déboguer un circuit électronique modifié fabriqué à partir du programme modifié.

Description

DÉBOGUEUR D'UN CIRCUIT ÉLECTRONIQUE FABRIQUÉ À PARTIR D'UN
PROGRAM EN LANGAGE DE DESCRIPTION DE MATÉRIEL
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).
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 comportement 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 (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 dans le but d'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 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 procédés de débogage d'un circuit électronique obtenu à partir d'un programme HDL.
Le premier procédé consiste à utiliser un analyseur logique. Il s'agit par exemple de l'analyseur logique commercialisé 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 FIDL initial, est réalisé en programmant le circuit FPGA avec le programme HDL modifié. On fait alors qui 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.
Toutefois, un analyseur logique ne fournit qu'un chronogramme des signaux fournis par les circuits additionnels lors du fonctionnement du circuit électronique. Une analyse ultérieure de tels signaux est nécessaire pour déterminer, dans le cas de la détection d'une erreur de fonctionnement, si une telle erreur est due à une mauvaise conception du programme de description HDL initial, et si tel est le cas, à quelle partie du programme l'erreur survenue est associée. Une telle analyse peut être excessivement complexe, d'autant plus si le circuit électronique est lui-même complexe.
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 HDL 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 IIDL initial au niveau desquelles les erreurs se sont produites.
2870955 4 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 de déterminer l'origine de certaines erreurs détectées.
Un objet de la présente invention est de prévoir un dispositif et un procédé de débogage d'un circuit électronique décrit par un programme BDL qui facilite l'opération de débogage du circuit électronique.
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, HDL, comprenant un module d'instrumentation adapté à recevoir le programme initial; déterminer un premier circuit additionnel à incorporer dans le circuit électronique et adapté à activer un premier signal d'observation représentatif du fonctionnement d'une partie du circuit électronique correspondant à une partie déterminée du programme initial; déterminer un deuxième circuit additionnel à incorporer dans le circuit électronique et adapté à recevoir au moins un signal d'entrée et à activer un signal de condition lorsqu'une condition sur le signal d'entrée est remplie lors du fonctionnement du circuit électronique, et un troisième circuit additionnel à incorporer dans le circuit électronique et adapté à activer un second signal d'observation lorsque le signal de condition est activé ; déterminer un quatrième circuit additionnel à incorporer dans le circuit électronique et adapté à mémoriser des données représentatives de l'ordre d'activation des premier et second signaux d'observation; et fournir un programme modifié en langage HDL à partir du programme initial incorporant une description en langage HDL des premier, deuxième, troisième et quatrième circuits additionnels; et un module de débogage adapté à déboguer un circuit électronique modifié fabriqué à partir du programme modifié en interagissant avec le circuit électronique modifié par l'intermédiaire du quatrième circuit additionnel.
Selon un mode de réalisation de la présente invention, le module de débogage est, en outre, adapté, à partir desdites données représentatives, à afficher une référence de ladite partie déterminée du programme initial associée au premier signal d'observation et une référence dudit deuxième circuit additionnel associé au second signal d'observation selon ledit ordre d'activation des premier et second signaux d'observation.
Selon un mode de réalisation de la présente invention, le premier circuit additionnel est adapté à attribuer au premier signal d'observation une valeur parmi deux valeurs distinctes, et à activer le premier signal d'observation en attribuant au premier signal d'observation l'autre valeur parmi les deux valeurs distinctes par rapport à la valeur précédente du premier signal d'observation.
Selon un mode de réalisation de la présente invention, le troisième circuit additionnel est adapté à attribuer au second signal d'observation une valeur parmi deux valeurs distinctes, et à activer le second signal d'observation en attribuant au second signal d'observation l'autre valeur parmi les deux valeurs distinctes par rapport à la valeur précédente du second signal d'observation.
Selon un mode de réalisation de la présente invention, le module de débogage est, en outre, adapté à mémoriser la valeur du signal de condition du premier signal d'observation et/ou du second signal d'observation.
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 35 débogage d'un circuit électronique fabriqué à partir d'un programme initial en langage de description de matériel, }IDL, comprenant les étapes consistant à déterminer un premier circuit additionnel à incorporer dans le circuit électronique et adapté à activer un premier signal d'observation représentatif du fonctionnement d'une partie circuit électronique correspondant à une partie déterminée du programme initial; à déterminer un deuxième circuit additionnel à incorporer dans le circuit électronique et adapté à recevoir un signal d'entrée et à activer un signal de condition lorsqu'une condition sur le signal d'entrée est remplie lors du fonctionnement du circuit électronique, et un troisième circuit additionnel à incorporer dans le circuit électronique et adapté à activer un second signal d'observation lorsque le signal de condition est activé ; à déterminer un quatrième circuit additionnel à incorporer dans le circuit électronique et adapté à mémoriser des données représentatives de l'ordre d'activation des premier et second signaux d'observation; à fournir un programme modifié en langage HDL à partir du programme initial incorporant une description en langage HDL des premier, deuxième, troisième et quatrième circuits additionnels; à fabriquer un circuit électronique modifié à partir du programme modifié ; et à déboguer le circuit électronique modifié en interagissant avec le circuit électronique modifié par l'intermédiaire du quatrième circuit additionnel.
Selon un mode de réalisation de la présente invention, le procédé comprend en outre l'étape consistant, à partir desdites données représentatives, à afficher une référence de ladite partie déterminée du programme initial associée au premier signal d'observation et une référence dudit deuxième circuit additionnel associé au second signal d'observation selon ledit ordre d'activation des premier et second signaux d'observation Selon un mode de réalisation de la présente invention, le procédé comprend en outre l'étape consistant à mémoriser la valeur du signal de condition à l'activation du premier signal d'observation et/ou du second signal d'observation.
La présente invention prévoit également l'utilisation du dispositif tel que défini précédemment pour la détermination du taux de couverture du progràmme initial lors de l'exécution de tests.
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 représente schématiquement un exemple d'interface graphique du dispositif de débogage selon l'invention lors d'une l'opération de débogage; et la figure 4 illustre, de façon plus détaillée, certaines étapes du procédé de débogage selon l'invention.
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 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 BDL 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 HDL initial et à fournir un programme HDL modifié 16 à partir du programme HDL initial selon des instructions fournies par un utilisateur couune 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 HDL modifié 16 et dont le fonctionnement ne sera 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 F1& A 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 HDL initial 12. Une fenêtre 22, appelée fenêtre Code HDL, permet à l'utilisateur de visualiser l'ensemble des instructions du programme HDL initial 12. A titre d'exemple, le programme HDL initial 12 peut être affiché sous la forme de lignes successives, Lignel A LigneN, ou N est un entier, chaque ligne correspondant à une instruction du programme. L'utilisateur peut placer, de façon classique, des points d'observation, représentés en figure 2 par des blocs 23, au niveau d'une ou de plusieurs lignes du programme HDL initial dans la fenêtre de code 22. Un tel point d'observation est 2870955 9 adapté à fournir un signal d'observation à un état actif lorsque la ligne du programme UDL initial à laquelle le point d'observation est associé est exécutée par le circuit FPGA 10.
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 complexes à partir des outils initialement proposés par le module d'instrumentation 14.
La présente invention consiste à prévoir un outil particulier permettant d'associer un outil d'observation à un ou plusieurs outils sélectionnés par l'utilisateur ou à un outil créé par l'utilisateur à partir des outils proposés par le module d'instrumentation 14. Les outils d'observation sont représentés en figure 2 par des blocs 28. Un outil d'observation fournit, par exemple, un signal d'observation à un état actif lorsqu'un signal de sortie de l'outil de débogage associé prend une valeur déterminée, indiquant, par exemple, que la condition observée par l'outil de débogage 26 a été remplie.
Une fois les outils de débogage 26 définis et les outils d'observation 28 mis en place, le module d'instrumentation 14 modifie le programme HDL initial 12 pour fournir un programme}IDL modifié 16 à partir duquel le circuit FPGA est programmé. On fait alors fonctionner le circuit FPGA en le reliant au module de débogage 20.
La mise en place des outils d'observation 28 associés aux outils de débogage 26 peut être effectuée de façon manuelle, semi automatique ou complètement automatique. A titre d'exemple, le module d'instrumentation 14 place automatiquement un outil d'observation 28 au niveau de chaque outil de débogage 26 réalisant une fonction particulière.
La figure 3 représente un exemple d'affichage sur l'écran de visualisation lors d'une opération de débogage du circuit FPGA programmé à partir du programme HDL modifié 16.
Une fenêtre 30, appelée fenêtre d'Evénements, représente les données stockées dans une mémoire d'observation, par exemple une mémoire RAM, lors de l'opération de débogage. Plus précisément, la fenêtre d'Evénements 30 indique à l'utilisateur les références de signaux d'observation WP1 à WPN qui ont été successivement activés lors du fonctionnement du circuit FPGA 10. Il s'agit à la fois des signaux d'observation correspondant à des points d'observation associés à des lignes du programme HDL initial et à des outils d'observation associés à des outils de débogage. Les références des signaux d'observation sont affichées dans la fenêtre d'Evénements 30 dans l'ordre selon lequel ils ont été activés par le circuit FPGA 10. Si plusieurs signaux d'observation sont activés simultanément, ceux-ci sont affichés sur une même ligne de la fenêtre d'Evénements 30 de façon à fournir à l'utilisateur cette information de simultanéité. L'accès à la mémoire d'observation, par l'intermédiaire de la fenêtre d'Evénements 30, peut se faire sur requête de l'utilisateur ou automatiquement sur réception d'une combinaison de signaux d'observation.
En sélectionnant, dans la fenêtre d'Evénements 30, la référence d'un signal d'observation particulier fourni par un point d'observation associé à une ligne du programme HDL initial, l'utilisateur peut entraîner l'ouverture d'une fenêtre 32, appelée fenêtre de Code I-IDL, dans laquelle sont affichées des lignes successives du programme UDL initial, la ligne du programme associée au point d'observation considéré étant, par exemple, placée au centre de la fenêtre de Code HDL 32. De plus, en sélectionnant, dans la fenêtre d'Evénements 30, la référence d'un signal d'observation particulier associé à un outil d'observation, l'utilisateur peut entraîner l'ouverture d'une fenêtre 34, appelée fenêtre d'Instruments, dans laquelle est affichée l'outil de débogage 26 associé à l'outil d'observation considéré. En outre, en sélectionnant, dans la fenêtre d'Evénements 30, la référence d'un signal d'observation particulier associé à un outil d'observation, l'utilisateur peut entraîner l'ouverture d'une fenêtre 35, appelée fenêtre de Valeurs, dans laquelle sont affichées les valeurs, au moment de l'activation du signal d'observation sélectionné, de signaux spécifiques définis par l'utilisateur et appelés signaux d'utilisateur. Il peut s'agir de signaux utilisés par le programme HDL initial ou de signaux fournis par les outils de débogage. L'utilisateur peut également demander l'ouverture d'une fenêtre 36, appelée fenêtre Chronogramme, qui, couine cela est classique pour un analyseur logique, fournit un chronogramme des différents signaux observés lors de l'opération de débogage.
Le module de débogage 20 selon l'invention apporte une aide importante à l'utilisateur lors du débogage du circuit FPGA 10. En effet, lors de l'activation de signaux d'observation associés à des outils d'observation, le module de débogage 20 peut enregistrer les valeurs des signaux d'utilisateur. L'utilisateur peut ainsi surveiller l'évolution des signaux d'utilisateur lors de l'activation successive des signaux d'observation.
Le module de débogage 20 selon l'invention apporte une aide importante à l'utilisateur lors de la détermination du cône de logique d'une erreur observée. A titre d'exemple, l'utilisateur peut créer un outil de débogage fournissant un signal à un état actif lorsqu'une condition spécifique est réalisée, une telle condition indiquant la survenue d'une erreur dans le fonctionnement du circuit FPGA 10. L'utilisateur associe alors un outil d'observation à l'outil de débogage ainsi créé et demande que la fourniture d'un signal d'observation actif par l'outil d'observation entraîne l'affichage automatique de la fenêtre d'Evénements 30. En comparant, dans la fenêtre d'Evénements 30, la position relative entre le signal d'observation associé à l'outil d'observation et des signaux d'observation adjacents associés à des points d'observation du programme BIDL initial, l'utilisateur peut déterminer quelle partie du programme HDL initial a été exécutée avant la survenue de l'erreur, ce qui peut lui permettre de déterminer plus facilement l'origine de l'erreur.
Le module de débogage 20 selon l'invention apporte une aide importante à l'utilisateur pour effectuer une couverture correcte du programme UDL initial (opération appelée en anglais "code coverage"). En effet, après la réalisation d'un ensemble de tests, l'utilisateur peut accéder au contenu de la mémoire d'observation en affichant la fenêtre d'Evénements 30. A partir des signaux d'observation qui ont été activés lors du fonctionnement du circuit FPGA 10, l'utilisateur peut déterminer les parties du programme HDL initial qui ont été exécutées lors des différents tests. Il peut ainsi déterminer les parties du programme HDL initial qui n'ont pas été exécutées et définir de nouveaux tests à ajouter pour assurer l'exécution de la totalité du programme HDL initial.
Selon un exemple de réalisation, l'insertion d'un point d'observation dans le programme HDL initial peut correspondre à l'ajout d'une fonction attribuant à un signal d'observation binaire, la valeur opposée à la valeur précédente du signal d'observation. Pour les outils de débogage, l'insertion d'un l'outil d'observation relié à la sortie de l'outil de débogage attribue à un signal d'observation, pouvant prendre deux valeurs distinctes, la valeur opposée à la valeur précédente du signal d'observation lorsque la condition déterminée par l'outil de débogage est remplie lors du fonctionnement du circuit FPGA.
L'activation d'un signal d'observation est donc obtenue lors du changement de la valeur du signal d'observation.
Tous les signaux d'observation associés à des points d'observation ou à des outils d'observation sont regroupés dans un vecteur par le module de débogage 20 lors d'une opération de débogage. Le changement d'état d'au moins un signal d'observation du vecteur entraîne l'enregistrement par le module de débogage 20: - du vecteur représentatif de l'ensemble des signaux d'observation; et - des valeurs des signaux d'utilisateur.
Comme le vecteur regroupant l'ensemble des signaux d'observation est mémorisé, si plusieurs signaux d'observation changent d'état simultanément, l'information de simultanéité est conservée.
Un programme HDL 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 outil d'observation est alors avantageusement commandé par le signal d'horloge de commande qui a la fréquence la plus élevée et la mesure des signaux d'observation 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 d'observation soit capturé.
La figure 4 représente sous la forme d'un schéma par blocs un exemple de procédé d'enregistrement des signaux d'observation lors d'une opération de débogage. A l'étape 40, le module de débogage 20 mesure les valeurs des signaux d'observation Si. A l'étape 42, le module de débogage 20 compare, pour chaque signal d'observation Si, la valeur mesurée avec la valeur précédemment mesurée. Si, pour au moins un signal d'observation, la valeur mesurée et la valeur précédemment mesurée sont différentes, le procédé continue à l'étape 44. Dans le cas contraire, le procédé retourne à l'étape 40. A l'étape 44, le module de débogage 20 enregistre dans la mémoire d'observation la référence du signal d'observation qui a changé de valeur et les valeurs actuelles des signaux d'utilisateur. A l'étape 46, le module de débogage 20 détermine si le ou les signaux d'observation qui ont changé de valeur correspondent à des points d'arrêt. Dans l'affirmative, le procédé continue à l'étape 48. Dans le cas contraire, le procédé retourne à l'étape 42. A l'étape 48, le module de débogage 40 arrête l'opération de débogage et affiche sur l'écran de visualisation la fenêtre d'Événements 30 pour que l'utilisateur puisse constater quel signal d'observation activé a entraîné la fin de l'opération de débogage.
Le module d'instrumentation 14 peut éventuellement limiter le nombre de signaux d'observation pour lesquels le module de débogage 20 détermine si les valeurs des signaux d'observation ont changé. L'utilisateur peut alors placer autant de points d'observation et/ou d'outils d'observation qu'il le souhaite au moyen du module d'instrumentation 14 mais est limité par le nombre de signaux d'observation pris en compte par le module de débogage 20 lors d'une opération de débogage. Pour ce faire, l'utilisateur indique au module de débogage 20, avant de commencer l'opération de débogage,quels signaux d'observation sont à observer. Ceci permet de limiter le nombre de données échangées entre le circuit FPGA 10 et le module de débogage 20 lors d'une opération de débogage. Le module d'instrumentation 14 permet également avantageusement de limiter la taille de la mémoire d'observation, c'est-à- dire seules les références d'un nombre déterminé des derniers signaux d'observation activés sont par exemple stockées dans la mémoire d'observation.
Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'hoitune de l'art. En particulier, certaines des fenêtres représentées en figure 3 peuvent être confondues.
2870955 16

Claims (8)

REVENDICATIONS
1. Dispositif de débogage d'un circuit électronique fabriqué à partir d'un programme initial (12) en langage de description de matériel, UDL, comprenant: - un module d'instrumentation (14) adapté à recevoir le programme initial; déterminer un premier circuit additionnel à incorporer dans le circuit électronique et adapté à activer un premier signal d'observation représentatif du fonctionnement d'une partie du circuit électronique correspondant à une partie déterminée du programme initial; déterminer un deuxième circuit additionnel à incorporer dans le circuit électronique et adapté à recevoir au moins un signal d'entrée et à activer un signal de condition lorsqu'une condition sur le signal d'entrée est remplie lors du fonctionnement du circuit électronique, et un troisième circuit additionnel à incorporer dans le circuit électronique et adapté à activer un second signal d'observation lorsque le signal de condition est activé ; déterminer un quatrième circuit additionnel à incorporer dans le circuit électronique et adapté à mémoriser des données représentatives de l'ordre d'activation des premier et second signaux d'observation; et fournir un programme modifié (16) en langage BDL à partir du programme initial incorporant une description en langage HDL des premier, deuxième, troisième et quatrième circuits additionnels; et - un module de débogage (20) adapté à déboguer un circuit électronique modifié fabriqué à partir du programme modifié en interagissant avec le circuit électronique modifié par l'intermédiaire du quatrième circuit additionnel.
2. Dispositif selon la revendication 1, dans lequel le module de débogage (20) est, en outre, adapté, à partir desdites données représentatives, à afficher une référence de ladite partie déterminée du programme initial associée au premier signal d'observation et une référence dudit deuxième circuit additionnel associé au second signal d'observation selon ledit ordre d'activation des premier et second signaux d'observation.
3. Dispositif selon la revendication 1, dans lequel le premier circuit additionnel est adapté à attribuer au premier signal d'observation une valeur parmi deux valeurs distinctes, et à activer le premier signal d'observation en attribuant au premier signal d'observation l'autre valeur parmi les deux valeurs distinctes par rapport à la valeur précédente du premier signal d'observation.
4. Dispositif selon la revendication 1, dans lequel le troisième circuit additionnel est adapté à attribuer au second signal d'observation une valeur parmi deux valeurs distinctes, et à activer le second signal d'observation en attribuant au second signal d'observation l'autre valeur parmi les deux valeurs distinctes par rapport à la valeur précédente du second signal d'observation.
Dispositif selon la revendication 1, dans lequel le module de débogage (20) est, en outre, adapté à mémoriser la valeur du signal de condition du premier signal d'observation et/ou du second signal d'observation.
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 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, HDL, comprenant les étapes suivantes: déterminer un premier circuit additionnel à incorporer dans le circuit électronique et adapté à activer un premier signal d'observation représentatif du fonctionnement d'une partie circuit électronique correspondant à une partie déterminée du programme initial; déterminer un deuxième circuit additionnel à incorporer dans le circuit électronique et adapté à recevoir un signal d'entrée et à activer un signal de condition lorsqu'une condition sur le signal d'entrée est remplie lors du fonctionnement du circuit électronique, et un troisième circuit additionnel à incorporer dans le circuit électronique et adapté à activer un second signal d'observation lorsque le signal de condition est activé ; déterminer un quatrième circuit additionnel à incorporer dans le circuit électronique et adapté à mémoriser des données représentatives de l'ordre d'activation des premier et second signaux d'observation; fournir un programme modifié (16) en langage I-DL à partir du programme initial incorporant une description en langage UDL des premier, deuxième, troisième et quatrième circuits additionnels; fabriquer un circuit électronique modifié à partir du programme modifié ; et déboguer le circuit électronique modifié en 20 interagissant avec le circuit électronique modifié par l'intermédiaire du quatrième circuit additionnel.
8. Procédé selon la revendication 7, comprenant en outre l'étape consistant, à partir desdites données représentatives, à afficher une référence de ladite partie déterminée du programme initial associée au premier signal d'observation et une référence dudit deuxième circuit additionnel associé au second signal d'observation selon ledit ordre d'activation des premier et second signaux d'observation 9. Procédé selon la revendication 7, comprenant en outre l'étape consistant à mémoriser la valeur du signal de condition à l'activation du premier signal d'observation et/ou du second signal d'observation.
10. Utilisation du dispositif selon l'une quelconque des revendications 1 à 6 pour la détermination du taux de 35 couverture du programme initial lors de l'exécution de tests.
FR0451039A 2004-05-26 2004-05-26 Debogueur d'un circuit electronique fabrique a partir d'un programme en langage de description de materiel Expired - Fee Related FR2870955B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR0451039A FR2870955B1 (fr) 2004-05-26 2004-05-26 Debogueur d'un circuit electronique fabrique a partir d'un programme en langage de description de materiel
US11/136,119 US7434181B2 (en) 2004-05-26 2005-05-24 Debugger of an electronic circuit manufactured based on a program in hardware description language
JP2005154611A JP4769021B2 (ja) 2004-05-26 2005-05-26 デバッグ装置、デバッグ方法、及びデバッグ装置の使用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0451039A FR2870955B1 (fr) 2004-05-26 2004-05-26 Debogueur d'un circuit electronique fabrique a partir d'un programme en langage de description de materiel

Publications (2)

Publication Number Publication Date
FR2870955A1 true FR2870955A1 (fr) 2005-12-02
FR2870955B1 FR2870955B1 (fr) 2006-08-11

Family

ID=34944895

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0451039A Expired - Fee Related FR2870955B1 (fr) 2004-05-26 2004-05-26 Debogueur d'un circuit electronique fabrique a partir d'un programme en langage de description de materiel

Country Status (3)

Country Link
US (1) US7434181B2 (fr)
JP (1) JP4769021B2 (fr)
FR (1) FR2870955B1 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931572B1 (en) * 1999-11-30 2005-08-16 Synplicity, Inc. Design instrumentation circuitry
US20070005323A1 (en) * 2005-06-30 2007-01-04 Patzer Aaron T System and method of automating the addition of programmable breakpoint hardware to design models
CN101191819B (zh) * 2006-11-21 2012-05-23 国际商业机器公司 Fpga、fpga配置、调试系统和方法
US8365110B2 (en) * 2007-05-25 2013-01-29 The Regents Of The University Of Michigan Automatic error diagnosis and correction for RTL designs
US20100287571A1 (en) 2009-05-07 2010-11-11 Cypress Semiconductor Corporation Development, programming, and debugging environment
JP5196584B2 (ja) * 2009-09-18 2013-05-15 エヌイーシーコンピュータテクノ株式会社 試験パターン生成装置及び試験パターン生成方法
US10067854B2 (en) * 2016-10-25 2018-09-04 Xilinx, Inc. System and method for debugging software executed as a hardware simulation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131325A1 (en) * 1999-11-30 2003-07-10 Bridges2Silicon, Inc. Method and user interface for debugging an electronic system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2642788B2 (ja) * 1991-02-18 1997-08-20 富士通株式会社 実行監視点削減方式
JPH0744213A (ja) * 1993-07-29 1995-02-14 Teijin Eng Kk シーケンス制御装置
JPH08339313A (ja) * 1995-06-14 1996-12-24 Nec Corp 論理回路の監視装置
US6286114B1 (en) * 1997-10-27 2001-09-04 Altera Corporation Enhanced embedded logic analyzer
GB9805485D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Microcomputer
JP2000194580A (ja) * 1998-12-24 2000-07-14 Denso Corp Cpu開発支援装置
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6701491B1 (en) * 1999-06-26 2004-03-02 Sei-Yang Yang Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
US7240303B1 (en) * 1999-11-30 2007-07-03 Synplicity, Inc. Hardware/software co-debugging in a hardware description language
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131325A1 (en) * 1999-11-30 2003-07-10 Bridges2Silicon, Inc. Method and user interface for debugging an electronic system

Also Published As

Publication number Publication date
US7434181B2 (en) 2008-10-07
JP4769021B2 (ja) 2011-09-07
JP2005351891A (ja) 2005-12-22
US20050273660A1 (en) 2005-12-08
FR2870955B1 (fr) 2006-08-11

Similar Documents

Publication Publication Date Title
Anis et al. Low cost debug architecture using lossy compression for silicon debug
US8996928B2 (en) Devices for indicating a physical layer error
CA2970551A1 (fr) Procede d'ajustement de la precision d'un programme d'ordinateur manipulant au moins un nombre a virgule
EP0146661B1 (fr) Procédé de diagnostic électrique pour identifier une cellule défectueuse dans une chaîne de cellules formant un registre à décalage
EP0578540B1 (fr) Procédé pour tester le fonctionnement d'un circuit intégré spécialisé, et circuit intégré spécialisé s'y rapportant
US7047174B2 (en) Method for producing test patterns for testing an integrated circuit
US8019585B2 (en) Systems and methods for critical node filtering of integrated circuits
EP2592558B1 (fr) Système et procédé de conception de circuit numérique à capteur d'activité
FR2870955A1 (fr) Debogueur d'un circuit electronique fabrique a partir d'un programme en langage de description de materiel
FR2694094A1 (fr) Système et procédé de test de semi-conducteurs, procédé de formation d'un modèle de câblage et circuit intégré à semi-conducteurs à tester.
EP0823089B1 (fr) Procede et equipement de test automatique en parallele de composants electroniques
US7458042B2 (en) Debugger of an electric circuit manufactured based on a program in hardware description language
FR2658933A1 (fr) Systeme de commande du deroulement de sequences de tests dans un appareil de traitement de l'information.
EP3324326B1 (fr) Procédé et système de détection de vulnérabilité d'un dispositif embarqué
WO1998054587A1 (fr) Procede et dispositif de test pour equipements electroniques
FR2660759A1 (fr) Appareil et procede pour detecter un circuit redondant incorpore dans un circuit logique.
Karnane et al. Automating root-cause analysis to reduce time to find bugs by up to 50%
WO2009083574A1 (fr) Procede de realisation d'un outil universel perenne de developpement de tests d'equipements et outil de mise en oeuvre
EP0408425A1 (fr) Dispositif de test d'un réseau de composants notamment un circuit électronique
CN112349336A (zh) 一种存储器测试装置
CN104133174A (zh) 一种基于SignaltapⅡ的FPGA开发板测试方法
FR2766275A1 (fr) Circuit de validation de modeles de simulation
FR2896884A1 (fr) Test de scan
EP0820613B1 (fr) Procede et equipement de test automatique en parallele de composants electroniques
FR2543709A1 (fr) Appareil programmable pour la generation de sequences numeriques en vue du test de circuits digitaux

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 16

PLFP Fee payment

Year of fee payment: 17

PLFP Fee payment

Year of fee payment: 18

PLFP Fee payment

Year of fee payment: 19

ST Notification of lapse

Effective date: 20240105