Method and circuit for checking multilevel programming of floating-gate nonvolatile memory cells, particlarly flash cells

Abstract: To check the programming of a nonvolatile memory cell (1) storing an actual threshold value, the drain terminal (2) of the cell is biased at a constant voltage; the gate terminal (4) is biased at a check voltage; the cell is supplied with a predetermined current (I S ) to determine a gate-source voltage drop related to the actual threshold value; and the voltage at the source terminal is supplied to an input of an operational amplifier (6). In an open-loop solution, the desired threshold value (V TH ) of the set predetermined current is supplied as the check voltage; the amplifier compares the source voltage with the ground; and switching of the amplifier indicates the desired threshold value has been reached. In a closed-loop solution, the output (11) of the operational amplifier is connected directly to the gate terminal (4) of the cell, and supplies the desired threshold value directly.

Description: The present invention relates to a method and circuit for checking multilevel programming of floating-gate nonvolatile memory cells, particularly flash cells. As is known, for performing complex processing functions, analog memories are currently being studied, the cells of which are capable of memorizing a number of multibit analog or digital values. For this purpose, use is advantageously made of flash cells, in which the value to be memorized is related to the threshold voltage of the cell. To memorize the input values, such memories employ a programming stage including a programming circuit for modifying the amount of electric charge stored in the floating gate of each cell, and a check circuit for determining whether the desired threshold value has been reached. For this purpose, various programming procedures are known employing as variables the gate and drain voltages of the cells and programming time, according to solutions employing empirical relations or iterative processes. In the first case, a single programming pulse of a predetermined value and duration is normally supplied, and a check is subsequently made to determine whether the threshold value so programmed corresponds with the desired value. In the second case, a number of programming pulses are supplied, and, after each pulse, a check is made to determine whether the desired threshold has been reached, in which case the programming procedure is interrupted. Currently used read and programming check circuits employ various solutions based on measuring the injected charge or on comparison with a reference voltage, but none has proved entirely satisfactory owing to the need for specially structured memory cells, or the complex design of the circuit, or the duration of the check operations, which is especially disadvantageous in the case of a large number of cells. Nor are known circuits always capable of memorizing any analog value or a large number of different levels. It is an object of the present invention to provide a method and circuit permitting multilevel programming of nonvolatile memory cells by means of a fully and easily integratable structure, which provide for reducing programming time even in the case of a large number of cells. According to the present invention, there are provided a method and circuit for checking multilevel programming of nonvolatile memory cells, as claimed respectively in Claims 1 and 7. In practice, according to the invention, the gate-source or gate-drain voltage drop is regulated automatically so that the exact set current flows in the nonvolatile memory cell; voltage drop is related to the actual memorized threshold value, and may therefore be compared directly or indirectly with the desired value to determine the programming state of the cell. A number of preferred, non-limiting embodiments of the present invention will be described by way of example with reference to the accompanying drawings, in which: Figure 1 shows a simplified electric diagram of a first embodiment of the circuit according to the present invention; Figure 2 shows a simplified electric diagram of a second embodiment of the circuit according to the present invention; Figure 3 shows the Figure 2 circuit integrated in a cell programming device; Figure 4 shows two characteristics of flash cells; Figure 5 shows a simplified electric diagram of a third embodiment of the circuit according to the present invention. Figure 1 shows an open-loop embodiment of the circuit according to the present invention. In the Figure 1 circuit - indicated as a whole by 10 - a nonvolatile memory cell 1 - in this case, a flash cell - has the drain terminal 2 connected to a reference line 3 at voltage V 1 ; the gate terminal 4 connected to a node 14 at which is present a voltage V G equal to the desired programming voltage of cell 1; and the source terminal 5 connected to the inverting input of an operational amplifier 6 and to one terminal of a current source 7. Number 8 in Figure 1 indicates schematically the floating-gate region of the cell, in which is stored an electric charge determining an actual threshold voltage of the cell. Operational amplifier 6 has the noninverting input connected to a reference line 9 at voltage V r , and an output 11 supplying voltage V OL ; and current source 7, generating current I S , has the second terminal connected to a reference line 13 at voltage V 2 lower than V r . For example, if voltage V r is 0 (ground line), voltage V 2 is negative, typically -250 mV. The Figure 1 circuit operates as follows. Let it be assumed, for the sake of simplicity, that reference line 9 is the ground line. The threshold V TH of cell 1 is defined as the gate voltage (measured with respect to ground) causing the current I S set by current source 7 to circulate in cell 1. The current I D circulating in cells of the type considered is approximately given by the equation: I D = K(V gs -V th ) 2 where K is a constant depending on the fabrication process; V gs is the gate-source voltage drop; and V th is the threshold voltage at which the cell starts conducting (at theoretically zero current) - see the continuous-line curve in Figure 4. Since the current I D in the cell must equal the current I S set by source 7 (I D = I S ), the overdrive V gs -V th of the cell, in the Figure 1 circuit, is set and substantially constant alongside variations in threshold voltage V th (which is gradually modified by programming). Moreover, the gate voltage being fixed, V G = V TH , and if V 3 is the voltage with respect to ground of source terminal 5 of the cell, equation (1) becomes: I S = K(V G -V 3 -V th ) 2 Consequently, if the threshold V th , memorized in cell 1 is less than the V th value (at zero current) corresponding to the desired threshold V th and supplied at the gate terminal of cell 1 (see the dotted-line curve in Figure 4), voltage drop V gs must be reduced to ensure a constant set current (and hence a substantially constant overdrive). Since the gate voltage V G is imposed, voltage V 3 must therefore be increased to a positive value with respective to ground, in which case, the output voltage V OL of amplifier 6, operating as a comparator, is zero. Conversely, if the threshold memorized in cell 1 is greater than the zero-current value corresponding to the desired threshold V TH , voltage V 3 is brought to a negative value with respect to ground, and the output voltage V OL of the comparator is brought to a positive value. In other words, the comparison of source voltage V 3 and reference voltage V r (ground) made by the Figure 1 circuit is equivalent to comparing the gate-source voltage drop V gs and the desired threshold voltage V TH . This comparison may be used, during programming, to determine when cell 1 reaches the desired threshold value. That is, as programming proceeds, commencing from a situation in which cell 1 is not or is only slightly programmed (in which its memorized threshold voltage is less than that corresponding to the desired threshold), it is possible to determine the instant in which amplifier 6 switches, and which corresponds to zero crossover of source voltage V 3 , i.e. to the desired threshold being reached. More specifically, by 'programming cell 1 by means of programming pulses (as explained in detail later on with reference to Figure 3), and by checking, after each pulse, whether the desired threshold has been reached, programming may be interrupted on detecting switching of the amplifier, thus ensuring correct programming of the cell. The cell may then be read by biasing it in the same way as in check mode (drain voltage equal to V 1 , source voltage equal to V r , and current equal to I s ). The accuracy of circuit 10 depends on the resolving power of the comparator (in turn dependent on the gain of the comparator) and on the jump in the threshold following each programming pulse; and, depending on the transients of the lines to which the cells are connected, the read time of circuit 10 depends on the size of the memory and on the speed of the amplifier. Figure 2 shows a closed-loop circuit 20 in which cell 1 again has the drain terminal 2 biased at voltage V 1 , and the source terminal connected to one terminal of current source 7 and to the inverting input of operational amplifier 6. In this case, however, instead of being set externally, the gate voltage of cell 1 is supplied by output 11 of operational amplifier 6. As regards the rest, the Figure 2 circuit is the same as in Figure 1, i.e. the noninverting input of amplifier 6 is biased at voltage V r , typically grounded, and the second terminal of current source 7 is biased at a negative voltage with respect to V r , e.g. -250 mV. In the Figure 2 configuration, when V r = 0 V, the output voltage of the operational amplifier, equal to the gate voltage value of cell 1 with respect to ground, equals threshold voltage V th plus the overdrive voltage V OV needed to ensure the set current I S (i.e. equals the threshold reached at the set current) and equals voltage drop V gs . That is, as in Figure 1, current source 7, by setting the current I S flowing in the cell, fixes the overdrive voltage V OV of the cell. Since the threshold voltage is determined by the programming level reached, the value of V gs is therefore determined. And since, in a condition of equilibrium, source voltage V 3 is zero (as imposed by the closed-loop connection of operational amplifier 6), the gate voltage V CL supplied at the output of operational amplifier 6 equals V gs . Since: V OV = V gs -V th it follows that: V CL = V OV + V th Consequently, the output voltage reading of circuit 20 gives a direct indication of the programming level reached, which may be compared by a comparator with the desired value to determine whether to continue the programming procedure. The accuracy of circuit 20 in Figure 2 depends on the loop gain of the circuit, and read time depends on the speed of the circuit and on the size of the array, so that extremely fast read, and hence programming times, may be achieved by appropriately sizing the amplifier according to the number of cells in the memory array to be programmed. Generally speaking, circuit 20 is more accurate than circuit 10, but at the expense of a reduction in speed, and provides for supplying more information (by directly indicating the programming level reached, instead of simply indicating crossover or not of the set value). A programming device implementing the Figure 2 closed-loop configuration is shown by way of example in Figure 3, which shows three two-position switches 22, 23 and 24. More specifically, switch 22 connects gate terminal 4 of cell 1, in a first position, to output 11 of circuit 20 and, in a second position, to a first programming line 26 at a programming voltage V GP ; switch 23 connects drain terminal 2, in a first position, to line 3 and, in a second position, to a second programming line 27 at V DP ; and switch 24 connects the source terminal, in a first position, to the inverting input of amplifier 6 and, in a second position, to ground. The control terminals of switches 22-24 (shown only schematically in Figure 3) are controlled by a control logic circuit 28. In the Figure 3 arrangement, a switch 29 is interposed between the output of operational amplifier 6 and output 11, and a comparator 30 has a first input connected to node 12, a second input receiving the desired threshold voltage V TH of cell 1, and an output supplying a voltage V o to control logic circuit 28. Control logic circuit 28 therefore controls the programming procedure and, more specifically, determines the duration of the programming pulses by controlling the 'positions of switches 22-24, and determines when programming is to be interrupted. More specifically, to program cell 1, control logic circuit 28 connects the gate, drain and source terminals of cell 1 respectively to line 26, line 27 and ground for a predetermined time interval, and then switches switches 22-24 and closes switch 29 to permit comparator 30 to read the threshold voltage reached by cell 1. If the threshold voltage reached is equal to or greater than the desired value V TH , comparator 30 switches and control logic circuit 28 interrupts the programming procedure. Conversely, control logic circuit 28 switches switches 22-24 and 29 to perform another programming step. The Figure 1 circuit may be controlled by a programming circuit similar to that of Figure 3 3 by supplying the desired voltage V TH to switch 22 in the first position, keeping switch 29 open, and connecting the output of amplifier 6 directly to control logic circuit 28 to determine whether or not programming is to be continued. In the case of a memory array comprising a number of cells similar to cell 1, one programming check circuit 10 or 20 may be provided for the whole array, and attainment of the threshold may be determined sequentially for all the cells. The above programming check may also be used for standard NOR-connected flash cells, though, in this case, reading is intrinsically slow. That is, since the source terminals of all the cells forming part of the same memory sector are connected to one another, the source capacitance of the cell being checked is high and considerably reduces reading speed due to the source node of the cell being checked being connected to the virtual ground of operational amplifier 6. As such, it is advisable to invert the connection of the check circuit and the drain and source terminals of the cell being checked, as shown in the Figure 5 example, in which the programming circuitry (similar to that of Figure 3) is not shown for the sake of simplicity. Figure 5 shows a portion (sector) of a memory array comprising a number of cells 1 arranged in rows and columns, with the cells 1 in the same row being connected to the same word line 40 and to the same source line 41, the cells in the same column being connected to the same bit line 42, and all the source lines 41 being connected to one another at a source node 43. Source node 43 is connected to an at least two-position switch 45 for selectively connecting source node 43 to reference line 3 - now at voltage V r - or to ground; and switch 45 is controlled by a control logic circuit 48 similar to control logic circuit 28 in Figure 3, for controlling the programming operating and switching sequence as described in detail with reference to Figure 3. Bit lines 42 are connected to a known column addressing unit 46 for connecting one of bit lines 42 (on the basis of address and control signals supplied by control logic circuit 48) to the inverting input of operational amplifier 6, in turn connected to current source 7. As in Figures 1 and 2, current source 7 is also connected to reference line 13 at voltage V 2 , and the noninverting input of operational amplifier 6 is at voltage V r . The output of operational amplifier 6 is connected to a known row addressing unit 47 for connecting said output to a predetermined word line 40 (on the basis of address and control signals supplied by control logic circuit 48). Each time, control logic circuit 48 therefore connects a predetermined cell 1, located at the junction of the addressed word line 40 and bit line 42, to the output and inverting input of operational amplifier 6 to obtain the Figure 2 circuit for the cell 1 in question, which may therefore be read and programmed as described previously. This therefore provides for solving the slow reading problems mentioned above, by source node 43, during reading, being connected to a zero-impedance voltage source (line 3), so that the transients created by its high capacitive load are no longer than those already present for other reasons. In the Figure 5 solution, the capacitance of the drain terminal acquires added importance (being this which is now connected to the virtual ground of operational amplifier 6) but is much lower than the source capacitance by virtue of each column in the array having its own bit line and its own metal line separated from the other bit and metal lines. The embodiments of the check circuit described provide for automatic multilevel programming (e.g. up to 128 different levels per cell) of large-size memory arrays (with as many as a million cells or more). The circuit provides for complete, extremely fast programming of the cells (e.g. 1 ms/cell in the case of a closed-loop configuration for a 1 Mbit array with 5-bit storage per cell). The circuits shown may be fully or partly integrated in complex chips, may be used for different programming algorithms, and provide for fast, automatic digital-address programming using a selection circuit (in the open-loop configuration). The check circuit described is therefore particularly suitable for use in multilevel analog or digital associative memories, e.g. for character recognition, and may also be used to advantage for weight storage in A/D and D/A converters, and for offset storage in circuits for correcting the offset of operational amplifiers. Clearly, changes may be made to the method and circuit as described and illustrated herein without, however, departing from the scope of the present invention. In particular, in the circuit, the noninverting terminal of amplifier 6 may be biased at any constant voltage, just as the bias value of the drain terminal of the cell may be selected appropriately. The programming procedure may differ as compared with that described, as may the programming circuit, which do not form part of the invention.

