FR2760534A1 - Test fonctionnel de dispositifs de calcul en cours de fabrication utilisant des tests fonctionnels a base de microprogrammes appliques au moyen du port de mise au point par emulation propre au dispositif - Google Patents

Test fonctionnel de dispositifs de calcul en cours de fabrication utilisant des tests fonctionnels a base de microprogrammes appliques au moyen du port de mise au point par emulation propre au dispositif Download PDF

Info

Publication number
FR2760534A1
FR2760534A1 FR9715932A FR9715932A FR2760534A1 FR 2760534 A1 FR2760534 A1 FR 2760534A1 FR 9715932 A FR9715932 A FR 9715932A FR 9715932 A FR9715932 A FR 9715932A FR 2760534 A1 FR2760534 A1 FR 2760534A1
Authority
FR
France
Prior art keywords
test
microprogram
functional test
based functional
emulation
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
FR9715932A
Other languages
English (en)
Other versions
FR2760534B1 (fr
Inventor
Mauro V Tegethoff
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of FR2760534A1 publication Critical patent/FR2760534A1/fr
Application granted granted Critical
Publication of FR2760534B1 publication Critical patent/FR2760534B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)

Abstract

La présente invention concerne un système de test en cours de fabrication pour tester un système de calcul (39) , comprenant un dispositif de calcul (36) à capacités (37) de mise au point par émulation accessibles par un port (38) de mise au point par émulation, en appliquant des tests fonctionnels à base de microprogrammes au dispositif par le port. Il comprend un test fonctionnel (35) à base de microprogramme ; et une sonde (34) de système de calcul qui communique avec le dispositif par le port pour commander une exécution et modifier et récupérer des valeurs d'état internes du système de calcul, la sonde pouvant, par le port, appliquer le test fonctionnel au système de calcul et commander l'exécution du test à chaque niveau de test d'intégration d'un tel système. De préférence un ordinateur hôte (32) peut envoyer le test à la sonde. L'invention concerne aussi un procédé correspondant.

Description

