FR 2630574 A1 19891027 FR 8805512 A 19880426 MEMOIRE PROGRAMMABLE ELECTRIQUEMENT AVEC CIRCUIT DE CONTROLE DE PROGRAMMATION ET PROCEDE CORRESPONDANT L'invention concerne les mémoires électriquement programmables, et notamment les mémoires connues sous les appellations abrégées EPROM, "EEPROM", "FLASH-EEPROM" qui correspondent à diverses variantes de mémoires dont la programmation se fait par introduction de charges électriques dans la grille flottante d'un transistor à grille flottante constituant l'élément de base de chaque cellule élémentaire de la mémoire. La programmation est électrique, ce qui signifie que pour programmer une cellule de la mémoire on désigne cette cellule à l'aide d'un décodeur de ligne et éventuellement un décodeur de colonne, et on applique à la cellule désignée des tensions adéquates permettant d'injecter des charges dans la grille flottante. L'information stockée dans la mémoire est définie par l'état de programmation de chaque cellule. Cet état de programmation représente une information binaire: une cellule est programmée ou n'est pas programmée. Pour lire l'information contenue dans la mémoire, on examine l'état de programmation des cellules. Pour cela on adresse une cellule déterminée à l'aide du ou des décodeurs, et on applique des tensions de lecture appropriées à cette cellule. Il en résulte un courant électrique ou une tension qui dépend de l'état de programmation de la cellule. En mesurant ce courant ou cette tension on détermine si la cellule a été ou n'a pas été prograiumée-. On peut ainsi recueillir cellule par cellule ou groupe de cellules par groupe de cellules les informations binaires stockées dans la mémoire. Plus précisément, par exemple dans le cas où chaque cellule de mémoire est constituée par un transistor à grille flottante, la lecture de l'état de la cellule de mémoire consiste en une comparaison entre le courant issu de la cellule adressée et une valeur de courant de référence. La valeur du courant de référence est choisie sensiblement au milieu de l'intervalle entre la valeur de courant que fournirait une cellule programmée (valeur proche de zéro dans la pratique) et la valeur de courant que fournirait une cellule non programmée, cette cellule programmée et cette cellule non programmée recevant les mêmes tensions de lecture. Ainsi, un comparateur de courant recevant d'une part le courant de la cellule à lire (à laquelle on applique les tensions de lecture nominales), et d'autre part le courant de référence, basculera franchement dans un -sens ou dans un autre selon ltétat de~ programmation de la cellule, fournissant ainsi à sa sortie une information binaire représentant l'information binaire stockée dans la cellule lue. A titre d'exemple, une cellule EPROM vierge (non programmée) laissera circuler un courant de 100 microampères environ, tandis qu'une cellule programmée ne laissera passer qu'un courant inférieur à 20 microampères dans les mêmes conditions de lecture. La référence choisie pourra être un courant de 50 microampères. Dans la pratique, le courant issu de la cellule sera de préférence converti en une tension fonction de ce courant (par exemple grâce a un intégrateur), de sorte que la comparaison pourra s'effectuer par un comparateur de tension, souvent plus facile à réaliser qu'un comparateur de courant. Comme le mode de comparaison (par tension ou courant) ne fait pas l'objet de l'invention et qu'on sait bien réaliser des conversions courant-tension, on se contentera dans la suite des explications de parler de comparateurs de courant, en ayant présent å l'esprit qu'il peut s'agir en fait de comparateurs de tension.On peut supposer par exemple que la valeur de référence de comparaison est définie à partir du courant issu d'une cellule vierge de référence, courant appliqué a un convertisseur courant-tension dont le gain définira précisément une tension de référence. Comme les phénomènes physiques mis en jeu par la programmation sont mal contrôlés industriellement, les courants issus des cellules vierges et des cellules programmées ne sont pas connus avec une grande précision. Ils dépendent de beaucoup de facteurs, y compris des valeurs de tension de lecture appliquées aux cellules. Le courant des cellules programmées dépend en outre de l'intensité de la programmation, c'est-à-dire de la quantité de charges qu'on a réussi à stocker dans la grille flottante d'une cellule; cette quantité de charges dépend de la tension de programmation et de la durée d'application de cette tension, voire encore de la manière dont elle a été appliquée.Il y a donc une très grande dispersion entre les valeurs de courant de cellule vierges et de cellules programmées dans une série de mémoires d'une même fabrication, et même à l'intérieur dtune seule mémoire. Enfin, la programmation d'une cellule programmée se dégrade au cours du temps, c'est-à-dire que la quantité de charges stockées dans une grille flottante diminue au cours du temps, surtout quand la température augmente (la durée de rétention est de l'ordre de 10 ans). Il en résulte que le courant issu d'une cellule programmée augmente progressivement au cours du temps, å mesure que la tension de seuil du transistor å grille flottante diminue par suite de cette perte de charges. Il en résulte la nécessité de contrôler d'une manière précise la manière dont les cellules sont programmées, faute de quoi on risque de lire des informations fausses: on croit lire une cellule vierge (état logique 1) alors qu'il s'agit en fait d'une cellule programmée (état logique 0) dont la programmation s'est dégradée. La présente invention propose un procédé et un circuit de test et programmation de mémoires électriquement programmables, destinés a améliorer la fiabilité de l'information stockée dans la mémoire. Le procédé est le suivant : il s'applique à une mémoire programmable électriquement, dans laquelle la lecture des informations mémorisées dans une cellule de mémoire se fait par comparaison entre d'une part une tension ou un courant fonction de l'état de programmation de la cellule et d'autre part une valeur de référence, pour fournir une première information ou une deuxième information selon que la tension ou le courant est supérieur ou inférieur à la valeur de référence; le procédé consiste à comparer la tension ou le courant à une deuxième valeur de référence, différente de la première, correspondant à une programmation plus forte de la cellule, et à exécuter une opération de programmation complémentaire si le résultat de la comparaison montre que la tension ou le courant est compris entre les deux valeurs de référence, du fait qu'une cellule lue qui devrait être programmée est en réalité programmée avec un niveau de sécurité insuffisant. La mémoire selon llinvention comporte pour cela un circuit de comparaison pour comparer la tension ou le courant de la cellule à la deuxième valeur de référence, et un circuit de commande activé par le circuit de comparaison en fonction du résultat de la comparaison, le circuit de commande déclenchant l'opération complémentaire de programmation. 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 - la figure 1 représente schématiquement une organisation classique de mémoire- programmable électriquement; - la figure 2 représente une mémoire modifiée pour permettre la mise en oeuvre du procédé selon l'invention. A la figure 1, on reconnaît une mémoire organisée en un réseau de lignes et de colonnes de transistors à grille flottante, chaque transistor constituant une cellule de mémoire individuelle et étant placé au carrefour d'une ligne et d'une colonne de la mémoire. Les sources des transistors sont reliées à une masse électrique commune, les drains des transistors d'une même colonne sont reliés à un conducteur de colonne spécifique de cette colonne. Les grilles de commande des transistors d'une même ligne sont reliées à un conducteur de ligne spécifique de cette ligne. Un décodeur de ligne DEL permet de sélectionner une ligne déterminée et d'appliquer au conducteur de ligne correspondant L une tension de lecture (en mode de lecture) ou de programmation (en mode de programmation) ou de test (en mode de test). Un décodeur de colonne DEC permet de sélectionner une colonne déterminée et de relier le conducteur de colonne correspondant C (en mode de lecture ou de test) à un circuit de lecture qui est symbolisé sur la figure 1 par un comparateur de courant COMP. Le comparateur a alors une première entrée A reliée à une colonne C et une deuxième entrée B reliée à une source de courant de référence SR délivrant un courant de référence IR (on se référera à ce qui a été dit plus haut sur la possibilité que la comparaison porte sur des tensions plutôt que sur des courants). La sortie du comparateur est reliée à une borne de sortie S de la mémoire, borne sur laquelle apparaissent les niveaux logiques correspondant aux informations programmées dans les cellules.On peut noter que les informations à stocker dans les cellules sont également appliquées sur la borne S, à partir de l'extérieur, pour être transmises vers les colonnes en mode de programmation. En mode de lecture comme en mode de test ou de programmation, le transistor TGF situé à l'intersection de la ligne L et de la colonne C est sélectionné et peut être lu ou testé ou programmé. Sur la figure 1 on a en outre représenté symboliquement un circuit de programmation PROG qui fournit les tensions nécessaires à la programmation, plus élevées qu'en mode dexlecture ou test. En mode de lecture, le comparateur COMP fournit sur la borne de sortie S un niveau logique correspondant à l'information théoriquement stockée dans la cellule niveau 0 pour les cellules programmées, niveau 1 pour les cellules non programmées. Pour réaliser un meilleur contrôle de la programmation des cellules de mémoire, on met en oeuvre le procédé selon l'-invention en utilisant le circuit qu'on va maintenant décrire en référence à la figure 2. Sur cette figure 2, on retrouve tout d'abord exactement les mêmes éléments qu'à la figure 1 avec les mêmes références. Par ailleurs, on a prévu, de préférence sur la puce de circuit-intégre contenant la mémoire, un deuxième comparateur COMP1 ayant une première entrée E reliée å la colonne C sélectionnée par le décodeur de colonne DEC, et une deuxième entrée F reliée à une deuxieme source de courant de référence SR1 qui délivre un courant de référence IRl différent du courant IR et correspondant à une programmation plus forte. En d'autres mots, dans l'exemple décrit, le courant IR1 est plus faible que le courant IR et une cellule qui fournirait le courant IRl serait a priori plus fortement programmée qu'une cellule qui fournirait le courant IR. Le comparateur COMP fournit un niveau logique 0 pour une cellule programmée délivrant un courant I inférieur à IR et un niveau logique 1 pour une cellule non programmée délivrant un courant I supérieur à IR. Le comparateur COMPl fournit un niveau logique 0 si le courant issu de la cellule est supérieur à IR1 et un niveau logique 1 s'il est inférieur à IRl. De cette maniere, le# comparateurs COMP et COMP1 fournissent tous deux un niveau logique 0 si le courant délivré par une cellule est compris entre les deux valeurs de référence IRl et IR. Un circuit de commande de programmation complémentaire CPC, comprenant ici essentiellement une porte NON-OU et une porte ET, détecte ce cas et délivre un signal de commande dont la fonction est de déclencher une opération de programmation complémentaire de la cellule. On considère en effet selon l'invention que si le courant est compris entre les valeurs IRI et IR, c'est que la cellule est insuffisamment programmée et qu'il y a un risque notable que la perte de charges qui se produit au cours du temps aboutisse à une inversion de l'information stockée. Les sorties des comparateurs sont appliquées aux entrées de la porte NON-OU. Le signal de sortie de la porte NON-OU peut être appliqué au circuit de programmation PROG pour autoriser l'application de tensions de programmation à la cellule. La programmation complémentaire étant effectuée, on refait un test de la même cellule et on renouvelle la mesure de courant. Des opérations successives de reprogrammation peuvent être effectuées jusqu'à ce que le courant de sortie I de la cellule devienne inférieur au courant IRl. On prévoit cependant de préférence que le résultat du test fait par les deux comparateurs COMP et COMP1 est appliqué sur une borne R de sortie de la mémoire. Cette borne R est par exemple à un microprocesseur apte à commander l'exécution d'une séquence de programmation des cellules. Dès que la borne R reçoit un niveau logique 1, indiquant qu'une cellule est programmée mais insuffisamment programmée, ce signal est transmis au microprocesseur pour commander l'interruption du fonctionnement normal en lecture et pour déclencher une opération de programmation complémentaire après laquelle le fonctionnement normal reprend. Dans l'utilisation de la mémoire, on s'arrangera pour qu'en moyenne le risque de programmation insuffisante soit faible, de sorte que le fonctionnement test ne sera interrompu en vue d'une reprogrammation qu'un petit nombre de fois, ce qui est important pour ne pas accroître trop le temps consommé par les opérations de reprogrammation. A titre d'exemple, si le courant nominal d'une cellule vierge est 100 microampères et le courant maximal d'une cellule programmée est 20 microampères, on peut prévoir que les valeurs de IR et IR1 sont respectivement 50 et 35 microampères. REVENDICATIONS 1. Procédé de contrôle de la programmation d'une mémoire électriquement -programmable, dans laquelle la lecture des informations mémorisées dans une cellule de mémoire se fait par comparaison entre d'une part une tension ou un courant (I) fonction de l'état de programmation de la cellule et d'autre part une valeur de référence (IR), pour fournir une première information ou une deuxième information selon que la tension ou le courant-est supérieur ou inférieur à la valeur de référence, caractérisé en ce que l'on compare la tension ou le courant (I) à une deuxième valeur de référence (IR1), différente de la première, correspondant à une programmation plus forte de la cellule, et on exécute une opération de programmation complémentaire si le résultat de la comparaison montre que la tension ou le courant est compris entre les deux valeurs de référence, du fait qu'une cellule lue qui devrait être programmée est en réalité programmée avec un niveau de sécurité insuffisant. 2. Mémoire électriquement programmable, dans laquelle la lecture des informations mémorisées dans une cellule de mémoire se fait par comparaison entre d'une part un courant ou une tension fonction de l'état de programmation de la cellule et d'autre part une valeur de référence (IR), pour fournir une information binaire en fonction du résultat de la comparaison, caractérisée en ce qu'elle comporte un circuit de comparaison (COMP1) pour comparer la tension ou le courant (I) à une deuxième valeur de référence (IRl), différente de la première, et un circuit de commande (CPC) activé par le circuit de comparaison (COMP1) pour commander l'exécution d'une opération de programmation complémentaire si le résultat de la comparaison montre qu'une cellule lue qui devrait être programmée est en réalité programmée avec un niveau de sécurité insuffisant. 3. Mémoire selon la revendication 2, caractérisée par le fait qu'elle comporte un premier comparateur (COMP) pour comparer la tension ou le courant à la première valeur de référence (IR), un deuxième comparateur (COMP1) pour comparer la tension ou le courant à la deuxième valeur de référence (IRl), et un circuit logique recevant les sorties des deux comparateurs pour commander l'exécution d'une opération de programmation complémentaire si le résultat de la comparaison montre que la tension ou le courant est compris entre les deux valeurs de référence.