Brevet FR3025927A1 — publié le 20160318

B13068 - 13-GR1-0492 1 PROGRAMMATION DE CELLULES ANTI-FUSIBLES Domaine La présente description concerne de façon générale les circuits électroniques et, plus particulièrement, les mémoires non volatiles programmables une seule fois (OTP) de type anti- fusible. La présente description concerne plus précisément la programmation de ces cellules mémoire anti-fusibles. Exposé de l'art antérieur Les mémoires anti-fusibles sont des mémoires dans lesquelles chaque cellule comporte un élément de stockage de l'état passant ou bloqué de la cellule et un transistor MOS de sélection. L'élément de stockage est, dans les applications que vise la présente description, un élément de type condensateur, c'est-à-dire une couche en un matériau isolant (en pratique un oxyde de silicium) entre deux électrodes. L'état de repos (non programmé) de la cellule est un état dans lequel l'oxyde est présent. L'état programmé de la cellule est un état dans lequel l'oxyde a été claqué, c'est-à-dire que l'élément de stockage n'a plus un comportement capacitif mais un comportement résistif. La programmation d'une mémoire de ce type consiste à appliquer, aux bornes de l'élément, une tension qui, compte tenu de la nature et de l'épaisseur de l'isolant, excède sa tenue en 3025927 B13068 - 13-GR1-0492 2 tension de façon à provoquer la circulation d'un courant à travers cette couche isolante. Cette tension est maintenue suffisamment longtemps pour "claquer" l'oxyde de l'élément de stockage, c'est-à-dire qu'il passe dans un état conducteur (comportement résistif) 5 irréversible. Une difficulté réside dans le temps nécessaire à cette programmation. En effet, le temps requis pour claquer l'oxyde des cellules diffère d'une cellule à l'autre en fonction des dispersions technologiques. Dans une structure matricielle de 10 cellules qui constitue la structure la plus répandue de mémoires anti-fusibles, cela conduit à dimensionner le système de programmation pour qu'il applique la tension de programmation pendant une durée correspondant au pire cas. Résumé 15 Un mode de réalisation vise à proposer une technique de programmation de cellules anti-fusibles qui pallie tout ou partie des inconvénients des solutions usuelles. Un autre mode de réalisation vise à optimiser le temps de programmation des cellules anti-fusibles d'un réseau matriciel. 20 Un autre mode de réalisation vise à proposer une architecture de programmation de cellules anti-fusibles qui pallie tout ou partie des inconvénients des architectures usuelles. Un autre mode de réalisation vise une solution particulièrement simple à mettre en oeuvre. Ainsi, un mode de réalisation vise un procédé de programmation d'une mémoire anti-fusible, comportant, pour chaque cellule à programmer, les étapes suivantes : évaluer la consommation de la mémoire en mode programmation ; comparer cette consommation à un seuil ; et arrêter la programmation d'une cellule quand le seuil est atteint. Selon un mode de réalisation, une tension de programmation, supérieure à une tension d'alimentation de la 35 mémoire en lecture, est appliquée pendant la programmation. 3025927 B13068 - 13-GR1-0492 3 Selon un mode de réalisation, ledit seuil est ajusté en fonction d'une consommation du plan mémoire en l'absence de programmation. Selon un mode de réalisation, l'évaluation du courant 5 consommé s'effectue par comptage des impulsions de commande d'un circuit de pompe de charge. Selon un mode de réalisation, les cellules à programmer sont sélectionnées successivement. Un mode de réalisation prévoit un circuit de 10 programmation de cellules anti-fusible d'une mémoire comportant : un circuit de pompe de charge apte à fournir, à partir d'une première tension d'alimentation, une deuxième tension de programmation plus élevée ; un circuit de sélection successive des cellules à 15 programmer ; et un circuit d'évaluation de l'activité du circuit de pompe de charge pendant les phases de programmation. Selon un mode de réalisation, ledit circuit d'évaluation comporte un compteur synchrone d'impulsions de commande du circuit 20 de pompe de charge. Brève description des dessins Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation 25 avec les figures jointes parmi lesquelles : La figure 1 représente le schéma électrique d'une cellule mémoire anti-fusible ; les figures 2A et 2B illustrent, par des chronogrammes, des exemples d'allures respectives de la tension appliquée à une 30 cellule lors d'une programmation, et du courant correspondant traversant cette cellule ; la figure 3 est une représentation schématique d'une matrice de cellules anti-fusibles ; 3025927 B13068 - 13-GR1-0492 4 la figure 4 représente, de façon schématique et sous forme de blocs, un mode de réalisation d'un circuit de détection de l'état d'une cellule ; les figures 5A, 5B, 5C, 5D et 5E illustrent, sous forme 5 de chronogrammes, un mode de mise en oeuvre du procédé de programmation ; et la figure 6 représente, de façon schématique et sous forme de blocs, des étapes d'un mode de mise en oeuvre du procédé de programmation. 10 Description détaillée De mêmes éléments ont été désignés par de mêmes références aux différentes figures dont les chronogrammes ont été tracés sans respect d'échelle. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de 15 réalisation décrits ont été représentés et seront détaillés. En particulier, les circuits de lecture et de sélection des états respectifs des cellules mémoire dans un réseau matriciel n'ont pas été détaillés, les modes de réalisation décrits étant compatibles avec les solutions usuelles. De plus, le 20 fonctionnement, en lecture des informations qu'elle contient, d'une matrice de cellules mémoire anti-fusibles et l'exploitation de ces informations n'ont pas non plus été détaillés, les solutions décrites étant compatibles avec l'utilisation usuelle d'une mémoire anti-fusible. Sauf précision contraire, on néglige 25 les chutes de tension parasites dans les éléments conducteurs à l'état passant. Une mémoire anti-fusible est une mémoire non volatile comportant un réseau de cellules anti-fusibles agencées de façon matricielle. Une telle mémoire est généralement destinée à 30 contenir des informations exploitables par un circuit électronique contenant ou relié à la mémoire anti-fusible. La programmation d'une mémoire anti-fusible peut s'effectuer soit en fin de fabrication, soit en cours d'utilisation de la mémoire. Cette programmation consiste à appliquer, aux bornes de la cellule, une tension supérieure à la tension en fonctionnement normal de façon 3025927 B13068 - 13-GR1-0492 5 à provoquer la circulation d'un courant susceptible de détruire une couche isolante séparant deux électrodes de l'élément de stockage de la cellule. La figure 1 représente un exemple de réalisation d'une 5 cellule anti-fusible 1 par son schéma électrique équivalent. Cette cellule 1 comporte, en série entre une borne 11 d'application d'un potentiel positif par rapport à un potentiel de référence (typiquement la masse) et une borne 13 de connexion à une ligne de bits (généralement une colonne dans un agencement matriciel), 10 un élément 15 de stockage de l'information et un transistor MOS 17 de sélection. La grille du transistor MOS 17 est reliée à une ligne de sélection ou ligne de mots WL, généralement une rangée dans l'agencement matriciel. L'élément de stockage 15 est symbolisé sous la forme d'une capacité et est, en pratique 15 constitué d'une épaisseur d'oxyde entre deux électrodes, susceptible d'être claquée sous l'effet d'un champ électrique suffisant. L'application de ce champ électrique induit la circulation d'un courant électrique (courant d'usure ou "wearout") qui, à son tour, entraîne le claquage de l'oxyde. 20 En fonctionnement normal (lecture de la cellule), la borne 11 est connectée à un potentiel d'alimentation du circuit électronique Vdd dans lequel est intégrée la mémoire, et la ligne de bits est connectée à un amplificateur de lecture. Lorsque la cellule est sélectionnée par application sur la ligne de mots, 25 d'un potentiel supérieur au potentiel de masse (en pratique par connexion à l'alimentation Vdd de la ligne de mots WL), la ligne de bits (borne 13) voit soit son potentiel augmenter (cas de l'élément de stockage 15 claqué), soit son potentiel de repos (généralement la masse). En fait, l'amplificateur de lecture 30 connecté à la ligne de bits détecte une variation du potentiel de cette ligne. Pour programmer la cellule 1, on applique, sur la borne 11, un potentiel HV supérieur au potentiel Vdd et on force la ligne de bits BL (borne 13) au potentiel de référence (la masse). 35 Lorsque la cellule 1 est sélectionnée par la ligne de mots WL, un 3025927 B13068 - 13-GR1-0492 6 courant I traverse celle-ci. Le niveau de la tension HV est choisi pour provoquer une conduction à travers l'oxyde de la cellule et pour que le courant I soit suffisant pour claquer l'oxyde de l'élément de stockage 15 au bout d'un certain temps. 5 La sélection entre le mode lecture ou le mode programmation Pg est symbolisée en figure 1 par un commutateur K sélectionnant la connexion de la borne 11 soit au potentiel Vdd soit au potentiel HV. Les figures 2A et 2B sont des chronogrammes illustrant 10 la programmation de la cellule 1 de la figure 1, c'est-à-dire le passage d'un état bloqué (0) à un état passant (1). La figure 2A illustre la tension V appliquée aux bornes (entre les bornes 11 et 13) de la cellule 1. La figure 2B illustre l'allure correspondante du courant I traversant la cellule. On néglige ici 15 l'effet de la connexion de la cellule dans son réseau matriciel. On suppose que le potentiel de référence est la masse (0 volts). On suppose qu'à un instant tO la cellule est sélectionnée par la ligne de mots WL et que la tension HV est alors appliquée à ses bornes. La programmation de la cellule 20 commence, c'est-à-dire que son oxyde commence à fuir et le courant atteint un premier niveau Il. Après un intervalle de temps T, le claquage de l'oxyde se produit à un instant tBD et le courant dans la cellule atteint un deuxième niveau 12 supérieur au niveau Il et représentant l'état programmé de la cellule. En fait, la 25 cellule passe d'un fonctionnement non programmé de type capacitif à un fonctionnement programmé de type résistif, sa résistance étant alors faible. Une fois programmée, la cellule reste passante de façon non volatile. Une difficulté qui réside dans la programmation des 30 cellules de ce type est que la durée T varie d'une cellule à l'autre pour une tension HV donnée. Plus la tension HV est élevée, plus cette durée T est faible, mais elle reste variable en fonction des cellules. La durée T de programmation (durée de claquage) est généralement dénommée "WearOut time". 3025927 B13068 - 13-GR1-0492 7 Une méthode habituelle de programmation consiste à dimensionner le temps de programmation en fonction du pire cas, c'est-à-dire de la durée la plus longue nécessaire aux cellules mémoire de la technologie pour atteindre le claquage. Cette 5 technique présente l'inconvénient d'allonger la durée de programmation. Un autre inconvénient est que cela réduit la durée de vie des cellules qui ont un temps de claquage plus court. En effet, plus la haute tension est maintenue après l'instant de claquage, plus la durée de vie de la cellule est réduite, du fait 10 des mécanismes d'électromigration et de vieillissement par porteurs chauds par exemple. En outre, cela accroît la consommation du circuit. Une autre technique consiste à effectuer une programmation itérative par impulsions de courtes durées. On 15 applique la tension HV à la cellule pendant un instant court, choisi pour correspondre approximativement au temps nécessaire à la programmation des cellules les plus rapides, puis on effectue une lecture de l'état de la cellule afin de vérifier si elle a bien été programmée. Dans l'affirmative, on passe à la 20 programmation des cellules suivantes. Dans la négative, on réitère l'application de l'impulsion haute tension et ainsi de suite. Un inconvénient de cette technique est que l'on perd du temps à cause des commutations entre les phases de lecture et les phases de programmation. De plus, il est difficile de choisir un 25 temps d'impulsion optimal. La figure 3 représente, de façon très schématique, un exemple de mémoire 2 de cellules anti-fusibles du type de celles illustrées en figure 1 dans un agencement matriciel. Dans cet exemple, la mémoire comporte n rangées et m colonnes. Chaque 30 colonne comporte n cellules 1 connectées à une même ligne de bits BLj (j étant compris entre 0 et m-1), et m cellules 1 d'une même rangée partagent une même ligne de mots WLi (i étant compris entre 0 et n-1). Chaque cellule 1 a une structure similaire à celle décrite en relation avec la figure 1. 3025927 B13068 - 13-GR1-0492 8 Généralement, toutes les cellules du plan mémoire sont interconnectées à une borne 21 commune sur la laquelle est appliquée, soit la tension Vdd de lecture, soit la tension HV de programmation. En d'autres termes, les bornes 11 de toutes les 5 cellules de la matrice sont interconnectées à une borne 21 et l'interrupteur K est commun à toutes les cellules. Chaque ligne de bit BLi est connectée à un amplificateur de lecture et à un circuit de sélection (non représentés) entre une lecture et une application du potentiel de référence dans les 10 phases de programmation. Pour détecter une fin de programmation d'une cellule donnée, on pourrait penser appliquer la tension de programmation HV au plan mémoire puis mesurer le courant au niveau des lignes de bits BL pour détecter l'instant tBD de programmation de la 15 cellule sélectionnée par la ligne de mots WL et stopper alors la programmation (désélectionner la cellule). Toutefois, en raison de l'agencement matriciel des cellules, le courant dans la ligne de bits représente non seulement le courant dans la cellule en cours de programmation mais également d'éventuelles fuites dans 20 les cellules non sélectionnées connectées à cette même ligne de bits. La mise en oeuvre d'une telle technique nécessiterait une mesure différentielle complexe pour distinguer le courant de programmation des fuites des cellules de la ligne de bit dont l'élément de stockage est déjà claqué. De plus, cela nécessiterait 25 l'ajout d'un circuit de mesure de courant sur chaque ligne de bit ou l'ajout de commutateurs permettant de connecter chaque ligne de bit à un circuit commun de mesure de courant. Un mode de réalisation de la présente description prévoit de détecter le claquage de l'oxyde de la cellule au niveau 30 de sa borne 11, c'est-à-dire au niveau du noeud 21 de la matrice. Il ressort déjà du choix de la détection côté borne 11 de la cellule et non côté borne 13, que le noeud haute tension étant partagé par l'ensemble du réseau matriciel, un unique dispositif de détection est suffisant pour l'ensemble du plan 3025927 B13068 - 13-GR1-0492 9 mémoire et qu'aucun dispositif supplémentaire n'est requis pour sélectionner la cellule. La borne 21 du réseau matriciel est, en mode programmation, connectée en sortie d'un circuit de pompe de charge 5 dont le rôle est de générer la tension HV à partir de la tension Vdd. Dans le mode de réalisation qui sera décrit par la suite, on prévoit d'exploiter cette pompe de charge pour détecter la programmation. La figure 4 est un schéma bloc représentant un mode de 10 réalisation d'un circuit 3 de pompe de charge incluant des éléments de mise en oeuvre du procédé de détection de programmation des cellules. Un circuit 3 de pompe de charge est généralement basé sur un réseau de capacités commutables 31 (CP Stages) dont une 15 borne 32 de sortie est destinée à fournir la tension HV. Le réseau 31 est activé ou commandé par un train d'impulsions dont chaque front montant entraine un transfert de charges vers la borne 32 de sortie et dont la période est asservie sur la consommation du plan mémoire. Pour cela, un comparateur 33 (COMP) reçoit, sur une 20 première borne, un potentiel de référence Vref (inférieur au niveau Vdd), sur une deuxième borne, une information représentative du niveau de la tension HV et, sur une troisième borne, un signal d'horloge CK. Comme la tension HV est nettement supérieure à la tension Vdd d'alimentation du circuit 33 (en 25 pratique, généralement dans un rapport compris entre 2 et 5), un diviseur de tension 34 (DIV), constitué par exemple de deux résistances R1 et R2 en série entre la borne 32 et la masse, dont le point milieu est connecté à l'entrée du comparateur 33, réduit le niveau de l'information appliquée en entrée du comparateur. La 30 sortie du comparateur 33 commute entre un état haut et un état bas en fonction du niveau de la tension de sortie par rapport au niveau de référence Vref choisi. Cette sortie est en pratique combinée avec le signal d'horloge CK (par exemple, par une fonction 35 (MASK) de type ET) dont la sortie commande le réseau 35 31 de capacités commutées. 3025927 B13068 - 13-GR1-0492 10 Ce qui a été décrit ci-dessus en relation avec le circuit 3 de pompe de charge correspond à une structure usuelle. La valeur de la haute tension HV de sortie correspond au rapport Vref. (R1+R2) /R2. 5 La fréquence des impulsions de commande de l'étage 31 de capacités commutées varie avec la consommation du plan mémoire. On prévoit de tirer profit de cette architecture pour détecter la programmation d'une cellule. En effet, lorsqu'une cellule passe de l'état transitoire où elle est traversée par le 10 courant Il (figure 2B) à l'état programmé (courant 12), la consommation de la mémoire, donc la fréquence des impulsions du circuit de pompe de charge, augmente. Cela permet de détecter la programmation et de la stopper à l'instant optimal. Selon un mode de réalisation, pour déterminer, à l'aide 15 du circuit de pompe de charge le moment où une cellule est programmée, on adjoint au circuit 3 des circuits de comptage des impulsions d'horloge. Par exemple, un registre à décalage 41 (SR) reçoit, sur son entrée de données, le signal S33 sortant du comparateur 33 et, sur son entrée d'horloge, le signal d'horloge 20 CK exploité par le comparateur 33 et la fonction 35. Le registre 41 est chargé en série au rythme de l'horloge CK et est lu en parallèle. Il comporte p bits. Le nombre de bits à l'état "1" fourni par le registre à décalage 41 est représentatif du nombre d'impulsions de commande du circuit de pompe de charge sur 25 l'intervalle de temps correspondant aux p dernières périodes d'horloge CK. Le nombre p (par exemple compris entre 8 et 64) de bits du registre 41 est choisi de manière à optimiser le compromis précision-rapidité du système. En effet, le nombre p définit le nombre de valeurs distinctes que peut prendre la sortie du 30 circuit. Par ailleurs, le circuit, en sommant le nombre d'impulsions sur p périodes du signal CK, réalise une moyenne sur cet intervalle. Cette opération est assimilable à un filtre passe-bas dont la fréquence de coupure est inversement proportionnelle à p. 3025927 B13068 - 13-GR1-0492 11 Dans l'exemple de la figure 4, les sorties du registre à décalage 41 sont envoyées à un additionneur 43 (ADD). La sortie de l'additionneur 43 fournit un résultat RESULT représentatif de l'activité du circuit de pompe de charge. 5 On réalise en fait un compteur synchrone. Plus le nombre p est élevé, plus le compteur est précis mais moins la détection s'effectue rapidement. On peut considérer que le courant moyen fourni par la pompe de charge correspond au signal RESULT, multiplié par la charge totale Q des capacités de l'étage 31 de 10 la pompe de charge (correspondant approximativement au produit des capacités de la pompe de charge multiplié par la tension Vdd), et divisé par le produit de la période d'horloge CK par le nombre p. Les figures SA, 5B, 5C, 5D et 5E sont des chronogrammes 15 illustrant le fonctionnement du procédé de détection à l'aide du circuit de pompe de charge. La figure aA représente un exemple d'allure de la tension V appliquée sur la borne 21 du réseau matriciel. La figure 5B illustre l'état d'un signal de sélection de bits BS dans la matrice. Ce signal représente par exemple une 20 sélection successive de cellules à programmer. Par exemple, pour la programmation d'une ligne de mot, une ligne WLi (figure 3) voit sa borne connectée à l'alimentation Vdd et les lignes de bits BLO à BLm-1 correspondant aux cellules 1 devant être programmées sont successivement commutées à la masse. La figure 5C illustre un 25 exemple d'allure correspondant du train d'impulsions S33 en sortie de l'amplificateur 33. La figure 5D illustre un exemple d'allure correspondant du train d'impulsions S35 en sortie du circuit 35. La figure 5E illustre l'allure correspondante du signal RESULT (qui correspond en fait à l'allure du courant au niveau de la 30 borne 21). Ce résultat est un résultat numérique. En fait, le signal RESULT revient à fournir une valeur indicatrice du courant I consommé et suit donc en numérique la même allure que le signal I. On suppose qu'à un instant t10, le signal haute tension 35 est appliqué sur la matrice de cellule. L'application de la haute 3025927 B13068 - 13-GR1-0492 12 tension s'accompagne d'une phase de démarrage dans laquelle un courant relativement élevé est prélevé sur la pompe de charge. Ce courant correspond à la charge de toutes les capacités respectives des cellules 1 pour porter leurs électrodes côté borne 21 au 5 niveau HV. A l'issue de cette phase de démarrage (instant t11), le niveau du courant I prélevé sur l'alimentation descend à un niveau IL correspondant au niveau des fuites apportées par les différentes cellules se trouvant programmées à l'état 1. Lorsque le plan mémoire se trouve dans cet état, on peut commencer la 10 programmation. Comme l'illustrent les figures 5C et 5D, le signal S35 fournit un train d'impulsions au rythme de l'horloge CK pendant des périodes identifiées par le signal S33. Une fois la phase de démarrage terminée (après l'instant t11), le signal S33 active la pompe de charge quand le signal S34 15 passe en dessous du niveau Vref de façon à recharger les éléments capacitifs. Par exemple, une cellule est sélectionnée à un instant t12 (signal BS). Il en découle une légère augmentation du courant prélevé sur l'alimentation (phase de "wear-out"). Côté signal S35, 20 on assiste à des impulsions de durée plus courte, mais plus rapprochées, que pendant les phases de pompe de charge entre les instants tll et t12. A un instant t13, la cellule se trouve programmée et on assiste alors à une augmentation du courant consommé dans la mesure où cette cellule est sélectionnée dans le 25 plan mémoire et devient passante. L'intervalle entre les instants t12 et t13 correspond à la période (T, figure 2B) nécessaire à la programmation de la cellule considérée. Le signal RESULT qui donne une image de l'activité de la pompe de charge peut être considéré également comme une image 30 du courant dans le plan mémoire. On détermine un seuil TH à partir duquel on considère la cellule programmée. Une fois ce seuil atteint, on provoque l'arrêt de la sélection de la cellule (instant t14) au niveau du signal BS, ce qui rend possible de programmer une cellule 35 suivante. 3025927 B13068 - 13-GR1-0492 13 Dans l'exemple des figures 5A à 5E, on suppose un démarrage de programmation à un instant t22 déclenché par une commutation du signal BS et une fin de programmation à un instant t24. On suppose que l'intervalle entre les instants t22 et t23 5 représentant le claquage de la cellule considérée est supérieur à l'intervalle de temps entre les instants t12 et t13, ce qui signifie que la deuxième cellule s'est programmée moins rapidement. La programmation se poursuit ainsi. Aux figures 5PLà 5E, on a représenté un troisième exemple 10 (instants t32, t33 et t34) où l'on suppose la programmation d'une troisième cellule dont la durée de programmation est intermédiaire entre celle des deux précédentes. Entre deux programmations (entre les instants t14 et t22 et entre les instant t24 et t32), on retrouve des phases de 15 maintien comme entre les instants tll et t12. Il n'est donc désormais plus nécessaire d'attendre une durée fixe entre les programmations des différentes cellules. La figure 6 est un schéma bloc illustrant la mise en oeuvre du procédé de programmation décrit ci-dessus. Dans une 20 première étape (bloc 61, Start pump), la pompe de charge est démarrée pour fournir la haute tension HV. On surveille l'apparition de la fin de la phase de démarrage (bloc 62, End start phase). Cette surveillance s'effectue, par exemple, en détectant (instant t11, figure 5D) 25 une décroissance dans l'activité de la pompe de charge. Puis, on stocke (bloc 63, Store IL) la valeur fournie par le compteur qui représente le niveau de fuite dans la pompe de charge. Une fois ces étapes d'initialisation effectuées, on peut 30 démarrer la programmation et la détection proprement dite. Pour cela, on sélectionne un bit à programmer (bloc 64, Bit selection). Puis, on surveille l'évolution du signal RESULT (bloc 65, Monitor RESULT) jusqu'à ce que ce signal excède le seuil TH (bloc 66, result > TH ?). Une fois ce seuil atteint, on provoque la 35 désélection du bit concerné (bloc 67, Bit deselect). Tant que tous 3025927 B13068 - 13-GR1-0492 14 les bits n'ont pas été programmés (sortie N du bloc 68, All bits ?), on revient à la sélection du bit suivant (bloc 64). Une fois tous les bits programmés (sortie Y du bloc 68) on peut provoquer l'arrêt de la pompe de charge (bloc 69, Stop pump). 5 Selon un mode de réalisation, on considère que l'amplitude de variation du courant dans la cellule, lorsqu'elle devient programmée, est supérieure à la somme des fuites possibles dans le plan mémoire. Dans ce cas, l'étape de stockage de la valeur Il peut être omise et le seuil TH est un seuil constant. 10 Selon un autre mode de réalisation, on effectue la soustraction entre le signal RESULT et la valeur IL mémorisée lors de l'initialisation. Un avantage de ce mode de réalisation est qu'il permet d'effectuer un traitement différentiel tenant compte des éventuelles variations du niveau de fuite. Cela revient à 15 fixer un seuil TH variable en fonction de la valeur IL. Selon une variante de réalisation, on peut utiliser un circuit de calibration pour tenir compte des variations de la tension d'alimentation Vdd. En effet, des variations de la tension vont conduire à des variations du rythme de la pompe de charge 20 car les charges fournies par la pompe sont approximativement proportionnelles à l'alimentation Vdd. Par conséquent, il est préférable d'en tenir compte. Par exemple, on peut prévoir de corriger le résultat de la pompe de charge en fonction de la valeur de la tension Vdd. Cette correction peut être faite par 25 plages, par exemple en affectant un même coefficient (multiplicatif) correcteur de la valeur RESULT pour une plage de valeurs de la tension Vdd. Un avantage des modes de réalisation qui ont été décrits est qu'il est désormais possible d'optimiser le temps de 30 programmation d'une matrice de cellules anti-fusibles. Un autre avantage est que l'on préserve la durée de vie des cellules ayant des temps de programmation courts par rapport à d'autres. Un autre avantage est que l'on réduit la consommation 35 du circuit. 3025927 B13068 - 13-GR1-0492 15 Un autre avantage est que la mise en oeuvre ne requière aucune intervention sur le plan mémoire lui-même et, en particulier, aucune mesure au niveau des lignes de bits. La seule adaptation est la génération des signaux de sélection (symbolisée 5 par le signal BS) en fonction des résultats de la détection. Divers modes de réalisation ont été décrits. Diverses variantes et modifications apparaîtront à l'homme de l'art. En particulier, le choix du nombre p de bits du compteur synchrone est à la portée de l'homme du métier en fonction d'un compromis 10 entre la rapidité de détection souhaitée et la précision souhaitée. Par ailleurs, ce qui a été décrit en relation avec un circuit de pompe de charge fonctionnant sur front d'horloge montant, se transpose à un circuit de pompe de charge fonctionnant sur front descendant ou montant et descendant. En outre, la mise 15 en oeuvre pratique des modes de réalisation qui ont été décrits est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus. REVENDICATIONS1. Procédé de programmation d'une mémoire anti-fusible (2), comportant, pour chaque cellule (1) à programmer, les étapes suivantes : évaluer (65) la consommation de la mémoire en mode 5 programmation ; comparer (66) cette consommation à un seuil (TH) ; et arrêter (67) la programmation d'une cellule quand le seuil est atteint. 2. Procédé selon la revendication 1, dans lequel une 10 tension de programmation (HV), supérieure à une tension d'alimentation (Vdd) de la mémoire en lecture, est appliquée pendant la programmation. 3. Procédé selon la revendication 1 ou 2, dans lequel ledit seuil (TH) est ajusté en fonction d'une consommation du plan 15 mémoire en l'absence de programmation. 4. Procédé selon la revendication 1 ou 2, dans lequel l'évaluation du courant consommé s'effectue par comptage des impulsions de commande d'un circuit de pompe de charge. 5. Procédé selon l'une quelconque des revendications 1 20 à 4, dans lequel les cellules à programmer sont sélectionnées successivement. 6. Circuit de programmation de cellules anti-fusible d'une mémoire comportant : un circuit de pompe de charge (3) apte à fournir, à 25 partir d'une première tension d'alimentation (Vdd), une deuxième tension de programmation (HV) plus élevée ; un circuit de sélection successive des cellules à programmer ; et un circuit d'évaluation de l'activité du circuit de 30 pompe de charge pendant les phases de programmation. 7. Circuit selon la revendication 6, dans lequel ledit circuit d'évaluation comporte un compteur synchrone d'impulsions de commande du circuit de pompe de charge.