The present invention relates generally to latch circuits and more particularly to latch circuits that can operate in conjunction with programmable elements, such as antifuses, or the like.
Electronic systems can typically include a data storage capability. For example, bi-stable circuits, such as flip-flops can maintain a data value in one of two binary logic values depending upon an input to the flip-flop. One commonly used bi-stable circuit that can maintain a logic value until another value is written or rewritten, is a latch.
A latch can take a number of different forms. For example, a latch can include cross-coupled inverters that can latch a data value on complementary data nodes until a new data value is rewritten. Such latches are often used as static random access memory (SRAM) cells. An SRAM type latch can store true and complementary logic values. Such stored data values can be read when, for example, an execution unit fetches data from an addressed storage cell.
Unlike memory cells that can require periodic refresh, an SRAM type latch can retain stored data without requiring refresh until such a time as power is removed from the latch. However, there are many applications in which it is desirable for a data value to be retained even in the absence of power. Thus, many conventional applications include both a volatile storage circuit and a nonvolatile storage circuit.
Typically, a volatile memory is situated within an integrated circuit that is separate from an integrated circuit including a nonvolatile memory. There may be instances, however, where both volatile and nonvolatile storage elements are included in the same integrated circuit. In such instances, data targeted for volatile storage elements can be generally altogether different from the data targeted for the volatile storage elements. For example, the different data sets may be for different applications.
However, in some applications, it may be desirable to utilize a storage device having both volatile and nonvolatile features for the same data value. For example, if data is to be temporarily held while power is present, a storage device can utilize a latch into which data can be written and thereafter read. However, if the data stored is of sufficient importance, the data could be maintained after power is removed by storing the data value into a nonvolatile storage element. Such a desired storage device could function essentially as a latch, but also include nonvolatile storage for latched data. Such a circuit can be considered a “programmable” latch.
Conventional programmable latches can utilize antifuse devices as nonvolatile storage elements. An antifuse device can have a first, relatively high impedance, in an unprogrammed state, and a second, relatively low impedance, in a programmed state. Due to process and other variations, the programming response for antifuse devices can vary. As a result, it is desirable to be able to test a state (e.g., impedance) of an antifuse device to ensure it has a low enough impedance after being programmed and/or a high enough impedance if not programmed.
Conventional antifuse based programmable latches and corresponding test arrangements will now be described with reference to
As shown in
More particularly, if antifuse device AF1 is being tested, second test section 710 can be enabled by signal mrgrb, while first test section 706 can be disabled by signal mrglb. If antifuse device AF1 is programmed properly, a current provided to node 712 by antifuse device AF1 will be greater than that provided to node 714 by test section 710. Volatile latch 706 can latch a data value according to a differential voltage between such nodes. In contrast, if antifuse device AF1 is not programmed properly, a current provided to node 712 can be less than that provided to node 714, and volatile latch 706 can latch an opposite data value. In the same fashion, if antifuse device AF2 is being tested, first test section 708 can be enabled by signal mrglb, while second test section 710 can be disabled by signal mrglb.
A conventional testing operation will now be described. In particular, in the testing of anti-fuse AF1, a sequencing of signals hldb, eq, ldb, and mrgrb can be used to evaluate a resistance of AF1. One such sequence would be to first set hldb voltage sufficiently high enough to turn off p-channel metal-oxide-semiconductor (PMOS) devices P72 and P73 within volatile latch 706. Second, signal eq can be driven to a voltage sufficiently high enough to turn on the n-channel MOS (NMOS) devices N70 and N71 within volatile latch 706, and remain high for a time sufficiently long enough to set the voltage at nodes 712 and 714 to a same or similar potential as vgnd.
Next, with eq still high, signals ldb and mrgrb can be driven to a voltage sufficiently low enough to enable load section 704 and to enable test PMOS device P74. Signal mrglb can remain at a voltage sufficiently high enough to disable the PMOS device P75 controlled by mrglb. Next signal eq would be set to a voltage sufficiently low to turn off NMOS devices N70 and N71. The circuit can remain in this state sufficiently long enough for current flowing through antifuse AF1 to charge up node 712 to a voltage Vtn high enough to turn on NMOS N72 of volatile latch 706, or for current flowing through second test circuit 710 to charge up node 714 to a voltage Vtn high enough to turn on NMOS device N73 in volatile latch 706. If node 712 reaches Vtn prior to node 714, then NMOS device N72 can turn on and discharge node 714 once again, reinforcing the state programmed into AF1 and showing that AF1 was of sufficiently low resistance. If node 714 reaches Vtn prior to node 712, then NMOS device N73 can turn on and discharge node 712 once again, reinforcing the test current, showing that AF1 was not of sufficiently low resistance.
A next step in this conventional sequence would be to set Idb and mrgrb to a voltage sufficiently high enough to turn off PMOS devices in load section 704 and PMOS device P74, Next, signal hldb can be set to a voltage low enough to enable PMOS devices P76 and P77 in volatile latch 706. This can hold the states of nodes 712 and 714 as determined in the prior steps. Finally, the signal out can be read by an external tester and compared to an expected state. If AF1 had a sufficiently low resistance, a low would be read on the out signal and the test would pass. Otherwise, a high would be read on the out signal and the test would fail.
A similar sequence can be executed for anti-fuse AF2, wherein a high on the out signal would indicate a passing test, while a low would indicate a failing test.
It is understood that both a power supply voltage (vpwr) and a test voltage (vmrg) are applied via external connections (e.g., from external test equipment). Thus,
A second conventional programmable latch circuit 800 and corresponding test arrangement is shown in
In a test operation, a power supply voltage vpwr can be applied to volatile latch circuit 806 while a test voltage vpp can be applied to antifuse section 802. The programmed state of the anti-fuses can be loaded into the volatile latch through load section 804 by sequencing the ldb and hldb signals with a test voltage (vpp) applied. A test signal (test) can be asserted (driven high in this example). As a test voltage (vpp) is being applied, a current ipp can be measured at the vpp voltage source. If an antifuse device has been properly programmed, a current ipp will be greater than some minimum value.
The above conventional arrangements can have drawbacks however. In the conventional case of
A drawback to the conventional arrangement of
U.S. Patent Application filed on Jan. 30, 2006, having Ser. No. 11/343,341 titled ANTI-FUSE LATCH CIRCUIT AND METHOD INCLUDING SELF-TEST, by Stansell et al., now U.S. Pat. No. 7,339,848 issued on Mar. 4, 2008, discloses a programmable latch with self-test capabilities. The contents of this application are incorporated by reference herein.
a and 4b are block schematic diagrams showing the generation of a binary test current setting value according to embodiments.
a and 5b are block schematic diagrams showing the generation of a binary test current setting value according to another embodiments.
Various particular embodiments of the present invention are set forth below in a number of diagrams. The embodiments include programmable latches having self-test capabilities and related methods.
Referring now to
A data load section 104 can enable data value programmed within programmable section 102 to be applied to volatile latch 106. A data load section 104 can include a first load switch 112-0 and a second load switch 112-1. In a load operation, load switches (112-0 and 112-1) can provide a low impedance. Consequently, one node (114-0 or 114-1) of volatile latch can be pulled higher than the other, and such a differential potential can be latched as a “recalled” or “loaded” data value. It is noted that load switches (112-0 and 112-1) can be commonly controlled by one signal, or separately controlled by different signals.
A test section 108 can include one or more variable current sources. A variable current source can include a current source that provides a current with a magnitude that is selectable according to a selectable test value. Preferably, such a current source can be a precision current source that can supply a current with greater precision than a bias voltage applied to a transistor gate. Still further, a current source is preferably formed in the same integrated circuit as the other components of the programmable latch. Thus, a test capability is built in: enables built-in self-test (BIST).
In the very particular example of
In particular, if programmable element 110-0 has been subject to a program operation, it can be tested with variable current source 116-1. Even more particularly, a test voltage can be provided at a program voltage node 118, and load switch 112-0 (and optionally load switch 112-1) can be enabled to provide a low impedance. As a result, a current path can be created between programmable element 110-0 and volatile latch data node 114-0. In addition, variable current source 116-1 can be adjusted to provide a test current to volatile latch data node 114-1 based on an applied value I_R. If programmable element 110-0 has been properly programmed, it can source more current than that provided by variable current source 116-1, and a differential voltage can be generated across nodes 114-0 and 114-1. This value (e.g., DATA high) can be latched by volatile latch 106 to indicate proper programming. However, if programmable element 110-0 has not been properly programmed, it will source less current than that provided by variable current source 116-1, and an opposite differential voltage can be generated across nodes 114-0 and 114-1. This value (e.g., DATA low) can be latched by volatile latch 106 to indicate improper programming. In one particular embodiment, value I_R can be a multi-bit digital value.
In the case of an opposite logic value to that above, programmable element 110-1 can be subject to a program operation, and tested with variable current source 116-0 in the same general fashion as described above.
It is understood that variable current sources 116-0 and 116-1 can generate a range of a test currents that can be set according to a desired condition.
A programmable latch circuit according to a second embodiment is shown in
A programmable latch circuit 200 can include a test section 208′ that generates test currents by mirroring a variable current source to thereby generate test currents that can be applied at either node 214-0 or 214-1 of volatile latch 206.
In the particular example of
In the example of
In this way, a single variable current source can be mirrored to provide test currents to one or more data storage nodes of a volatile latch or a plurality of volatile latches coupled to programmable elements.
A programmable latch circuit according to a third embodiment is shown in
A data load section 304 can include p-channel insulated gate field effect transistors P5 and P6 (referred to hereinafter as PMOS transistor, but not implying any particular gate insulator arrangement). PMOS devices P5 and P6 can be enabled (provide a low impedance path) according to an active low load signal Idb.
A volatile latch circuit 306 can include cross coupled inverters formed by n-channel insulated gate field effect transistors N3, N4 (referred to hereinafter as NMOS transistor, but not implying any particular gate insulator arrangement) and PMOS devices P1 and P2. The particular latch circuit 306 of
A variable current source section 308 can include a variable current source 318 and a mirror PMOS device P7. A variable current source 318 can generate a current iref having a value determined by input I_CTRL. According to such a current, PMOS device P7 can generate a bias potential vrmg at its commonly connected drain-gate.
First test section 310-0 and second test section 310-1 can generate test currents that mirror current iref. A first test section 310-0 can include a mirror PMOS device P8 and first current switch PMOS device P9. In a similar fashion, second test section 310-1 can include a mirror PMOS device P10 and second current switch PMOS device P11. In such an arrangement, PMOS device P9 can be enabled by test signal mrglb to provide a test current to node 314-0, while PMOS device P11 can be enabled by test signal mrgrb to provide a test current to node 314-1.
It is noted that a test current provided by mirror PMOS devices P8 and P10 can have the same essential magnitude as iref, or can be a scaled version of iref by scaling PMOS devices P8 and P10 with respect to PMOS device P7.
Preferably, antifuse section 302, a data load section 304, a volatile latch circuit 306, a variable current source section 308, a first test section 310-0 and a second test section 310-1 can all be formed in the same integrated circuit substrate.
Having described the structure of programmable latch circuit 300, the operation of such a circuit in one particular test operation will now be described. In the test operation, programmable latch circuit 300 can utilize a precision current reference iref to the test state of an antifuse element (312-0 or 312-1).
In a test operation, it is assumed that one of antifuse elements (312-0 or 312-1) has been programmed into an expected state. In addition, prior to the testing taking place, variable current supply 318 can be set to generate a desired current iref that can be mirrored within test sections 310-0 and 310-1.
A test operation can test an actual programmed state to an expected state. In such an operation, a hold signal hldb can be deasserted (driven high, in this example), turning off PMOS hold devices P3 and P4. Next, equalization signal eq can be asserted (driven high, in this example), turning on NMOS device N1 and N2, thus setting node 314-0 and 314-1 to a same potential close to or at a low power supply voltage. At this time, program power supply node 320 can be at a high (but not programming) voltage. At this time, load signal Idb and test signals mrgib and mrgrb can be deasserted (driven high, in this example). In this way, a volatile latch circuit 306 can be pre-conditioned to a neutral state, while being isolated from antifuse section 302 and test sections 310-0 and 310-1.
Next, with equalization signal eq still active, a load signal Idb can be asserted (driven low), and one of test signals mrglb or mrgrb (but not both) can be asserted (driven low). More particularly, if antifuse element 312-0 is to be tested, test signal mrgrb can be asserted. If antifuse element 312-1 is to be tested, test signal mrglb can be asserted.
Subsequently, equalization signal eq can be deasserted (driven low), turning off devices N1 and N2. Current can flow through the tested antifuse element (312-0 or 312-1), and at the same time, a current can flow through a selected test section (310-1 or 310-0). In such a state, one node (314-0 or 314-1) can rise in potential due to a current provided by a programmed antifuse element, while the other node (314-1 or 314-0) can rise due to an enabled test section. Eventually, one of devices N3 or N4 will be turned on. If the programmed antifuse element is operating properly, cross-coupled devices N3 and N4 can regenerate the data represented by the programmed antifuse element. In contrast, an improperly programmed antifuse device will result in less current than that generated by the selected test section. Cross-coupled devices N3 and N4 can thus regenerate the opposite data value to that intended by the programmed antifuse element.
Once a test data value has been regenerated by devices N3/N4, a load signal Idb and test signals mrglb and mrgrb can be deasserted (driven high). Isolating volatile latch circuit 306 from antifuse elements (312-0 and 312-1) and test sections (310-0 and 310-1). Next, hold signal hdlb can be asserted (driven low) to thereby hold a data value within voltage latch circuit 306. The test value can thus be latched, and subsequently read through an output port and compared to an expected result. In one particular example, such a comparison can be executed by external digital test equipment.
Preferably, variable current source 318 can be programmable, thus enabling the pass/fail current threshold to be changed according to antifuse variation (e.g., variation in programmed antifuse impedance).
As noted above, a program voltage vpp can also be variable, enabling the testing of antifuse impedance over a range of different potentials. In such a way, antifuse voltage coefficients can be thoroughly tested and characterized.
In particular embodiments, a value utilized to generate a test current (e.g., I_L, I_R, I_CTRL) can be a programmable binary value.
b shows a serial shift-register arrangement that can be utilized to provide a current setting value TEST_BIN. A desired current setting value can be shifted in prior to a test, and then shifted out after a test.
a and 5b show but two of the many possible precision current sources that can be utilized in the above embodiments to generate a test current.
b shows a current source 550 that can include a voltage digital-to-analog converter (VDAC) 552 that can generate a voltage vref according to an applied digital input value TEST_BIN. Such a voltage can then be applied to the gate of a PMOS device P5 to generate a current iref.
It should be appreciated that reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic is described in connection with the embodiment is included in at least one embodiment of the present invention. Therefore, it is emphasized that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the present invention.
Similarly, while the various aspects of the particular embodiments set forth herein have been described in detail, the present invention could be subject to various changes, substitutions, and alterations without departing from the spirit and scope of the invention.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/787,883 filed on Mar. 31, 2006, the contents of which are incorporated by reference herein.
Number | Name | Date | Kind |
---|---|---|---|
3636530 | Mark et al. | Jan 1972 | A |
3676717 | Lockwood | Jul 1972 | A |
3811076 | Smith | May 1974 | A |
3846768 | Krick | Nov 1974 | A |
3906464 | Lattin | Sep 1975 | A |
3950737 | Uchida et al. | Apr 1976 | A |
4000413 | Wong et al. | Dec 1976 | A |
4044343 | Uchida | Aug 1977 | A |
4051388 | Inukai | Sep 1977 | A |
4095281 | Denes | Jun 1978 | A |
4096584 | Owen, III et al. | Jun 1978 | A |
4103344 | Fagan et al. | Jul 1978 | A |
4110639 | Redwine | Aug 1978 | A |
4112507 | White et al. | Sep 1978 | A |
4128773 | Troutman et al. | Dec 1978 | A |
4138737 | McCann | Feb 1979 | A |
4146802 | Moench | Mar 1979 | A |
4149099 | Nagami | Apr 1979 | A |
4216395 | Beecham et al. | Aug 1980 | A |
4262219 | Richard | Apr 1981 | A |
4271487 | Craycraft et al. | Jun 1981 | A |
4291242 | Schriber | Sep 1981 | A |
4342101 | Edwards et al. | Jul 1982 | A |
4347448 | Plachno | Aug 1982 | A |
4354255 | Stewart | Oct 1982 | A |
4433252 | Lewis | Feb 1984 | A |
4435786 | Tickle | Mar 1984 | A |
4472643 | Furuyama | Sep 1984 | A |
4510584 | Dias et al. | Apr 1985 | A |
4538246 | Wang et al. | Aug 1985 | A |
4638465 | Rosini et al. | Jan 1987 | A |
4701858 | Stokes et al. | Oct 1987 | A |
4716552 | Maltiel et al. | Dec 1987 | A |
4769787 | Furusawa et al. | Sep 1988 | A |
4858185 | Kowshik et al. | Aug 1989 | A |
5065362 | Herdt et al. | Nov 1991 | A |
5111257 | Andoh et al. | May 1992 | A |
5168334 | Mitchell et al. | Dec 1992 | A |
5283764 | Kim et al. | Feb 1994 | A |
5287319 | Fukumoto | Feb 1994 | A |
5315177 | Zagar et al. | May 1994 | A |
5353248 | Gupta | Oct 1994 | A |
5365475 | Matsumura et al. | Nov 1994 | A |
5387534 | Prall | Feb 1995 | A |
5424569 | Prall | Jun 1995 | A |
5426605 | Van Berkel et al. | Jun 1995 | A |
5436480 | Yu | Jul 1995 | A |
5467300 | Komarek et al. | Nov 1995 | A |
5485429 | Ono | Jan 1996 | A |
5496756 | Sharma et al. | Mar 1996 | A |
5506816 | Hirose et al. | Apr 1996 | A |
5510638 | Lancaster et al. | Apr 1996 | A |
5511020 | Hu et al. | Apr 1996 | A |
5517448 | Liu | May 1996 | A |
5523971 | Rao | Jun 1996 | A |
5617357 | Haddad et al. | Apr 1997 | A |
5621696 | Dhong et al. | Apr 1997 | A |
5644533 | Lancaster et al. | Jul 1997 | A |
5648930 | Randazzo | Jul 1997 | A |
5656837 | Lancaster et al. | Aug 1997 | A |
5677866 | Kinoshita | Oct 1997 | A |
5732032 | Park et al. | Mar 1998 | A |
5734617 | Zheng | Mar 1998 | A |
5760644 | Lancaster et al. | Jun 1998 | A |
5774397 | Endoh et al. | Jun 1998 | A |
5774400 | Lancaster et al. | Jun 1998 | A |
5789776 | Lancaster et al. | Aug 1998 | A |
5793684 | Yach | Aug 1998 | A |
5812477 | Casper et al. | Sep 1998 | A |
5875144 | Zheng | Feb 1999 | A |
5892712 | Hirose | Apr 1999 | A |
5978298 | Zheng | Nov 1999 | A |
5986932 | Ratnakumar et al. | Nov 1999 | A |
6011742 | Zheng | Jan 2000 | A |
6016264 | Lin | Jan 2000 | A |
6026018 | Herdt | Feb 2000 | A |
6084814 | Casper et al. | Jul 2000 | A |
6097618 | Jenne | Aug 2000 | A |
6122191 | Hirose et al. | Sep 2000 | A |
6172907 | Jenne | Jan 2001 | B1 |
6181627 | Casper et al. | Jan 2001 | B1 |
6194738 | Debenhaum et al. | Feb 2001 | B1 |
6246623 | Ingalls | Jun 2001 | B1 |
6363011 | Hirose et al. | Mar 2002 | B1 |
6373771 | Fifield et al. | Apr 2002 | B1 |
6420925 | Fifield et al. | Jul 2002 | B1 |
6469930 | Murray | Oct 2002 | B1 |
6490203 | Tang | Dec 2002 | B1 |
6532169 | Mann et al. | Mar 2003 | B1 |
6553556 | Blodgett | Apr 2003 | B1 |
6556487 | Ratnakumar et al. | Apr 2003 | B1 |
6574145 | Kleveland et al. | Jun 2003 | B2 |
6621324 | Fifield et al. | Sep 2003 | B2 |
6625080 | Casper et al. | Sep 2003 | B2 |
6633506 | Casper et al. | Oct 2003 | B2 |
6674665 | Mann et al. | Jan 2004 | B1 |
6714469 | Rickes et al. | Mar 2004 | B2 |
6741117 | Lee | May 2004 | B2 |
6759895 | Takami | Jul 2004 | B2 |
7146585 | Blodgett | Dec 2006 | B2 |
7149114 | Taheri et al. | Dec 2006 | B2 |
7339848 | Stansell et al. | Mar 2008 | B1 |
7426142 | Stansell et al. | Sep 2008 | B1 |
20060114020 | Taheri et al. | Jun 2006 | A1 |
Number | Date | Country |
---|---|---|
6136994 | Jul 1998 | JP |
WO 9530244 | Nov 1995 | WO |
WO 9715929 | May 1997 | WO |
Number | Date | Country | |
---|---|---|---|
60787883 | Mar 2006 | US |