La présente invention concerne de façon générale le domaine de la
méthodologie des tests assistés par ordinateur pour circuits électroniques et, plus particulièrement, un système et un procédé de réalisation de tests fonctionnels de dispositifs de calcul, en cours de fabrication, en utilisant des tests fonctionnels à base de microprogrammes, appliqués par l'intermédiaire d'un port de mise au point ou, en d'autres termes, de déverminage, par
émulation qui réside à l'intérieur du dispositif lui-
même. La technologie des circuits intégrés à très grande échelle d'intégration, ou VLSI, varie rapidement en raison de l'accroissement de la complexité des circuits VLSI, qui est accompagné d'exigences de performances plus élevées et de dimensions plus petites. Une importance accrue de l'amélioration des techniques de tests en cours de fabrication à tous les niveaux de l'intégration des VLSI est en train d'émerger en raison de technologies plus nouvelles, de pressions liées à des exigences d'un rendement de production plus élevé, et de calendriers plus serrés de mise sur le marché. La présente invention est concentrée sur l'art des tests de dispositifs de calcul en cours de fabrication. Tel qu'il est utilisé ici, le terme de dispositif de calcul peut inclure un microprocesseur, un microcontrôleur, ou tout circuit intégré spécifique à une application, ou ASIC selon les initiales du terme anglo-saxon Application Specific Integrated
Circuit, dans lequel est inclus un noyau processeur.
Un dispositif de calcul peut être utilisé dans un système de calcul, qui peut être utilisé dans un ordinateur, une automobile, des communications, une
commande, ou une autre application.
Au cours de l'étape de fabrication, des tests de circuits électroniques sont généralement effectués à chaque niveau d'intégration du circuit au moyen de diverses techniques de test. Par conséquent, des tests sont généralement effectués au niveau de la tranche, au niveau du boîtier, au niveau du module à microplaquettes multiples, ou MCM selon les initiales du terme anglo-saxon Multi-chip module, au niveau de la carte et au niveau du système. Le but des tests à chaque niveau est de détecter autant de circuits défectueux que possible avant de poursuivre vers le niveau suivant de test. Laisser passer vers le niveau suivant d'intégration un circuit défectueux augmente le coût d'un produit. Des tests efficaces atteignent un taux élevé de détection de défaillances. Le taux de détection de défaillances est défini comme le rapport entre le nombre de défaillances détectées par un test et le nombre total de défaillances présentes dans le circuit. Un test à faible taux de détection de défaillances implique un rendement plus faible au niveau suivant d'intégration, en supposant que le rendement des tests est plus élevé à l'étape de test suivante. Les techniques de test actuellement utilisées dans l'industrie diffèrent à chaque niveau de test. La raison en est, en partie, que ce qui est testé est différent à chaque niveau de test, et aussi que ce qui provoque une défaillance est différent à chacun de ces niveaux. Aux niveaux de la tranche et du boîtier, c'est un composant unique, qui peut être un microprocesseur, un microcontrôleur ou un ASIC, qui est en cours de test. Une défaillance au niveau de la tranche ou du boîtier peut, par exemple, être provoquée par une erreur de fabrication, par exemple des particules provoquant des courts-circuits. En revanche, au niveau d'une carte et d'un système, c'est un système incorporant le composant qui est en cours de test. A ces niveaux plus élevés de test, une défaillance peut être due, par exemple, à un défaut fonctionnel sur un composant ou à un défaut de brasure. Au niveau de la tranche, le but des tests est de séparer les bonnes microplaquettes et les microplaquettes incorrectes, avant le sciage et la mise du composant sous boîtier. Un test à haut taux de détection de défaillances enlève idéalement toutes les erreurs de fabrication. Des techniques de test au niveau de la tranche incluent des tests paramétriques qui incluent des tests de contrôle de courant ou IDDQ, des tests de blocage, des tests autonomes structurels incorporés, ou BIST selon les initiales du terme anglo-saxon built-in self test, des tests de trajet d'analyse interne, et des tests de vecteurs parallèles à vitesse réelle. Des tests paramétriques testent si les récepteurs d'entrée et les pilotes de sortie satisfont à des exigences électriques minimales, comme une tension de seuil et de polarisation et des spécifications de courant de fuite. La technique de test IDDQ place la logique CMOS du circuit dans un état de repos et mesure ensuite le courant d'alimentation en énergie. Si le courant mesuré dépasse un seuil prédefini, le test a détecté un défaut et la microplaquette est rebutée. Les tests paramétriques sont efficaces pour détecter des erreurs de fabrication; mais ils exigent un temps de test significatif pour effectuer les mesures. Un test de blocage détermine si des entrées et des sorties internes de portes logiques sont bloquées en permanence à un niveau logique haut ou bas. Des défauts de fabrication sont modélisés comme défaillances de blocage. Des niveaux logiques bloqués affectent de façon dommageable le fonctionnement logique du circuit. L'efficacité d'une technique de test de blocage est mesurée par le taux de détection de défaillances du test, qui peut être défini comme le rapport entre le nombre de défaillances de blocage testées et le nombre de défaillances réelles de blocage possibles dans le circuit. Un taux de détection élevé de défaillances de blocage est souhaitable. La technique de test autonome structurel incorporé ou BIST, au niveau de la tranche, utilise des tests à base d'équipement automatisé contenus à l'intérieur de la pièce, qui permettent au circuit de se tester lui-même. La BIST peut être mise en oeuvre en ligne en cours de fonctionnement normal de la microplaquette pendant un état d'attente, ou hors ligne lorsque le circuit est placé dans un mode spécial de test. Au cours des tests au niveau de tranche, une BIST en ligne est employée et inclut
généralement un générateur de vecteurs pseudo-
aléatoires du type matériel et un matériel d'analyse de signature. Bien que la technique dite BIST constitue un procédé efficace de détection de défaillances du type blocage et retard, elle exige un temps de test, et un espace de microplaquette, qui sont onéreux l'un et l'autre. Des tests de trajet d'analyse interne constituent une technique utilisée pour appliquer un problème de génération de tests séquentiels de circuits dans un problème de génération de tests combinatoires de circuits. Des circuits doivent être conçus au préalable pour inclure un matériel de test de trajet d'analyse, qui peut inclure des registres isolés ou intégrés d'analyse ou d'enregistrement en double. Une génération automatique de configuration de test est utilisée pour réaliser un taux très élevé de détection de tests de blocage pour des circuits séquentiels. Des techniques de trajet d'analyse incluent également des tests fonctionnels à vitesse réelle qui détectent des défaillances de retard situées dans le trajet de sas à sas, ou de bascule à bascule, en cours de test. Des défaillances de retard affectent la synchronisation du circuit. Une défaillance de retard peut être définie comme un défaut qui provoque une lenteur excessive de réponse d'une porte ou d'un trajet du circuit, et qui ne satisfait donc pas aux spécifications de vitesse requise. La performance du composant sera incorrecte puisque la défaillance de retard se propage dans tout le circuit. Dans la technique de tests fonctionnels à vecteurs parallèles à vitesse réelle, des vecteurs de test utilisés dans la simulation du circuit électronique dans la phase de conception sont appliqués aux entrées du dispositif de circuit électronique sur un testeur à la vitesse d'exploitation du dispositif. Les sorties du dispositif sont ensuite observées pour déterminer si le fonctionnement du dispositif est correct. Bien que des tests fonctionnels à vitesse réelle soient efficaces pour détecter des défaillances de retard, cette technique exige un équipement de test qui fonctionne à des vitesses légèrement supérieures à la vitesse cible du composant. Des testeurs de circuits intégrés susceptibles d'effectuer des tests fonctionnels à vitesse réelle sont très onéreux, et une connexion physique à la tranche devient difficile sinon impossible à des fréquences exigées par les dispositifs de la technologie actuelle, en raison des limitations de largeur de bande dans la connexion de
sonde de tranche à la tranche de silicium.
Des tests au niveau du circuit intégré, ou IC, sous boîtier, utilisent habituellement les mêmes techniques de test que celles qui sont mises en oeuvre au niveau de la tranche. Cependant, toutes limitations de performance imposées par la largeur de bande des sondes de tranche sont supprimées puisqu'il est possible de créer, au niveau du circuit intégré sous boîtier, des interconnexions qui vont du testeur aux broches du boîtier et permettent que la cadence des vecteurs de test soit égale ou supérieure à la fréquence de fonctionnement du composant. Par conséquent, les tests fonctionnels qui utilisent des vecteurs parallèles à vitesse réelle deviennent plus
viables à ce niveau.
Des tests au niveau de la carte sont typiquement effectués en deux étapes distinctes, qui incluent les tests de processus d'assemblage et les tests fonctionnels de carte. Les tests de processus d'assemblage détectent des défauts qui apparaissent pendant la fabrication de la carte, par exemple des courts-circuits dus à des brasures, des circuits ouverts et des composants inversés. Le test fonctionnel de la carte vérifie que les performances de la carte sont conformes à ses spécifications. Dans des cartes de systèmes de calcul, le test fonctionnel de carte inclut généralement un test fonctionnel à base de microprogramme et un test de diagnostic de type logiciel. Le terme de microprogramme, tel qu'il est utilisé dans ce qui suit, désigne une séquence d'instructions élémentaires du niveau machine qui correspondent à des opérations du dispositif de calcul et dont l'exécution est lancée en introduisant une instruction de dispositif de calcul dans un registre d'instructions du dispositif de calcul. Le terme de test fonctionnel à base de microprogramme, tel qu'il est utilisé dans ce qui suit, désigne un microprogramme qui est conçu pour tester l'exploitation fonctionnelle d'un dispositif de calcul. La technique de test fonctionnel à base de microprogramme permet à un dispositif de calcul d'être testé en exécutant, d'une façon autonome, des instructions de niveau machine à la fréquence d'exploitation du dispositif de calcul. Un exemple de test fonctionnel à base de microprogramme est le test autonome incorporé, ou BIST, que des système de calcul exécutent à partir d'une mémoire morte, ou ROM, lors de la mise sous tension. Dans un test fonctionnel de carte, la partie de test de diagnostic du type logiciel exige que le système soit amorcé et soit mis en oeuvre à partir du niveau du système d'exploitation. Des tests fonctionnels à base de microprogrammes fournissent un procédé efficace de détection de la majorité des défauts fonctionnels au niveau de la carte parce que ces tests peuvent être mis en oeuvre à la vitesse d'exploitation du circuit et qu'ils peuvent exécuter des opérations que le dispositif de calcul est conçu pour exécuter. Mais il est difficile d'isoler la cause du défaut et ceci exige l'aide d'un technicien hautement qualifié. De plus, dans une BIST à base de mémoire morte, le test fonctionnel à base de microprogramme est développé par le personnel du groupe de Recherche et Développement, ou de R&D, à l'étape de la conception et est alors gelé, avant que le produit ne parvienne à l'étape de fabrication. Puisque le taux de détection et l'isolation d'une BIST à base de mémoire morte sont statiques, il est très difficile de modifier un test ou d'ajouter un nouveau test, ou de commander des
tests comme un parcours en boucle sur une défaillance.
Si un test fonctionnel à base de microprogramme n'est pas commandé de façon plus flexible, son taux de détection de défaillances peut être faible parce qu'il n'est généralement pas en parfaite concordance avec le
spectre des défauts du produit.
Au niveau des modules à microplaquettes multiples, ou MCM, deux variantes de tests sont possibles. Selon une première variante, le module à microplaquettes multiples peut être traité comme une carte. Dans ce cas, la technique de test d'assemblage et de test fonctionnel du niveau de carte peut être appliqué au MCM. Le test de niveau de carte est difficile puisque des composants critiques nécessaires pour les tests fonctionnels à base de microprogrammes du type BIST, par exemple une mémoire morte intégrée d'amorçage, sont absents. Selon une autre variante, le
MCM peut être traité comme un circuit intégré, ou IC.
Dans ce cas, la technique de test au niveau du boîtier peut être appliquée au MCM. Effectuer, au niveau du MCM, des tests de niveau du boîtier est difficile en
raison de la complexité accrue.
Un test de système est effectué lorsque le système final a été assemblé. Le système peut contenir de multiples cartes. Un test de système est semblable à un test fonctionnel au niveau de la carte, mais il se base davantage sur des diagnostics de système d'exploitation, en plus des tests fonctionnels à base
de microprogrammes, basés sur une mémoire morte.
Chacune des techniques de test décrite ci-dessus pour chaque niveau de test implique des problèmes qui lui sont inhérents. Des tests de circuit au niveau de la tranche exigent un temps de test, un espace de microplaquette, et un temps d'ingénierie pour la conception de tests à haut taux de détection de défaillances, qui sont tous onéreux. De plus, si des tests fonctionnels à vitesse réelle sont effectués, des tests au niveau de la tranche souffrent eux aussi du coût élevé d'un équipement de test fonctionnel à vitesse réelle et de la difficulté d'appliquer le test en raison de la largeur de bande limitée de sondage pour l'équipement de test: environ 150 à 200 MHz pour les testeurs actuels de tranches. Des tests au niveau du circuit mis sous boîtier souffrent eux aussi de la difficulté et du coût de la génération de tests à haut niveau de détection de défaillances, ainsi que des coûts élevés des équipements de tests fonctionnels à vitesse réelle. Des tests au niveau de la carte impliquent des difficultés inhérentes au diagnostic de défaillances détectées par une BIST à base de microprogramme, et des coûts élevés correspondants en temps de technicien pour la mise au point d'une BIST, ainsi que des difficultés de modification et d'amélioration du niveau de détection de défaillances par BIST. Des tests au niveau du MCM souffrent de la complexité accrue des circuits et des difficultés liées à la détermination précision du composant défectueux qui peut avoir échappé à une détection à un niveau de test inférieur. I1 existe un besoin de
résoudre les problèmes précédents.
Un domaine connexe dans la technologie de développement des systèmes de calcul est le besoin d'émulation de dispositifs de calcul, pour les développeurs des systèmes de calcul qui constituent les produits finaux. Une innovation récente est l'implantation d'un port de mise au point pour l'émulation, et d'un matériel interne de mise au point par émulation à l'intérieur du dispositif de calcul lui-même. Le terme d'émulation, tel qu'il est utilisé ici, désigne la capacité à commander l'exécution et à lire et écrire dans des registres, des mémoires et des entrées/sorties ou E/S d'un dispositif de calcul. Un accès à un équipement de mise au point par émulation est réalisé à travers un port, destiné à une mise au point par émulation, du dispositif de calcul. Dans leur majorité, des nouveaux microprocesseurs et des nouveaux microcontrôleurs incluent maintenant, en tant que particularité normalisée, un port de mise au point par émulation. Le but du port de mise au point par émulation est d'aider des développeurs de systèmes dans le processus de mise au point par émulation, utilisé lorsqu'ils sont en train de développer les microprogrammes du système associés au dispositif de calcul. Jusque tout récemment, les développeurs de systèmes utilisaient des émulateurs de systèmes et des ensembles fonctionnels d'émulation pour mettre au point et développer des microprogrammes de systèmes, mais l'industrie a tendu depuis lors à implanter le matériel d'émulation à l'intérieur du dispositif de calcul et à le rendre accessible par le port de mise au point, en raison de la complexité des VLSI modernes et de la difficulté d'un accès physique à ces
derniers.
Il serait avantageux de fournir un système et un procédé qui permettent de bénéficier du matériel interne de mise au point par émulation, inclus dans un système de calcul, afin de tester en cours de fabrication le dispositif de calcul ou le système qui
incorpore ce dispositif de calcul.
C'est donc le but de la présente invention que de fournir un tel système et un tel procédé de test en
cours de fabrication.
La présente invention atteint ce but en fournissant un système et un procédé perfectionnés de test de dispositifs de calcul, et de cartes, de MCM et de systèmes qui incorporent le dispositif de calcul, pendant la phase de fabrication. Le système et le procédé de l'invention permettent d'appliquer à un dispositif de calcul, à chaque niveau de l'intégration d'un dispositif, un test fonctionnel efficace à base de microprogramme qui est mis en oeuvre à la vitesse d'exploitation. La présente invention permet de modifier et d'améliorer facilement à chaque niveau de test, même de manière interactive, un test fonctionnel à base de microprogramme qui est mis en oeuvre à la vitesse d'exploitation. Le taux de détection de défaillances peut donc être amélioré à chaque niveau de test. Puisque le taux de détection de défaillances au niveau de la tranche augmente de façon significative, le coût de production est abaissé en détectant les circuits défectueux à des niveaux situés à des étapes plus précoces des processus de test, ce qui élimine donc des coûts généraux plus élevés de test, par exemple du temps de techniciens dans des étapes de test situées en aval. Le système et le procédé de la présente invention simplifient également le processus de test en permettant d'appliquer au circuit, à chaque niveau de test, les mêmes tests fonctionnels ou des tests fonctionnels semblables, à
vitesse réelle.
Selon un premier aspect, la présente invention réalise un système de test en cours de fabrication pour tester un système de calcul comprenant un dispositif de calcul à capacités de mise au point par émulation accessibles par l'intermédiaire d'un port de mise au point par émulation, lesdits tests étant accomplis en appliquant des tests fonctionnels à base de microprogrammes audit dispositif de calcul par l'intermédiaire dudit port de mise au point par émulation caractérisé en ce qu'il comprend: un test fonctionnel à base de microprogramme; et une sonde de système de calcul qui communique avec ledit dispositif de calcul par l'intermédiaire dudit port de mise au point par émulation afin de commander une exécution et de modifier et récupérer des valeurs d'état internes du système de calcul; et en ce que ladite sonde de système de calcul peut appliquer ledit test fonctionnel à base de microprogramme audit système de calcul et commander l'exécution dudit test fonctionnel à base de microprogramme par l'intermédiaire du port de mise au point par émulation à chaque niveau de test d'intégration d'un système de calcul, y compris le niveau de la tranche, le niveau du boîtier, le niveau de la carte, le niveau du module à microplaquettes multiples, et le niveau du système. Le système peut comprendre en outre un ordinateur hôte de test, ledit test fonctionnel à base de microprogramme étant envoyé dudit ordinateur hôte de test à ladite sonde du système de calcul, par l'intermédiaire d'un port sériel, d'un réseau local ou LAN selon les initiales du terme anglo-saxon local area network, ou
de toute autre forme de moyen de communications.
Ledit test fonctionnel à base de microprogramme peut être exécuté, une instruction de test fonctionnel à base de microprogramme à la fois, en envoyant une à la fois chacune desdites instructions à ladite sonde du système de calcul et en amenant ladite sonde de système de calcul à provoquer, par l'intermédiaire dudit port de mise au point par émulation, l'exécution de chacune desdites instructions, une à la fois, par
ledit dispositif de calcul.
On peut prévoir que ledit dispositif de calcul comprenne une mémoire et que ladite sonde de système de calcul exécute ledit test fonctionnel à base de microprogramme en téléchargeant dans ladite mémoire ledit test fonctionnel à base de microprogramme au moyen d'un ordre de téléchargement de mise au point par émulation et amène ledit test fonctionnel à base de microprogramme à être exécuté à partir de ladite mémoire. Ledit test fonctionnel à base de microprogramme peut être dérivé du code, développé pour un test autonome incorporé à base de mémoire morte qui a été développé pour ledit dispositif de calcul, cette dérivation s'effectuant par modification de ce code,
addition à celui-ci ou enlèvement à partir de celui-
ci. De préférence, les résultats de tests provenant de l'exécution dudit test fonctionnel à base de microprogramme sont récupérés. Lesdits résultats de tests peuvent être récupérés à partir du dispositif de calcul par l'intermédiaire dudit port de mise au point par émulation, et/ou peuvent être récupérés par l'intermédiaire d'un dispositif d'entrée sortie ou E/S, et/ou peuvent être récupérés en examinant le contenu
d'un registre interne au système de calcul.
Le système peut comprendre en outre des outils de mise au point d'analyse de la
performance pour analyser lesdits résultats de test.
De préférence, ledit test fonctionnel à base de microprogramme peut être modifié sur la base desdits résultats de test pour produire une test fonctionnel
modifié à base de microprogramme.
On prévoit alors de préférence que c'est ledit test fonctionnel modifié à base de microprogramme qui est utilisé comme test fonctionnel à base de microprogramme. Selon un deuxième aspect, l'invention fournit un procédé de test d'un système de calcul comprenant un dispositif de calcul à capacités de mise au point par émulation accessibles par l'intermédiaire d'un port de mise au point par émulation, lesdits tests étant réalisés en appliquant des tests fonctionnels à base de microprogrammes audit dispositif de calcul par l'intermédiaire dudit port de mise au point par émulation, caractérisé en ce qu'il comprend les étapes consistant à: (a) envoyer un test fonctionnel à base de microprogramme à une sonde du système de calcul, qui communique avec ledit dispositif de calcul par l'intermédiaire dudit port de mise au point par émulation; et (b) amener, au moyen d'ordres de mise au point par émulation, ledit dispositif de calcul à exécuter ledit test fonctionnel à base de microprogramme, ledit procédé pouvant être mis en oeuvre à chaque niveau de test d'intégration du dispositif de calcul, y compris le niveau de la tranche, le niveau du boîtier, le niveau de la carte, le niveau du module à
microplaquettes multiples et le niveau du système.
Ledit test fonctionnel à base de microprogramme peut être envoyé à ladite sonde du système de calcul à partir d'un ordinateur hôte de test, par l'intermédiaire d'un port sériel, d'un réseau local,
ou de toute autre forme de moyen de communications.
Ledit test fonctionnel à base de microprogramme peut être exécuté, une instruction de test fonctionnel à base de microprogramme à la fois, en envoyant une à la fois chacune desdites instructions à ladite sonde du système de calcul et en amenant ladite sonde du système de calcul à provoquer, par l'intermédiaire dudit port de mise au point par émulation, l'exécution de chacune desdites instructions, une à la fois, par
ledit dispositif de calcul.
Ledit test fonctionnel à base de microprogramme peut être téléchargé dans une mémoire dudit système de calcul au moyen d'un ordre de téléchargement de mise au point par émulation, ledit test fonctionnel à base de microprogramme étant exécuté à partir de ladite mémoire à réception d'un ordre d'exécuter, à partir de la mémoire, une
mise au point par émulation.
Le procédé peut comprendre l'étape consistant à: (c) récupérer des résultats du test fonctionnel à
base de microprogramme.
Dans ce cas, on peut prévoir que lesdits résultats de test fonctionnel à base de microprogramme sont récupérés à partir du dispositif de calcul par l'intermédiaire dudit port de mise au point par émulation, et/ou qu'ils sont récupérés par l'intermédiaire d'un dispositif d'entrée sortie, et/ou qu'ils sont récupérés en examinant le contenu
d'un registre interne au système de calcul.
Lorsque le procédé prévoit la récupération des résultats, il peut comprendre en outre l'étape consistant a: (d) analyser lesdits résultats de test fonctionnel à base de microprogramme en utilisant des outils de mise au point et d'analyse de la performance, et/ou l'étape consistant à: (e) ramifier pour mettre en oeuvre un test différent si lesdits résultats de test fonctionnel à base de microprogramme indiquent une telle condition de ramification, et/ou l'étape consistant à: (f) ramifier pour mettre en oeuvre un test fonctionnel différent à base de microprogramme en mode interactif si lesdits résultats de test fonctionnel à base de microprogramme indiquent une telle condition de ramification, et/ou l'étape consistant à: (g) modifier ledit test fonctionnel à base de microprogramme pour produire un test fonctionnel
modifié à base de microprogramme.
Lorsque modifier le test fonctionnel à base de microprogramme est possible, on peut prévoir que les étapes (a) à (c) sont répétées en utilisant comme test fonctionnel à base de microprogramme ledit
test fonctionnel modifié à base de microprogramme.
Ledit test fonctionnel à base de microprogramme peut être dérivé d'un code développé pour un test autonome incorporé à base de mémoire morte, cette dérivation s'effectuant par modification de ce code,
addition à celui-ci ou enlèvement à partir de celui-
ci. Les buts, particularités et avantages de l'invention décrits ci-dessus ainsi que d'autres
ressortiront mieux de la lecture de la description qui
suit d'un mode de réalisation de l'invention donné à titre d'exemple, et considéré actuellement comme préféré, en conjonction avec les dessins annexés dans lesquels: la FIG. 1 est un schéma fonctionnel d'un trajet de test d'un dispositif de calcul, aux étapes initiales de fabrication; la FIG. 2 est un schéma fonctionnel d'un trajet classique de test de fabrication d'un dispositif de calcul, à partir du niveau de la tranche jusqu'au niveau du système; la FIG. 3 est un schéma fonctionnel d'un système de test fonctionnel pour dispositifs de calcul selon la présente invention; la FIG. 4 est un schéma fonctionnel d'un système selon l'un des modes de réalisation de la présente invention, destiné à exécuter un testfonctionnel à base de microprogramme sur un dispositif de calcul au niveau de test de tranche ou de boîtier; la FIG. 5 est un schéma logique qui représente le procédé de la présente invention exécuté en mode par lots dans le contexte d'un système de test, selon la FIG. 4, d'un dispositif de calcul au niveau de la tranche; la FIG. 6 est un schéma logique représentant le procédé de la présente invention exécuté en mode interactif dans le contexte d'un système de test, selon la FIG. 4, d'un dispositif de calcul au niveau de la tranche; la FIG. 7 est un schéma fonctionnel d'un système selon la présente invention, destiné à exécuter un test fonctionnel à base de microprogramme sur un dispositif de calcul au niveau de test d'une carte/d'un MCM; et la FIG. 8 est un schéma logique qui représente le procédé de la présente invention dans le contexte du système de test, selon la FIG. 7, d'un dispositif de
calcul au niveau de la carte/du MCM.
La FIG. 1 un schéma fonctionnel d'un trajet de test d'un dispositif de calcul, aux étapes initiales de fabrication. Pendant le processus de fabrication, de nombreux dispositifs de calcul sont fabriqués sur une tranche unique. Le test initial commence au niveau de la tranche. Pendant une phase 10 de test des tranches et de tri, des tranches sont placées sur un dispositif d'exploration, ou de sondage, de tranches attaché à un testeur de semi-conducteurs qui effectue divers tests paramétriques et fonctionnels sur chaque dispositif individuel de calcul présent sur la tranche. Les dispositifs individuels de calcul présents sur la tranche sont triés selon les résultats des tests au niveau de la tranche et les dispositifs
de calcul déterminés comme défectueux sont rebutés.
Classiquement, les dispositifs individuels de calcul qui satisfont au test de tranche sont ensuite mis sous
boîtier pendant une phase 12 de mise sous boîtier.
Après la mise sous boîtier, chaque dispositif individuel de calcul est encore testé dans une phase 14 de test sous boîtier. Typiquement, le test au niveau du boîtier est semblable au test au niveau de la tranche. Le test au niveau du boîtier peut cependant inclure un test fonctionnel plus étendu que celui qui est exécuté au niveau de la tranche, puisque les limitations de largeur de bande des sondes de test de tranches sont éliminées. Diverses techniques de test qui peuvent être mises en oeuvre au niveau de la tranche et/ou du boîtier incluent des tests paramétriques, des tests de trajet d'analyse et des tests autonomes incorporés basés sur des formes d'équipement, et des tests fonctionnels à base
vectorielle. Ces techniques sont connues dans l'art.
Une description détaillée de ces techniques de tests
est exposée dans l'ouvrage "Digital Systems Testing and Testable Design", c'est-à-dire Tests de systèmes numériques et structure susceptible d'être testée, de M. Abramovici, M. A. Breuer, et A. D. Friedman, New York: M. H. Freeman and Company, Computer Science Press, 1990, ISBN 0- 7167-8179-4 et l'ouvrage "Test Generation for VLSI Chips", c'est-à- dire Génération de tests pour microplaquettes VLSI, de V. D. Agrawal et S. C. Seth, Washington D.C.: IEEE Computer Society
Press, 1988, ISBN 0-8186-8786-X.
Depuis peu, l'industrie tend à fabriquer des modules à microplaquettes multiples, ou MCM. Des modules à microplaquettes multiples intègrent sur un substrat fixe unique, avant leur mise sous boîtier,
plusieurs dispositifs de calcul non mis sous boîtier.
Si un dispositif de calcul est prévu pour faire partie d'un MCM, les dispositifs individuels de calcul qui satisfont aux tests de tranches peuvent, au lieu d'être mis sous boîtier, passer de la phase 10 de test des tranches et de tri à une phase 16 d'intégration de MCM o le dispositif de calcul est scié et est intégré dans un MCM. Le dispositif de calcul intégré est ensuite testé au niveau de MCM pendant une phase de test 18 de MCM. Des tests au niveau du MCM peuvent devenir très lourds, tant pour déterminer précisément le composant défectueux du MCM que pour effectuer des
réparations à de tels composants défectueux.
L'importance d'éliminer, par filtrage, des dispositifs de calcul défectueux au niveau de la tranche devient
encore plus important lorsqu'il s'agit de MCM.
Lorsqu'un MCM doit être rebuté ou réparé en raison d'un dispositif de calcul défectueux, les coûts de production augmentent puisqu'il peut falloir rebuter des matériels additionnels au dispositif de calcul et que les tests, la mise au point et les réparations consomment un temps onéreux de technicien. Le problème est encore multiplié pour chaque dispositif de calcul additionnel intégré dans le MCM parce que la probabilité de produire un MCM fonctionnellement correct diminue de façon significative. Une
description plus détaillée de tests de MCM peut être
trouvée dans le document "Multichip Module
Technologies and Alternatives - The Basics", c'est-à-
dire Technologies de modules de microplaquettes multiples et variantes Les éléments de base", de D. A. Doane et P. D. Franzon, New York, Van Nostrand
Reinhold, 1993, ISBN 0-442-01 236-5.
La FIG. 2 est un schéma fonctionnel qui illustre un trajet classique 20 de test, en cours de fabrication, d'un système de calcul à partir de l'instant de la fabrication jusqu'à l'instant o il est prêt à l'expédition. Le trajet 20 de test de fabrication représenté à la FIG. 2 suppose que le dispositif de calcul n'est pas intégré dans un MCM mais passe directement a la mise sous boîtier. Comme représenté à la FIG. 2, le dispositif de calcul est fabriqué pendant une phase de fabrication 21. Après la fabrication, le dispositif de calcul passe par une phase 22 de test de tranche. Les dispositifs individuels de calcul qui satisfont aux tests de tranches sont découpés et mis sous boîtiers, et sont
ensuite envoyés à une phase 23 de test sous boîtier.
Les dispositifs de calcul mis sous boîtiers qui satisfont aux tests sous boîtier sont ensuite intégrés dans une carte de circuit dans une phase 24 d'assemblage de carte. Après intégration sur la carte, la carte passe par une phase 25 de test d'assemblage au niveau de la carte, qui détecte des défauts d'assemblage comme des courts-circuits de brasure ou une inversion de composants. Si la carte satisfait aux tests assemblés de niveau de la carte, elle est envoyée à la phase 26 de test fonctionnel au niveau de la carte. Les tests fonctionnels au niveau de la carte détectent des défauts fonctionnels de la carte, qui peuvent être, ou non, provoqués par le dispositif de calcul d'origine en cours de test. Si la carte satisfait aux tests fonctionnels du niveau de la carte, le test de fabrication peut être terminé, ou bien la carte peut être envoyée à des niveaux plus élevés de tests si elle doit faire partie d'un plus grand système. Si la carte doit faire partie d'un plus grand système, elle est assemblée dans le système pendant une phase 27 d'assemblage du système et elle est soumise à des tests additionnels pendant une phase 28 de test au niveau du système. Si le système qui inclut le dispositif de calcul d'origine en cours de tests satisfait aux tests au niveau du système, le
test de fabrication est achevé.
Il ressort clairement de la description ci-dessus
qu'il est critique de détecter des dispositifs de calcul défectueux au niveau de test le plus précoce possible. Détecter un dispositif de calcul défectueux devient d'autant plus onéreux que le défaut est détecté plus loin dans le trajet de test, en raison du temps additionnel de test et en raison de tous matériels additionnels dans lesquels le dispositif de calcul est intégré et qu'il faudrait peut être rebuter. Comme décrit plus haut en référence à l'arrière plan de la présente invention, les techniques de test fonctionnel à base de microprogrammes peuvent se révéler très efficaces pour détecter des défauts fonctionnels dans un dispositif de calcul. Cependant, comme décrit précédemment aussi, des tests fonctionnels à base de microprogrammes du type BIST à base de mémoire morte sont limités en ce qu'ils sont statiques et développés pendant la phase de conception. La présente invention offre, pour des tests fonctionnels à base de microprogrammes, la possibilité d'être flexibles et d'être utilisés pour des tests en cours de fabrication, soit en mode par lots, soit en mode interactif. Comme décrit également en référence à l'arrière plan de l'invention, de nombreux dispositifs modernes de calcul incluent un équipement interne de mise au point par émulation, accompagné d'un port de mise au point par émulation pour y accéder. L'équipement interne de mise au point par émulation peut être utilisé pour aider des développeurs de systèmes pour développer des microprogrammes de systèmes de développement associés
aux dispositifs de calcul.
La FIG. 3 est un schéma fonctionnel d'un système de test fonctionnel pour dispositifs de calcul selon la présente invention. Le système 30 de tests fonctionnels pour dispositifs de calcul peut être utilisé, comme partie d'un test en cours de fabrication, pour tester un système de calcul 39 en utilisant des tests fonctionnels efficaces à base de microprogrammes, qui sont mis en oeuvre à la vitesse opérationnelle du système et sont appliqués, à chaque niveau de l'intégration du circuit, à un dispositif de calcul 30 inclus dans le système de calcul 39. Au niveau de la tranche, le système de calcul 39 se réduit à un dispositif de calcul. A des niveaux de tests plus élevés, le système de calcul 39 peut inclure de multiples composants de circuits et de multiples dispositifs de calcul. Le système 30 de tests fonctionnels pour dispositifs de calcul selon la présente invention exige que le système de calcul en cours de test 39 inclue un dispositif de calcul 36 comprenant un matériel interne 37 de mise au point par émulation, et qu'il soit possible d'accéder à ce matériel par l'intermédiaire du port 38 de mise au point par émulation. Les tests fonctionnels à base de microprogrammes utilisés dans la présente invention sont appliqués au dispositif de calcul 36 par l'intermédiaire du port 38 du dispositif de calcul, destiné à une mise au point par émulation, en utilisant une technique d'émulation par sonde du système de calcul. Le port 38 du dispositif de calcul, destiné à une mise au point par émulation, appelé dans ce qui suit le port de mise au point par émulation du dispositif de calcul, permet d'accéder au matériel 37 de mise au point par émulation, qui réside dans le dispositif de calcul 36. Le système 30 de tests fonctionnels du dispositif de calcul et la méthodologie qu'il enseigne peuvent être mis en oeuvre à chacun des divers niveaux de tests fonctionnels, y compris les tests au niveau de la tranche, les tests au niveau du boîtier, les tests au niveau de la carte, les tests au niveau du modules à microplaquettes
multiples et les tests au niveau du système.
Comme représenté à la FIG. 3, le système 30 de tests fonctionnels pour dispositifs de calcul inclut un ordinateur hôte 32 de test qui est en interface avec une sonde 34 du système de calcul. Selon la terminologie utilisée dans ce qui suit, une sonde du système de calcul offre la possibilité de commander le fonctionnement du dispositif de calcul et de modifier le contenu de sa mémoire, de ses registres et de ses entrées/sorties par l'intermédiaire d'un port de mise au point par émulation du dispositif de calcul. Dans le mode de réalisation préféré, une communication est réalisée en utilisant un réseau local ou LAN, ou un port sériel. Cependant, le procédé de communication n'est pas limité à un réseau local ou à un port sériel et tout moyen de communication peut être utilisé pour relier l'ordinateur hôte 32 de test et la sonde 34 du système de calcul. Comme mentionné précédemment, le dispositif de calcul 36 est pourvu d'un port 38 de mise au point par émulation pour accéder de l'extérieur au matériel interne 37 de mise au point
par émulation qui réside dans le dispositif de calcul.
La sonde 34 du système de calcul peut être configurée pour commander le matériel 37 de mise au point par émulation au moyen du port 38 de mise au point par émulation du dispositif de calcul en cours de test 36,
par l'intermédiaire d'une interface du type matériel.
La sonde 34 du système de calcul de la présente invention offre la possibilité de commander le fonctionnement du dispositif de calcul et de modifier le contenu de sa mémoire, de ses registres et de ses entrées/sorties par l'intermédiaire du port de mise au point par émulation du dispositif de calcul. Dans le mode de réalisation préféré, la sonde 34 du système de calcul comporte aussi de préférence des particularités d'émulation de mise au point, y compris un téléchargement de code à haute vitesse, une programmation de mémoire flash du système cible, et la possibilité d'afficher ainsi que de modifier la mémoire et les registres du dispositif cible de calcul. Pour un dispositif de calcul 36 qui incorpore un microcontrôleur de la famille Motorola 683xx, une
Processor Probe, ou sonde de processeur, Hewlett-
Packard HP E3490A peut être utilisée pour l'implantation de la sonde 34 du système de calcul. Le HP E3490A peut être utilisé par l'intermédiaire d'un réseau local pour faire fonctionner le dispositif de calcul 36 à pleine vitesse, télécharger un code et fixer des points d'arrêt de logiciel, et des points d'arrêt de matériel engendrés de l'extérieur. Pour un dispositif de calcul 36 qui incorpore un processeur Pentium(R) Intel, il est possible d'utiliser une sonde de processeur Pentium(R) HP E3491A de Hewlett-Packard pour l'implantation de la sonde 34 du système de calcul. Il est important de noter que la technique d'émulation par sonde pour le système de calcul était utilisée précédemment comme méthode peu onéreuse de mise au point d'un logiciel incorporé, pour des processeurs pourvus de particularités de mise au point sur microplaquettes. Cette technique n'était pas utilisée jusqu'ici dans un dispositif de test au cours de la fabrication. La sonde 34 du système de calcul se connecte au port 38 de mise au point du dispositif de calcul 36 et communique avec le dispositif de calcul
36 afin de commander une émulation interne.
L'utilisation de la sonde 34 du système de calcul permet de tester le fonctionnement d'accès à la mémoire du système et la communication par les dispositifs E/S sans utiliser aucune sonde externe de test, en commandant les particularités de mise au
point à l'intérieur du dispositif de calcul 36.
Comme décrit en référence à l'arrière plan de l'invention, un test fonctionnel à base de microprogramme est une technique de test dans laquelle le dispositif de calcul est testé en exécutant, de façon autonome, des instructions de niveau machine à la fréquence d'exécution de la pièce. Le test fonctionnel à base de microprogramme exerce typiquement la fonctionnalité du dispositif de calcul, de la mémoire et des dispositifs d'entree/sortie. Le procédé typique de ce test consiste à l'effectuer pendant la séquence de mise sous tension et d'amorçage. En revanche, dans la présente invention, le test fonctionnel à base de microprogramme est exécuté en tant que test en cours de fabrication afin de déterminer des composants défectueux dans le processus de fabrication. Selon le test fonctionnel à base de microprogramme dont la mise en oeuvre est souhaitée et selon la configuration du système de calcul en cours de test 39, un test fonctionnel 35 à base de microprogramme peut, soit être fourni au système de calcul en cours de test 39 en le chargeant dans une mémoire qui peut être une antémémoire interne, une antémémoire externe, ou une mémoire vive ou RAM externe, soit être fourni à la sonde 34 du système de calcul de façon interactive par l'intermédiaire de l'ordinateur hôte 32 de test. Par exemple, un test fonctionnel à base de microprogramme pourrait être mis en oeuvre de façon interactive à partir de l'hôte 32 de test et pourrait être exécuté directement à partir de la sonde 34 du système de calcul, une instruction à la fois, en utilisant une opération de colloque entre la sonde 34 du système de calcul et le port 38 de mise au point. Un système plus sophistiqué 39 de calcul en cours de test pourrait inclure une antémémoire interne ou externe ou une mémoire vive externe. Le test fonctionnel à base de microprogramme pourrait être téléchargé dans ce cas vers la mémoire à partir de l'hôte 32 de test par l'intermédiaire de la sonde 34 du système de calcul et du port 38 de mise au point, et être ensuite mis en oeuvre en mode par lots à la vitesse d'exploitation à partir de la mémoire. En variante, la sonde 34 du système de calcul pourrait faire partie d'un test de système de calcul qui pourrait inclure un émulateur de mémoire qui sonde les broches d'entrée/sortie du dispositif de calcul 36. Dans un tel cas, le test fonctionnel à base de microprogramme pourrait être chargé vers l'émulateur de mémoire de la sonde 34 du système de calcul et être exécuté à partir de là, à la
vitesse d'exploitation.
Une génération de tests fonctionnels à base de microprogramme peut être réalisée selon l'une des trois manières suivantes. Une implantation la plus simple permettrait à l'utilisateur d'écrire son propre test fonctionnel à base de microprogramme et de tester des fichiers de séquences types qui seraient exécutés sur l'hôte 32 de test. Des appels en provenance des fichiers de séquences types de tests par l'intermédiaire d'un ordre envoyé à la sonde 34 du système de calcul, soit amènent le test fonctionnel à base de microprogramme à être exécuté directement à partir de la sonde 34 du système de calcul en mode interactif par l'intermédiaire du port 38 de mise au point du dispositif de calcul, soit amènent le test fonctionnel à base de microprogramme à être téléchargé dans la mémoire du dispositif de calcul 36 et à être exécuté en mode par lots à partir de la mémoire. Des résultats du test fonctionnel à base de microprogramme peuvent être renvoyés à l'hôte 32 de test à partir de la sonde du système de calcul, ou peuvent être observés au moyen d'un dispositif d'entrée/sortie quelconque. Selon une implantation plus élaborée, des fichiers de test engendrés automatiquement, qui testent la mémoire et les entrées/sorties, pourraient être engendrés et exécutés comme ci-dessus. Une troisième implantation peut réaliser un programme utilitaire pour traduire un code de test fonctionnel à base de microprogramme à mémoire morte d'amorçage en des tests qui résident dans des fichiers sur l'hôte 32 de test et qui peuvent être ensuite exécutés par la
sonde 34 du système de calcul.
Dans des systèmes de test en fabrication de l'art antérieur, le taux de détection d'un test BIST à base de microprogramme est déterminé à l'instant o le code est écrit par le personnel de Recherche et Développement, et le test est programmé dans une
mémoire morte et est exécuté à partir de celle-ci.
Puisque le spectre de défaillances d'un dispositif de calcul n'est pas statique, il serait cependant intéressant de pouvoir modifier le taux de détection d'un test autonome et, si possible, d'ajouter et d'enlever des tests selon les besoins. Dans le cas de l'approche de tests statiques de tests autonomes par mémoire morte selon l'art antérieur, ceci n'est pas possible parce que des outils et du temps d'ingénierie, propres au personnel de Recherche et Développement, devraient être utilisés pendant la
phase de fabrication pour modifier le test.
Typiquement, les ressources de R & D ne sont pas disponibles pendant la fabrication en série parce qu'elles sont occupées à la conception de produits futurs. Comme décrit précédemment, la capacité de la présente invention à permettre de mettre en oeuvre à une vitesse d'exploitation, sur le dispositif de calcul 36, des tests fonctionnels 35 à base de microprogrammes autres que le test fonctionnel statique interne à base de microprogramme sur mémoire morte permet à un technicien de fabrication de mettre en oeuvre divers tests fonctionnels à base de microprogrammes, de les modifier et de les améliorer afin d'augmenter le taux de détection de défaillances du test fonctionnel à base de microprogramme, à un niveau de test donné. De plus, puisque le test fonctionnel 35 à base de microprogramme peut être mis en oeuvre par l'intermédiaire du port 38 de mise au point du système de calcul 36, plutôt que par des sondes onéreuses de test qui souffrent de limitations significatives de largeur de bande, un test fonctionnel 35 à base de microprogramme peut être mis en oeuvre sur le dispositif de calcul à un niveau donné quelconque de test, y compris le niveau de la tranche. La flexibilité offerte dans la modification des tests fonctionnels 35 à base de microprogrammes et dans l'application de ces derniers au dispositif de calcul 36 à un niveau quelconque de test permet d'augmenter de façon significative le taux de détection de défaillances des tests au niveau de la tranche et de réduire donc de façon significative les coûts qui correspondent aux composants, et au temps de
test, perdus en aval.
La sonde 34 du système de calcul peut mettre en oeuvre un test fonctionnel à base de microprogramme,
soit en mode par lots, soit en mode interactif.
L'avantage de la mise en oeuvre de la sonde 34 du système de calcul en mode interactif est que ce mode permet à un technicien de test de fabrication de modifier et d'améliorer le test fonctionnel 35 à base de microprogramme. Le test fonctionnel 35 à base de microprogramme pourrait être amélioré pour atteindre des niveaux très élevés de taux de détection de défauts, ce qui éliminerait potentiellement le besoin d'amorcer le système d'exploitation et de mettre en oeuvre des diagnostics qui exigent un temps d'exécution long au niveau de la carte. Le mode interactif peut aussi être utilisé pour aider à la
recherche des défaillances.
Dès lors qu'un test fonctionnel 35 à base de microprogramme à haut taux de détection de défaillances a été développé, la ligne de test de fabrication peut bénéficier du mode par lots de la sonde 34 du système de calcul pour mettre en oeuvre sur la ligne de production le test fonctionnel 35 à base de microprogramme. Des tests par lots peuvent être chargés et exécutés à partir de la mémoire intérieure d'un système de calcul en cours de test 39 à vitesse réelle. Un ensemble d'origine de tests par lots, sous forme de code d'assemblage ou de code source d'assemblage, pourrait être dérivé du test autonome à mémoire morte à l'amorçage, conçu par le groupe de Recherche et de Développement, et pourrait être augmenté ou réduit par un ingénieur de fabrication en fonction des besoins. Des résultats de tests provenant du test fonctionnel 35 à base de microprogramme peuvent être renvoyés de la sonde 34 du système de calcul à l'ordinateur serveur 32 de tests ou peuvent être observés au moyen des dispositifs d'entrée/sortie ou être chargés dans des registres et être observés. Des déterminations de diagnostic peuvent être exécutées sur les résultats. Des bibliothèques de tests par lots peuvent être développées et exercer un effet de levier pour la
qualité de divers produits.
Selon une implantation de l'invention, une station de travail Hewlett-Packard HP9000 series 700 peut être utilisée comme hôte 32 de test pour servir d'environnement de développement pour un pilote 34 de sonde du système de calcul. Le système de calcul 39 en cours de test incorpore, dans cette implantation, un dispositif de calcul 36 implanté au moyen d'un Motorola 68332 qui inclut un équipement de mise au point par émulation et un port de mise au point par émulation pour permettre un accès. La station HP9000 contient les sources et outils nécessaires pour réaliser un pilote de Software Probe, c'est-à-dire de sonde de logiciel, CPU32 pour Motorola BDM, o BDM signifie mode de mise au point d'arrière plan, selon les initiales des termes anglo-saxon Background Debug Mode. De plus, la station HP9000 inclut un émulateur Hewlett-Packard 68322 HP64782. La sonde d'émulateur connecte la sonde 34 du système de calcul qui est
implantée au moyen d'un Hewlett-Packard HPE3590A.
L'émulateur est utilisé pour la commande de mise en oeuvre, pour la charge de code et l'accès à la
mémoire, et pour l'analyse d'exécution de code.
Les produits B3640 et B3641 de Hewlett-Packard qui comprennent 1' ensemble compilateur, assembleur et éditeur de liens AXLS C 68xxx sont chargés sur la station HP9000. Dans cette station sont de plus
chargés les produits B3092, B1473 et B1487 de Hewlett-
Packard qui incluent l'interface d'utilisateur pour station de travail Motorola 683xx, l'interface d'utilisateur du dispositif de mise au point pour Motorola et l'interface dite Software Performance Analyzer, c'est-à-dire d'analyseur de performance de logiciel. Les HP B3092, B1473 et B1487 coopèrent avec l'émulateur 68322 HP64782 pour fournir diverses possibilités de mesure et de commande. Une carte d'analyseur de performance de logiciel est également incluse dans l'unité d'émulateur afin d'utiliser
l'analyseur de performances de logiciel.
Un exemple d'implantation d'un test fonctionnel simple à base de microprogramme, basé sur un interpréteur de commandes interactif Unix, qui s'exécute en mode par lots sur l'hôte de test HP9000 de la présente invention est exposé ci-dessous. Le test fonctionnel à base de microprogramme représenté ci-dessous est un test dit à uns baladeurs, ce qui traduit le terme "walking ones", dans la plage d'adresses de la mémoire principale d'un système de
dispositif de calcul cible Motorola 68332.
On va d'abord décrire la séquence type de
l'interpréteur de commandes interactif utilisé ici.
Cette séquence type de l'interpréteur de commandes interactif place le test en fichier rtl dans une boucle et contrôle ensuite les résultats qui ont été renvoyés au fichier tstl.out, littéralement sortie du tstl, par rapport au résultat attendu dans le fichier
tstl.good, littéralement tstl.satisfaisant.
On reportera dans ce qui suit les ordres exacts donnés à l'équipement, en termes anglo-saxons ou dérivés de ceux-ci, et on indiquera la traduction
littérale des termes correspondants.
while true do # run test file rtl # rtl # concatenate results into output file # cat tstl.out # compare actual results with expected results # diff tstl.out tstl.good > /dev/null if [ $? -eq 1] then echo "TEST FAILED" else echo "TEST PASSED" fi echo "Testing - address walking ones..." done o while true signifie tant que vrai; do, effectuer; run test file rtl, mettre en oeuvre fichier de test rtl; concatenate results into output file, chaîner résultats dans fichier de sortie; compare actual results with expected results, comparer résultats réels et résultats attendus; diff, différence; null, zéro; if, si; then, alors; echo, renvoyer; TEST FAILED, test non satisfaisant; else,
signifie; TEST PASSED, test satisfaisant; Testing -
Address walking ones..", en cours de test - adresse de
un baladeur..."; done, effectué.
Le fichier de test rtl amène un fichier de test tstl.cmd à être exécuté. Les résultats sont analysés et renvoyés au fichier de sortie tstl.out. Dans cet exemple, "lanload", littéralement télécharger réseau local, est un ordre exécuté à partir d'un interpréteur de commandes interactif Unix situé sur l'hôte 32 de test, qui exécute par l'intermédiaire du réseau local un test par lots sur la sonde 34 du système de calcul.
Les valeurs de LAN 15.11.8.210 de l'exemple ci-dessous sont l'adresse ip; out signifie sortie et cmd est une
abréviation du mot command, c'est-à-dire ordre.
rtl lanload -c 15.11.8.210 < tstl. cmd > tstl.lst cat tstl.lst | out_clean > tstl.out On donnera ci-dessous un exemple d'un fichier tstl. cmd qui contient les ordres réels de sonde du système de calcul. Les ordres représentés ci-dessous sont écrits en une syntaxe développée pour le produit Hewlett-Packard HPE3490A. Ces ordres pourraient aussi être exécutés de façon interactive pour une mise au point. L'ordre "m" est un ordre de mémoire, comme
décrit ci-dessous.
tstl.cmd mo - dl #fill 0 #walk 1 addr m 3000..ffff=5555 #expect data=55 addr=3000 m 3000 m 3000=AA #expect data=55 addr=3001 m 3001 m 3001=AA #expect data=55 addr=3003 m 3003 m 3003=AA #expect data=55 addr=3007 m 3007 m 3007=AA #expect data=55 addr=300f m 300f m 300f=AA #expect data=55 addr=301f m 301f m 301f=AA o fill signifie remplir; walk 1 addr, adresse de un baladeur; expect data, attendre données; addr, adresse. L'ordre de mémoire "m" utilisé dans le fichier tstl.cmd de l'exemple est utilisé pour afficher ou pour modifier un espace de mémoire de processeur de la façon suivante: m <addr>: afficher mémoire à adresse m -d<size> <addr>: afficher mémoire à adresse avec dimensions d'affichage m <addr>..<addr>: afficher mémoire dans plage spécifiée d'adresses m <addr>: afficher bloc de 128 octets en débutant à adresse A m <addr≥<value>: modifier à <value> adresse de mémoire ml <addr>..<addr≥ <value>,<value>: remplir plage en répétant séquence On va donner ci-dessous un exemple du fichier de réponse attendue tstl.good. Il contient l'emplacement de mémoire et les données attendues à partir d'une
lecture de mémoire.
tstl.good
00003000 55
00003001 55
00003003 55
00003007 55
0000300f 55 0000301f 55 La FIG. 4 est un schéma fonctionnel d'un système selon l'un des modes de réalisation de la présente invention, destiné à exécuter sur un dispositif de calcul un test fonctionnel à base de microprogramme au niveau de test de la tranche ou du boîtier. Le système comprend un testeur 41 de dispositifs de calcul et un dispositif de calcul 47 en cours de test, qui inclut un port de mise au point par émulation et un matériel associé 48. Au niveau de la tranche ou du boîtier, ce qui est testé est le dispositif de calcul lui-même 47 en cours de test. Par conséquent, le testeur 41 du dispositif de calcul inclut généralement un moyen d'émuler une mémoire et des dispositifs d'entrée/sortie. Comme représenté à la FIG. 4, le testeur 41 de dispositifs de calcul inclut un hôte 42 de test et une sonde 43 de système de calcul comme ceux qui sont utilisés dans le mode de réalisation de la FIG. 3, et il peut également inclure un émulateur 45 de mémoire et un émulateur 46 de dispositifs d'entrée/sortie. L'émulateur 46 de dispositifs d'entrée/sortie effectue des colloques de bus avec le dispositif de calcul 47 en cours de test en utilisant un protocole approprié de bus. Si le dispositif de calcul 47 en cours de test inclut une antémémoire incorporée 49, un test fonctionnel à base de microprogramme peut être téléchargé dans l'antémémoire 49 à partir de l'hôte 42 de test par l'intermédiaire de la sonde 43 du système de calcul et être exécuté directement à partir de l'antémémoire. Selon une variante, si le dispositif de calcul 47 en cours de test n'inclut aucune antémémoire 49, le test fonctionnel à base de microprogramme peut être téléchargé dans l'émulateur 45 de mémoire qui sonde les broches d'entrée/sortie du dispositif de calcul 47 en cours de test, et la sonde 43 du système de calcul peut commander l'exécution du test par l'intermédiaire du port 48 de mise au point par émulation du dispositif de calcul 47 en cours de test, en utilisant des ordres de commande de mise en oeuvre. Comme représenté aussi à la FIG. 4, le testeur 41 de dispositifs de calcul peut inclure d'autres procédés 44 de test, par exemple un trajet d'analyse, un contrôle de courant et d'autres tests pour compléter
un ensemble de tests.
En pratique, des tests fonctionnels à base de microprogrammes sont exécutés en fabrication en premier lieu en mode par lots. Puis, si un test est défaillant, un opérateur peut exécuter des tests en mode interactif. La FIG. 5 est un schéma logique qui représente le procédé de la présente invention exécuté en mode par lots dans le contexte du système 40, représenté à la FIG. 4, de test de dispositifs de calcul au niveau de la tranche. Comme représenté à la FIG. 5, le procédé de test du dispositif de calcul 47 en cours de test exige une première étape 51 de lancement d'un test par lots. Le procédé 50 inclut une deuxième étape 52 consistant à déterminer si le test est achevé. Si tel est le cas, le test par lots est fini. Dans le cas contraire, le procédé 50 inclut une étape 53 dans laquelle un test fonctionnel à base de microprogramme à exécuter est chargé dans un émulateur
de mémoire du testeur 41 de dispositifs de calcul.
Si le dispositif de calcul 47 en cours de test inclut une mémoire incorporée 49, le test fonctionnel à base de microprogramme y est chargé. Dans le cas contraire, le test fonctionnel à base de microprogramme est chargé dans l'émulateur 45 de mémoire du testeur 41 de dispositifs de calcul. Le test fonctionnel à base de microprogramme, désigné par MBFT à la FIG., peut être développé par un utilisateur ou être engendré automatiquement, ou être dérivé d'un test fonctionnel à base de microprogramme, à base de ROM. A une étape 54, la sonde 43 du système de calcul amène le test fonctionnel à base de microprogramme à être exécuté à vitesse réelle par le dispositif de calcul 47 en cours de test. Les résultats du test fonctionnel à base de microprogramme sont contrôlés à une étape 55. Un autre test fonctionnel à base de microprogramme peut ensuite être chargé. L'étape 52 est ensuite répétée pour déterminer si le test par lots est achevé. S'il ne l'est pas, les étapes 53 à 55 et ensuite 52 sont répétées jusqu'à ce que le dernier test fonctionnel à base de microprogramme, désigné par MBFT à la figure
ait été exécuté et que le test par lots soit achevé.
La FIG. 6 est un schéma logique qui représente le procédé de la présente invention, exécuté en mode interactif dans le contexte d'un système de test 40, selon la FIG. 4, d'un dispositif de calcul au niveau de la tranche. Comme représenté à la FIG. 6, le procédé de test du dispositif de calcul 47 en cours de test inclut une première étape facultative 61 de chargement d'un test fonctionnel à base de microprogramme sur l'hôte de test. Le test fonctionnel à base de microprogramme peut être développé par un utilisateur, être engendré automatiquement, ou être dérivé d'un test fonctionnel à base de microprogramme à base de ROM. Si l'étape 61 n'est pas mise en oeuvre, un opérateur peut entrer les instructions de test fonctionnel à base de microprogramme à partir d'un clavier à l'hôte 42 de test. Dans une étape 62, la sonde 43 du système de calcul détermine si des instructions de test fonctionnel à base de microprogramme doivent être exécutées. Si tel est le cas, l'instruction suivante de test fonctionnel à base de microprogramme est envoyée, à une étape 63, de
l'hôte 42 de test à la sonde 43 du système de calcul.
A une étape 64, l'instruction de test fonctionnel à base de microprogramme est envoyée de la sonde 43 du système de calcul au dispositif de calcul 47 en cours de test par l'intermédiaire de son port 48 de mise au point par émulation et est exécutée. Des résultats peuvent ensuite être facultativement être récupérés dans une étape 65. Les étapes 62 à 64 sont répétées jusqu'à ce qu'il n'existe plus aucune instruction de
test fonctionnel à base de microprogramme à exécuter.
Des résultats sont récupérés en utilisant la sonde 43 du système de calcul en conjonction avec le port 48 de mise au point du dispositif de calcul 47 en cours de test, ou par un autre type de dispositif d'entrée/sortie ou par observation d'un registre. Les résultats peuvent être analysés en utilisant des outils de mise au point et d'analyse de performances
qui résident sur l'hôte 42 de test.
La FIG. 7 est un schéma fonctionnel d'un système selon la présente invention, destiné à exécuter sur un dispositif de calcul un test fonctionnel à base de
microprogramme, au niveau de test de la carte/du MCM.
Le système 70 comprend un testeur 71 de carte et une carte/un MCM 65 en cours de test, qui inclut un dispositif de calcul pourvu d'un port de mise au point par émulation et d'un matériel associé 76. Au niveau de la carte/du MCM, ce qui est testé est la carte/le MCM 75 en cours de test qui incorpore un dispositif de calcul qui est pourvu d'un matériel de mise au point par émulation et d'un port de mise au point par émulation 76. Généralement, la carte/le MCM 75 en cours de test inclut une mémoire 78 et des dispositifs d'entrée/sortie 79, et le testeur 71 de carte n'exige donc ni mémoire d'émulation, ni dispositif d'entrée/sortie. Cependant, si la carte/le MCM 75 en cours de test doit faire partie ensuite d'un système plus grand, il se peut que le testeur 71 de carte
doive inclure d'autres émulateurs 81 de dispositifs.
Comme représenté à la FIG. 7, le testeur 71 de carte inclut un hôte 72 de test et une sonde 73 de système de calcul, comme ceux qui sont utilisés dans le mode de réalisation de la FIG. 3, et il peut également inclure d'autres émulateurs 81 de dispositifs. Si la carte/le MCM 75 en cours de test inclut une mémoire 78, un test fonctionnel à base de microprogramme peut être téléchargé dans la mémoire 78 à partir de l'hôte 72 de test par l'intermédiaire de la sonde 73 de système de calcul par le port 76 de mise au point et être exécuté directement à partir de cette mémoire. Le testeur 71 de carte peut inclure, pour compléter un ensemble de tests, d'autres procédés 74 de test, par exemple une analyse de frontières, un test en circuit, un test sans vecteur, un test fonctionnel et d'autres tests. La FIG. 8 est un schéma logique qui représente le procédé de mode par lots de la présente invention, dans le contexte d'un système de test 70, représenté à la FIG. 7, de dispositifs de calcul au niveau de la carte/du MCM, en supposant que la carte/le MCM 75 en cours de test inclut une mémoire 78 et que le test fonctionnel à base de microprogramme est téléchargé
dans la mémoire 78 et est exécuté à partir de celle-
ci. Comme représenté à la FIG. 8, le procédé 82 de test de la carte/du MCM en cours de test exige une première étape 83 de chargement, sur l'hôte de test, du test fonctionnel à base de microprogramme. Le test fonctionnel à base de microprogramme peut être développé par un utilisateur, être engendré automatiquement, ou être dérivé d'un test fonctionnel à base de microprogramme, à base de ROM. Dans une étape 84, le test fonctionnel à base de microprogramme est ensuite envoyé à la sonde 73 du système de calcul et est téléchargé dans la mémoire 78 de la carte/du MCM 75 en cours de test par l'intermédiaire d'un ordre de chargement envoyé au port 76 de mise au point par émulation. Dans une étape 85, un opérateur ou un interpréteur de commandes interactif de tests mis en oeuvre sur l'hôte 72 de test donne à la sonde 73 du système de calcul une instruction de commencer directement l'exécution du test fonctionnel à base de microprogramme à partir de la mémoire 78 de la carte/du MCM par l'intermédiaire d'un ordre d'exécution envoyé au port 76 de mise au point sur la carte/le MCM 75 en cours de test. Lorsque le test fonctionnel à base de microprogramme est achevé, des résultats du test fonctionnel à base de microprogramme sont récupérés dans une étape 86, soit par le port 76 de mise au point, soit par des registres d'observations, soit par un type quelconque de dispositif d'entrée/sortie. Les résultats peuvent ensuite être analysés en utilisant des outils de mise au point et d'analyse de performance. Selon les résultats des tests, un interpréteur de commandes interactif de test peut de plus être conçu pour fonctionner en boucle sur un test, se ramifier pour mettre en oeuvre un test différent en fonction de ce
qui s'est passé, ou passer en mode interactif.
Comme l'homme de l'art le comprend, la présente invention peut être distinguée de l'art antérieur de plusieurs manières. En premier lieu, le système et le procédé de l'invention sont mis en oeuvre pour appliquer des test fonctionnels à base de microprogrammes par l'intermédiaire d'une sonde du système de calcul à un dispositif de calcul en cours de test en utilisant son port de mise au point par émulation. Le port de mise au point par émulation et le matériel associé de mise au point par émulation sont utilisés dans la présente invention en tant que parties d'un instrument de test en cours de fabrication, ce qui n'est pas la fonction pour laquelle ils sont prévus. Plutôt que d'être utilisés pour développer et mettre au point des microprogrammes du système associés au dispositif de calcul, l'équipement de mise au point par émulation est utilisé, en substitution, pour commander l'exécution d'un test fonctionnel à base de microprogramme, au cours de la fabrication. De plus, l'invention applique la méthodologie du test autonome à code de niveau machine à tous les niveaux de l'intégration du circuit, y compris les niveaux de la tranche et du boîtier, ce qui n'était pas effectué jusqu'ici. Une application des tests fonctionnels à base de microprogrammes est virtuellement impossible, au niveau d'intégration de la tranche, à moins que la méthodologie de la présente invention ne soit utilisée. Alors que des modes de réalisation donnés à titre d'illustration et actuellement préférés de l'invention ont été décrits en détails ci-dessus, il faut comprendre que les concepts de l'invention peuvent être incorporés et employés de diverses façons dans
d'autres cas et que les revendications annexées
doivent être considérées comme incluant de telles variantes, compte tenu toutefois des limites résultant
de l'art antérieur.

