Brevet FR2666902A1 — publié le 19920320

CIRCUIT INTEGRE AVEC REGISTRE DE TEST PERIPHERIQUE L'invention concerne les circuits intégrés, et plus particulièrement les circuits complexes qui nécessitent des moyens de test spécifiques implantés dans le circuit intégré A lui-même . Pour que les utilisateurs du circuit intégré puissent tester le fonctionnement d'une carte ou d'un module hybride incorporant plusieurs circuits intégrés interconnectés entre eux de manière inamovible, on a imaginé des systèmes de test implantés en partie dans les circuits intégrés eux-mêmes et capables de coopérer avec des systèmes analogues montés dans les autres circuits intégrés de la carte. Des normes ont été établies dans ce sens, notamment la norme IEEE 1149.1, qui définit des moyens de test à incorporer aux circuits intégrés pour que le test d'une carte soit possible à partir de broches de connexion de la carte sans démontage des composants. Dans cette norme, les circuits intégrés incorporent chacun un circuit de test interne qui comprend notamment un registre à décalage à entrées et sorties à la fois série et parallèle, relié aux plots d'entrée-sortie du circuit. Ce registre est appelé "registre de boundary scan" ou registre de test périphérique" et sera désigné ci-après par registre RBS. Le registre comporte une cellule associée à chaque plot d'entrée/sortie du circuit intégré et il permet d'observer et de contrôler les signaux électriques aboutissant à ces plots. Le circuit intégré comporte un plot d'entrée série (TDI) pour introduire des données en série dans le registre lorsqu'il fonctionne en registre à décalage. Il comporte aussi un plot de sortie série (TDO) pour évacuer les données en série du registre lors du décalage. Les différents circuits intégrés de la carte ou du module à tester sont reliés en chaîne série par leurs entrées TDI et TDO : l'entrée TDI d'un circuit est reliée à la sortie TDO d'un autre.De cette manière, lorsque le registre fonctionne en décalage, d'une part toutes les cellules du registre RBS d'un circuit intégré forment un registre à décalage, et d'autre part les registres RBS de plusieurs circuits intégrés de la carte peuvent être reliés en série pour constituer un vaste registre à décalage entre une broche d'entrée et une broche de sortie de la carte. Par la broche d'entrée de la carte on peut Introduire un vecteur d'instructions ou de données, c 'est-à-dire une succession d'états logiques qu'on veut appliquer aux différents circuits intégrés, ces états logiques définissant pour chaque circuit soit une instruction de test particulière à exécuter, soit des données de test à traiter selon l'instruction donnée auparavant. Les tests portent soit sur le fonctionnement interne des circuits intégrés soit sur les interconnexions entre circuits. Par la broche de sortie de la carte, on recueille un vecteur de données résultant du test. Ces données représentent des états logiques de plots d'entrée/sortie des différents circuits intégrés à -la suite de l'exécution d'une instruction de test déterminée. Ces données sont chargées en parallèle dans les registres à décalage RBS, chaque cellule du registre RBS étant reliée à un plot d'entrée/sortie respectif; puis les registres sont vidés en série les uns dans les autres pour fournir les données sur la broche de sortie de données de la carte. La figure 1 représente une cellule individuelle classique du registre à décalage RBS, associée à un plot d'entrée de signal du circuit intégré. Le plot 10 est relié à un circuit électrique d'interface d'entrée 12 pouvant comprendre notamment un circuit de protection contre les décharges électrostatiques, un circuit d'adaptatation de niveau de tension entre l'intérieur et l'extérieur du circuit, et un amplificateur (buffer d'entrée). En l'absence de cellule de registre à décalage de test RBS, la sortie du circuit 12 serait normalement reliée à un conducteur d'entrée 14 allant vers le coeur du circuit intégré pour y appliquer le signal recueilli sur le plot d'entrée. La cellule de registre à décalage de test est insérée entre le plot 10 et le conducteur 14 pour pouvoir accomplir les quatre fonctions de base de ce registre - 1) : registre court-circuité : la liaison est directe entre le plot 10 et le conducteur 14 à travers le circuit électrique d'interface 12; - 2) : chargement parallèle du registre pour prendre en mémoire l'état logique existant sur le plot; - 3) : déchargement parallèle du registre pour imposer sur le conducteur 14 un état logique présent dans le registre, - 4) : décalage du registre pour transférer l'état logique de la cellule vers la cellule correspondante d'un plot d'entrée/sortie suivant et pour recueillir dans la cellule l'état d'une cellule correspondant à un plot d'entrée/sortie précédent. Pour cela, la cellule de registre comporte un premier multiplexeur 16 à deux entrées, un deuxième multiplexeur 18 à deux entrées, une bascule de mémorisation 20, et une bascule de verrouillage 22. Le premier multiplexeur 16 a une première entrée (1,entrée parallèle") reliée à la sortie de l'interface 12 et une deuxième entrée tdi qui est l'entrée sérielle de la cellule, entrée qui est reliée à la sortie sérielle d'une cellule de registre d'un plot précédent. La sortie du multiplexeur 16 est reliée à l'entrée de la bascule de mémorisation 20. Ce multiplexeur 16 est contrôlé par un signal de contrôle CTRLI qui aiguille vers la bascule de mémorisation 20 soit l'état logique du plot d'entrée (fonction "capture" c'est-à-dire observation du plot d'entrée) soit l'état de la cellule du registre du plot précédent (fonction "décalage" c'est-à-dire transmission sérielle d'un vecteur de données). La bascule 20 fonctionne sous contrôle d'une horloge Hî. La sortie de la bascule de mémorisation 20 constitue la sortie sérielle tdo de la cellule, connectée à une entrée sérielle tdi d'une cellule suivante. Cette sortie de bascule est par ailleurs reliée à l'entrée de la bascule de verrouillage 22; la sortie de la bascule de verrouillage 22 est reliée à l'autre multiplexeur 18; la bascule 22 sert à isoler la bascule 20 du multiplexeur 18, pour appliquer à ce dernier l'état de la bascule 20 à un moment contrôlé par une horloge H2. Le deuxième multiplexeur 18 a une première entrée reliée directement à la sortie du circuit électrique d'interface 12 et une deuxième entrée reliée à la sortie de la bascule de verrouillage 22. Il est contrôlé par un signal de contrôle CTRL2 qui aiguille vers le conducteur 14 (donc vers le coeur du circuit intégré) soit l'état du plot d'entrée, notamment pour permettre le fonctionnement normal du circuit intégré, soit l'état de la bascule de verrouillage 22, notamment pour imposer au coeur du circuit intégré un état logique qu'on aura appliqué non pas par le plot d'entrée 10 mais par le registre à décalage (fonction "update" ou mise-à-jour pour forcer un fonctionnement interne du circuit). La figure 2 représente le schéma classique de la cellule de registre RBS associée à un plot de sortie et non pas d'entrée du circuit intégré. Le schéma est très semblable à celui de la figure 1, avec un plot de sortie 110, un circuit électrique d'interface de sortie 112, un conducteur 114 issu du coeur du circuit intégré, deux multiplexeurs 116 et 118, une bascule de mémorisation 120, et une bascule de verrouillage 122. L'entrée sérielle tdi de la cellule, connectée à une première entrée du multiplexeur 116 est reliée à la sortie sérielle tdo correspondant à un plot précédent. Les signaux de contrôle sont les mêmes qu'à la figure 1 : horloges H1 et H2 pour les bascules 120 et 122, signaux CTRL1 (fonction "capture" ou "décalage"), et CTRL2 (fonctionnement normal ou "update"). La seule différence entre les schémas des figures I et 2 est la suivante : la cellule de registre est insérée entre la sortie du circuit 12 et le conducteur 14 pour le plot d'entrée, mais entre le conducteur 114 et l'entrée du circuit 112 pour le plot de sortie. Pour mémoire on a rappelé sur la figure 3 l'organisation générale du registre RBS, avec une cellule rbs reliée entre chaque plot et le coeur CCI du circuit intégré, les cellules étant toutes connectées en série pour réaliser un registre à décalage RBS entre deux plots de connexion extérieure du circuit intégré : un plot TDI constituant une entrée sérielle de test et un plot TDO constituant une sortie sérielle de test. Trois plots supplémentaires spécifiques du test TCK, TMS, TRST, servent à appliquer des signaux de commande à un circuit de test 30 qui sert notamment à établir les signaux H1, K2, CTRL1, CTRL2 qui contrôlent le registres RBS. Avec les circuits des figures 1 et 2, on comprendra qu'on puisse effectuer un certain nombre de tests internes et externes. On s'est aperçu cependant que si le multiplexeur 18 ou 118 inséré entre le coeur du circuit intégré et le plot d'entrée/sortie fonctionnait mal, on risquait de détecter un résultat de test correct alors qu'en fait le circuit est par ailleurs défectueux, ou réciproquement. On propose selon l'invention que le premier multiplexeur, qui définit si le mode de fonctionnement est un mode de capture ou un mode de décalage, comporte une troisième entrée, permettant un mode de fonctionnement supplémentaire de capture de l'état logique en sortie du deuxième multiplexeur. En d'autres mots, dans une cellule de registre de test comportant deux multiplexeurs, pour permettre les fonctions de capture vers le registre d'un état logique sur une entrée du premier multiplexeur et de forçage de la sortie de l'autre multiplexeur par l'état contenu dans le registre, on propose selon l'invention que le premier multiplexeur soit pourvu d'une entrée supplémentaire de capture de l'état logique en sortie du deuxième multiplexeur. Dans le cas d'une cellule de registre associée à un plot unidirectionnel d'entrée de signal, l'entrée supplémentaire du premier multiplexeur est prise sur un conducteur allant vers le coeur du circuit intégré. Dans le cas d'un plot unidirectionnel de sortie de signal, elle peut être prise directement en sortie du multiplexeur, ou encore sur le plot de sortie; dans ce dernier cas, un étage d'adaptation de niveau sera de préférence prévu entre le plot et l'entrée supplémentaire du multiplexeur. L'entrée supplémentaire peut éventuellement aussi être raccordée en un point intermédiaire d'un circuit d'interface de sortie raccordé entre le deuxième multiplexeur et le plot. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés dans lesquels - les figures 1 et 2, déjà décrites, représentent des cellules classiques de registre de test périphérique RBS de la technique antérieure; - la figure 3 représente l'organisation générale classique du registre RBS d'un circuit intégré; - la figure 4 représente une cellule modifiée selon l'invention, associée à un plot d'entrée de signal; - la figure 5 représente une cellule modifiée associée à un plot de sortie de signal. - la figure 6 représente une cellule selon l'invention, associée à un plot d'entrée/sortie bidirectionnel. - la figure 7 représente la topopgraphie générale des plots et des cellules de registre à la périphérie d'une puce. La figure 4 représente une réalisation de cellule de registre selon l'invention, associée à un plot unidirectionnel d'entrée 10 pour l'observation et le contrôle des signaux transitant sur ce plot. Les mêmes références qu'à la figure 1 sont utilisées pour les éléments correspondants, c ayant des fonctions similaires. La modification principale par rapport à la figure 1 est le fait que le multiplexeur 16 comporte une entrée supplémentaire connectée au conducteur 14. Le multiplexeur a donc au moins trois entrées. Une autre modification, non obligatoire mais souhaitable, est le fait qu'on a décomposé le circuit d'interface d'entrée 12 en deux portions 12A et 12B; la partie 12A, placée avant le multiplexeur 18 comprend essentiellement un circuit d'adaptation de niveau logique de tension et un circuit de protection contre les décharges électrostatiques, alors que la partie 12B, placée après le multiplexeur 18, comprend les étages d'amplification permettant d'attaquer le conducteur 14 qui va vers le coeur du circuit. Le conducteur 14, est directement relié à l'entrée supplémentaire du multiplexeur 16. Les autres entrées sont reliées (comme à la figure 1) l'une à l'entrée sérielle tdi de la cellule, l'autre à la sortie du circuit 12A, c'est-à-dire à l'entrée du multiplexeur 18. Le multiplexeur 16 est alors contrôlé en principe par deux signaux de contrôle, CTRL1 et CTRL1A, pour diriger vers la sortie du multiplexeur l'état logique présent sur l'une au choix des trois entrées. Dans le mode de fonctionnement en registre à décalage, c'est ls signal sur l'entrée tdi qui passe à travers le multiplexeur 16; dans le mode de capture de l'état du plot d'entrée, c'est la sortie du circuit 12A qui passe à travers le multiplexeur 16; enfin, dans le mode de capture de l'état du conducteur 14, c'est directement l'état logique sur le conducteur 14 qui passe à travers le multiplexeur. On s'arrangera donc pour que les programmes de test puissent inclure des instructions (agissant sur les signaux de contrôle CTRL1 et CTRL1A) permettant d'observer et contrôler les signaux d'une part sur le plot (en amont du multiplexeur 18) et d'autre part sur le conducteur 14 (en aval du multiplexeur 18). Les possibilités de vérification sont ainsi plus complètes puisqu'elles incluent une possibilité de détecter un mauvais fonctionnement du multiplexeur 18. La figure 5 représente une modification similaire pour la cellule associée à un plot unidirectionnel de sortie du circuit intégré. Les références sont les mêmes qu'à la figure 2 pour les éléments fonctionnellement correspondants. Le multiplexeur 116 a une entrée supplémentaire raccordée, de préférence par l'intermédiaire d'un adaptateur de niveau 124 au plot 110 de sortie. Les signaux de contrôle CTRL1 et CTRL1A de ce multiplexeur permettent de faire passer dans le multiplexeur 116 le signal en amont du multiplexeur 118 (en mode de capture de l'état du conducteur 14), le signal en aval du multiplexeur 118 (en mode de capture de l'état du plot 110), et enfin le signal sur l'entrée sérielle tdi de la cellule (en mode de décalage). Enfin, la figure 6 représente une cellule selon l'invention, associée à un plot d'entrée/sortie bidirectionnel. Là encore, les mêmes références qu'aux figures précédentes désignent des éléments de circuit fonctionnellement correspondants. Le plot bidrectionnel (10) est relié à un circuit d'interface d'entrée 12, ou, comme à la figure 4, de préférence à une première partie 12A de ce circuit, comprenant essentiellement un circuit de protection électrostatique et un circuit d'adaptation de niveau. Et le plot est bien entendu relié à la sortie d'un circuit d'interface de sortie 112. La deuxième partie du circuit électrique d'interface d'entrée, essentiellement un amplificateur tampon 12B, est placée entre la sortie d'un multiplexeur 18 et un conducteur 14 destiné (en fonctionnement normal) à diriger vers le coeur du circuit intégré le signal d'entrée présent sur le plot 10. Le multiplexeur 18 fait partie de la cellule de registre RBS associée au plot d'entrée/sortie 10. Par ailleurs, un conducteur 114 issu du coeur du circuit intégré est relié au plot 10 par l'intermédiaire du circuit électrique d'interface de sortie 112 comprenant essentiellement un amplificateur commandé par un signal de direction ENBL selon l'état de ce signal ENBL, l'amplifcateur du circuit 112 est activé (pour que le plot 10 fonctionne en plot de sortie) ou désactivé (pour que le plot fonctionne en plot d'entrée). Un multiplexeur 118 est inséré entre le conducteur 114 et le circuit d'interface de sortie 112. Ce multiplexeur fait partie de la cellule de registre selon l'invention. Les autres éléments de cette cellule sont : un troisième multiplexeur 16 à au moins quatre entrées, une bascule de mémorisation 20 placée en sortie de ce multiplexeur, et une bascule de verrouillage 22 connectée en sortie de la bascule 20. Le multiplexeur 18 reçoit sur une entrée la sortie de la partie 12A du circuit d'interface d'entrée; il reçoit par ailleurs sur une seconde entrée la sortie de la bascule 22 (bascule de verrouillage). Il assure d'abord le choix entre un mode de fonctionnement normal du circuit et un fonctionnement "update" dans lequel on force sur le conducteur 14 un état issu de la bascule 20. Le multiplexeur 118 reçoit sur une première entrée le signal présent sur le conducteur 114 et sur une seconde entrée la sortie de la bascule de verrouillage 22. Il assure le choix entre un mode de fonctionnement normal et un fonctionement update dans lequel on force sur le plot 10 un état issu de la bascule 20. Le multiplexeur 16 a quatre entrées issues respectivement - de la sortie du circuit 12A pour recevoir le signal sur le plot d'entrée 10, en amont du multiplexeur 18 (mode de capture de l'état du plot 10) - du conducteur d'entrée de signal 14 allant vers le coeur du circuit intégré (mode de capture de l'état du conducteur 14) - de l'entrée sérielle tdi de la cellule, connectée à une sortie sérielle tdo d'une cellule précédente (mode de décalage) - du conducteur de sortie 114 issu du coeur du circuit (mode de capture de l'état du conducteur 14). Les signaux de contrôle des différents multiplexeurs sont désignés par la référence CTRL. Ils sont issus du circuit de contrôle 30 de la figure 3, de même que les signaux d'horloge commandant les bascules 20 et 22. On notera que c'est le circuit 12A (adaptation de niveau) de la figure 6 qui joue le rôle du circuit d'adaptation 124 de la figure 5. Il n'est donc pas nécessaire que la cellule de registre de test d'un plot bidirectionnel comporte un circuit d'adaptation supplémentaire 124 entre la sortie du circuit 112 et l'entrée du multiplexeur 16. Le signal de direction ENBL (qui sert à indiquer si le plot 10 fonctionne en entrée ou sortie) peut lui-même être associé à une cellule de registre de test périphérique désignée par rbs' sur la figure 6. Cette cellule est insérée en série dans le conducteur qui amène le signal ENBL, et elle permet d'observer le signal ENBL ou d'imposer une valeur à ce signal. Cette cellule possède une entrée tdi et une sortie tdo et peut être connectée en série par ces entrées aux autres cellules du registre de test périphérique RBS. Une cellule ainsi associée au signal ENBL (ou à un signal de troisième état dans le cas de plots à trois états) peut être associée à plusieurs plots bidirectionnels (ou trois états) commandés simultanément par le même ENBL.On s'arrangera alors pour la localiser non pas à proximité immédiate des plots bidirectionnels ou trois états concernés mais à côté d'un plot d'alimentation du circuit intégré étant donné que de la place est disponible à côté des plots d'alimentation puisque ces derniers ne sont pas associés fonctionnellement à des cellules de registre RBS. La figure 7 représente l'organisation topographique générale selon l'invention. Les plots d'entrée/sortie juxtaposés sont associés à des circuits d'interface d'entrée et à des cellules de registre de test périphérique rbs également juxtaposées et aboutées les unes avec les autres pour former un registre complet RBS courant autour de la périphérie du circuit intégré (sauf à l'emplacement des plots TDI, TMS, TCK, TRST, et TDO). Les cellules rbs' correspondant aux signaux de direction ENBL ou de troisième état sont insérées parmi les autres dans le registre RBS, et elles sont localisées à côté des plots d'alimentation, par exemple plot VCC et plot de masse GND. Non seulement, la modification selon l'invention apporte des possibilités supplémentaires dans le test sur cartes, mais elle permet aussi d'améliorer les possibilités de test sous pointes pour les circuits intégrés à grand nombre de plots de connexion extérieure. En effet, les appareils de test sous pointes sont limitées en nombre de pointes, de sorte que le test sous pointes permet d'avoir accès à une partie des plots seulement. Grâce à la possibilité qu'on a maintenant de tester à travers le registre périphérique directement les signaux sur les plots de sortie en aval du multiplexeur, on peut effectuer un test sous pointes beaucoup plus complet, incluant la fonction d'interface de sortie, même avec un nombre de pointes limité. Cela supprime en particulier la nécessité de faire plusieurs tests sous pointes avec des jeux de pointes différents. De plus, l'invention améliore tout particulièrement le test des cartes à plusieurs puces de circuit intégré lorsqu'il y a des plots de sortie trois états, car le prélèvement du signal en aval du multiplexeur de forçage permet notamment d'observer ce qui se passe sur le bus de données extérieur pendant le fonctionnement. REVENDICATIONS 1. Circuit intégré comportant des cellules de registre de test périphérique associées à des plots de connexion extérieure (10, 110) du circuit intégré, chaque cellule (rbs) comportant deux multiplexeurs (16, 18; 116, 118), pour permettre les fonctions de capture vers le registre d'un état logique sur une entrée du premier multiplexeur (16) et de forçage de la sortie de l'autre multiplexeur (18) par l'état contenu dans le registre, caractérisé en ce que le premier multiplexeur est pourvu d'une entrée supplémentaire de capture de l'état logique en sortie du deuxième multiplexeur. 2. Circuit intégré avec registre de test périphérique selon la revendication 1, le circuit comprenant des plots de connexion extérieure (10, 110) associés chacun à une cellule de registre de test (rbs) permettant d'une part d'observer les signaux d'entrée et/ou de sortie correspondant à ces plots et d'autre part d'imposer des signaux d'entrée ou de sortie sur ces plots ou sur des conducteurs (14, 114) reliant ces plots au coeur du circuit intégré, chaque cellule de registre comprenant au moins un premier multiplexeur (16, 116) permettant de définir Si la cellule fonctionne en mode de capture de l'état logique d'un plot ou d'un conducteur ou en mode de décalage, et un deuxième multiplexeur (18, 118) connecté entre le plot et un conducteur respectif destiné à relier ce plot au coeur du circuit intégré, caractérisé en ce que le premier multiplexeur (16, 116) comporte, outre une entrée sérielle (tdi) raccordée à une sortie sérielle (tdo) d'une cellule précédente du registre, au moins une entrée reliée en amont du deuxième multiplexeur (18, 118), et une entrée reliée en aval du deuxième multiplexeur pour permettre à la fois un mode de fonctionnement de capture de l'état logique en aval du deuxième multiplexeur et un mode de fonctionnement de capture de l'état logique en amont du deuxième multiplexeur. 3. Circuit intégré selon l'une des revendications 1 et 2, caractérisé en ce que, pour un plot unidirectionnel d'entrée de signal (10), le premier multiplexeur (16) a au moins trois entrées dont l'une est reliée à un conducteur (14) issu de la sortie du deuxième multiplexeur (18) et allant vers le coeur du circuit intégré. 4. Circuit intégré selon la revendication 3, caractérisé en ce que le plot unidirectionnel (10) est relié au conducteur correspondant (14) allant vers le coeur du circuit intégré par l'intermédiaire d'un circuit d'adaptation de niveau (12A) suivi du deuxième multiplexeur (18), suivi lui-même d'un amplificateur tampon (12B). 5. Circuit intégré selon l'une des revendications 1 et 2, caractérisé en ce que, pour un plot unidirectionnel de sortie de signal (110), le premier multiplexeur (116) a au moins trois entrées, dont l'une est reliée, éventuellement par l'intermédiaire d'un adaptateur de niveau de tension (124) au plot, le deuxième multiplexeur (118) étant inséré entre un conducteur (114) issu du coeur du circuit et un circuit d'interface de sortie (112) relié au plot (110). 6. Circuit intégré selon l'une des revendications 1 et 2, caractérisé en ce que, pour un plot bidirectionnel (10), le premier multiplexeur comporte au moins quatre entrées parmi lesquelles - une est une entrée sérielle (tdi) reliée à la sortie sérielle d'une cellule de registre correspondant à un plot précédent, - une est reliée en amont du deuxième multiplexeur (18, fig 6), - une est reliée en aval du deuxième multiplexeur, - et une est reliée en amont d'un troisième multiplexeur (118, fig 6). 7. Circuit intégré selon 11 une des revendications précédentes, caractérisé en ce que, pour un plot bidirectionnel dont la direction de fonctionnement est commandée par un signal de direction (ENBL) ou pour un plot trois états dont le troisième état est commandé par un signal de troisième état, une cellule de registre (rbs') est associée au signal de direction ou de troisième état et est localisée à proximité immédiate d'un plot d'alimentation (VCC, GND) du circuit intégré.