Selective fuse encoder

Abstract: A coding device including an array of multibit registers, each being composed of a plurality of programmable nonvolatile memory cells connected in an OR configuration to a common sensing line of the register to which a single reading circuit is associated. A first, select/enable bus (SELbus) controls the connection of only one at a time of said programmable memory cells to said common sensing line of each multibit register. To each wire of a second, configuring bus (CODE bus) are connected in common the current terminals of as many programming transistors as the memory cells that compose each register, and to each wire of a third, contingently programming bus (PG bus) are connected the gates of the programming transistors of memory cells of the same order of said registers.

Description: The present invention relates in general to logic coding circuits for implementing redundancy systems, substituting circuit blocks, modifying a data flow, changing the function performed by a certain integrated circuit or the like. Concurrently with the development of integration technologies that allow to "compact" in single chip ever more complex and/or diversified systems, eventually with the ability of being subsequently adapted to particular specifications of users, a need has arisen for implementing in the same integrated circuit redundancy systems and/or special circuits that though a programming performed on the finished device, permit to replace and/or modify particular functions of certain integrated circuits and/or modifying the circuit flows. These redundancy, configuration/reconfiguration facilities permit to recover an appropriate performance of the integrated device, fully meeting the specs after detection of a defect of an intervening failure of circuit component, thus preventing the often nonnegligible economic loss of discarding the whole device. Of course, these configuration/reconfiguration circuits may also allow to adapt a certain device to particular requirements of the user, thus making possible a great saving in terms of design and fabrication of devices covering diversified requirements. Complex optimization evaluations of the design of new devices, take into consideration statistical data pertaining to the particular fabrication process in order to determine an optimum cost/benefit ratio in defining the total number of these redundancy/configuration/reconfiguration circuits to be implemented in a certain integrated device. The cost being represented by the silicon area to be destined to these circuits. A typical application of these circuits is represented by the redundancy systems of read only memory arrays. It is evident that for fabricating memory devices with ever increasing capacities (for example 16Mbit memory devices), it would be an intolerable economic hazard to be obliged to discard the device because of the failure or erratic performance of a single bit. In these, as well as in an innumerable similar situations, it is mandatory from an economic point of view, to design and implement in the same device, a certain number of spare bitlines and wordlines to be used (to be addressed) in substitution of one or more bitlines or wordlines found to be defective by a dedicated control circuitry and therefore substitute them with an equal number of spare (redundant) lines. In these redundancy systems, as well as in other similar systems for configuring or reconfiguring a certain integrated circuit in order to modify the data stream, beside recognizing the need to implement a certain modification, it is necessary to establish in a univocal way the identification of the pertinent circuit section or the identification of the chosen alternative path. Such an identification may be implemented in a direct manner in relatively simple situations or in a coded form, that is in an intrinsically more powerful but relatively complex manner. Recourse to a coding is necessary especially in applications where the circuit blocks that are designed for an eventual modification of the path of the data stream therethrough are relatively numerous and/or when the locations at which an intervening need of modifying a certain path is recognized and signaled, are physically far away from the circuit blocks in which the path modification must be implemented. In these situations, the coding is performed at the locations where the need of a certain modifying intervention is recognized and, through a "contained bus" structure, the codes so generated are decoded in the circuit blocks where the modification will be implemented. The document US Patent No. 4,546,454 discloses a non-volatile memory cell circuit useful for replacing a polysilicon fuse as an enabling element for a redundant row or column of memory cells in a semiconductor memory array. The fuse circuit is divided into read and program sections, allowing for a large size device to be used for reading and a small size device to be used for programming, thus permitting programming of all fuses in a redundant row simultaneously with minimum current consumption. The circuit may be embodied as a five-device or a four-device configuration. According to a traditional architecture, a state or logic configuration corresponding to a certain contingent code that identifies for example the existence of a failure in a certain bitline or in a certain wordline of a memory cell array, is permanently recorded (programmed) in one or more nonvolatile memory elements which are read continuously. The code that results from the reading of a so stored information and which identifies for example a certain redundant bitline or wordline onto which the data stream must be readdressed every time the bitline or wordline that has been recognized as failed is stimulated, is eventually enabled to be decoded at a distance by a dedicated local decoding network in order to produce its effect at a certain circuit junction so identified by the code. The writing of each nonvolatile memory element must be produced by appropriately biasing the control gate and the drain of the nonvolatile memory element, employing programming circuits that can be stimulated by contingent conditions, according to a general scheme as shown in Fig. 1. Substantially, a coding unit cell is commonly composed substantially by three transistors or similar devices: a memory cell M, which may be a FLASH-EPROM or EEPROM cell, a programming transistor Mp and a select transistor Ms, respectively. The three devices are controlled through three configuring lines, typically: a DATA CODE line, a PGcnt and VDcnt line and a code enable CODE EN line, respectively, as shown in the scheme of Fig. 1. The managing circuits of the unitary register or cell composed of the three devices M, Mp and Ms, are schematically indicated in Fig. 1 by respective blocks. These comprise a circuit for generating a programming voltage VP GEN, a circuit for generating a programming voltage PG HV GEN, a circuit for generating a programming voltage for the control gate of the memory element M CG HV GEN, a circuit for generating a read biasing voltage RD VOLTAGE, a circuit for generating a control voltage for the select transistor VD VOLTAGE GEN, as well as a reading circuit of the state of the nonvolatile memory element DET CIRCUIT. The nonvolatile memory element M is read continuously and by the enable signal CODE EN, a certain effect of readdressing may be produced by a local decoding circuit at a certain location of the integrated circuit. Of course, in case of systems requiring a multibit coding, it is common practice to constitute multibit registers by employing the required number of unit register (cells) as the one schematically depicted in Fig. 1. As may be observed, each unit cell of a multibit register includes its own reading circuit (DET CIRCUIT) as well as an enabling circuit, which must therefore be modularly repeated a number of times equal to the number of bits of the coding register. There is therefore a need and/or utility for a programmable register for coding purposes having a simpler structure than the known registers. These and other objectives that will be identified in the ensuring description are obtained by the present invention as claimed by claims 1 and 4 that offers important advantages if compared with the known architectures. According to a first aspect of the invention, an elementary coding structure comprises at least a nonvolatile memory element capable of assuming and/or retaining a state corresponding to a certain binary code by eventually programming it through a programming transistor which has a current terminal connected to a coding line and a gate controlled by a contingent programming signal which controls also the biasing of a control gate of the nonvolatile memory element. By contrast, a select transistor is controlled through its gate terminal by a signal that enables the reading of the state of the nonvolatile memory element. Therefore, the elementary coding cell is controlled through just two "configuring" lines and a "customizing" line (i.e. the read enabling line). Programming of the nonvolatile memory element may take place by applying a relatively high voltage to its control gate as well as to the gate of the programming transistor. By applying a logic high signal to the current terminal (drain terminal) of the programming transistor through the coding line a permanent increase of its threshold may be produced (setting it in a nonconductive state) conversely by applying a logic low signal the threshold of the virgin memory element is kept low (setting it in a state). The reading of the state of the memory element may take place only by enabling it through a relative select/enable transistor. This architecture of elementary coding cell permits to form multibit registers that advantageously employ a single reading circuit, by permitting the connection in an OR configuration of all the elementary cells that compose the multibit register to a single sensing line common to all the cells of the register. This greatly simplifies the circuit, saves integration area and reduces current consumption. The different aspects and advantages of the invention, will become evident through the following description of several important embodiments and by referring to the annexed drawings, wherein: Figure 1 is a basic diagram of an elementary coding cell according to a known technique; Figure 2 is a basic diagram of an elementary coding cell according to the present invention; Figure 3 schematically shows a coding system employing a plurality of multibit registers made according to the present invention; Figure 4 shows an alternative embodiment of a coding system employing a plurality of multibit registers according to the present invention. With reference to Fig. 2, an elementary coding cell (fuse) of the invention, is basically composed of three elements: a nonvolatile memory element or transistor M which may be a FLASH-EPROM or an EEPROM cell or the like, a programming transistor Mp and a select-enable transistor Ms. Of course, the nonvolatile memory element may be single or composed of several elements connected in parallel with each other, rationally in a maximum number of two, as indicated in Fig. 2 by phantom (dash) lines and by the symbol of a second nonvolatile memory element Mbis. The block PG-GC-HV-GEN represents a common circuit for generating a programming voltage suitable to properly bias the gate of the programming transistor Mp and the control gate of the nonvolatile memory element(s) M (Mbis) in response to a contingent programming command Pgcnt. A current terminal (drain) of the programming transistor Mp, which is functionally connected in series with the memory element M (or duplicated elements M and Mbis), is connected to a second configuring line, DATA CODE, carrying the datum to be stored in the nonvolatile memory element M (or in M and Mbis). A select-and-enable transistor Ms is normally in an off condition and turns on in response to an enable signal, CODE EN, eventually applied to its control gate for enabling the reading of the information stored in the memory element M (Mbis) and thus generating a certain logic code (CODE) by means of a reading circuit DET CIRCUIT. The block RD VOLTAGE represents a common circuit for maintaining a correct reading bias on the control gate of the memory element M or elements M and Mbis. A system for generating a code composed by an n+1 number of bits is shown in a simplified manner in Fig. 3. The generated multibit code may then be decoded at the location where a certain readdressing should be eventually produced. The coding system employs the same number n+1 of multibit registers which in the example shown are four-bit registers made according to the present invention. An enable (customizing) command, that is the CODE EN signal of Figures 1 and 2, is applied to the four elementary cells that compose each of the n+1 registers through the select-enable bus SELbus<Ø:n>. Similarly, the programming transistor of each of the four elementary cells that compose each of the n+1 registers is controlled through its gate by a contingent programming command: PGØ, PG1, PG2 and PG3 through the bus PG<Ø:3>. The drains of the four programming transistors of each multibit register are connected in common to a respective wire of the n+1 wires of the configuring CODE BUS <Ø:n>. According to the shown example, the four elementary cells that compose each of the n+1 registers are connected in an OR configuration to a common sensing line CDL that constitutes an input node of a single reading circuit associated to each one of the n+1 registers. The common sensing line CDL of each multibit register constitutes the input of a reading circuit that may be of a differential type (as shown in the figure) or even of a single-ended type. According to well known techniques, the reading circuit or sense amplifier, may employ a reference system that may be of various types; for example it may be of the so-called load-unbalance type (UCDC) or of the type employing a dedicated generator of a certain offset current, commonly a current that is twice or a half of the current absorbed by a virgin nonvolatile memory element (CDC). In the case depicted in Fig. 3, the single reading circuit CDC of each register is of a differential type, employing a reference line and a generator HCCSG of an offset current (half-cell source generator) and a control switch commanded by the CNT signal. The select/enable bus SELbus, through which the reading of the stored data (and consequently the generation and decodification at a distance of the produced code), may have only one line of its four lines of the example shown, namely: SØ, S1, S2 and S3 in Fig. 3, at a logic high level ("1"). Therefore, in case two or more codes must be generated simultaneously, it is necessary to repeat the selection relative to the second and eventual further configurations. In other words, each line or wire of the select bus SELbus connects one and only one bit of each register to the common sensing node CDL of the register. The set of states of the n+1 sense amplifiers (CDC) constitutes the configuration of the stored code, which will be decoded at distance in the location where a certain modification of the data stream or of the functions of a certain circuit must be produced. An alternative embodiment of an array of coding registers similar to the one of the example of Fig. 3 is shown in Fig. 4. According to this alternative embodiment, each elementary cell of each multibit register employs a pair of nonvolatile memory elements connected in parallel and each register employs a differential type sense amplifier UCDC of the unbalanced-load type, according to a well known technique. The reduction of the number of configuring and enabling lines that are substantially three instead of four as in the known systems, and the consequent simplification of the control circuitry, together with the use of a single sense amplifier for each multibit register, determine a remarkable reduction of the area requirement and of consumption. These advantages become more and more important the larger is the number of codes and of the set of decoding sections to be realized.

