Brevet FR2805364A1 — publié le 20010824

présente invention concerne des systèmes et procédés destinés à détecter et à déboguer des défaillances dans des systèmes informatiques. Dans un processus de conception de puces pour ordinateurs, les fabricants fournissent de nombreux efforts pour tenter de localiser tous les bogues fonctionnels. De cette façon, fa fabrication des puces peut se dérouler avec certaine garantie que les puces fonctionneront comme prévu. Cependant, la complexité des microprocesseurs et autres dispositifs numériques modernes empêche fréquemment le traitement d'un nombre suffisant de vecteurs sur des simulateurs pour garantir une conception correcte avant que la puce soit réellement mise en place dans le silicium. Un débogage au niveau du silicium offre l'avantage de permettre d'utiliser beaucoup plus de vecteurs d'essai en même temps, autant de fois que nécessaire, pour traiter les vecteurs sur simulateurs. De son côté, le débogage sur simulateur présente l'avantage de permettre l'observation de chaque noeud du microprocesseur à n'importe quel moment. Cette caractéristique n'est habituellement pas présente dans les méthodes de débogage au niveau du silicium. Quand cette caracteristique est prévue au stade de l'intégration proprement dite du silicium dans la conception de puces, une exploration destructive est nécessaire pour compléter les observations. De plus, cette exploration destructive donne au testeur puces une vue de l'état interne de la puce à une tranche de temps spécifique. Reproduire suffisamment d'états pour déterminer la cause d'une défaillance peut nécessiter beaucoup de temps. D'autres techniques permettant une rotation plus rapide peuvent empêcher une visibilité totale des états internes la puce. Avant la fabrication des pièces, les essais simulateur sont la seule alternative. Après la fabrication des pièces, on a le choix entre des essais sur silicium et des essais sur simulateur, auquel cas les essais silicium peuvent être utilisés pour découvrir des défaillances fonctionnelles tandis que les essais sur simulateur peuvent être utilisés pour découvrir les causes pre mières de ces défaillances. L'adaptation de l'essai à un environnement sur simulateur peut etre fasti dieuse le nombre élevé d'états du modèle, dont beaucoup doivent être initialisés avant de simuler l'essai. En outre, des essais conçus pour l'envi ronnement sur silicium peuvent également être beaucoup plus longs que ceux conçus pour un environnement de simulation parce que le composant matériel exécute les essais beaucoup plus rapidement que ne le fait un simulateur. L'adaptation essai d'un environnement sur silicium à un environnement de simulation implique souvent de commencer avec une petite partie de l'essai original à proximité de la défaillance suspectée, et de répéter l'opération en essayant une initialisation de plus en plus détaillée et/ou des parties de plus en plus grandes de l'essai original, jusqu'à ce qu'une partie suffisante de l'état initial ait été programmée pour amener la défaillance à se reproduire dans le simulateur. Un tampon de trace interne, stocké sous forme de file circulaire, conser ve certaines informations critiques concernant un dispositif en cours d'essai. Chaque fois qu'une opération valide d'un type prédéterminé est observée, une entrée est créée dans la file. En ajoutant un champ pour indiquer combien de cycles se sont écoulés depuis que la dernière entrée a été enregistrée, on géne- re une valeur supplémentaire qui peut être utilisée pour identifier des écarts temporels entre le dispositif en cours d'essai et le modèle de simulation. valeurs d'estampilles temporelles différentes indiquent que tous les événements n'ont pas été pris en considération lorsqu'on a essayé de faire correspondre simulation et le dispositif en cours d'essai. De plus, le fait de savoir où ces écarts apparaissent peut aider le testeur à mieux percevoir les types et les instants d'événements qu'il peut être nécessaire d'ajouter à fa simulation pour correspondre plus précisément à l'environnement matériel défaillant. Un premier mode de réalisation utilise un compteur à N bits. Le comp teur est réinitiafisé immédiatement après l'écriture de chaque nouvelle entree dans le tampon de trace. Le compteur peut incrémenter ou décrémenter. Quand le compteur atteint sa valeur maximale, un bit de rappel est activé pour signaler un dépassement. Le compteur revient à zéro et continue à incrémen ter. Ceci peut se produire plusieurs fois avant qu'une entrée soit écrite dans tampon de trace. Quand une entrée est écrite, le bit de rappel est réinitialisé en même temps que le reste du comptage. Si le compteur dépasse sa limite, testeur ne pourra pas dire exactement combien de fois le compteur est revenu à zéro, mais les bits moins significatifs indiqueront quand même si le traçage sur le silicium et la simulation correspondent. Dans un autre mode de réalisation, le même compteur à N bits arrête de compter quand il atteint un comptage maximal, jusqu'à ce qu'une entrée soit écrite dans le tampon de trace. Ce mécanisme permet de déterminer l'espa- cement exact entre l'entrée précédente et l'entrée actuelle pour des comptages allant de à (2N)-2. Si le comptage est égal à (2N)-1, c'est qu'au moins autant de cycles se sont écoulés depuis l'écriture de la dernière entrée. N peut être choisi utilisant des contraintes, notamment l'impact du compteur sur la surface de contact, les exigences de mémoire du compteur dans le tampon de trace ou des plages de retards typiques entre des entrées consécutives. Dans nombreux cas, le simple fait de savoir que le nombre de cycles était égal à 2 1 ou plus 'duit le nombre d'événements susceptibles d'avoir provoqué retard de cette grandeur à un ou à quelques événements. La description détaillée sera faite en référence aux dessins annexés lesquels numéros identiques se rapportent à des éléments identiques, et sur lesquels - la Figure 1 illustre un tampon de trace d'instructions ; - la Figure 2 illustre un compteur utilisé avec le tampon de trace d'instruc tions la Figure 1 ; - la Figure 3 illustre un autre compteur utilisé avec le tampon de trace d'instructions de la Figure 1 ; et - la Figure 4 est un ordinogramme illustrant un procédé pour accélérer la reproduction de défaillances fonctionnelles provenant du silicium dans modèle de simulation. Pendant les phases de conception et de développement d'un dispositif semi-conducteur, de nombreux essais doivent être effectués pour essayer détecter des erreurs ou des bogues dans le dispositif. Une fois qu'on dispose d'une première réalisation du dispositif comme véritable dispositif matériel, d'autres essais peuvent être effectués. Le concepteur/observateur d'essais sera dans l'idéal en mesure de déterminer à quel endroit un bogue s'est produit observant séquence d'événements. Pour faciliter le processus d'essais, un tampon trace d'instructions peut être utilisé de façon à enregistrer un certain nombre de ces événements, de sorte que le concepteur d'essais puisse déterminer quels événements se sont produits jusqu'au point de défaillance. Le tampon trace d'instructions est décrit en détail dans la demande de brevet américain en instance, déposée avec ce document et intitulée "A Method And Apparatus For Re-Creating The Trace Of An Emulated Instruction Set", dont le mémoire est intégré ici à titre de référence. Les informations sur les événements peuvent être précieuses quand le concepteur d'essais tente de reproduire la série d'événements dans un modèle de simulation. C'est-à-dire le concepteur d'essais peut avoir besoin de savoir quels sont les temps de sortie pour une séquence d'instructions qui sont exécutées sur le simulateur. temps de sortie peuvent alors être comparés à des essais correspondants effectués lors d'une véritable implémentation matérielle. les temps de sortie ne correspondent pas, le concepteur d'essais peut avoir besoin d'ajouter des événements supplémentaires à l'essai simulé. La Figure 1 illustre un tampon de trace d'exécutions 10, stocké sous forme de file d'attente circulaire, qui conserve certaines informations critiques concernant un dispositif soumis à essai. Le tampon de trace d'exécutions 10 est utilisé avec un essai matériel et avec une simulation l'essai basé sur le matériel. Chaque fois qu'une opération valide d'un type prédéterminé est observée, une entrée est créée dans le tampon de trace d'exécutions 10. Comme représenté sur la Figure 1, le tampon de trace d'exécutions 10 est un tampon de trace à X entrées où X peut être un nombre quelconque, y com pris, par exemple, une valeur qui est une puissance de deux telle que 32, ou d'autres valeurs qui ne sont pas des puissances de deux. données de trace d'exécutions 12 sont écrites dans des zones d'entrée 15 dans le tampon de traces d'exécutions 10. Un compteur 100 peut être associé à chaque entrée dans le tampon de trace d'exécutions 10. Le compteur 100 sera décrit en détail ultérieurement. Un pointeur 16 pointe vers l'entrée la plus récente, plus 1 Comme représenté sur la Figure 1, le pointeur 16 pointe vers une Entrée Une fois que l'Entrée M a été écrite, le pointeur 16 passe à l'Entrée M+ 1. Si le pointeur 16 pointe vers une Entrée X-1 et qu'une entrée est écrite à Entrée X-1, le pointeur 16 revient à l'Entrée 0. Puisque le pointeur 16 revient à zéro, toute écriture dans le tampon de trace d'exécutions 10 peut ecraser une entrée écrite auparavant. Le tampon de trace d'exécutions 10 peut également se décaler dans le sens contraire. Dans cette variante de mode réalisation, après qu'une entrée a été écrite à ('Entrée M+ 1, le pointeur 16 passe à l'Entrée M. Le tampon de trace d'exécutions peut également accepter d'autres séquences d'écriture. Le tampon de trace d'exécutions 10 peut accepter l'écriture d'un événe ment par cycle d'horloge. De ce fait, un événement à enregistrer peut se produire dans un premier cycle d'horloge. Si un événement à enregistrer se produit ensuite pendant le cycle d'horloge suivant, cet événement est mémorisé dans le tampon de trace d'exécutions 10. Si aucun événement ne se produit, rien n'est enregistré. Un compteur, ou un dispositif similaire (décrit ci-après), compte les cycles d'horloge. Sur base du nombre de comptages entre des evénements, le concepteur d'essais peut déterminer si un quelconque cycle d'horloge a eu lieu sans qu'un événement ait été enregistré dans le tampon trace d'instructions. Le procédé et l'appareil décrits ci-avant fonctionnent indépendamment des informations qui peuvent être enregistrées dans le tampon de trace d'exé cutions 10. Par exemple, le tampon de trace d'exécutions 10 peut enregistrer l'adresse d'instructions sortantes ou d'instructions de branchement qui réorientent des déroulements du programme. Dans un système informatique ayant deux architectures de jeux d'instructions, dont l'une est un jeu d'ins tructions natif et l'autre est un deuxième jeu d'instructions implémenté dans les termes du jeu d'instructions natif par l'intermédiaire de routines micro- codées, pendant l'exécution d'instructions provenant du deuxième jeu d'ins tructions, le tampon de trace d'exécutions 10 peut enregistrer uniquement des adresses l'instruction émulée, ou il peut enregistrer des adresses des instructions natives lancées pour émuler le deuxième jeu d'instructions. Les hommes métier comprendront qu'un nombre quelconque d'événements peuvent être enregistrés dans le tampon de trace d'exécutions 1 Quelles que soient les informations mémorisées dans le tampon de trace d'exécutions 10, un compteur à estampille temporelle, ou un dispositif similaire, utilisé pour déterminer le sens du temps écoulé entre des événements enregistrés. Un compteur à estampille temporelle ou un dispositif similaire est associé au tampon de trace d'instructions 10. Le compteur évolue ` chaque cycle d'horloge. Le compteur peut incrémenter ou décrémenter. Le compteur permet au concepteur d'essais d'obtenir des informations relatives au temps entre des événements qui se sont produits pendant un essai réel d'une implé mentation matérielle du dispositif et un modèle de simulation du dispositif. Plus précisément, un champ est ajouté à des entrées (par exemple, les adresses) dans le tampon de trace d'exécutions 10 de façon à indiquer com bien de cycles se sont écoulés depuis que la dernière entrée a été enregistrée. Ceci permet de générer une valeur supplémentaire qui peut être utilisée pour identifier des écarts temporels (c'est-à-dire des différences dans les temps de sortie) entre le dispositif matériel soumis à essai et le modèle de simulation. valeurs d'estampille temporelle différentes indiquent que tous les événe ments n'ont pas été pris en considération dans le modèle de simulation lorsqu'on a essayé de faire correspondre la simulation et le dispositif matériel soumis à essai. De plus, le fait de savoir où ces écarts apparaissent peut aider l'observateur d'essais à mieux percevoir les types et les instants d'événements qu'il peut être nécessaire d'ajouter à fa simulation pour correspondre plus precisément à l'environnement matériel défaillant. La Figure 2 illustre un compteur à N bits 100 utilisé avec le tampon de trace d'instructions 10. Dans le mode de réalisation illustré sur la Figure 2, N égal à 5 et le compteur 100 est un compteur incrémentiel. Cependant, le compteur pourrait comporter plus ou moins que 5 bits et le compteur pourrait décrémenter. De plus, d'autres façons de coder le temps, par exemple une utilisation de codes Gray, peuvent être utilisées pour indiquer le temps écoulé. Le compteur 100 comprend des bits 110. un bit (le bit plus significatif) étant réservé à titre de bit de rappel 11 2 et les bits restants servant de bits moins significatifs 114. Le compteur 100 est réinitialisé immédiatement après chaque entrée dans le tampon de trace d'exécutions 10. Quand le compteur 100 atteint sa valeur maximale en (a), le bit de rappel 1 1 est mis à 1 pour indiquer un dépassement, ou un bouclage, et le compteur 100 continue à incrémenter. Quand une entrée est écrite (en e) dans tampon de trace d'exécutions 10, le bit de rappel 112 est mis à 0 en même temps que le reste du comptage 110. II convient de noter que deux écritures consécutives (f) laisseraient le compteur 100 à zéro. S'il n'y a pas d'autre écriture (g), le compteur 100 recommence à incrémenter. Si le compteur 100 dépasse sa limite, l'observateur d'essais ne pourra pas dire exactement combien de fois les entrées du tampon de trace ont fait un bouclage, mais les bits moins significatifs 114 contiendront encore des informations indiquant si les entrées dans l'implémentation matérielle et les entrées dans la simulation correspondent. C'est-à-dire les bits moins significatifs 114 continuent à incrémenter, mais le bit de rappel 112 reste à jusqu'à ce qu'une nouvelle entrée soit créée dans le tampon de trace d'exécutions 10. Ce processus est illustré sur la Figure 2, dans laquelle comptages à partir de 00000 jusqu'aux comptages en (a), ceux-ci non compris (16 dans le premier cas, avec N=5) donnent des indications non équivoques, et les comptages suivants (par exemple, des comptages en bouclage) produisent des indications équivoques. Dans l'exemple illustré sur la Figure 2, l'événement en (a) ne peut pas être distingué de l'événement en (b) qui, dans l'exemple, peut être apparu après le 16é 'e incrément, le incrément, le 48Ime incrément et ainsi de suite. De façon similaire, l'événement en (c) peut être apparu au 171" incrément, au 33é 'e incrément, au incrément et ainsi de suite. Ceci implique pour l'observateur d'essais qu'un blocage (par exemple) qui commence et se termine pendant les seize premiers cycles d'horloge (comptages), peut donner une indication exacte d'une correspondance entre l'implémentation matérielle et la simulation. Pour des blocages qui apparaissent sur plus de seize cycles, l'observateur d'essais peut seulement déterminer que le blocage est apparu sur des multiples de 16 cycles, c'est-à dire sur 16, 32, 64... cycles. Cependant, les bits moins significatifs 114 fournissent des informations supplémentaires. Par exemple, si on exécute une simulation qui correspond exactement aux bits moins significatifs 11 4 à la suite d'un bouclage et qu'une correspondance exacte existe entre les moins significatifs et l'implémentation matérielle, les probabilités de cette survenance peuvent être calculées comme étant égales à 24, ou à 1 sur 6. C'est-à-dire qu'un événement écrit sur une plus longue durée que 2(N -1 cycles après l'écriture de l'événement précédent a une chance de correspondance de 1/(2 N-1 ). La Figure 3 illustre une variante de mode de réalisation d'un compteur à N bits. Le compteur représenté sur la Figure 3 est un compteur à saturation. Sur fa Figure 3, un compteur à saturation à N bits 200 comprend 5 bits 210, mais aucun des bits n'est réservé à titre de bit de rappel. C'est-à-dire que le compteur 200 arrête de compter quand il atteint un comptage maximal, jusqu'à ce qu'une entrée soit écrite dans le tampon de trace d'exécutions 10. Avec le compteur 200, l'espacement exact entre une entrée précédente dans le tampon de trace d'exécutions 10 et une entrée courante peut être déterminé pour des comptages allant de 0 à (2N)-2. C'est-à-dire que pour un compteur à 5 bits, l'espacement exact peut être déterminé pour des comptages allant de 0 à 30. Si le comptage est égal à (2N)-1, c'est qu'au moins autant de cycles se sont écoulés depuis que la dernière entrée a été écrite. Dans l'exemple représenté sur la Figure 3, l'événement écrit en (h) est unique. Avec les mêmes 5 bits d'informations que sur la Figure 2, le concepteur d'essais est en mesure de distinguer 2N-1 comptages uniques 0 2N-2 (c'est-à-dire de 0 à 30 pour le compteur à 5 bits). L'entrée à 1 (c'est-à-dire en (i)) ne peut pas être distinguée. C'est-à-dire que le concepteur d'essais ne peut pas dire combien de temps le comptage a été "gelé" à cette valeur. Un quelconque événement écrit au-delà de 2N-1 comptages produit correspondance apparente (partout des uns). Dans (es exemples de compteur (100 et 200) représentés sur les Figures et 3, la valeur de N n'est pas limitée à 5 et peut être supérieure inférieure. La valeur de N peut être choisie en utilisant des contraintes notamment l'impact du compteur sur fa surface de contact, le stockage dans le tampon de trace d'exécutions 10 ou des plages de retards typiques entre des entrées consécutives. Dans de nombreux cas, le simple fait de savoir que le nombre de cycles était égal à 2N-1 réduit le nombre d'événements suscep tibles d'avoir provoqué un retard d'une grandeur particulière à un ou à quelques événements. II existe d'autres procédés, en plus de ceux décrits ci-avant, pour com mander les compteurs 100 et 200. Par exemple, le comptage peut s'incré menter sans saturation ni indication de dépassement. Dans ce cas, toutes les valeurs (événements) sont équivoques. Les hommes de métier identifieront aisément d'autres procédés et mécanismes pour commander les compteurs 100 et 200 ou appliquer d'une quelconque autre manière une estampille temporelle à des événements. On trouvera ci-après un exemple de codage par estampilles temporelles d'entrées dans un tampon de trace d'exécutions. Dans cet exemple, l'estam pille temporelle est telle que l'estampille temporelle indique directement un laps de temps écoulé depuis qu'une dernière entrée a été écrite dans le tampon de trace d'exécutions. De plus, dans cet exemple, les entrées anciennes apparaissent en haut du tampon de trace d'exécutions. Le tampon de trace d'exécutions contient les informations suivantes provenant d'une hypothétique défaillance matérielle Adresse Estampille Interprétation d'instruction temporelle 1000 5 1001 1 II y a eu un cycle entre 1000 et 1001. 1002 0 1001 et 1002 sont apparus dans des cycles consécutifs. 1003 0 1002 et 1003 sont apparus dans des cycles consécutifs. 1004 13 II y a eu un intervalle de 13 cycles entre 1003 et 1004. 1005 0 1004 et 1005 sont apparus dans des cycles consécutifs. 1006 0 1005 et 1006 sont apparus dans des cycles consécutifs. observateur d'essais analysant la défaillance matérielle tente de recréer l'essai dans un environnement de simulation et l'essai simulé produit les informations de tampon de trace d'exécutions ci-après Adresse Estampille d'instruction temporelle Interprétation 1 5 1001 1 11 y a eu un cycle entre 1000 1001. 1002 0 1001 et 1002 sont apparus dans des cycles consécutifs. 1003 0 1002 et 1003 sont apparus dans des cycles consécutifs. 1004 0 1003 et 1004 sont apparus dans des cycles consécutifs. 1005 0 1004 et 1005 sont apparus dans des cycles consécutifs. 1006 0 1005 et 1006 sont apparus dans des cycles consécutifs. Dans ce cas, la différence entre les entrées montre qu'il existait un écart temporel de 13 cycles entre l'adresse d'instruction 1003 1004 dans l'implémentation matérielle, mais la simulation indique que les adresses 1003 et 1 sont apparues dans des cycles consécutifs. Avec informations, l'observateur d'essais analysant la défaillance saurait qu'il doit rechercher un événement susceptible de provoquer un retard d'environ 13 cycles entre les adresses d'instructions 1003 et 1004. Les hommes du métier comprendront que fait de savoir à quel endroit le retard est apparu suggérera souvent plusieurs possibilités quant à ce qui peut avoir provoqué le retard. Ces informa tions peuvent etre utilisées pour améliorer la simulation. Le processus peut être poursuivi jusqu'à ce que la défaillance soit reproduite dans le simulateur. La Figure 4 est un ordinogramme illustrant un des processus utilisés pour accélérer la reproduction de défaillances fonctionnelles provenant du silicium dans un modèle de simulation. Le processus commence à la case 300. À la case 3l0, trace de défaillance provenant d'une défaillance matérielle est recueillie, cette trace comprenant l'entrée du tampon de trace d'exécutions avec les informations de compteur à estampilles temporelles. À la case 320, une partie de l'essai matériel est transposée dans un environnement de simulation. L'essai est alors exécuté sur le simulateur et une trace de simulation est recueillie en case 325. À la case 330, si l'essai de simulation a échoué, la défaillance est comparée avec la défaillance de l'essai matériel précédent de façon à déterminer si les deux défaillances correspondent. Si défaillance de l'essai simulé correspond à la défaillance de l'essai matériel, le processus passe à la case 380 et prend fin. Si la défaillance de l'essai simulé n'echoue pas ou si l'essai de simulation ne correspond pas à la défaillance de l'essai matériel, le processus passe à la case 340 et les entrées du tampon de trace d'exécutions provenant de l'essai simulé sont comparées avec les entrées du tampon de trace d'exécutions pour l'essai matériel. La comparaison comprend l'étape consistant à comparer le compteur d'estampilles temporelles pour les entrées du tampon de trace d'exécutions en case 340. À la case 350, si les entrées du tampon de trace d'exécutions correspondent, aucune information supplé mentaire ne peut être déterminée à propos de la défaillance matérielle en utilisant ce procédé et le processus passe à la case 360. À la case 360, le concepteur d'essais peut utiliser d'autres procédés pour essayer de reproduire la défaillance de l'essai matériel dans le modèle de simulation. À la case 350, si les entrées du tampon de trace d'exécutions ne correspondent pas, le processus passe à la case 370. À la case 370, l'emplacement et la durée des non-correspondances dans les entrées du tampon de trace d'exécutions sont utilisés pour déterminer quelle sorte d'événements doit être ajoutée au modèle de simulation pour reproduire la défaillance matérielle. Après un ajustement de l'essai de simulation (case 370), le processus revient à la case 325, à laquelle l'essai est à nouveau simulé, et les résultats de la simulation sont recueillis. Ce processus peut être répété jusqu'à ce que la défaillance matérielle hypothétique ait une correspondance dans le simulateur ou jusqu'à ce que les temps correspondent, même sans reproduire la défaillance. Les descriptions et les termes utilisés ici sont présentés à titre d'illus tration uniquement et ne doivent pas etre interprétés comme des limitations. Les hommes de métier admettront que de nombreuses variantes sont possibles en restant dans l'esprit et la portée l'invention telle que définie dans les revendications ci-après et leurs équivalents, dans lesquels tous les termes doivent être entendus dans leur acception la plus large possible, sauf mention contraire. REV EN D ICATION S 1. Procédé pour accélérer la reproduction défaillances fonctionnelles provenant du silicium dans un modèle de simulation, comprenant les étapes consistant à - enregistrer un premier événement (15) dans un tampon de trace d'exécutions (10) ; - utiliser une estampille temporelle (100), déterminant un premier temps associé au premier événement ; ajuster l'estampille temporelle sur base d'un cycle d'horloge ; - enregistrer un deuxième événement (15 dans le tampon de trace d'instructions ; et - utiliser l'estampille temporelle, déterminant un deuxième temps associé au deuxième événement, caractérisé en une différence entre le premier temps et le deuxième temps détermine un comptage compre nant les cycles entre les premier et deuxième evénements. 2. Procédé selon la revendication 1, comprenant en outre l'étape consistant à réinitiafiser l'estampille temporelle 1 après l'enregistrement du deuxième événement, le procédé étant exécuté dans un équipement matériel et dans un simulateur. 3. Procédé selon la revendication 2, comprenant en outre l'étape consistant à comparer un comptage dans l'équipement matériel et un comptage correspondant dans le simulateur, une non-correspondance des comptages étant utilisée pour reproduire une défaillance matérielle dans le modèle de simulation. 4. Procédé selon la revendication 1, caractérisé en ce que l'estampille temporelle est un compteur à saturation (200). 5. Procédé selon la revendication 1, caractérisé en ce que l'estampille temporelle est un compteur à N-1 bits avec détection de dépassement (100), et en ce que la détection de dépassement comprend un bit de rappel (1 12). 6. Procédé selon la revendication comprenant en outre l'étape consistant à réinitialiser tous les bits (1 14) dans le compteur (100), sauf le bit de rappel (112) lorsqu'un comptage maximal est atteint. 7. Appareil pour accélérer la reproduction de défaillances fonctionnelles provenant du silicium dans un simulateur, comprenant - un tampon (10) qui enregistre des évenements (15) se produisant dans le simulateur ; et - un compteur (100) couplé au tampon, compteur incrémentant durant chaque cycle d'horloge pendant lequel événement n'est pas enregistré dans le tampon, le compteur se réinitialisant quand un événement est enregistré dans le tampon. 8. Appareil selon la revendication 7, caractérisé en ce que le compteur (100) comprend - un ou plusieurs bits moins significatifs (114) ; et - un bit de rappel (112), la réinitialisation du compteur réinitialisant les un ou plusieurs bits moins significatifs à zéro, et en ce que lorsque le compteur atteint un comptage maximal le bit de rappel (112) n'est pas réinitialisé. 9. Appareil selon la revendication 7, caractérisé en ce que le compteur est un compteur à saturation à N bits (200) et en ce que lorsqu'un comptage maximal est atteint dans le compteur à saturation à N bits, tous les bits du compteur à N bits ne sont pas réinitialisés, en ce que N est égal à 5, en ce que le tampon (10) est un tampon de trace d'exécutions à 32 entrées, et en ce que lorsque le tampon de trace d'exécutions est en dépassement, une entrée arrivée en premier est écrasée dans le tampon de trace d'exécutions. 10. Procédé pour accélérer la reproduction de défaillances matérielles dans un simulateur, caractérisé en ce qu'il comprend les étapes consistant à - sélectionner un ensemble d'événements associés à la défaillance maté rielle (300) ; - exécuter deux ou plusieurs des événements sélectionnés dans le simu lateur (300, 325) ; - enregistrer l'ensemble d'événements et les deux ou plusieurs événements des événements sélectionnés dans un tampon de trace d'exécutions (325), l'étape d'enregistrement comprenant un enregistrement d'un temps pour chaque événement de l'ensemble d'événements et deux ou plusieurs événements sélectionnés ; - déterminer un temps écoulé entre les deux ou plusieurs événements sélectionnés ; - comparer le temps écoulé des deux ou plusieurs événements sélectionnés avec un temps écoulé correspondant dans la défaillance matérielle 330), et en ce que, si fa comparaison n'indique pas de correspondance, le procédé comprend en outre les étapes consistant à - ajuster le simulateur en ajoutant un ou plusieurs événements supplémen taires (370) ; et à - répéter les étapes de détermination et de comparaison jusqu'à ce qu'une correspondance apparaisse ou jusqu'à ce que le simulateur contienne la défaillance matérielle (325).