Claims: A method of checking multilevel programming of a nonvolatile memory cell comprising a first and a second terminal, a gate terminal and a floating-gate region, said floating-gate region storing electric charges determining an actual threshold value stored in said cell; characterized by the steps of: biasing said first terminal of the cell at a constant voltage; biasing the gate terminal of the cell at a check voltage; supplying a predetermined current to the cell to determine a voltage drop, between said gate terminal and said second terminal, related to said actual threshold value; and supplying the voltage at said second terminal to an input of an operational amplifier. A method as claimed in Claim 1, characterized in that said step of biasing the gate terminal comprises the step of biasing the gate terminal at a desired threshold value; and in that said step of supplying said voltage comprises the step of determining whether said voltage drop is greater or less than said desired threshold value. A method as claimed in Claim 2, characterized in that said determining step comprises the step of comparing said voltage at said second terminal with a first predetermined reference voltage. A method as claimed in Claim 1, characterized in that said step of biasing the gate terminal comprises the step of connecting the output of said operational amplifier to said gate terminal; and said step of supplying said voltage comprises the step of connecting said second terminal of the cell to an inverting input of said operational amplifier, and connecting a noninverting input of said operational amplifier to a second reference voltage. A method as claimed in any one of the foregoing Claims, characterized in that said first terminal is a drain terminal, and said second terminal is a source terminal. A method as claimed in any one of the foregoing Claims from 1 to 4, characterized in that said first terminal is a source terminal, and said second terminal is a drain terminal. A memory device comprising a nonvolatile memory cell (1) and a circuit for checking multilevel programming of said nonvolatile memory cell (1), the nonvolatile memory cell (1) comprising a first and a second terminal (2, 5), a gate terminal (4) and a floating-gate region (8), said floating-gate region storing electric charges determining an actual threshold value stored in said cell; characterized by a first constant-voltage node (3) connected to said first terminal (2) of said cell (1); a check-voltage node (14) connected to said gate terminal (4) of said cell; a constant current source (7) connected to said second terminal (5) of said cell and determining, between said gate terminal and said second terminal, a voltage drop (V gs ) related to said actual threshold value; and an operational amplifier (6) having a first input connected to said second terminal (5) of said cell, and a second input connected to a second constant-voltage nods (9). A circuit as claimed in Claim 7, characterized in that said check-voltage node (4) is biased at a voltage equal to a desired threshold value; and in that said operational amplifier (6) supplies a signal indicating said actual threshold value exceeds said desired threshold value. A circuit as claimed in Claim 7, characterized in that said check-voltage node (14) is connected to an output terminal (11) of said operational amplifier (6) supplying a signal related to said actual threshold value. A circuit as claimed in any one of the foregoing Claims from 7 to 9, characterized in that said cell (1) is a flash-EEPROM cell. A circuit as claimed in any one of the foregoing Claims from 7 to 10, characterized in that said second input of said operational amplifier (6) is grounded. A circuit as claimed in any one of the foregoing Claims from 7 to 11, characterized in that said constant current source (7) has a first terminal connected to said second terminal (5) of said cell (1), and a second terminal connected to a third constant-voltage node (13) at a negative potential with respect to said second constant-voltage node (9). A circuit as claimed in any one of the foregoing Claims from 7 to 12, characterized in that said first terminal is a drain terminal, and said second terminal is a source terminal. A circuit as claimed in any one of the foregoing Claims from 7 to 12, characterized in that said first terminal is a source terminal, and said second terminal is a drain terminal. A memory device as claimed in any one of Claims 7 to 14, further comprising a device for programming said nonvolatile memory cell, characterized by first switching means (23) for selectively connecting said first terminal (2) to said first constant-voltage node (3) and to a first programming-voltage node (26); second switching means (22) for selectively connecting said gate terminal (4) to said check-voltage node (14) and to a second programming-voltage node (27); third switching means (24) for selectively connecting said second terminal (5) to said first input of said operational amplifier (6) and to a reference potential line; and a control logic circuit (28) generating control signals for said first, second and third switching means.

Inventors: CANEGALLO ROBERTO, CHINOSI MAURO, GOZZINI GIOVANNI, KRAMER ALAN, ROLANDI PIER LUIGI, SABATINI MARCO
Applicants: ST MICROELECTRONICS SRL, STMICROELECTRONICS S.R.L.
Application year: 1996
Main classification: G11C29
IPC codes: G11C29, G11C11, G11C16, G01R31