FR2815722A1 - Commande sequentielle de suites de balayages pour tester des circuits integres - Google Patents

Commande sequentielle de suites de balayages pour tester des circuits integres Download PDF

Info

Publication number
FR2815722A1
FR2815722A1 FR0113588A FR0113588A FR2815722A1 FR 2815722 A1 FR2815722 A1 FR 2815722A1 FR 0113588 A FR0113588 A FR 0113588A FR 0113588 A FR0113588 A FR 0113588A FR 2815722 A1 FR2815722 A1 FR 2815722A1
Authority
FR
France
Prior art keywords
scan
data
sequence
length
test
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
FR0113588A
Other languages
English (en)
Other versions
FR2815722B1 (fr
Inventor
Jamie S Cullen
Burnell G West
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.)
Schlumberger Technologies Inc
Original Assignee
Schlumberger Technologies Inc
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 Schlumberger Technologies Inc filed Critical Schlumberger Technologies Inc
Publication of FR2815722A1 publication Critical patent/FR2815722A1/fr
Application granted granted Critical
Publication of FR2815722B1 publication Critical patent/FR2815722B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318544Scanning methods, algorithms and patterns
    • G01R31/318547Data generators or compressors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318583Design for test
    • G01R31/318586Design for test with partial scan or non-scannable parts
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31919Storing and outputting test patterns
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31919Storing and outputting test patterns
    • G01R31/31921Storing and outputting test patterns using compression techniques, e.g. patterns sequencer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

Le module pour une commande séquentielle comprend une mémoire (11) pour les données d'une suite de balayages incluant des segments de données de balayage, un contrôleur de mémoire (9) couplé à la mémoire et des contrôleurs de suites (17 19, 21) couplé au contrôleur de mémoire (9) pour la transmission de bits de segments de données de balayage ou de bits de données fictifs à un dispositif testé, d'une manière déterminée par une table de liaison. Application notamment au test de circuits intégrés.

Description

<Desc/Clms Page number 1>
Figure img00010001
La présente invention concerne le test de circuits intégrés et le test, basé sur une exploration par balayage, de circuits intégrés.
L'utilisation de techniques basées sur une exploration par balayage pour tester des circuits intégrés (IC) est devenue essentielle étant donné que la densité des composants de circuits intégrés (par exemple des transistors) a augmenté. Une raison à cet égard est que du fait de contraintes du point de vue taille, la densité des composants a largement dépassé le nombre de connecteurs électriques, désignés de façon typique comme étant des broches d'entrée/sortie, aptes à être incorporées dans un circuit intégré.
Ainsi dans un appareil servant à tester des circuits, qui teste la fonctionnalité de circuits intégrés par l'intermédiaire d'un nombre limité de bornes, on a de plus en plus de difficultés à atteindre de façon adéquate le nombre important de permutations d'états et de transitions prévues pour une intégration accrue. Il en résulte que des circuits intégrés modernes sont équipés de façon typique d'éléments logiques pouvant être explorés par balayage, de manière à faciliter le test. Un circuit intégré typique pouvant être exploré par balayage (ou scanné) inclut un ou plusieurs ensembles d'éléments de maintien d'états (registres) intercalés entre des composants du circuit et/ou entre des composants du circuit et des broches d'entrée/sortie. Pendant un fonctionnement normal, les éléments de maintien d'état sont transparents pour ou incorporés en tant que parties de la fonctionnalité du circuit intégré ; dans le mode de test, ils peuvent être configurés sous la forme d'un registre à décalage série ou d'une"chaîne de : balayage" de façon typique au moyen de la liaison de la sortie d'un élément de maintien d'état à l'entrée d'un autre. La"chaîne de balayage" permet de transférer en série des données de test de balayage dans et hors des éléments de maintien d'état par l'intermédiaire d'une ou de plusieurs bornes d'entrée/sortie, ce qui augmente les états pouvant être atteints par un appareil effectuant le test. Des chaînes de balayage disposées de façon stratégique permettent également à un appareil effectuant le test de cibler un ou plusieurs modules internes (par exemple un groupe fonctionnel de transistors peut effectuer un test individualisé ; dans ces situations, de façon typique seule une partie de la chaîne de balayage devant exécuter le test est remplie de données de balayage. Habituellement, le nombre et la longueur
<Desc/Clms Page number 2>
Figure img00020001

v de chaînes de balayage peuvent varier pour chaque dispositif, mais de façon typique sont compris entre vingt et une centaine, et une longueur atteignant jusqu'à un millier ou plus d'éléments interconnectés de maintien d'état. De nombreux dispositifs comportant une seule chaîne de balayage ont été fabriqués.
Lors d'un test typique de circuits, un appareil effectuant le test applique des profils de signaux numériques aux broches d'un dispositif soumis au test ("DUT"). Le contenu, la séquence et le cadencement des profils de test sont indépendants de l'architecture du dispositif DUT particulier et sont produits de façon typique par le fabricant de dispositifs DUT avec le logiciel de conception des circuits intégrés utilisé pour désigner le dispositif DUT. Il existe deux types prédominants de profils de test utilisés dans l'art antérieur : profils de test de balayage et profils de test fonctionnels. Les profils de test de balayage sont des profils binaires utilisés pour tester des états sélectionnés dans une chaîne de balayage de dispositifs DUT ; des profils fonctionnels sont des profils binaires appliqués de façon typique en parallèle aux bornes d'entrée du dispositif DUT pour tester la fonctionnalité au niveau des bornes. Il existe trois types prédominants de profils de test de balayage dans l'art antérieur : un profil entré par balayage, un profil de sortie de balayage et un profil de masque de balayage. Le profil entré par balayage est la séquence de bits qui est transférée en série dans une chaîne de balayage pour configurer le circuit intégré en l'amenant dans un état de départ connu. Le profil de sortie de balayage est la séquence de bits contenant les états attendus dans une chaîne de balayage qui résulte du traitement du profil entrée par balayage du dispositif DUT. Le profil de masque de balayage est un profil binaire utilisé pour séparer par filtrage des états devant être ignorés dans un test particulier.
Les étapes dans une itération de test de balayage typique sont les suivantes : (1) l'appareil effectuant le test place le dispositif DUT dans un mode de test de balayage pour configurer la logique pouvant être scannée en une chaîne de balayage ; (2) l'appareil effectuant le test décale en série un profil entré par balayage dans la chaîne de balayage avec un signal d'horloge de balayage par l'intermédiaire d'une ou de plusieurs broches du dispositif DUT ; 3) l'appareil effectuant le test commute le dispositif DUT
<Desc/Clms Page number 3>
Figure img00030001

sur un mode normal et applique un ou plusieurs signaux d'horloge du système au dispositif DUT en combinaison avec un ou plusieurs profils fonctionnels sur les broches d'entrée du dispositif DUT ; 4) le dispositif DUT traite les états de test dans la chaîne de balayage et les broches d'entrée ; 5) l'appareil effectuant le test teste les états présents sur les broches de sortie, puis commute en retour le dispositif DUT sur le mode de test de balayage ; 6) l'appareil effectuant le test délivre en série, de façon cadencée, les états de la chaîne de suites avec un signal d'horloge de balayage pour la comparaison à un profil de sortie de balayage contenant les résultats attendus, en ignorant des états tels qu'indiqués par le profil de masque de balayage ; et 7) l'appareil effectuant le test réalise un décalage en série dans un nouveau profil entré par balayage, avec la même horloge de balayage, et répète les étapes indiquées précédemment.
Dans l'art antérieur, une solution "monolithique" pour la mémorisation et le traitement de profils de balayage est une solution prédominante.
Dans cette solution, tous les profils de balayage utilisés dans une séquence de tests sont mémorisés, de façon typique, dans un ordre séquentiel dans un bloc contigu de la mémoire de l'appareil effectuant le test, en des longueurs de bits correspondant, du point de vue longueur, aux chaînes de balayage, en étant conçues pour peupler ces chaînes. Par conséquent l'appareil effectuant le test doit simplement connaître l'adresse de départ du bloc contigu de profils de balayage pour exécuter une séquence de tests de balayage sur un dispositif DUT, et des contrôleurs de données de balayage sont limités de façon typique dans la récupération de données, à un procédé direct, c'est-à-dire qu'ils sont capables uniquement de récupérer des mots de données selon une séquence monolithique. Il existe un certain nombre d'inconvénients dans cette solution. Tout d'abord, des dispositifs DUT testés modernes peuvent mettre en oeuvre des chaînes de balayage d'une longueur considérable lorsque seule une sous-section spécifique d'une chaîne de balayage requiert un peuplement pour un test particulier. Dans une solution monolithique, un bloc d'une mémoire de balayages correspondant à la longueur de la chaîne de balayage doit être peuplée indépendamment du fait que seule une partie de la chaîne de balayage doit être peuplée. Ceci crée un espace inutilisé ("espace mort") dans la mémoire avant et après la
<Desc/Clms Page number 4>
Figure img00040001

