FR 3012654 A1 20150501 FR 1360418 A 20131025 Procédé d'écriture et de lecture d'une mémoire morte électriquement programmable et effaçable multi-niveaux et dispositif de mémoire correspondant Des modes de mises en oeuvre et de réalisation de l'invention concernent les mémoires programmables et effaçables par effet Fowler-Nordheim telles que les mémoires mortes électriquement programmables et effaçables dites mémoires EEPROM, et plus particulièrement de telles mémoires multi-niveaux c'est-à-dire capables de stocker plusieurs bits par cellule-mémoire ou point-mémoire. Une cellule-mémoire du type EEPROM comprend généralement un transistor ayant une grille flottante permettant la mémorisation de la donnée, une grille de commande, une région de source et une région de drain. Une telle cellule-mémoire utilise le principe du stockage non volatile de charges sur la grille flottante du transistor. Classiquement, l'écriture d'une donnée comporte un cycle d'effacement suivi d'un cycle de programmation. La programmation se fait par effet Fowler-Nordheim et comporte l'injection par effet tunnel d'électrons de la grille flottante vers le drain tandis que l'effacement, qui s'effectue également par effet Fowler-Nordheim, comporte une injection par effet tunnel d'électrons du drain vers la grille flottante. Classiquement, la programmation d'une cellule-mémoire du type EEPROM s'effectue en reliant la grille de commande à la masse et en appliquant une tension de programmation relativement élevée sur le drain, typiquement 13 Volt. Par ailleurs, en ce qui concerne la source, deux possibilités existent : soit la source est laissée flottante, soit elle est pré-chargée à une tension de pré-charge non-nulle. Dans le premier cas (source laissée flottante), le potentiel de la source monte pendant la programmation, la grille flottante se charge positivement et la cellule-mémoire passe à l'issue de la programmation, dans un état passant mais ne conduit pas car la source étant flottante, elle présente une impédance infinie. Dans le second cas (pré-charge de la source), la grille flottante se charge également positivement pendant la programmation mais la cellule ne prend pas un état passant car la tension de pré-charge de la source est choisie de sorte que la différence entre le potentiel de la grille flottante et le potentiel de la source reste toujours inférieure à la tension de seuil du transistor de la cellule-mémoire. Ainsi, dans tous les cas, la cellule-mémoire ne rentre pas en conduction lors de la programmation. Par ailleurs, le cycle d'écriture (effacement puis programmation) est de durée fixe, typiquement 4ms, ce qui peut conduire à des sur-programmations c'est-à-dire à des quantités de charge stockées sur la grille flottante inutilement trop importantes, ce qui a un impact négatif sur la durée de vie de la cellule-mémoire, ainsi qu'à une dispersion des seuils de conduction de différentes cellules-mémoires programmées. Selon un mode de mise en oeuvre, il est proposé un procédé de programmation d'une cellule-mémoire du type programmable par effet Fowler-Nordheim, visant à éviter notamment de telles sur-programmations et permettant de réduire la charge transitant en moyenne dans une cellule lors d'un cycle effacement-programmation. Selon un mode de mise en oeuvre, il est proposé d'appliquer un tel procédé de façon à pouvoir stocker très simplement une donnée dans une cellule-mémoire de ce type, la donnée pouvant prendre plus de trois valeurs numériques différentes, ce qui permet alors d'obtenir une cellule-mémoire, par exemple du type EEPROM, multi-niveaux. Selon un mode de mise en oeuvre, il est ainsi proposé de contrôler, durant la programmation et en temps réel, la charge stockée sur la grille flottante d'une cellule EEPROM par exemple, et ce sans interrompre la programmation. Ainsi, selon un mode de mise en oeuvre, on contrôle la tension de seuil finale (seuil de conduction final) d'une cellule EEPROM à l'issue d'un cycle de programmation, en jouant sur le niveau de tension appliqué sur la grille de commande. En effet, ceci résulte de l'observation qu'il existe une relation biunivoque entre cette tension de grille de commande et ce seuil de conduction, permettant, pour un seuil de conduction cible, de définir la tension à appliquer sur la grille de commande. Et, si l'on associe une valeur numérique de la donnée à un seuil de conduction cible, on peut alors déterminer la tension à appliquer sur la grille de commande de façon qu'à l'issue de la programmation, la grille flottante soit de facto chargée avec la quantité de charge correspondant à ce seuil de conduction cible, la cellule-mémoire étant alors de facto écrite avec la valeur numérique de la donnée correspondant à ce seuil cible. Selon un aspect, il est proposé un procédé d'écriture d'une donnée dans au moins une cellule-mémoire, ladite cellule-mémoire étant programmable par effet Fowler-Nordheim et comportant un transistor ayant une grille flottante, une grille de commande, une région de source et une région de drain. Selon une caractéristique générale de cet aspect, pendant une phase de programmation de la cellule, on applique une première tension sur la région de source, on applique une deuxième tension sur la région de drain, supérieure à la première tension, jusqu'à mettre la cellule en conduction, la valeur numérique de la donnée à écrire étant contrôlée par le niveau de la tension de commande appliquée sur la grille de commande et ladite donnée étant de facto écrite avec ladite valeur numérique lors de ladite mise en condition de la cellule, la programmation étant alors stoppée. Un tel procédé se distingue donc de la programmation classique d'une cellule EEPROM dans laquelle la cellule-mémoire ne rentre jamais en conduction. Ici, on contraire, la cellule-mémoire, initialement non en conduction, entre en conduction et la programmation est alors stoppée, la cellule présentant alors un seuil de conduction désiré, associé à une valeur numérique de la donnée, et correspondant à la valeur (niveau) de la tension de commande qui a été appliquée sur la grille de commande. Bien que l'on puisse connecter la région de source à la masse en tant que première tension pendant la phase de programmation, il est également possible d'appliquer pendant cette phase de programmation, une première tension non nulle sur la région de source, pour autant que cette première tension reste inférieure à la deuxième tension appliquée sur la région de drain. Il est ainsi par exemple possible de polariser la source à 6 Volt, la différence de potentiel source/drain à la fin de la programmation étant alors réduite de la valeur de la tension de source. Et, lorsque la cellule devient passante et entre en conduction, la tension de drain ne chute plus à 0 Volt mais à 6 Volt ce qui est suffisant pour stopper toute injection de porteurs par effet FowlerNordheim. Le seuil de conduction sera alors décalé de la tension de source à laquelle s'ajoute l'effet de substrat. Appliquer une tension non nulle sur la région de source pendant la programmation peut ainsi conduire à obtenir une meilleure endurance de la cellule en raison d'un champ électrique transversal dans le canal plus faible. Selon un mode de mise en oeuvre, lorsque la donnée est susceptible de prendre n valeurs numériques différentes, on définit un jeu d'au moins n-1 valeurs de programmation différentes pour la tension de commande à appliquer sur la grille de commande du transistor pendant la phase de programmation et correspondant respectivement à au moins n-1 seuils de conduction différents de la cellule associés respectivement à au moins n-1 valeurs numériques différentes de la donnée, et pendant la phase de programmation on applique sur la grille de commande la tension de commande ayant la valeur de programmation correspondant à la valeur numérique souhaitée de ladite donnée. Le procédé selon cet aspect présente des avantages même lorsque n est égal à 2 c'est-à-dire lorsque la donnée comporte un bit susceptible de prendre deux valeurs 0 ou 1. En effet, un tel procédé permettant de contrôler in situ et en temps réel la charge stockée sur la grille flottante pendant la programmation évite notamment des sur-programmations ce qui peut améliorer l'endurance de la cellule. Cela étant, le procédé selon cet aspect permet très simplement de programmer une cellule-mémoire avec une donnée susceptible de prendre au moins trois valeurs numériques différentes. En d'autres termes, on réalise ici très simplement une cellule-mémoire multi-niveaux c'est-à-dire capable de stocker une donnée présentant plusieurs bits, que l'on peut programmer sans avoir recours à des algorithmes de programmation et de lecture itératifs de l'art antérieur, complexes et coûteux en durée, utilisés dans les mémoires FLASH multi-niveaux qui sont des mémoires typiquement programmables par électrons chauds nécessitant une conduction de la cellule pour permettre l'injection des électrons chauds dans la grille flottante, contrairement à une programmation par effet Fowler- Nordheim. Lorsque la cellule-mémoire est également effaçable par effet Fowler-Nordheim ce qui est le cas d'une cellule-mémoire du type EEPROM, le procédé d'écriture selon un mode de mise en oeuvre comprend un cycle d'effacement de ladite au moins une cellule- mémoire, précédant la phase de programmation, et durant lequel on couple le drain et la source du transistor à la masse et on applique sur la grille de commande une tension de commande ayant une valeur d'effacement qui permet de conférer à la cellule un premier seuil de conduction. Et, on associe avantageusement une première valeur numérique de la donnée à ce premier seuil de conduction ce qui permet alors de définir seulement un jeu de n-1 valeurs de programmation différentes pour la tension de commande à appliquer sur la grille de commande du transistor pendant la phase de programmation et correspondant respectivement à n-1 autres seuils de conduction différents de la cellule associés respectivement aux n-1 autres valeurs numériques différentes de la donnée. Et, pendant la phase de programmation, on applique sur la grille de commande la tension de commande ayant la valeur de programmation correspondant à la valeur numérique souhaitée de la donnée prise parmi lesdites n-1 autres valeurs numériques de la donnée. Certaines au moins des valeurs de programmation peuvent être négatives. Plusieurs solutions existent pour stopper la programmation lorsque la cellule-mémoire est mise en conduction. Selon un mode de mise en oeuvre, on peut appliquer la deuxième tension sur le drain du transistor avec un générateur de tension limité en courant à la valeur du courant de consommation de la cellule mise en conduction. La programmation est alors stoppée d'elle-même lors de la mise en conduction de la cellule puisque la consommation de cette cellule fait chuter la tension de drain ce qui stoppe naturellement la programmation. Selon un autre mode de mise en oeuvre possible, on peut appliquer la deuxième tension sur le drain du transistor avec un générateur de tension non limité en courant mais on mesure alors la valeur du courant consommé par la cellule, par exemple par une recopie du courant circulant dans la ligne de bits (« bit line » en langue anglaise) et lorsque ce courant dépasse un seuil on désactive le générateur haute tension de façon à stopper ladite programmation. Lorsque l'on est en présence d'un plan mémoire contenant des cellules-mémoires par exemple organisées en ligne et en colonne, le procédé comprend, selon un mode de mise en oeuvre, une sélection d'au moins un groupe de plusieurs cellules-mémoires du plan mémoire, par exemple selon une granularité une page ou octet, et des écritures respectives de données dans lesdites cellules-mémoires dudit au moins un groupe, chaque donnée étant susceptible de prendre n valeurs numériques différentes, n étant supérieur ou égal à 2 et avantageusement supérieur ou égal à 3. Selon un mode de mise en oeuvre, dans lequel des données de valeurs numériques différentes sont destinées à être écrites dans des cellules-mémoire différentes dudit au moins un groupe, on applique ledit cycle d'effacement à toutes les cellules-mémoire dudit au moins un groupe de façon à leur conférer ledit premier seuil de conduction correspondant à ladite première valeur numérique, puis on sélectionne parmi les cellules-mémoires effacées, un sous- groupe de rang 1 comportant les cellules-mémoire dudit au moins un groupe qui doivent être écrites avec une deuxième valeur numérique correspondant à un deuxième seuil de conduction plus faible que le premier seuil de conduction, et la phase de programmation comprend un premier cycle de programmation au cours duquel on applique sur les grilles de commandes des cellules-mémoire du sous-groupe de rang un, la tension de commande ayant la valeur de programmation associée au deuxième seuil de conduction, puis a) on sélectionne éventuellement parmi les cellules-mémoires écrites du sous-groupe de rang i avec i supérieur ou égal à 1, un sous-groupe de rang i+1 comportant les cellules-mémoire dudit au moins un groupe qui doivent être écrites avec une valeur numérique correspondant à un autre seuil de conduction plus faible que le seuil de conduction des cellules du sous-groupe de rang i, et la phase de programmation comprend un i+1 ème cycle de programmation au cours duquel on applique sur les grilles de commandes des cellules-mémoire du sous-groupe de rang i+1 la tension de commande ayant la valeur de programmation associée audit autre seuil de conduction, puis on répète éventuellement les étapes a) jusqu'à une programmation d'éventuelles cellules-mémoire dudit au moins un groupe devant être écrites avec une valeur numérique correspondant au seuil de conduction le plus faible. Selon un autre aspect, il est proposé un procédé de lecture d'une donnée écrite dans une cellule-mémoire par le procédé d'écriture tel que défini ci-avant et susceptible d'avoir n valeurs numériques différentes correspondant respectivement à n seuils de conduction différents de la cellule. Le procédé selon cet aspect comprend alors par exemple une élaboration d'un jeu d'au moins n-1 valeurs de référence pour la tension de lecture à appliquer sur la grille de commande du transistor pendant un cycle de lecture, les n-1 valeurs de référence étant respectivement situées entre les n seuils de conduction, une application d'une troisième tension sur le drain et a) une application sur la grille de commande d'une tension de lecture ayant la valeur de référence la plus faible, et si la cellule est bloquée, une répétition de l'étape a) avec la valeur de référence voisine de la valeur de référence précédemment appliquée jusqu'à l'obtention d'une cellule passante ou jusqu'à épuisement de toutes les valeurs de référence. Selon un autre aspect, il est proposé un dispositif comprenant au moins une cellule-mémoire programmable par effet FowlerNordheim possédant un transistor ayant une grille flottante, une grille de commande, une région de source et une région de drain, et des moyens d'écriture configurés pour écrire la cellule-mémoire avec une donnée. Selon une caractéristique générale de cet aspect, les moyens d'écriture comprennent des moyens de programmation configurés pour appliquer une première tension sur la région de source, contrôler la valeur numérique de la donnée à écrire par le niveau de tension appliqué sur la grille de commande, appliquer sur la région de drain une deuxième tension, supérieure à la première tension, jusqu'à mettre la cellule en conduction, la donnée étant de facto écrite lors de ladite mise en conduction de la cellule avec la valeur numérique correspondant au niveau de tension de commande appliqué, et stopper la programmation une fois la cellule mise en conduction. Les moyens de programmation peuvent être configurés pour appliquer la masse en tant que première tension sur la région de source, ou bien une première tension non nulle sur cette région de source. Selon un mode de réalisation dans lequel la donnée est susceptible de prendre n valeurs numériques différentes, n étant par exemple supérieur ou égal à 3, les moyens d'écriture comprennent des moyens de génération configurés pour générer un jeu d'au moins n-1 valeurs de programmation différentes pour la tension de commande correspondant respectivement à au moins n-1 seuils de conduction différents de la cellule associés respectivement à au moins n-1 valeurs numériques différentes de la donnée, et les moyens de programmation sont configurés pour appliquer sur la grille de commande du transistor la tension de commande ayant la valeur de programmation correspondant à la valeur numérique souhaitée de ladite donnée. Selon un mode de réalisation dans lequel la cellule est effaçable par effet Fowler-Nordheim, les moyens de génération sont configurés pour générer un jeu de n valeurs pour la tension de commande comprenant une valeur d'effacement correspondant à un premier seuil de conduction de la cellule associé à une première valeur numérique de ladite donnée et n1 valeurs de programmation différentes correspondant respectivement à n-1 autres seuils de conduction différents de la cellule associés respectivement aux n-1 autres valeurs numériques différentes de la donnée, et les moyens d'écriture comprennent en outre des moyens d'effacement configurés pour coupler le drain et la source du transistor à la masse et appliquer sur la grille de commande une tension de commande ayant ladite valeur d'effacement, et les moyens de programmation sont configurés pour appliquer sur la grille de commande du transistor la tension de commande ayant la valeur de programmation correspondant à la valeur numérique souhaitée de ladite donnée et prise parmi les n-1 valeurs de programmation différentes dudit jeu. Selon un mode de réalisation, les moyens de programmation comprennent un générateur de tension limité en courant à la valeur du courant de la cellule mise en conduction, configuré pour appliquer la deuxième tension sur le drain du transistor. En variante, les moyens de programmation peuvent comprendre un générateur de tension configuré pour appliquer la deuxième tension sur le drain du transistor, des moyens de mesure configurés pour mesurer la valeur du courant consommé par la cellule, un comparateur configuré pour comparer la valeur du courant consommé avec un seuil et à délivrer un signal de commande si la valeur du courant consommé dépasse ledit seuil, et des moyens de commande configurés pour désactiver le générateur de tension en présence du signal de commande. Selon un mode de réalisation, le dispositif comprend un plan mémoire comportant plusieurs cellules-mémoire et les moyens d'écriture sont configurés pour sélectionner au moins un groupe de cellules-mémoire et pour écrire respectivement des données dans lesdites cellules-mémoire dudit groupe, chaque donnée étant susceptible de prendre n valeurs numériques différentes. Selon un mode de réalisation dans lequel des données de valeurs numériques différentes sont destinées à être écrites dans des cellules-mémoire différentes dudit au moins un groupe, les moyens d'effacement sont configurés pour conférer à toutes les cellules-mémoire dudit au moins un groupe, ledit premier seuil de conduction correspondant à ladite première valeur numérique, et les moyens de programmation sont configurés pour sélectionner parmi les cellules-mémoires effacées, un sous-groupe de rang 1 de cellules-mémoire dudit au moins un groupe qui doivent être écrites avec une deuxième valeur numérique correspondant à un deuxième seuil de conduction plus faible que le premier seuil de conduction et appliquer sur les grilles de commande des cellules-mémoire du sous-groupe de rang un, la tension de commande ayant la valeur de programmation associée au deuxième seuil de conduction, ensuite, a) sélectionner éventuellement parmi les cellules-mémoires écrites du sous-groupe de rang i, un sous-groupe de rang i+1 de cellules-mémoire dudit au moins un groupe qui doivent être écrites avec une valeur numérique correspondant à un autre seuil de conduction plus faible que le seuil de conduction des cellules du sous- groupe de rang i et appliquer sur les grilles de commandes des cellules-mémoire du sous-groupe de rang i+1 une tension de commande ayant la valeur de programmation associée audit autre seuil de conduction, et éventuellement répéter les étapes a) jusqu'aux éventuelles cellules-mémoire devant être écrites avec une valeur numérique correspondant au seuil de conduction le plus faible. Selon un mode de réalisation, le dispositif comprend en outre des moyens de lecture configurés pour lire dans au moins une cellule- mémoire une donnée susceptible de prendre n valeurs numériques différentes correspondant respectivement à n seuils de conduction différents de la cellule, les moyens de lecture étant configurés pour appliquer une troisième tension sur le drain, a) appliquer sur la grille de commande une tension de lecture ayant la valeur de référence la plus faible prise parmi un jeu d'au moins n-1 valeurs de référence, les n-1 valeurs de référence étant respectivement situées entre les n seuils de conduction, et si la cellule est bloquée, répéter l'étape a) avec la valeur de référence voisine de celle précédemment appliquée jusqu'à l'obtention d'une cellule passante ou jusqu'à épuisement de toutes les valeurs de référence. Selon un mode de réalisation, les moyens de lecture sont configurés pour sélectionner au moins un ensemble de cellules- mémoire et pour lire respectivement des données dans lesdites cellules-mémoire dudit ensemble, chaque donnée lue étant susceptible de prendre n valeurs numériques différentes. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de mise en oeuvre et de réalisation, nullement limitatifs, et des dessins annexé sur lesquels : les figures 1 à 14 illustrent schématiquement différents modes de mise en oeuvre et de réalisation de procédés d'écriture et de lecture selon l'invention et d'un dispositif de mémoire selon l'invention. Sur la figure 1, le dispositif mémoire DIS comporte ici une cellule-mémoire CEL, par exemple une cellule-mémoire du type EEPROM, comportant un transistor TR possédant de façon classique une grille de commande CG, une grille flottante FG, une région de drain D et une région de source S. Le dispositif DIS comporte également des moyens de programmation MPR destinés à, comme on va le voir plus en détail ci-après, appliquer des tensions appropriées sur les régions de drain, de source et de grille de commande. Le dispositif DIS comporte également des moyens d'effacement MEF destinés à placer la cellule-mémoire CEL dans un état effacé ainsi que des moyens de lecture MLT configurés pour lire la donnée écrite dans la cellule-mémoire CEL. Le seuil de conduction en lecture, ou plus simplement seuil de conduction, de la cellule CEL est la tension Vt que l'on doit appliquer en lecture sur la grille de commande pour faire conduire la cellule. Ce seuil de conduction Vt est défini par la formule (1) ci-dessous : A. Vt+ B . Vdr + Q/Ctot = Vt0 +VS (1) dans laquelle Vdr désigne la tension appliquée au drain en lecture, Vt0 est la tension de seuil du transistor d'état de la cellule, c'est-à-dire le transistor enfoui, vu de la grille flottante, Q désigne la charge stockée sur la grille flottante (typiquement Q est négatif pour une cellule effacée, nul pour une cellule vierge et positif pour une cellule programmée). Ctot est la capacité totale vue de la grille flottante (grille flottante couplée capacitivement avec la grille de commande, le drain, le canal, la source et le substrat) A = C1/Ctot où C1 désigne la capacité de couplage entre la grille de commande et la grille flottante, B = C2/Ctot où C2 désigne la capacité de couplage entre la grille flottante et le drain, Vs désigne la tension appliquée sur la région de source. Typiquement, pour une cellule du type EEPROM, A varie de 0,6 à 0,75 et B varie de 0,2 à 0,3 selon la réalisation de la cellule. La charge Q est donc définie par la formule (2) ci-dessous : Q = [Vto+ Vs- A . Vt - B . Vdr - Ctot (2) Pour une charge Q donnée, l'arrêt de la programmation se produit lorsque la tension VFG sur la grille flottante est égale à Vto + Vs ce qui se traduit alors par la relation (3) ci-dessous : A . VcG +B . Vd +Q Ctot = Vto +VS (3) dans laquelle VcG désigne la tension appliquée sur la grille de commande en programmation, Vd désigne la tension appliquée sur le drain en programmation. Compte tenu de la relation (2), on obtient alors la relation (4) ci-dessous A . [VcG - Vt] +B . [Vd - Vdr] = Vs (4) L'arrêt de la programmation étant obtenu en cours d'injection, la tension VFG est égale à (Vto + Vs), et (Vd -VFG) est sensiblement égal à VFN où VFN désigne la tension d'injection Fowler-Nordheim. On obtient donc lors de l'arrêt de la programmation la relation (5) ci-dessous : Vd = VFN + Vto +VS (5) La combinaison des relations (4) et (5) fournit alors la relation (6) ci-dessous : VCG = Vt + [B/A] . [Vdr VFN Vto + Vs (1- B/A)] (6) Et en faisant l'hypothèse que la tension Vdr est sensiblement égale à la tension Vto, ce qui est typiquement le cas, on obtient alors la relation (7) ci-dessous. VcG = Vt - [B/A] . VFN Vs (1- B/A) (7) Cette formule (7) détermine de façon biunivoque la tension VCG à appliquer sur la grille de commande du transistor TR au moment où la cellule commence à conduire pour obtenir une tension de seuil finale (seuil de conduction final) de la cellule égale à Vt. Ainsi, si on stoppe la programmation de la cellule lors de sa mise en conduction, la valeur VCG permet de contrôler le seuil de conduction d'une cellule ayant subi un cycle de programmation. En d'autres termes, on vient de montrer qu'il existe une relation unique entre la tension à appliquer sur la grille de commande et le seuil de conduction de la cellule, ce qui permet, pour un seuil de conduction cible, de définir la valeur de la tension à appliquer sur la grille de commande de façon à atteindre ce seuil de conduction cible. Et, si l'on associe ce seuil de conduction cible à une valeur numérique de la donnée à écrire, on peut donc associer à cette valeur numérique de la donnée une tension à appliquer sur la grille de commande. En d' autres termes, on applique pendant la phase de programmation de la cellule, une tension sur la région de drain supérieure à la tension appliquée sur la région de source jusqu'à mettre la cellule en conduction, la valeur numérique de la donnée à écrire étant contrôlée par le niveau de la tension de commande appliquée sur la grille de commande et cette donnée est de facto écrite avec ladite valeur numérique lors de la mise en conduction de la cellule, la programmation étant alors stoppée. On peut ainsi aisément stocker dans la cellule-mémoire des données numériques susceptibles de prendre plusieurs valeurs numériques différentes, par exemple des données codées sur deux bits ou plus, en contrôlant simplement la charge injectée en temps réel dans la cellule par application sur la grille de commande d'une tension correspondant au seuil de conduction de la cellule associée à la valeur numérique souhaitée pour la donnée. On n'utilise donc pas d'algorithme itératif avec des successions de programmation et de lecture. Il n'y a pas d'impact sur le temps de programmation. Un tel procédé ne nécessite pas de machine d'état complexe et, pour un plan mémoire dont les cellules sont capables de stocker 2 bits correspondant à quatre domaines de niveau de charge, on obtient un doublement de la densité pour une même surface du plan mémoire. Un exemple d'une telle programmation est illustré plus en détail sur la figure 2. Ainsi, pour une donnée DD susceptible de prendre n valeurs numériques différentes ddi-ddn, on définit n seuils de conduction Vtn pour la cellule, correspondant respectivement aux n valeurs numériques dd, de la donnée DD à écrire. On peut alors définir n valeurs VcGI pour la tension appliquée sur la grille de commande pendant la programmation, chacune de ces valeurs VcGI correspondant au seuil de conduction V,, et donc à la valeur numérique dd, de la donnée DD à écrire. Cela étant, comme on le verra plus en détail ci-après, il est possible de ne définir que n-1 valeurs de tension à appliquer sur la grille de commande pendant la programmation et d'utiliser une tension appliquée sur la grille de commande pendant l'effacement de la cellule pour définir un seuil de conduction qui correspond à une des valeurs numériques possibles de la donnée DD. Si l'on souhaite écrire la donnée DD avec la valeur numérique ddj, on applique alors (étape 20) sur la grille de commande CG, la tension correspondante VcGi. On applique par ailleurs sur la région de source S du transistor TR de la cellule la tension Vsi (étape 21). Cette valeur Vsi peut être égale à zéro (source reliée à la masse) ou égale à une tension Vso non nulle. On applique par ailleurs une deuxième tension Vd2 sur le drain D du transistor (étape 22), cette tension Vd2 étant supérieure à la tension Vsi appliquée sur la source de façon à pouvoir mettre en conduction la cellule CEL. Et, lorsque cette cellule est effectivement mise en conduction (étape 23), la programmation est alors stoppée, la cellule CEL contenant de facto sur sa grille flottante la charge Q correspondante, la cellule CEL étant donc de facto écrite avec la donnée DD ayant la valeur numérique ddj correspondant à la valeur VcGj de la tension de programmation appliquée sur la grille de commande CG. Plusieurs solutions sont possibles pour stopper la programmation de la cellule lors de sa mise en conduction. Deux d'entre elles sont schématiquement illustrées sur les figures 3 et 4. Plus précisément, sur la figure 3, la tension Vd2 appliquée sur le drain D du transistor TR pendant la programmation est fournie par un générateur de tension GEN1 limité en courant à la valeur du courant de consommation de la cellule lorsque celle-ci conduit, par exemple 10 nanoampères. Par conséquent, comme indiqué sur la figure 3, lors de la mise en conduction, la programmation de la cellule est automatiquement stoppée par la chute de la tension de drain vers la tension de source. L'autre solution, illustrée sur la figure 4, utilise pour appliquer la tension sur le drain D, un générateur de tension GEN2 non limité en courant. Par contre, le dispositif DIS comprend alors des moyens de mesure MES configurés pour mesurer le courant consommé par la cellule. Un comparateur CMP compare la valeur mesurée de courant avec un seuil SE, typiquement 10 nanoampères. La sortie du comparateur CMP délivre un signal de commande SACT à des moyens de commande MCM qui sont configurés pour désactiver ou non le générateur GEN2. Plus précisément, lorsque la valeur du courant consommé par la cellule, c'est-à-dire la valeur du courant de lignes de bits, dépasse le seuil SE, ceci est significatif d'une mise en conduction de la cellule CEL et les moyens de commande MCM désactivent alors le générateur GEN2 de façon à stopper la programmation. La cellule CEL est également effaçable par effet FowlerNordheim. L'écriture d'une donnée dans une telle cellule, par exemple du type EEPROM, comporte un cycle d'effacement précédant la phase de programmation. Ce cycle d'effacement, classique, est illustré sur la figure 5. Plus précisément, les moyens d'effacement MEF sont configurés pour coupler le drain et la source du transistor à la masse (étapes 50 et 51), et appliquer sur la grille de commande (étape 52) une tension de commande ayant une valeur d'effacement Vcoe, typiquement 13 volts. Et, à l'issue de ce cycle de programmation, la cellule CEL possède un premier seuil de conduction Vti que l'on peut alors associer à une première valeur numérique ddi de la donnée DD. Dans ces conditions, il est seulement nécessaire de définir alors n-1 valeurs de programmation différentes VCG2-VCGn pour la tension de commande à appliquer sur la grille de commande du transistor pendant la phase de programmation 55, ces n-1 valeurs de programmation différentes correspondant respectivement à n-1 autres seuils de conduction différents de la cellule associés respectivement aux n-1 autres valeurs numériques différentes dd2-ddn de la donnée DD. La figure 6 illustre schématiquement un mode de mise en oeuvre d'un procédé de lecture d'une donnée DD écrite dans la cellule mémoire CEL, cette donnée DD étant susceptible d'avoir n valeurs numériques différentes correspondant respectivement à n seuils de conduction différents Vti-Vtn de la cellule. A cet égard, on élabore (étape 60) un jeu d'au moins n-1 valeurs de référence Vrefk,k+1 pour la tension de lecture à appliquer sur la grille de commande du transistor pendant un cycle de lecture, k variant de 1 à n-1. Ces n-1 valeurs de référence Vrefk,k+1 sont respectivement situées entre les n seuils de conduction Vtk et Vtk+1. On choisira préférentiellement pour chaque valeur de référence située entre deux valeurs de seuil de conduction, une valeur de référence assez éloignée des seuils de conduction correspondants, par exemple située au milieu de l'intervalle. Au cours de ce cycle de lecture, on applique (étape 61) une tension Vd3 sur le drain D du transistor, typiquement de l'ordre de 1 volt, on couple la source à la masse et on applique sur la grille de commande (étape 62) une tension de lecture ayant une valeur de référence Vrefk,k+1 prise parmi le jeu de valeurs de référence. En pratique, on appliquera en premier la valeur de référence la plus faible (k =n-1), c'est-à-dire Vrefn-1,n. On teste ensuite (étape 63) si la cellule CEL est passante ou non. Si la cellule est passante, alors cela signifie (étape 64) que la cellule avait été écrite avec la valeur ddk+i correspondant au seuil de conduction Vtk+1. Dans le cas contraire, c'est-à-dire si la cellule est bloquée, on répète les étapes 62 et 63 avec une autre valeur de référence prise parmi le jeu de valeurs de référence jusqu'à l'obtention d'une cellule passante. En pratique, on va successivement appliquer sur la grille de commande CG les tensions de lecture croissantes dans l'ordre décroissant de leur rang (décrémentation de k : étape 65). Et, si lors de l'application d'une tension de lecture ayant la première valeur de référence Vrefl,2 la plus élevée, la cellule est toujours bloquée (étapes 63 et 66) cela signifie que la cellule avait été programmée avec la valeur numérique ddi correspondant au dernier seuil de conduction Vti le plus élevé. Bien que ce cela soit possible, il est en effet en pratique non nécessaire, d'appliquer sur la grille de commande de la cellule CEL une tension de lecture supérieure au dernier seuil de conduction Vti pour s'assurer que la cellule est alors bien passante. Dans le mode de réalisation de la figure 7, le dispositif DIS comporte cette fois-ci un plan-mémoire PM de cellules CEL organisé en lignes et en colonnes. On suppose également dans ce mode de réalisation que chaque donnée DD à écrire dans une cellule-mémoire CEL,J est codée sur deux bits, c'est-à-dire qu'elle est capable de prendre quatre valeurs numériques différentes ddi-dd4, par exemple les valeurs 00, 01, 10 et 11. On suppose également dans ce mode de réalisation, à titre d'exemple, que parmi toutes les cellules-mémoire du plan-mémoire, les cellules CELgi appartenant à un premier groupe de cellules-mémoire sont destinées à être écrites avec la valeur numérique ddi (00). Les cellules-mémoire CELg2 d'un deuxième groupe sont destinées à être écrites avec la valeur numérique dd2 (01). Les cellules CELg3 d'un troisième groupe sont destinées à être écrites avec la valeur numérique dd3 (1,0). Les cellules CELg4 d'un quatrième groupe sont destinées à être écrites avec la valeur numérique dd4 (1,1). On définit par ailleurs, à titre d'exemple, quatre seuils de conduction-cibles Vt1-Vt4 correspondant respectivement aux quatre valeurs numériques ddi-dd4. Plus précisément, à titre d'exemple, on fixe les valeurs de ces seuils de conduction Vti-Vt4 à respectivement 2,9 volts, 1,6 volt, 0,3 volt et -1 volt. Si l'on considère, à titre d'exemple, que la valeur VFN de la tension Fowler-Nordheim est égale à 9 volts, Vto est égal à Vdr et à 0,9 volt, A est égal à 0,7 tandis que B est égal à 0,25, on en déduit alors, compte tenu de la relation (7) ci-avant, que la valeur de programmation VcG de la tension à appliquer sur la grille de commande pendant la phase de programmation est alors définie par la formule (8) ci-dessous : VcG = Vt - 3,2 volts (8) Les quatre valeurs de programmation VcG1-VcG4 correspondant respectivement aux quatre seuils de conduction-cibles mentionnés ci-avant et respectivement associés aux quatre valeurs numériques ddidd4 de la donnée DD sont alors les suivantes : Valeur ddi (00) : VCG1 = -0,3 volt, Valeur dd2 (01) : VCG2 = -1,6 volt, Valeur dd3 (10) : VcG3 = -2,9 volts, Valeur dd4 (11) : VcG4 = -4,2 volts. En fait, comme on va le voir maintenant plus en détails, la valeur VCG1 est en fait inutile car le premier seuil de conduction va être obtenu à la fin du cycle d'effacement. On se réfère maintenant à cet égard plus particulièrement à la figure 8. Sur cette figure, la courbe CV1 illustre l'évolution de la tension VcG appliquée sur la grille de commande des différentes cellules pendant le cycle d'écriture (effacement puis programmation). La courbe CV2 illustre l'évolution correspondante de la tension de drain en amont d'un limiteur de courant associé au générateur délivrant cette tension tandis que la courbe CV3 illustre la tension de drain en aval de ce limiteur de courant. Dans un premier temps, les moyens d'effacement exécutent un cycle d'effacement amenant toutes les cellules des quatre groupes CELgi, CELg2, CELg3 et CELg4 au seuil de conduction Vt1 (2,9 Volts). En conséquence, toutes les valeurs numériques (00, 01, 10, 11) sont ici concernées. Durant ce cycle d'effacement, les moyens d'effacement appliquent par exemple sur la grille de commande une rampe allant de 0 à 13 volts en 0,5 milliseconde par exemple, suivie d'un plateau à 13 volts d'une durée de 0,5 milliseconde. Les moyens d'effacement couplent également le drain et la source à la masse. La phase de programmation va ensuite comporter trois cycles de programmation successifs, CP1, CP2 et CP3. Lors du premier cycle de programmation CP1, les moyens de programmation sélectionnent uniquement les cellules CELg2, CELg3 et CELg4 en excluant les cellules du premier groupe CELgi qui ne doivent être programmées qu'avec la valeur numérique 00. Au cours de ce premier cycle de programmation, on applique sur la grille de commande des transistors des cellules sélectionnées, la valeur de programmation VCG2 = -1,6 volt. Les moyens de programmation appliquent par ailleurs avant limitation de courant, une tension Vd2 sur le drain en forme de rampe allant de 0 à 12 volts en 0,4 milliseconde suivie d'un plateau de 0,4 milliseconde. Compte-tenu de la limitation de courant, la tension sur le drain est limitée à 9 volts puis chute lors de la mise en conduction des cellules, ce qui provoque, comme expliqué ci-avant, l'arrêt de la programmation. A l'issue de ce premier cycle de programmation, toutes les cellules CELg2, CELg3 et CELg4 finissent avec un seuil de conduction de 1,6 volts. Lors du deuxième cycle de programmation CP2, ce sont cette fois-ci les cellules CELgi et CELg2 qui sont exclues de la programmation et seules les cellules CELg3 et CELg4 sont sélectionnées. Au cours de ce deuxième cycle de programmation CP2, la valeur de programmation \icG2, égale à -2,9 volts, est appliquée sur les grilles de commande des cellules sélectionnées tandis que les moyens de programmation appliquent au cours de ce cycle une tension Vd2 sur le drain, équivalente à celle appliquée au cours du premier cycle de programmation. A l'issue de ce deuxième cycle de programmation, les cellules CELg3 et CELg4 finissent avec un seuil de conduction égal à 0,3 volt. Au cours du troisième cycle de programmation CP3, ce sont cette fois-ci les cellules CELgi, CELg2 et CELg3 qui sont exclues de la programmation, et seules les cellules CELg4 sont sélectionnées. Là encore, la tension appliquée sur le drain est identique à celle appliquée au cours des deux cycles de programmation précédents. Par contre, au cours de ce troisième cycle de programmation CP3, la valeur de référence VcG4 égale à -4,2 volts, est appliquée sur les grilles de commande des cellules sélectionnées. Et, à l'issue de ce troisième cycle de programmation, les cellules CELg4 finissent avec un seuil de conduction de -1 volt. Ainsi, à l'issue de ces trois cycles de programmation, les cellules CELgi ont été programmées avec la valeur 00, les cellules CELg2 ont été programmées avec la valeur 01, les cellules CELg3 ont été programmées avec la valeur 10 et les cellules CELg4 ont été programmées avec la valeur 11. On se réfère maintenant plus particulièrement à la figure 9 pour décrire un mode de réalisation d'un dispositif selon l'invention applicable à un plan-mémoire du type EEPROM ayant 512 lignes et 512 colonnes avec une granularité du type octet. Compte tenu de cette granularité « octet », les cellules- mémoire d'une même ligne peuvent être « regroupées » en blocs de 8 et les 512 blocs homologues situés respectivement sur les 512 lignes partagent la même ligne CGL reliée à toutes ces cellules. On a donc 64 lignes CGL pour 512 lignes de bits BL et 512 lignes de mots WL. Par ailleurs, dans la suite de la description, le terme « colonne » désigne globalement un bloc de 8 lignes de bits. Les moyens d'effacement MEF comportent une pompe de charge positive PCHP, de structure classique et connue en soi, suivie d'un circuit de génération de rampe positive GRP. Les moyens de programmation MPR comportent une pompe de charge négative PCHN de structure classique et connue en soi, suivie d'un circuit de génération de rampe négative GRN. Les moyens d'écriture qui regroupent les moyens MPR et MEF comportent par ailleurs un commutateur SW permettant en fonction des cycles d'effacement et de programmation de commuter entre les tensions négatives et positives. Les moyens d'écriture comportent par ailleurs un contrôleur d'écriture CTRE, réalisable par exemple de façon logicielle au sein d'un microcontrôleur ou bien à l'aide de circuits logiques, et destiné à piloter l'effacement et la programmation des cellules sélectionnées. Les moyens de lecture MLT comportent un séquenceur de lecture SQL, un bloc RL destiné à élaborer les différentes valeurs de référence des tensions de lecture, ainsi que des amplificateurs de lecture classiques SA connectés au séquenceur de lecture et au bloc RL. Une machine d'états classique MET permet de superviser ces différents moyens. Le dispositif comporte par ailleurs de façon classique un registre de données bidirectionnel RD, un registre d'adresses RAD ainsi qu'une interface de bus INTB. Enfin, ces différents moyens de programmation, d'effacement et de lecture comportent un premier décodeur DCD1 configuré pour effectuer des sélections (décoder) parmi les 64 lignes CGL et les 512 lignes de bits BL ainsi qu'un deuxième décodeur DCD2 configuré pour effectuer des sélections parmi les 512 lignes de mots WL. Le décodeur DCD1 comporte un bloc BLCG par ligne CGL illustré sur la figure 10, dont la fonction est maintenant décrite. Durant le cycle d'effacement, il doit envoyer la valeur d'effacement (13 volts) sur la ligne CGL d'une colonne sélectionnée et 0 volt, par exemple, sur la ligne CGL d'une colonne non sélectionnée. Le signal Column est à « 1 » pour une colonne sélectionnée et à « 0 » pour une colonne non sélectionnée. Durant la phase de programmation, il doit envoyer les valeurs successives des tensions de programmation (-1,6 volt, -2,9 volts, -4,2 volts) sur la ligne CGL d'une colonne sélectionnée, et 0 volt (par exemple) sur la ligne CGL d'une colonne non sélectionnée. Le bloc BLCG comporte à cet égard une mémoire verrou MV1 classique alimentée entre la masse et Vcc (par exemple 3 volts) suivie d'un translateur de niveau TRLN dont les transistors MOS de type N, ayant une quatrième connexion de substrat, sont réalisés dans une technologie à triple caisson (« triple well », selon une dénomination anglosaxonne bien connue de l'homme du métier) pour isoler le substrat en raison de la présence de tensions négatives. Le translateur de niveau TRLN comporte deux transistors NMOS T1 et T2 commandés par un signal Prog et deux transistors NMOS T3 et T4 commandés par un signal EfouLit. Le translateur de niveau TRLN comporte également deux autres transistors NMOS T5 et T6 commandés par un signal Vcasc ainsi qu'une autre mémoire verrou MV2 et un inverseur INV1 dont le transistor PMOS P1 reçoit sur sa source la tension Vsp et dont la sortie INVS délivre la tension appliquée sur la ligne CGL. Le tableau 1 en annexe 1, résume, en fonction des différentes opérations (lecture, effacement, programmation) les valeurs des différents signaux et tensions appliqués au bloc BLCG et délivrés par celui-ci. La mémoire-verrou MV1 est réinitialisée par une impulsion RAZ d'écriture et de lecture. Dans ce tableau 1, « col » est l'abréviation de « colonne », « sélect » est l'abréviation de « sélectionnée », et VcGr, VcGe, VcGp désignent respectivement les tensions à appliquer sur la grille de commande en lecture, effacement ou programmation. Les différentes tensions proviennent des circuits de pompe de charge positif ou négatif. Ainsi, selon qu'il s'agit d'une opération d'effacement (ou de lecture) ou de programmation, les connexions entre la mémoire verrou MV1 et le translateur de niveau TRLN sont permutées de sorte qu'une ligne CGL sélectionnée reçoive le niveau haut du translateur de niveau en effacement ou en lecture (13 volts et 1 volt respectivement) et le niveau bas du translateur de niveau en programmation (-1,6 volt/-2,9 volts/-4 volts). Le décodeur DCD1 comporte également un bloc de décodage de ligne de bit DCBL par ligne de bit dont un exemple de réalisation est illustré sur la figure 11. La fonction du décodeur de ligne de bit DCBL est, en écriture, de stocker les données d'un octet en vue d'une écriture future et d'aiguiller ou non la haute tension vers la ligne de bits lors du cycle de programmation selon la valeur binaire à programmer, et, en lecture, de multiplexer les lignes de bits afin d'aiguiller les lignes de bits appartenant à la colonne sélectionnée vers les amplificateurs de lecture. Dans l'exemple décrit ici, compte-tenu du fait qu'une donnée est codée sur deux bits, le bloc BCBL comporte deux mémoires-verrou MVA et MVB respectivement affectées au bit de poids fort DatMsb de la donnée et au bit de poids faible DatLsb de la donnée et un module MCTL de contrôle de l'état de la ligne de bit BL concernée. Les sorties SMVA et SMVB des deux mémoires-verrous MVA et MVB commandent les grilles des transistors N14-N16 et N13, N17 du module MCTL. Par ailleurs, trois signaux à deux états pulsel, pulse2, pulse3 respectivement affectés aux trois cycles de programmation CP1-CP3 décrits ci-avant commandent les grilles de trois transistors N10-N12. Dans un état actif (haut) le signal pulse i (i = 1, 2 ou 3) monte à la haute tension (15V par exemple) et dans un état inactif (bas) le signal est à la basse tension (0V par exemple). Comme indiqué ci-avant, une solution consiste à limiter le courant de ligne de bit de façon à stopper naturellement la programmation lors de la mise en condition de la cellule. C'est le rôle ici du transistor PMOS P2 agencé selon un montage en grille commune et fonctionnant en recopie de courant (typiquement 10 nanoampères). La tension de grille VrefP du transistor P2 du module MCTL est égale à Vpp - 1 volt, ce qui permet de lui conférer une tension grille-source proche de sa tension de seuil. Les lignes de bits doivent recevoir de 0 à 3 cycles de programmation respectivement commandés par les signaux logiques pulsel, pulse2 et pulse3 selon la valeur possible de la donnée binaire. C'est le rôle des transistors N10 à N17. En effacement pulsel, pulse2, pulse3 sont à 0 volt, la source est à 0 volt et la ligne de bit BL est flottante. Donc pour une cellule sélectionnée par le transistor de sélection TSL, le drain passe également à 0 volt car la cellule est passante et la ligne de source SL est à 0 volt. Par ailleurs, en effacement et en programmation, le signal logique Read commandant le transistor N8 est à « 0 » tandis qu'il est à « 1 » lors d'une opération de lecture. Le signal « column » commande un transistor N9. Le tableau 2 en annexe résume les valeurs des différents signaux logiques, des sorties SMVA, SMVB et les états de certains transistors et de la ligne de bits BL en fonction de la valeur numérique de la donnée à écrire. La figure 12 est une figure analogue à la figure 9 mais représente, dans sa partie basse, la valeur des signaux logiques pulsel, pulse2 et pulse3 correspondant aux trois cycles de programmation CP1, CP2, CP3 mentionnés ci-avant. Les figures 13 et 14 illustrent un exemple de réalisation des moyens de lecture. Plus précisément, sur la figure 13, le bloc RL fournit sur la ligne la valeur de référence de la tension appliquée sur la grille de commande pendant la lecture et également délivrée sur l'une des entrées de l'amplificateur de lecture comme on va le voir ci-après. Dans l'exemple décrit ici, compte tenu que l'on a quatre seuils de conduction correspondant à quatre valeurs différentes de la donnée, le bloc RL comporte trois générateurs de tension de référence Vrai/ Vref2 et Vref3 ainsi que trois commutateurs SW1, SW2, SW3 commandés respectivement par trois signaux logiques readl, read2 et read3 de façon à sélectionner la tension de référence adéquate pour la délivrer sur la ligne CGref. Il convient de noter que l'on peut avoir un bloc similaire pour sélectionner les tensions de grille adéquates pendant les phases d'effacement et de programmation. Dans l'exemple décrit compte tenu des seuils de conductions calculés, ces tensions de référenceVrefi, Vref2 et Vref3 sont respectivement prises égales par exemple à -0,3 V, 0,95 V et 2,2 V. Les moyens de lecture comportent également un bloc BL2 (figure 14). Ce bloc comprend un amplificateur de lecture SA et deux mémoires-verrous MVA et MVB (puisque dans l'exemple décrit la donnée est codée sur 2 bits). En pratique il ya une paire de mémoires-verrous MVA et MVB par ligne de bit et des amplificateurs de lecture multiplexés (8 amplificateurs de lecture pour 512 lignes de bits). L'entrée de l'amplificateur de lecture SA est reliée au bloc de décodage de lignes de bits DCBL (figure 11) par le bus RDB et une autre entrée est connectée sur la ligne CGref du bloc RL. La sortie de l'amplificateur de lecture SaOut est reliée à l'entrée des deux mémoires-verrou MVa et MVb dont l'état représente la donnée binaire de 2 bits déduite des trois lectures successives avec les trois valeurs de référence Vrefl-Vref3, en commençant par la valeur Vrefl la plus faible pour terminer par la valeur Vref3 la plus forte. La sortie SaOut est à « 1 » si la cellule est passante et à « 0 » si la cellule est bloquée. La sortie Msb de la bascule MVa va contenir la valeur du bit de poids fort de la donnée lue tandis que la sortie Lsb de la bascule MVb va contenir la valeur du bit de poids faible de cette donnée. Avant les trois lectures successives, les deux mémoires-verrou sont réinitialisées (impulsion RAZ à l'état logique « 1 »). Le tableau 3 en annexe 3 résume le contenu des deux bascules MVa et MVb en fonction des différentes possibilités. Dans ce tableau la colonne « résultat readl » indique les différents états possibles de la cellule lue lors de la première lecture. Il en est de même pour les colonnes « résultat read2 » et « résultat read3 » pour les deux lectures successives. Et bien entendu si une cellule est passante lors d'une lecture associée à « readi » elle sera passante lors de toute lecture suivante et les valeurs Msb et Lsb ne seront pas modifiées lors de ces lectures suivantes. A l'issue des trois étapes de lecture consécutives, le contenu des deux mémoires-verrou MVa et MVb forme un mot binaire identique au contenu des mémoires-verrous MVA et MVB utilisées pour la programmation de ces données. Dans tout ce qui précède, les différentes relations mathématiques et le calcul des valeurs de seuils de conduction ont été basés pour des raisons de simplification sur des courants de lecture identiques à la limitation de courant de ligne de bit lors de la programmation (par exemple 10 nA). En pratique les courants de lecture peuvent être plus élevés, par exemple de l'ordre de lmicroampère. Le seuil de conduction de la cellule dépend du courant injecté et un décalage en courant entraîne un décalage du seuil de conduction. Ce décalage est le même que la cellule soit vierge, écrite ou effacée. Concrètement par rapport à des seuils de conduction calculés pour un courant de lecture identique à la limitation de courant de ligne de bit lors de la programmation (par exemple 10 nA), ces seuils de conduction augmentent de 100 à 200 mV pour un courant de lecture plus élevé, par exemple de l'ordre de lmicroampère. Mais ceci n'affecte en rien les caractéristiques de l'invention. En effet pour prendre en compte cette élévation du courant de lecture, et donc cette élévation des seuils de conduction, dans la détermination des tensions de référence en lecture, une solution consiste à déterminer les seuils de conduction et les tensions de référence en lecture sur la base de courants de lecture identiques à la limitation de courant de ligne de bit lors de la programmation (par exemple 10 nA) et de baisser d'une valeur fixe (200 mV par exemple) les valeurs des tensions de référence ainsi obtenues pour qu'elles correspondent aux courants de lecture plus élevés (par exemple 1 microampère). L'homme du métier saura déterminer cette valeur fixe en connaissant la valeur de la limitation de courant et la valeur réelle du courant de lecture. ANNEXE 1 Tableau 1 Lecture Effacement Programmation Col non sélect. Col sélect. Col non sélect. Col sélect. Col non sélect. Col sélect. Vcc 3V 3V 3V 3V 3V 3V Out 0 3V 0 3V 0 3V Nout 3V 0 3V 0 3V 0 EfouLit 3V 3V 3V 3V 0 0 Prog 0 0 0 0 3V 3V Vcasc 3V 3V 3V 3V VcGp >0 VcGe>>0 0 0 VSP Vcor>0 Vcor>0 VcGe>>0 VcGe>>0 0 0 Vpn 0 0 0 0 VcGp 0 0 VcGe>>0 0 VcGp REVENDICATIONS1. Procédé d'écriture d'une donnée dans au moins une cellule-mémoire, ladite cellule étant programmable par effet Fowler-Nordheim et comportant un transistor ayant une grille flottante, une grille de commande, une région de source et une région de drain, caractérisé en ce que, pendant une phase de programmation de la cellule, on applique (21) une première tension (Vs1) sur la région de source, on applique (22) une deuxième tension (Vd2) sur la région de drain, supérieure à la première tension, jusqu'à mettre la cellule (CEL) en conduction, la valeur numérique (ddj) de la donnée (DD) à écrire étant contrôlée par le niveau de la tension de commande (VcGj) appliquée (20) sur la grille de commande et ladite donnée étant de facto écrite avec ladite valeur numérique lors de ladite mise en conduction de la cellule, la programmation étant alors stoppée (24). 2. Procédé selon la revendication 1, dans lequel on connecte la région de source à la masse en tant que première tension (Vsi) pendant la phase de programmation. 3. Procédé selon la revendication 1, dans lequel on applique une première tension (Vs1) non nulle sur la région de source pendant la phase de programmation. 4. Procédé selon l'une des revendications précédentes, dans lequel la donnée étant susceptible de prendre n valeurs numériques différentes, on définit un jeu d'au moins n-1 valeurs de programmation différentes (VcGj) pour la tension de commande à appliquer sur la grille de commande du transistor pendant la phase de programmation et correspondant respectivement à au moins n-1 seuils de conduction (Vjj) différents de la cellule associés respectivement à au moins n-1 valeurs numériques différentes de la donnée, et pendant la phase de programmation on applique (20) sur la grille de commande la tension de commande ayant la valeur de programmation (VcGj) correspondant à la valeur numérique souhaitée (ddj) de ladite donnée (DD). 5. Procédé selon la revendication 4, dans lequel la donnée (DD) est susceptible de prendre au moins trois valeurs numériques différentes. 6. Procédé selon la revendication 5, comprenant en outre, la cellule (CEL) étant effaçable par effet Fowler-Nordheim, un cycle d'effacement de ladite au moins une cellule-mémoire, précédant la phase de programmation, et durant lequel on couple (50, 51) le drain et la source du transistor à la masse et on applique (52) sur la grille de commande une tension de commande ayant une valeur d'effacement (VcGe) de façon à conférer à la cellule un premier seuil de conduction (Vci) associé à une première valeur numérique de ladite donnée, et on définit un jeu de n-1 valeurs de programmation (VcG2-VcG.) différentes pour la tension de commande à appliquer sur la grille de commande du transistor pendant la phase de programmation et correspondant respectivement à n-1 autres seuils de conduction différents de la cellule associés respectivement aux n-1 autres valeurs numériques différentes de la donnée, et pendant la phase de programmation (55) on applique (20) sur la grille de commande la tension de commande ayant la valeur de programmation correspondant à la valeur numérique souhaitée de ladite donnée prise parmi lesdites n-1 autres valeurs numériques de la donnée. 7. Procédé selon l'une des revendications 4 à 6, dans lequel certaines au moins des valeurs de programmation (VcGj) sont négatives. 8. Procédé selon l'une des revendications précédentes, dans lequel on applique la deuxième tension (Vd2) sur le drain du transistor avec un générateur de tension (GEN1) limité en courant à la valeur du courant de la cellule mise en conduction, la programmation étant alors stoppée d'elle-même lors de la mise en conduction de la cellule. 9. Procédé selon l'une des revendications 1 à 7, dans lequel on applique la deuxième tension (Vd2) sur le drain du transistor avec un générateur de tension (GEN2), on mesure (MES) la valeur du courant consommé par la cellule et lorsque ce courant dépasse un seuil, ondésactive le générateur de tension de façon à stopper ladite programmation. 10. Procédé selon l'une des revendications précédentes, comprenant une sélection d'au moins un groupe de plusieurs cellules- mémoire (CEL,,t) d'un plan-mémoire (PM) et des écritures respectives de données dans lesdites cellules-mémoire dudit au moins un groupe, chaque donnée étant susceptible de prendre n valeurs numériques différentes. 11. Procédé selon les revendications 6 et 10, dans lequel des données de valeurs numériques différentes sont destinées à être écrites dans des cellules-mémoire différentes dudit au moins un groupe, et on applique ledit cycle d'effacement à toutes les cellules-mémoire dudit au moins un groupe de façon à leur conférer ledit premier seuil de conduction (Vt1) correspondant à ladite première valeur numérique (00), puis on sélectionne parmi les cellules-mémoires effacées, un sous-groupe de rang 1 (CELg2-CELg4) comportant les cellules-mémoire dudit au moins un groupe qui doivent être écrites avec au moins une deuxième valeur numérique correspondant à au moins un deuxième seuil de conduction plus faible que le premier seuil de conduction et la phase de programmation comprend un premier cycle de programmation (CP1) au cours duquel on applique sur les grilles de commandes des cellules-mémoire du sous-groupe de rang 1, la tension de commande (VcG2) ayant la valeur de programmation associée au deuxième seuil de conduction (Vt2), puis a) on sélectionne éventuellement parmi les cellules-mémoires écrites du sous-groupe de rang i avec i supérieur ou égal à 1, un sous-groupe de rang i+1 comportant les cellules-mémoire (CELg3-CELg4) dudit au moins un groupe qui doivent être écrites avec une valeur numérique correspondant à un autre seuil de conduction (Vt3) plus faible que le seuil de conduction (Vt2) des cellules du sous- groupe de rang i, et la phase de programmation comprend un i+lème cycle de programmation (CP3) au cours duquel on applique sur les grilles de commandes des cellules-mémoire du sous-groupe de rang i+1 la tension de commande ayant la valeur de programmation (VcG3) associée audit autre seuil de conduction (Vt3), puis on répèteéventuellement les étapes a) jusqu'à une programmation (CP4) d'éventuelles cellules-mémoire (CELg4) dudit au moins un groupe devant être écrites avec une valeur numérique correspondant au seuil de conduction le plus faible. 12. Procédé selon l'une des revendications précédentes, dans lequel chaque cellule mémoire (CEL) est une cellule du type EEPROM. 13. Procédé de lecture d'une donnée écrite dans une cellule-mémoire par le procédé selon l'une des revendications 1 à 12, et susceptible d'avoir n valeurs numériques différentes correspondant respectivement à n seuils de conduction différents (Vti-Vt.) de la cellule, comprenant une élaboration d'un jeu d'au moins n-1 valeurs de référence (Vrefk,k+1) pour la tension de lecture à appliquer sur la grille de commande du transistor pendant un cycle de lecture, les n-1 valeurs de référence étant respectivement situées entre les n seuils de conduction, une application d'une troisième tension sur le drain et a) une application sur la grille de commande (CG) d'une tension de lecture ayant la valeur de référence la plus faible (Vrefn-1,n), et si la cellule est bloquée, une répétition de l'étape a) avec la valeur de référence voisine de la valeur de référence précédemment appliquée jusqu'à l'obtention d'une cellule passante ou jusqu'à épuisement de toutes les valeurs de référence. 14. Dispositif, comprenant au moins une cellule-mémoire (CEL) programmable par effet Fowler-Nordheim possédant un transistor (TR) ayant une grille flottante (FG), une grille de commande (CG), une région de source (S) et une région de drain (D), et des moyens d'écriture configurés pour écrire la cellule-mémoire avec une donnée, caractérisé en ce que les moyens d'écriture comprennent des moyens de programmation (MPR) configurés pour appliquer une première tension (Vs1) sur la région de source (S), contrôler la valeur numérique (ddj) de la donnée (DD) à écrire par le niveau de tension (VcGj) appliqué sur la grille de commande (CG),appliquer sur la région de drain (D) une deuxième tension (Vd2), supérieure à la première tension, jusqu'à mettre la cellule en conduction, la donnée (DD) étant de facto écrite lors de ladite mise en conduction de la cellule avec la valeur numérique (ddj) correspondant au niveau de tension de commande appliqué, et stopper la programmation une fois la cellule (CEL) mise en conduction. 15. Dispositif selon la revendication 14, dans lequel les moyens de programmation (MPR) sont configurés pour appliquer la masse en tant que première tension sur la région de source. 16. Dispositif selon la revendication 14, dans lequel les moyens de programmation (MPR) sont configurés pour appliquer une première tension non nulle sur la région de source. 17. Dispositif selon l'une des revendications 14 à 16, dans lequel la donnée étant susceptible de prendre n valeurs numériques différentes, les moyens d'écriture comprennent des moyens de génération (PCHN) configurés pour générer un jeu d'au moins n-1 valeurs de programmation différentes pour la tension de commande correspondant respectivement à au moins n-1 seuils de conduction différents de la cellule associés respectivement à au moins n-1 valeurs numériques différentes de la donnée, et les moyens de programmation (MPR) sont configurés pour appliquer sur la grille de commande (CG) du transistor la tension de commande ayant la valeur de programmation correspondant à la valeur numérique souhaitée de ladite donnée. 18. Dispositif selon la revendication 17, dans lequel n est supérieur ou égal à 3. 19. Dispositif selon la revendication 17 ou 18, dans lequel, la cellule étant effaçable par effet Fowler-Nordheim, les moyens de génération (PCHN, PCHP) sont configurés pour générer un jeu de n valeurs pour la tension de commande comprenant une valeur d'effacement (VcGe) correspondant à un premier seuil de conduction (V,1) de la cellule associé à une première valeur numérique de ladite donnée et n-1 valeurs de programmation différentes (VcG2, VcGn)correspondant respectivement à n-1 autres seuils de conduction différents de la cellule associés respectivement aux n-1 autres valeurs numériques différentes de la donnée, et les moyens d'écriture comprennent en outre des moyens d'effacement (MEF) configurés pour coupler le drain et la source du transistor à la masse et appliquer sur la grille de commande une tension de commande ayant ladite valeur d'effacement (VcGe), et les moyens de programmation (MPR) sont configurés pour appliquer sur la grille de commande du transistor la tension de commande ayant la valeur de programmation correspondant à la valeur numérique souhaitée de ladite donnée et prise parmi les n-1 valeurs de programmation différentes dudit jeu. 20. Dispositif selon l'une des revendications 17 à 19, dans lequel certaines au moins des valeurs de programmation (VcGj) sont négatives. 21. Dispositif selon l'une des revendications 14 à 20, dans lequel les moyens de programmation comprennent un générateur de tension (GEN1) limité en courant à la valeur du courant de la cellule mise en conduction, configuré pour appliquer la deuxième tension sur le drain du transistor. 22. Dispositif selon l'une des revendications 14 à 20, dans lequel les moyens de programmation comprennent un générateur de tension (GEN2) configuré pour appliquer la deuxième tension sur le drain du transistor, des moyens de mesure (MES) configurés pour mesurer la valeur du courant consommé par la cellule, un comparateur (CMP) configuré pour comparer la valeur du courant consommé avec un seuil et à délivrer un signal de commande si la valeur du courant consommé dépasse ledit seuil, et des moyens de commande (MCM) configurés pour désactiver le générateur de tension en présence du signal de commande. 23. Dispositif selon l'une des revendications 14 à 22, comprenant un plan mémoire (PM) comportant plusieurs cellules-mémoire (CEL,,j) et les moyens d'écriture sont configurés pour sélectionner au moins un groupe de cellules-mémoire et pour écrire respectivement des données dans lesdites cellules-mémoire duditgroupe, chaque donnée étant susceptible de prendre n valeurs numériques différentes. 24. Dispositif selon les revendications 17 et 23, dans lequel des données de valeurs numériques différentes sont destinées à être écrites dans des cellules-mémoire différentes dudit au moins un groupe, les moyens d'effacement (MEF) sont configurés pour conférer à toutes les cellules-mémoire dudit au moins un groupe, ledit premier seuil de conduction correspondant à ladite première valeur numérique, et les moyens de programmation(MPR) sont configurés pour sélectionner parmi les cellules-mémoires effacées, un sous-groupe de rang 1 de cellules-mémoire dudit au moins un groupe qui doivent être écrites avec au moins une deuxième valeur numérique correspondant à au moins un deuxième seuil de conduction plus faible que le premier seuil de conduction et appliquer sur les grilles de commande des cellules-mémoire du sous-groupe de rang 1, la tension de commande ayant la valeur de programmation associée au deuxième seuil de conduction, ensuite, a) sélectionner éventuellement parmi les cellules- mémoires écrites du sous-groupe de rang i, un sous-groupe de rang i+1 de cellules-mémoire dudit au moins un groupe qui doivent être écrites avec une valeur numérique correspondant à un autre seuil de conduction plus faible que le seuil de conduction des cellules du sous-groupe de rang i et appliquer sur les grilles de commandes des cellules-mémoire du sous-groupe de rang i+1 une tension de commande ayant la valeur de programmation associée audit autre seuil de conduction, et éventuellement répéter les étapes a) jusqu'aux éventuelles cellules-mémoire devant être écrites avec une valeur numérique correspondant au seuil de conduction le plus faible. 25. Dispositif selon l'une des revendications 14 à 24, comprenant en outre des moyens de lecture (MLT) configurés pour lire dans au moins une cellule-mémoire une donnée susceptible de prendre n valeurs numériques différentes correspondant respectivement à nseuils de conduction différents de la cellule, les moyens de lecture étant configurés pour appliquer une troisième tension (Vd3) sur le drain, a) appliquer sur la grille de commande une tension de lecture ayant la valeur de référence la plus faible prise parmi un jeu d'au moins n-1 valeurs de référence, les n-1 valeurs de référence étant respectivement situées entre les n seuils de conduction, et si la cellule est bloquée, répéter l'étape a) avec la valeur de référence voisine de celle précédemment appliquée jusqu'à l'obtention d'une cellule (CEL) passante ou jusqu'à épuisement de toutes les valeurs de référence. 26. Dispositif selon les revendications 23 et 25, dans lequel les moyens de lecture (MLT) sont configurés pour sélectionner au moins un ensemble de cellules-mémoire et pour lire respectivement des données dans lesdites cellules-mémoire dudit ensemble, chaque donnée lue étant susceptible de prendre n valeurs numériques différentes. 27. Dispositif selon l'une des revendications 23, 24 ou 26, dans lequel les moyens d'écriture (MPR, MEF) et de lecture (MLT) comprennent des moyens (BLCG) de décodage de ligne de grilles de commande configurés pour délivrer la tension à appliquer sur la grille de commande (CG) d'une cellule, et comportant une mémoire verrou (MV1) associée à un translateur de niveau (TRLN). 28. Dispositif selon la revendication 27, dans lequel les moyens d'écriture et de lecture comprennent des moyens (DCBL) de décodage de lignes de bits comportant une mémoire verrou (MVA, MVB) par bit de la donnée à écrire, les moyens de décodage (DCBL) étant commandés (DD) par des signaux à deux états (pulse1-pulse3) associés à des cycles de programmation différents (CP1-CP3). 29. Dispositif selon la revendication 27 ou 28, dans lequel les moyens de lecture (MLT) comprennent par cellule un bloc (BL2) comportant un amplificateur de lecture (SA) et une mémoire-verrou (MVa, MVb) par bit de la donnée à lire, chaque mémoire-verrou étant commandée par au moins deux signaux logiques (readl, read2 ; read2, read3) respectivement associés à au moins deux lectures successives. 30. Dispositif selon l'une des revendications 14 à 29, dans lequel chaque cellule mémoire est une cellule du type EEPROM.