Brevet FR2815722A1 — publié le 20020426

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 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 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 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 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 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. 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 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 à - 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 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 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. 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 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é- 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 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 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 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. 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 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 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 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 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 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é- 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 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 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 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 Test 0 Test de tous les modules de la chaîne de balayage ABCD Test 1 Test de B uniquement B Test 2 Test de C uniquement C Test 3 Test de B uniquement B Test 4 Test de A, B et C ABC 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- 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 Entrée de Longueur Données Longueur des Module(s) Données Test données des don-de sortie données de DUT souTest de masque par ba- nées entrées de bala- sortie de mis au test de balayage layage par bala-yage yage balayage Longueur 0 ABCD 3500 DCBA 3500 DCBA 3500 1 [A] B 2500 tDC] B 2500 B 1500 2 [AB] C 3000 [D] C 1000 C 500 3 [A] B 2500 [DC] B 2500 B 1500 4 ABC 3000 [D]CBA 3500 CBA 3000 [D]CBA 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 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 1 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 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 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 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 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 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 comparée à la longueur actuelle des données de sortie de balayage. Lors du comparee 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 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 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). TABLEAU 3 EXEMPLES DE TABLES DE LIAISONS TABLE DE LIAISONS D'INTRODUCTION PAR BALAYAGE Adresse de Longueur Longueur Test début de du bloc de du bloc segment de segment départ d'extrémité 0 (ABCD) 3500 0 1000 1 (B) 1500 1000 0 2 (C) 500 2500 0 3 (B) 1500 1000 0 4 (ABC) 3000 0 3500 TABLE DE LIAISONS DE SORTIE DE BALAYAGE Adresse de Longueur Longueur Longueur Test début de de du bloc du bloc segment segment de départ d'extrémité 0 (ABCD) 3500 3500 0 1 (B) 1500 1000 500 2 (C) 500 500 1500 3 (B) 1500 1000 500 4 (ABC) 3000 5000 0 TABLE DE LIAISONS DE MASQUE DE BALAYAGE Adresse de Longueur Longueur Longueur Test début de de du bloc du bloc segment segment de départ d'extrémité 0 (ABCD) 3500 3500 0 1 (B) 1500 1000 500 2 (C) 500 500 1500 3 (B) 1500 1000 500 4 (ABC) 3000 5000 0 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. 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 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. 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 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. 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 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 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 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 i 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. 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. 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. 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. 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. 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 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- mation incluse dans l'information de traitement associée au segment de données de balayage. 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, - 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 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. 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 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. 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.