r partie pertinente de données de balayage (l'espace mort est de façon typique rempli par des"données fictives"constituées par des blocs de zéros). L'espace mort est coûteux en raison des exigences élevées du point de vue mémoire d'un appareil effectuant les tests et des chaînes de balayages éventuellement étendues utilisées ; par exemple, des appareils modernes effectuant des tests peuvent utiliser quelques douzaines de broches participant à un test parmi plusieurs dizaines de milliers de profils de test faisant intervenir des chaînes de balayage avec une profondeur dépassant mille éléments de maintien d'état. En second lieu, les configurations de balayage particuliers peuvent être répétées. Dans la solution monolithique, lesdits profils de balayage particuliers doivent être écrits en mémoire chaque fois qu'ils apparaissent dans la séquence, ce qui crée la possibilité d'une redondance des données. Enfin, il est souvent souhaitable d'effectuer une nouvelle commande séquentielle de profils de balayage dans la nouvelle séquence de tests. Dans la solution monolithique, ceci manque d'un certain niveau d'adressage indirect, le nouveau séquencement requiert qu'une séquence de tests entièrement nouvelle soit créée et téléchargée en tant que bloc dans une partie contiguë de la mémoire. Ceci introduit une complexité excessive et un temps de traitement excessif pour le nouveau séquencement.
La présente description a trait à des dispositifs et des procédés pour, entre autres choses, à réduire les exigences du point de vue capacité de balayage pour des appareils effectuant des tests par exploration par balayage, effectuer d'une manière efficace un nouveau séquencement efficace de tests de balayage, et imbriquer des données de balayage pour réaliser une sauvegarde de durée de test. Dans une forme de réalisation, un dispositif et un procédé sont prévus pour améliorer la mémorisation et le traitement de données de balayage en permettant la mémorisation de données de balayage dans une mémoire de balayages, sans les séquences de données fictives substantielles, qui sont typiques dans des techniques"monolithiques" de tests par balayage et de mémorisation ; ceci est obtenu par mémorisation de données de balayage non fictives ("segments de données de balayage") dans des segments séparés dans une mémoire de balayages. Le traitement de segments de données de balayage est commandé par des pointeurs des
<Desc/Clms Page number 5>
Figure img00050001

v-----segments de données de balayage, qui sont organisés dans une structure de données à table de liaisons ("table de liaisons"). Dans une autre forme de réalisation chaque pointeur de segment de données de balayage est affecté à une ligne séparée dans la table de liaisons. Ce procédé de stockage permet de réduire de manière substantielle le volume de la mémoire de balayages, ce qui réduit les coûts de test. En outre, un nouveau séquencement des données de balayage-qui, dans des techniques typiques de balayage "monolithique"nécessitait que les données de balayage elles-mêmes soient entièrement reséquencées et réécrites dans la mémoire de balayagespeuvent maintenant être exécutée par un nouveau séquencement de données de pointeurs dans la table de liaisons ; par conséquent seules des tables de liaisons et des données associées nécessitent d'être reséquencées et réécrites dans une mémoire-pas les données de balayage elles-mêmes-ce qui conduit à une économie du point de vue temps de test et coût. Dans une autre forme de réalisation, il est prévu un procédé permettant d'imbriquer, pendant le test, des segments de données de balayage (de longueur variable) ; ceci est obtenu par retardement du traitement de chaque segment de données de balayage en fonction d'une valeur de retard prédéterminée. Il est prévu un procédé pour calculer des valeurs de retard, qui optimise la quantité de données de balayage qui peut être traitée simultanément. L'imbrication des données de balayage tout en effectuant un test de balayage permet de faire une économie de ce temps de test et par conséquent sur le coût de test.
Dans certaines formes de réalisation, un drapeau de données de balayage immédiates est associé à un pointeur de segments de données de : balayage qui, s'il est positionné, change le mode dans lequel les données de la table de liaisons sont traitées. Si le drapeau de données de balayage immédiates est positionné, des contrôleurs de suites traitent des lignes de la table de liaisons comme comportant deux zones : une zone de données et une zone formant compteur. La zone de données contient le segment de données de balayage lui-même, contrairement à un pointeur désignant le segment de données de balayage dans la mémoire, et une zone formant compteur contenant une valeur de répétition pour indiquer avec quelle fréquence le segment de données de balayage doit être traité successivement
<Desc/Clms Page number 6>
Figure img00060001

lorsqu'il est sorti par balayage par les contrôleurs de suites. Le traitement de données de balayage immédiates permet d'éviter une opération d'extraction de mémoire de balayages, ce qui conduit à une économie coût de traitement de balayage et de temps. Dans une autre forme de réalisation, une ligne de la table de liaisons contient un drapeau d'invalidation de balayage qui, lorsqu'il est positionné, empêche que des données soient envoyées en direction de la broche respective du dispositif DUT pendant le traitement de cette ligne. Dans une autre forme de réalisation, le positionnement du drapeau d'invalidation de balayage empêche que des données soient entraînées vers la broche du dispositif DUT pour le reste de la suite de balayages. L'invalidation de données de balayage à partir de certaines broches du dispositif DUT est quelquefois utile pour empêcher une accumulation de chaleur excessive dans le dispositif DUT ; une chaleur excessive peut endommager le dispositif DUT ou conduire à des résultats de test erronés. La modulation de données de balayage à partir de certaines broches du dispositif DUT peut être également utile pour des concentrations d'un test de balayage sur une partie particulière du dispositif, ce qui permet de réaliser une économie sur la durée d'analyse des données.
De façon plus précise, l'invention concerne un procédé pour traiter une séquence de données de test de balayage pour tester un dispositif comprenant des circuits, caractérisé en ce qu'il comprend les étapes opératoires consistant à : - séparer la séquence de données de test de balayage par balayage en au moins deux suites de balayage, chaque suite de balayages comprenant une séquence de segments de données de balayage, et - pour chaque suite de balayages : - mémoriser différents segments de données de balayage d'une manière contiguë dans une mémoire ; - délivrer une information de traitement associée à chaque segment de données de balayage, et tester le dispositif formé de circuits par application de la séquence de segments de données de balayage à ce dispositif.
<Desc/Clms Page number 7>
Figure img00070001

Selon une caractéristique de l'invention, le procédé comprend en outre l'étape consistant à prévoir un pointeur pour chaque segment de données de balayage dans l'information de traitement associée au segment de données de balayage.
Selon une caractéristique de l'invention, le procédé comprend en outre l'étape consistant à ranger séquentiellement les pointeurs dans le même ordre que la séquence de segments de données de balayage.
Selon une caractéristique de l'invention, le procédé comprend en outre l'étape consistant à équiper chaque pointeur de l'adresse de départ dans la mémoire du segment de données de balayage associé au pointeur.
Selon une caractéristique de l'invention, le procédé comprend en outre l'étape consistant à séparer la séquence de données de test de balayage en au moins une suite entrée par balayage entrant et une suite de sortie de balayage, la suite entrée par balayage comprenant une séquence de segments de données entrés par balayage, que la suite de sortie de balayage inclut une séquence de segments de données de sortie de balayage.
Selon une caractéristique de l'invention, le procédé comprend en outre l'étape consistant à séparer la séquence de données de test de balayage en au moins une suite entrée par balayage et une suite de sortie de balayage, la suite entrée par balayage incluant une séquence de segments de données entrés par balayage, et la suite de sortie de balayage inclut une séquence de segments de données de sortie de balayage.
Selon une caractéristique de l'invention, le procédé comporte en outre l'étape consistant à séparer la séquence de données de test de balayage en une suite de masques de balayage incluant une séquence de segments de données de masques de balayage.
Selon une caractéristique de l'invention, le procédé comprend en outre l'étape consistant à : - pour chaque segment de données de balayage, calculer au moins une valeur de retard de traitement, et - pour chaque intervalle de balayage, imbriquer le traitement des segments de données de balayage au moyen d'un cadencement du traitement des segments de données de balayage en fonction de la
<Desc/Clms Page number 8>
Figure img00080001

valeur de retard de traitement de chaque segment de données de balayage.
Selon une caractéristique de l'invention, le procédé comprend en outre l'étape consistant à affecter la valeur de retard de traitement calculée pour chaque segment de données de sortie de balayage dans la séquence de segments de données de sortie de balayage, à chaque segment de données de masque de balayage correspondant dans la séquence de segments de données de masque de balayage.
Selon une caractéristique de l'invention, le procédé comprend en outre l'étape consistant à calculer la valeur de retard de traitement pour un segment de données de balayage dans un intervalle actuel de balayage par alignement du segment suivant de données entrées par balayage de manière qu'il soit entièrement balayé lors du dernier cycle d'horloge de balayage de l'intervalle de balayage actuel, et par alignement du début des données actuelles de sortie de balayage dans le premier cycle d'horloge de balayage de l'intervalle de balayage actuel, la longueur de l'intervalle de balayage actuel étant supérieure à la longueur de données suivantes entrées par balayage et de la longueur des données actuelles de sortie de balayage.
Selon une caractéristique de l'invention, le procédé comprend en outre l'étape consistant à associer une longueur de bloc de début et une longueur de bloc de fin à chaque valeur de retard de traitement.
Selon une caractéristique de l'invention, le procédé comprend en outre les étapes consistant à - déterminer si l'information de traitement associée au segment de données de balayage est égale à une ou plusieurs premières valeurs prédéterminées, et - si l'information de traitement associée au segment de données de balayage est égale à la première valeur prédéterminée, traiter alors la suite de balayages séquentiellement à partir d'un bloc contigu de la mémoire en partant d'un emplacement dans la mémoire indiqué par le pointeur associé au segment de données de balayage.
Selon une caractéristique de l'invention, le procédé comprend en outre les étapes consistant à
<Desc/Clms Page number 9>
Figure img00090001

- déterminer si la longueur du segment de données de balayage, la longueur du bloc de départ et la longueur du bloc d'extrémité pour le segment de données de balayage est égale à une ou plusieurs premières valeurs prédéterminées, et si la longueur du segment de données de balayage, la longueur du bloc de départ et la longueur du bloc de fin pour un segment de données de balayage est égale à la première valeur prédéterminée, traiter alors la suite de balayages d'une manière séquentielle à partir d'un bloc contigu de la mémoire en partant d'un emplacement situé dans la mémoire et indiqué par le pointeur associé au segment de données de balayage.
Selon une caractéristique de l'invention, le procédé comprend en outre les étapes consistant à - associer un premier indicateur à chaque segment de données de balayage, - déterminer si le premier indicateur est égal à une seconde valeur prédéterminée, et - si le premier indicateur est égal à la seconde valeur prédéterminée, traiter alors le segment de données de balayage à partir de l'information incluse dans l'information de traitement associée au segment de données de balayage.
Selon une caractéristique de l'invention, le procédé comprend les étapes consistant à - associer un premier indicateur et un second indicateur à chaque segment de données de balayage, - déterminer si le premier indicateur est égal à une seconde valeur prédéterminée, - si le premier indicateur est égal à la seconde valeur prédéterminée, alors : - déterminer si le second indicateur est égal à la troisième valeur prédéterminée, et
<Desc/Clms Page number 10>
Figure img00100001

si le second indicateur est égal à la première valeur prédéterminée, alors : - récupérer un nombre de répétitions à partir de l'information incluse dans l'information de traitement associée au segment de données de balayage ; et - traiter le segment de données de balayage à partir de l'information incluse dans l'information de traitement associée au segment de données de balayage successivement certain nombre de fois égal au nombre de répétitions avant de traiter un segment de données de balayage suivant dans la séquence de segments de données de balayage.
L'invention concerne également un procédé de traitement d'une séquence de données de test de balayage pour tester un dispositif formé de circuits, caractérisé en ce qu'il comprend les étapes consistant à diviser la séquence de données de test de balayage en une première suite de balayages incluant une séquence de segments de données entrées par balayage, et une seconde suite de balayages, incluant une séquence de segments de données de sortie de balayage, et - pour chaque suite de balayages : - mémoriser de façon contiguë les différents segments de données de balayage dans une mémoire, - prévoir une information de traitement incluant un pointeur désignant chaque segment de données de balayage dans la mémoire, et tester le dispositif formé de circuits par application, à ce dispositif, de la séquence de segments de données de balayage, et pour chaque segment de données de balayage : calculer au moins une valeur de retard de traitement, la valeur du retard de traitement pour un segment de données de balayage dans un intervalle de balayage actuel étant calculée par alignement du segment de données
<Desc/Clms Page number 11>
Figure img00110001

suivantes entrées par balayage de sorte qu'il est entièrement balayé sur le dernier cycle d'horloge de balayage de l'intervalle de balayage actuel, et aligner le début des données actuelles de sortie de balayage du premier cycle d'horloge de balayage de l'intervalle de balayage actuel, la longueur de l'intervalle de balayage actuel étant supérieure à la longueur de données suivantes entrées par balayage et à la longueur de données actuelles de sortie de balayage, et associer la valeur de retard de traitement au segment de données de balayage dans l'information de traitement, pour chaque intervalle, imbriquer le traitement des segments de données de balayage par commande cadencée du traitement des segments de données de balayage en fonction de la valeur de retard de traitement de chaque segment de données de balayage.
L'invention concerne en outre un de commande séquentielle de balayage pour un appareil servant à tester des circuits intégrés, caractérisé en ce que le module de commande séquentielle de balayage comprend : - au moins une mémoire qui mémorise des données d'une suite de balayages, les données de la suite de balayages incluant une séquence de segments de données de balayage et des données associées d'une table de liaisons, - au moins un contrôleur de mémoire couplé à la mémoire, ce qui a pour effet que des segments de données de balayage sont reçus depuis la mémoire comme cela est déterminé par la donnée de la table de liaison, et - au moins un contrôleur de suites couplé au contrôleur de mémoire, ce qui a pour effet que des bits de segments de données de balayage ou des bits de données fictifs sont transmis à un dispositif soumis au test, de la manière déterminée par les données de la table de liaisons.
Selon une autre caractéristique de l'invention, le au moins un tampon de données est branché entre le contrôleur de suites et le contrôleur de la mémoire de balayages.
<Desc/Clms Page number 12>
Figure img00120001
Se) Selon une autre caractéristique de l'invention, le module de : commande séquentielle de balayage comporte en outre un séquenceur global couplé aux contrôleurs de suites, ce qui a pour effet que des données de balayage sont transmises par les contrôleurs de suites en réponse à chaque signal d'incrément de balayage reçu de la part du séquenceur global.
D'autres caractéristiques et avantages de la présente invention ressortiront de la description donnée ci-après prise en référence aux dessins annexés, sur lesquels : la Figure 1 est un schéma-bloc d'un système de test utilisant un processeur par broche, conforme à une forme de réalisation la Figure 2 est un schéma-bloc d'un module de traitement de suites de balayages conformément à une forme de réalisation ; la Figure 3 est un schéma-bloc d'une structure de données d'une table de liaisons conformément à une forme de réalisation ; la Figure 4 représente un dispositif DUT comportant un dispositif DUT avec une chaîne de balayage constituée de quatre modules reliés la Figure 5 est un organigramme illustrant une procédure de calcul des valeurs de longueurs de blocs entrés par balayage pour une structure de données de tables de liaisons entrées par balayage conformément à une forme de réalisation ; la Figure 6 est un organigramme illustrant une procédure de calcul des valeurs de longueurs de blocs de sortie de balayage pour une structure de données d'une table de liaisons de sortie de balayage conformé- ment à une forme de réalisation ; et la Figure 7 illustre l'imbrication de trois suites de balayages dans une échelle de temps d'horloge de balayage selon une forme de réalisation.
Dans un test typique par balayage, les fils de l'appareil effectuant le test sont connectés aux broches d'un dispositif testé DUT et sont utilisés pour transférer des données entre l'appareil effectuant le test et le dispositif DUT. Dans une séquence typique de test de balayage, l'appareil effectuant : le test commute le dispositif DUT d'un mode normal à un mode de balayage (des éléments de maintien d'état sont configurés pour former une
<Desc/Clms Page number 13>
Figure img00130001

r chaîne de balayage) et remplit une ou plusieurs chaînes de balayages d'un dispositif DUT avec des données de balayage par l'intermédiaire d'une ou plusieurs broches prédéterminées (telles qu'elles sont déterminées par l'architecture du dispositif DUT) ; de façon typique des données de balayage sont transférées à une cadence d'un bit par cycle de cadence de balayage. Après avoir rempli la chaîne de balayage, l'appareil effectuant le test amène le dispositif DUT du mode de balayage au mode normal et effectue le traitement pour appliquer des données de test d'entrée en parallèle à des broches prédéterminées dans le dispositif DUT. Le dispositif DUT traite alors les données de balayage dans la chaîne de balayage pendant un ou plusieurs cycles d'horloge avant que l'appareil effectuant le test commute à nouveau le dispositif DUT du mode normal au mode de balayage. Une fois revenu dans le mode de balayage, l'appareil effectuant le test extrait les données de balayage maintenant traitées, de la chaîne de balayage par l'intermédiaire d'une broche prédéterminée (telle qu'elle est déterminée par l'architecture du dispositif DUT). Pendant le processus de récupération, de façon typique l'appareil effectuant le test compare en série les données de balayage récupérées à des données mémorisées dans l'appareil effectuant le test et qui sont constituées par des résultats attendus.
De cette manière, des résultats inattendus sont marqués et traités, et les problèmes présents dans le circuit intégré sont diagnostiqués. L'appareil effectuant le test peut en outre traiter une séquence de données de masque en série ou un"masque de balayage" pour amener l'appareil effectuant le test à ignorer le traitement d'un résultat de test particulier. Dans le cadre de la présente description, l'expression "données de balayage" se réfère à l'ensemble de quatre types de données décrites précédemment : des données introduites par balayage dans un dispositif DUT ("données entrées par balayage"), des données situées dans la chaîne de balayage traitée par le dispositif DUT dans le mode de test, puis récupérées par l'appareil effectuant le test ("données de balayage traitées"), les données utilisées par l'appareil effectuant le test pour calculer les données de balayage traitées avec des résultats attendus ("données de sortie de balayage"), et des données utilisées pour indiquer si les résultats d'un test particulier sont ignorées ("données de masque de balayage"). Les définitions supplé-
<Desc/Clms Page number 14>
Figure img00140001

r mentaires suivantes s'appliquent à la description. "Balayage" désigne le procédé selon lequel un appareil effectuant le test traite en série des données de balayage."Itération du test de balayage" se réfère à l'événement consistant en une introduction par balayage, de données introduites par balayage, dans une chaîne de balayage, moyennant l'activation du dispositif DUT en mode normal, et la sortie par balayage des données de balayage traitées pour leur comparaison à des données de sortie de balayage."Segment de données de balayage"désigne un profil binaire continu non pourvu d'un bourrage (aucune donnée fictive formée de zéros), un profil binaire continu qui constitue d'une manière générale soit les données introduites par balayage, soit les données de sortie de balayage soit un masque de balayage pour une seule itération du test de balayage.
Dans une forme de réalisation, trois types de segments de données de balayage nécessaires pour exécuter un test par balayage sont mémorisés dans la mémoire de balayage : un segment de données introduites par balayage, un segment de données de sortie de balayage et un segment de données de masque de balayage. Fréquemment un segment de données de balayage est conçu de manière à remplir ou tester uniquement un sousensemble d'une chaîne de balayage ; dans ce cas, le segment donné de balayage se réfère de façon typique aux données de balayage dans la partie formant cible testée, tandis que la chaîne de balayage est remplie de façon typique par des données fictives (par exemple les groupes de zéros ou de n'importe quelle autre valeur prédéterminée)."La suite de balayages" désigne d'une manière générale une séquence continue de bits de séquences de données de balayage et de données fictives nécessaires pour exécuter une séquence de tests par balayage.
La Figure 1 représente un schéma-bloc d'un système 2 de test de circuits intégrés, un processeur par broche (appareil effectuant le test plus dispositif testé DUT) conformément à une forme de réalisation. Le système
Figure img00140002

