FR2896884A1 - Test de scan - Google Patents
Test de scan Download PDFInfo
- Publication number
- FR2896884A1 FR2896884A1 FR0600787A FR0600787A FR2896884A1 FR 2896884 A1 FR2896884 A1 FR 2896884A1 FR 0600787 A FR0600787 A FR 0600787A FR 0600787 A FR0600787 A FR 0600787A FR 2896884 A1 FR2896884 A1 FR 2896884A1
- Authority
- FR
- France
- Prior art keywords
- state machine
- electronic circuit
- test
- scan
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318555—Control logic
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
Un circuit électronique comprenant- un groupe de dispositifs, ledit groupe de dispositifs comprenant un dispositif de test de scan permettant de tester au moins une partie du circuit électronique, et- une machine d'états permettant de transférer des données depuis un plot d'entrée dédié à ladite machine d'états vers les dispositifs du groupe de dispositifs, ladite machine d'états étant adaptée pour supporter une pluralité de protocoles de transfert de données, le choix du protocole à utiliser étant effectué en fonction au moins d'un signal reçu sur ledit plot d'entrée.
Description
TEST DE SCAN
L'invention se rapporte au domaine du test de circuits électroniques, en particulier des circuits intégrés électroniques numériques. Un circuit électronique numérique est habituellement fabriqué à partir de ce qu'on appelle une description RTL (de l'anglais Register Transfer Level ) décrivant les opérations du circuit dans un langage de programmation approprié, par exemple le langage C, Verilog ou VHDL (de l'anglais Very High Speed Integrated Circuit Hardware Description Language ). Une description RTL peut habituellement être validée à l'aide d'outils logiciels de simulation.
Une description au niveau logique (appelée netlist en anglais), décrivant un ensemble de portes logiques (correspondant à des assemblages de transistors) et de connexions, peut être synthétisée à partir de la description RTL. Le fonctionnement d'une netlist peut être validé grâce à des tests fonctionnels.
Des étapes de placement et routage conduisent à un dessin des masques (appelé layout en anglais) à partir de la description au niveau logique. Ensuite, ce que l'on appelle un test LVS (de l'anglais Layout versus Schematic ) peut être exécuté afin de vérifier que le layout correspond bien à la description logique.
Puis le circuit est fabriqué à partir du layout. Le circuit fabriqué doit enfin être testé afin de vérifier qu'aucune porte logique n'est collée à une valeur fixe ( stuck at 0 or stuck at 1 en anglais), en raison de par exemple un court-circuit. Pour tester ainsi le circuit fabriqué, il est connu de pratiquer ce que l'on appelle un test de scan. Les tests de scan utilisent le principe selon lequel tout circuit numérique est constitué d'une partie combinatoire relativement aisée à tester et d'une partie séquentielle se limitant à des bascules de type D. Les bascules de type D peuvent être connectées entre elles grâce à des multiplexeurs pour permettre de contrôler aisément les signaux envoyés ou reçus de la partie combinatoire. La figure 1 montre un exemple de partie numérique d'un circuit électronique relativement simple apte à être testée par un test de scan. La partie numérique 1 comprend une partie séquentielle 2 et une partie combinatoire 3. La partie séquentielle 2 comprend des bascules 6A, 6B, 6c,..., de type D associées chacune à un multiplexeur 80A, 80B, 80c,..., et regroupées en une chaîne 2. Chacune des bascules 6A, 6B, 6c,..., comprend une entrée de données respectivement 7A, 7B, 7c,..., une entrée de scan respectivement 8A, 8B, 8c,..., une sortie respectivement 8B, 8c, 8p,..., une entrée d'horloge non représentée et une entrée d'autorisation contrôlée par un signal d'autorisation scan_en. Lorsque le signal d'autorisation est à un niveau logique '1', l'état logique des entrées de scan 8A, 8B, 8c,..., est recopié sur les sorties correspondantes 8B, 8c, 8p,... , à chaque front montant d'horloge. En revanche, lorsque le signal d'autorisation est à un état logique '0', l'état logique des entrées de données 7A, 7B, 7c,..., est recopié sur les sorties correspondantes 8B, 8c, 8p,..., à chaque front montant d'horloge. Le signal d'autorisation scan_en commande également un commutateur 9. Lorsque le signal scan_en est à un état logique `0', le signal scan_out à la sortie 5 du circuit électronique prend la valeur du signal Scomb à la sortie de la partie combinatoire 3, dite sortie fonctionnelle. Lorsque le signal scan_en est à un état logique '1', le signal scan_out à la sortie 5 prend la valeur du signal SSeq à la sortie de la partie séquentielle 2, dite sortie de scan.
La figure 2 montre des chronogrammes illustrant le fonctionnement d'un test de scan de la partie numérique représentée à la figure 1. Dans un premier temps, le signal scan_en prend une valeur non nulle pendant par exemple cinq cycles d'horloge, permettant ainsi des décalages au sein de la chaîne 2. La chaîne 2 comprenant cinq bascules, cinq cycles d'horloge sont donc nécessaires pour charger la chaîne avec des nouvelles valeurs d'entrée. Après ces cinq cycles, le signal scan_en passe à zéro. Les sorties des bascules prennent alors des valeurs imposées par des sorties dites secondaires 7B, 7c, 7p, 7E de la partie combinatoire 3. La valeur du signal Scomb est lue à la sortie dite primaire de la partie combinatoire 3, c'est-à-dire la sortie fonctionnelle. Suivent ensuite cinq nouveaux cycles de décalages au sein de la chaîne, le signal scan_en ayant repris une valeur non nulle. A chaque cycle d'horloge, une valeur du signal SSeq est lue à la sortie de la chaîne 2. Dit autrement, les sorties secondaires sont lues une à une durant ces cinq cycles dits cycles de purge. Ces cinq cycles de purge permettent en outre de recharger la chaîne avec de nouvelles valeurs d'entrée.
On appelle vecteur de test chaque séquence de cinq valeurs du signal d'entrée. Des procédés de gestion automatique de programme de test ou ATPG (de l'anglais Automatic Test Pattern Generator ) permettent de générer des vecteurs de test destinés à être placés à l'entrée scan_in de la chaîne. Les valeurs des signaux des vecteurs de test sont telles que, si le circuit fabriqué est fonctionnellement correct, toutes les connections doivent au moins une fois changer de valeur lors du déroulement du test de scan. En pratique, pour des circuits numériques plus complexes, la chaîne peut comprendre un nombre de bascules relativement élevé, par exemple de l'ordre du millier ou de la dizaine de milliers. Une telle longueur de chaîne rend la durée de lecture des valeurs des sorties secondaires relativement longue. Le test de scan est donc également relativement long. II est connu de disposer plusieurs chaînes relativement courtes plutôt qu'une seule chaîne relativement longue, afin d'éviter des durées de test trop élevées. Un seul signal d'entrée d'autorisation scan_en et un seul signal d'horloge clk peuvent commander toutes les chaînes. En revanche, à chaque chaîne de scan sont associées une entrée scan_in et une sortie scan out respectives. Le nombre de plots requis pour effectuer le test de scan augmente donc avec le nombre de chaînes. Ceci est un inconvénient. En effet, la complexité du routage des pistes de la carte comprenant le circuit électronique augmente avec le nombre de plots, ainsi que le risque de congestion. Il peut également être possible de réutiliser des plots déjà câblés, auquel cas un multiplexeur devra être prévu pour chaque plot réutilisable, ce qui risque de diminuer la vitesse de fonctionnement du circuit.
En outre, il peut éventuellement être nécessaire d'adapter les cellules de commande ( pads en anglais) des plots à réutiliser afin que les cellules de commande supportent d'autres types de signaux. La consommation augmente également avec le nombre de plots.
Une optimisation entre le nombre de plots et la durée du test doit donc être effectuée. En pratique, les vecteurs générés par les procédés ATPG contiennent relativement peu d'information efficace. Ceci est lié à la structure même de la logique combinatoire. Il est connu de tirer partie de cette inefficacité en utilisant, comme le montre la figure 3, des chaînes de scan 21, 22,..., 2N relativement courtes. Lesdites chaînes de scan 21, 22,..., 2N sont chargées par une combinaison logique d'un nombre réduit d'entrées appelées pseudo scan_in aux plots 14n. Ces combinaisons logiques sont réalisées par un décompresseur 10. Les sorties de ces chaînes courtes sont connectées à une logique de compression 13 dont les sorties appelées pseudo scan_out sont envoyées vers les plots 15i,..., 15n. Les procédés ATPG sont capable de générer des vecteurs dits compressés applicables directement aux plots 14n.. Ces vecteurs ont une longueur moindre que les vecteurs ATPG, de sorte que la durée du test est alors globalement plus faible. Sur la figure 3, la partie numérique 12 comprend une partie testée 11, des moyens de décompression 10 et des moyens de compression 13. La partie testée 11 comprend un nombre N relativement élevé de chaînes 21, 22,..., 2N et des parties combinatoires non représentées sur la figure 3.
La partie testée 11 est reliée à un plot 16 d'autorisation, à un plot d'horloge 17 et à un plot 18 de remise à zéro du test de scan. Par ailleurs, un registre de commande 20 ou TMC (de l'anglais Test Mode Control ) permet de mémoriser certains paramètres de commande de certaines parties analogiques non représentées, comme par exemple une boucle à verrouillage de phase ou PLL (de l'anglais Phase-Locked Loop ), ou bien encore un multiplexeur. Ces paramètres commandent par exemple le branchement d'une PLL, ou bien encore la programmation d'un multiplexeur. Le TMC 20 permet ainsi de placer le circuit fabriqué dans un mode désiré, et en particulier dans un mode de test désiré. Le TMC 20 peut par exemple être programmé via une interface standard, par exemple I2C (de l'anglais Inter Integrated Circuit ). Cette programmation requière généralement au moins un plot numérique 19.
Les moyens de décompression 10 permettent de transformer un nombre n relativement faible de vecteurs d'entrée compressés en N vecteurs d'entrée de chaîne. Les moyens de compression 13 permettent de transformer N vecteurs de sortie de chaîne en n vecteurs de sortie compressés. N peut par exemple être de l'ordre de la centaine, tandis que n peut être de l'ordre de la dizaine. Il est ainsi possible d'obtenir des durées de test relativement courtes, du fait du nombre N de chaînes 21, 22, ..., 2N, avec un nombre relativement faible 2*n de plots 141, 14n, 151,...,15n. Toutefois, une compression n'est efficace qu'à partir d'un certain nombre de vecteurs, typiquement 7 ou 8. Ainsi, pour n=8, le taux de compression est d'environ 50, de sorte que N est d'environ 400. Pour n=5, le taux de compression est d'environ 10 seulement. Or, pour un nombre n de 8, huit plots d'entrée 141, 14n et huit plots de sortie 151,...,15n dédiés au test de scan sont requis, soit seize plots à ajouter au plot d'autorisation 16, au plot d'horloge 17, au plot de remise à zéro du test de scan 18 et au plot numérique 19. Ainsi, dans le cas de circuits comprenant un nombre relativement réduit de plots, cette compression ne peut être effectuée de manière efficace, de sorte que la durée du test peut encore être relativement élevée. La spécification IEEE 1149.1 propose d'utiliser une machine d'états afin de diminuer le nombre de plots dédiés (c'est à dire réservés) au test de scan. La machine d'états est contrôlée par un certain nombre de plots dédiés à la machine d'états : un plot TMS de commande, un plot TDI de données, un plot TCK d'horloge, un plot TRSTN de remise à zéro et un plot TDO de sortie. La machine d'états permet de transmettre les données reçues au plot TDI de données à l'entrée de la chaîne souhaitée en utilisant un protocole prédéfini. Toutefois, compte tenu de la complexité du test de scan, cette gestion peut se révéler inopérante, en particulier dans le cas d'une compression.
De manière générale, les tests de scan connus requièrent un certain nombre de plots réservés au test de scan. La présente invention a pour objectif de limiter le nombre de plots ainsi dédiés au test de scan, afin de réduire l'encombrement associé.
Selon un premier aspect, l'invention a pour objet un circuit électronique comprenant un groupe de dispositifs, ledit groupe de dispositifs comprenant un dispositif de test de scan permettant de tester au moins une partie du circuit électronique, et une machine d'états permettant de transférer des données depuis un plot d'entrée dédié à ladite machine d'états vers les dispositifs du groupe de dispositifs. La machine d'états est adaptée pour supporter une pluralité de protocoles de transfert de données, le choix du protocole à utiliser étant effectué en fonction au moins d'un signal reçu sur ledit plot d'entrée. La machine d'états peut ainsi passer d'un état à l'autre en fonction du signal reçu sur le plot d'entrée réservé à la machine d'états. L'état dans lequel se trouve la machine d'états permet d'adresser tel ou tel dispositif du groupe de dispositifs pour le transfert des données, ce qui permet de diminuer le nombre de plots nécessaires au fonctionnement de ces dispositifs.
De plus, la machine d'états est adaptée pour utiliser sélectivement l'un parmi plusieurs protocoles de transfert de données : cette souplesse permet de diminuer le nombre de plots réservés à la machine d'états. Par exemple, seul le plot d'entrée peut être réservé à la machine d'états, les autres plots impliqués dans le fonctionnement de la machine d'états étant sollicités uniquement lorsque la machine d'états se trouve dans certains états. Alternativement, un ou plusieurs autres plots, par exemple un plot de sortie, peuvent également être réservé à la machine d'états. Le circuit électronique, par exemple un circuit intégré, peut ainsi mettre en oeuvre un test de scan avec relativement peu de plots dédiés au test de 30 scan. Dans un exemple, la pluralité de protocoles que la machine d'états est adaptée pour supporter peut comprendre au moins un protocole dans lequel le signal reçu à un plot d'horloge joue le rôle de signal d'horloge de la machine d'états, et au moins un protocole dans lequel le rôle de signal d'horloge de la machine d'états est assuré par un autre signal. Ainsi, la machine d'états peut décider de solliciter le plot d'horloge seulement si besoin est, de sorte qu'un plot d'horloge réservé à la machine d'état n'est pas forcément nécessaire. Dans un exemple, la machine d'états est adaptée pour être placée sélectivement dans l'un parmi une pluralité de modes de fonctionnement comprenant un mode de test de scan. La pluralité de protocoles que la machine d'états est adaptée pour supporter peut alors comprendre au moins deux protocoles de fonctionnement distincts correspondant chacun à l'un respectif des modes de fonctionnement de la pluralité de modes de fonctionnement. Ainsi, la machine d'états peut utiliser tel ou tel protocole de fonctionnement selon le mode de fonctionnement. En particulier, lesdits au moins deux protocoles de fonctionnement peuvent être adaptés à leurs modes de fonctionnement respectifs, de façon à éviter des étapes fastidieuses lorsque la machine d'état se trouve dans l'un desdits modes de fonctionnement. Ainsi, la machine d'états peut fonctionner relativement rapidement, contrairement aux machines d'états de l'art antérieur soumises à un protocole figé. En outre, lorsqu'un protocole de fonctionnement est adopté, la machine d'états peut décider d'utiliser ou de ne plus utiliser tel ou tel plot, permettant ainsi de diminuer le nombre de plots réservés à la machine d'états. La pluralité de modes de fonctionnement peut en particulier comprendre une pluralité de modes de tests différents comprenant le mode de test de scan précité. La pluralité de modes de fonctionnement peut également comprendre des modes permettant de remplir une fonction autre que le test. La présente invention n'est bien entendu pas limitée à ces exemples de protocoles.
En particulier, le groupe de dispositifs peut aussi comprendre un dispositif de commande pour imposer le mode de fonctionnement dans lequel la machine d'états doit être placée. Ce dispositif est lui-même programmé par la machine d'états. Cette dernière adopte tel ou tel mode de fonctionnement en fonction des valeurs programmées, conférant ainsi une certaine souplesse et une certaine rapidité à la sélection d'un mode de fonctionnement. Avantageusement, la pluralité de protocoles que la machine d'états est susceptible d'utiliser peut comprendre un protocole de programmation de mode permettant de programmer le dispositif de commande. La machine d'états peut ainsi adopter un protocole de programmation de mode adapté à la programmation du dispositif de commande et donc relativement efficace. Avantageusement, le dispositif de commande comprend un registre de commande pour mémoriser des paramètres de commande du mode de fonctionnement. Ce registre peut être un registre à décalage, et peut être programmé en série à partir du plot d'entrée. On peut ainsi éviter des plots dédiés ou une interface standard pour programmer le registre de commande. Dans des modes de réalisation, le groupe de dispositifs comprend un dispositif d'entrée de test de scan pour envoyer vers la partie du circuit électronique à tester des données d'entrée de test, et/ou un dispositif de contrôle pour contrôler le déroulement du test de scan. Le dispositif d'entrée de test et/ou le dispositif de contrôle peuvent être programmés via le plot d'entrée relié à la machine d'états.
Cet exemple n'est pas limitatif : le dispositif de contrôle peut par exemple être programmé directement par un autre plot dédié. De plus, l'invention n'est pas limitée par la séparation contrôle/données au sein du dispositif de test de scan. Le dispositif de test de scan peut en effet être agencé différemment.
Lorsque le groupe de dispositifs comprend un dispositif d'entrée de test de scan, ce dernier peut avantageusement comprendre un registre d'entrée pour recevoir les données d'entrée de test à envoyer vers la partie du circuit électronique à tester. Ainsi, chaque bit du registre d'entrée peut correspondre à une chaîne de bascules. Le registre d'entrée, par exemple un registre à décalage, est d'abord chargé bit par bit à partir du plot d'entrée dédié à la machine d'états, puis chaque bit est envoyé vers la chaîne de bascules correspondante. Il est ainsi possible de fournir des signaux d'entrée à plusieurs chaînes de bascules avec seulement un plot d'entrée dédié à la machine d'états. Bien entendu, le fait que toutes les données d'entrée proviennent d'un même plot d'entrée limite a priori le débit des données d'entrée. Cependant, le registre à décalage permet de créer artificiellement plusieurs entrées, par exemple une dizaine, à partir d'un seul plot d'entrée. Si les bits mémorisés dans le registre à décalage sont envoyés vers des moyens de décompression, les données d'entrée peuvent être décompressées pour alimenter un nombre relativement élevé de chaînes de bascules, de l'ordre de la centaine, comme illustré sur la figure 3. On peut ainsi bénéficier des effets de la décompression, à savoir des durées de test relativement courtes, avec un seul plot d'entrée ou un très petit nombre de plots d'entrée. Lorsque le groupe de dispositifs comprend un dispositif de contrôle, ce dernier peut avantageusement comprendre un registre de contrôle destiné à mémoriser des paramètres de contrôle du déroulement du test de scan. Le registre de contrôle peut par exemple permettre de mémoriser un bit d'autorisation dont la valeur détermine si ce sont les sorties secondaires ou la sortie primaire qui sont lues en sortie de chaîne de bascules. Ce bit d'autorisation peut être programmé via le plot dédié à la machine d'états, cette dernière sachant quelle donnée lue au niveau de ce plot correspond au bit d'autorisation. Avantageusement, le registre d'entrée et le registre de contrôle font partie d'un même registre à décalage, permettant ainsi une programmation en série de ces registres relativement rapide.
Selon un deuxième aspect, l'invention a pour objet un appareil électronique comprenant un circuit électronique selon le premier aspect de l'invention. La présente invention n'est pas limitée par la nature de l'appareil électronique, de sorte qu'elle trouve des applications dans des domaines variés. A titre d'exemple, l'appareil électronique peut par exemple être un lecteur de DVDs (de l'anglais Digital Versatil Disk ) ou bien encore un appareil de contrôle de direction destiné à être embarqué dans un véhicule automobile.
Selon un troisième aspect, l'invention a pour objet un procédé destiné à être mis en oeuvre par une machine d'états d'un circuit électronique, et comprenant les étapes consistant à sélectionner un protocole de transfert de données parmi une pluralité de protocoles de transfert de données, la sélection étant effectué en fonction au moins du signal reçu à un plot d'entrée dédié à la machine d'états, et transférer selon les spécifications du protocole de transfert de données sélectionné des données depuis le plot d'entrée vers un dispositif d'un groupe de dispositifs comprenant un dispositif de test de scan, le choix dudit dispositif étant également effectué au moins en fonction du signal reçu sur ledit plot d'entrée. Ce procédé peut par exemple être mis en oeuvre à l'aide du circuit électronique selon le premier aspect de l'invention et offre au moins les 15 mêmes avantages. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après. La figure 1, déjà commentée, montre un exemple de partie numérique d'un circuit électronique apte à être testé par un test de scan, connu de l'art 20 antérieur. La figure 2, déjà commentée, montre des exemples de chronogrammes illustrant le déroulement d'un test de scan connu de l'art antérieur. La figure 3, déjà commentée, montre un exemple de partie numérique d'un circuit électronique dont une partie est apte à être testée par un test de 25 scan connu de l'art antérieur. La figure 4 montre un exemple de partie numérique de circuit électronique selon un mode de réalisation de l'invention. La figure 5 montre un exemple d'algorithme d'une machine d'états du circuit électronique de la figure 4. 30 La figure 6 montre des exemples de chronogrammes illustrant un exemple de fonctionnement de la machine d'état du circuit électronique de la figure 4.
La figure 7 montre de façon plus détaillée le premier registre à décalage du circuit électronique de la figure 4. Dans le mode de réalisation illustré par les figures 4, 5 et 6, un circuit électronique comprend un machine d'états 24 reliée à un plot d'entrée numérique 21 d'une part, et à un groupe de dispositifs 20, 25, 26, 23 d'autre part. Le groupe de dispositifs comprend plusieurs dispositifs de test de scan 25, 26, 23 d'une partie 11 du circuit électronique dite également coeur. Le groupe de dispositifs comprend également un dispositif de commande 20 pour imposer des modes de fonctionnement et en particulier des modes de test. Dans cet exemple, le dispositif 20 comprend un registre de commande TMC destiné à mémoriser des paramètres de commande du mode de test. Le registre TMC est un registre à décalage. Le registre TMC, dit également TCR (de l'anglais Test Control Register ), permet par exemple de mémoriser un paramètre de test des mémoires ou BIST (de l'anglais Built ln Self Test ) et un paramètre de test de scan. Si la valeur du paramètre de BIST, respectivement de test de scan, est par exemple de 1, alors le registre TMC impose de procéder à un test de BIST, respectivement à un test de scan. Le groupe de dispositifs comprend un dispositif à compression 23 comprenant des moyens de décompression 10 et des moyens de compression 13, respectivement en entrée et sortie de la partie testée 11. Le groupe de dispositifs peut en outre comprendre un premier registre à décalage 25, comprenant à la fois un registre d'entrée de par exemple huit bits et un registre de contrôle de par exemple cinq bits. Le registre d'entrée permet de recevoir des données d'entrée de test à envoyer vers les moyens de décompression 10. Le registre de contrôle permet de mémoriser des paramètres de contrôle du déroulement du test de scan. Le registre à décalage est décrit de façon détaillée plus loin, en référence à la figure 7. Le groupe de dispositifs comprend en outre un second registre à décalage 26 comprenant un registre de sortie de par exemple huit bits. Le registre de sortie permet de recevoir les valeurs lues en sortie des moyens de compression 13.
Le premier et le second registres à décalage 25, 26 peuvent être reliés via une connexion 30, à des fins de test du dispositif de test de scan ( bypass en anglais). Les figures 5 et 6 sont relatives à l'activité de la machine d'états et seront commentées simultanément. Sur la figure 5, les états de la machine d'états sont représentés par des rectangles orientés horizontalement. Le critère à vérifier pour passer d'un état à l'autre est écrit adjacent à la flèche entre ces deux états. Lorsque la machine d'états se trouve dans un état donné, elle peut agir sur telle ou telle variable : cette variable et la valeur qui lui est affectée sont inscrites de façon adjacente au rectangle correspondant à l'état donné. Initialement, la machine d'états se trouve dans un état d'attente non représenté. Le groupe de dispositifs comprend un registre d'attente 31 sur la figure 4 permettant de mémoriser une variable d'attente programmée par la machine d'états 24. Dans l'état d'attente, le registre TMC, les premier et second registres à décalage 25, 26 sont vides, c'est-à-dire qu'ils mémorisent des valeurs nulles. Lorsque le signal d'entrée test_in passe à 1, la valeur de la variable d'attente change et la machine d'états passe à un état 0. Dans l'état d'attente, c'est le signal d'entrée test_in qui joue le rôle de signal d'horloge. Lorsque la machine d'états passe à l'état 0, elle affecte la valeur 1 à un signal de commande d'horloge test_valid, ce qui a pour effet de rendre un signal clk reçu à un plot d'horloge accessible. Ainsi, le signal clk reçu au plot d'horloge joue à présent le rôle de signal d'horloge. La machine d'états passe alors d'un état à l'autre aux fronts montant du signal clk reçu au plot d'horloge, comme illustré sur la figure 6. On passe donc d'un protocole où le rôle de signal d'horloge est joué par le signal test_in à un protocole où le rôle de signal d'horloge est joué par le signal clk reçu au plot d'horloge. Alternativement, une horloge interne peut jouer le rôle d'horloge dans l'état d'attente. A l'état 0, une éventuelle PLL est coupée afin de se baser sur le signal d'horloge externe clk. Dés lors que la machine d'états passe à l'état 0, elle utilise un protocole de programmation de mode permettant de programmer le registre TMC. Dans cet exemple, ce protocole impose à la machine d'états de passer de l'état 0 à l'état 1 lorsque le signal test_in repasse à zéro, plus précisément lors du prochain front montant du signal d'horloge clk. Une première variable de décalage tcr_shift se voit alors affecter une valeur 1. Le registre TMC est alors programmé bit à bit à partir des valeurs du signal test_in. La machine d'état détermine donc quelles valeurs du signal test_in servent à remplir le registre de commande TMC. Un compteur non représenté permet de faire passer à 1 un bit reg_end lorsque le chargement du registre TMC est terminé. La machine d'états passe alors de l'état 1 vers l'état 2. Quand la machine d'état est dans l'état 2, la programmation du registre de commande TMC est terminée. Le registre 25 est alors remis a 0 a l'exception de son premier bit qui est mis a 1. En outre, un registre de sauvegarde non représenté sur la figure 4 est remis à jour en recopiant au moins certaines valeurs mémorisées dans le registre de commande TMC. Si le signal test_in passe alors à 1 ou reste à 1, la machine d'états est entraînée vers une étape de test 51. Le test 51 porte sur la valeur de l'un des paramètres de commande du mode de fonctionnement programmés dans le registre TMC, à savoir un paramètre de test de scan scan_mode. Si ce paramètre a une valeur nulle, la machine d'états s'abstient de se placer en mode de test de scan. II est procédé à d'autres étapes de test quant aux valeurs d'autres paramètres de commande du mode de fonctionnement mémorisés dans le registre de commande, par exemple un paramètre de test de BIST ou un paramètre de test de parties analogiques du circuitfabriqué. Si l'un de ces derniers paramètres a une valeur non nulle, alors la machine d'états sélectionne un protocole de fonctionnement correspondant au paramètre ayant une valeur non nulle, par exemple un protocole de test de BIST ou un protocole de test de parties analogiques. La machine d'états se place dans un mode de fonctionnement correspondant au paramètre ayant une valeur non nulle, et fonctionne alors selon les spécifications du protocole de fonctionnement sélectionné. La machine d'états peut par exemple procéder à un test de BIST selon les spécifications du protocole de test de BIST, ou bien à un test des parties analogiques selon les spécifications du protocole de test des parties analogiques.
Ces autres étapes de test quant aux valeurs des autres paramètres de commande du mode de fonctionnement, ainsi que les opérations conséquentes, par exemple les opérations d'un test de BIST, sont représentées par le rectangle orienté verticalement 53.
La machine d'état attend ensuite un passage à 0 du signal d'entrée test in pour passer de l'état 0 à l'état 1. Le registre de commande TMC peut ainsi être reprogrammé, selon les spécifications du protocole de programmation de mode. Si le paramètre scan_mode a une valeur non nulle, la machine d'états adopte le protocole de test de scan, c'est-à-dire que la machine d'états passe à l'état 3. Une deuxième variable de décalage scan_shift se voit affecter une valeur 1. La machine d'états passe ensuite dans un état 4 similaire, à des fins de synchronisation. Lorsque la variable scan_shift a une valeur non nulle, le premier registre à décalage 25 de la figure 4 est programmé, toujours à partir des valeurs du signal test_in. La machine d'états permet ainsi de programmer le registre TMC et le premier registre à décalage à partir d'un seul signal test_in. Lorsque le premier registre à décalage est plein, le 1 initialement chargé atteint le dernier bit scan_end. La machine d'états passe alors de l'état 4 vers l'état 5. Lorsque la machine d'états se trouve à l'état 5, le premier registre à décalage est a priori programmé. Le registre à décalage comprend huit premiers bits correspondant au registre d'entrée et cinq bits suivant ces huit bits, ces cinq bits correspondant au registre de contrôle. A l'état 5, les valeurs des huit premiers bits sont recopiées vers les moyens de décompression 10 sur la figure 4. De plus, si un bit clk_enable du registre de contrôle est à 1, une variable chip_clk_en se voit affecter la valeur 1, autorisant ainsi un cycle d'horloge de la partie testée 11.
Une étape de test 54 quant à la valeur d'un bit de répétition repeat parmi les cinq bits du registre de contrôle est effectuée. Si cette valeur est non nulle, la machine d'états retourne à l'état 3 en vue d'une nouvelle programmation du premier registre.
Dans le cas contraire, la machine d'état passe à l'état 6, durant lequel un second cycle d'horloge est appliqué à la partie testée. Ce second cycle d'horloge peut permettre de vérifier que l'une des bascules D de la partie testée commute suffisamment rapidement. La machine d'états retourne ensuite vers l'état 3 en vue d'une nouvelle programmation du premier registre. Afin de pouvoir sortir d'une boucle de test de scan regroupant les états 3, 4, 5 et éventuellement 6, une étape de test 52 quant à la valeur du signal test_in est effectuée. Si le signal test_in a une valeur non nulle, la machine d'états retourne à l'état 0. Dans le cas contraire, l'étape de test 54 quant à la valeur du bit de répétition repeat est alors effectuée. Il existe une connexion directe non représentée entre un des bits du registre de contrôle, à savoir un bit d'autorisation scan_en, et le coeur 11. Le bit scan_en a une valeur non nulle durant un certain nombre de boucles de test de scan, durant lesquelles chaque chaîne de scan est chargée avec des valeurs des bits d'entrée. Pour des chaînes de scan de 1500 bascules, 1500 boucles de test de scan sont nécessaires pour parvenir au chargement. Lors de l'exécution de la boucle suivante, le bit scan_en prend une valeur nulle, de sorte que chaque bascule de chaque chaîne de scan capture une valeur de sortie secondaire fonction de la partie combinatoire correspondant à cette chaîne. Les chaînes de scan sont ensuite purgées en exécutant encore 1500 boucles avec le bit scan_en non nul. Les valeurs des sorties secondaires sont lues aux sorties du coeur. Cette nouvelle série de 1500 boucles permet également de charger les chaînes de scan avec des valeurs d'un nouveau vecteur de test de scan. La figure 7 montre un exemple de registre de test de scan 25 comprenant un registre d'entrée 71, un registre de contrôle 78, ainsi que le dernier bit scan end 79. Le registre d'entrée 71 permet de mémoriser les valeurs des bits à 30 envoyer vers les moyens de décompression. Le registre de contrôle 78 comprend le bit de répétition repeat 72, un bit de contrôle de la compression moxies_mode 73, le bit d'autorisation scan_en 74, un bit de remise à zéro du test de scan scan_reset 75, et un bit d'autorisation d'horloge clk_enable 76. La valeur du bit moxies_mode 73 permet de déterminer le mode de fonctionnement des moyens de décompression et des moyens de 5 compression. Lorsque le bit scan_reset 75 est à 1, la partie à tester est remise à zéro. Le bit clk_enable 76 permet de valider ou non l'horloge de la partie testée 11. Variantes
Le dispositif de commande peut ne pas comprendre de registre à décalage. En outre, l'invention n'est bien entendu pas limitée par la présence 15 d'un dispositif de commande pour imposer le mode de fonctionnement. La machine d'états peut par exemple passer d'un mode de fonctionnement à l'autre suivant un ordre prédéfini. Le dispositif de commande peut ne pas faire partie du groupe de dispositifs et peut ne pas être programmé par la machine d'états.
20 L'invention n'est pas non plus limitée par les exemples de protocoles décrits. Chaque protocole, par exemple le protocole de test de scan, peut permettre de transférer des données vers un ou plusieurs dispositifs, par exemple un ou plusieurs dispositifs de test de scan.
25 Outre le ou les dispositifs de test de scan, le groupe de dispositifs peut comprendre un ou des dispositifs permettant d'effectuer d'autres tests. Le groupe de dispositifs peut également comprendre un ou des dispositifs permettant d'effectuer d'autres fonctions que des fonctions de test. Le dispositif d'entrée de test peut ne pas comprendre de registre à 30 décalage, en particulier lorsque aucune décompression n'est effectuée. Par exemple, la machine d'état peut être relié à au moins autant de plots qu'il y a de chaînes, chaque chaîne étant ainsi alimentée par un plot correspondant. Le dispositif de contrôle peut ne pas comprendre de registre à contrôle.
10 La machine d'états peut être reliée à une machine d'états supplémentaire, la machine d'états supplémentaire permettant de programmer un ou des dispositifs supplémentaires.
Claims (14)
1. Circuit électronique comprenant un groupe de dispositifs, ledit groupe de dispositifs comprenant un dispositif de test de scan permettant de tester au moins une partie du circuit électronique, une machine d'états permettant de transférer des données depuis un plot d'entrée dédié à ladite machine d'états vers les dispositifs du groupe de dispositifs, ladite machine d'états étant adaptée pour supporter une pluralité de protocoles de transfert de données, le choix du protocole à utiliser étant effectué en fonction au moins d'un signal reçu sur ledit plot d'entrée.
2. Circuit électronique selon la revendication 1, dans lequel la pluralité de protocoles que la machine d'états est adaptée pour supporter comprend au moins un protocole dans lequel le signal reçu à 15 un plot d'horloge joue le rôle de signal d'horloge de la machine d'états, et au moins un protocole dans lequel le rôle de signal d'horloge est assuré par un autre signal.
3. Circuit électronique selon l'une des revendications précédentes, dans 20 lequel la machine d'états est adaptée pour être placée sélectivement dans l'un parmi une pluralité de modes de fonctionnement, ladite pluralité comprenant un mode de test de scan, et la pluralité de protocoles que la machine d'états est adaptée 25 pour supporter comprend au moins deux protocoles de fonctionnement distincts correspondant chacun à l'un respectif des modes de fonctionnement de la pluralité de modes de fonctionnement. 10
4. Circuit électronique selon la revendication 3, dans lequel le groupe de dispositifs comprend un dispositif de commande pour imposer le mode de fonctionnement dans lequel la machine d'états doit être placée.
5. Circuit électronique selon la revendication précédente, dans lequel le dispositif de commande comprend un registre de commande (TCR, TMC) destiné à mémoriser des paramètres de commande du mode de fonctionnement.
6. Circuit électronique selon l'une des revendications 3, 4 ou 5, dans lequel la pluralité de protocoles que la machine d'états est susceptible d'utiliser comprend un protocole de programmation de mode permettant de programmer le dispositif de commande.
7. Circuit électronique selon l'une des revendications précédentes, dans lequel le groupe de dispositifs comprend un dispositif d'entrée de test de scan pour envoyer vers la partie du circuit électronique à tester des données d'entrée de test (Scan_in).
8. Circuit électronique selon la revendication 7, dans lequel le dispositif d'entrée de test comprend un registre d'entrée pour recevoir les données d'entrée de test (Scan_in) à envoyer vers la partie du circuit électronique à tester.
9. Circuit électronique selon l'une des revendications 7 ou 8, dans lequel le groupe de dispositifs comprend des moyens de décompression recevant les données d'entrée de test, et des moyens de compression en sortie de la partie testée.
10. Circuit électronique selon l'une des revendications précédentes, dans lequel le groupe de dispositifs comprend un dispositif de contrôle pour contrôler le déroulement du test.
11. Circuit électronique selon la revendication 10, dans lequel le dispositif de contrôle comprend un registre de contrôle destiné à mémoriser des paramètres de contrôle du déroulement du test (Scan_en, repeat,...).
12. Circuit électronique selon la revendication 11 lorsqu'elle dépend de la revendication 8, dans lequel le registre d'entrée et le registre de contrôle font partie d'un même registre à décalage.
13. Appareil électronique comprenant un circuit électronique selon l'une des revendications précédentes.
14. Procédé destiné à être mis en oeuvre par une machine d'états d'un circuit électronique, comprenant les étapes consistant à - sélectionner un protocole de transfert de données parmi une pluralité de protocoles de transfert de données, la sélection étant effectuée en fonction au moins du signal reçu à un plot d'entrée dédié à la machine d'états, et transférer selon les spécifications du protocole sélectionné des données depuis le plot d'entrée vers un dispositif d'un groupe de dispositifs, le choix dudit dispositif étant également effectué en fonction au moins du signal reçu sur ledit plot d'entrée, ledit groupe de dispositifs comprenant un dispositif de test de scan.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0600787A FR2896884A1 (fr) | 2006-01-27 | 2006-01-27 | Test de scan |
US11/698,249 US7739566B2 (en) | 2006-01-27 | 2007-01-24 | Scan test circuitry using a state machine and a limited number of dedicated pins |
DE602007007829T DE602007007829D1 (de) | 2006-01-27 | 2007-01-25 | Scantest |
EP07290101A EP1813952B1 (fr) | 2006-01-27 | 2007-01-25 | Test de scan |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0600787A FR2896884A1 (fr) | 2006-01-27 | 2006-01-27 | Test de scan |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2896884A1 true FR2896884A1 (fr) | 2007-08-03 |
Family
ID=37460082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0600787A Pending FR2896884A1 (fr) | 2006-01-27 | 2006-01-27 | Test de scan |
Country Status (4)
Country | Link |
---|---|
US (1) | US7739566B2 (fr) |
EP (1) | EP1813952B1 (fr) |
DE (1) | DE602007007829D1 (fr) |
FR (1) | FR2896884A1 (fr) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8166343B2 (en) * | 2009-12-01 | 2012-04-24 | Hamilton Sundstrand Corporation | Processing system hardware diagnostics |
FR2969765A1 (fr) * | 2010-12-27 | 2012-06-29 | St Microelectronics Grenoble 2 | Circuit numerique testable par seulement deux broches |
US10768232B2 (en) | 2017-07-14 | 2020-09-08 | International Business Machines Corporation | ATE compatible high-efficient functional test |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623500A (en) * | 1990-08-06 | 1997-04-22 | Texas Instruments Incorporated | Event qualified test architecture |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154856A (en) * | 1997-04-08 | 2000-11-28 | Advanced Micro Devices, Inc. | Debug interface including state machines for timing synchronization and communication |
US6618775B1 (en) * | 1997-08-15 | 2003-09-09 | Micron Technology, Inc. | DSP bus monitoring apparatus and method |
US6836757B1 (en) * | 1999-02-19 | 2004-12-28 | Texas Instruments Incorporated | Emulation system employing serial test port and alternative data transfer protocol |
US6654383B2 (en) * | 2001-05-31 | 2003-11-25 | International Business Machines Corporation | Multi-protocol agile framer |
US20070204089A1 (en) * | 2006-02-27 | 2007-08-30 | Microsoft Corporation | Multi-protocol removable storage device |
-
2006
- 2006-01-27 FR FR0600787A patent/FR2896884A1/fr active Pending
-
2007
- 2007-01-24 US US11/698,249 patent/US7739566B2/en active Active
- 2007-01-25 DE DE602007007829T patent/DE602007007829D1/de active Active
- 2007-01-25 EP EP07290101A patent/EP1813952B1/fr active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623500A (en) * | 1990-08-06 | 1997-04-22 | Texas Instruments Incorporated | Event qualified test architecture |
Also Published As
Publication number | Publication date |
---|---|
EP1813952B1 (fr) | 2010-07-21 |
DE602007007829D1 (de) | 2010-09-02 |
EP1813952A1 (fr) | 2007-08-01 |
US7739566B2 (en) | 2010-06-15 |
US20070260953A1 (en) | 2007-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2839156A1 (fr) | Circuit et procede utilisant de multiples chaines d'acces serie pour le test de cirucuits integres | |
EP0887653A1 (fr) | Procédé de test fonctionnel et circuit comprenant des moyens de mise en oeuvre du procédé | |
FR2693574A1 (fr) | Procédé pour tester le fonctionnement d'un circuit intégré spécialisé, et circuit intégré spécialisé s'y rapportant. | |
EP1813952B1 (fr) | Test de scan | |
EP1560033A1 (fr) | Circuit intégré comportant un mode de test sécurisé par initialisation du dit mode de test | |
EP0823089B1 (fr) | Procede et equipement de test automatique en parallele de composants electroniques | |
EP3025161B1 (fr) | Procede automatise d'analyse d'une carte portant plusieurs composants de type fpga | |
EP1159628B1 (fr) | Procede de test de circuits integres avec acces a des points de memorisation du circuit | |
EP1688753B1 (fr) | Sécurisation du mode de test d'un circuit intégré | |
EP0469507A1 (fr) | Circuit intégré comprenant une cellule standard, une cellule d'application et une cellule de test | |
EP1560032B1 (fr) | Procédé de sécurisation du mode de test d'un circuit intégré par détection d'intrusion | |
US8751884B2 (en) | Scan test circuitry with selectable transition launch mode | |
EP0464768A1 (fr) | Module interface de transfert de données | |
EP1877811B1 (fr) | Circuit integre comportant un mode de test securise par detection de l etat chaine des cellules configurables du circuit integre | |
EP0823088B1 (fr) | Procede et equipement de test automatique en parallele de composants electroniques | |
EP1179739A1 (fr) | Procédé pour tester un circuit intégré à contrôle de cadencement flexible | |
FR2793088A1 (fr) | Procede et dispositif de collecte des valeurs logiques de sortie d'une unite logique dans un circuit electronique | |
EP2069814B1 (fr) | Registre scan parametrique, circuit numerique et procede de test d'un circuit numerique a l'aide d'un tel registre | |
EP0820613B1 (fr) | Procede et equipement de test automatique en parallele de composants electroniques | |
EP1324061A2 (fr) | Procédé de test d'un circuit integré par simulation | |
FR3047565A1 (fr) | Procede et dispositif de test d'une chaine de bascules | |
FR3110261A1 (fr) | Procede et systeme de test d’un circuit integre | |
FR2888330A1 (fr) | Circuit integre comportant un mode de test securise par detection de l'etat d'un signal de commande | |
WO2022106766A1 (fr) | Générateur de phases programmable d'un détecteur de rayonnement | |
EP0800676A1 (fr) | Procede et equipement de test automatique de composants electroniques |