Integrated circuits are often designed to incorporate scan test circuitry that facilitates testing for various internal fault conditions. Such scan test circuitry typically comprises scan chains comprising multiple scan cells. The scan cells may be implemented, by way of example, utilizing respective flip-flops. The scan cells of a given scan chain are configurable to form a serial shift register for applying test patterns at inputs to combinational logic of the integrated circuit. The scan cells of the given scan chain are also used to capture outputs from other combinational logic of the integrated circuit.
Scan testing of an integrated circuit may therefore be viewed as being performed in two repeating phases, namely, a scan shift phase in which the flip-flops of the scan chain are configured as a serial shift register for shifting in and shifting out of respective input and output scan data, and a scan capture phase in which the flip-flops of the scan chain capture scan data from combinational logic. These two repeating scan test phases are often collectively referred to as a scan test mode of operation of the integrated circuit.
Outside of the scan test mode and its scan shift and capture phases, the integrated circuit may be said to be in a functional mode of operation. Other definitions of the scan test and functional operating modes may also be used. For example, the capture phase associated with a given scan test may instead be considered part of a functional mode of operation, such that the modes include a scan shift mode having only the scan shift phase, and a functional mode that includes the capture phase.
An integrated circuit may also be configured to include built-in self-test (BIST) capabilities. Such BIST capabilities in some implementations make use of scan test circuitry and operating modes of the type described above. BIST implementations may be configured to test particular portions of an integrated circuit, such as a memory. BIST testing of integrated circuit memories is also referred to as memory BIST (MBIST). MBIST is typically used to detect faults that are internal to the memory. However, conventional MBIST arrangements are unable to detect faults associated with functional data and address paths at the memory interface. This is because the data and address inputs applied during MBIST are provided to the memory interface by a test controller, with the functional data and address paths bypassed. Undetected faults associated with these functional paths at the memory interface can cause the integrated circuit to fail in the field.
It is possible to utilize scan circuitry to test the functional data and address paths. Examples of techniques of this type are disclosed in U.S. patent application Ser. No. 13/445,308, filed Apr. 12, 2012 and entitled “Scan-Based Capture and Shift of Interface Functional Signal Values in Conjunction with Built-In Self-Test,” which is commonly assigned herewith and incorporated by reference herein.
One or more illustrative embodiments of the invention provide integrated circuits in which combinational logic associated with respective input and output interfaces of a memory interface or other type of circuit core interface can be tested and the results observed via one or more scan chains. In conjunction with the scan testing, signal values applied to signal lines of the circuit core interface are controlled in a manner that facilitates the scan testing of the combinational logic. For example, in an embodiment in which the circuit core comprises a memory, scan testing of functional data and address paths of the memory is facilitated by controlling signal values on address input and write enable signal lines of an input interface of the memory. Such arrangements can prevent the address input and write enable signal lines from fluctuating after test data is written to the memory but before that test data can be read from the memory. As a result, more effective use can be made of memory contents during scan testing, so as to reduce test pattern count and test time.
In one embodiment, an integrated circuit comprises a memory or other circuit core having an input interface and an output interface, scan circuitry comprising at least one scan chain having a plurality of scan cells, and additional circuitry associated with at least one of the input interface and the output interface and testable utilizing said at least one scan chain. The scan circuitry further comprises a scan controller configured to control signal values applied to one or more signal lines of the input interface in conjunction with testing of the additional circuitry utilizing said at least one scan chain.
By way of example, the circuit core may comprise a memory, the input interface may comprise data input, address input and write enable signal lines, and the output interface may comprise data output signal lines. In an embodiment of this type, the scan controller may be configured to control signal values applied to respective ones of the address input and write enable signal lines in a manner that ensures that data written to the memory in a write operation of a given memory cycle can be read from the memory in a read operation of a subsequent memory cycle.
The additional circuitry that is testable utilizing the one or more scan chains may comprise input combinational logic associated with an input functional path to the input interface of the circuit core, and output combinational logic associated with an output functional path from the output interface of the circuit core. In such an arrangement, the one or more scan chains may include a first scan chain comprising scan cells coupled to respective signal lines of the input combinational logic, and a second scan chain comprising scan cells coupled to respective signal lines of the output combinational logic. The first scan chain is configured to launch test input signal values onto the respective signal lines of the input combinational logic in accordance with a test pattern shifted into the first scan chain. The second scan chain is configured to capture test output signal values from the respective signal lines of the output combinational logic and to shift out the captured test output signal values.
Embodiments of the invention can provide improved fault coverage in testing of integrated circuits without significantly increasing the cost or complexity of these devices. For example, by allowing memory contents to be more effectively utilized during scan testing of combinational logic associated with memory input and output interfaces, the number of required test patterns can be significantly reduced, resulting in a substantial reduction in integrated circuit test time.
Embodiments of the invention will be illustrated herein in conjunction with exemplary integrated circuits comprising scan test circuitry for supporting scan testing of functional logic or other additional circuitry associated with one or more circuit cores of those integrated circuits. It should be understood, however, that embodiments of the invention are more generally applicable to any testing system, design system or associated integrated circuit in which it is desirable to provide improved scan testing of additional circuitry associated with a memory or other integrated circuit core.
It should be noted that the input functional and BIST paths 104-1 and 106-1 may each comprise multiple parallel signal lines, and thus multiplexer 108 may comprise a bank of two-to-one multiplexers each configured to switch between one of the functional signal lines and a corresponding one of the BIST signal lines. In an embodiment in which circuit core 102 comprises a memory, the input functional signal lines may comprise both data input and address input signal lines, as well as other types of signal lines, such as write enable signal lines. Multiplexer 108 is an example of what is more generally referred to herein as “selection circuitry,” and numerous alternative arrangements of such circuitry may be used to switch between functional and BIST paths in other embodiments.
The input and output BIST paths 106, multiplexer 108 and BIST controller 110 collectively comprise one example of what is more generally referred to herein as “BIST circuitry.” Such circuitry in the present embodiment is configured for testing of the circuit core 102 between its input and output interfaces 103 in a BIST mode of operation of the integrated circuit 100. Thus, in the BIST mode of operation, test input signals from the BIST controller 110 are applied to the input interface 103-1 via BIST path 106-1 and multiplexer 108, and corresponding test output signals are returned to the BIST controller 110 via the output BIST path 106-2. Numerous other types of BIST circuitry and BIST testing may be used in other embodiments.
It is also to be appreciated that, although illustrated in
The integrated circuit 100 in the present embodiment further includes scan circuitry 111 comprising first and second scan chains 116-1 and 116-2, each having a plurality of scan cells, and a scan controller 114 coupled to the scan chains and to the circuit core 102. Additional circuitry associated with the input interface 103-1 and the output interface 103-2 of the circuit core 102 is testable utilizing the scan chains 116 of the scan circuitry 111, under the control of the scan controller 114. As will be described in more detail below in conjunction with
The particular configuration of integrated circuit 100 as shown in
The integrated circuit 100 may be configured for installation on a circuit board or other mounting structure in a computer, server, mobile telephone or other type of communication device. Such communication devices may also be viewed as examples of what are more generally referred to herein as “processing devices.” The latter term is also intended to encompass storage devices, as well as other types of devices comprising data processing circuitry.
The circuit core 102 in integrated circuit 100 of
The circuit core in embodiments to be described in conjunction with
Referring now to
The scan circuitry in this embodiment illustratively comprises a first scan chain 216-1 of length n1 that includes scan cells 220-1,1 through 220-1,n1, and a second scan chain 216-2 of length n2 that includes scan cells 220-2,1 through 220-2,n2. The use of two scan chains in this figure is by way of example only. A large number of additional scan chains may be included in a given integrated circuit implementation, arranged for testing additional combinational logic, as will be appreciated by those skilled in the art.
The scan cells 220 of the first scan chain 216-1 are coupled to respective signal lines of the input combinational logic 204-1, and the scan cells of the second scan chain 220 are coupled to respective signal lines of the output combinational logic 204-2.
The first scan chain 216-1 is configured to launch test input signal values onto the respective signal lines of the input combinational logic 204-1 in accordance with a test pattern shifted into the first scan chain.
The second scan chain 216-2 is configured to capture test output signal values from the respective signal lines of the output combinational logic 204-2 and to shift out the captured test output signal values.
Although not illustrated in
It should be noted that designations such as WE, SE, LCK, MCK, DATA IN and ADDR will be used herein to refer to signals as well as the corresponding inputs, outputs or signal lines that are associated with those signals.
Each of the scan cells 220 of scan chain 216-1 comprises a data input D, a data output Q coupled to a corresponding signal line of the combinational logic 204-1, a clock input CK coupled to an output of the scan controller 300, a scan enable input SE, a scan input SI and a scan output SO. For a given scan cell that is neither an initial cell nor a final cell of the scan chain, its scan input is adapted for coupling to a scan output of a previous one of the scan cells in the scan chain, and its scan output is adapted for coupling to a scan input of a subsequent one of the scan cells in the scan chain.
Although not expressly shown in the figure, it is assumed that an initial scan cell of the scan chain 216-1 has its scan input coupled to a scan output of the scan controller 300, and a final scan cell of the scan chain 216-1 has its scan output coupled to a scan input of the scan controller 300. The scan chain 216-2 and any other scan chains of the scan circuitry are assumed to be configured in a manner similar to scan chain 216-1.
A scan shift control signal is utilized to cause the scan cells 220 of a given scan chain 216 to form a serial shift register. The scan shift control signal in the present embodiment comprises the above noted SE signal, such that the scan cells of the given scan chain form the serial shift register responsive to the SE signal being at a first designated logic level (e.g., a logic “1” level) and the scan cells capture functional data when the SE signal is at a second designated logic level (e.g., a logic “0” level). As noted previously, these conditions are also referred to as respective scan shift and scan capture phases. Each such phase spans multiple clock cycles, also referred to as shift or capture clock cycles depending upon the phase in which they occur.
A single SE signal may be used to control all of the scan cells of each scan chain 216. The SE signal in such an embodiment controls configuration of scan cells of a scan chain to form a serial shift register in conjunction with scan testing of the combinational logic 204-1 and 204-2 associated with the respective input and output interfaces of the memory 202.
The scan controller 300 in the present embodiment is configured to control the write enable signal value applied to the write enable input of the memory 202, by holding the controlled write enable signal WE at an inactive level after performance of a write operation in a given memory cycle, such that additional write operations cannot be performed while the controlled write enable signal WE remains at the inactive level.
The scan controller 300 is further configured to control a clock signal CK applied to at the scan cells 220 of the scan chain 216-1, by disabling the clock signal CK after performance of a write operation in a given memory cycle, such that corresponding ones of the address input signal lines are held at particular values utilized in the write operation while the clock signal CK is disabled. It is assumed in this regard that the scan cells for which the clock signal CK is disabled include the scan cells that drive signals lines of the combinational logic that control the address inputs of the memory 202.
Although the scan cells 220 of the scan chain 216-1 are shown in the figure as all receiving the same clock signal CK, in other embodiments a given scan chain may be associated with multiple clock domains, such that different subsets of the scan cells of the scan chain receive clock signals associated with their respective clock domains. The disclosed techniques can be adapted in a straightforward manner to accommodate such multiple clock domain arrangements.
The above-noted functionality of scan controller 300 is effective to control the memory interface during scan testing of the combinational logic 204-1 and 204-2 such that if a particular memory location is written with test data, the corresponding memory contents can be immediately read out so that the test pattern is made more effective in detecting faults on the paths leading to the particular memory location. More particularly, the scan controller holds the signal values on the address input signal lines while also controlling the write enable signal line to temporarily disable subsequent writes, such that the same contents written during one memory cycle can be read out in the next memory cycle. This freezing of the address input signal lines and deactivation of the write enable signal line ensures that combinational logic faults that are activated by a given test pattern can be accurately and efficiently detected using that same test pattern.
Without such scan controller functionality, it can be difficult for a test generation tool to provide test patterns that detect faults in the combinational logic associated with the input and output interfaces of the memory, because the address input and write enable signal lines may change during a particular test pattern in an unpredictable manner. As a result, the test generation tool may be required to keep track of memory contents across multiple test patterns, which unduly increases test pattern complexity and test time. These and other problems are avoided in the present embodiment by the inclusion of scan circuitry comprising scan controller 300 configured as described above.
The multiplexer 406 comprises a two-to-one multiplexer having a first input adapted to receive the clock signal LCK, which as noted above is assumed to correspond to the clock signal MCK in the present embodiment, a second input adapted to receive the clock signal LCK gated based at least in part on the write enable signal WE, an output providing a controlled clock signal CK to the clock signal inputs of respective ones of the scan cells 220 of the scan chain 216-1, and a select line driven by the scan enable signal SE.
The flip-flop 400 has an active low clock input adapted to receive the MCK clock signal that is also applied to the clock input of the memory 202, and also has an active low reset input that receives a designated signal value, in this embodiment a logic “0” level, during a functional mode of operation of the integrated circuit 100.
Thus, in the functional mode of operation, the flip-flop 400 is held in a reset state, such that the inverted data output Q is held at a logic “1” level. As a result, gates 402 and 404 effectively become transparent in the functional mode, such that the WE signal from the combinational logic 204-1 passes unaltered through gate 402 to the WE input signal line of the memory 202, and the LCK clock signal passes unaltered through gate 404 and multiplexer 406 to the CK inputs of the scan cells 220.
As indicated above, the scan controller 300 as shown in
This process is illustrated in the timing diagram of
In the scan shift phases, multiplexer 406 selects its upper input, corresponding to the LCK clock signal, for application to the CK inputs of the scan cells 220, and thus the CK signal in
Thus, the CK signal in a given capture clock cycle of the scan capture phase depends on the state of the write enable signal WE in a previous capture clock cycle of that scan capture phase. More particularly, if the write enable signal WE is at a logic “1” during a capture clock cycle, CK will be disabled by being held low for at least the next capture clock cycle. Also, the controlled write enable signal applied to the write enable input of the memory 202 via logic gate 402 will be at a logic “0” level for at least the next capture clock cycle.
The scan controller 300 therefore detects in flip-flop 400 the assertion 500 of the write enable signal WE during a capture clock cycle corresponding to capture clock pulse 502. As a result, the upper input of logic gate 402 is at a logic “0” level, and the next clock pulse 503 of the LCK signal does not cause a corresponding pulse at CK because it is blocked by logic gate 404. Also, the gate 402 prevents the write enable signal WE from being applied to the write enable input of memory 202. This ensures that address input signal values 504 associated with clock pulse 502 are maintained, such that the data written to the memory 202 using the address input signal values 504 can be read out properly from the same location in the memory in a subsequent clock cycle.
It should be noted that the CK signal is disabled after clock pulse 502 even though the LCK signal includes clock pulse 503 in the capture clock cycle following the one in which the write enable signal WE was asserted.
The circuitry associated with the scan controller 300 as illustrated in
Another embodiment of a portion of the scan controller 300 of
The latches 604 in the present embodiment are negative level-sensitive latches, although other types of latches could be used. These latches can be controllably configured to maintain the respective address input signal line values associated with a given write operation as indicated at 504 in the
It is to be appreciated that the particular circuitry and timing arrangements shown in
Other embodiments can replicate the scan controller circuitry for each of a plurality of different memories of a given integrated circuit. Also, the particular number of capture clock cycles for which the write enable signal is made inactive and the address input signal values are maintained may be varied in other embodiments.
Captured signal values shifted out from the scan chains may be provided via the scan controller 114 or 300 to a chip-level pin, or processed internally by the scan controller or other scan circuitry of the integrated circuit 100.
Although scan cells are shown for only two scan chains in
Scan testing in embodiments of the invention may make use of external or internal testers, or combinations thereof.
Numerous alternative testers may be used to perform scan testing of an integrated circuit as disclosed herein. Also, as indicated previously, in alternative embodiments one or more portions of an external tester may be incorporated into the integrated circuit itself, as in BIST arrangement.
The insertion of scan chains, scan controllers and other associated circuitry in a given integrated circuit design may be performed in a processing system 800 of the type shown in
Elements such as 810, 812, 814 and 816 are implemented at least in part in the form of software stored in memory 804 and processed by processor 802. For example, the memory 804 may store program code that is executed by the processor 802 to implement particular scan chain functionality of module 810 within an overall integrated circuit design process. The memory 804 is an example of what is more generally referred to herein as a computer-readable medium or other type of computer program product having computer program code embodied therein, and may comprise, for example, electronic memory such as RAM or ROM, magnetic memory, optical memory, or other types of storage devices in any combination. The processor 802 may comprise a microprocessor, CPU, ASIC, FPGA or other type of processing device, as well as portions or combinations of such devices.
As indicated above, embodiments of the invention may be implemented in the form of integrated circuits. In a given such integrated circuit implementation, identical die are typically formed in a repeated pattern on a surface of a semiconductor wafer. Each die includes one or more circuit cores and scan circuitry as described herein, and may include other structures or circuits. The individual die are cut or diced from the wafer, and then each die is packaged as an integrated circuit. One skilled in the art would know how to dice wafers and package die to produce integrated circuits. Integrated circuits so manufactured are considered embodiments of this invention.
Again, it should be emphasized that the embodiments of the invention as described herein are intended to be illustrative only. For example, other embodiments of the invention can be implemented using a wide variety of other types of circuit cores, scan controllers and scan chains, with different types and arrangements of scan cells, as well as different types and arrangements of operating modes and control signaling, than those included in the embodiments described herein. These and numerous other alternative embodiments within the scope of the following claims will be readily apparent to those skilled in the art.