NON-VOLATILE ELECTRICALLY ALTERABLE SEMICONDUCTOR MEMORY FOR ANALOG AND DIGITAL STORAGE

Abstract: Methods and apparatus for achieving analog storage in a non-volatile memory array. The array consists of memory cells that utilize Fowler-Nordheim tunneling for erasure and hot electron injection for programming. Writing into a cell is performed by an initial erasure followed by a controlled sequence of program operations during which the cell is programmed in small increments. The stored voltage is read after each program step and when the voltage reads back from the cell is equal or just beyond the desired analog level, the sequence of program steps is terminated. The read condition for the cell applies a positive voltage to the drain or common line and a positive voltage to the control gate. The source is connected through a load device to a negative (ground) supply. The output from the cell is the actual voltage that exists at the source node.

Description: NON-VOLATILE ELECTRICALLY ALTERABLE SEMICONDUCTOR MEMORY FOR ANALOG AND DIGITAL STORAGE BACKGROUND OF THE INVENTION 1. Field of the Invention This invention relates to the field of integrated circuit storage of analog signal samples and multi-level digital signals in a memory array. 2. Prior Art Up to the present time, nonvolatile analog storage in integrated circuits has been performed predominantly in EEPROM memory cells that utilize Fowler-Nordheim electron tunneling for both erase and program modes. These cells are usually constructed of a MOS transistor with an intermediate polysilicon gate positioned between the channel and an upper polysilicon control gate. The intermediate polysilicon gate does not have any ohmic electrical connections, is completely surrounded by an insulator and is commonly termed the floating gate. Electrical charge is added to or subtracted from the floating gate by applying voltages to the four available terminals of the transistor (source, drain, gate and substrate) such that electric fields are imposed across a particular region of the dielectric surrounding the floating gate, generally called the tunnel oxide. By correct three dimensional design of the cell, and by correct selection of applied voltages, the fields acrosε the tunnel oxide are sufficiently high to induce electron tunneling through the dielectric. The addition or removal of electrons to or from the floating gate causes the threshold of the transistor, as measured by applying a voltage to the upper control gate, to be modified. Assuming NMOS transistors are used, the direction of the high electric field determines whether electrons tunnel onto or off the floating gate and therefore determines whether the resulting change in threshold voltage is an increase or a decrease, respectively. There are many examples of floating gate digital memories, whereby the threshold voltage of the floating gate transistor is changed by significant amounts, in the order of a few volts. One logic state is represented by a wide range of thresholds and the other logic state(s) is represented by a different range (s) of thresholds. Information is read from the cell generally by determining whether the transistor conducts or does not conduct when the transistor is biased into a predetermined read condition. Analog storage, on the other hand, requires that small or continuous changes be made to the threshold of the floating gate transistor, and requires that the reading of the transistor give a determination of an actual voltage from the transistor, or an indication of how conductive the transistor is. Examples of analog storage can be found in U.S. Patents 4,627,027 (Rai), 4,890,259 (Si ko), 4,989,179 (Simko), 5,220,531 (Blyth) , 5,241,494 (Blyth) , and 5,294,819 (Simko) . The technique utilized in U.S. Patent 4,627,027 relies on a programming voltage applied through a high value resistor to the drain of the floating gate transistor such that the transistor starts to conduct when the floating gate is charged sufficiently high, relative to an applied analog level on its source. At the onset of conduction the drain current causes an increasing voltage drop across the resistor and therefore reduces the programming voltage applied to the drain. Tunnel current therefore reduces and the floating gate reaches a level which has a close relationship to the input voltage on the source. U.S. Patent 4,890,259 and U.S. Patent 4,989,179 describe a non-volatile memory array of cells into which analog or multi-level signals are stored by continuously sampling the signal and sequentially temporarily storing the samples in a set of sample and hold circuits. The parallel outputs from the sample and hold circuits are then used to control an iterative write sequence for an equal number of memory cells, the iterative write sequence being independent for each of the cells aε controlled by the respective sample and hold output. The iterative write sequence is a series of write programming voltage pulses, each followed by a read operation, wherein the programming voltage pulses increase in amplitude until the voltage level read from the cell matches the desired analog level from the corresponding sample and hold circuit, at which time the series of programming pulses for that cell is terminated. U.S. Patent 5,220,531 and U.S. Patent 5,241,494 are improved methods and apparatus for iterative analog storage that allow improved performance and manufacturability. U.S. Patent 5,294,819 is a method for analog storage in an EEPROM cell containing a single transistor. A common characteristic of the aforementioned examples is the use of an EEPROM cell that uses Fowler-Nordheim tunneling for both erase and program modes of operation. Another class of non-volatile memories relies on hot-electron injection for the program operation. Erasure may be performed by exposing the surface of the integrated circuit to Ultra Violet light, or alternatively may be performed electrically by Fowler- Nordheim tunneling. In either case the program function is performed by hot electron injection, whereby the floating gate transistor of the selected cell is biased such that electrons in the source to drain channel are subjected to high electric fields. The energy imparted to the electrons is sufficiently high for electrons to jump the energy gap of the oxide layer and terminate on the floating gate. The proportion of electrons terminating on the floating gate depends on the particular bias conditionε, one of which is the floating gate voltage and therefore the field across the oxide under the floating gate. Generally speaking, high source currents are required to supply sufficient charge transport to program an adequate threshold change in a reasonable time period i.e. a few volts in a few tens or hundreds of /sec. Transfer efficiency is therefore very low; in the order of 1 electron which terminates on the £_ *-7 floating gate for 10 or 10 channel electrons. Since programming requires high currents and high voltages, the techniques used for on-chip voltage multiplication from a single power source such as those found on EEPROM devices are not practical, and it becomes necessary to use external power sources to supply the program current. A special external supply, capable of relatively high power, is a significant disadvantage. Some recent improvements, however, have overcome some of these difficulties. One example is described in U.S. Patents 5,029,130, 5,067,108 and 5,289,411 - an improved technique for hot electron injection, whereby the programming transfer efficiency is much improved, and on-chip voltage multiplication becomes practical. While the above patents disclose the manufacture of the improved device and its operation and use for digital data, the present invention relates in the preferred embodiment to storage of analog data, and also introduces different techniques for writing to and reading from the cell. This invention can also be applied to other types of non-volatile cells that use hot electron injection. In addition, while the present invention uses sample and hold circuits and iterative programming techniques similar to those disclosed in U.S. Patents 4,890,259, 4,989,179 and 5,241,494, there are significant differences from these patents. Briefly, the program control is performed by switching current instead of voltage, as well as significant architectural differences in the writing circuits. BRIEF SUMMARY OF THE INVENTION The present invention discloses methods and apparatus for achieving analog storage in a non-volatile memory array. The array consists of memory cells that utilize Fowler-Nordheim tunneling for erasure and hot electron injection for programming. The input level to be stored may be a voltage that is applied continuously during the programming period, or, in a typical application of this invention, it may be an output from one of a plurality of sample and hold circuits that continuously sample an analog signal and provide a steady voltage for use by the writing circuits during the programming period. Writing into a cell is performed by an initial erasure followed by a controlled sequence of program operations during which the cell is programmed in small increments. The stored voltage is read after each program step and when the voltage read back from the cell is equal or just beyond the desired analog level, the sequence of program steps iε terminated. The number of program steps may be different for each cell or for different desired voltages. The program configuration and conditions depend on the type of cell being used, but in any case, the change in floating gate transistor threshold during each program step must be small. This is achieved by controlling the applied voltages, the source to drain current and also the time for which the source current flows. A combination of all the above control variables may be required for a particular cell type. The read condition for the cell is different from that used in the clasεic digital configuration. Aεsuming NMOS devices, usually in the prior art the source of the cell, i.e. the common line, is connected to the negative (ground) supply and the voltages applied to the control gate and drain are positive with respect to the source. The stored state of the cell is determined by senεing the reεulting drain current. Alternatively, a load device iε connected between the drain and a positive supply and the data state or stateε determined by the drain voltage being greater or leεε than a reference voltage or εet of voltageε. In contrast, the present invention applies a positive voltage to the drain or common line and a positive voltage to the control gate. The source is connected through a load device to a negative (ground) supply. The output from the cell is the actual voltage that exists at the source node. There is no current senεing or comparison with a reference voltage to determine the output state. As mentioned above, a typical application of the invention is the sampling and storing of an analog waveform. In particular, the invention is especially effective in the recording and playback of audio waveforms. To achieve adequate voice reproduction quality, a sample rate of 6 KHz or greater is required. The resulting time period of 170 microseconds, or lesε, iε too short to allow lengthy sequences of iterative programming steps, especially if high resolution and therefore a large number of steps is required. Prior art U.S. Patent 4,890,259 uses sample and hold circuits and parallel writing circuits to allow sufficient programming time, while U.S. Patent 5,220,531 reduces the number of parallel writing circuits to more practical numberε. The improved writing technique in the '531 patent relieε on temporary storage of a programming voltage on a cell by cell basiε and does not lend itself easily to hot electron programming. However, the present invention introduces a method and architecture for reducing the number of parallel writing circuits that is suitable for hot electron programming and therefore reduces circuit complexity, die size and cost of manufacture. Digital information storage is another application for the present invention. A digital number can be represented by aεεigning a εpecific analog level to a digital number. The range of digital numberε that can be repreεented iε determined by the analog voltage range divided by the accuracy to which the voltage may be stored and reliably retrieved. To input a digital number to the device, a digital word is input to an analog to digital (A/D) converter and the output of the converter is stored in the analog memory. At the output of the device, the analog level is retrieved from memory and input to a digital to analog (D/A) converter. The output of the D/A is a digital number that corresponds to the number that was originally input to the device. One embodiment of the present invention is an array of analog memory cells. Combining the analog memory array with the storage of digital information provides a very dense storage for digital information. BRIEF DESCRIPTION OF THE DRAWINGS Figure IA is a circuit diagram of an arrangement of transistors for illustrating and describing read, erase and program operations of the preferred embodiment of the present invention. Figure IB is a circuit diagram of a portion of a typical memory array in accordance with the present invention attainable by the replication of the circuit of Figure IA. Figure 2 is a cross section of a prior art single transistor electrically programmable and erasable memory cell of the type that can be used in the circuit of Figure 1. Figure 3 is a block diagram illustrating the memory array architecture of the preferred embodiment of the present invention. Figure 4 is a circuit diagram providing the details of the program control circuit of the preferred embodiment of the present invention. Figure 5 iε a timing diagram for the program control circuit of Figure 4. Figure 6 is a schematic diagram illustrating the overall analog memory organization of the preferred embodiment of the present invention, and particularly showing the drain straps and ISUMz lines. Figure 7 is a circuit diagram of a portion of a typical memory array in accordance with the present invention illustrating the coupling of the ISUMz lines to the drain lineε through corresponding transistor switches. Figure 8 illustrateε the connection of data converters to the analog memory to provide the storage and playback of a multi-bit digital value as a single analog voltage. DETAILED DESCRIPTION OF THE INVENTION Figure IA iε a circuit diagram of a transistor arrangement intended to demonstrate the variouε operating modes of the preferred embodiment of the present invention, and shows four single transistor cells connected in an arrangement of two rows and two columns. While this specific arrangement has very limited practical application, it doeε serve to illustrate the method for reading, erasing and programming in a representative, albeit minimal εize memory array, and is representative of larger arrays of any desired size achieved by replicating the arrangement of Figure IA, as shown in Figure IB. In particular, in Figure IB, the array of Figure IA haε been replicated twice horizontally and twice vertically to provide an array of 4 columnε by 4 rowε of cells, with the drain connections of each pair of adjacent rows being coupled in common to a respective drain driver line. This of course is repreεentative of the manner in which the basic array of Figure IA can be repetitively replicated to provide an array of any desired size and configuration. In the interest of simplicity, the following discussion assumes that all floating gate transistors are NMOS rather than PMOS transistors. In addition, the discussion will use, by way of example, the cell structure described in U.S. Patent 5,029,130. This cell εtructure is illustrated in cross section in Figure 2. As shown, the P substrate 10 has N+ source and drain regions 12 and 14, respectively. The source and drains regions as well aε the channel region 16 there between are covered by a first insulating layer 18 such as εilicon dioxide of a thicknesε of approximately 70 to 200 Angstroms. Disposed over the insulating layer 18 is a floating gate 20 positioned over a portion of the channel region 16 and a portion of the drain region 14. Disposed adjacent and over the floating gate 20 iε another inεulative layer 22, with a control gate 24 diεpoεed over the insulative layer 22 so as to extend over part of the floating gate 20, adjacent the control gate 24, and over part of the channel region 16 and part of the source region 12. Further details of this particular cell and itε conεtruction can be found in the patent herein before referred to. The techniques introduced in the present invention, however, may be utilized by other hot electron cell structures, preferably, but not necessarily, with high program current efficiency. If a different type of cell iε used, then the bias conditions for the erase, program and read operations would need to be modified. Cells that have poor efficiency may require extra external power supplieε, more complicated waveform regulation circuits and larger switching transistors, and may be limited in the number of cells that may be practically programmed in parallel, thus impacting sample rate and device architecture. A cell type with high transfer efficiency is therefore preferred. Suppose that transistor Tl in Figure la is the selected cell for an erase, program and read operation. Table 1 provides a list of representative applicable node voltages. Erase is performed by applying a high voltage, about 15V, to the control gate WLl and OV to all other terminals . The capacitive coupling between control gate and floating gate, for this type of cell, iε much lesε than the εum of the coupling between floating gate and other terminalε and therefore a high electric field iε created across the dielectric between control gate and floating gate. Electrons tunnel from the floating gate to the control gate, reεulting in a net positive charge on the floating gate after the control gate is returned to a low level. For a 15V erase pulse applied for 1 msec, the threshold of Tl is reduced to about -IV. Since the control gate is common to all transistors on the row, both transistors Tl and T3 are erased. There are no applied voltages to T2 and T4, so there is no change to the charge on the respective floating gates and therefore no change in the threshold of T2 and T4. Alternate cell types, such as described in U.S. Patent 4,698,787, would achieve similar results by raising the drain voltage to a high level while maintaining the control gate at a low level . The erase operation results, again, in tunneling of electrons from the floating gate, except this time the tunnel direction is towards the drain. The cell Tl is read by connecting a voltage of approximately 5V to WLl, a load current of about l A from OV to Coll, and 2.5V to the drain line. This configuration creates a source follower action in which changes to the voltage on the floating gate, created during erase and program, are manifested directly as changes to the source voltage during read. The load current is kept low in order to maximize the voltage range on the εource for a given change in the floating gate voltage, and also to reduce distortion effects that would otherwise be created by current loading in the floating gate transiεtor and the εwitching tranεistors that are neceεεary to implement a usable array. Operation WLl WL2 Coll Col2 Drain Erase 15V OV OV OV OV Read 5V OV l μ A to OV open 2 . 5V Program 2V OV l μ A to OV 3V-5V 6V-12V Program 2V OV 3V-5V 3V-5V 6V-12V inhibit Cell WLl/Coll selected, all other cells deselected. Substrate potential is OV for all operations Table 1: Operating Conditions Programming is performed by biasing the floating gate transiεtor such that electrons flowing in the source/drain channel are εubjected to high fieldε, causing them to gain sufficient energy to pasε through the energy gap. A certain proportion of theεe "hot electrons" are collected on the floating gate, depending on the cell efficiency. The cell in this example achieves high efficiency by concentrating the high field in a short region of the channel, just underneath the interface between the control gate and the floating gate. The control gate is taken to approximately 1 or 2 volts, so as to very weakly invert the underlying channel . Simultaneouεly a high voltage, between 6V to 12V, is applied to the drain. Since the floating gate iε poεitively charged from the eraεe operation and, in addition, the drain couples additional positive charge onto the floating gate, the channel under the floating gate is strongly inverted. The potential drop between source and drain is concentrated in a short distance under the sidewall oxide, separating the control gate and floating gate, resulting in high fields and therefore high transfer efficiency, as described in U.S. Patent 5,029,130. A current controlled sink of about lμA is connected to the source and applied for a short period in the order of a few microseconds. By minimizing the source current, starting with a low drain voltage, and alεo minimizing the length of time that the εource current flowε, the preεent invention reduces the amount of programming charge that pasεeε through the oxide and therefore reduces the change in threshold voltage to a small value, in the order of a few millivolts. Repetitive program operations are performed, each one changing the threshold by a small amount. Between program events, the cell is read in regular intervals to determine if programming is to continue or is to be terminated. As programming continues, the floating gate becomes progressively negatively charged and tends to reduce the injection efficiency. Compensation for the efficiency loss is achieved by increasing the drain voltage between program εtepε. The amount of drain voltage increaεe per program step is of the same order as the floating gate decrease so that the change in floating gate voltage per program step is esεentially conεtant over the complete voltage range. In thiε example, the drain voltage in increased, in small steps, from about 6V to about 12V. The threshold voltage of Tl increases in correspondingly small steps until, at the end of the programming sequence the threshold has increased, from its starting point of -IV to about 5V. The voltage output in the read mode changes from about 2.5 V to OV. Thus an analog voltage haε been stored in Tl. Program termination can be achieved by removing the high voltage from the drain, or also by taking the Coll line to 3V to 5V, thus raising the source voltage of Tl above the control gate by an amount higher than the effective gate drive on Tl, even in its fully erased state. Current conduction in the Tl channel is turned off and programming stops. The possible disturb conditions that exiεt during programming of Tl can be analyzed by considering T2, T3 and T4 of Figure IA. These three transistors are unselected for programming during programming of Tl, and any change in threshold is undesirable. WL2 is at OV, therefore turning off the channel conduction of T2 and T4. Col2 is at a high voltage relative to WLl and, in a similar manner to the program inhibit condition, there is no channel current and therefore no injection or change in threshold for transiεtor T3. The number of program iterationε iε determined by the deεired reεolution, or voltage output change per program step, together with the voltage range or dynamic signal range of the voltage to be stored. A combination of small resolution increments and large dynamic range is deεirable for good noise performance and good audio reproduction. This unfortunately requires a large number of program stepε. For instance, a signal range of 2.5V and a resolution of lOmV requires 250 program pulseε. In addition, the exact cell characteristics vary from cell to cell, not only on a single integrated circuit die or wafer, but also from wafer to wafer and especially across different manufacturing lots. An extended range of high voltage drain voltages is therefore used in order to take different cell characteriεticε into consideration. The beginning voltage on the drain node is chosen to be a value lower than that considered to be the lowest nominal value required to program the maximum stored voltage. By this means, margin is added to ensure that the first program step does not cause a change to the floating gate charge that is larger than our desired step size. Similarly, the maximum drain voltage reached during programming is increased such that cells which are more difficult to program can still be programmed to the minimum stored voltage. If cell characteristicε are assumed to vary by +30%, then a total of 400 program pulseε would be required. Another conεideration is the rate at which an input waveform is sampled; in the interest of reproduction quality, a high sample rate is preferred. However, as the sample rate is increased for a given number of sample and hold circuits, the available time period for storage of the sampled voltages decreases. (For applications other than audio recording, the equivalent parameter iε write speed, or write accesε time) . Now, εince εtorage requires the cell to be connected alternately between program and read configurations, there is a practical minimum time limit during which the cell can be re-configured from one configuration to another. Large memory arrays, in particular, have considerable load capacitances that the peripheral circuits can only charge and discharge to the required bias voltages in a certain, finite time period. The cell read operation also requires a certain settling time period for the readback voltage to stabilize. The product of the time required for a εingle program εtep, times the total number of program steps must be equal or less than the product of the sample period times the number of sample and hold circuits or column drivers. This concept can be better underεtood by conεidering Figure 3, which, in εimilar faεhion to U.S. Patent 4,890,259, εhowε a memory array architecture with N rows, M columns and X sample and hold circuits. As an audio signal is continuously sampled into one bank of capacitors in the dual sample and hold circuits, the other bank is being written in parallel into the array. Each time the writing of a bank is completed, the column multiplex circuit connectε the next group of column lines into the column driver. When all cells in a row have been written, the row decoder selectε the next row. Thus, the time taken to load a bank of sample and hold circuits is the maximum time available for writing the previous bank into the array. As the number of program steps is increased and/or the length of time for a program/read/compare sequence increases, so does the number of column drivers, X, need to increase for a given sample rate. Undesirable conεequenceε are twofold. Firεtly, silicon area required to hold the extra column drivers is greater, and secondly the increaεed hold time in the sample and hold circuits leads to increased capacitor area, circuit complexity, or reduced performance due to signal leakage and distortion. A further attribute of the present invention includes a method to reduce these problems by reducing the average time to perform a program step. The basic concept is to read the cell and then apply a group of several program pulses to the cell before reading it again. As the voltage presently stored in the cell iε read, a determination iε made as to how many, out of a maximum number of program steps, should be applied during the next group. By this means the number of times that the cell configuration iε changed from read to program and program to read iε reduced approximately by the maximum number of program pulses in the group. The time spent charging or discharging nodes is reduced, as well as the total time εpent to allow voltages to settle, thus improving the overall efficiency of the writing procedure. The circuit for doing thiε is shown in Figure 4, together with a corresponding timing diagram in Figure 5. In this particular implementation the program group consistε of four pulεeε. Aεεume that the cell addreεεed by the active word line and by the active column multiplexer haε already been cleared. A pulse has been applied to CLRES and, consequently, all latch 30 outputs Ql through Q4 are at a logic "0". An input analog voltage is sampled and held on Cl. The buffered voltage iε εummed with an attenuated ramp voltage and then input to a comparator 32. The ramp voltage and the attenuator 34 are deεigned εuch that the peak input to the εumming node after attenuation iε equal to the change in cell read voltage that is achieved by three program pulseε. The other input to the comparator is the Analog Out signal, i.e. the voltage read from the addressed cell. As the ramp voltage increaseε, the εignalε Ll, L2, L3 and L4 (which may alεo conεtitute signals Ll ' , L2 ' , L3 ' and L4 ' to AND gates 36) sequentially enable the latcheε and, if the cell voltage iε leεs than the sum of the hold voltage plus the attenuated ramp voltage, then the corresponding latch 30 outputs Ql, Q2, Q3 or Q4 is set. Thus the amount of analog programming still to be performed is represented by the outputs of the digital logic positioned between the comparator 32 and the program current steering switcheε. If there iε no comparison, as is the case when the addressed cell has not been sufficiently programmed, and all latches 32 remain reset, then during the next drain high voltage pulse, the INHIBIT signal remains low. The switching transistor M2, controlled by logic signal CIEN, connects the lμA fixed current from transiεtor Ml biased as a lμA current source, through M3 onto the selected column line during each of the four CIEN pulεes. The cell is subjected to all four program current pulses and its threεhold increases accordingly. Notice that the drain voltage increases such that, during each succeεsive CIEN pulse, the drain voltage is higher by an amount corresponding to the program resolution. The drain node may increaεe incrementally, as shown in Figure 5, or it may increase εteadily in a ramp during each group of four successive CIEN pulses. The repetitive program/read procedure repeats until, in a subεequent read operation, the cell is found to approach the final, desired voltage and a comparison is obtained during one of the pulses Ll through L4. The particular pulse depends on how much additional programming is required to achieve a cell voltage equal to the held voltage. For instance, the ramp voltage is zero during Ll, so if a comparison is achieved at this time, it means that the cell voltage has reached the target. All latches 30 would be set and therefore, during the next program cycle, the INHIBIT signal disables all further program current pulses. The example shown in the timing diagram of Figure 5 εhowε a compariεon during L3, i.e. when the ramp haε reached a level equivalent to two program εtepε. On the next program cycle the cell receives two current pulses, bringing the stored voltage up to the desired level. Once the deεired level has been reached, all further program pulses are inhibited until the next cell is selected. In the particular circuit implementation εhown in Figure 4, the croεs-coupling of the latch outputs to the input of the next latch ensures that once any latch is set, all subsequent strobe periods will also set the corresponding latch. Latches will remain set until the next cell is addresεed, at which time they will be reεet by CLRES. It iε poεεible to implement the latching and cross- coupling in various ways. The overall objective is to add some form of hysterisis εo that, once a compariεon is made and the program pulses are inhibited, the pulses remain inhibited until the next cell is selected. There are many ways to implement this hysteriεis, in either digital or analog form. In fact, if noise levels are sufficiently low, it is even posεible to eliminate the coupling between latcheε entirely so that, once the first comparison has been made, the circuit relies on the comparator output to make sure that all other latcheε are set. Other variations are possible. For instance, the number of pulseε within a group may be modified. A larger number of pulses provides greater benefit in terms of reduced overall program time for a given resolution, but requires a more accurate correspondence between the voltage increments on the drain during programming and the ramp during reading which sets the number of program pulses within the group to be used in the next programming cycle. To aid in attaining this accuracy, programmability may be added to the circuitry to allow adjustment at the time of manufacture of the appropriate parameter to obtain accurate correspondence between the voltage increments on the drain during programming and the ramp during reading. One or more digital floating gate storage cells may be added on chip to allow programming, at the time of manufacture, of the slope of the ramp used during the reading phase of the program/read/compare εequence, or the rate of increaεe of the program pulse voltageε applied to the drain during programming. Such cells can be programmed at the die or wafer stage when circuit contacts can be directly made to achieve the desired result. Alternatively such cells can be made electrically accessible through already existing pins on the integrated circuit by driving another pin to a voltage outside its ordinary operating range to reset on-chip switches determining pin functions. The general use of such trim bits for trimming circuit parameters is well known in the prior art, and need not be further described herein. As a further alternate embodiment, note from Figure IB that with respect to each drain line, there is a row of cells above the drain line and another row of cells below the drain line. Mask alignment, which is necessarily imperfect, will effect the "up" cells differently from the "down" cells. To compensate for this, the ramp may actually conεist of two ramps, one that is used for "up" cells and another used for "down" cells. Allowance can therefore be made for mask alignment related differences in the cell characteristics of odd and even rows. Each ramp could be adjusted separately, or one adjustment could be for the average ramp slope and the other for the differential ramp slope. The schematic diagram of Figure 4 is a repreεentation of the logical functions only, not a detailed circuit, as an actual MOS implementation would require certain obvious signal inversions. Also the latches and logic that represent the number of program pulses to be performed in the next pulse group can be effectively implemented with a counter. While Figure 4 represents an exemplary embodiment, a person skilled in the art will recognize that several other variations are possible, all of which will achieve essentially the same reεult. Proviεion iε made in the current εwitching circuits to route the program current into the memory array, even when programming is to be inhibited. When transistor M3 turns off, transistor M4 turns on, current is directed not into a column line, but instead onto node ISUMz which, in turn, is connected to the drain node of the selected row, through a transistor which haε itε gate driven by the word line WLn (see also Figures 6 and 7) . Several column driver circuitε have the εource of their reεpective M4 tranεiεtorε connected in parallel and any column driver in the inhibit condition will sum itε program current into ISUMz. The purpose is to minimize the change in voltage profile along the resistive drain line during the course of the program operation. The voltage change would occur due to the change in current flowing through the drain line as cells reach the desired voltage and program current is terminated. Such a voltage change may cause unexpectedly large amounts of programming at a particular cell, as cells in other parts of the array reach their desired level and their program current is terminated. By redirecting current into ISUMz, the overall current flowing through the drain node is constant. Thus the local voltage profile change due to the switching of M3 transistors is minimized compared to an architecture that does not use ISUMz. Figures 3 and 6 illustrate the memory organization. There are a total of M columns, organized with Y columns per column driver. If there are Z instances of the node ISUMz, then it follows, for each ISUMz node, there are M/Z columns and M/(ZxY) column drivers. For instance, with a total of 2048 columns, organized as 16 columns per column driver and a total of 128 column drivers, one could asεign 8 column drivers to each one of 16 ISUMz nodes. Note also that this effect relates to the uniformity of the programming increment which is obtained for different cells or groups of cells. An example is the case of all cells in a group being programmed versus the last (single) cell being programmed, and alεo the caεe of the first bank of cells in a row versuε the laεt bank of cells being programmed. Any remaining non uniformity can be tolerated so long aε the maximum programming increment iε limited to no more than the deεired increment. An additional benefit of the preεent invention is the reduced drain capacitance being charged at any one time. The reduction is achieved by εeparating the drain node into εeparate nodes for each pair of cell rows. When switching back and forth between program and read modeε in the program/read/compare analog storage sequence, the reduced capacitance allows faster charging and shorter program times. However, a seriouε diεadvantage for analog storage iε the increaεed drain line resistance, which, as described above, can have undesirable effects on the voltage profile along the drain line and may result in unwanted increases in programming increments. To compensate for thiε effect, a further improvement iε introduced in the preεent invention which results in a reduction in the effective resistance of the drain connection. In particular, several drain lines are connected together by a metal connection running parallel to the column direction and contacting several drain lines which run perpendicular to the columns. These drain straps are schematically illustrated in Figures 6 and 7. As more rows are connected together, the effective drain resistance across the array is reduced because of the increased parallel connections. This allows more accurate analog programming due to the reduction of voltage changes along the drain line. Of course, as more drain lines are connected together, the drain capacitance increases, as does the program disturb. A trade-off must be made between the accuracy of analog programming, disturb and charge up time. A suitable number of drain lines to connect together may be 32 rows. In an array of, say, 1600 rowε, the benefits of capacitance reduction and disturb reduction are considerable (approximately 50 times leεε than if all rowε are connected) compared to a εingle drain line, yet the reεiεtance reduction is also εignificant (approximately 32 times) . Representation of digital numbers iε achieved by the addition of an A/D converter at the input and a D/A converter at the output. Figure 8 iε an illuεtration of the connection of the data converterε to the analog memory. The magnitude of the number, or the number of bitε in the digital word, iε given by the voltage range of the εtored analog level, divided by the guaranteed accuracy of storage. The accuracy of storage considerε, not only the increment during the programming εequence, but alεo factorε εuch as noise, worst case programming increment, long term voltage retention characteristics of the cell and the effects of ambient temperature and operating voltage. An analog memory of the type described in the present invention is able to resolve a voltage to about 10 millivolts over a range of 2.5 Volts. While this allows about 250 distinct levels and representation of 8 bits of binary information, after consideration of the above factors, the number of bits may be reduced to, say, 4 bits (16 levels spaced approximately 150 millivolts apart) . Nevertheless, 4 bitε to a single cell provides a significant improvement in the information storage density that can be achieved in a memory array, compared to the conventional digital εtorage which provides for only 1 bit per cell. While preferred embodiments of the present invention have been disclosed and described herein, it will be obvious to those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.