Claims (26)

REVENDICATIONS
1. Système de test (30, 40, 70) en cours de fabrication pour tester un système de calcul (39, 75) comprenant un dispositif de calcul (36, 47) à capacités (37, 48, 76) de mise au point par émulation accessibles par l'intermédiaire d'un port (38, 48, 76) de mise au point par émulation, lesdits tests étant accomplis en appliquant des tests fonctionnels à base de microprogrammes audit dispositif de calcul (36, 47) par l'intermédiaire dudit port (38, 48, 76) de mise au point par émulation caractérisé en ce qu'il comprend: un test fonctionnel (35) à base de microprogramme; et une sonde (34, 43, 73) de système de calcul qui communique avec ledit dispositif de calcul (36, 47) par l'intermédiaire dudit port (38, 48, 76) de mise au point par émulation afin de commander une exécution et de modifier et récupérer des valeurs d'état internes du système de calcul; et en ce que ladite sonde (34, 43, 73) de système de calcul peut appliquer ledit test fonctionnel (35) à base de microprogramme audit système de calcul (36, 47) et commander l'exécution dudit test fonctionnel (35) à base de microprogramme par l'intermédiaire du port (38, 48, 76) de mise au point par émulation à chaque niveau de test d'intégration d'un système de calcul, y compris le niveau de la tranche, le niveau du boitier, le niveau de la carte, le niveau du module à
microplaquettes multiples, et le niveau du système.
2. Système (30, 40, 70) selon la revendication 1, caractérisé en ce que il comprend en outre un ordinateur hôte (32, 42, 72) de test, et en ce que ledit test fonctionnel (35) à base de microprogramme est envoyé dudit ordinateur hôte (32, 42, 72) de test à ladite sonde (34, 43, 73) du système
de calcul.
3. Système (30, 40, 70) selon la revendication 1 ou 2, caractérisé en ce que ledit test fonctionnel (35) à base de microprogramme est exécuté, une instruction de test fonctionnel à base de microprogramme à la fois, en envoyant une à la fois chacune desdites instructions à ladite sonde (34, 43, 73) du système de calcul et en amenant ladite sonde (34, 43, 73) de système de calcul à provoquer, par l'intermédiaire dudit port (38, 48, 76) de mise au point par émulation, l'exécution de chacune desdites instructions, une à la fois, par
ledit dispositif de calcul (36, 47).
4. Système (30, 40, 70) selon la revendication 1 ou 2, caractérisé en ce que ledit dispositif de calcul (36, 47) comprend une mémoire (49, 78) et en ce que ladite sonde (34, 43, 73) de système de calcul exécute ledit test fonctionnel (35) à base de microprogramme en téléchargeant dans ladite mémoire ledit test fonctionnel (35) à base de microprogramme au moyen d'un ordre de téléchargement de mise au point par émulation et amène ledit test fonctionnel (35) à base de microprogramme à être exécuté à partir de
ladite mémoire (49, 78).
5. Système (30, 40, 70) selon l'une des
revendications 1 à 4, caractérisé en ce que
ledit test fonctionnel (35) à base de microprogramme est dérivé du code, développé pour un test autonome incorporé à base de mémoire morte qui a été développé pour ledit dispositif de calcul (36, 47), cette dérivation s'effectuant par modification de ce code, addition à celui-ci ou enlèvement à partir de
celui-ci.
6. Système (30, 40, 70) selon la revendication 1, caractérisé en ce que les résultats de tests provenant de l'exécution dudit test fonctionnel (35) à base de microprogramme sont récupérés.
7. Système (30, 40, 70) selon la revendication 6, caractérisé en ce que lesdits résultats de tests sont récupérés à partir du dispositif de calcul (36, 47) par l'intermédiaire dudit port (38, 48, 76) de mise au
point par émulation.
8. Système (30, 40, 70) selon la revendication 6, caractérisé en ce que lesdits résultats de tests sont récupérés par l'intermédiaire d'un dispositif d'entrée sortie ou E/S.
9. Système (30, 40, 70) selon la revendication 6 caractérisé en ce que lesdits résultats de test sont récupérés en examinant le contenu d'un registre interne au système
de calcul (39, 75).
10. Système (30, 40, 70) selon la revendication 6, caractérisé en ce qu'il comprend en outre des outils de mise au point d'analyse de la
performance pour analyser lesdits résultats de test.
11. Système (30, 40, 70) selon l'une des
revendications 1 à 10 caractérisé en ce que
ledit test fonctionnel (35) à base de microprogramme peut être modifié sur la base desdits résultats de test pour produire une test fonctionnel modifié à base de microprogramme
12. Système (30, 40, 70) selon la revendication 11, caractérisé en ce que c'est ledit test fonctionnel modifié à base de microprogramme qui est utilisé comme test fonctionnel
(35) à base de microprogramme.
13. Procédé de test d'un système de calcul comprenant un dispositif de calcul à capacités de mise au point par émulation accessibles par l'intermédiaire d'un port de mise au point par émulation, lesdits tests étant réalisés en appliquant des tests fonctionnels à base de microprogrammes audit dispositif de calcul par l'intermédiaire dudit port de mise au point par émulation, caractérisé en ce qu'il comprend les étapes consistant à: (a) envoyer un test fonctionnel à base de microprogramme à une sonde du système de calcul, qui communique avec ledit dispositif de calcul par l'intermédiaire dudit port de mise au point par émulation; et (b) amener, au moyen d'ordres de mise au point par émulation, ledit dispositif de calcul à exécuter ledit test fonctionnel à base de microprogramme, ledit procédé pouvant être mis en oeuvre à chaque niveau de test d'intégration du dispositif de calcul, y compris le niveau de la tranche, le niveau du boîtier, le niveau de la carte, le niveau du module à
microplaquettes multiples et le niveau du système.
14. Procédé selon la revendication 13, caractérisé en ce que ledit test fonctionnel à base de microprogramme est envoyé à ladite sonde du système de calcul à
partir d'un ordinateur hôte de test.
15. Procédé selon la revendication 13, caractérisé en ce que ledit test fonctionnel à base de microprogramme est exécuté, une instruction de test fonctionnel à base de microprogramme à la fois, en envoyant une à la fois chacune desdites instructions à ladite sonde du système de calcul et en amenant ladite sonde du système de calcul à provoquer, par l'intermédiaire dudit port de mise au point par émulation, l'exécution de chacune desdites instructions, une à la fois, par
ledit dispositif de calcul.
16. Procédé selon la revendication 13, caractérisé en ce que ledit test fonctionnel à base de microprogramme est téléchargé dans une mémoire dudit système de calcul au moyen d'un ordre de téléchargement de mise au point par émulation et ledit test fonctionnel à base de microprogramme est exécuté à partir de ladite mémoire à réception d'un ordre d'exécuter, à partir de la mémoire, une
mise au point par émulation.
17. Procédé selon la revendication 13, caractérisé en ce qu'il comprend l'étape consistant à: (c) récupérer des résultats du test fonctionnel à
base de microprogramme.
18. Procédé selon la revendication 17, caractérisé en ce que lesdits résultats de test fonctionnel à base de microprogramme sont récupérés à partir du dispositif de calcul par l'intermédiaire dudit port de mise au
point par émulation.
19. Procédé selon la revendication 17, caractérisé en ce que lesdits résultats de test fonctionnel à base de microprogramme sont récupérés par l'intermédiaire d'un
dispositif d'entrée sortie.
20. Procédé selon la revendication 17 caractérisé en ce que lesdits résultats de test fonctionnel à base de microprogramme sont récupérés en examinant le contenu
d'un registre interne au système de calcul.
21. Procédé selon la revendication 17 caractérisé en ce qu'il comprend en outre l'étape consistant à: (d) analyser lesdits résultats de test fonctionnel à base de microprogramme en utilisant des outils de mise au point et d'analyse de la performance.
22. Procédé selon la revendication 17 caractérisé en ce qu'il comprend en outre l'étape consistant à: (e) ramifier pour mettre en oeuvre un test différent si lesdits résultats de test fonctionnel à base de microprogramme indiquent une telle condition de ramification
23. Procédé selon la revendication 17 caractérisé en ce qu'il comprend en outre l'étape consistant à: (f) ramifier pour mettre en oeuvre un test fonctionnel différent à base de microprogramme en mode interactif si lesdits résultats de test fonctionnel à base de microprogramme indiquent une telle condition de ramification
24. Procédé selon la revendication 17, caractérisé en ce qu'il comprend en outre l'étape consistant à: (g) modifier ledit test fonctionnel à base de microprogramme pour produire un test fonctionnel
modifié à base de microprogramme.
25. Procédé selon la revendication 24, caractérisé en ce que les étapes (a) à (c) sont répétées en utilisant comme test fonctionnel à base de microprogramme ledit
test fonctionnel modifié à base de microprogramme.
26. Procédé selon la revendication 13, caractérisé en ce que ledit test fonctionnel à base de microprogramme est dérivé d'un code développé pour un test autonome incorporé à base de mémoire morte, cette dérivation s'effectuant par modification de ce code,
addition à celui-ci ou enlèvement à partir de celui-
ci.
FR9715932A 1997-03-05 1997-12-16 Test fonctionnel de dispositifs de calcul en cours de fabrication utilisant des tests fonctionnels a base de microprogrammes appliques au moyen du port de mise au point par emulation propre au dispositif Expired - Fee Related FR2760534B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/811,852 US5937154A (en) 1997-03-05 1997-03-05 Manufacturing functional testing of computing devices using microprogram based functional tests applied via the devices own emulation debug port