de test 2 possède une architecture classique à un processeur par broche, p chaque broche du dispositif DUT 9 étant connecté à un conducteur de sortie d'un séquenceur local 5N possédant de façon typique un seul processeur. Chaque séquenceur local SA,..., 5N peut être programmé individuellement de manière à envoyer des signaux de test numériques au
<Desc/Clms Page number 15>
Figure img00150001

dispositif testé DUT 9 indépendamment des signaux appliqués par les autres séquenceurs locaux 5N. Chaque séquenceur local 5A,..., 5N est associé à une broche (borne) dans le dispositif DUT. Les séquenceurs locaux 5A,....
5N sont coordonnées par des profils de cadencement et des instructions reçues par l'intermédiaire du bus 7 de transmission de données de l'unité centrale CPU à partir d'un séquenceur global programmable 1. Le module de suite de balayages 3 est connecté au bus 2 de transmission de données de l'unité centrale CPU pour fournir une fonctionnalité de test de balayage au système de test 2. Le brevet U. S. NO 5 122 988 attribué en commun décrit un exemple de l'architecture générale d'un appareil effectuant le test a un processeur par broche (sans fonctionnalité de test par balayage) et est incorporé ici par référence. L'appareil effectuant le test de la Figure 1 est formé d'une manière générale dans le système de test ITS9000KX disponible dans le commerce auprès de Schlumberger Automated Test Equipment, Inc.
Les données utilisées pour effectuer un test de balayage dépendent de l'architecture du dispositif DUT 9 particulier et sont créées de façon typique par le fabricant de dispositifs DUT lors du procédé de conception du dispositif DUT 9. En raison de la diversité des définitions de données de test de balayage utilisées par des fabricants de dispositifs DUT, les données de test de balayage produites par le fabricant requièrent de façon typique une conversion en un format qui peut être lu par le système de test 2. Une conversion est normalement exécutée hors ligne par application d'un logiciel spécifiquement adapté aux définitions de test du fabricant de dispositifs DUT dans un ordinateur à usage général (non représenté) tel qu'un poste de travail, connecté au bus 7 de transmission de données de l'unité CPU du système de test 2. Le logiciel d'application reçoit comme entrée une définition de test par balayage du fabricant et délivre comme entrée une définition de test de balayage du fabricant et délivre en tant que sortie des données de test de balayage, pouvant être lues par le système de test 2. Les données de test de balayage converties sont alors échangées dans une mémoire dans un module à suite de balayage 3 dans le système de test 2 pour être appliqué au dispositif DUT 9. Un ordinateur à usage général peut être programmé de manière à convertir les définitions de test de balayage
<Desc/Clms Page number 16>
Figure img00160001

v------du fabricant de dispositifs DUT en des données de test de balayage utilisées par le système de test 2 moyennant l'utilisation des techniques classiques de programmation.
La Figure 2 représente un schéma-bloc d'une forme de réalisation d'un module de suites de balayage 3. Le contrôleur de mémoire de balayages 9 commande à la mémoire de balayages 11 de mémoriser les segments de données et des données associées d'une table de liaisons en réponse à un signal provenant du séquenceur global 1 (Figure 1). Dans une forme de réalisation, des segments de données de balayage et des données associées de la table de liaisons sont transmis par l'intermédiaire du bus 16 de transmission de données de l'unité centrale CPU du système de test 2, dans la mémoire de balayages 11 par l'intermédiaire du tampon de donnés 14 ; les segments de données de balayage et les données associées de la table de liaison sont à leur tour déchargés de façon typique dans le système de test 2 à partir d'un ordinateur à usage général connecté au système de test 2. Comme cela a été mentionné dans le paragraphe précédent, la conversion d'une définition de test de balayage du fabricant de dispositifs DUT en des segments de données de balayage et des données associées de la table de liaisons lisibles par le module de suites de balayages 3 est exécutée par application d'un logiciel se déroulant dans un ordinateur à usage général ; le logiciel d'application nécessaire pour effectuer cette opération est codé conformément à des techniques de programmation classiques. En se référant à nouveau à la Figure 2, avant d'exécuter un test de balayage, le module 3 de test de balayage est initialisé par un signal envoyé par l'intermédiaire de la ligne d'entrée 23 par le séquenceur global 1 (Figure 1) au contrôleur 9 de la mémoire de balayages, à la mémoire 16 de la table de liaisons et au contrôleur de suites 17,19, 21. le signal d'initialisation déclenche le remplissage de tampon de données 1 5A-C avec des segments de données de balayage et remplissage du tampon de données 1 5D avec les données de la table de liaisons ; les données de la table de liaisons sont ensuite mémorisées dans la mémoire 13 de la table de liaisons pour un accès par le contrôleur de suites 17,19, 21 et le contrôleur 9 de la mémoire de balayages.
<Desc/Clms Page number 17>
Figure img00170001

r Une fois que l'initialisation est terminée, le séquenceur global 1 envoie une série de signaux d'incrémentation de balayage par l'intermédiaire de la ligne 25 aux contrôleurs de suites 17,19, 21 ; chaque signal d'incrément de balayage amène les contrôleurs de suites 17,19, 21 à transmettre le bit suivant de données de balayage au dispositif DUT par l'intermédiaire de lignes de sortie 18,20, 22 du contrôleur de suites. Les contrôleurs de suites 17, 19,21 reçoivent des segments de données de balayage de la part de tampons de données 1 SA-C et, dans cette forme de réalisation, transmettent soit un bit de segments de données de segment soit un bit de données fictives en réponse à un signal d'incrémentation de balayage.
Chaque contrôleur de suites 17,19, 21 est configuré de manière à lire les données de la table de liaisons à partir de la mémoire 13 de la table de liaisons associée au segment de données de balayage pour la suite de balayages qu'il traite ; cette information commande le fait que le contrôleur de suites 17, 19, 21 transmet un bit de données fictives ou un bit de segment de données de balayage. Les données fictives sont transmises par exemple de manière à cadencer correctement le traitement de segments de données de balayage pour l'imbrication de séquences de balayage ; les algorithmes de cadencement pour exécuter l'imbrication sont prévus de façon détaillée en référence aux Figures 5-11. Lorsqu'un tampon de données, par exemple 1 5A, requiert d'être chargé, le noeud 15A envoie un signal au contrôleur de la mémoire de balayages 9 pour récupérer le segment de données de balayage suivant à partir de la mémoire de balayages 11 ; en réponse à ce signal, le contrôleur 9 de la mémoire de balayages récupère l'adresse de début dans la mémoire de balayages 11 du segment de données de balayage suivant dans la suite de balayages provenant des données de la table de liaisons, mémorisée dans la mémoire 13 de la table de liaisons. Après récupération de l'adresse de départ à partir de la mémoire 13 de la table de liaisons le contrôleur 9 de la mémoire de balayages récupère le segment de données de balayage à partir de la mémoire de balayages 11 et transmet le segment de données de balayage au tampon de données demandeur 1 5A. Les spécialistes de la technique constateront que de nombreuses variantes de types de circuits peuvent exécuter le traitement de bits du segment de données de balayage et des
<Desc/Clms Page number 18>
Figure img00180001