Claims: What is claimed is: 1. An analog voltage storage device comprising: an array of floating gate storage cellε, each for storing a respective analog voltage and for being erased dependent on the charge on the floating gate thereof; circuitry for erasing the storage cells of the array using Fowler-Nordheim tunneling of electrons; circuitry for reading out the voltage stored in each of the storage cells; and, circuitry for programming each of the storage cells uεing hot electron injection εo aε to read out a reεpective analog voltage. 2. The analog voltage εtorage device of claim 1 wherein the array of floating gate εtorage cells comprises an array of floating gate storage cells, each having a gate, a floating gate, and a source and drain defining a channel there between, the floating gate overlying a portion of the channel and a portion of the drain to provide an abrupt voltage change along the channel during programming. 3. The analog voltage storage device of claim 1 wherein the circuitry for programming each of the εtorage cells uεing hot electron injection so as to read out a reεpective analog voltage compriεeε circuitry for executing a plurality of program/read/compare cycleε for incrementally programming each of the storage cells until a read operation reads out a voltage substantially equal to the respective analog voltage. 4. The analog voltage storage device of claim 3 wherein the circuitry for programming each of the storage cells using hot electron injection compriseε circuitry for each program operation of the plurality of program/read/compare cycleε to provide up to a predetermined plurality of programming pulεeε to each of the storage cells before the next read operation of the next program/read/compare cycle, and wherein the circuitry for each compare operation of the program/read/compare cycleε compriεeε circuitry responsive to amount of cell programming left to be done for the respective cell to determine how many, if any, of the next predetermined plurality of programming pulses will be used during the next program operation of the program/read/compare cycle to program the reεpective cell. 5. The analog voltage storage device of any one of claims 1, 2, 3 or 4 wherein the array of floating gate storage cells is an array of floating gate storage cells having a plurality of rows and columns of storage cells, each storage cell having a gate, a floating gate, and a source and drain defining a channel there between, the drains of all storage cells in an adjacent pair of rows of storage cells being coupled to a common drain line. 6. The analog voltage storage device of claim 5 further comprised of a plurality of metal conductors connecting a plurality of drain lines together at different locations in the array. 7. The analog voltage εtorage device of any one of claimε 1, 2, 3 or 4 further compriεed of a digital to analog converter coupled to the circuitry for programming each of the εtorage cells to provide a distinct analog voltage thereto responsive to a multi¬ bit digital signal provided to the digital to analog converter, and an analog to digital converter coupled to the circuitry for reading out the voltage stored in each of the storage cells to convert an analog signal level read out of each of the storage cells to a respective multi-bit digital εignal. 8. The analog voltage εtorage device of any one of claimε 3 or 4 wherein the array of floating gate storage cells is an array of floating gate storage cells having a plurality of rows and columns of storage cells, each storage cell having a gate, a floating gate, and a source and drain defining a channel there between, the drains of all storage cells in an adjacent pair of rows of storage cells being coupled to a common drain line, each cell being incrementally programmed by one or more of a serieε of programming pulεeε, each programming pulεe compriεing a current pulεe of a predetermined current and duration. 9. The analog voltage εtorage device of claim 8 wherein a plurality of floating gate εtorage cells in a row of storage cells are programmed in parallel program/read/compare cycles initiated at the same time, the programming pulses for each floating gate storage cell, after a read operation for that cell reads out a voltage substantially equal to the respective analog voltage, being coupled to the common drain line, whereby the current in the drain line remainε εubstantially constant, independent of the number of the plurality of floating gate storage cells being programmed needing further programming. 10. The analog voltage storage device of claim 9 further comprised of a plurality of metal conductors connecting a plurality of common drain lines together at different locations in the array. 11. An analog voltage storage device comprising: an array of floating gate storage cells, each for storing a respective analog voltage and for being erased dependent on the charge on the floating gate thereof; circuitry for erasing the storage cells of the array using Fowler-Nordheim tunneling of electrons; circuitry for programming each of the storage cells using pulseε of current through each εtorage cell to provide hot electron injection to the floating gate so as to read out a respective analog voltage; and, circuitry for connecting each analog voltage storage cell as a source follower for reading out the voltage stored in each of the storage cells wherein changes to the voltage of the floating gate during programming are manifested directly as source changes of the storage cell during the read operation. 12. The analog voltage εtorage device of claim 11 wherein the array of floating gate εtorage cells comprises an array of floating gate storage cells, each having a gate, a floating gate, and a source and drain defining a channel there between, the floating gate overlying a portion of the channel and a portion of the drain to provide an abrupt voltage change along the channel during programming. 13. The analog voltage storage device of claim 11 wherein the circuitry for programming each of the storage cellε using hot electron injection so as to read out a respective analog voltage comprises circuitry for executing a plurality of program/read/compare cycles for incrementally programming each of the storage cells until a read operation reads out a voltage subεtantially equal to the respective analog voltage. 14. The analog voltage εtorage device of claim 13 wherein the circuitry for programming each of the εtorage cells using hot electron injection comprises circuitry for each program operation of the plurality of program/read/compare cycleε to provide up to a predetermined plurality of programming pulses to each of the storage cells before the next read operation of the next program/read/compare cycle, and wherein the circuitry for each compare operation of the program/read/compare cycles compriseε circuitry reεponεive to amount of cell programming left to be done for the respective cell to determine how many, if any, of the next predetermined plurality of programming pulses will be used during the next program operation of the program/read/compare cycle to program the respective cell. 15. The analog voltage storage device of any one of claims 11, 12, 13 or 14 wherein the array of floating gate storage cells is an array of floating gate storage cells having a plurality of rows and columns of εtorage cells, each storage cell having a gate, a floating gate, and a source and drain defining a channel there between, the drains of all storage cells in an adjacent pair of rows of storage cellε being coupled to a common drain line, 16. The analog voltage storage device of claim 15 further comprised of a plurality of metal conductors connecting a plurality of drain lines together at different locations in the array. 17. The analog voltage storage device of any one of claims 13 or 14 wherein the array of floating gate storage cells is an array of floating gate storage cells having a plurality of rowε and columns of εtorage cellε, each εtorage cell having a gate, a floating gate, and a source and drain defining a channel there between, the drains of all storage cells in an adjacent pair of rows of storage cells being coupled to a common drain line, each cell being incrementally programmed by one or more of a series of programming pulses, each programming pulεe comprising a current pulse of a predetermined current and duration. 18. The analog voltage storage device of claim 17 wherein a plurality of floating gate storage cells in a row of storage cells are programmed in parallel program/read/compare cycles initiated at the same time, the programming pulses for each floating gate storage cell, after a read operation for that cell reads out a voltage substantially equal to the respective analog voltage, being coupled to the common drain line, whereby the current in the drain line remains substantially constant, independent of the number of the plurality of floating gate storage cells being programmed needing further programming. 19. The analog voltage storage device of claim 18 further comprised of a plurality of metal conductors connecting a plurality of common drain lines together at different locations in the array. 20. The analog voltage storage device of any one of claims 11, 12, 13 or 14 further comprised of a digital to analog converter coupled to the circuitry for programming each of the storage cells to provide a distinct analog voltage thereto responsive to a multi¬ bit digital signal provided to the digital to analog converter, and an analog to digital converter coupled to the circuitry for reading out the voltage stored in each of the storage cells to convert an analog signal level read out of each of the εtorage cells to a respective multi-bit digital signal. 21. An analog voltage storage device comprising: a floating gate storage cell for storing an analog voltage and for being erased dependent on the charge on the floating gate thereof; circuitry for erasing the storage cell using Fowler-Nordheim tunneling of electrons; circuitry for reading out the voltage stored in the storage cell; and, circuitry for programming the storage cell using pulses of a predetermined current through the εtorage cell to provide hot electron injection to the floating gate so aε to read out a respective analog voltage. 22. The analog voltage storage device of claim 21 wherein the floating gate storage cell comprises a gate, a floating gate, and a source and drain defining a channel there between, the floating gate overlying a portion of the channel and a portion of the drain to provide an abrupt voltage change along the channel during programming. 23. The analog voltage storage device of claim 21 wherein the circuitry for programming the storage cell using hot electron injection so as to read out a respective analog voltage comprises circuitry for executing a plurality of program/read/compare cycleε for incrementally programming the εtorage cell until a read operation reads out a voltage substantially equal to the respective analog voltage. 24. The analog voltage storage device of claim 23 wherein the circuitry for programming the εtorage cell uεing hot electron injection compriεeε circuitry for each program operation of the plurality of program/read/compare cycles to provide up to a predetermined plurality of programming pulses to the storage cell before the next read operation of the next program/read/compare cycle, and wherein the circuitry for each compare operation of the program/read/compare cycles comprises circuitry responsive to amount of cell programming left to be done to determine how many, if any, of the next predetermined plurality of programming pulses will be used during the next program operation of the program/read/compare cycle to program the cell. 25. The analog voltage storage device of any one of claims 21, 22, 23 or 24 further comprised of an digital to analog converter coupled to the circuitry for programming each of the storage cells to provide a distinct analog voltage thereto reεponεive to a multi¬ bit digital εignal provided to the digital to analog converter, and an analog to digital converter coupled to the circuitry for reading out the voltage stored in each of the εtorage cells to convert an analog signal level read out of each of the storage cells to a respective multi-bit digital signal. 26. A method of programming a predetermined analog voltage into an analog voltage storage cell by executing a plurality of program/read/compare operations for incrementally programming the storage cell by program pulses until a read operation readε out a voltage εubstantially equal to the predetermined analog voltage comprising the steps of: (a) for each compare operation of a program/read/compare cycle, estimating the amount of programming remaining to be done until a read operation reads out a voltage substantially equal to the respective analog voltage; and, (b) for each program operation following a compare operation of step (a) , incrementally programming the storage cell by a number of program pulseε reεponεive to the amount of programming remaining to be done aε determined in εtep (a) . 27. The method of claim 26 wherein the number of program pulseε that may be uεed in εtep (b) compriεes a number ranging from zero to a predetermined maximum number. 28. The method of claim 26 wherein the accuracy of the correspondence between the voltage increments on the drain during programming and the signal added to the read voltage during reading which setε the number of program pulses within the group to be used in the next programming cycle is adjuεted at the time of manufacture of the analog voltage storage cell. 29. The method of claim 26 wherein for each read operation, the analog voltage storage cell is connected as a source follower wherein changes to the voltage of the floating gate during programming are manifested directly as εource voltage changes of the storage cell during the read operation. 30. Apparatus for programming a predetermined analog voltage into an analog voltage storage cell by executing a plurality of program/read/compare operations for incrementally programming the storage cell by program pulses until a read operation reads out a voltage substantially equal to the predetermined analog voltage comprising: circuitry for estimating the amount of programming remaining to be done for each compare operation of a program/read/compare cycle until a read operation reads out a voltage εubεtantially equal to the reεpective analog voltage; and, circuitry for incrementally programming the εtorage cell for each program operation following a compare operation by a number of program pulεeε reεponεive to the amount of programming remaining to be done. 31. The apparatuε of claim 30 wherein the circuitry for incrementally programming the εtorage cell for each program operation following a compare operation by a number of program pulεeε compriεeε circuitry for incrementally programming the εtorage cell for each program operation following a compare operation by a number of program pulεeε ranging from zero to a predetermined maximum number. 32. The apparatus of claim 30 further comprising programmable circuitry for adjusting, at the time of manufacture of the analog voltage storage cell, the accuracy of the correspondence between the voltage increments on the drain during programming and the signal added to the read voltage during reading which sets the number of program pulses within the group to be used in the next programming cycle. 33. The apparatus of claim 30 further comprised of circuitry for connecting the analog voltage εtorage cell aε a εource follower for each read operation wherein changes to the voltage of the floating gate during programming are manifested directly as source voltage changes of the storage cell during the read operation. 34. A storage device comprising: an array of floating gate storage cells arranged in a plurality of rows and columns, each floating gate storage cell of εaid array includes a gate, a floating gate, a source, and a drain, each drain of floating gate storage cells in an adjacent pair of εaid plurality of rowε being coupled to a common drain line; and circuitry for programming a firεt floating gate storage cell of a first row of said adjacent pair by applying a first plurality of pulseε having a first ramp voltage level to said drain of said at least one floating gate storage cell, and for programming a second floating gate storage cell of a εecond row of εaid adjacent pair by applying a second plurality of pulses having a second ramp voltage level, different from εaid firεt ramp voltage level, to εaid drain of εaid second floating gate storage cell. 35. The storage device according to claim 34, wherein said voltage level of εaid firεt and εecond plurality of pulses is adjuεtable independent from each other. 36. The storage device according to claim 34 further comprising a plurality of metal conductors connecting said common drain line with a plurality of other common drain lines coupling together floating gate storage cells of other adjacent rows in said array. 37. The storage device according to claim 34, wherein said circuitry using hot electron injection to apply a load current to said source common to εaid first floating gate storage cell and said second floating gate storage cell, said load current being approximately one microampere. 38. A storage device comprising: an array of floating gate εtorage cellε arranged in a plurality of rowε and columns, each floating gate εtorage cell of said array includes a gate, a floating gate εeparated from εaid gate by an insulative layer, a source, and a drain, each drain of floating gate εtorage cellε in an adjacent pair of said plurality of rows being coupled to a common drain line; and circuitry for programming at least one floating gate storage cell of εaid array using a series of programming pulses, said circuitry using hot electron injection for each programming pulse to apply a limited load current to said source of said at least one floating gate storage cell for a predetermined duration to cause an incremental threshold voltage change of said at least one floating gate storage cell for each programming pulse. 39. The storage device according to 38, wherein said circuitry applies said load current being approximately one microampere in order to reduce said threshold voltage change by no more than 0.10 volts for each programming pulse.

Inventors: BLYTH TREVOR, SIMKO RICHARD T, BLYTH, TREVOR, SIMKO, RICHARD, T.
Applicants: INFORMATION STORAGE DEVICES, INFORMATION STORAGE DEVICES, INC.
Application year: 1996
Main classification: G11C7
IPC codes: G11C11, G11C16, G11C27