Publications (2)

Publication Number Publication Date
FR2760534A1 true FR2760534A1 (fr) 1998-09-11
FR2760534B1 FR2760534B1 (fr) 2000-05-26

Family

ID=25207772

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9715932A Expired - Fee Related FR2760534B1 (fr) 1997-03-05 1997-12-16 Test fonctionnel de dispositifs de calcul en cours de fabrication utilisant des tests fonctionnels a base de microprogrammes appliques au moyen du port de mise au point par emulation propre au dispositif

Country Status (4)

Country Link
US (1) US5937154A (fr)
JP (1) JPH10269103A (fr)
FR (1) FR2760534B1 (fr)
GB (1) GB2324628B (fr)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134689A (en) * 1998-02-12 2000-10-17 Motorola Inc. Method of testing logic devices
US6317706B1 (en) * 1998-03-31 2001-11-13 Sony Corporation Simulation development tool for an embedded system
US6321349B1 (en) * 1998-06-30 2001-11-20 Compaq Computer Corporation Method and apparatus for developing and debugging portable computers via a peripheral interface slot
US6584590B1 (en) * 1999-08-13 2003-06-24 Lucent Technologies Inc. JTAG port-sharing device
US6868376B2 (en) * 2000-03-02 2005-03-15 Texas Instruments Incorporated Debug bi-phase export and data recovery
US6449576B1 (en) 2000-03-29 2002-09-10 International Business Machines Corporation Network processor probing and port mirroring
US6625758B1 (en) * 2000-06-26 2003-09-23 Advanced Micro Devices, Inc. Method and apparatus for automated system level testing
US20020006624A1 (en) * 2000-06-30 2002-01-17 Town Terence C. Method and assay for diagnosing substance dependency
US6874111B1 (en) * 2000-07-26 2005-03-29 International Business Machines Corporation System initialization of microcode-based memory built-in self-test
US6959257B1 (en) * 2000-09-11 2005-10-25 Cypress Semiconductor Corp. Apparatus and method to test high speed devices with a low speed tester
US6832345B2 (en) * 2001-06-04 2004-12-14 International Business Machines Corporation Method for coexistence and cooperation between system firmware and debug code
DE10148032A1 (de) * 2001-09-28 2003-04-24 Bosch Gmbh Robert Verfahren zum Überprüfen eines Rechnerkerns eines Mikroprozessors oder eines Mikrocontrollers
JP2003258618A (ja) * 2002-03-06 2003-09-12 Matsushita Electric Ind Co Ltd 論理エミュレーション装置
US7243059B2 (en) * 2003-04-24 2007-07-10 International Business Machines Corporation Simulation of hardware based on smart buffer objects
US7296187B1 (en) * 2003-07-14 2007-11-13 Zilog, Inc. Hardware debug device having script-based host interface
US6961674B2 (en) * 2003-08-11 2005-11-01 Hewlett-Packard Development Company, L.P. System and method for analysis of cache array test data
US20050134286A1 (en) * 2003-12-19 2005-06-23 Schneider Myron J. Systems and methods for defining acceptable device interconnect, and for evaluating device interconnect
US7313744B2 (en) * 2004-02-27 2007-12-25 International Business Machines Corporation Methods and apparatus for testing a scan chain to isolate defects
WO2006134411A1 (fr) * 2005-06-13 2006-12-21 Infineon Technologies Ag Procede integre d'epreuve automatique pour memoire a semi-conducteur
US7457999B2 (en) * 2005-06-28 2008-11-25 Intel Corporation Debug port system for control and observation
US7444572B2 (en) * 2005-09-01 2008-10-28 Tokyo Electron Limited Built-in self test for a thermal processing system
US20070162796A1 (en) * 2006-01-10 2007-07-12 Mediatek Inc. Method and portable device for testing electronic device
US7906982B1 (en) 2006-02-28 2011-03-15 Cypress Semiconductor Corporation Interface apparatus and methods of testing integrated circuits using the same
US20070279079A1 (en) * 2006-05-31 2007-12-06 Jianxiang Chang Multiple chip package test program and programming architecture
US7930165B2 (en) * 2008-02-07 2011-04-19 Accemic Gmbh & Co. Kg Procedure and device for emulating a programmable unit providing system integrity control
US8402446B2 (en) * 2009-11-30 2013-03-19 International Business Machines Corporation Associating probes with test cases
US8806446B2 (en) * 2010-03-22 2014-08-12 Analog Devices, Inc. Methods and apparatus for debugging programs in shared memory
US8799713B2 (en) * 2011-03-01 2014-08-05 Texas Instruments Incorporated Interruptible non-destructive run-time built-in self-test for field testing
DE102011112174B4 (de) * 2011-09-01 2022-03-31 Infineon Technologies Ag Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
US10776233B2 (en) 2011-10-28 2020-09-15 Teradyne, Inc. Programmable test instrument
US9759772B2 (en) 2011-10-28 2017-09-12 Teradyne, Inc. Programmable test instrument
CN102567160B (zh) * 2011-12-31 2014-05-21 公安部第三研究所 一种隔离卡内存清空检测测试工具
US9092567B2 (en) 2012-06-29 2015-07-28 Freescale Semiconductor, Inc. Systems and methods for analyzing transactions in a computer system
US9275757B2 (en) 2013-02-01 2016-03-01 Scaleo Chip Apparatus and method for non-intrusive random memory failure emulation within an integrated circuit
US10146607B2 (en) * 2013-11-26 2018-12-04 Anunta Technology Management Services Ltd. Troubleshooting of cloud-based application delivery
CN105139892B (zh) * 2015-09-23 2018-01-26 浪潮(北京)电子信息产业有限公司 一种应用于存储产品的数据驱动测试方法及***
US20240003972A1 (en) * 2022-06-30 2024-01-04 Ampere Computing Llc Method and system for testing semiconductor circuits
US12044728B2 (en) * 2022-08-05 2024-07-23 Dish Network L.L.C. Methods and systems for remote access hardware testing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0685793A2 (fr) * 1994-03-09 1995-12-06 Texas Instruments Incorporated Dispositif, système et procédé d'émulation avec commande décentralisée d'interface de test
US5477548A (en) * 1989-08-25 1995-12-19 U.S. Philips Corporation Method for testing an integrated circuit means having a hierarchical organization of at least three levels, and integrated circuit means and integrated circuit suitable for being so tested

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329471A (en) * 1987-06-02 1994-07-12 Texas Instruments Incorporated Emulation devices, systems and methods utilizing state machines
US4873705A (en) * 1988-01-27 1989-10-10 John Fluke Mfg. Co., Inc. Method of and system for high-speed, high-accuracy functional testing of memories in microprocessor-based units
US4868822A (en) * 1988-02-19 1989-09-19 John Fluke Mfg. Co., Inc. Memory emulation method and system for testing and troubleshooting microprocessor-based electronic systems
US4985893A (en) * 1989-03-03 1991-01-15 Daniel Gierke Circuit testing apparatus
US5581695A (en) * 1990-05-09 1996-12-03 Applied Microsystems Corporation Source-level run-time software code debugging instrument
US5271019A (en) * 1991-03-15 1993-12-14 Amdahl Corporation Scannable system with addressable scan reset groups
US5548713A (en) * 1991-10-15 1996-08-20 Bull Hn Information Systems Inc. On-board diagnostic testing
US5371883A (en) * 1993-03-26 1994-12-06 International Business Machines Corporation Method of testing programs in a distributed environment
US5561761A (en) * 1993-03-31 1996-10-01 Ylsi Technology, Inc. Central processing unit data entering and interrogating device and method therefor
JPH0795285A (ja) * 1993-09-24 1995-04-07 Uniden Corp コードレス電話装置
US5541862A (en) * 1994-04-28 1996-07-30 Wandel & Goltermann Ate Systems Ltd. Emulator and digital signal analyzer
US5537536A (en) * 1994-06-21 1996-07-16 Intel Corporation Apparatus and method for debugging electronic components through an in-circuit emulator
US5519715A (en) * 1995-01-27 1996-05-21 Sun Microsystems, Inc. Full-speed microprocessor testing employing boundary scan
US5539652A (en) * 1995-02-07 1996-07-23 Hewlett-Packard Company Method for manufacturing test simulation in electronic circuit design
US5544311A (en) * 1995-09-11 1996-08-06 Rockwell International Corporation On-chip debug port
US5771240A (en) * 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5477548A (en) * 1989-08-25 1995-12-19 U.S. Philips Corporation Method for testing an integrated circuit means having a hierarchical organization of at least three levels, and integrated circuit means and integrated circuit suitable for being so tested
EP0685793A2 (fr) * 1994-03-09 1995-12-06 Texas Instruments Incorporated Dispositif, système et procédé d'émulation avec commande décentralisée d'interface de test

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HABERL O F ET AL: "HIST: A HIERARCHICAL SELF TEST METHODOLOGY FOR CHIPS, BOARDS, AND SYSTEMS", JOURNAL OF ELECTRONIC TESTING, vol. 6, no. 1, 1 February 1995 (1995-02-01), pages 85 - 106, XP000504514 *
MATOS J S ET AL: "A BOUNDARY SCAN TEST CONTROLLER FOR HIERARCHICAL BIST", PROCEEDINGS OF THE INTERNATIONAL TEST CONFERENCE, BALTIMORE, SEPT. 20 - 24, 1992, no. CONF. 23, 20 September 1992 (1992-09-20), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 217 - 223, XP000348756 *