r données fictives comme décrit précédemment ; la présente invention n'est pas censée être limitée à la forme de réalisation particulière de la Figure 2.
De façon typique la mémoire de balayages est volumineuse dans un appareil commercial servant à tester des circuits. Dans une forme de réalisation, il est prévu cent-huit suites de balayages constituées chacune par deux-cent cinquante-six mégavecteurs par suite de balayages (un mégavecteur est égal à un million de vecteurs d'un bit, ou un million de bits de données). Cette forme de réalisation est réalisée sur trois panneaux de
Figure img00180002

circuits de mémoire dont chacun contient six unités DIMM à 256 mégaoctets ECC à 72 bits, comme par exemple des mémoires standards SD RAM PC 100. (On notera que dans des appareils typiques de test, de tels panneaux de circuits peuvent être ajoutés de manière à fournir une capacité supplémentaire). Cette configuration peut être étendue (par exemple jusqu'à une profondeur de mémoire de 1 gigavecteur, qui est constituée d'une manière générale de trois suites de balayage possédant chacune plus d'un million de données). Les suites de balayage et les structures de données associées (par exemple des tables de liaisons) sont des structures logiques qui peuvent être mises en oeuvre dans un ou plusieurs dispositifs de mémoire physiques, comme par exemple une mémoire SDRAM PC 100 ; par conséquent dans cette description la référence à une"mémoire"ou à une"mémoire de balayages" n'est pas censé produire une limitation à une seule plaquette de mémoire, un seul circuit imprimé ou un seul dispositif de mémoire physique. Les spécialistes de la technique constateront que les données de la table de liaisons et les segments de données de balayage peuvent être mémorisés dans un ou plusieurs dispositifs de mémoire physiques ou dans le même dispositif de mémoire physique.
La Figure 3 est un schéma représentant une forme de réalisation d'une structure de données de la table de liaisons et la manière dont il représente une suite de segments de données de balayage mémorisée dans une mémoire de balayages comme décrit précédemment. Dans cette forme de réalisation, trois tables de liaisons sont utilisées : une table de liaisons introduite par balayage 31 (S ! []), une table de liaisons de sortie de balayage 33 (SO []) et une table de liaisons de masques de balayage 35 (SM []).
Chaque ligne n dans une table de liaisons (par exemple Si [n], SO [n] ou
<Desc/Clms Page number 19>
Figure img00190001

r SM [n]) correspond à un segment de données de balayage utilisé lors du test n de la séquence de suites de test. Dans cette forme de réalisation, chaque rangée dans une table de liaisons comporte quatre zones : une adresse 37 de début de segments de données de balayage, une longueur 39 du segment de données de balayage, une longueur de bloc de départ 41 et une longueur de bloc d'extrémité 43. L'adresse 37 de début de segment de données de balayage contient l'adresse présente dans la mémoire de balayages 11 et à laquelle commence un segment de données de balayage.
La longueur 39 du segment de données de balayage contient la longueur en bits du segment de données de balayage. La longueur 41 du plot de départ contient le nombre de cycles d'horloge de balayage, qui doivent s'écouler avant que les bits situés dans le segment de données de balayage identifié par l'adresse 37 de départ du segment de données de balayage, sont transmis par le contrôleur de suites 17, 19,21. La longueur de blocs d'extrémité contient le nombre de cycles d'horloge de balayage, qui doivent s'écouler une fois que l'extrémité du segment de données de balayage identifié par l'adresse 37 de début de segment de données de balayage, est atteinte et avant la ligne suivante de la table de balayages (c'est-à-dire le segment de données de balayage suivant dans la suite de balayages) est traitée. Les contrôleurs de suites 17,19, 21 traitent les données de balayage bit par bit en réponse à un signal d'incrémentation de balayage 25 délivré par le séquenceur global 1 dans l'ordre spécifié par les tables de liaisons. Dans une forme de réalisation, les dispositifs de commande de suites 17,19, 21 traitent les lignes dans leurs tables respectives de liaisons indépendamment les unes des autres, c'est-à-dire que dans un cycle d'horloge de balayage particulier, le contrôleur de suites introduites par balayage peut traiter des données de balayage pour la ligne n+1 d'une table de liaisons alors que le contrôleur de suites de sortie de balayage peut traiter les données de balayage dans une ligne n. Les contrôleurs de suites 17,19, 21 (Figure 2) traitent des données de balayage comme cela est spécifié dans une rangée de la table de liaisons dans l'ordre indiqué ci-après : la longueur 41 du plot de départ, le segment de données de balayage (de façon typique les segments de données introduites par balayage, des segments de sortie de balayage et des segments de données de masque de
<Desc/Clms Page number 20>
Figure img00200001

r balayage) et la longueur de plot des extrémités 43. Pour le nombre de cycles de balayage spécifiés par la longueur de plot de départ 41 ou la longueur de plot d'extrémité 43, les contrôleurs de suites 17, 19,21 (Figure 2) transmettent de façon typique des données fictives (des signaux zéro). Un procédé de calcul des longueurs de plots de départ 41 et des longueurs de plots d'extrémité 43 pour chaque segment de données de balayage est représenté sur les Figures 5 et 6 indiquées plus loin. Lorsque toutes les données telles qu'elles sont spécifiées dans la région de la table de liaisons sont traitées par les contrôleurs de suites 17, 19, 21, les contrôleurs de suites passent à la ligne suivante pour continuer le traitement. Le traitement d'une suite de balayages peut être achevé lorsque la totalité des rangées de la table respective de liaisons sont traitées ou bien lorsqu'elles sont dirigées ailleurs par le séquenceur global 1. Dans une autre forme de réalisation, lorsque les valeurs de la longueur du segment de données de balayage, de la longueur du plot de départ, de la longueur du plot d'extrémité pour une ligne particulière sont des zéros logiques affectés, les contrôleurs de suites 17, 19, 21 traitent les données de balayage dans un procédé en ligne droite ; selon ce procédé, les contrôleurs de suites 17, 19, 21 récupèrent des données de balayage séquentiellement à partir du démarrage de la mémoire à l'adresse de départ jusqu'à l'achèvement du test de balayage.
Comme cela est représenté sur la Figure 3, des segments de données de balayage occupent une partie contiguë de la mémoire de balayages 11 et peuvent être distribués de façon aléatoire. La structure séquentielle d'adresses 37 de démarrage de segments de données de balayage dans une table de liaisons 31 (c'est-à-dire que chaque ligne successive de la table de liaisons correspond à un segment de données de balayages suivants) permet d'avoir des segments de données de balayage, qui ne sont pas disposés d'une manière contiguë dans la mémoire (comme dans une solution monolithique pour une mémoire de données de balayage) pour être traités séquentiellement. Le niveau ajouté d'adressage indirect fourni par les tables de liaisons présente l'avantage de permettre un séquencement efficace de segments de données de balayage. De nouvelles séquences de test peuvent être produites par un simple séquencement des lignes des tables de liaisons
<Desc/Clms Page number 21>
Figure img00210001

r et au moyen d'une simple réécriture des tables de liaisons dans la mémoire de balayage. Ceci évite des procédés qui prennent du temps (telle que la solution monolithique) de nouveaux séquencements, lors desquels les données de balayage elles-mêmes doivent être à nouveau séquencées, reconstituées et téléchargées sous la forme d'un bloc dans la mémoire afin d'établir également les modifications les plus minimes dans la séquence de tests. Un avantage supplémentaire réside dans le fait qu'une séquence de tests constitue une séquence de pointeurs, et, même s'ils sont utilisés de multiples fois dans une séquence de tests, les segments de données de balayage eux-mêmes peuvent seulement être mémorisés une fois en mémoire. Ceci empêche une redondance de données et atténue les exigences du point de vue de la mémoire du système de test. Des suites de balayages peuvent être réalisées selon de nombreuses autres structures de données, comme par exemple une liste chaînée, un réseau ou une combinaison d'un réseau et d'une liste chaînée.
Dans une forme de réalisation, les tables de liaisons peuvent être mémorisées dans la même mémoire physique que les segments de données de balayage. D'autres formes de réalisation peuvent affecter des mémoires physiques selon d'autres manières. Dans une forme de réalisation, les tables de liaisons peuvent être contenues dans une mémoire de balayages constituée par des unités TIMM à 256 mégaoctets ECC à 72 bits, comme par exemple des mémoires SDRAM standards Pic 1000. L'adresse de départ du segment de données de balayage, la longueur du segment de données de balayage et les zones constituées par le tampon de blocs de départ et le tampon de blocs d'extrémité occupent un mot à 64 bits conformément à la décomposition suivante : 24 bits pour l'adresse de départ du segment de données de balayage, 13 bits pour la longueur du segment de données de balayage, 12 pour la longueur du bloc de départ, 12 bits pour la longueur du bloc d'extrémité, et 3 bits pour les drapeaux de validation de données de balayage immédiates (les 8 bits restants sont utilisés pour une correction d'erreur ECC).
Dans une forme de réalisation, si le drapeau de données de balayage immédiates est validé par une ligne de la table de liaisons, le contrôleur de suites respectif fonctionne dans le mode de données de balayage immé-
<Desc/Clms Page number 22>
Figure img00220001

r diates. Dans le mode de données de balayage immédiates, un contrôleur de suites lit la ligne de la table de liaisons comme comprenant deux zones : une zone de données et une zone formant compteur. La zone de données contient le segment de données de balayage lui-même, contrairement à un pointeur désignant le segment de données de balayage dans la mémoire, et une zone formant compteur comptant une valeur de répétition pour indiquer avec quelle fréquence le segment de données de balayage doit être traité successivement lors du balayage par les contrôleurs de suites. Dans ce mode, le test par balayage permet de faire l'économie d'un temps de traitement requis pour effectuer un second accès en mémoire pour récupérer le segment de données de balayage en plaçant le segment de données de balayage directement dans la table de liaisons (le premier accès en mémoire est requis pour la récupération des données de la table de liaisons). Fréquement de longues séquences de données de balayage sont constituées par des profils de données de balayage plus courts qui sont répétés ; dans ce cas, une copie du profil répétitif peut être mémorisée directement dans la table de liaisons, et un compteur est prévu pour commander des contrôleurs de suites pour qu'ils traitent le profil un nombre donné de fois avant de passer au segment de données de balayage suivant. Dans une autre forme de réalisation du mode de données de balayage immédiat, on peut utiliser uniquement la zone de données supprimée et la zone formant compteur.
Dans une forme de réalisation, si une ligne de la table de liaisons contient un drapeau d'invalidation de balayage, le positionnement du drapeau empêche que des données soient envoyées à la broche DUT respective pendant le traitement de cette ligne. Dans une autre forme de réalisation, le positionnement du drapeau de validation de balayage empêche que des données soient envoyées à la broche du dispositif DUT pour l'ensemble de la suite de balayages. La validation de données de balayage à partir de certaines broches du dispositif DUT est quelquefois nécessaire pour empêcher une accumulation de chaleur excessive dans le dispositif DUT, qui pourrait endommager le dispositif DUT ou conduire à des résultats de test erronés. L'invalidation de données de balayage à partir de certaines broches du dispositif DUT peut être également utile lors de la
<Desc/Clms Page number 23>
Figure img00230001

r concentration d'un test de balayage sur une partie particulière du dispositif, ce qui permet de faire l'économie d'une durée d'analyse de données.
Lors d'une itération typique de test par balayage, l'appareil effectuant le test commute un dispositif DUT sur un mode de balayage et introduit par balayage un segment de données introduites par balayage dans une chaîne de balayage du dispositif DUT, au moyen d'une cadence d'horloge de balayage. Le dispositif DUT fonctionne ensuite dans le mode normal et pendant un ou plusieurs cycles d'horloge du système pour traiter un ou plusieurs profils fonctionnels, par exemple un test de retardement lancementcapture. Le dispositif DUT est ensuite ramené au mode de balayage pour la sortie de balayage des états de la chaîne de balayage pour leur comparaison à des segments de données de sortie de balayage et de masques de balayage et pour introduire par balayage le segment de données de balayage suivant pour commencer l'itération suivante du test de balayage. Dans la présente description, la transition faisant passer du mode de balayage au mode normal avec retour au mode de balayage dans le dispositif DUT sera désignée comme étant une"transition de mode de test DUT". Un"inter- valle de balayage" désigne la période pendant laquelle un dispositif DUT est dans un mode de balayage (constitué de façon typique par la période entre les conditions des modes de test du dispositif DUT). Le balayage de segments de données de balayage signifie, dans une forme de réalisation, qu'un nouveau segment de données introduites par balayage dans une chaîne de balayage sont délivrées par balayage à des fins de comparaison avec des segments de données de sortie de balayage et de masque de balayage ; en d'autres termes, au lieu d'attendre le remplissage d'une chaîne de balayage avec de nouvelles données après que la chaîne de balayage a été complètement vidée de ses anciennes données, les deux opérations sont exécutées en chevauchement. Ceci permet de réaliser une économie à la fois sur le temps de traitement et sur la mémoire de balayage et par conséquent sur le coût de test.
Un test par balayage est appliqué fréquemment à un sous-ensemble particulier d'éléments de maintien d'état de la chaîne de balayage, qui sera désigné ci-après comme étant un"module de chaîne de balayage". Le test de balayage appliqué à des modules de la chaîne de balayage est souhaitable
<Desc/Clms Page number 24>
Figure img00240001

r étant donné que de façon typique des architectures de dispositifs DUT permettent de tester des composants DUT spécifiques par l'intermédiaire d'un ou de plusieurs modules de chaînes de balayage. La Figure 4 représente un dispositif DUT 101 comportant une chaîne de balayage 103 possédant quatre modules de chaînes de balayage chaînés 111, 113, 115.
Dans cette situation, on suppose que les longueurs des segments de données de balayage sont égales aux longueurs des modules de chaînes de balayage qu'elles doivent remplir, puis un test de balayage appliqué au module Bill requiert que l'appareil de test s'applique à un nombre de signaux d'horloge de balayage au moins égal au nombre des longueurs de bits du module B 111 plus le module A 109. Ceci est requis pour le positionnement complet de données introduites par balayage dans le module Bill de cible.
En d'autres termes, l'appareil effectuant le test commute le dispositif DUT 101 sur le mode de balayage, puis introduit par balayage le segment B de données introduites par balayage, et introduit ensuite par balayage des données fictives égales à la longueur en bits dans le module Al 09 de manière à transférer complètement les données du segment B de données introduites par balayage dans le module B (les données introduites par balayage sont transférées en série du module A au module B). De façon analogue, lors de la sortie de balayage des états dans le module B 111 pour leur comparaison à son segment respectif de données de sortie de balayage, les données de balayage traitées (qui dans certaines formes de réalisation peuvent être ou non des données fictives provenant de l'itération du test de balayage précédent), qui remplissent les modules Dal 15 et Cl 13, peuvent tout d'abord être extraites par balayage avant que les données ciblées dans le module Bill soient atteintes. L'exemple indiqué ci-après illustre de quelle manière le test par balayage appliqué à des modules de chaînes de balayage de dispositifs DUT ou une séquence de modules de chaînes de balayage peut être exécuté.
On suppose que le dispositif DUT possède une chaîne de balayage d'une longueur en bits de 3500 comprenant quatre modules de chaînes de balayage A, B, C et D (comme représenté sur la Figure 4) avec des longueurs en bits égales respectivement à 1000, 1500 et 500. On suppose en
<Desc/Clms Page number 25>
Figure img00250001

r outre la séquence suivante de tests de balayage à titre d'exemple, indiquée 1 dans le tableau 1.
TABLEAU 1
EXEMPLE DE SÉQUENCES DE TEST DE BALAYAGE
Figure img00250002
<tb>
<tb> Test <SEP> 0 <SEP> Test <SEP> de <SEP> tous <SEP> les <SEP> modules <SEP> de <SEP> la <SEP> chaîne <SEP> de <SEP> balayage <SEP> ABCD
<tb> Test <SEP> 1 <SEP> Test <SEP> de <SEP> B <SEP> uniquement <SEP> B
<tb> Test <SEP> 2 <SEP> Test <SEP> de <SEP> C <SEP> uniquement <SEP> C
<tb> Test <SEP> 3 <SEP> Test <SEP> de <SEP> B <SEP> uniquement <SEP> B
<tb> Test <SEP> 4 <SEP> Test <SEP> de <SEP> A, <SEP> B <SEP> et <SEP> C <SEP> ABC
<tb>
1 Si on néglige l'imbrication, la plus faible quantité de données, qui doivent être introduites par balayage et sorties par balayage dans et hors du dispositif DUT pour l'exécution de la séquence de tests est représentée ci-
Figure img00250003

l dessous dans le tableau 2.
1 TABLEAU 2
EXEMPLE DE DONNÉES DE SÉQUENCEMENT POUR LE TEST DE
MODULES DE LA CHAÎNE DE BALAYAGE
Figure img00250004
<tb>
<tb> Entrée <SEP> de <SEP> Longueur <SEP> Données <SEP> Longueur <SEP> des <SEP> Module(s)
<tb> Données
<tb> Test <SEP> données <SEP> des <SEP> don-de <SEP> sortie <SEP> données <SEP> de <SEP> DUT <SEP> souTest <SEP> de <SEP> masque
<tb> par <SEP> ba- <SEP> nées <SEP> entrées <SEP> de <SEP> bala- <SEP> sortie <SEP> de <SEP> mis <SEP> au <SEP> test
<tb> de <SEP> balayage
<tb> layage <SEP> par <SEP> bala-yage <SEP> yage <SEP> balayage <SEP> Longueur
<tb> 0 <SEP> ABCD <SEP> 3500 <SEP> DCBA <SEP> 3500 <SEP> DCBA <SEP> 3500
<tb> 1 <SEP> [A] <SEP> B <SEP> 2500 <SEP> tDC] <SEP> B <SEP> 2500 <SEP> B <SEP> 1500
<tb> 2 <SEP> [AB] <SEP> C <SEP> 3000 <SEP> [D] <SEP> C <SEP> 1000 <SEP> C <SEP> 500
<tb> 3 <SEP> [A] <SEP> B <SEP> 2500 <SEP> [DC] <SEP> B <SEP> 2500 <SEP> B <SEP> 1500
<tb> 4 <SEP> ABC <SEP> 3000 <SEP> [D]CBA <SEP> 3500 <SEP> CBA <SEP> 3000
<tb> [D]CBA
<tb>
Figure img00250005

Comme cela est représenté sur le tableau 2, les données introduites : par balayage (colonne 1) et la longueur de données introduites par balayage (colonne 2) illustrent la quantité de données par itération du test par
Figure img00250006

1 balayage, qui doivent être introduites et sorties par balayage dans et hors de : la chaîne de balayage du dispositif DUT en raison de la structure modulaire
Figure img00250007

1
<Desc/Clms Page number 26>
Figure img00260001

r de la chaîne de balayage sous la forme d'une file d'attente. Dans le cas de données introduites par balayage (colonne 1), la valeur dans la table représente graphiquement les données dans la chaîne de balayage en termes soit de segment de données de balayage soit de données fictives par module pour chaque test par balayage. Par conséquent, pour le test 0 (ligne 1), étant donné que tous les modules doivent être testés (et qu'aucune donnée fictive n'est utilisée), les données d'entrée par balayage (colonne 1) sont égales au segment de données entrées par balayage pour tous les modules de la chaîne de balayage ; ceci est représenté par"ABCD"sans aucun crochet (les lettres entre crochets représentent des modules recevant des données fictives). La longueur de données entrées par balayage (colonne 2) constitue la longueur des données introduites par balayage (à la fois des segments de données introduites par balayage et des données fictives, le cas échéant) calculées par addition des longueurs des modules devant être remplis avec des données introduites par balayage ; dans ce cas la module des modules A à D est égale à 3500 (module A + module B + module C + module C = 1000 + 1500 + 500 + 500 = 3500). Au contraire, dans le test 1 (ligne 2), seul le module B est testé. Par conséquent dans le test 1, les données introduites par balayage (colonne 1) sont représentées par" [A] B", ce qui signifie que les données introduites par balayage pour tester le module B sont constituées par le segment de données introduites par balayage pour le module B (pas de crochets) ainsi que conjointement avec des données fictives pour le module A (crochets). On notera que lors du test 1, les données fictives pour le module A sont placées dans la suite de balayages après le segment de données introduites par balayage pour le module B afin de garantir que le segment de données introduites par balayage est correctement transféré à l'emplacement du module B dans la chaîne de balayage DUT. La longueur de données introduites par balayage (colonne 2), qui est constituée par des données fictives et par un segment de données introduites par balayage, est 1500 (données fictives du module A + segment de données introduites par balayage du module B = 1000 + 1500 = 2500).
En se référant à nouveau au tableau 2, les valeurs pour les données de sortie de balayage (colonne 3) et la longueur des données de sortie de
<Desc/Clms Page number 27>
Figure img00270001

r balayage (colonne 4) sont calculées de la même manière pour les données introduites par balayage (colonne 1) et la longueur de données introduites par balayage (colonne 2). On notera que les segments de données de sortie de balayage (colonne 3) sont cadencés de manière à être alignés dans l'ordre dans lequel des données traitées de chaînes de balayage sont extraites du dispositif DUT ; ce cadencement est mis en oeuvre étant donné que les données traitées de la chaîne de balayage sont, de façon typique, comparées aux données de sortie de balayage (résultats attendus) sur une base bit par bit, directement lors de l'extraction par balayage d'un bit des données traitées de la chaîne de balayage à partir de la chaîne de balayage du dispositif DUT. Dans cette description, des données traitées de la chaîne de balayage sont les données de balayage qui remplissent une chaîne de balayage après l'exécution d'un test par balayage. Par conséquent, dans la forme de réalisation représentée par le tableau 2, dans le test 0 (ligne 1), les données de sortie de balayage sont représentées par"DCBA"sans aucun crochet dans la colonne 3 ; ceci montre que le dernier état dans le module D est le premier état des données traitées de la chaîne de balayage, qui sont extraites par balayage du dispositif DUT, pour leur comparaison au premier bit de segment de données de sortie de balayage ordonnées de façon correspondante. Au contraire, lors du test 1 (ligne 2), le test par balayage est appliqué uniquement au module B et par conséquent les données traitées de la chaîne de balayage, qui remplissent les modules D et C, ne doivent pas être extraites par balayage avant d'atteindre les données ciblées dans le module B ; ceci est représenté par" [DC] B" (iigne 2, colonne 3), où des données fictives (indiquées par les crochets) remplissant les modules D et C doivent être extraites par balayage avant les données de balayage traitées ciblées dans le module B (pas de crochets). Enfin, les données de masques de balayage (colonne 100) et la longueur du module DUT (colonne 6, qui se réfère à la longueur en bits des modules testés) correspondent du point de vue cadencement et longueur aux segments des données de sortie de balayage (représentés sous la forme de modules sans crochets dans la colonne 3). Le cadencement et la longueur des segments de données de masque de balayage correspondent à des segments de données extraits par balayage étant donné que cette forme de réalisation suppose que toutes les
<Desc/Clms Page number 28>
Figure img00280001

r données situées dans un module ciblé peuvent être une cible de masquage (cependant d'autres formes de réalisation peuvent cibler un sous-ensemble plus petit d'états de la chaîne de balayage dans un module donné de la chaîne de balayage à des fins de masquage). Les valeurs de la table pour les tests 2-4, lignes 4-5) sont calculées de la même manière que pour le test 0 (ligne 1) et le test 1 (ligne 2).
Comme cela a été décrit précédemment, les segments de données de balayage sont imbriqués lorsque le cadencement pour le traitement des données produites par balayage chevauche le cadencement pour le traitement des données de sortie de balayage et des données de masques de balayage, et ce dans la mesure où cela est autorisé par la structure de chaînes de balayage (de façon spécifique la longueur et le nombre de modules de la chaîne de balayage). Dans le cadre de la présente description (comme cela a été décrit en référence au tableau 2 ci-dessus), les" données introduites par balayage" désignent la quantité totale de données de la chaîne de balayage qui sont nécessaires pour introduire des segments de données introduites par balayage dans des modules DUT respectifs ; ceci inclut un ou plusieurs segments de données introduites par balayage et toutes les données fictives pour des modules qui ne sont pas testés. De façon analogue, l'expression "données de sortie de balayage" désigne la quantité totale de données dans la suite de sortie de balayage, qui sont requises pour le traitement des données traitées de la chaîne de balayage, de façon spécifique les données traitées de la chaîne de balayage qui remplissent le module testé ; cette quantité est équivalente à la quantité totale de données de la chaîne de balayage, y compris les données fictives, qui doivent être extraites par balayage pour la récupération des données traitées de balayage à partir du module DUT ciblé. Les deux expressions "données introduites par balayage" et "données de sortie de balayage" sont illustrées en référence au tableau 2. Dans le tableau 2, les données introduites par balayage pour le test 3 sont [A] B, c'est-à-dire les données fictives dans le module A et le segment de données introduites par balayage dans le module B ; les données de sortie de balayage sont [DC] B, qui
Figure img00280002

1 correspondent à des données de la chaîne de balayage qui remplissent le module ciblé B, y compris des données fictives remplissant les modules D et C
<Desc/Clms Page number 29>
Figure img00290001

r Dans une forme de réalisation, l'imbrication est réalisée par association de segments de données de balayage à des valeurs de retard prédéterminées ou un"remplissage", qui autorise le cadencement nécessaire pour l'imbrication. Dans cette forme de réalisation, le remplissage pour des segments de données de balayage peut inclure une longueur de remplissage de blocs de départ et une longueur de blocs d'extrémité représentant le nombre de cycles d'horloge de balayage qui doivent s'écouler avant et après qu'un traitement particulier de données de balayage soit traité. Dans une forme de réalisation, comme représenté sur la Figure 3, les longueurs de blocs sont associées à chaque segment de données de balayage au moyen d'une table de liaisons. Dans une forme de réalisation, les longueurs de blocs sont calculées sur la base de trois règles : tout d'abord le dispositif DUT doit être commuté sur le mode normal après le dernier cycle d'horloge de balayage requis pour l'introduction par balayage d'un segment de données introduites par balayage ; en second lieu, la sortie de balayage des données traitées de la chaîne de balayage doit commencer juste après que le dispositif DUT est revenu au mode de balayage ; et en troisième lieu, l'introduction par balayage du segment suivant de données introduites par balayage doit commencer lors du cycle d'horloge de balayage le plus précoce, qui ne viole pas les deux règles précédentes. La troisième règle indique que chaque intervalle de balayage est égal à celle des deux quantités suivantes qui est la plus grande, à savoir la longueur des données introduites par balayage et la longueur des données précédentes sorties de balayage pour cet intervalle de balayage.
Les Figures 5 et 6 sont des organigrammes qui décrivent des procédures permettant de calculer respectivement des valeurs de longueurs de blocs d'introduction par balayage et de sortie de balayage, conformément à une forme de réalisation, les procédures supposent que les zones de longueurs de blocs de la table de liaisons sont initialisées à zéro. Les procédures utilisent comme entrée des données de séquencement de test de modules comme cela est prévu par exemple dans le tableau 2 ; des valeurs de blocs sont ensuite calculées pour chaque test successif dans la séquence de suites (c'est-à-dire des lignes successives dans la table de liaisons) fréquemment par référence au test suivant dans la séquence. Les spécialistes de la technique
<Desc/Clms Page number 30>
Figure img00300001

