Abstract:
A data input circuit outputs input data in accordance with a write enable signal. A program control circuit generates different data items on the basis of the input data output from the data input circuit and the write enable signal, and turns programming transistors on/off in accordance with the different data items as generated. The programming transistors are connected to a pair of cell transistors forming an EPROM cells, and program into these cell transistors the different data items generated by the write control circuit. A timing circuit delays the timing at which the write enable signal is supplied to the write control circuit, until the input data is established within the data input circuit.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to a programing circuit for programming data into, for example, an EPROM (Erasable Programmable Read Only Memory), and more particularly to a programming circuit for use in a nonvolatile semiconductor memory device comprising a plurality of memory cells (hereinafter referred to as differential cells), each including a pair of cell transistors into which different data items are programmed in accordance with input data. 
     2. Description of the Related Art 
     When data is programmed an EPROM cell, for example, a high voltage is applied to the drain and control gate of the cell transistor included in the cell array, such that hot electrons flow from a channel region into the floating gate of the cell transistor, raising the threshold voltage of the cell transistor. 
     FIG. 5 shows a conventional programming circuit. A data input circuit 11 includes a NOR circuit 11a and an inverter circuit 11b which are connected in series. A write enable signal WE (holding the level &#34;L&#34; in a programming mode) and input data Din are supplied to the NOR circuit 11a. A program control circuit 12 is connected to the output terminal of the data input circuit 11. The program control circuit 12 includes a level shift inverter circuit 12a and a programming transistor 12b. The level shift inverter circuit 12a, whose input terminal is connected to the output terminal of the inverter circuit 11b, converts a 5 V signal into a 12.5 V signal, for example. The gate, drain, and source of the programming transistor 12b are respectively connected to the output terminal of the level shift inverter circuit 12a, a power supply V pp , and the drain of the cell transistor included in a memory cell (not shown). 
     The circuit shown in FIG. 6, for example, is employed as the level shift inverter circuit 12a. 
     In FIG. 6, an N-channel transistor N1 and a P-channel transistor P1 form an inverter circuit, the current path of the transistor N1 and that of the transistor P1 connected in series. The gate of the transistor N1 is connected to an input terminal IN, and the sources of the transistors N1 and P1 both are connected to an output terminal OUT. Transistors N2 and N3, whose current paths are connected in series between the input terminal IN and the gate of the transistor P1, are protection transistors which cut the current path between V cc  and V PP . The gate of the transistor N2 is connected to a power supply V cc  of e.g. 5 V. The gate of the transistor N3 and the source of the transistor P1 are coupled via a transistor N4 to a power supply V pp  of e.g. 12.5 V. Transistors P2 and N5, which are connected to the gate of the transistor N3 and the sources of the transistors P1 and P3, form a leak circuit which keep the source level of transistors P1 and P3 stable. Further, a transistor P3 is connected between the source and gate of the transistor P1, and the gate of the transistor P3 is connected to the output terminal OUT. The transistor P3 is designed to feed back an output voltage to the gate of the transistor P1 so as to certainly turn the transistor P1 off when a signal having the level &#34;1&#34; is input from the input terminal IN. 
     When data is programmed into a cell transistor (not shown), the data input circuit 11 shown in FIG. 5 generates input data Din* on the basis of a write enable signal WE and the input data Din. The data Din* as generated is supplied to the transistor 12b through the level shift inverter circuit 12a such that the transistor 12b is turned on/off, thus allowing data to be programmed into the cell transistor. 
     When differential cells are used as memory cells, the program control circuit 13 shown in FIG. 7 is conventionally employed. The same circuit elements as those shown in FIG. 5 will be denoted by the same reference numerals in FIG. 7, and only the circuit elements which are not shown in FIG. 5 will be described in the following. 
     In the program control circuit 13 shown in FIG. 7, the input terminal of an inverter circuit 13a is connected to the output terminal of the data input circuit 11. The output terminal of the inverter circuit 13a is connected to one input terminal of a NAND circuit 13b, as well as to one input terminal of a NAND circuit 13d via an inverter circuit 13c. The input terminal of an inverter circuit 13e is connected to one input terminal of the NOR circuit 11a. The output terminal of the inverter circuit 13e is connected to the other input terminal of the NAND circuit 13b, and also to the other input terminal of the NAND circuit 13d. The write enable signal WE is supplied to the NAND circuits 13b and 13d through the inverter circuit 13e. The output terminal of the NAND circuit 13b is connected to the gate of a programming transistor 13h via a level shift inverter circuit 13f, while the output terminal of the NAND circuit 13d is connected to the gate of a writing transistor 13i via a level shift inverter circuit 13g. The configuration of each of the level shift inverter circuits 13f and 13g is as shown in FIG. 6. 
     In a programming mode, the program control circuit 13 programs different data into a pair of cell transistors in accordance with input data. In a non-programming mode, the program control circuit 13 prevents a high voltage from being applied to the drains of the cell transistors, by using the write enable signal WE. 
     In the programming mode, the write enable signal may hold the level &#34;H&#34;, depending upon the circuit logic employed. 
     Incidentally, a pair of cell transistors included in a differential cell have the same low threshold voltage before data is programmed therein. That is, the cell transistors are both in the &#34;1&#34; state. When data is programmed into the differential cell, two different data are generated by the program control circuit 13 in accordance with the input data. The different data as generated are programmed into the cell transistors by a programming transistor. 
     In the conventional programming circuit shown in FIG. 7, the data input circuit 11 and the program control circuit 13 are simultaneously placed in an operation state by the write enable signal WE. In practice, however, after the program control circuit 13 has been placed in an operation state, there is a time until the data input circuit 11 outputs the data Din* (this will be hereinafter referred to as &#34;until the input data Din* is established within the data input circuit 11&#34;). If there is a relatively long time until the input data Din* is established, a pair of cell transistors may be erroneously programmed. The data is temporarily written into the erroneously selected cell transistor of paired cell transistors, as a result of which the threshold voltage of one of them increases. Thereafter, when the input data Din* is established, the cell transistor in which the data is to be programmed is selected and the data is programmed therein, with the result that the threshold voltage of one of them increases. The cell transistor, whose threshold voltage has increased, is in the &#34;0&#34; state. 
     Thus, when a cell transistor of a paired cell transistors is erroneously selected and data is programmed into the cell transistor selected, the threshold voltage of erroneously selected cell transistor increases and remains as is. The cell transistor whose threshold voltage has thus substantially increased is in the &#34;0&#34; state, while the other cell transistor is in the &#34;1&#34; state. In this case, the difference between the threshold voltages of the two cell transistors is smaller than that between the threshold voltages of another pair of cell transistors in which data has been programmed without a write error. 
     When data is read out from a differential cell, the difference between the threshold voltages of the cell transistors included in the differential cell is detected as the difference between the currents flowing through the cell transistors. A sense amplifier amplifies the current difference and outputs it as data. If, however, the difference between the threshold voltages of the cell transistors is small, the sense amplifier cannot detect it, resulting in a low read-out speed or incorrect data being output from the sense amplifier. 
     SUMMARY OF THE INVENTION 
     It is therefore the object of the present invention to provide a programming circuit which is used in a nonvolatile semiconductor memory device and by which input data is accurately and reliably programmed into cell transistors. 
     To attain the above object, the programmed circuit of the present invention comprises a data input circuit to which input data is supplied; nonvolatile cell transistors into which data is programmed in accordance with the input data; a programming transistor, connected to the cell transistors, for programming data therein in accordance with the input data output from the data input circuit; and a timing circuit for delaying the timing at which the programming transistor is turned on, until the input data is established within the data input circuit. 
     According to the present invention, the timing at which the programming transistor is turned on is delayed by the delay circuit until the input data is established within the data input circuit, thus preventing a program error, a read-out speed from being lowered, and incorrect data from being output. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate a presently preferred embodiment of the invention, and together with the general description given above and the detailed description of the preferred embodiment given below, serve to explain the principles of the invention. 
     FIG. 1 is a diagram showing the configuration of the programming circuit according to an embodiment of the present invention; 
     FIG. 2 is a diagram showing the configuration of a part of the circuit shown in FIG. 1; 
     FIG. 3 is a diagram showing the configuration of one of the circuit elements shown in FIG. 2; 
     FIG. 4 is a diagram showing the configuration of one of the circuit elements shown in FIG. 3; 
     FIG. 5 is a diagram showing the configuration of a conventional programming circuit; 
     FIG. 6 is a diagram showing an example of a level shift circuit; and 
     FIG. 7 is a diagram showing the configuration of a conventional programming circuit which differs in type from that shown in FIG. 5. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     An embodiment of the present invention will now be described in the following, with reference to the drawings. 
     In FIG. 1, a differential cell array 31 comprises a first memory cell array 32 and a second memory cell array 33. The first memory cell array 32 includes EPROM cells 32a and transistors 34 used for selection of the cells 32a. On the other hand, the second memory cell array 33 includes EPROM cells 33a and transistors 35 used for selection of the cells 33a. The control gates of the cells 32a and 33a are connected to an X decoder 36, and the gates of the transistors 34 and 35 are connected to a Y decoder 37. A selection is performed among the cells 32a and 33a by the X and Y decoders 36 and 37. More precisely, a pair of memory cells are selected from the first and second memory cell arrays 32 and 33 by the X and Y decoders 36 and 37. 
     The first and second memory cell arrays 32 and 33 are connected to a sense amplifier 38 and a program control circuit 13. The sense amplifier 38 amplifies the difference between the currents output from a pair of memory cells which are selected from the first and second memory cell arrays 32 and 33, and outputs the amplified difference as data. One input terminal of the program control circuit 13 is connected to the output terminal of a data input circuit 11. A write enable signal WE (holding the level &#34;L&#34; in a programming mode) is supplied to one input terminal of the data input circuit 11, and input data Din is supplied to the other input terminal of the data input circuit 11. A timing circuit 21 is provided between one of the two input terminals of the data input circuit 11 and the other input terminal of the program control circuit 13. 
     The configuration of each of the data input circuit 11, the program control circuit 13, and the timing circuit 21 will be described below, with reference to FIG. 2. 
     In FIG. 2, the data input circuit 11 includes a NOR circuit 11a and an inverter circuit 11b which are connected in series. The write enable signal WE is supplied to one input terminal of the NOR circuit 11a, and the input data Din is supplied to the other input terminal of the NOR circuit 11a. The output terminal of the NOR circuit 11a is connected to the program control circuit 13 via the inverter circuit 11b. 
     In the program control circuit 13, the input terminal of an inverter circuit 13a is connected to the output terminal of the data input circuit 11, i.e. the output terminal of the inverter circuit 11b. The output terminal of the inverter circuit 13a is connected to one input terminal of a NAND circuit 13b, and also to one input terminal of a NAND circuit 13d via an inverter circuit 13c. 
     Further, one of the two input terminals of the NOR circuit 11a included in the data input circuit 11 is connected to the input terminal of an inverter circuit 13e via the timing circuit 21. In the case where the write enable signal WE changes from the level &#34;H&#34; to &#34;L&#34;, the timing circuit 21 delays output of the write enable signal WE until the input data is established within the data input circuit 11. In the case where the write enable signal WE changes from the level &#34;L&#34; to &#34;H&#34;, the timing circuit 21 outputs the write enable signal WE without delaying it. 
     The output terminal of the inverter circuit 13e is connected to the input terminal of the NAND circuit 13b and also to the other input terminal of the NAND circuit 13d. The output terminal of the NAND circuit 13b is connected to the gate of a programming transistor 13h via a level shift inverter circuit 13f, while the output terminal of the NAND circuit 13d is connected to the gate of a programming transistor 13i via a level shift inverter circuit 13g. The drains of the programming transistors 13h and 13i are connected to a power supply V pp , and the sources of the transistors 13h and 13i are connected to a pair of cell transistors forming a differential cell. In addition, the configuration of each of the level shift inverter circuits 13f and 13g is as shown in FIG. 6. 
     FIG. 3 is a diagram showing an example of the timing circuit 21. 
     The write enable signal WE is supplied to one input terminal of a NOR circuit 21a, and also to the other input terminal of the NOR circuit 21a via a delay circuit 21b. An inverter circuit 21c is connected to the output terminal of the NOR circuit 21a. 
     FIG. 4 is a diagram showing an example of the delay circuit 21b. 
     The delay circuit 21b includes inverter circuits 21d-21g which are connected in series, a P-channel transistor 21h whose gate is connected between the inverter circuits 21d and 21e, an N-channel transistor 21i, a P channel transistor 21j whose gate is connected between the inverter circuits 21e and 21f, and an N-channel transistor 21k. 
     The delay time of the delay circuit 21b described above is determined by the capacitances of the gates of the transistors 21h-21k. 
     When the write enable signal WE changes from the &#34;H&#34; level to &#34;L&#34; in the timing circuit 21 shown in FIG. 3, a change in the signal level at that one of the two input terminals of the NOR circuit 21a which is connected to the output terminal of the delay circuit 21b occurs the above delay time later than a change in the signal level at the other input terminal of the NOR circuit 21a. As a result, the write enable signal WE* which is output from the timing circuit 21 changes from the level &#34;H&#34; to &#34;L&#34; after the lapse of the above delay time. Therefore, in the program control circuit 13 which receives the write enable signal WE*, a selection of a pair of cell transistors is performed in accordance with an established input data Din* supplied from the data input circuit 11. The data is programmed into the cell transistors thus selected. 
     On the other hand, when the write enable signal WE  changes from the level &#34;L&#34; to &#34;H&#34;, a change in the signal level at that one of the two input terminals of the NOR circuit 21a which is connected to the output terminal of the delay circuit 21b occurs the above delay time 5 later than a change in the signal level at the other input terminal of the NOR circuit 21a. However, the write enable signal WE* which is output from the timing circuit 21 changes to the level &#34;H&#34; simultaneously with the level change from &#34;L&#34; to &#34;H&#34; in the write enable signal WE. As a result, a writing operation of program control circuit 13 is stopped as soon as the write enable signal WE changes to the level &#34;H&#34;. 
     Thus, until the input data is established within the data input circuit 11, the write enable signal WE which is supplied to the program control circuit 13 is delayed by the timing circuit 21 and is supplied to the program control circuit 13. This enables data to be programmed into only one transistor of the paired transistors into which data is to programmed written, thus preventing a program error. 
     Further, the write enable signal WE* which is output from the timing circuit 21 changes to the level &#34;H&#34; simultaneously with the level change from &#34;L&#34; to &#34;H&#34; in the write enable signal WE. Accordingly, the programming mode can be quickly changed to the non-programming mode. 
     The configuration of each of the timing circuits 21 and the delay circuit 21b is not limited to that described in the above embodiment. 
     Needless to say, various modifications are possible without departing from the scope of the present invention.