Brevet FR2800169A1 — publié le 20010427

La présente invention concerne un procédé et un dispositif d'analyse de défauts de circuits logiques numéri ques ayant plusieurs n#uds internes, avec des registres uti les associés, mémorisant des états de commutation des n#uds internes d épendant des signaux d'entrée, de sorte qu'à chaque registre utile est associé un registre image permettant de lire l'état du circuit du registre utile. Dans la technique, on connaît toute une série de procédés de débogage de circuits utilisant des solutions très variées. Dans un procédé connu, on observe le comporte ment d'un circuit intégré en utilisant des analyseurs logi ques et des oscilloscopes reliés à des broches de branchement réelles du circuit intégré. Les broches de branchement sont des broches non utilisées, disponibles uniquement pour l'analyse de défauts et reliées à des n#uds internes du cir cuit intégré. Du fait du nombre limité de broches non utili sées, cette technique ne permet d'observer qu'un nombre réduit de signaux provenant de n#uds internes. Pour augmenter le nombre possible de sondes, il est connu de multiplier les broches de branchement ou d'utiliser des sondes virtuelles ; mais usuellement, on ne peut faire ainsi un diagnostic de dé- fauts en temps réel. D'autres solutions utilisent un environnement re liant le circuit à un programme au lieu d'un analyseur logi que ou d'un oscilloscope, pour observer le DUT (élément en contrôle) . L'environnement du programme qui se déroule dans un ordinateur est relié par une interface d'ordinateur au DUT ; du fait que l'interface d'ordinateur est relativement lente, il n'est généralement pas possible de faire une ana lyse de défauts en temps réel. Un autre procédé connu est un procédé d'analyse de défauts utilisant des cellules d'entrée/sortie spéciales d'un circuit ASIC (cellules de balayage de frontière) avec lesquelles on peut équiper des FPGA (FPGA circuit logique programmable par l'utilisateur) . On peut accéder usuellement à de telles cellules à l'aide d'un protocole JTAG mais on ne peut obtenir les signaux des n#uds internes du circuit. Un autre procédé de contrôle classique consiste à utiliser un chemin dit de balayage qui permet de mettre à lrétat et de lire tous les registres combinés de manière in terne au circuit, selon un chemin en série. Dans ce cas on peut également utiliser le protocole JTAG ; mais, par l'acces en série JTAG, on ne peut réaliser une détection de tels re gistres en temps réel sans avoir à arrêter pour cela le fo,nc- tionnement du DUT. Une solution nouvelle de débogage de circuit decrite dans le brevet US 5 764 079 qui décrit un composant logique programmable PLD permettant d'observer des n#uds in ternes et de munir les n#uds internes d'éléments images per mettant de lire l'état des n#uds internes ou de charger ceux- avec certains états. A la lecture des n#uds internes, on couple cela dans des éléments images et on les rend disponi bles sur les bornes d"entrée/sortie par l'intermédiaire de registres à décalage. Le brevet US 5 870 410 décrit un système d'interface, par exemple pour des composants PLD tels que dé- crits dans le brevet US 5 764 079. Ce système d'interface doit servir non seulement à observer les états des n#uds in ternes mais encore à permettre en outre d'appliquer aux n#uds internes des vecteurs de test pour l'observation défauts. Les brevets US évoqués ci-dessus permettent cer tes de lire les états de commutation internes d'un circuit PLD et de saisir d'éventuels états de défaut, mais non de saisir la cause de ce défaut. Pour déterminer une telle cause de défaut, la seule possibilité existante est d'exécuter une simulation compliquée par calculateur à partir d'un état ini tial de fonctionnement du circuit, c'est-à-dire en quelque sorte l'instant zéro. Dans de telles simulations on dispose un modèle du circuit intégré à contrôler, par exemple d'une liste de réseaux de grilles ; on simule alors le comportement du circuit par un programme en utilisant des signaux d'entrée définis pour assurer cette simulation. Mais une simulation est extrêmement longue, notamment si l'on veut simuler sur des périodes très longues. La présente invention a pour but de développer un procédé et un dispositif d'analyse de défauts dans des cir cuits logiques numériques comportant un grand nombre de n#uds de circuits avec des registres utiles associés dans lesquels on mémorise les états de commutation des n#uds internes dé pendant des signaux d'entrée et, pour chaque registre utile, on utilise un registre image permettant de lire l'état commutation du registre utile. Le circuit logique fonctionne sous application de signaux d'entrée à ce circuit logique ; les signaux d'entrée sont protocolisés. Pendant le fonction nement du circuit logique, on extrait les états de commuta tion n#uds internes de manière cyclique par les registres images. Les états de commutation des n#uds internes du cir cuit logique sont mémorisés pour chaque cycle, pour générer un historique des états de commutation. Lorsque se-produit un événement prédéterminé, on arrête le fonctionnement du cir cuit logique puis on revient en arrière dans l'histoire des états commutation d'un nombre prédéterminé de cycles. En fonction du nombre de cycles ainsi repassé en arrière, et des états de commutation mémorisés, ainsi que des signaux d'entrée protocolisés on effectue ensuite une simulation pro grammée du fonctionnement du circuit logique. La présente invention repose ainsi sur la consi dération selon laquelle il est possible de réaliser une re cherche de cause de défaut, peu longue, en lisant de manière cyclique tous les états de commutation des n#uds internes d'un circuit logique numérique. Lorsqu'un événement prédéter miné produit, par exemple un état de défaut du circuit lo gique numérique, on arrête le fonctionnement du circuit et on revient de préférence en arrière dans l'historique des états de commutation pour afficher les états de commutation du cy cle auxquels on est revenu, qui sont enregistrés en mémoire, et pour lesquels on a un fonctionnement correct du circuit logique. Cela permet une simulation programmée en utilisant le diagramme du circuit mémorisé pour ce cycle ; l'expression diagramme de circuit désigne tous les états de commuta tion mémorisés de manière cyclique de tous les n#uds internes du circuit, et l'on commence aux signaux d'entrée protocoli- sés sans avoir besoin de commencer la simulation pro gramme pratiquement à l'instant zéro, c'est-à-dire depuis le défaut d'un fonctionnement du circuit logique. La simulation par programme est exécutée a partir du cycle auquel on est revenu et sur la base des états de commutation internes mémorisés pour cet état ainsi que des signaux d'entrée protocolisés appliqués après ce cycle. Ain si, l'invention permet de combiner un circuit débogueur à une simulation de programme pour faire une recherche rapide d'une cause de défaut. Un dispositif pour la mise en ceuvre du procédé selon l'invention comprend un registre image pour chacun des multiples n#uds internes de circuits, et un circuit logique numérique, chaque n#ud interne de circuit ayant un registre utile dont l'état de commutation dépendant des signaux d'entrée, peut être lu par le registre image associé une mé moire pour mémoriser un nombre de diagrammes d'états com- mutation, chaque diagramme représentant les états de commutation des n#uds de circuits internes à un instant pré déterminé, une commande reliée au registre image et à mé- moire pour mémoriser de manière cyclique des diagrammes d'états de commutation dans la mémoire, et une interface pour transmettre au moins un diagramme d'états de commutation dans un calculateur de simulation de programme. Les signaux d'entrée protocolisés peuvent être saisis par structures de circuits câblés prévues ma nière spécifique et qui sont également enregistrées dans la mémoire et sont transférées par la commande vers le calcula teur de simulation programmée. En variante, les signaux d'entrée protocolisés peuvent être saisis par exemple par un analyseur logique ou un moyen analogue, et être transférés directement celui-ci vers le calculateur de simulation de programme. Selon l'invention, les états de commutation de chaque cycle peuvent être mémorisés de préférence dans une mémoire (RAM) qui est de préférence une mémoire anneau. Dans les exemples de réalisation préférentiels de l'invention, registres images sont des mémoires FIFO (mé- moires du type premier entré, premier sorti) de sorte qu' chaque cadence de lecture du registre image on extrait une valeur des registres utiles du circuit logique numérique et on la fournit à la commande, ce qui permet une observation continue du circuit. La présente invention crée un circuit débogueur qui lit cycliquement les états de commutation de tous les n#uds internes d'un circuit numérique logique pour qu'à la saisie d'un défaut de ce circuit, qui peut être n'importe quel circuit logique numérique, par exemple un PLD, un FPGA ou un circuit analogue, on puisse fournir des données appro priées à un calculateur de simulation permettant de détermi ner la cause du défaut ou de la défaillance. Le circuit débogueur permet ainsi un travail en temps réel, c'est-à-dire la saisie des états de commutation des n#uds internes du cir cuit et l'exécution d'une interruption pendant que le circuit intégré, c'est-à-dire le circuit logique numérique et le sys tème environnant, fonctionnent en temps réel. Pour satisfaire cette exigence de temps réel, il est nécessaire de prévoir un circuit débogueur. Le circuit débogueur selon la présente invention est de préférence en mesure de travailler selon trois modes différents : un mode de poursuite, un mode d'interruption et mode d'actualisation. Le mode de poursuite permet la détection et la mémorisation de tous les états de commutation des n#uds in ternes du circuit, indépendamment du fonctionnement du cir cuit logique numérique ainsi que la poursuite et la memorisation en continu de tous les signaux d'entrée/sortie. Les états de commutation détectés décrivent le comportement interne d'un DUT, par exemple au cours d'un procédé de fabri cation d'un prototype ou pendant un test dans un système. Les signaux d'entrée/de sortie décrivent les données environnan tes correspondantes. Les données saisies des états de commu tation et des signaux d"entrée servent, comme cela a été décrit ci-dessus, à l'analyse ultérieure du fonctionnement du circuit, en particulier à la reconstruction des états inter nes du circuit du DUT dans un environnement de simulation. L'expression reconstruction signifie que le modèle de si mulation du DUT est initialisé avec l'état de commutation dé- tecté d'un instant sélectionné. Comme stimulations pour la simulation, on utilise alors les signaux d'entrée, détectés. Ainsi, comme cela a été décrit ci-dessus, il n'est pas néces saire que l'utilisateur simule de manière fastidieuse le mo dèle de simulation aux instants considérés.. Il suffit de simuler de manière détaillée les intervalles de temps néces saires l'analyse. Cela se traduit par une réduction très importante du temps nécessaire à la simulation. Le mode d'interruption est utilisé lorsque se produisent des conditions d'interruption déterminées qui sont des états librement spécifiés du DUT. Il y a ainsi des condi tions d'interruption interne représentant un état de commuta tion interne, qui déclenchent une action correspondante soit par exemple une opération arithmétique interne, représen tent ainsi un état de défaut. On peut également prédéterminer des conditions d'interruption externe donnant, en dehors du DUT, situation qui déclenche une action correspondante ; cet état peut par exemple être provoqué par des valeurs de départ défectueuses. Les conditions d'interruption interne ou externe sont générées de manière générale par un circuit com plémentaire. On peut produire une autre interruption du cir cuit débogueur par une intervention de l'utilisateur qui commande par exemple la fin du débogage. Les actions produi tes par une interruption dépendent du type de l'interruption ; en général on arrête le DUT et on mémorise l'état de commutation. Suivant la gravité de l'interruption produite, on peut ensuite poursuivre le fonctionnement ou exécuter une remise à l'état antérieur. Le mode d'interruption peut être activé en parallèle au mode de pour suite. Enfin le mode d'actualisation permet, pour un utilisateur, de générer des états de commutation interne dé- finis dans le DUT. On peut ainsi provoquer des états de fonc tionnement du circuit sans avoir à mettre le circuit dans ces états, lui appliquant des signaux d'entrée. Ce mode peut servir tester effectivement des cas limites d'états de fonctionnement, ou à réaliser des états du circuit . ne peuvent plus se reconstruire ou ne l'être que difficilement, pour effectuer des tests. Selon des exemples de réalisation préférentiels de l'invention, un circuit débogueur permettant les modes de fonctionnement ci-dessus se compose d'un registre image pour noeuds de commutation internes du DUT, d'une mémoire pour enregistrer de nombreux diagrammes d'état de commutation as sociés aux différents instants de fonctionnement, ainsi une commande permettant la mémorisation cyclique des grammes d'état de fonctionnement et la lecture de ceux pour un calculateur de simulation. Un tel circuit débogueur permet de suivre en temps réel les états de commutation in ternes sans réaction accidentelle sur le DUT. De plus, le circuit débogueur peut s'appliquer à toutes les techniques de circuit usuelles. Le circuit débo- gueur se commande de préférence par un calculateur qui assure préparation des données de poursuite et d'actualisation, ainsi que la description des conditions d'interruption. Après l'apparition d'une condition interruption, la simulation effectuée sur la base des états de commutation saisis en mode de poursuite et des données d'entrée, se fait de préférence sur la base d'un modele de circuit disponible sous la forme d'une liste de réseaux de portes. Il est ainsi inutile de transformer les données obte nues par le circuit débogueur pour les faire passer plan des portes dans le plan de transfert des registres. La présente invention permet ainsi une analyse de défaut rapide pour trouver la cause des défauts produits dans les circuits logiques numériques. La présente invention per met de trouver la cause des défauts même si l'environnement du système fournit des stimulations différentes pour chaque répétition d'un procédé d'analyse de défaut de circuit. Selon la présente invention, l'utilisateur na pas à répéter de manière incrémentale une analyse erronée pour cerner une cause de défaut ; au contraire il peut effec tuer la recherche des causes de défaut par une détection et une mémorisation cyclique de toutes les données concernées pendant la première exécution lorsque se produit le défaut, en procédant par une simulation programmée qu'il n'est pas nécessaire d'effectuer à partir de l'instant zéro. Les limi tes de ce procédé de détection cyclique des données caracté ristiques, dépendent uniquement du taux de détection limité qui lui-même dépend de la technique ainsi que d'un espace de mémoire éventuellement limité vers le haut pour le grand nom- de signaux correspondant à des projets de circuit logique importants ou des temps de fonctionnement en temps réel longs. Dans ce cas, la présente invention permet de trouver cause d'un défaut même si celui-ci ne se produit qu'une seule fois, du fait qu'on effectue une simulation par pro gramme reposant sur un diagramme d'état de commutation mis en memoire, enregistré à l'instant qui précède directement dans le temps l'arrivée du défaut. Ainsi l'utilisateur n'a pas à attendre que le défaut se reproduise ce qui, dans de nombreux cas, est impossible à cause de l'absence de reproduction des defauts. La présente invention sera décrite ci-après de ma- niere plus détaillée à l'aide d'exemples de réalisation ferentiels représentés dans les dessins annexés dans lesquels : figure 1 est un schéma servant à la description présente invention, les figures 2a-2d sont des dessins de différents exemples de réalisation de dispositifs pour la mise en #uvre procédé de l'invention, la figure 3 est un schéma d'une cellule de registre utile la figure 4 est un schéma d'un n#ud de circuit d'une lule de registre utile avec un registre image selon l'invention, la figure 5 est un tableau montrant le fonctionnement n#ud du circuit de la figure 4, figure 6 est un schéma explicitant des registres images combinés pour expliciter une chaîne de détection ou un chemin de détection, figure 7 est un schéma d'un exemple de parties de cir cuit pour créer une condition d'interruption, - la figure 8 est un schéma montrant un exemple de réalisa tion préférentiel pour décaler et lire une chaîne de dé- tection, et - la figure 9 montre un schéma d'un n#ud du circuit compor tant un registre utile avec un registre image réalisé par une mémoire FIFO. Un exemple de réalisation préférentiel du procédé de l'invention pour l'analyse de défauts, sera décrit ci- après de manière plus détaillée à l'aide de la figure 1. L'axe représenté dans la partie supérieure la figure 1 est l'axe des temps réels alors que l'axe inférieur représente le temps de simulation virtuel. Selon l'invention, on fait fonc tionner un DUT 2 en temps réel en appliquant des signaux d'entrée 4 qui représentent l'influence d'un environnement de système sur le DUT 2. Pendant le fonctionnement du DUT 2 qui peut être par exemple un FPGA ou un PLD, selon l'invention, on extrait les états de commutation de tous les n#uds inter nes du circuit du DUT 2 de manière cyclique à l'aide d'un circuit débogueur 6 ; cela est indiqué par flèche 8 à la figure 1. Le circuit débogueur 6 est relié par une interface 9 au DUT 2. Bien que le circuit débogueur 6 et le DUT 2 de la figure 1 soient représentés séparés par une interface 9, une partie du circuit débogueur 6, à savoir au moins le registre image de celui-ci, se trouve dans le circuit intégré du DUT 2. Le fonctionnement du circuit logique, par exemple pour exécuter des tests de prototypes ou des tests dans un sys tème, se poursuivra pendant le débogage du circuit jusqu'à ce qu'à un instant tl se produise un état de défaut 10 dans le DUT 2. Cet état de défaut 10 représente une condition d'interruption. Lorsque se produit une telle condition d'interruption 10, en fonction des états circuit lus de manière cyclique en fonction du circuit débogueur 6, et des signaux d'entrée 4 conçus pour le DUT 2, on exécute une simu lation de programme pour rechercher la cause de l'état de dé- faut 10. Le transfert des données ci-dessus est représenté schématiquement à la figure 1 par une flèche 12. Il convient de remarquer ici que les opérations du procédé, représentées au-dessus de la flèche 12 à la figure 1, doivent être consi dérées comme un environnement en temps réel alors que les opérations qui se trouvent en dessous de la flèche 12 pour li, des temps, correspondent à une simulation virtuelle. Comme le montre la figure 1, dans la simulation, pour trouver la cause de défaut, on revient de l'instant tl à un instant t2 pour commencer la simulation à cet instant t2. L'intervalle de retour est choisi de préférence pour que le diagramme de l'état du circuit enregistré à l'instant t2 in dique un fonctionnement correct du DUT. Il en résulte un in tervalle de simulation de programme 14 pour l'analyse de défaut, qui commence à l'instant t2. Cela permet de raccour- considérablement, selon l'invention, la consommation de temps pour le procédé d'analyse de cause de défaut qui com mence après la saisie de l'état de défaut 10. Comme l'indique schématiquement la flèche 12, on utilise les données lues de manière cyclique pour une analyse suivante du comportement de commutation ; les états internes du circuit décrivent le com portement interne du DUT 2, alors que les signaux d'entrée 4 représentent les données d'environnement correspondantes con duisant au comportement à observer. Il faut remarquer ici que l'intervalle de retour, consistant à revenir de l'instant t, à l'instant t2, est choisi de préférence pour que l'on soit assuré que le circuit fonctionnait correctement jusqu'à l'instant t2. Pour le véri fier, on peut effectuer un contrôle. Si ce contrôle devait indiquer qu'à l'instant du retour, le circuit ne fonctionnait plus correctement, on peut, après le retour l'instant t2, poursuivre par un autre retour pour s'assurer qu'au début de la simulation du programme, le DUT fonctionnait correctement. simulation de programme qui fournit l'analyse de la cause de défaut, s'obtient de préférence en utilisant un environne ment de simulation du modèle de grille pour que le modèle de simulation du DUT puisse être initialisé avec un jeu de don nées représentant un diagramme d'états de commutation détec tés. Ce diagramme d'états de commutation détectés, est associé à l'instant t2. Ainsi, selon l'invention, la simula tion ne commence pas nécessairement à l'instant 0. Au con- traire, la simulation commence à l'instant t2 du fait que le modèle simulation est initialisé avec le diagramme états de commutation lu à cet instant, et du fait que les signaux d'entrée, détectés, sont utilisés comme des stimuli pour la simulation des plans de grilles. Selon l'invention, il suffit alors de simuler l'intervalle compris entre l'instant d'initialisation t2 et l'instant de défaut tl, ce qui permet une économie considérable de temps par rapport aux procédés de simulation connus. De plus, selon l'invention, il est avantageux que l'état DUT 2 puisse se pré-régler par le circuit débogueur 6 sans nécessiter de séquence de stimulation externe. Cela peut se faire à l'aide des registres images selon la présente invention, en particulier pour tester de manière efficace des conditions de fonctionnement extrêmes ou encore des états du DUT qu'il est difficile d'atteindre par des stimulations ex térieures, comme par exemple pour le contrôle de l'aptitude de machines d'états à partir d'états non autorisés vers des états autorisés en un temps fini. Après avoir décrit de manière générale le procédé de l'invention, on abordera, dans les exemples suivants, des dispositifs pour exécuter le procédé de l'invention. La figure 2a montre un premier exemple de réali sation d'un dispositif selon l'invention représentant DUT 2 contenant des composants 20 du circuit débogueur du dispo sitif de l'invention. Les composants 20 concernent les compo sants du circuit débogueur prévus dans le circuit intégré du DUT 2, à savoir le registre image et des installations en op tion pour saisir les signaux d'entrée 4 de l'environnement 22 du système ainsi que des installations pour saisir les si gnaux de sortie du DUT 2, par exemple pour définir des condi tions d'interruption correspondantes. Les éléments 20, internes au DUT du circuit débogueur, sont reliés par in terface 24 à une commande de débogueur 26 qui commande le fonctionnement de ce circuit débogueur et enregistre des don nées lues et saisies dans la mémoire 24 qui est de préférence une mémoire RAM. La commande du circuit débogueur est en ou tre reliée par une interface 30 à un ordinateur 32 qui exé- cute la simulation de programme en utilisant les données fournies par la commande 26 ; ces données sont fournies l'ordinateur 32 par l'intermédiaire de l'interface 30. Dans l'exemple de réalisation représenté à la figure 2a, la liai son entre la partie 20 du débogueur interne au DUT, et la commande 26, savoir l'interface 24, représente une liaison critique du point de vue du temps. Dans l'exemple de réalisation de la figure 2b, la commande du circuit débogueur est subdivisée en deux parties, à savoir un élément de base 36 qui se trouve dans le circuit intégré 34 du DUT 2, et un élément de commande 26b l'extérieur. Dans cet exemple de réalisation, le noyau 36 de la fonctionnalité de la commande de débogueur se trouve dans le circuit 34 qui réalise également le DUT 2 ainsi, la liaison critique dans le temps, portant la référence 38 à la figure 2b, peut être plus courte ici, ce qui donne des temps de parcours de signaux plus courts et permet une fréquence de détection plus élevée. L'élément de base 36 du circuit de débogueur, tel que représenté, est une machine d'états indépendante du DUT pour commander la communication entre la commande de débo- gueur 26' et les composants de débogueur 20 internes au DUT. L'élément de base du débogueur doit commander la transmission de données vers les éléments images, la saisie d'interruption, et une intervention possible d'utilisateur par l'interface de débogueur 24' vers la commande de débo- gueur 26'. La lecture du registre image est critique pour le temps ; lélément de base 36 fournit la cadence de décalage pour les éléments images combinés dans la chaîne de décalage, et correspond à la lecture d'une ou plusieurs chaînes de dé- calage. Le temps nécessaire à cette opération définit princi palement la période de détection. La lecture des chaînes de registres images et l'enregistrement de la mémoire RAM 28 sont organisés de préférence comme des structures de pipeli nes aussi parallèles que possible. Contrairement à cela, la description des registres images pendant le mode d'actualisation du débogueur est moins critique car, dans ce mode, le DUT est usuellement dans un temps d'attente. Un au- tre avantage de l'installation de l'élément de base 36 dans le circuit intégré du DUT, est de permettre la saisie aussi rapidement que possible des interruptions internes. En va riante à l'exemple de réalisation de la figure 2a, l'élément de base 36 de la commande de débogueur peut également être relié la mémoire RAM externe 28 par une interface directe. L'exemple de réalisation de la figure 2c se dis tingue de celui de la figure 2b en ce que toute la commande de débogueur 26, y compris la mémoire RAM 28, est placée dans le circuit intégré 34 du DUT 2. Cet exemple de réalisation constitue ainsi une solution compacte pour test dans le système avec une fréquence de détection maximale. Mais l'inconvénient de la mise en ceuvre importante de circuits complémentaires, et de l'occupation d'emplacements de la puce pour mémoire RAM dans le DUT. Il faut également remarquer que la mémoire RAM 28 sur la puce possède usuellement une ca pacité de mémoire plus faible qu'une mémoire RAM externe, comme cela est représenté à la figure 2c. La figure 2d montre schématiquement une possibi lité de surveiller en continu le vecteur d'entrée du DUT 2, c'est-à-dire les signaux d'entrée 4 de celui-ci, pour fournir ces signaux d'entrée à un calculateur comme stimulations pour la simulation. A titre d'illustration, selon la figure 2d, la saisie des signaux d'entrée 4 se fait par l'intermédiaire d'un analyseur logique 40 relié aux bornes d'entrée du DUT 2 et au calculateur 32. Il convient toutefois de remarquer que les signaux d'entrée du DUT 2 peuvent également être saisis de façon différente, par exemple par des composants de cir cuits correspondants dans le circuit intégré du DUT, pour permettre de saisir les signaux d'entrée par la commande de débogueurs. Selon les figures 3 à 5 on décrira ci-après des exemples de réalisation préférentiels des composants du cir cuit débogueur prévus dans le circuit intégré du DUT. La figure 3 montre un registre utile 50 servant, dans un circuit logique numérique, à définir un état de com mutation d'un n#ud interne du circuit. Le registre utile 50 de l'exemple de réalisation représenté est un FLip-Flop D avec une entrée de données 1D, une entrée d'activation IE et une entrée d'horloge Cl. Un signal de données (d) est appli qué l'entrée de données 1D ; l'entrée d'activation re çoit un signal d'activation (en) et l'entrée d'horloge Cl reçoit une horloge (cadence) (clk). Le Flip-Flop 50 possède une sortie de données (q) et une sortie inversée de données (qb) . La figure 4 montre un n#ud interne du système d'un circuit logique numérique dans lequel le registre utile 50 interne comporte un registre image 60 ayant de préférence la même structure que le registre utile ou le registre de données 50. Le registre utile 50 et le registre image sont combinés par deux démultiplexeurs 62, 64, une porte ET 66 et une porte OU 68 pour permettre un fonctionnement normal du registre utile 50, une détection du registre image 60, une actualisation du contenu du registre utile 50 par le registre image ou un transfert du contenu du registre utile 50 dans le registre image 60. Pour cela, un signal de commande (upd), qui indi que le mode d'actualisation, est relié à une entrée de la porte OU 68 et à l'entrée de commande du démultiplexeur 62. La sortie du démultiplexeur 62 est reliée à l'entrée de don nées 1D du registre utile. Une entrée du démultiplexeur 62 reçoit le signal d'entrée de données (d) alors que l'autre entrée du démultiplexeur 62 est reliée à la sortie du regis tre image 60. La seconde entrée de la porte OU 68 est reliée à la sortie de la porte ET 66 dont les entrées reçoivent d'une part le signal d'activation de registre de données (en) et, d'autre part, un signal d'activation de puce de registre de données (ce) . Lentrée d'horloge Cl du registre utile 60 reçoit la cadence (clk) . La sortie du registre utile 50 est reliée à une entrée du démultiplexeur 64 alors que l'autre entrée de ce démultiplexeur 64 est reliée à une entrée de chemin de balayage de registre image (si) . Le démultiplexeur 64 est commandé par un signal de mode de lecture (cpt) ; la sortie du démultiplexeur 64 est reliée à l'entrée de données 1D du registre image 60. Une entrée d'activation IE du regis tre image 60 reçoit un signal d'activation de registre image (se) , alors que l'entrée d'horloge Cl de celui-ci reçoit un signal d'horloge (sclk) pour ce registre. La sortie du regis tre image 60 forme la sortie de détection, de sorte que le registre image peut être branché par une entrée (si) et la sortie (so) dans un chemin de balayage (Scan). Pour le fonctionnement du circuit représenté la figure 4, on se reportera au tableau de la figure 5 ; dans ce tableau, l'occupation des entrées et des sorties est présen tée pour les différents modes de fonctionnement. Il suffit de remarquer que, pendant le fonction nement normal du registre utile 50, le signal d'actualisation (upd) est inactif c'est-à-dire qu'il est à l'état 0, de sorte que le signal de données (d) est appliqué à l'entrée de don nées ID du registre utile 50 par le démultiplexeur 62. Pen dant mode de détection, le signal de lecture (cpt) est inactif, c'est-à-dire qu'il est à l'état 0 ; ainsi, le signal à l'entrée du chemin de balayage du registre image (si) est appliqué à l'entrée de données ID du registre image 60. En mode d'actualisation, le signal d'actualisation (upd) est ac tif c'est-à-dire qu'il est à l'état 1, de sorte que le signal de sortie du registre image 60 est appliqué par le démulti- plexeur 62 à l'entrée de données ID du registre utile 50 ; le contenu du registre image 60 est transféré dans le registre utile . En mode de lecture, le signal de lecture (cpt) est actif c'est-à-dire à l'état 1, de sorte que par le démulti- plexeur 64, le contenu du registre utile 50 est repris dans le registre image 60. Bien qu'un exemple de réalisation caractéristique du montage du registre utile et du registre image soit repré senté ci-dessus à la figure 4, il est clair que le registre utile et le registre image peuvent être combinés d'une ma nière différente pour assurer la fonction décrite. De la même manière, le registre image n'est pas nécessairement formé par un élément identique au registre de données ; au contraire, il peut s'agir d'un élément de registre de forme différente. La figure 6 montre le montage de plusieurs regis tres images tels que celui de la f igure 4 dans un chemin de détection, pour former une chaîne à décalage. Les références 100, 102, 104, 106 désignent chaque fois une structure de circuit représentant un n#ud interne d'un circuit logique nu- merique. Aux figures 4 et 6, on utilise les mêmes références pour les mêmes signaux ; à la figure 6, seul le n#ud gauche extérieur du circuit porte les références de la figure 4. Comme cela apparaît à la figure 6, chaque entrée (si) du che de balayage d'un registre image est reliée à la sortie du chemin de balayage du registre image précédent ; on peut ain si lire les registres images sous la forme d'une chaîne à dé- calage. Les signaux clk, upd, ce, cpt, se, sclk sont reliés par des lignes communes pour former une chaîne de détection. Comme cela a été décrit ci-dessus en référence figure 1, selon l'invention, on fait une simulation de programme lorsque se produit une condition d'interruption. Les interruptions peuvent être saisies de différentes maniè res. D'une part, on peut avoir des conditions d'interruption complexes pour lesquelles par exemple un diagramme d'états de circuits, saisi, est comparé à un diagramme d'états de cir cuits prédéterminés, prévisibles ; en cas dabsence de con cordance on estime que les conditions d'interruption sont réalisées. D'autre part, on peut également prévoir, dans le plan du réseau, des conditions d'interruption qui constituent des cellules prédéterminées, intégrées automatiquement dans la description du réseau DUT. On ne surveille que des n#uds ou des vecteurs isolés et une cellule d'interruption d'une telle surveil.'lance correspond par exemple à la figure 7. Une ligne 80 représente un n#ud à surveiller ; elle est reliée à une entrée d'un comparateur 82. La seconde entrée du compara- teur 82 est reliée à une installation 84 fournissant une va leur de comparaison. La valeur de référence ou de comparaison comparateur 82 peut être réglée par un chemin de balayage de cellules d'interruption 86 distinct. Une valeur de compa raison n'est toujours valable que si un unique bit de libéra tion autorisation (figure 7) est mis à l'état. L'utilisateur peut ainsi mettre en ceuvre ou couper le fonc tionnement du comparateur. La sortie du comparateur 82 peut être par exemple le signal d'activation de la puce du regis tre de données pour régler le mode de fonctionnement normal si la comparaison dans le comparateur 82 ne donne pas de concordance et définit ainsi une condition d'interruption. Comme indiqué ci-dessus, l'enregistrement des données reçues dans le mode de suite, c'est-à-dire les dia grammes d' états ou de plus, en option, les signaux d' entrée, se fait usuellement dans des zones de mémoire RAM internes ou externes. L'importance des zones de mémoire RAM utilisées dé- finit le nombre des vecteurs d'états susceptibles d'être morisés, c'est-à-dire la profondeur de l'histoire de l'état circuit. Dans des circuits existant en pratique, c'est-à- dire ayant plusieurs milliers de Flip-Flop et un débogage en temps réel de l'ordre de la seconde, il est techniquement im possible de mémoriser de façon intermédiaire tous les vec teurs d'états se produisant. Dans des exemples de réalisation préférentiels de la présente invention, on organise pour cela la mémoire RAM en mémoire tampon annulaire ; dans cette mé moire on aura toujours les (n) derniers vecteurs d'états pour une utilisation, ce qui correspond à une profondeur histori que égale à (n). Contrairement à la lecture des registres images, l'initialisation du DUT avec les données d'actualisation niest pas critique dans le temps, de sorte que les vecteurs d'actualisation peuvent se trouver dans un ordinateur hôte. Le vecteur, chaque fois instantané, peut être chargé par exemple directement par une interface JTAG dans le DUT ou, avantageusement, dans la mémoire RAM ; ensuite, en inversant le mode de poursuite, on copie les zones de RAM dans les re gistres correspondants. La taille de la mémoire RAM n'est pas critique car n'on enregistre provisoirement chaque fois qu'un vecteur d'actualisation. Vis-à-vis de la cadence de fonctionnement des re gistres utiles et des registres images (voir clk et sclk à la figure 4), on remarque que ces registres peuvent fonctionner avec une horloge identique ou différente. Si les registres images fonctionnent avec une horloge de fréquence plus élevée que celle des registres de données, il est nécessaire que l'horloge (sclk) des registres images corresponde à une fré quence au moins triple de l'horloge (clk) des registres de données. L'utilisation d'une telle horloge image plus élevée est avantageuse si l'on utilise de longues chaînes déca lage. En variante, on peut faire fonctionner en synchronisme à la fois les registres utiles et les registres images, ce qui se réalise de préférence par des fréquences DUT élevées. Il est remarquer que de faibles fréquences de décalage peu vent être compensées par une mise en parallèle des chemins de détection. La fréquence de détection des vecteurs d'états dans le mode de poursuite est limitée par la longueur du vec teur d'état et celle du cycle d'écriture de la mémoire RAM de poursuite. Pour une fréquence de détection maximale, le déca lage des registres images doit se faire dans le sens dun traitement pipeline, à l'ombre du cycle d'écriture, comme le montre figure 8 ; ainsi, chaque fois pendant l'écriture d'un cycle suivant (n+l), on inscrit les données du cycle (n) précédent. Cela évite toute autre perte de temps. Pour garan tir un décalage suffisamment rapide il faut soit que la fré quence de décalage soit suffisamment élevée, soit que les registres images soient regroupés dans dautres groupes de détection. En variante, il est possible de réaliser les re gistres images par des mémoires FIFO, de sorte qu'entre deux points de détection il suffira d'un intervalle de cadence. En d'autres termes, cela signifie que pour chaque cadence du re gistre image (sclk) on lira une valeur dans le circuit, et la commande du circuit débogueur pourra être disponible, ce qui permet une observation ininterrompue du circuit. Un exemple d'une telle réalisation est donné à la figure 9 dans laquelle les mêmes éléments que ceux de la fi gure 4 portent les mêmes références. Pour réaliser ici une profondeur FIFO égale à trois, on a deux registres FIFO 200, 202 cadencés par une horloge (clk) entre la sortie de données (q) du registre utile 50 et une entrée du démultiplexeur 64. Les registres FIFO 200, 202 sont commandés par un signal FIFO (cpt), cest-à-dire qu'ils sont ainsi activés. Les registres FIFO 200, 202 permettent, en parallèle à la lecture de la chaîne de décalage, de mémoriser de nouvelles valeurs de dé- tection à partir du registre utile. Ces valeurs de détection peuvent être reliées et le nombre maximum de valeurs de dé- tection reliées ne doit pas dépasser la profondeur FIFO qui dans l'exemple représenté, correspond à trois. Cela peut se faire par un mécanisme de commande dans le circuit débogueur, c'est-à-dire par exemple la commande 26 de la figure 2a. On évite ainsi un débordement du registre FIFO qui se produirait toujours si l'on inscrivait dans le FIFO plus de valeurs de détection que celles extraites par lecture des registres ima ges de la chaîne de décalage. Comme déj développé ci-dessus, pour une analyse en aval du comportement du DUT dans un test de circuit, il faut enregisLI-.rer toutes les données d'entrée. Ces données d'entrée peuvent par exemple être enregistrées par des analy seurs logiques usuels ou des circuits spéciaux ; la réalisa tion respective dépendra de facteurs tels que par exemple le taux de détection nécessaire, la largeur du vecteur du signal d'entrée et la profondeur de l'état historique, et des cir cuits disponibles dans le commerce. R E V E N D I C A T 1 0 N S l') Procédé d'analyse de défauts de circuits logiques numéri ques (2) ayant plusieurs n#uds internes (100, 102, 104, 106), avec des registres utiles (50) associés, mémorisant des états de commutation des n#uds internes (100-106) dépendant des si gnaux d'entrée #4), de sorte qu'à chaque registre utile (50) est associé un registre image (60) permettant de lire l'état du circuit du registre utile (50), caractérisé par les étapes suivantes a) on met en ceuvre le circuit logique (2) en lui appliquant les signaux d'entrée (4) et on établit le protocole des signaux d'entrée (4) ainsi appliqués, b) on lit cycliquement les états de commutation des n#uds internes du circuit (102-106) par les registres images (60) pendant le fonctionnement du circuit logique (2), et on mémorise les états de commutation des n#uds internes (102-106) du circuit logique (2) pour chaque cycle, pour générer un état historique de l'état de commutation, c) lorsque se produit un événement prédéterminé, on arrête le fonctionnement du circuit logique (2), on revient en arrière dans l'état historique pour un nombre prédétermi né de cycles, et on effectue une simulation de programme (14) du fonctionnement du circuit logique (2) en utili sant les signaux d'entrée protocolisés et les états de commutation mémorisés pour le cycle auquel on est revenu. 20) Procédé selon la revendication 1, caractérisé en ce que l'événement prédéfini est donné par des états de commutation prédéterminés des n#uds internes de circuit (100-106) qui in diquent un fonctionnement non correct du circuit logique (2). 3') Procédé selon la revendication 2, caractérisé en ce que dans l'étape c), on revient en arrière d'un nombre de cycles, dans l'historique des états de commutation, tel que les états de commutation enregistrés pour les cycles auxquels on re- vient, indiquent un fonctionnement correct du circuit logique (2). 4') Procédé selon l'une quelconque revendications 1 à 3, caractérisé en ce que les états de commutation de chaque cycle sont enregistrés dans une mémoire tampon annulaire 5') Procédé selon l'une quelconque revendications 1 à 4, caractérisé en ce qur avant la mise en #uvre du circuit logique (2), on initialise ce circuit par le registre image à un état initial pré déterminé. 6') Procédé selon l'une quelconque revendications 1 à 5, caractérisé en ce qu' on combine plusieurs registres images (60) dans une chaîne à décalage qui est lue de manière cyclique dans l'étape b). 7') Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la lecture cyclique dans l'état b) se fait à une fréquence (sclk) indépendante de la fréquence horloge (clk) de fonc tionnement du circuit logique. 80) Procédé selon l'une quelconque revendications 1 à 7, caractérisé en ce que les registres images (60) sont formes par des mémoires FIFO. 9') Dispositif pour la mise en #uvre un procédé selon l'une des revendications 1 à 8, caractérisé en ce qu'il comprend - un registre image (60) pour chacun multiples n#uds in ternes de circuits (100, 102, r ), et un circuit lo gique numérique (2), chaque n#ud interne de circuit (100, 106) ayant un registre utile (50) dont l'état de commuta tion dépendant des signaux d'entrée peut être lu par le registre image (60) associé, - une memoire (28) pour mémoriser un nombre de diagrammes d'états de commutation, chaque diagramme représentant les états de commutation des n#uds de circuits internes (100 106) un instant prédéterminé, - une commande (26, 26, 36) reliée au registre image (60 et à la mémoire (28) pour mémoriser de manière cyclique des diagrammes d'états de commutation dans la mémoire (28), et - une interface pour transmettre au moins un diagramme d'états de commutation dans un calculateur de simulation de programme. 100) Dispositif selon la revendication 9, caractérisé en ce que les registres images sont des registres FIFO. 11') Dispositif selon les revendications 9 et 10, caractérisé en ce que chaque fois plusieurs registres images (60) sont combinés dans une chaîne à décalage qui est lue de manière cyclique par la commande (26, 261, 36).