r constateront que les procédures représentées sur les Figures 5-6 peuvent être codées en logiciel moyennant l'utilisation d'un certain nombre de langages de programmation classiques, tels que C, C+ + ou Fortran et de techniques classiques de programmations comme par exemple de façon typique une programmation structurée ou une programmation orientée objet.
En référence à la Figure 5, lors du pas 125, la longueur des données suivantes introduites par balayage dans la séquence de tests est comparée à la longueur actuelle des données de sortie de balayage. Lors du pas 127, si la longueur des données suivantes extraites par balayage est inférieure à la longueur des données actuelles de sortie de balayage, alors la longueur du plot d'extrémité pour le segment de données actuelles introduites par balayage est affectée à la longueur de données actuelles de sortie de balayage moins la longueur de données suivantes introduites par balayage. Lors du pas 129, si la longueur de données suivantes introduites par balayage est supérieure ou égale à la longueur de données actuelles de sortie de balayage, alors la longueur du bloc d'extrémité pour le segment de données actuelles introduites par balayage reçoit la valeur zéro. Lors du pas 131, à la longueur du bloc de départ actuel introduit par balayage est affectée la longueur du bloc de départ actuel introduit par balayage plus la longueur de données actuelles introduites par balayage moins la longueur du segment actuel de données introduites par balayage. Lors du pas 133, une détermination est faite pour savoir si le premier test de balayage de la séquence a été atteint. Lors du pas 135, si le dernier test de la séquence n'a pas encore été atteint, alors le test suivant par balayage devient le test actuel par balayage, et les pas 125 à 135 sont répétés. Lors du pas 137, si le dernier test de la séquence est atteint, la longueur de blocs d'extrémité introduits par balayage pour la dernière séquence de tests de balayage est égale à la longueur de données extraites par balayage pour la dernière séquence de tests de balayage.
En se référant à la Figure 6, lors du pas 151, à la longueur du bloc de départ pour le premier segment de données de sortie de balayage est affectée la longueur actuelle des données introduites par balayage. Lors du pas 153, la longueur suivante des données introduites par balayage est
Figure img00300002

comparée à la longueur actuelle des données de sortie de balayage. Lors du comparee
<Desc/Clms Page number 31>
Figure img00310001

r pas 155, si la longueur suivante de données introduites par balayage est supérieure à la longueur actuelle de données de sortie de balayage, alors à la longueur de blocs d'extrémité actuelle de sortie de balayage est affectée la longueur suivante de données introduites par balayage, moins la longueur actuelle de données de sortie de balayage. Lors du pas 157, si la longueur suivante de données introduites par balayage est inférieure ou égale à la longueur actuelle de données de sortie de balayage, alors zéro est affecté à la longueur actuelle du bloc d'extrémité de sortie de balayage. Lors du pas 159, à la longueur actuelle du bloc de départ de sortie de balayage est affectée la longueur actuelle du bloc de départ de sortie de balayage plus la longueur actuelle de données de sortie de balayage moins la longueur actuelle du segment de données de sortie de balayage. Lors du pas 161, une détermination est faite pour savoir si le dernier test de la séquence est atteint. Lors du pas 163, si le dernier test de la séquence n'est pas atteint, alors le test suivant de sortie de balayage devient le test actuel de sortie de balayage, et les pas 151 à 161 sont répétés. Lors du pas 165, si le dernier test de la séquence est atteint, alors la longueur de blocs de départ de sortie de balayage pour la dernière séquence de tests de balayage est égale à la longueur du bloc de départ de sortie de balayage pour la dernière séquence de tests de balayage plus la longueur des données de sortie de balayage pour la dernière séquence de tests de balayage moins le segment de données de sortie de balayage pour la dernière séquence de tests de balayage.
En se référant à nouveau à la Figure 5, on peut représenter la procédure de calcul de blocs introduits par balayage par application des données prises à titre d'exemple du premier test, Test 0 (ligne 1), du tableau 2. En commençant avec la première séquence de tests lors du pas 125, la longueur suivante de données introduites par balayage égale à 2500 (ligne 2, colonne 2) est inférieure à la longueur actuelle de données de sortie de balayage qui est égale à 3500 (ligne 1, colonne 4). Par conséquent, comme cela est requis par l'étape 129,1000 est affecté à la longueur du bloc d'extrémité introduite par balayage pour le test 0, c'est-àdire la longueur actuelle des données de sortie de balayage (ligne 1, colonne 4) moins la longueur suivante de données introduites par balayage (ligne 2, colonne 2), soit 3500-2500 = 1000. Lors de l'étape 131, la longueur zéro
<Desc/Clms Page number 32>
Figure img00320001

r est affectée à la longueur actuelle du bloc de départ introduit par balayage, c'est-à-dire la longueur actuelle du bloc de départ introduit par balayage (initialisée à zéro) plus la longueur actuelle des données introduites par balayage (ligne 1, colonne 2) moins la longueur actuelle du segment de données introduites par balayage (prévue dans la ligne 1, colonne 6, en tant que longueur du module DUT testé), à savoir 0 + 3500-3500 = 0. Lors du pas 133, la dernière séquence de tests de balayage n'a pas été atteinte et c'est pourquoi lors du pas 135, le test par balayage suivant devient le test par balayage actuel, et les pas 125-133 sont répétés.
En se référant à nouveau à la Figure 6, on peut également représenter la procédure de calcul du bloc de sortie de balayage par application des données prises à titre d'exemple du premier test, Test 0 (ligne 1) du tableau 2. Lors du pas 151, le premier bloc de départ du segment de sortie de balayage reçoit initialement la valeur 3500, c'est-à-dire la valeur pour la première longueur de données introduites par balayage (ligne 1, colonne 2). Lors du pas 153, la longueur suivante de données introduites par balayage, qui est égale à 2500 (ligne 2, colonne 2) est inférieure à la longueur actuelle de données de sortie de balayage qui est égale à 3500 (ligne 1, colonne 4) et par conséquent lors du pas 155, zéro est affectée à la longueur actuelle du bloc d'extrémité de sortie de balayage pour le test 0 zéro. Lors du pas 159, à la longueur actuelle du bloc de départ de sortie de balayage est affectée la valeur 3500, c'est-à-dire que la longueur actuelle du bloc de départ de sortie de balayage est égale à la longueur actuelle du bloc de démarrage de sortie de balayage (initialement réglée à 3500 lors du pas 151 dans cet exemple) plus la longueur actuelle de données de sortie de balayage (ligne 1, colonne 4) moins la longueur actuelle de segment de sortie de balayage (ligne 1, colonne 6 en tant que longueur du module DUT testé), soit 3500 + 3500-3500 = 3500. Lors du pas 163, la séquence de tests du dernier balayage n'a pas été attente et par conséquent lors du pas 163, le test suivant de sortie de balayage devient le test de sortie de balayage actuel, et les pas 153-161 sont répétés. Les valeurs de longueurs de blocs pour toutes les séquences de tests dans toutes les suites introduites par balayage et de sortie de balayage sont calculées d'une manière similaire (conformément à la procédure logique prévue sur les Figures 5-6) comme
<Desc/Clms Page number 33>
Figure img00330001

