The present invention generally relates to the field of logic design and test using design-for-test (DFT) techniques. Specifically, the present invention relates to the field of logic test and diagnosis for integrated circuits using scan or built-in self-test (BIST) techniques.
As the semiconductor manufacturing technologies move into the nanometer era, delay fault testing has emerged as one of the most important test techniques in screening defective chips caused by timing delay defects in manufactured devices. Two basic capture-clocking schemes using launch-on-shift (LOS) and launch-on-capture (LOC) are commonly used to detect delay faults in a scan design or a scan-based built-in self-test (BIST) design. The scan design or BIST design contains one or more scan cells coupled in series to form one or more scan chains. A scan cell is a reconfigured storage element from a D flip-flop, a latch, or a pulse latch. When the scan cell is operated in normal mode, it acts as a normal storage element. When the scan cell is operated in scan mode, it allows shifting-in data from an external source and shifting-out its output response to the external source for analysis. Oftentimes, a scan enable signal SE is used to indicate the scan mode when SE is set to 1, and the normal mode when SE is set to 0.
Typically, using the LOS scheme to detect delay faults in a scan design or BIST design can achieve higher fault coverage than using the LOC scheme. The drawbacks of the LOS clocking scheme are that LOS can cause unwanted over-testing because more false paths may be exercised, and incur higher implementation cost because the scan enable signal SE in each clock domain must be operated at-speed. This is in sharp contrast to LOC in which only a slow-speed, global scan enable signal GSE to drive the SEs in all clock domains is needed.
Current solutions to increasing the delay fault coverage of a design are typically done by activating multiple capture cycles or utilizing a combination of both LOS and LOC clocking techniques. The solution using multiple activation cycles, as described by Zhang et al. (2006), is to apply more-than-one capture clock pulses (cycles) in LOC or LOS. The burst mode as described by Nadeau-Dostie et al. (2008) comprises applying two or more at-speed shift clock pulses immediately followed by one at-speed capture clock pulse. The purposes of applying two or more at-speed shift clock pulses prior to the at-speed capture clock pulse are to avoid clock stretching and test multi-cycle paths and false paths. Clock stretching adversely increases the clock's cycle time (e.g., from 3.2 ns to 3.7 ns) and is caused by the sudden voltage drop due to di/dt effects when a pure LOS or LOC clocking scheme is used. Nadeau-Dostie et al. (2008) illustrated that the stretched cycle time is reduced by an order of magnitude (56% to 4.5%) when three launch (shift) cycles instead of one were used prior to the capture cycle. Multi-cycle paths and false paths are paths with multi-cycle delays within a clock domain or across two clock domains. Within each clock domain, multi-cycle paths are sometimes used, instead of pipelining, to implement functions at a lower cost. False paths are often present across asynchronous clock domains which must be correctly handled to avoid false timing violations.
The solution in mixing the LOS and LOC schemes, as described by Zhang et al. (2006) and Park and McCluskey (2008), is mainly to employ the LOS-followed-by-LOC or LOC-followed-by-LOS clocking scheme. Another solution as described by Ahmed and Tehranipoor (2006) is to partition the design into two segments and then to apply LOS to one segment of the design and LOC to the other segment of the design. For multiple clock domains, the staggered LOC clocking scheme or the staggered LOS clocking scheme that places clock pulses in a sequential order, as described by Wang et al. in U.S. Pat. Nos. 6,954,887 and 7,007,213, can allow at-speed delay fault testing of synchronous and asynchronous clock domains while at the same time reducing the number of test patterns for testing a scan design or a BIST design. However, all of these solutions still do not yield sufficient delay fault coverage because when the design contains multi-cycle paths or multi-cycle false paths, these paths must be tested separately. A multi-cycle (false) path is a combinational (false) path bounded by a source flip-flop and a destination flip-flop where data originates from the source flip-flop can only propagate to the destination flip-flop in multiple cycles. An n-cycle path-delay fault is a delay fault in an n-cycle path, where n>=1. Such approach may further increase test application time and test data volume when performing a comprehensive testing of the scan or BIST design.
Accordingly, there is a need to develop an improved method and apparatus for delay fault testing that simultaneously detecting at least a b-cycle path-delay fault and a c-cycle path-delay fault using a test clock comprising n+1 at-speed clock pulses during the capture operation, where 1<=b<=c<=n.
To detect a delay fault (which is a 1-cycle path-delay fault) in a clock domain, a test stimulus is shifted into all scan cells in the clock domain during a shift operation. The shift frequency of the test clock, CK, which drives the clock domain may be at a reduced clock speed (called slow-speed) or at the clock domain's intended operating speed (called at-speed). During the shift operation, the circuit is operated in scan mode. The scan enable signal, SE, which is often used to control all scan cells may be set to 1 to indicate the scan mode operation. Then, at least two consecutive at-speed clock pulses are applied to the test clock, CK, to capture the results into the scan cells in response to the stimulus during the capture operation. The capture frequency of the test clock, CK, must be at the clock domain's intended operating speed (or at-speed). During the capture operation, the circuit is operated in normal mode. The scan enable signal, SE, may be set to 1 when supplying an at-speed shift clock pulse or 0 when supplying an at-speed capture clock pulse, depending on needs, to indicate the capture operation. The output response is then shifted out for analysis to determine whether the delay fault is detected.
To simultaneously detect a b-cycle path-delay fault and a c-cycle path-delay fault, the method we propose in this invention is to apply an ordered sequence of clock pulses using a hybrid clocking scheme to the test clock that during a capture operation comprises at least i at-speed shift clock pulses immediately followed by at least n+1−i at-speed capture clock pulses, where 0<=i<n and where 1<=b<=c<=n; the consecutive b−1 and c−1 at-speed clock pulses controlling the b-cycle path and c-cycle path are suppressed for detecting the b-cycle path-delay fault and the c-cycle path-delay fault, respectively. The hybrid clock pulses can be applied to one clock domain at a time or to a plurality of clock domains simultaneously, in a staggered manner, or in a one-hot manner. Also, one or more consecutive at-speed or slow-speed shift clock pulses are applied prior to the hybrid clock pulses to avoid clock stretching.
A delay fault may be a transition fault, a path-delay fault, or a bridging-transition fault. The ordered sequence of clock pulses may further detect stuck-at faults, IDDQ (IDD quiescent current) faults, and bridging faults in the clock domain. The ordered sequence of clock pulses may further comprise disabling selected clock pulses in the test clock to facilitate fault diagnosis or for low-power testing.
Also, if the hybrid clocking scheme does not include any at-speed shift clock pulse when testing multiple clock domains in the design, a global scan enable signal GSE running at slow-speed may be used to drive all scan enable signals, SEs, each controlling a clock domain. This will significantly reduce physical implementation efforts.
The above and other objects, advantages and features of the invention will become more apparent when considered with the following specification and accompanying drawings wherein:
The following description is presently contemplated as the best mode of carrying out the present invention. This description is not to be taken in a limiting sense but is made merely for the purpose of describing the principles of the invention. The scope of the invention should be determined by referring to the appended claims.
During the shift operation, a series of shift clock pulses are applied to CK to shift in a test stimulus to all scan cells in all clock domains when the scan enable signal SE is set to 1. During the capture operation, an at-speed launch clock pulse followed by an at-speed capture clock pulse are required to detect intra-clock-domain delay faults. During capture, LOS (as shown in
The main advantage of this 1-shift-2-capture hybrid clocking scheme is that since the very “last shift” and first capture clock pulses constitute an LOS test set, the test set may detect more intra-clock-domain delay faults than using the conventional LOC clocking scheme alone. Also, since the first capture clock pulse followed by the second capture clock pulse constitute an LOC test set, the test set may further detect additional intra-clock-domain faults, which may not be detected by the conventional LOS clocking scheme alone. Hence, this 1-shift-2-capture hybrid clocking scheme may detect more intra-clock-domain delay faults than the conventional LOS or LOC clocking scheme alone, or an enhanced LOC-only scheme using multiple activation cycles.
In addition, the scheme may also detect 2-cycle path-delay faults in 2-cycle paths and 2-cycle false paths. A 2-cycle path-delay fault is a delay fault in a combinational logic path that originates from a source flip-flop and gets detected by a destination flip-flop in two at-speed clock cycles or clock pulses. This fault may be detected when the first capture clock pulse controlling the source flip-flop that drives the targeted 2-cycle path is disabled or the value of the source flip-flop that drives the targeted 2-cycle path is held at its original state when the first capture clock pulse is activated.
To summarize, to detect an n-cycle path-delay fault or an n-cycle false path simultaneously this means one may apply at least an (n−1)-shift-2-capture hybrid clocking scheme during capture. Alternatively, one may apply at least a 1-shift-n-capture hybrid clock scheme, or an i-shift-(n+1−i)-capture hybrid clocking scheme, where 0≦i≦n.
Thus, to simultaneously detect a b-cycle path-delay fault and a c-cycle path-delay fault when the test clock comprises at least n+1 clock pulses during the capture operation, the consecutive b−1 and c−1 at-speed clock pulses prior to the last at-speed capture clock pulse that drive the b-cycle path and c-cycle path are suppressed or controlled to hold the state of the two paths' source flip-flops, respectively, where 1<=b<=c<=n.
The main advantage of this 3-capture (or 0-shift-3-capture) clocking scheme is that the scan enable signal, SE, can operate at slow-speed. Thus, when the 3-capture clocking scheme is used for testing multiple clock domains in the design, a global scan enable signal GSE running at slow-speed may be used to drive all SEs each controlling a clock domain. This will significantly reduce physical implementation efforts.
In the 3-capture clocking scheme, the first two capture clock pulses constitute an LOC test set. Since the third capture clock pulse followed by the second capture clock pulse constitute another LOC test set, the test set may further detect additional intra-clock-domain faults, which may not be detected by the conventional LOC clocking scheme alone. Hence, this 3-capture hybrid clocking scheme may detect more intra-clock-domain delay faults than the conventional LOC clocking scheme alone. In addition, the scheme may also detect 2-cycle path-delay faults and 2-cycle false paths. A 2-cycle path-delay fault or 2-cycle false path is a delay fault in a combinational logic path that originates from a source flip-flop and gets detected by a destination flip-flop after two at-speed clock cycles or clock pulses. This fault may be detected by the destination flip-flop when the second capture clock pulse controlling the source flip-flop that drives the targeted 2-cycle path is disabled or the value of the source flip-flop that drives the targeted 2-cycle path is held at its original state when the second capture clock pulse is activated.
To summarize, to detect an n-cycle path-delay fault or an n-cycle false path simultaneously further means one may apply at least an (n+1)-capture hybrid clocking scheme during capture.
Thus, to simultaneously detect a b-cycle path-delay fault and a c-cycle path-delay fault when the test clock comprises at least n+1 clock pulses during the capture operation, the consecutive b−1 and c−1 at-speed clock pulses prior to the last at-speed capture clock pulse that drive the b-cycle path and c-cycle path are selectively suppressed or controlled to hold the state of the two paths' source flip-flops, respectively, where 1<=b<=c<=n.
Clock CK1 may comprise an ordered sequence of clock pulses as described in
If all clock pulses in CK1 (or CK2) in the capture window are disabled when testing CK2 (or CK1), the one-hot clocking scheme can detect intra-clock-domain stuck-at and delay faults as well as inter-clock-domain stuck-at faults. This one-hot scheme does not need to adjust d3, and the test patterns generated are guaranteed to be hazard-free. It is also possible to test both clock domains simultaneously without adjusting d3. In this case, the simultaneous clocking scheme can only detect intra-clock-domain stuck-at and delay faults; neither inter-clock-domain stuck-at faults nor delay faults can be detected. Unknown values may be generated in the test patterns for those signals across the two clock domains. Each of the staggered clocking scheme, one-hot clocking scheme, and simultaneous clocking scheme is applicable for testing both synchronous and asynchronous clock domains. Two clock domains are said to be synchronous if one of their shift or capture clock pulses during the capture operation can be precisely aligned with each other. This only happens when the frequency of one clock domain is a multiple integer of that of the other clock domain, e.g., 100 MHz and 50 MHz. Otherwise, the two clock domains are said to be asynchronous.
Alternatively, an aligned clocking scheme may be used to test two synchronous clock domains. In this case, the last capture clock pulse in the capture window in both clock domains may be aligned precisely. In a broader sense, any shift or capture clock pulse in the capture window in both clock domains may be aligned precisely to perform the capture operation.
To detect a 2-cycle intra-clock-domain delay fault in the clock domain controlled by CK1, the first capture clock pulse C1 in CK1 controlling the source flip-flop may be disabled or the value of the source flip-flop that drives the targeted 2-cycle delay path may be held at its original state when C1 is activated. To detect a 2-cycle intra-clock-domain delay fault in the clock domain controlled by CK2, the second capture clock pulse C4 in CK2 controlling the source flip-flop may be disabled or the value of the source flip-flop that drives the targeted 2-cycle delay path may be held at its original state when C4 is activated. Therefore, the capture waveform given in the capture window in
Having thus described presently preferred embodiments of the present invention, it can now be appreciated that the objectives of the invention have been fully achieved. And it will be understood by those skilled in the art that many changes in construction & circuitry, and widely differing embodiments & applications of the invention will suggest themselves without departing from the spirit and scope of the present invention. The disclosures and the description herein are intended to be illustrative and are not in any sense limitation of the invention, more preferably defined in scope by the following claims.
This application claims the benefit of U.S. Provisional Application No. 69/193,008 filed Oct. 22, 2008, which is hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
61193008 | Oct 2008 | US |