Brevet FR2771840A1 — publié le 19990604

MéMOIRE ROM TESTABLE EN CONSOMMATION ASTATIQUE La présente invention concerne les tests en consommat ion statique (IDDQ) de composants et plus particulièrement une structure de mémoire morte (ROM) permettant un test en consommation statique particulièrement rapide. Un grand nombre de défauts dans un circuit intégré peuvent être dus à des courts-circuits entre deux lignes rapprochées, provoqués, par exemple, par des dépôts de poussière. Pour tester ce genre de défaut on utilise les tests en consommation statique, aussi appelés tests IDDQ. Un tel test consiste à forcer les deux lignes en court-circuit à des états opposés et à mesurer le courant consommé par le circuit en statique, c'est-àdire en arrêtant les horloges qui cadencent normalement le circuit. En effet, la consommation statique d'un circuit logique CMOS est normalement très faible. Si on constate une consommation statique élevée, c'est que les deux lignes que l'on force à des états différents sont en court-circuit. Un court-circuit entre deux lignes est rarement franc il est le plus souvent résistif. Parfois, le court-circuit est unidirectionnel, c'est-à-dire que le défaut constitue une diode. Pour pouvoir tester la présence de courts-circuits unidirectionnels, on applique sur les deux lignes à tester deux états opposés et ensuite les deux états inverses. Un test IDDQ présente l'inconvénient d'être long. En effet, il faut attendre jusqu'à environ 10 ms à chaque application d'un vecteur de test afin que les courants se stabilisent. Pour des circuits logiques arbitraires, on parvient à effectuer un test efficace avec un faible nombre de vecteurs, ce qui rend la durée de test raisonnable. Ce n'est pas le cas pour les mémoires, notamment ROM, comme on l'explique ci-dessous. La figure 1 représente schématiquement et partiellement une mémoire ROM classique. La mémoire comporte une pluralité de cellules organisées en rangées et colonnes, chaque cellule comportant ou non, selon qu'elle est programmée à O ou à 1, un transistor 10. Les grilles des transistors 10 présents dans chaque rangée sont reliées à une ligne de mot WL commune. Chaque transistor 10 est en outre relié entre un potentiel bas Vss et une ligne de bit BL commune aux transistors de la même colonne. Les lignes de mot WL sont pilotées par un décodeur d'adresses 12 en fonction de la valeur d'une adresse A présentée au décodeur sur un bus d'adresses. Chaque ligne de bit BL est reliée à un potentiel d'alimentation haut Vdd par un transistor de précharge 14 pendant une phase de précharge. Les grilles des transistors 14 sont alors toutes commandées par un signal de précharge PC. Une rangée de cellules correspond généralement à plusieurs mots, quatre dans l'exemple de la figure 1. Afin de ne lire que le mot souhaité d'une rangée, on utilise un multiplexage des lignes de bit BL. Dans l'exemple de la figure 1, pour des rangées de quatre mots, les lignes de bit sont réparties par groupes de quatre. Les quatre lignes de bit de chaque groupe sont connectées à un circuit de lecture 16 par l'intermédiaire de quatre transistors respectifs 18, 19, 20 et 21. La grille de chacun de ces transistors 18 à 21, ainsi que les grilles de ses transistors homologues dans les autres groupes, sont reliées à une ligne de commande respective MX pilotée par le décodeur d'adresses 12. En fonctionnement, le décodeur d'adresses 12 sélectionne une seule des lignes WL et une seule des lignes MX en fonction de l'adresse A, pour fournir le mot correspondant aux circuits de lecture 16. La figure 1 représente, à titre d'exemple, un courtcircuit 24 entre les deuxième et troisième lignes de mot WL et un court-circuit 25 entre les deuxième et troisième lignes de bit BL. Afin de détecter le court-circuit 24 par test IDDQ, il suffit de sélectionner la deuxième ligne de mot WL, commue cela est représenté, ou bien la troisième ligne de mot. Ainsi, un courant s'établit entre les potentiels Vdd et Vss, passant par un transistor 28 du décodeur 12, qui force la deuxième ligne de mot au potentiel Vdd, le court-circuit 24, et un transistor 30 du décodeur 12, qui force la troisième ligne de mot au potentiel Vss. Etant donné qu'une seule ligne de mot est sélectionnée à la fois, les lignes de mot restantes sont forcées à l'état bas par des transistors 30 respectifs. Afin de tester tous les courts-circuits possibles entre lignes de mot, sachant que les courts-circuits peuvent être unidirectionnels, il faut sélectionner à tour de rôle toutes les lignes de mot WL en appliquant des adresses correspondantes sur le décodeur 12. Ceci représente un nombre de vecteurs de test trop élevé pour obtenir une durée de test raisonnable en consommation statique. Pour déceler les courts-circuits entre les lignes de bit BL, on rencontre d'autres problèmes. Pour le court-circuit 25 entre les deuxième et troisième lignes de bit, on doit trouver une rangée dans laquelle les deuxième et troisième cellules sont à des états différents, par exemple la deuxième rangée où la deuxième cellule est à 0 et la troisième à 1. Alors, en même temps que l'on sélectionne cette rangée, on rend conducteur le transistor de multiplexage 20 qui transmet l'état 1 de la troisième ligne de bit au circuit de lecture 16. Le circuit de lecture 16, schématisé par deux inverseurs connectés tête bêche, a une fonction de confirmation de l'état de la ligne à laquelle il est relié. Ainsi, le circuit 16 confirme l'état 1 de la troi sième ligne de bit, d'où il résulte une circulation de courant allant du circuit 16 jusqu'au potentiel Vss en passant par le transistor 20, le court-circuit 25 et le transistor 10 de la deuxième cellule de la deuxième rangée. Pour tester les courts-circuits possibles entre lignes de bit, il faut se fier au contenu de la mémoire afin de trouver deux bits consécutifs d'états opposés pour chaque couple de lignes. Cette méthode est complexe à mettre en oeuvre et inapplicable en pratique. Un objet de la présente invention est de prévoir une structure de mémoire permettant d'effectuer un test en consommation statique (IDDQ) particulièrement rapide et simple. Pour atteindre cet objet, la présente invention prévoit une structure programmable comprenant une pluralité de lignes conductrices parallèles dont chacune est associée à une rangée ou à une colonne de cellules mémoire. Elle comprend en outre des moyens de test pour forcer toutes les lignes en même temps à des états alternés. Selon un mode de réalisation de la présente invention, les lignes sont des lignes de sélection de rangées de cellules, pilotées par un décodeur d'adresses, les moyens de test étant prévus pour, dans un mode normal, fournir les sorties du décodeur d'adresses sur les lignes et, dans un mode de test, fournir lesdits états alternés. Selon un mode de réalisation de la présente invention, les lignes sont des lignes de lecture associées aux colonnes de cellules mémoire, les moyens de test comprenant au moins une rangée auxiliaire de cellules mémoire qui est sélectionnée dans un mode de test, les cellules de la rangée auxiliaire étant programmées à des états alternés. Selon un mode de réalisation de la présente invention, les lignes de lecture sont reliées à un multiplexeur, les moyens de test étant prévus pour, dans le mode de test, commander le multiplexeur de manière qu'il sélectionne une ligne de bit sur deux. Selon un mode de réalisation de la présente invention, les moyens de test permettent, dans le mode de test, de forcer les lignes à l'une ou l'autre de deux combinaisons d'états alternés. Selon un mode de réalisation de la présente invention, les moyens de test permettent en outre de forcer toutes les lignes à un même état. Selon un mode de réalisation de la présente invention, les états des lignes dans le mode de test sont choisis par des lignes d'un bus d'adresses. Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles la figure 1, précédemment décrite, représente schématiquement et partiellement une mémoire ROM classique la figure 2 représente schématiquement et partiellement un mode de réalisation de mémoire ROM selon l'invention ; et les figures 3A et 3B sont des diagrammes illustrant une méthode de test des lignes de bit dans la mémoire de la figure 2. Une mémoire ROM selon la présente invention a un mode de test dans lequel il est possible de forcer en même temps toutes les lignes de mot WL ou toutes les lignes de bit BL à des états alternés. On peut ainsi, en une seule opération, c'est-àdire en utilisant un seul vecteur de test, vérifier la présence d'un court-circuit entre deux lignes adjacentes quelconques, ce court-circuit se traduisant par une consommation de courant statique. Pour déceler des courts-circuits unidirectionnels, il faut pouvoir forcer les lignes à des états alternés et aux états alternés complémentaires. Il est souhaitable de pouvoir également détecter les courts-circuits avec les lignes d'alimentation. A la figure 2, afin de forcer les lignes de mot WL à des états alternés, chaque ligne de mot WL, au lieu d'être connectée à une sortie du décodeur 12, est connectée à la sortie d'un multiplexeur 34 à deux entrées. Les lignes MX qui commandent les transistors de multiplexage 18 à 21 et que l'on souhaite également tester sont connectées de la même manière aux sorties de multiplexeurs 35. Une première entrée de chacun des multiplexeurs 34 et 35 est reliée à la sortie correspondante du décodeur 12. Les deuxièmes entrées des multiplexeurs 34 de rangs pairs sont connectées à une première ligne commune A0 tandis que les deuxièmes entrées des multiplexeurs 34 de rangs impairs sont connectées à une deuxième ligne commande A1. De même, les deuxièmes entrées des multiplexeurs 35 de rangs pairs sont connectées à une première ligne commune A2 tandis que les deuxièmes entrées des multiplexeurs 35 de rangs impairs sont connectées à une deuxième ligne commune A3. Tous les multiplexeurs 34 et 35 sont commandés par un signal de mise en mode de test T. Lorsque le signal T est à 0, le mode de fonctionnement est normal. Les multiplexeurs 34 et 35 relient les lignes WL et MX aux sorties respectives du décodeur 12. En mode de test, le signal T est mis à 1, ce qui entraîne la connexion des lignes WL et MX aux lignes A0, A1, A2 et A3 correspondantes. Etant donné que les sorties du décodeur 12 ne sont pas utilisées en mode de test, les lignes A0 à A3 sont avantageusement des lignes du bus d'adresses A. Avec cette configuration, en mode de test, les lignes WL sont mises à des états alternés en appliquant des états opposés sur les lignes A0 et Al. Les états des lignes WL pourront ensuite être inversés en intervertissant les états des lignes A0 et Al. Ceci permet de déceler, en au plus deux opérations, tout court-circuit entre deux lignes WL adjacentes quelconques, même un court-circuit unidirectionnel. Par ailleurs, en mettant les lignes A0 et Al à un même état, on peut déceler un court-circuit entre une ligne WL et une ligne d'alimentation correspondant à l'état opposé. Les mêmes tests peuvent être réalisés sur les lignes MX en agissant sur les lignes A2 et A3. La commande en mode de test des lignes MX est indépendante de celle des lignes WL afin de pouvoir tester les lignes de bit BL comme cela est exposé ci-dessous. Afin de tester les lignes de bit BL selon l'invention, on prévoit deux lignes de mot WL' supplémentaires correspondant à des rangées mémoire spéciales. Les cellules impaires et paires de la première rangée spéciale sont programmées respectivement à 1 et à 0, tandis que les cellules impaires et paires de la deuxième rangée spéciale sont programmées respectivement à 1 et 0, comme cela est représenté. Les lignes de mot supplémentaires WL' sont reliées aux sorties de deux portes ET 36 respectives dont chacune reçoit, sur une première entrée, le signal de test T et, sur une deuxième entrée, l'une respective des lignes A2 et A3. Avec cette configuration, en mode normal, les lignes WL' ne peuvent être sélectionnées. En mode de test, l'une des rangées spéciales est sélectionnée tandis que les transistors 18 à 21 connectent aux circuits de sortie 16 toutes les lignes de bit correspondant à des cellules programmées à 1 de la rangée spéciale. Les figures 3A et 3B illustrent l'utilisation des multiplexeurs 35 et des rangées spéciales pour déceler des courtscircuits entre les lignes de bit BL. On suppose, à titre d'exemple, que les deux premières lignes de bit et la quatrième et cinquième lignes de bit sont en court-circuit. Le test consiste tout simplement à effectuer une lecture de la mémoire et à mesurer le courant statique consomme. En figure 3A on effectue une phase de précharge classique. Les transistors de multiplexage 18 à 21 sont bloqués, ce qui est illustré par des interrupteurs ouverts. Les transistors de précharge 14 sont tous rendus conducteurs, ce qui est illustré par une connexion directe des lignes BL au potentiel Vdd. Ainsi, toutes les lignes BL sont chargées à l'état 1. Pendant ce temps, on ne sélectionne aucune rangée mémoire, ce qui est obtenu en mettant à 0 les lignes A0 à A3. A la figure 3B, on bloque les transistors de précharge 14, ce qui est représenté par des interrupteurs ouverts, et on sélectionne, par exemple, la deuxième rangée spéciale, ce qui est obtenu en mettant à O et 1 respectivement les lignes A2 et A3. Ainsi, les lignes de bit BL paires sont déchargées jusqu'à l'état 0 par les transistors 10 des cellules de la deuxième rangée spéciale, les lignes de bits impaires restant à 1. En même temps, les transistors de multiplexage impairs sont rendus passants, ce qui entraîne la confirmation des états 1 des lignes de bit impaires. Il s'établit alors, dans l'exemple représenté, un courant passant par le premier circuit de lecture 16, la première ligne de bit BL, le premier court-circuit, et le transistor 10 connecté à la deuxième ligne de bit. De même, il s'établit un courant passant par le deuxième circuit de lecture 16, la cinquième ligne de bit, le deuxième court-circuit, et le transistor 10 connecté à la quatrième ligne de bit. Pour que ces courants statiques s'établissent effectivement, les courts-circuits ne doivent pas être francs. S'ils étaient francs, les première et cinquième lignes de bit seraient forcées à 0, ce qui entraînerait le basculement des circuits de lecture 16 pour confirmer un état 0. Il ne subsisterait alors aucun courant statique. Mais des courts-circuits francs sur la ligne de bit sont faciles à déceler en comparant le contenu de la mémoire ROM au contenu qu'elle devrait avoir. La présente invention permet également de déceler des courts-circuits entre des lignes de bit BL et des lignes d'alimentation. En mettant à 1 les deux lignes A2 et A3, on sélectionne les deux rangées spéciales qui forcent à 0 toutes les lignes de bit BL. Tous les transistors de multiplexage sont rendus conducteurs, ce qui n'a aucune conséquence. On peut alors déceler un court-circuit entre toute ligne de bit BL et une ligne au potentiel haut Vdd. Pour déceler un court-circuit entre une ligne de bit BL et une ligne au potentiel bas Vss, il suffit de rendre conducteurs les transistors de précharge 14. La présente invention s'applique avantageusement à des mémoires mortes qui ne peuvent être testées par l'écriture et la relecture de données. Elle s'applique également à des mémoires vives et de façon générale à toute structure programmable comprenant des cellules programmables sélectionnées par rangées et accessibles par colonnes ou inversement, y compris les structures de type PAL ou PLA. REVENDICATIONS 1. Structure programmable comprenant une pluralité de lignes conductrices parallèles (WL, BL) dont chacune est associée à une rangée ou à une colonne de cellules mémoire, caractérisée en ce qu'elle comprend des moyens de test (34, 35) pour forcer toutes les lignes en même temps à des états alternés. 2. Structure programmable selon la revendication 1, caractérisée en ce que les lignes sont des lignes (WL) de sélection de rangées de cellules, pilotées par un décodeur d'adresses (12), les moyens de test (34) étant prévus pour, dans un mode normal, fournir les sorties du décodeur d'adresses sur les lignes et, dans un mode de test, fournir lesdits états alternés. 3. Structure programmable selon la revendication 1, caractérisée en ce que les lignes sont des lignes de lecture (BL) associées aux colonnes de cellules mémoire, les moyens de test comprenant au moins une rangée auxiliaire de cellules mémoire qui est sélectionnée dans un mode de test, les cellules de la rangée auxiliaire étant programmées à des états alternés. 4. Structure programmable selon la revendication 3, caractérisée en ce que les lignes de lecture (BL) sont reliées à un multiplexeur (MX, 18-21), les moyens de test étant prévus pour, dans le mode de test, commander le multiplexeur de manière qu'il sélectionne une ligne de bit sur deux. 5. Structure programmable selon la revendication 1, caractérisée en ce que les moyens de test permettent, dans le mode de test, de forcer les lignes à l'une ou l'autre de deux combinaisons d'états alternés. 6. Structure programmable selon la revendication 5, caractérisée en ce que les moyens de test permettent en outre de forcer toutes les lignes à un même état. 7. Structure programmable selon la revendication 5 ou 6, caractérisée en ce que les états des lignes dans le mode de test sont choisis par des lignes d'un bus d'adresses.