This disclosure relates to testing of an integrated circuit, and more particularly to a scan chain with shared input/output pins in order to reduce shift time.
Scan architectures are commonly used to test digital circuitry in integrated circuits (IC). Typical scan architectures scan in a test pattern, perform an operation with the test pattern and capture the results, then scan out the results while scanning in the next test pattern in an overlapped fashion. In many low power IC designs, the output buffers are restricted to lower speed operation in order to save power. The total test time is therefore limited by the scan speed determined by the output buffers.
Particular embodiments in accordance with the invention will now be described, by way of example only, and with reference to the accompanying drawings:
Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follows.
Specific embodiments of the invention will now be described in detail with reference to the accompanying figures. Like elements in the various figures are denoted by like reference numerals for consistency. In the following detailed description of embodiments of the invention, numerous specific details are set forth in order to provide a more thorough understanding of the invention. However, it will be apparent to one of ordinary skill in the art that the invention may be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description.
Scan architectures are commonly used to test digital circuitry in integrated circuits. As will be described in more detail below, the present disclosure describes a method of adapting conventional scan architectures into a—high speed scan architecture in which output drive strength may limit the output scan rate and thereby increase test time. Embodiments of the disclosure may make use of a non-interleaved scan procedure along with asymmetric compressor de-compressor (CoDec) architecture where all available scan pins act as inputs during the scan load mode while the same scan pins are operated as scan outputs during the scan unload procedure. The transition from input to output mode may be controlled by an internal logic module that works on the basis of sequence/pattern detection logic. In some embodiments, a partial serializer may be used, while in other embodiments a serializer may not be needed. The method exploits the fact that while scan outputs may be slower, when operating as scan inputs an input port may operate at a significantly higher frequency, which may be as high as possible in terms of automatic test equipment (ATE) capabilities and/or other design requirements. Therefore, scan input data may be loaded at a higher frequency while scan output data may be unloaded at a maximum frequency which the IOs (inputs/outputs) can handle. In this manner, test time may be reduced.
Typically tester 110 may be interfaced to the scan architecture by probing the die pads at wafer level, or by contacting package pins generally indicated at 101 that couple to test port 130 after the die is assembled into a package, for example.
While tester 110 connections to the primary inputs 112 and primary outputs 116 of logic 108 are shown, the primary input and output connections may be achieved by augmentation of scan path 104. For example, scan path 104 could be lengthened to include boundary scan cells located on each primary input and primary output of logic 108. The boundary scan cells would provide primary inputs to and primary outputs from logic 108, via widened stimulus and response busses 122 and 124, respectively. In some instances, logic 108 may be sufficiently tested by scan path 104 such that it is not necessary to provide primary inputs to and outputs from logic 108 via the tester or via the above described augmentation of scan path 104. For example, if the amount of logic 108 circuitry made testable by the use of scan path 104 in combination with the primary inputs and outputs is very small compared to the amount of logic 108 circuitry made testable by the scan path 104 alone, then the primary input and output connections to logic 108 may be removed without significantly affecting the test of logic circuitry 108. To simplify the description of the present disclosure, it will be assumed that logic circuit 108 is sufficiently tested using only scan path 104, i.e. the primary inputs 112 and primary outputs 116 are not required. However, it is clear that primary input and output connections to the tester or to an augmented scan path 104, as described above, could be used as well.
The scan inputs 208 and scan outputs 214 of multiple scan cells are connected to form the serial scan path 104. The stimulus path 216 and response path 206 of multiple scan cells in scan path 104 form the stimulus bussing path 122 and response bussing path 124, respectively, between scan path 104 and logic 108. From this scan cell description, it is seen that the FF is shared between being used in the normal functional configuration and the test configuration. During scan operations through scan path 104, the stimulus outputs 216 from each scan cell ripple, since the stimulus 216 path is connected to the scan output path 214. This ripple may cause all the inputs to logic 108 to actively change state during scan operations. Rippling the inputs to logic 108 causes power to be consumed by the interconnect and gating capacitance in logic 108.
Referring back to
In one realization, scan controller 130 may represent a test access port (TAP) controller circuit of IEEE standard 1149.1, A Standard Test Access Port and Boundary Scan Architecture, commonly referred to as JTAG (Joint Test Action Group). Alternatively, test port 130 may conform to IEEE 1149.7, which is a reduced pin count version of 1149.1. A brief description of JTAG 1149.1 and 1149.7 is provided by “Joint Test Action Group”, Wikipedia, as of Nov. 5, 2015, which is incorporated by reference herein.
In another realization, scan controller 130 may represent a boundary input/output serializer (BIOS) circuit, described in regard to FIG. 17 of U.S. Pat. No. 5,526,365, being used to control scans access to parallel scan paths. The description in U.S. Pat. No. 5,526,365 is incorporated herein by reference.
In another embodiment, another known or later developed test access port design may be used.
Today, there are a number of test synthesis vendor tools that can synthesize and insert scan architectures into ICs, similar in structure to the scan architecture shown in
Various known or later developed techniques may be used for a test pattern compression/decompression. For example, various type of encoding may be used, such as: statistical codes, run-length codes, or Golomb codes. Other implementations may be based on XOR networks, hybrid patterns, EDT (Embedded Deterministic Test), or reuse of scan chains, for example. Other implementations may be based on test pattern compaction and/or overlapping, for example. The test patterns may be compressed by an external tester or ATPG and then decompressed by decompressor 331 using one technique, while the result data may be compressed by compressor 332 using the same or a different compression technique.
Typically, a scan chain may contain several dozen, several hundred, or even several thousand scan cells. Typically, a long chain may be divided into several smaller chains that are then each coupled to decompressor 331 and compressor 332 and operate in parallel, as illustrated here. In this example, only four scan cells are illustrated in each scan chain 304 for simplicity, but it should be understood that each scan chain 304 may include several tens or hundreds of scan cells similar to scan cell 200.
In this example, four pins and related buffer circuitry 341-344 on the integrated circuit are allocated for scan IO buffers. All four scan pins may be used to scan in a test pattern during a first phase of a scan test under control of IO control signal 351. As the test pattern data is transferred from tester 110 to IC 100, a deserializer 360 may be used to divide each stream of test pattern data received on each input buffer 341-344 into two separate streams of data in order to form eight streams of test pattern data that are provided to decompressor 331 in this example. Decompressor 331 then parcels the test pattern data to the various scan chains 304 where it is then shifted through each scan chain by asserting the SCAN_EN signal 210 while the scan clock 212 operates for a period of time, referring back to
Once an entire pattern of test data is scanned into the scan chains 304, then the SCAN_EN signal 210 may be deasserted and one or more cycles of the scan clock 212 may be performed to cause response data from logic 108 to be loaded into the scan path. A sufficient number of clock cycles are performed during each test to input all stimuli to and to obtain all response from logic 108. During each test interval, the number of clock cycles may be just one for performing stuck-at testing, or two or more for performing sequential at-speed testing.
After a response from logic 108 has been captured in scan chains 304, the response data may then be scanned out by again asserting the SCAN_EN signal 210 and operating the scan clock 212 for a period of time. Compressor 332 may be used to compress the response data from multiple scan chains 304 down to just four streams of response data in this example. The IO buffers 341-344 are configured by IO control signal 351 to operate as output buffers during the scan out process.
A state machine 350 internal to IC 100 may be used to control the operation of the IO buffers. State machine 350 may be implemented in different manners, depending on how test pins are allocated on IC 100. In some embodiments, an external test pin may be allocated for the SCAN_EN signal 210 which allows tester 110 to control this signal. If the SCAN_EN pin is external then, then state machine 350 may detect an assertion edge of SCAN_EN and then configure the IO buffers into input mode. When an external tester wants to unload the scan chain, the external tester may de-assert the SCAN_EN signal and state machine 350 may then configure the IO buffers into output mode.
If the SCAN_EN signal does not have an allocated external test pin, then during first time when the device enters into scan test mode, such as after a reset operation, the IO buffers may be place in the input mode. State machine 350 may then monitor one or more of the input test pattern streams until a designated test pattern is observed and then configure the IO buffers as output buffers in response to detecting the designated pattern. A counter 352 internal to state machine 350, or otherwise accessible to state machine 350, may then be used to count a predefined number of cycles to determine when a shift out operation is complete. At that point, state machine 350 may then toggle the IO control signal 351 to again configure the IO buffers into input mode. While the IO buffers are in input mode, state machine 350 may again monitor the test pattern data stream for one or more designated patterns that may signify a particular action or mode of operation for state machine 350 to initiate.
While simple tri-state buffers are illustrated in
The propagation delay through a buffer typically includes an “inertial delay” component. Inertial delay is a function of capacitive load being driven and resistivity of the buffer as it tries to charge the capacitive load. In low power ICs, the drive capacity of the output buffers may be limited in order to conserve operating power. However, the input buffers may see a very small load and therefore may be able to operate at a significantly higher speed than the output buffers. Embodiments of this disclosure may take advantage of the inherent speed advantage of the input buffers.
Since the input buffers are lightly loaded and on the input side the relative delay between clock and data rather than absolute delay through the input buffers determine clocking rate, data received on the test pins may be clocked at a high rate. For example, referring again to
Once a complete test pattern is scanned into the scan chains 304, then the scan enable signal 210 may be deasserted, either under control of external tester 110 or under control of internal state machine 350, and one or more clock cycles performed during time period 502. As described above, one or more clock cycles may be used to capture a set of result data.
The scan enable signal 210 is then again asserted during time period 503, IO control signal 351 is set to configure IO buffers 341-344 into the output mode, and the scan clock 212 is cycled to scan out the results data to the external tester. Referring back to
Table 1 illustrates a comparison between a conventional scan chain operation in which the load and unload operations are overlapped and the improved mechanism described herein in which the load and unload operations are not overlapped. As described above in more detail, during overlapped operation, the overall frequency of operation may be limited by the speed of the output buffers. During non-overlapped operation, the load operation can proceed at the maximum speed of the input buffers using all of the test pins, while during the unload operation all of the test pins may be used at the lower speed of the output buffers. Compared to the conventional method the proposed method provides around 25-40% improvement in test time, depending on the ratio k of load frequency to unload frequency. Using an asymmetric CoDec architecture along with an optional partial de-serializer, all compressor outputs may be brought out directly on IOs. During the non-overlapped input, a 4:8 de-serializer may reduce the internal shift frequency to half of the external shift clock. Both these features may add to the test time savings.
Table 2 provides an example of test times between overlapped and non-overlapped operation for in IC that has four test pins allocated for scan data. The details of the non-overlapped operation are illustrated in
Using the non-overlapped mechanism described herein, loading of the 40,000 bit test pattern may use all four test pins. Assuming the tester as capable, the test pattern may be loaded using an external frequency of 100 MHz. The 4:8 deserializer then converts the data rate to 50 MHz which is used as the shift in clock frequency, resulting in a load time of approximately 102 ms. After performing a test using the scanned in test pattern, the captured result data is then scanned out using all four test pins operating at 15 MHz, which takes approximately 338 ms. In this example, the total test time is approximately 440 ms, which is approximately 35.5% faster than the overlapped example.
A test pattern is received 704 from an external tester, such as tester 110 referring to
A test pattern is scanned 706 into the scan chain using a shift clock operating at a first rate. A de-serializer may be provided to divide the test pattern streams received on the external test pins into additional streams. For example, a 4:8 deserializer such as deserializer 360 may produce eight streams of test pattern data from four streams received on four input buffers 341-344.
The test pattern is provided 708 to combinatorial logic circuitry coupled to the scan chain, such as logic 108 referring to
A response pattern to the test pattern from the logic circuitry is captured 710 in the scan chain. As described above, one or multiple clock cycles may be performed to identify “stuck at” problems or speed related problems, for example.
The response pattern is scanned 712 from the scan chain using a shift clock operating at a second rate that is slower than the first rate. For example, in the example illustrated in
The response pattern is provided 714 to the external tester using the same set of I/O pins operating in parallel. In this manner, the test pattern may be shifted in using all of the test scan pins and the response pattern may be shifted out using all of the test scan pins.
The non-overlapped scheme described herein allows full sharing of all of the data scan pins allocated to a test port on an IC, without the need for any bi-directional control from the external tester. The rate of loading test patterns and unloading captured test results are independent and may be selected based on the capability of the input buffer and the output buffer. No additional control signal toggling with a clock cycle is needed.
The non overlapped scheme may be scaled for use with as few as two data pins up to however many data pins are available.
The overlapped scheme is compatible with current automatic test equipment (ATE) used for semiconductor processing.
While the invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various other embodiments of the invention will be apparent to persons skilled in the art upon reference to this description. For example, while “flip flops” were used to describe the elements of a scan chain, various types of state saving circuitry may also be used as an element in a scan chain. For example, the following types of flip flops are typical: D type, JK, RS, T (toggle), etc.
While logic 108 was described herein as “combinatorial”, there may be various latches, registers, or other state saving circuitry included within logic 108 in various embodiments.
Certain terms are used throughout the description and the claims to refer to particular system components. As one skilled in the art will appreciate, components in digital systems may be referred to by different names and/or may be combined in ways not shown herein without departing from the described functionality. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” and derivatives thereof are intended to mean an indirect, direct, optical, and/or wireless electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, through an indirect electrical connection via other devices and connections, through an optical electrical connection, and/or through a wireless electrical connection.
Although method steps may be presented and described herein in a sequential fashion, one or more of the steps shown and described may be omitted, repeated, performed concurrently, and/or performed in a different order than the order shown in the figures and/or described herein. Accordingly, embodiments of the invention should not be considered limited to the specific ordering of steps shown in the figures and/or described herein.
It is therefore contemplated that the appended claims will cover any such modifications of the embodiments as fall within the true scope and spirit of the invention.
This application is a continuation of U.S. patent application Ser. No. 15/042,130, filed Feb. 11, 2016, incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5526365 | Whetsel | Jun 1996 | A |
20030112051 | Wakayama | Jun 2003 | A1 |
20070011542 | Mukherjee | Jan 2007 | A1 |
20080250288 | Souef | Oct 2008 | A1 |
20090132879 | Gangappa | May 2009 | A1 |
20100070810 | Whetsel | Mar 2010 | A1 |
20100162060 | Chakravarty | Jun 2010 | A1 |
20110264970 | Whetsel | Oct 2011 | A1 |
20130159801 | Whetsel | Jun 2013 | A1 |
20140013176 | Whetsel | Jan 2014 | A1 |
20140237312 | Gorti | Aug 2014 | A1 |
20150036783 | Chen | Feb 2015 | A1 |
20150198967 | Wang | Jul 2015 | A1 |
20150309116 | Whetsel | Oct 2015 | A1 |
20170234925 | Kawoosa | Aug 2017 | A1 |
Entry |
---|
“Joint Test Action Group”, Wikipedia, available at https://en.wikipedia.org/w/index.php?title=Joint_Test_Action_Group&oldid=689139361 on Feb. 1, 2016, pp. 1-10. |
Number | Date | Country | |
---|---|---|---|
20180372798 A1 | Dec 2018 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15042130 | Feb 2016 | US |
Child | 16117644 | US |