v------- cela est prévu dans les deux exemples ci-dessus. D'autres formes de réalisation permettent de calculer des valeurs de longueurs de blocs différemment pour la réalisation d'une certaine forme d'imbrication.
Dans une forme de réalisation, pour illustrer le processus d'imbrication conformément aux procédures de calcul de longueurs de blocs prévues sur les Figures 5 et 6, des exemples de tables de liaisons d'introduction par balayage, de sortie de balayage et de masque de balayage ont été produits conformément aux procédures des Figures 5-6, ces tables sont indiquées cidessous dans le tableau 3. Le tableau 3 est destiné à illustrer l'opération d'imbrication, et par conséquent les zones d'adresses de départ de segments des tables de liaisons sont omises ; au lieu de cela les zones d'adresses de départ de segments contiennent les modules devant être testés entre parenthèses pour représenter un pointeur d'adresses désignant des données de segments dans la mémoire désignée pour remplir les modules spécifiés.
Dans cette forme de réalisation, les segments de masques de balayage correspondent, du point de vue longueur, aux segments de sortie de balayage, et par conséquent utilisent en commun les mêmes longueurs de blocs (représentées dans le tableau 3 donné ci-après).
<Desc/Clms Page number 34>
TABLEAU 3 EXEMPLES DE TABLES DE LIAISONS
Figure img00340001
<tb>
<tb> TABLE <SEP> DE <SEP> LIAISONS <SEP> D'INTRODUCTION <SEP> PAR <SEP> BALAYAGE
<tb> Adresse <SEP> de <SEP> Longueur <SEP> Longueur
<tb> Test <SEP> début <SEP> de <SEP> du <SEP> bloc <SEP> de <SEP> du <SEP> bloc
<tb> segment <SEP> de <SEP> segment <SEP> départ <SEP> d'extrémité
<tb> 0 <SEP> (ABCD) <SEP> 3500 <SEP> 0 <SEP> 1000
<tb> 1 <SEP> (B) <SEP> 1500 <SEP> 1000 <SEP> 0
<tb> 2 <SEP> (C) <SEP> 500 <SEP> 2500 <SEP> 0
<tb> 3 <SEP> (B) <SEP> 1500 <SEP> 1000 <SEP> 0
<tb> 4 <SEP> (ABC) <SEP> 3000 <SEP> 0 <SEP> 3500
<tb> TABLE <SEP> DE <SEP> LIAISONS <SEP> DE <SEP> SORTIE <SEP> DE <SEP> BALAYAGE
<tb> Adresse <SEP> de <SEP> Longueur <SEP> Longueur <SEP> Longueur
<tb> Test <SEP> début <SEP> de <SEP> de <SEP> du <SEP> bloc <SEP> du <SEP> bloc
<tb> segment <SEP> segment <SEP> de <SEP> départ <SEP> d'extrémité
<tb> 0 <SEP> (ABCD) <SEP> 3500 <SEP> 3500 <SEP> 0
<tb> 1 <SEP> (B) <SEP> 1500 <SEP> 1000 <SEP> 500
<tb> 2 <SEP> (C) <SEP> 500 <SEP> 500 <SEP> 1500
<tb> 3 <SEP> (B) <SEP> 1500 <SEP> 1000 <SEP> 500
<tb> 4 <SEP> (ABC) <SEP> 3000 <SEP> 5000 <SEP> 0
<tb> TABLE <SEP> DE <SEP> LIAISONS <SEP> DE <SEP> MASQUE <SEP> DE <SEP> BALAYAGE
<tb> Adresse <SEP> de <SEP> Longueur <SEP> Longueur <SEP> Longueur
<tb> Test <SEP> début <SEP> de <SEP> de <SEP> du <SEP> bloc <SEP> du <SEP> bloc
<tb> segment <SEP> segment <SEP> de <SEP> départ <SEP> d'extrémité
<tb> 0 <SEP> (ABCD) <SEP> 3500 <SEP> 3500 <SEP> 0
<tb> 1 <SEP> (B) <SEP> 1500 <SEP> 1000 <SEP> 500
<tb> 2 <SEP> (C) <SEP> 500 <SEP> 500 <SEP> 1500
<tb> 3 <SEP> (B) <SEP> 1500 <SEP> 1000 <SEP> 500
<tb> 4 <SEP> (ABC) <SEP> 3000 <SEP> 5000 <SEP> 0
<tb>
<Desc/Clms Page number 35>
Figure img00350001

r La Figure 7 illustre le procédé d'imbrication pour trois suites de balayage (suite introduite par balayage 187, suite de sortie de balayage 189 et suite de masque de balayage 191) sur l'échelle de temps d'horloge de balayage 181 conformément à une forme de réalisation. Les échelles de temps 181 sont mesurées en unités d'une centaine de cycles d'horloge de balayage. Les échelles de temps 181 sont divisées par six lignes verticales formées de tirets qui représentent six transitions entre les modes de test du dispositif DUT 193 A-F ; chaque transition 193A-F entre les modes de test du dispositif DUT délimite un événement de test de balayage imbriqué marqué 0 à 5. (On notera que N séquences de données de test requièrent N + 1 intervalles de test de balayage pour l'exécution du traitement étant donné que seules des données introduites par balayage sont traitées pendant le premier intervalle de test de balayage ; par conséquent le traitement des cinq séquences de données de balayage représentées dans les tables de liaisons du tableau 3 requiert six intervalles de balayage pour le traitement.
Ce traitement va être décrit ci-après en référence à la Figure 7). Les transitions 193A-F entre les modes de test et le dispositif DUT sont représentées par des lignes verticales de manière à indiquer à la fois qu'aucun cycle d'horloge de balayage ne se déroule lorsque le dispositif DUT est placé dans un mode normal, et que l'imbrication est exécutée entièrement pendant le mode de balayage. Comme cela a été décrit précédemment, dans un mode de mise en oeuvre, les contrôleurs de suites 17,19, 21 (Figure 2) traitent les tables de liaisons ligne par ligne, d'une manière indépendante les unes des autres, en réponse à une commande d'incréments de balayage provenant du séquenceur global. Les lignes sont traitées dans l'ordre suivant : la longueur du bloc de départ, le segment de données de balayage et la longueur du bloc d'extrémité. Les segments de données de balayage sur la Figure 7 sont représentés par des blocs comportant des lignes en diagonale. En fonctionnement, les contrôleurs de suites transmettent un bit de données par cycle d'horloge de balayage (c'est-à-dire la commande d'incréments de balayage) pour le nombre de cycles d'horloge de balayage spécifié par le bloc et les longueurs de segments de données de balayage ; les contrôleurs de suites transmettent de façon typique des données fictives lors du traitement de longueurs de blocs.
<Desc/Clms Page number 36>
Figure img00360001

r Ce processus va être illustré ci-après en référence à une suite 187 introduite par balayage (et sa table respective de liaisons introduite par balayage), mais toutes les suites de balayage (par exemple les suites de sortie de balayage et les suites de masques de balayage) sont traitées de la même manière que dans cette forme de mise en oeuvre.
En référence à la Figure 7, dans un mode de mise en oeuvre, le contrôleur de suites introduites par balayage traite la table de liaisons introduite par balayage comme cela est prévu dans le tableau 3. Le processus se déroule comme suit :
Test 0 à balayage d'entrée. Le contrôleur de suites introduites par balayage commence à lire la ligne 1 de la table de liaisons introduites par balayage ; étant donné que la longueur du bloc de départ est zéro, des segments de données de balayage sont traitées immédiatement pendant 3500 cycles d'horloge de balayage comme cela est spécifié par la longueur du segment de données de balayage. Il en résulte que les modules A, B, C et D de la chaîne de balayage 103 (Figure 4) sont remplis ; ceci est représenté sous la forme de blocs marqués A, B, C et D et possédant des lignes diagonales dans le test 0 de la suite 187 introduite par balayage.
Comme cela a été décrit précédemment, dans un mode de mise en oeuvre, le test 0 se termine et la transition 193A du mode de test DUT commence lorsque les segments de données introduites par balayage ont été complètement introduits par balayage dans le dispositif DUT.
Test à balayage d'entrée 1 : Le contrôleur de suites introduites par balayage traite maintenant la longueur du bloc d'extrémité sur la ligne 1, au moyen de la transmission de données fictives pour 1000 cycles d'horloge de balayage ; ceci est représenté sous la forme du bloc marqué"EP"lors du test 2 de la suite 187 introduite par balayage. Ceci achève le traitement de la ligne 1 de la table de liaisons introduites par balayage (tableau 3) et le contrôleur de suites introduites par balayage commence alors automatiquement le traitement de données comme cela est spécifié par la ligne 2. Dans la ligne de traitement 2, le contrôleur de suites introduites par balayage transmet tout d'abord des données fictives pour 1000 cycles d'horloge de balayage comme cela est spécifié par la longueur des blocs de départ ; ceci
<Desc/Clms Page number 37>
Figure img00370001