Also Published As

Publication number Publication date
US5937154A (en) 1999-08-10
GB9804595D0 (en) 1998-04-29
GB2324628B (en) 2001-08-15
FR2760534B1 (fr) 2000-05-26
JPH10269103A (ja) 1998-10-09
GB2324628A (en) 1998-10-28

Similar Documents

Publication Publication Date Title
FR2760534A1 (fr) Test fonctionnel de dispositifs de calcul en cours de fabrication utilisant des tests fonctionnels a base de microprogrammes appliques au moyen du port de mise au point par emulation propre au dispositif
CN113330322B (zh) 使用片上***测试控制器的自动化测试设备
EP0642683B1 (fr) Procede et plate-formes de test pour le developpement d&#39;un circuit integre
US7237161B2 (en) Remote integrated circuit testing method and apparatus
US5694402A (en) System and method for structurally testing integrated circuit devices
US10768230B2 (en) Built-in device testing of integrated circuits
US10997343B1 (en) In-system scan test of chips in an emulation system
EP1593982B1 (fr) Contrôle de la robustesse d&#39;une modélisation d&#39;un système physique
CN110245064A (zh) 对象测试方法及其***、计算机***及计算机可读介质
CN111831573A (zh) 代码分支覆盖情况的确定方法、装置、计算机***和介质
EP1716425B1 (fr) Procede d elaboration de fichiers de description hdl de systemes digitaux et systemes obtenus
CN109885438A (zh) 一种fpga可靠性测试方法、***、终端及存储介质
EP3625579B1 (fr) Appareil de test et procede de test d&#39;un circuit integre
FR2888014A1 (fr) Procede et dispositif pour determiner l&#39;emplacement de defauts de collage dans des chaines de cellules utilisant des chaines de test
US20170261556A1 (en) Clock path technique for using on-chip circuitry to generate a correct encode pattern to test the on-chip circuitry
US7607057B2 (en) Test wrapper including integrated scan chain for testing embedded hard macro in an integrated circuit chip
US11156660B1 (en) In-system scan test of electronic devices
US9915701B2 (en) Bypassing an encoded latch on a chip during a test-pattern scan
US20180136273A1 (en) Method and Apparatus for Offline Supported Adaptive Testing
FR2548382A1 (fr) Dispositif de test de circuit numerique
CN114325294B (zh) 测试方法和装置
US20230035157A1 (en) Logic built-in self-test of an electronic circuit
EP1387270B1 (fr) Procédé et système de reconnaissance automatique de configurations de simulations d&#39;un circuit intégré
FR2733324A1 (fr) Procede et equipement de test automatique en parallele de composants electroniques
Bernardi et al. An novel methodology for reducing SoC test data volume on FPGA-based testers

Legal Events

Date Code Title Description
TP Transmission of property
ST Notification of lapse