A system on a chip or “system on chip” (SoC) is a monolithic integrated circuit that includes all components of an electronic system, such as a computer. To verify that the components perform correctly and are free of defects, silicon automated test equipment (ATE) may be used to perform scan tests. During a scan test, one or more scan chains in the device under test (DUT) operate as shift registers to receive test pattern data from the ATE. The device components then operate on the test pattern data from the scan chain, producing test result data as output from the various components. One or more of the scan chains may capture the test result data, once again acting as a shift register to convey the test result data to the ATE. The ATE evaluates or in some fashion analyzes the test result data to determine whether the device performs correctly and/or is free of defects. For example, the test result data may be compared against a “target vector” of expected result data for the provided test pattern.
As the design of SoCs become more complex (e.g., to include more components), the number and/or length of scan chains increases, increasing the complexity of the testing process. For example, as the number of components increases, the number and length of test patterns may also increase, substantially increasing the volume of test pattern data that the ATE sends to the DUT and the volume of test result data that the ATE receives from the DUT. Digital I/O pins may be used to convey test data to and from the scan chains. In order to reduce the time required to perform the tests, one option may involve using a greater number of digital I/O pins. However, in large System-on-Chip (SoC) ASIC designs and implementations, a chip may be pin limited. Therefore, providing a greater number of digital I/O pins may not be feasible. Even if the number of input and output ports on the DUT is increased, the required testing time may still be undesirably lengthened.
Accordingly, there are disclosed in the drawings and the following description test methods and systems employing serializer/deserializer (SerDes) ports on the DUT to receive and send test pattern and result data as bit streams of interleaved scan test data to and from multiple scan chains. An illustrative testing method embodiment includes: receiving an input bit stream via an input pin of a serializer/deserializer (SerDes) port of a device under test (DUT), the input bit stream including interleaved test patterns; demultiplexing the input bit stream to concurrently provide a de-interleaved test pattern to each of multiple scan chains in the DUT; processing the de-interleaved test patterns from the multiple scan chains to obtain test results that are stored by the multiple scan chains; multiplexing the test results from each of the multiple scan chains to provide an output bit stream having interleaved test results; and transmitting the output bit stream via an output pin of the SerDes port.
An illustrative integrated circuit device embodiment includes: an input pin and an output pin of a serializer/deserializer (SerDes) port; a test receiver; multiple scan chains; one or more logic components; and a test transmitter. The SerDes port receives an input bit stream via the input pin, the input bit stream including interleaved test patterns. The test receiver includes a demultiplexer that converts the interleaved test patterns into parallel, de-interleaved test patterns. The multiple scan chains each store a corresponding one of the de-interleaved test patterns. The logic components operate on the stored test patterns to produce vectors of test results stored by the multiple scan chains. The test transmitter transmits an output bit stream via the output pin, the test transmitter including a multiplexer that coverts parallel test result vectors into a payload of interleaved test results for the output bit stream.
The disclosed embodiments may optionally have one or more of the following additional elements in any suitable combination. 1. detecting a start frame delimiter in the input bit stream, wherein the start frame delimiter identifies a beginning of a test pattern data frame. 2. in response to said detecting, initializing a counter that coordinates said demultiplexing of the input bit stream. 3. the counter drives a selection input of a demultiplexer performing said demultiplexing. 4. interleaving the test results in a bitwise fashion to form a payload for a test result frame. 5. prepending pre-frame bits to the test results from each scan chain. 6. interleaving the pre-frame bits to form a start frame delimiter that indicates a beginning of the test result frame. 7. aligning a bit from each de-interleaved test pattern with a scan chain clock to provide N bits in parallel to N scan chains. 8. N is at least four. 9. the scan chain clock is at least 100 MHz. 10.the input bit stream conveys interleaved test patterns at a rate of at least 10 Gbits/sec. 11. a frame locker that detects a start frame delimiter in the input bit stream. 12. the frame locker initializes the counter in response to detecting the start frame delimiter. 13. the multiplexer interleaves the test results in a bitwise fashion to form the payload for a test result frame. 14. the transmitter prepends a start frame delimiter to the payload to indicate the beginning of the test result frame. 15. an alignment block that aligns bits from the de-interleaved test patterns with a scan chain clock to provide N bits in parallel to N scan chains.
In the drawings:
It should be understood, however, that the specific embodiments given in the drawings and detailed description do not limit the disclosure. On the contrary, they provide the foundation for one of ordinary skill to discern the alternative forms, equivalents, and modifications that are encompassed together with one or more of the given embodiments in the scope of the appended claims.
Disclosed herein are test methods and systems conveying scan test data via SerDes ports. According to one embodiment, a method for testing operation of a device under test (DUT) includes receiving an input bit stream at a SerDes input pin, the input bit stream including interleaved test pattern data for a plurality of scan chains of the DUT. The method further includes demultiplexing the input bit stream, and providing a de-interleaved test pattern to each of the plurality of scan chains. The method further includes enabling components of the DUT to operate on the test pattern from each of the plurality of scan chains to produce test result data, which may be captured by the scan chains as test result data, and multiplexing the test result data from the plurality of scan chains to produce an output bit stream that is transmitted via a SerDes output pin.
In at least some embodiments, the DUT includes one or more SerDes ports to support high bandwidth serial communications, and may employ one of these SerDes ports to support communications between automated test equipment (ATE) and Joint Test Action Group (JTAG)-compliant test data receivers and transmitters. The test data receivers and transmitters provided by IEEE Std. 1149.6 are designed to perform boundary-scan testing, i.e., Joint Test Action Group (JTAG) testing. These test receivers and transmitters may be designed to perform the JTAG testing of primarily board-level features, e.g., whether integrated circuit chips are properly soldered on the board, whether electrical shorts are present, etc., and may thus have a relatively low bandwidth (e.g., on the order of 100 to 200 Mbit/s) deemed sufficient to facilitate boundary-scan testing at the board level. Where JTAG testing is desired for components of complex SoC devices, such testing may benefit from using available SerDes interfaces which are equipped to handle data speeds that are significantly higher than the IEEE Std. 1149.6 bandwidths. For example, SerDes speeds may range from 10 to 25 Gbits/sec, 50 Gbits/sec, or even more, enabling a single SerDes port to support communications with dozens or hundreds of IEEE Std. 1149.6 test receivers and transmitters, or more directly, to support communications with the scan chains that would otherwise be accessed via the JTAG-compliant test receivers and transmitters. The test pattern data for multiple such scan chains may be multiplexed and conveyed via a single SerDes input port, and similarly test result data from multiple such scan chains may be multiplexed and conveyed via a single SerDes output port. Accordingly, the number of I/O ports that is used to test multiple scan chains is reduced. In addition, because the SerDes ports offer faster speeds, the time that is required to perform the scan tests of multiple scan chains is reduced.
In operation during scan test mode, an automated tester device supplies an input bit stream to the serial input pin 102. The input bit stream includes multiplexed test pattern data for each of multiple scan chains (e.g., scan chains 108-1, 108-2, 108-3, . . . , 108-N). The test data is multiplexed in a manner such that the test pattern data is separable by the test receiver 104. The test receiver 104 demultiplexes the test pattern data, in order to provide the individual test patterns to their proper scan chains. In response to the test pattern data, the digital logic 108 produces test result data, which is captured by the scan chain. The test result data is provided to the test transmitter 110. The test transmitter 110 multiplexes the test result data and provides the multiplexed test result data to the serial output pin 112.
When not in scan test mode, the SerDes port may use serial input pin 102 and serial output pin 112 to receive and transmit SerDes traffic for a normal function of the device.
The test pattern data includes scan chain test patterns 208-1, 208-2, 208-3, and 208-4. Test pattern 208-1 is provided for a first scan chain (e.g., scan chain 108-1), and is composed of L bits (D0[0], D0[1], D0[2], . . . , D0[L−1]). Test pattern 208-2 is provided for a second scan chain (e.g., scan chain 108-2), and is composed of L bits (D1[0], D1[1], D1[2], . . . , D1[L−1]). Test pattern 208-3 is provided for a third scan chain (e.g., scan chain 108-3), and is composed of L bits (D2[0], D2[1], D2[2], . . . , D2[L−1]). Test patterns 208-4 is provided for a fourth chain (e.g., scan chain 108-N, where N=4 in the example of
To enable the test receiver 104 to unpack the test pattern data 208-1, 208-2, 208-3, and 208-4 from an input bit stream of multiplexed test patterns, the input bit stream may be structured as a set of one or more test pattern frames, each test pattern frame having pre-frame data that serves as a start frame delimiter (“SFD”) suitable for detection by the test receiver and enabling the test receiver to determine timing for the de-interleaving process. In
With continued reference to
With reference back to
As disclosed earlier with reference to
The lane selector 308 controls the demultiplexer 310 such that the test pattern data is directed to the proper scan chain (e.g., test pattern 208-1 to scan chain 108-1, test pattern 208-2 to scan chain 108-2, and so forth). Based on the interleaving illustrated in the example of
The counter serves as an index such that each bit of the test pattern data (e.g., payload 214) is sent to the correct scan chain (or lane). For example, when the value of the counter is equal to 0, the first bit of the payload 214 (D0[0]) is directed to a first lane 312-1. When the value of the counter is equal to 1, the next bit of the payload 214 (D1[0]) is directed to a second lane 312-2. When the value of the counter is equal to 2, the next bit of the payload 214 (D2[0]) is directed to a third lane 312-3. When the value of the counter is equal to 3, the next bit of the payload 214 (D3[0]) is directed to a fourth lane 312-4. When the 2-bit counter resets and is sequentially incremented, the next four bits of the payload are directed, in sequence, to the lanes 312-1, 312-2, 312-3, 312-4.
The alignment block 304 performs clock domain transfer operations. In scan test mode, the SerDes interface and the scan chain clocking operate according to different clock domains. For example, the SerDes interface may operate according to a clock having a frequency of fserDes, and preferably continues to operate at that frequency in the test mode. However, the transfer of test data to and from the scan chain may operate according to a clock having a frequency of fscan. The fserDes frequency is preferably equal to N times as the scan clock frequency fscan, where N is the number of scan chains. The alignment block is implemented to bridge the clock domain boundary from test data receiver clock to scan clock domain, capturing and holding test pattern bits as needed to enable capture by the scan chains at the next transition of the fscan clock signal.
The alignment block 304 outputs the test pattern data in parallel to the proper scan chains of the DUT. It is understood that, in the course of running the scan tests, extra scan clock cycles may occur with no data transfer operations. These extra cycles account for time that is required for the test receiver 104 to perform the operations described earlier (e.g., locking the SFD and stripping (or shifting out) the SFD from the test frame 216). As such, the integrity of the payload is maintained.
In a normal JTAG testing fashion, the device logic 108 may be applied to the test patterns from the scan chain to generate test results. The scan chains may capture the test results as they are generated, and output the test result data to the test transmitter 110.
To enable the automated test equipment to unpack the test results 508-1, 508-2, 508-3, and 508-4 from an output bit stream of one or more test result frames (e.g., test result frame 416), an SFD is provided. According to one embodiment, the SFD is formed from pre-frame data 210-1, 210-2, 210-3, and 210-4 described earlier with reference to
With continued reference to
The test result frame 416 is output as part of a serial output bit stream being provided to the automated tester via the serial output pin 112. It is understood that the test result frame 416 as illustrated in
When the automated test equipment receives the output bit stream, it is able to detect the SFD and lock the timing of the demultiplexing process for the duration of the payload. In this regard, another frame locker block 302 may recognize the SFD as the header of a frame, and recognize that the bits (e.g., payload 514) that follow the SFD correspond to test result data. The automated test equipment may then demultiplex the test result data. The demultiplexing may be performed in a manner similar to that described earlier with reference to the demultiplexer 310 of
In any event, the test result data is evaluated (compared to expected test results) and potentially analyzed (to discern the cause of any mismatches) in order to determine whether the device 106 operates correctly and/or is free of defects. For example, the automated test equipment may compare each actual test result vector against a target result vector for each scan chain.
Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. The methods and systems can be used for performing testing of and/or directing data in other devices, where pin availability may be limited. The ensuing claims are intended to cover such variations where applicable.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN16/82796 | May 2016 | US |
Child | 16022989 | US |