r est représenté sous la forme du bloc marqué"SP"et [A] lors du test 1 ou dans la suite 187 introduite par balayage. (L'indication entre crochets "lA]"indique que les données de blocs de départ représentent des données fictives pour le module de remplissage A). Le contrôleur de suites introduites par balayage transmet alors un segment de données introduites par balayage pour 1500 cycles d'horloge de balayage comme cela est spécifié par la longueur des segments de données de balayage ; ceci est représenté sous la forme du bloc possédant des lignes diagonales marquées "B"dans la suite 187 introduite par balayage (le"B"indique que les données de segments remplissent le volume B dans le dispositif DUT). Le test 1 se termine alors étant donné que le segment de données introduites par balayage a été complètement introduit par balayage dans la chaîne de balayage, ce qui prépare l'arrivée de la transition 193B du mode de test du dispositif DUT.
Test 2 à balayage d'entrée : Le contrôleur de la suite introduite par balayage commence automatiquement à traiter la ligne 3'étant donné que la longueur du bloc d'extrémité pour la ligne 2 est zéro (tableau 3). Sur la ligne 3, des données fictives sont transmises pour 1500 cycles d'horloge de balayage comme cela est spécifié par une valeur du bloc de départ ; ceci est représenté sous la forme du bloc marqué"SP"et" [AB]". Un segment de données de balayage est ensuite balayé pendant 500 cycles d'horloge de balayage (longueur du segment de données de balayage) ; ceci est représenté par le bloc suivant (comportant des lignes diagonales) dans la suite 187 introduite par balayage, marquée"C". Le test 2 se termine alors étant donné que le segment de données introduites par balayage a été complètement introduit par balayage dans la chaîne de balayage, ce qui provoque la transition 193C du mode de test du dispositif DUT. Des données introduites par balayage par les tests 3-4 sont calculées de la même manière que pour les tests 0-2. Le test 5, qui est le dernier test dans la séquence de tests, est constitué par un seul bloc d'extrémité, dans lequel le contrôleur de suites introduites par balayage transmet des données fictives pendant la durée du test. Ceci est représenté sous la forme du bloc marqué "EP"lors du test 5.
<Desc/Clms Page number 38>
Figure img00380001

r La suite 189 de sortie de balayage et la suite de masque de balayage 191 (et leurs tables de liaisons respectives) sont traitées de la même manière que la suite introduite par balayage (et la table de liaisons). Comme cela est représenté sur la Figure 7, cela signifie que lors du test 0 de la suite de sortie de balayage, le contrôleur de la suite de sortie de balayage et le contrôleur de suites de masques de balayage transmettent des données fictives comme cela est spécifié par les blocs de départ dans la ligne 1 de leurs tables de liaisons respectives ; ceci est nécessaire étant donné qu'aucune donnée dans la chaîne de balayage n'a encore été traitée. En outre, dans la forme de réalisation de la Figure 5, tous les états de la chaîne de balayage remplie par un segment de données introduites par balayage sont testés ; par conséquent, le segment de données du masque de balayage pour chaque test a une longueur et un cadencement identiques à ceux du segment correspondant de données de sortie de balayage. D'autres formes de mise en oeuvre peuvent chercher à tester uniquement un sous-ensemble d'états dans un module de dispositif DUT ; ceci est obtenu au moyen d'un segment de données de masque de balayage ayant une longueur et un cadencement appropriés. De façon typique, le segment de données de masque de balayage est une séquence de uns logiques (des données de segments qui ne sont pas des données de segments de masque de balayage sont des zéros logiques) pour indiquer qu'une séquence d'adaptation de bits traités de la chaîne de balayage (états) doivent être testés au moyen d'une adaptation d'un segment de données de sortie de balayage lors d'une itération particulière du test de balayage. Le cadencement et la longueur de segments de données de masque de balayage dépendent du dispositif DUT, et de façon typique sont créés par un ordinateur à usage général comportant un logiciel d'application spécialisé ; il est téléchargé ultérieurement dans la mémoire de balayages de l'appareil effectuant le test avant l'exécution d'un test. Le logiciel d'application de programmation pour le calcul de valeurs de la longueur de bloc conformément aux organigrammes représentés sur les Figures 5 et 6 est exécuté conformément à des techniques classiques de programmation.
En résumé, comme cela est représenté sur la Figure 7, l'imbrication de suites de balayage est exécutée au moyen du cadencement de traitement de
<Desc/Clms Page number 39>
Figure img00390001

r segments de données de balayage à l'aide de longueurs de blocs ; ceci conduit à des économies du point de vue temps de traitement, mémoire de balayage et finalement coût du test.
La présente description n'est censée limiter en aucune manière la présente invention.
<Desc/Clms Page number 40>
Figure img00400001

LÉGENDES DES FIGURES FIGURE 1 1. Séquenceur global 3. Module de suite de balayages 5A, 5B, 5C, 5N. Séquenceur local 7. Bus de transmission de données de l'unité centrale CPU FIGURE 2 : 15A, 15B, 15C, 15D. Tampon de données 11. Mémoire de balayages 9. Contrôleur de la mémoire de balayages 13. Mémoire de tables de liaisons 14. Tampon de données 7. Bus de transmission de données de l'unité centrale CPU 17. Contrôleur de suite (entrée par balayage) 19. Contrôleur de suite (sortie de balayage) 21. Contrôleur de suite (masque de balayage) FIGURE 3 : 31. Table de liaisons introduite par balayage 33. Table de liaisons de sortie de balayage 35. Table de liaisons de masques de balayage 11. Mémoire de balayage a. Adresse du début de segment b. Longueur de segment c. Longueur du bloc de départ d. Longueur du bloc d'extrémité e. Adresse FIGURE 4 : a. Données introduites par balayage b. Données de sortie de balayage
<Desc/Clms Page number 41>
Figure img00410001

FIGURE 5 I 125. La longueur suivante de données introduites par balayage est-elle inférieure à la longueur actuelle de données de sortie de balayage ? 127. La longueur actuelle du bloc d'extrémité introduit par balayage est égale à zéro.
129. La longueur actuelle du bloc d'extrémité introduit par balayage est égale à la longueur actuelle des données de sortie de balayage moins la longueur suivante de données introduites par balayage 131. La longueur du bloc actuel de départ est égale à la longueur du bloc actuel de départ introduit par balayage plus la longueur des données actuelles introduites par balayage. La longueur du segment actuel introduit par balayage 133. Le dernier test de la séquence de tests de balayage a-t-il été atteint ? 135. Le test suivant introduit par balayage devient le test actuel introduit par balayage 137. La longueur du tampon d'extrémité introduit par balayage pour la dernière séquence de tests de balayage est égale à la longueur des données de sortie de balayage pour la dernière séquence de tests de balayage a. Départ b. Fin Sur cette Figure remplacer YES par OUI et NO par NON.
FIGURE 6 : 151. Le premier bloc de départ de sortie de balayage est égal à la longueur des premières données introduites par balayage 153. La longueur de données suivantes introduites par balayage est-elle supérieure à la longueur actuelle de données de sortie de balayage ? 155. La longueur du bloc actuel d'extrémité de sortie par balayage est égale à zéro 157. La longueur du bloc actuel d'extrémité de sortie de balayage est égale à la longueur des données suivantes introduites par balayage moins la longueur des données actuelles de sortie de balayage 159. La longueur du bloc de départ ? ? ? ? ? ? ? ? ? actuel de sortie de balayage est égale à la longueur du bloc de départ actuel de sortie de balayage plus la
<Desc/Clms Page number 42>
Figure img00420001

r longueur actuelle de données de sortie de balayage moins la longueur actuelle de segments de sortie de balayage 161. Un dernier test dans la séquence de tests de balayage a-t-il été atteint ? 163. Le test suivant de sortie de balayage devient le test actuel de sortie de balayage 165. La longueur du bloc de départ de sortie de balayage pour la dernière séquence de tests de balayage est égale à la longueur du bloc de départ de sortie de balayage pour la dernière séquence de tests plus la longueur des données de sortie de balayage pour la dernière séquence de tests de balayage moins la longueur du segment de sortie de balayage pour la dernière séquence de tests de balayage a. Départ b. Fin Sur cette Figure remplacer YES par OUI et NO par NON.
FIGURE 7 : 185. Test 187. Suite de données introduites par balayage 189. Suite de données de sortie de balayage
191. Suite de données de masque de balayage a. Cycles d'horloge de balayage x 100

Claims (23)

r--REVENDICATIONS
1. Procédé pour traiter une séquence de données de test d'exploration pour tester un dispositif comprenant des circuits, caractérisé en ce qu'il comprend les étapes opératoires consistant à : - séparer la séquence de données de test par balayage en au moins deux suites de balayage, chaque suite de balayages comprenant une séquence de segments de données de balayage, et - pour chaque suite de balayages : - mémoriser différents segments de données de balayage d'une manière contiguë dans une mémoire ; - délivrer une information de traitement associée à chaque segment de données de balayage, et - tester le dispositif formé de circuits par application de la séquence de segments de données de balayage à ce dispositif.
2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape consistant à prévoir un pointeur pour chaque segment de données de balayage dans l'information de traitement associée au segment de données de balayage.
3. Procédé selon la revendication 2, caractérisé en ce qu'il comprend en outre l'étape consistant à ranger séquentiellement les pointeurs dans le même ordre que la séquence de segments de données de balayage.
4. Procédé selon la revendication 2, caractérisé en ce qu'il comprend en outre l'étape consistant à équiper chaque pointeur de l'adresse de départ dans la mémoire du segment de données de balayage associé au pointeur.
5. Procédé selon la revendication 3, caractérisé en ce qu'il comprend en outre l'étape consistant à équiper chaque pointeur d'une longueur de segment de données de balayage pour le segment de données de balayage associé au pointeur.
6. Procédé selon la revendication 2, caractérisé en ce qu'il comprend en outre l'étape consistant à séparer la séquence de données de test de balayage en au moins une suite entrée par balayage entrant et une suite de
Figure img00430002
i
<Desc/Clms Page number 44>
r sortie de balayage, la suite entrée par balayage comprenant une séquence de segments de données entrés par balayage, que la suite de sortie de balayage inclut une séquence de segments de données de sortie de balayage.
Figure img00440001
7. Procédé selon la revendication 5, caractérisé en ce qu'il comprend en outre l'étape consistant à séparer la séquence de données de test de balayage en au moins une suite entrée par balayage et une suite de sortie de balayage, la suite entrée par balayage incluant une séquence de segments de données entrés par balayage, et que la suite de sortie de balayage inclut une séquence de segments de données de sortie de balayage.
8. Procédé selon la revendication 7, caractérisé en ce qu'il comporte en outre l'étape consistant à séparer la séquence de données de test de balayage en une suite de masques de balayage incluant une séquence de segments de données de masques de balayage.
9. Procédé selon la revendication 6, caractérisé en ce qu'il comprend en outre l'étape consistant à : - pour chaque segment de données de balayage, calculer au moins une valeur de retard de traitement, et - pour chaque intervalle de balayage, imbriquer le traitement des segments de données de balayage au moyen d'un cadencement du traitement des segments de données de balayage en fonction de la valeur de retard de traitement de chaque segment de données de balayage.
10. Procédé selon la revendication 8, caractérisé en ce qu'il comprend en outre les étapes consistant à : - pour chaque segment de données de balayage, calculer au moins une valeur de retard de traitement, et - pour chaque intervalle de balayage, imbriquer le traitement des segments de données de balayage au moyen d'un cadencement du traitement des segments de données de balayage en fonction de la valeur de retard de traitement de chaque segment de données de balayage.
<Desc/Clms Page number 45>
r
11. Procédé selon la revendication 10, caractérisé en ce qu'il comprend en outre l'étape consistant à affecter la valeur de retard de traitement calculée pour chaque segment de données de sortie de balayage dans la séquence de segments de données de sortie de balayage, à chaque segment de données de masque de balayage correspondant dans la séquence de segments de données de masque de balayage.
Figure img00450001
12. Procédé selon la revendication 9, caractérisé en ce qu'il comprend en outre l'étape consistant à calculer la valeur de retard de traitement pour un segment de données de balayage dans un intervalle actuel de balayage par alignement du segment suivant de données entrées par balayage de manière qu'il soit entièrement balayé lors du dernier cycle d'horloge de balayage de l'intervalle de balayage actuel, et par alignement du début des données actuelles de sortie de balayage dans le premier cycle d'horloge de balayage de l'intervalle de balayage actuel, la longueur de l'intervalle de balayage actuel étant supérieure à la longueur de données suivantes entrées par balayage et de la longueur des données actuelles de sortie de balayage.
13. Procédé selon la revendication 11, caractérisé en ce qu'il comprend en outre l'étape consistant à calculer la valeur de retard de traitement pour un segment de données de balayage dans un intervalle actuel de balayage par alignement du segment de données suivantes entrées par balayage de manière qu'il soit entièrement balayé lors du dernier cycle d'horloge de balayage de l'intervalle de balayage actuel, et par alignement du début des données actuelles de sortie de balayage dans le premier cycle d'horloge de balayage de l'intervalle de balayage actuel, la longueur de l'intervalle de balayage actuel étant supérieure à la longueur des données suivantes entrées par balayage et de la longueur de données actuelles de sortie de balayage.
14. Procédé selon la revendication 12, caractérisé en ce qu'il comprend en outre l'étape consistant à associer une longueur de bloc de début et une longueur de bloc de fin à chaque valeur de retard de traitement.
15. Procédé selon la revendication 13, caractérisé en ce qu'il comprend en outre l'étape consistant à associer une longueur de bloc de début et une longueur de bloc de fin à chaque valeur de retard de traitement.
<Desc/Clms Page number 46>
r
16. Procédé selon la revendication 2, caractérisé en ce qu'il comprend en outre les étapes consistant à : - déterminer si l'information de traitement associée au segment de données de balayage est égale à une ou plusieurs premières valeurs prédéterminées, et si l'information de traitement associée au segment de données de balayage est égale à la première valeur prédéterminée, traiter alors la suite de balayages séquentiellement à partir d'un bloc contigu de la mémoire en partant d'un emplacement dans la mémoire indiqué par le pointeur associé au segment de données de balayage.
Figure img00460001
17. Procédé selon la revendication 15, caractérisé en ce qu'il comprend en outre les étapes consistant à - déterminer si) a longueur du segment de données de balayage, la longueur du bloc de départ et la longueur du bloc d'extrémité pour le segment de données de balayage est égale à une ou plusieurs premières valeurs prédéterminées, et si la longueur du segment de données de balayage, la longueur du bloc de départ et la longueur du bloc de fin pour un segment de données de balayage est égale à la première valeur prédéterminée, traiter alors la suite de balayages d'une manière séquentielle à partir d'un bloc contigu de la mémoire en partant d'un emplacement situé dans la mémoire et indiqué par le pointeur associé au segment de données de balayage.
18. Procédé selon la revendication 1, caractérisé en ce qu'il comprend
Figure img00460002
en outre les étapes consistant à - associer un premier indicateur à chaque segment de données de balayage, - déterminer si le premier indicateur est égal à une seconde valeur prédéterminée, et - si le premier indicateur est égal à la seconde valeur prédéterminée, traiter alors le segment de données de balayage à partir de l'infor-
<Desc/Clms Page number 47>
mation incluse dans l'information de traitement associée au segment de données de balayage.
Figure img00470001
19. Procédé selon la revendication 1, caractérisé en ce qu'il comprend les étapes consistant à - associer un premier indicateur et un second indicateur à chaque segment de données de balayage, - déterminer si le premier indicateur est égal à une seconde valeur prédéterminée,
Figure img00470002
- si le premier indicateur est égal à la seconde valeur prédéterminée, alors : - déterminer si le second indicateur est égal à la troisième valeur prédéterminée, et - si le second indicateur est égal à la première valeur prédé- terminée, alors : - récupérer un nombre de répétitions à partir de l'infor- mation incluse dans l'information de traitement associée au segment de données de balayage, et traiter le segment de données de balayage à partir de l'information incluse dans l'information de traitement associée au segment de données de balayage successive- ment certain nombre de fois égal au nombre de répétitions avant de traiter un segment de données de balayage suivant dans la séquence de segments de données de balayage.
20. Procédé de traitement d'une séquence de données de test de balayage pour tester un dispositif formé de circuits, caractérisé en ce qu'il comprend les étapes consistant à : diviser la séquence de données de test de balayage en une première suite de balayages incluant une séquence de segments de données entrées par balayage, et une seconde suite de balayages, incluant une séquence de segments de données de sortie de balayage, et - pour chaque suite de balayages
<Desc/Clms Page number 48>
r - mémoriser de façon contiguë les différents segments de données de balayage dans une mémoire, - prévoir une information de traitement incluant un pointeur désignant chaque segment de données de balayage dans la mémoire, et tester le dispositif formé de circuits par application, à ce disposi- tif, de la séquence de segments de données de balayage, et pour chaque segment de données de balayage : - calculer au moins une valeur de retard de traitement, la valeur du retard de traitement pour un segment de données de balayage dans un intervalle de balayage actuel étant calculée par alignement du segment de données suivantes entrées par balayage de sorte qu'il est entièrement balayé sur le dernier cycle d'horloge de balayage de l'intervalle de balayage actuel, et aligner le début des données actuelles de sortie de balayage du premier cycle d'horloge de balayage de l'intervalle de balayage actuel, la longueur de l'intervalle de balayage actuel étant supérieure à la longueur de données suivantes entrées par balayage et à la longueur de données actuelles de sortie de balayage, et - associer la valeur de retard de traitement au segment de données de balayage dans l'information de traitement, pour chaque intervalle, imbriquer le traitement des segments de données de balayage par commande cadencée du traitement des segments de données de balayage en fonction de la valeur de retard de traitement de chaque segment de données de balayage.
Figure img00480001
21. Module de commande séquentielle de balayage pour un appareil servant à tester des circuits intégrés, caractérisé en ce que le module de commande séquentielle de balayage comprend : - au moins une mémoire (11) qui mémorise des données d'une suite de balayages, les données de la suite de balayages incluant une séquence
<Desc/Clms Page number 49>
de segments de données de balayage et des données associées d'une table de liaisons, - au moins un contrôleur de mémoire (9) couplé à la mémoire, ce qui a pour effet que des segments de données de balayage sont reçus depuis la mémoire comme cela est déterminé par la donnée de la table de liaison, et - au moins un contrôleur de suites (17,19, 21) couplé au contrôleur de mémoire, ce qui a pour effet que des bits de segments de données de balayage ou des bits de données fictifs sont transmis à un dispositif soumis au test, de la manière déterminée par les données de la table de liaisons.
Figure img00490001
22. Module de commande séquentielle de balayage selon la revendication 21, caractérisé en ce qu'au moins un tampon de données (14) est branché entre le contrôleur de suites et le contrôleur de la mémoire de balayages.
23. Module de commande séquentielle de balayage selon la revendication 21, caractérisé en ce qu'il comporte en outre un séquenceur global (1) couplé aux contrôleurs de suites (17,19, 21), ce qui a pour effet que des données de balayage sont transmises par les contrôleurs de suites en réponse à chaque signal d'incrément de balayage reçu de la part du séquenceur global.
FR0113588A 2000-10-24 2001-10-22 Commande sequentielle de suites de balayages pour tester des circuits integres Expired - Fee Related FR2815722B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/696,102 US6748564B1 (en) 2000-10-24 2000-10-24 Scan stream sequencing for testing integrated circuits

Publications (2)

Publication Number Publication Date
FR2815722A1 true FR2815722A1 (fr) 2002-04-26
FR2815722B1 FR2815722B1 (fr) 2004-09-10

Family

ID=24795710

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0113588A Expired - Fee Related FR2815722B1 (fr) 2000-10-24 2001-10-22 Commande sequentielle de suites de balayages pour tester des circuits integres

Country Status (6)

Country Link
US (3) US6748564B1 (fr)
JP (1) JP2002196050A (fr)
KR (1) KR20020032349A (fr)
DE (1) DE10150321A1 (fr)
FR (1) FR2815722B1 (fr)
TW (1) TW520443B (fr)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748564B1 (en) 2000-10-24 2004-06-08 Nptest, Llc Scan stream sequencing for testing integrated circuits
US20030171906A1 (en) * 2002-03-11 2003-09-11 Ishwardutt Parulkar Method for transforming stand-alone verification tests for an embedded block into serial scan test patterns for detecting manufacturing defects
US7464310B2 (en) * 2002-09-30 2008-12-09 Broadcom Corporation Programmable state machine of an integrated circuit
US7155652B1 (en) * 2003-05-27 2006-12-26 Advanced Micro Devices, Inc. Digital signal processing for real time classification of failure bitmaps in integrated circuit technology development
JP2005043204A (ja) * 2003-07-22 2005-02-17 Advantest Corp パターン発生器、及び試験装置
US7047468B2 (en) * 2003-09-25 2006-05-16 International Business Machines Corporation Method and apparatus for low overhead circuit scan
DE60321010D1 (de) * 2003-11-26 2008-06-26 Texas Instruments Inc Scan-testbarer FIFO-Speicher
US20050229064A1 (en) * 2004-04-12 2005-10-13 Guidry David W Methods and systems for digital testing on automatic test equipment (ATE)
WO2006123204A1 (fr) * 2005-05-19 2006-11-23 Freescale Semiconductor, Inc. Methode et dispositif pour tester un circuit integre a haute vitesse
US7386775B2 (en) * 2005-08-18 2008-06-10 International Business Machines Corporation Scan verification for a scan-chain device under test
US7415678B2 (en) * 2005-11-15 2008-08-19 Synopsys, Inc. Method and apparatus for synthesis of multimode X-tolerant compressor
US7761751B1 (en) 2006-05-12 2010-07-20 Credence Systems Corporation Test and diagnosis of semiconductors
US7908531B2 (en) * 2006-09-29 2011-03-15 Teradyne, Inc. Networked test system
KR100866957B1 (ko) * 2007-02-08 2008-11-05 삼성전자주식회사 데이터 프로그램 시간을 단축시킨 불휘발성 메모리 장치 및그 구동방법
US7689886B2 (en) * 2007-07-18 2010-03-30 International Business Machines Corporation System and method for predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification and validation
US7661023B2 (en) * 2007-07-18 2010-02-09 International Business Machines Corporation System and method for verification of cache snoop logic and coherency between instruction & data caches for processor design verification and validation
US7647539B2 (en) * 2007-07-18 2010-01-12 International Business Machines Corporation System and method of testing using test pattern re-execution in varying timing scenarios for processor design verification and validation
US7584394B2 (en) 2007-07-18 2009-09-01 International Business Machines Corporation System and method for pseudo-random test pattern memory allocation for processor design verification and validation
US8127192B2 (en) * 2007-07-18 2012-02-28 International Business Machines Corporation Predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification/validation in interrupt mode
US7747908B2 (en) * 2007-07-18 2010-06-29 International Business Machines Corporation System and method for creating different start cache and bus states using multiple test patterns for processor design verification and validation
US7739570B2 (en) * 2007-07-18 2010-06-15 International Business Machines Corporation System and method for increasing error checking performance by calculating CRC calculations after multiple test patterns for processor design verification and validation
US7949921B2 (en) * 2007-09-21 2011-05-24 Synopsys, Inc. Method and apparatus for synthesis of augmented multimode compactors
US7882409B2 (en) * 2007-09-21 2011-02-01 Synopsys, Inc. Method and apparatus for synthesis of augmented multimode compactors
US8185694B2 (en) * 2008-07-25 2012-05-22 International Business Machines Corporation Testing real page number bits in a cache directory
AT507228B1 (de) * 2008-07-30 2010-08-15 Fronius Int Gmbh Verfahren und vorrichtung zur formung des schweissdrahtendes
US8719649B2 (en) * 2009-03-04 2014-05-06 Alcatel Lucent Method and apparatus for deferred scheduling for JTAG systems
JP5463210B2 (ja) * 2010-06-07 2014-04-09 富士フイルム株式会社 内視鏡システム
US8693529B2 (en) * 2012-04-02 2014-04-08 Litepoint Corporation Method for enabling a device under test (DUT) to retry a portion of a pre-defined test sequence
TWI472912B (zh) * 2012-09-11 2015-02-11 Univ Nat Cheng Kung 以電路內部事件作為觸發條件之除錯控制系統及其方法
US10345369B2 (en) 2012-10-02 2019-07-09 Synopsys, Inc. Augmented power-aware decompressor
US8739091B1 (en) 2012-11-19 2014-05-27 International Business Machines Corporation Techniques for segmenting of hardware trace and verification of individual trace segments
FR3025906B1 (fr) * 2014-09-16 2016-12-09 Schneider Electric Ind Sas Module d'entrees pour automate programmable industriel
JP6260566B2 (ja) * 2015-03-25 2018-01-17 株式会社オートネットワーク技術研究所 回路構成体
US10380303B2 (en) 2015-11-30 2019-08-13 Synopsys, Inc. Power-aware dynamic encoding
CN109863413B (zh) * 2016-05-20 2022-03-25 默升科技集团有限公司 Serdes应用中基于扫描的测试设计
US10107860B2 (en) * 2016-06-21 2018-10-23 International Business Machines Corporation Bitwise rotating scan section for microelectronic chip testing and diagnostics
US10768232B2 (en) * 2017-07-14 2020-09-08 International Business Machines Corporation ATE compatible high-efficient functional test

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606568A (en) * 1995-11-30 1997-02-25 Megatest Corporation Method and apparatus for performing serial and parallel scan testing on an integrated circuit
US5701309A (en) * 1992-12-02 1997-12-23 At&T Global Information Solutions Company Automated test equipment digital tester expansion apparatus
US5838694A (en) * 1997-04-28 1998-11-17 Credence Systems Corporation Dual source data distribution system for integrated circuit tester
US5923675A (en) * 1997-02-20 1999-07-13 Teradyne, Inc. Semiconductor tester for testing devices with embedded memory
US6049901A (en) * 1997-09-16 2000-04-11 Stock; Mary C. Test system for integrated circuits using a single memory for both the parallel and scan modes of testing
US6134687A (en) * 1997-12-19 2000-10-17 Nec Usa, Inc. Peripheral partitioning and tree decomposition for partial scan

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4687988A (en) * 1985-06-24 1987-08-18 International Business Machines Corporation Weighted random pattern testing apparatus and method
US4931723A (en) 1985-12-18 1990-06-05 Schlumberger Technologies, Inc. Automatic test system having a "true tester-per-pin" architecture
US4947357A (en) 1988-02-24 1990-08-07 Stellar Computer, Inc. Scan testing a digital system using scan chains in integrated circuits
US5029166A (en) 1989-05-31 1991-07-02 At&T Bell Laboratories Method and apparatus for testing circuit boards
US5122988A (en) 1989-09-21 1992-06-16 Schlumberger Tecnologies, Inc. Data stream smoothing using a FIFO memory
US5187712A (en) * 1990-02-26 1993-02-16 At&T Bell Laboratories Pseudo-exhaustive self-test technique
US5212443A (en) 1990-09-05 1993-05-18 Schlumberger Technologies, Inc. Event sequencer for automatic test equipment
US5321701A (en) 1990-12-06 1994-06-14 Teradyne, Inc. Method and apparatus for a minimal memory in-circuit digital tester
JPH04278475A (ja) * 1990-12-26 1992-10-05 Internatl Business Mach Corp <Ibm> 先読みパターン発生及びシミュレーションの方法及びシステム
DE69126199T2 (de) * 1991-02-21 1997-10-16 Ibm Integrierter Schaltkreis mit eingebautem Selbsttest für die Erkennung logischer Fehler
US5550843A (en) 1994-04-01 1996-08-27 Xilinx, Inc. Programmable scan chain testing structure and method
US5574731A (en) 1995-02-22 1996-11-12 National Semiconductor Corporation Set/reset scan flip-flops
US5913022A (en) 1995-08-31 1999-06-15 Schlumberger Technologies, Inc. Loading hardware pattern memory in automatic test equipment for testing circuits
US5701335A (en) 1996-05-31 1997-12-23 Hewlett-Packard Co. Frequency independent scan chain
JP3791859B2 (ja) 1996-10-30 2006-06-28 富士通株式会社 ネットワークのスキャンパスを階層的に構成するスキャン装置および方法
US5802075A (en) * 1997-01-16 1998-09-01 Unisys Corporation Distributed test pattern generation
US6014764A (en) 1997-05-20 2000-01-11 Schlumberger Technologies Inc. Providing test vectors with pattern chaining definition
US6242269B1 (en) * 1997-11-03 2001-06-05 Texas Instruments Incorporated Parallel scan distributors and collectors and process of testing integrated circuits
US5825787A (en) 1997-11-25 1998-10-20 Xilinx, Inc. System and method for accessing a test vector memory
US6014763A (en) 1998-01-15 2000-01-11 International Business Machines Corporation At-speed scan testing
US6557129B1 (en) * 1999-11-23 2003-04-29 Janusz Rajski Method and apparatus for selectively compacting test responses
US6769081B1 (en) * 2000-08-30 2004-07-27 Sun Microsystems, Inc. Reconfigurable built-in self-test engine for testing a reconfigurable memory
US6748564B1 (en) 2000-10-24 2004-06-08 Nptest, Llc Scan stream sequencing for testing integrated circuits

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701309A (en) * 1992-12-02 1997-12-23 At&T Global Information Solutions Company Automated test equipment digital tester expansion apparatus
US5606568A (en) * 1995-11-30 1997-02-25 Megatest Corporation Method and apparatus for performing serial and parallel scan testing on an integrated circuit
US5923675A (en) * 1997-02-20 1999-07-13 Teradyne, Inc. Semiconductor tester for testing devices with embedded memory
US5838694A (en) * 1997-04-28 1998-11-17 Credence Systems Corporation Dual source data distribution system for integrated circuit tester
US6049901A (en) * 1997-09-16 2000-04-11 Stock; Mary C. Test system for integrated circuits using a single memory for both the parallel and scan modes of testing
US6134687A (en) * 1997-12-19 2000-10-17 Nec Usa, Inc. Peripheral partitioning and tree decomposition for partial scan

Also Published As

Publication number Publication date
DE10150321A1 (de) 2002-05-29
KR20020032349A (ko) 2002-05-03
US6748564B1 (en) 2004-06-08
US20040255212A1 (en) 2004-12-16
FR2815722B1 (fr) 2004-09-10
US7454678B2 (en) 2008-11-18
US20060005096A1 (en) 2006-01-05
JP2002196050A (ja) 2002-07-10
TW520443B (en) 2003-02-11

Similar Documents

Publication Publication Date Title
FR2815722A1 (fr) Commande sequentielle de suites de balayages pour tester des circuits integres
EP0716421B1 (fr) Procédé pour contrôler une matrice de RAM dynamique
TWI324692B (en) Tester, method for testing a device under test and computer program
FR2626402A1 (fr) Procede et systeme pour controler ou tester fonctionnellement a grande vitesse et avec une grande precision des memoires se trouvant dans des unites a microprocesseurs
FR2636152A1 (fr) Processeur d&#39;images en pipeline
JP2006208378A (ja) バス検査のためのオンチップ回路
US20060247881A1 (en) Testing a device under test by sampling its clock and data signal
EP0074904B1 (fr) Automate de sécurité
FR2473753A1 (fr) Dispositif pour fournir des groupes de donnees corriges a un circuit de destination
CN116774016B (zh) 芯片测试方法、装置、设备及存储介质
EP0297398B1 (fr) Circuit de contrôle des impulsions de travail
US5166937A (en) Arrangement for testing digital circuit devices having tri-state outputs
CN1847868A (zh) Lsi的测试方法
US20140108687A1 (en) Gang Programming of Devices
US7865789B2 (en) System and method for system-on-chip interconnect verification
US5155733A (en) Arrangement for testing digital circuit devices having bidirectional outputs
CA1304821C (fr) Methode et dispositif de verification automatique pour memoire
US7610534B1 (en) Determining a length of the instruction register of an unidentified device on a scan chain
US8099640B2 (en) Shared diagnosis method for an integrated electronic system including a plurality of memory units
US20010007972A1 (en) Method and apparatus for verifying adequacy of test patterns
US20040093543A1 (en) Boundary-scan methods and apparatus
EP0344052B1 (fr) Mémoire modulaire
US5426649A (en) Test interface for a digital circuit
US20050289421A1 (en) Semiconductor chip
Zhao et al. Maximal diagnosis of interconnects of random access memories

Legal Events

Date Code Title Description
CD Change of name or company name
TP Transmission of property
TP Transmission of property
ST Notification of lapse

Effective date: 20090630