This invention relates to power reduction in module-based scan testing using constant input data.
Scan test is a design technique that increases the testability of a primary circuit by replacing all or some of its storage elements by scan storage elements. The scan storage elements apply input stimulus to the primary circuit and then measure the response of the primary circuit to that input stimulus. Faults contained in the primary circuit are detected through this process.
A reduction in power usage during test is realized through the use of constant input data in module-based scan testing. Several aspects of this invention are described below with reference to example applications for illustration. It should be understood that numerous specific details, relationships, and methods are set forth to provide a full understanding of the invention. One skilled in the relevant art, however, will readily recognize that the invention can be practiced without one or more of the specific details, or with other methods, etc. In other instances, well-known structures or operations are not shown in detail to avoid obscuring the invention.
Referring to the drawings,
A scan chain 2 performs the scan testing of sub-circuit core logic 1. The scan chain 2, in its functional mode, is used by the sub-circuit core logic 1 during the normal operation of the primary device. The example scan chain 2 shown in
During the rising edge of the clock, when the Scan Enable (“SE”) pin equals ‘0’, the flip-flops capture data from the Data (“D”) input. When SE equals ‘1’ the flip-flop captures data from the Scan Data (“SD”) input. Within the scan chain 2, the Q output of a flip-flop is connected to the SD input of the next flip-flop in the chain. In this example application, the output that is the compliment of Q is not used. However, it is within the scope of the invention to use the compliment of Q output to perform the scan function with equal effectiveness.
The test pattern is sent to the scan chain 2 through the Scan-in input, 8, connected to the SD input of the first flip-flop 5. The Q output of the last flip-flop 7 in the shift register is connected to Scan-out 9. (The Q output of the last flip-flop 7 is also connected through line 10 to the sub-circuit core logic 1, for use during normal circuit operation.)
When scan testing is performed on sub-circuit core logic 1, the tester (not shown) sends a test pattern on line 8 to the scan chain 2. The SE input, 16, is set to a logic level 1 by the tester during this procedure in order to load the test pattern onto the flip-flops through their SD inputs. The tester pulses the clock as many times as the length of the scan chain to load the full test pattern into the scan chain 2.
Once the test pattern has been shifted into the scan chain, the tester sends signals to the primary inputs 3 of the sub-circuit core logic 1. The tester then sets SE, line 16, to a logic level 0 putting the circuit into functional mode. The tester then applies a capture clock in order to capture the responsive output values of the sub-circuit core logic into the flip-flops of scan chain 2. Next, the tester drives SE to a logic level 1 and shifts into the scan chain 2 the next test pattern while simultaneously receiving the contents of the scan chain via Scan-out 9 for analysis and fault detection.
As shown in
The configuration shown in
Referring to
The example application also shows the use of an optional asynchronous RESET or PRESET for scan chains 22 and 32. The RESET feature would be used in situations where the logic level of the test pattern sent to unused scan chains is a ‘0’. Conversely, the PRESET feature would be used in situations where the logic level of the test pattern sent to unused scan chains is a ‘1’. If a RESET or PRESET is not used, then the first test pattern flushes out the pre-existing data in the scan chain and initializes the scan chain for subsequent receipt of the constant data input pattern. In order to avoid capturing arbitrary data from the sub-circuit core logic (thus increasing power consumption by unused scan chains), the unused scan chains are kept in scan shift mode by holding the SE pin, 47, at a logic 1 level during the time that the constant data is provided to the unused scan chains.
During an example test operation, if select is a logic level 0 then the RESET is triggered on scan chain 32 to initialize its flip-flops to the ‘0’ state. This prepares scan chain 32 to operate at a reduced power level while receiving constant ‘0’ data. The constant ‘0’ data is received by scan chain 32 on SD input 33 because select on multiplexer 45 is ‘0’. Furthermore, the select on multiplexer 46 being ‘0’ causes SE input 34 to hold at a logic level ‘1’.
With select at level ‘0’, multiplexer 43 transfers the test pattern data from the tester, on Scan-in 40, to the SD input, 23, of scan chain 22. Multiplexer 44, with select at ‘0’, allows the input value on SE 47 to control the SE input 24 of scan chain 22. When SE 47 is a logic level “1” the scan chain 22 can be filled with the test pattern stimulus from Scan_in 40 on SD input 23. When SE 47 is a logic level “0” the flip-flops of the scan chain 22 are allowed to capture the response of the sub-circuit logic 21 to the test pattern stimulus. This response data is then shifted out of the scan chain 22 on line 25, and sent to the tester for analysis on Scan-out 41 because select is at ‘0’ on multiplexer 42.
When select is ‘1’ then sub-circuit 31 is tested in the manner just described while the unused scan chain 22 operates at a reduced power level. If a PRESET operation is used instead of a RESET operation then a logic level ‘1’ should be sent to the unused scan chain by multiplexers 43 or 45. As mentioned previously, if a RESET or PRESET function is not used, then the power consumption of unused scan chains can still be realized by using the first scan operation to scan all ‘0’s or ‘1’s into the unused chains to initialize them before sending the constant data signal of the same value (while holding the SE pin at ‘1’).
This invention is also applicable to situations where the test procedure described in
Clearly, this invention could be realized with many different circuit or logic configurations. For example, the scan circuitry could be created using transistor gates, AND/OR structures, pass transistor logic, switches, PLA's, ASIC's, DSP's, etc.
Furthermore, modifications of this invention could be used for different test configurations. For example, if the scan chains do not share the Scan-in pin then the constant data value sent to the scan chains would be provided directly by the tester. In this situation, if the SE input is shared, then the logical function contained in the
Conversely, if the scan chains do not share the SE pin then the tester performs the scan enable function. In this situation, if the Scan-in is shared, then the logical function contained in the
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Numerous changes to the disclosed embodiments can be made in accordance with the disclosure herein without departing from the spirit or scope of the invention. Thus, the breadth and scope of the present invention should not be limited by any of the above-described embodiments. Rather, the scope of the invention should be defined in accordance with the following claims and their equivalents.
This application claims the benefit of U.S. Provisional Application No. 60/286,632, filed Apr. 26, 2001.
Number | Date | Country | |
---|---|---|---|
60286632 | Apr 2001 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10131161 | Apr 2002 | US |
Child | 11305581 | Dec 2005 | US |