1. Field of the Invention
The present invention relates to electrical devices, and more particularly to methods and circuits for programming of antifuses.
2. Description of Related Art
Programmable semiconductor devices include programmable read only memories ("PROMs"), programmable logic devices ("PLDs"), and programmable gate arrays. Programmable elements suitable for one or more of these device types include fuses and antifuses.
A fuse is a structure which electrically couples its first electrode to its second electrode, but which, when programmed by passage of sufficient current between its electrodes, electrically decouples the first electrode from the second electrode.
An antifuse is a structure which when unprogrammed does not electrically couple its first and second electrodes, but which, when programmed, permanently electrically couples the first and second electrodes. An antifuse is programmed by applying sufficient voltage ("programming voltage") between its first and second electrodes. One type of antifuse comprises a high resistivity material in which a low resistivity filament is formed when the material is heated by electrical current. Amorphous silicon, silicon dioxide and silicon nitride have been used successfully as the high resistivity materials. See, for example, U.S. Pat. No. 4,823,181 issued Apr. 18, 1989 to Mohsen et al.; B. Cook et al., "Amorphous Silicon Antifuse Technology for Bipolar PROMs," 1986 Bipolar Circuits and Technology Meeting, pages 99-100.
An antifuse, when programmed, should have a low resistance. It was generally believed that in order to obtain lower resistance one needs to raise "programming" current (the current passing through the antifuse during programming). Namely, the physics of antifuse programming was believed to be as follows. When the programming voltage is applied between the antifuse terminals, the high resistivity material breaks down at its weakest portion. Current flows through that portion and heats the material. The heat creates a conductive filament through the material. As the filament grows in size, the resistance across the material decreases. Hence the temperature of the material also decreases. Gradually the temperature becomes so low that the conductive filament stops growing. See Hamdy et al., "Dielectric Based Antifuse for Logic and Memory ICs," IEDM 1988, pages 786-789. In order to reduce the resistance further, the current has to be increased so as to generate more heat.
It was confirmed experimentally that a higher programming current does provide a lower resistance. However, the current in a programmable circuit cannot be increased indefinitely because high current can damage circuit devices. Thus, it is desirable to find a programming method that provides a low antifuse resistance while using a low programming current.
Further, the resistance of the programmed antifuse varies from one antifuse to another even among antifuses of the same general construction, and even when the same technique is used to program the antifuses. Since the resistance is variable, designers and users of circuits with antifuses have to accommodate a wide range of antifuse resistances. There is a need for a programming method that would make the resistance less variable.
A typical programmable circuit (for example, a gate array) contains hundreds or thousands of antifuses. The programming circuit must address the antifuses being programmed so as to program only those antifuses. At present, addressing circuits typically require a decoder. The decoder makes the programming circuit more complex. See, for example, U.S. Pat. No. 4,873,459 issued Oct. 10, 1989 to El Gamal et al.
It is desirable to provide a simpler programming circuit suitable for use in programmable circuits with many antifuses. In addition, such a programming circuit should consume little power. Further, the programming circuit should program a large number of antifuses fast.