Claims: A coding device comprising an array of n+1 multibit registers each composed of N programmable nonvolatile memory cells (M, Mp, Ms), whereby each programmable nonvolatile memory cell (M, Mp, Ms) comprises a nonvolatily programmable element (M), a programmaing transistor (Mp) and a select transistor (Ms); said programmable nonvolatile memory cells (M, Mp; Ms) of each multibit register are functionally connected in an OR configuration to a common sensing line (CDL) of the respective multibit register; a single reading circuit (CDC) is associated to each multibit register and has an input connected to said common sensing line (CDL); said device further comprising a first select/enable bus (SELbus) for connecting in each of the n+1 multibit registers a single nonvolatile programmable memory cell (M, Mp, Ms) at one time to said common sensing line (CDL), said first select/enable bus (SELbus) comprising N wires, whereby, in each of the n+1 multibit registers, each of the N wires of said first select/enable bus (SELbus) is connected to the gate of one of the N select transistors (Ms) of the N programmable nonvolatile memory cells (M, Mp, Ms) of the respective multibit register; a second configuring bus (CODEbus) comprising n+1 wires, whereby each of the n+1 wires of said second configuring bus (CODEbus) is connected to the current terminals of the N programming transistors (Mp) of all the N nonvolatily programmable memory cells (M, Mp, Ms) of one of said n+1 multibit registers; a third programming bus (PGbus) comprising N wires, whereby, in each of the n+1 multibit registers, each of the N wires of said third programming bus (PGbus) is connected to the gate of one of the N programming transistors (Mp) of the N programmable nonvolatile memory cells (M, Mp, Ms) of the respective multibit register. The coding device as defined in claim 1, wherein said nonvolatile memory element (M) is chosen among the elements belonging to the group composed of FLASH-EPROM and EEPROM cells. The coding device according to claim 1, characterized by employing two nonvolatile memory elements (M) functionally connected in parallel with each other. A coding method for generating a certain n+1 bit code in function of a certain enable command, comprising the steps: nonvolatily recording N codes, each composed of n+1 bits, in an N*(n+1) number of programmable memory cells (M, Mp, Ms), each of said N cells belonging a different one of n+1 multibit registers, each composed of N programmable nonvolatile memory cells (M, Mp, Ms) connected in an OR configuration to a common sensing line (CDL) of the register and constituting an input node of a single reading circuit (CDL) producing a certain bit of said n+1 bit code; in said nonvolatily recording step, a programming of said programmable memory cells takes place in function of the current configuration of the logic states of n+1 wires of a configuring bus (CODEbus), in which each of the n+1 wires of said configuring bus (CODEbus) is connected to the current terminals of N programming transistors (Mp) of all the N nonvolatily programmable memory cells (M, Mp, Ms) of one of said n+1 multibit registers; and in function of the current configuration of the logic states of N wires of a programming bus (PGbus), in which, in each of the n+1 multibit registers, each of the N wires of said programming bus (PGbus) is connected to the gate of one of the N programming transistors (Mp) of the N programmable nonvolatile memory cells (M, Mp, Ms) of the respective multibit register; selecting in function of the current configuration of the logic states of the N wires of a select bus (SELbus) a particular cell (M, Mp, Ms) of the N cells that compose each of said n+1 multibit registers for generating said n+1 bit code corresponding to a certain programming of the N cells that compose said n+1 registers.

Inventors: PASCUCCI LUIGI, PASCUCCI, LUIGI
Applicants: ST MICROELECTRONICS SRL, STMICROELECTRONICS S.R.L.
Application year: 1995
Main classification: G11C16
IPC codes: G11C16, G11C29