CROSS REFERENCE TO RELATED APPLICATION This application is a continuation of U.S. patent application Ser. No. 10/663,572, filed Sep. 15, 2003, entitled “Method and Apparatus for Performing Testing of Interconnections,” which application is incorporated by reference herein in its entirety.
BACKGROUND OF THE INVENTION 1. Field of the Invention
The invention relates to the testing of electronic equipment.
2. Description of the Related Art
In the manufacturing of electronic equipment, it is beneficial to test the proper operation of the manufactured equipment in order to maintain an expected level of quality. Testing may be performed on individual electronic components, subsystems, and complete systems. Since testing of subsystems and systems involves testing of interconnections between components, techniques have been developed to facilitate such testing.
One example of a technique for testing of interconnections between components is referred to as boundary scan. Boundary scan involves providing registers and supporting circuitry in components in accordance with an established boundary scan standard, such as Institute of Electrical and Electronics Engineers, Inc. (IEEE) Standard 1149.1, which was developed based on a proposal by the Joint Test Action Group (JTAG). A component with provisions for boundary scan may be configured using a test access port (TAP) to output or receive as input digital signals on the input/output (I/O) pins of the component. The TAP includes five pins consisting of the following: a test data input (TDI), a test data output (TDO), a test mode select (TMS), a test clock (TCK), and a test reset (TRST). Testing of an interconnection between two components is accomplished by configuring a first component to output a signal of a specified logic level and configuring a second component to receive as an input that signal and to identify the received logic level of that signal. An external test controller compares the logic level of the output signal with the received logic level of the input signal to determine if the interconnection between the components is passing the signal properly. The registers provided for boundary scan are configured to operate as shift registers, allowing the data of the output signal and the input signal to be shifted through the boundary scan chain, both within a component and among several components.
However, as the data rates with which components communicate increase, the ability to provide for boundary scan testing becomes increasingly difficult. Yet, such increased data rates require even higher standards of performance from the interconnections for which such testing is frustrated. Without an effective testing technique, assembly yield would be decreased, and total manufacturing cost would be increased. Also, some IC devices, such as memory devices, often don't support the additional pins due to package and silicon cost and complexity associated with the boundary scan macro. Thus, a technique is needed to provide a capability of advanced testing in modern electronic equipment.
BRIEF DESCRIPTION OF THE DRAWINGS The present invention may be better understood, and its features made apparent to those skilled in the art by referencing the accompanying drawings.
FIG. 1 is a block diagram illustrating a system configured to allow interconnect testing in accordance with an embodiment of the present invention.
FIG. 2 is a block diagram illustrating a testing environment within which one or more embodiments of the present invention may be practiced.
FIG. 3 is a block diagram illustrating a memory system configured to allow interconnect testing in accordance with an embodiment of the present invention.
FIG. 4 is a flow diagram illustrating a method for interconnection testing in accordance with at least one embodiment of the present invention.
FIG. 5 is a flow diagram illustrating a method in accordance with an embodiment of the present invention.
FIG. 6 is a flow diagram illustrating a method in accordance with an embodiment of the present invention.
The use of the same reference symbols in different drawings indicates similar or identical items.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT The present invention provides a method and apparatus configured to allow testing of interconnections between components in a system. The present invention utilizes a source of a known pattern, for example a pattern buffer, in a first component of the system and a capture buffer located in a second component of the system. The present invention avoids the need to introduce additional logic circuitry in line with existing input and output paths and avoids additional electrical loading of critical input and output circuitry, thereby avoiding the performance limitations that can be introduced by the introduction of such circuitry. Also, embodiments of the present invention can allow more rapid testing of systems by avoiding long chains of shift registers in series with the testing path. Also, embodiments of the present invention may be implemented to avoid the specific pin requirements mandated by the boundary scan technique, allowing the use of fewer pins and the possibility of reusing existing pins, for example, existing pins for implementing an existing communication path independent of the interconnections being tested, such as a serial link.
Moreover, embodiments of the present invention may be particularly suitable for use in memory systems, both because of the performance penalties that would be incurred in memory systems by attempts to implement prior art testing techniques and by the benefits to be achieved by providing an efficient technique for testing the typically large number of interconnect conductors found in memory systems.
Embodiments of the present invention are useful in that they are capable of providing “at speed” wire testing, in other words, being able to test interconnections using signals having similar alternating-current (AC) characteristics, including frequency, as signals intended to be present during normal operation of such devices.
FIG. 1 is a block diagram illustrating a system configured to allow interconnect testing in accordance with an embodiment of the present invention. The system comprises afirst component101 coupled to asecond component102 viainterconnection103.First component101 comprises afirst core circuitry104, afirst interface circuitry106, and afirst communication path105 couplingfirst core circuitry104 tofirst interface circuitry106.Second component102 comprisessecond core circuitry107 coupled tosecond interface circuitry109 viasecond communication path108.First interface circuitry106 offirst component101 is coupled tointerconnection103 and provided communication tosecond component102 viainterconnection103.Second interface circuitry109 ofsecond component102 is coupled tointerconnection103 and provides communication withfirst component101 viainterconnection103.
In at least one embodiment,interconnection103 comprisesinterconnection122, which is configured to communication information fromfirst component101 tosecond component102, andsecond interconnection123, which is configured to communication information fromsecond component102 tofirst component101. In at least one embodiment,first communication path105 comprises firsttransmit communication path110 and first receivecommunication path111. Firsttransmit communication path110 may includefirst multiplexer118, which is configured to select an input from among firsttransmit communication path110 andinput126, which is coupled to an output ofpattern buffer119.Multiplexer118 provides an output atnode124, which is a continuation of firsttransmit communication path110. Firsttransmit capture buffer114 is coupled tonode124 or, in the absence ofmultiplexer118, to first transmitcommunication path110. First receivecapture buffer115 is coupled to first receivecommunication path111.
In at least one embodiment,second communication path108 comprises second receivecommunication path112 and secondtransmit communication path113. Secondtransmit communication path113 may comprisemultiplexer120, which is configured to select an input from among secondtransmit communication path113 andinput127, which is coupled tosecond pattern buffer121.Second multiplexer120 provides an output at node125, which is a continuation of secondtransmit communication path113. Secondtransmit capture buffer116 is coupled to node125, or in the absence ofmultiplexer120, to secondtransmit communication path113. Secondreceive capture buffer117 is coupled to secondreceive communication path112.
In at least one embodiment,first component101 includes firstevent trigger circuitry128, which provides firstbuffer control signal132. Firstbuffer control signal132 is coupled to at least one offirst pattern buffer119, first transmitcapture buffer114, and first receivecapture buffer115 and may be used to control one or more of these elements. In at least one embodiment of the present invention,second component102 comprises secondevent trigger circuitry129, which provides secondbuffer control output133. Secondbuffer control output133 is coupled to at least one ofsecond pattern buffer121, secondtransmit capture buffer116, and secondreceive capture buffer117 and may be used to control one or more of these elements. Firstevent trigger circuitry128 offirst component101 and secondevent trigger circuitry129 ofsecond component102 may be coupled by a serial link, such as a bidirectional serial link or unidirectional serial links. Examples of unidirectional links includeunidirectional link130 andunidirectional link131. Such links may be used to coordinate operation offirst component101 andsecond component102 for interconnection testing.First component101 andsecond component102 may also be provided with other links, forexample link134 and link135. In at least one preferred embodiment, some or all oflinks130,131,134, and135 are implemented as serial links. Serial links typically minimize the complexity of the interconnections, thereby increasing reliability, which can provide a more robust way to bootstrap testing of other, typically more complex, interconnections.
During normal operation,first core circuitry104 offirst component101 sends information over first transmitcommunication path110, throughmultiplexer118 andnode124, tofirst interface circuitry106.First interface circuitry106 transmits the information overinterconnection122 tosecond interface circuitry109 ofsecond component102. Fromsecond interface circuitry109, the information is sent over second receivecommunication path112 tosecond core circuitry107. Likewise,second core circuitry107 ofsecond component102 sends information over second transmitcommunication path113, throughmultiplexer120 and node125, tosecond interface circuitry109.Second interface circuitry109 transmits the information viainterconnection123 tofirst interface circuitry106 offirst component101.First interface circuitry106 sends the information over first receivecommunication path111 tofirst core circuitry104. However, for such normal operation to be possible,interconnections122 and123 must be free of faults that would prevent such communication. Thus,interconnections122 and123 may be tested, in accordance with one or more embodiments of the present invention.
To perform testing ofinterconnection103 or portions thereof, a test pattern is provided atnode124 offirst component101.First pattern buffer119 may be loaded with a first pattern, which is then output viainput126 offirst multiplexer118 so that it may be provided atnode124. The first pattern present atnode124 is provided tofirst interface circuitry106, which transmits the first pattern viainterconnection122 tosecond interface circuitry109 ofsecond component102.Second interface circuitry109 passes the pattern to second receivecommunication path112, which allows reception by second receivecapture buffer117.
Optionally, testing of interconnections in an opposite direction, such as testing ofinterconnection123, may be accomplished either simultaneously with the testing ofinterconnection122 or at a different time. To perform such testing, a second pattern is provided at node125. Such a pattern may be provided by loading the second pattern intosecond pattern buffer121, which provides the second pattern to input127 ofmultiplexer120.Multiplexer120 is configured to pass the second pattern to node125, which provides the second pattern tosecond interface circuitry109.Second interface circuitry109 transmits the second pattern viainterconnection123 tofirst interface circuitry106 offirst component101.First interface circuitry106 passes the information to the second pattern to first receivecommunication path111, which allows reception of the second pattern at first receivecapture buffer115.
For the interconnection testing to be meaningful, information sufficient to convey meaningful detail of the captured first pattern in second receivecapture buffer117 with the first pattern as transmitted byfirst interface circuitry106 needs to be brought together for comparison. In one embodiment, information pertaining to the captured first pattern in second receivecapture buffer117 may be communicated tofirst component101 for example, viainterconnection123, link131, or link135, for comparison infirst component101 or to another component for comparison. Alternatively, information pertaining to the first pattern transmitted fromfirst interface circuitry106 may be communicated tosecond component102 via a path other thaninterconnection122, for exampleserial link130 orserial link134, for comparison atsecond component102, or may be communicated to another component for comparison.
Likewise, information pertaining to the second pattern transmitted fromsecond interface circuitry109 needs to be assembled at a common location with information pertaining to the captured second pattern in first receivecapture buffer115 to allow comparison. The entire captured or transmitted pattern may be communicated for comparison, or some other representative information, for example a value calculated from the captured or transmitted pattern, such as a cyclical redundancy check (CRC) value or other check sum value, may be communicated and used for comparison.
FIG. 2 is a block diagram illustrating a testing environment within which one or more embodiments of the present invention may be practiced. The testing environment comprisescomputer201, General Purpose Interface Bus (GPIB)controller202, serial control link (SCB)controller203,environmental chamber205,testing subsystem206,oscilloscope207,power supply208,frequency source209, serial peripheral interface (SPI)210, system control bus211, voltage current and temperature monitoring circuit213, device-under-test chipset214,selectable power interface215, andselectable clock interface216.
Computer201 is coupled viaserial link217 toenvironmental chamber205, which controls environmental conditions, for example, temperature and humidity, oftesting subsystem206.Computer201 is coupled viaPCMCIA interface218 to systemcontrol bus controller203. Systemcontrol bus controller203 is coupled viaserial interface221 toSPI210 oftesting subsystem206. Serialcontrol bus controller203 is coupled viabus222 to system control bus211.Computer201 is coupled via universal serial bus (USB)219 toGPIB controller202.
GPIB controller202 is coupled viaGPIB220 tooscilloscope207,power supply208, andfrequency source209.Oscilloscope207 may be selectively coupled to any points withintesting subsystem206 for which electrical measurements may be desirable, for example test points withinDUT chipset214.Power supply208 may be controlled byGPIB controller202 to provide selectable power outputs atpower bus224 toselectable power interface215.Selectable power interface215 allows selection of either onboard power (e.g., power from within testing subsystem206) or external power (e.g., from power bus224).
Frequency source209 may be controlled byGPIB controller202 to provide selectable signals totesting subsystem206 viaclock interface225.Selectable clock interface216 allows selection between onboard clock signals (e.g., clock signals generated within testing subsystem206) and external clock signals (e.g., clock signals provided via clock interface225).Selectable power interface215 may be configured to provide power toDUT chipset214.Selectable clock interface216 may be configured to provide clock signals toDUT chipset214. Voltage, current, and temperature monitoring circuit213 may be configured to monitor the voltage, current, and temperature parameters ofDUT chipset214.SPI210 and system control bus211 may be used to communicate information withDUT chipset214 and control testing operations withintesting subsystem206.PCMCIA interface218,SCB controller203,serial interface221,SPI210,bus222, and system control bus211 may be used to provide communication capability similar to any one or more ofserial links130,131,134, and135 ofFIG. 1.
FIG. 3 is a block diagram illustrating a memory system configured to allow interconnect testing in accordance with an embodiment of the present invention. The memory system ofFIG. 3 comprisesmemory controller301,memory device302, andinterconnection303, which couplesmemory controller301 tomemory device302.Interconnection303 comprisesserial link336,control bus337, anddata bus338.Memory controller301 comprisescore circuitry304,interface circuitry306, andcommunication path305, which couplescore circuitry304 tointerface circuitry306.Interface circuitry306couples memory controller301 tointerconnection303.
In at least one embodiment of the present invention,communication path305 comprises transmitcommunication path310 and receivecommunication path311. In some embodiments, transmitcommunication path310 comprisesmultiplexer318.Multiplexer318 producesoutput324, which is a continuation of transmitcommunication path310.Core circuitry304 is coupled to transmitcommunication path310, which is coupled, in those instances viamultiplexer318 andoutput324, to interfacecircuitry306.Interface circuitry306 is coupled to receivecommunication path311, which is coupled tocore circuitry304.Multiplexer318 is configured to select between inputs comprising transmitcommunication path310 andinput326, which is coupled to and receives a pattern frompattern buffer319.Output324, or in the absence ofmultiplexer318, transmitcommunication path310, is coupled to transmitcapture buffer314. Receivecommunication path311 is coupled to receivecapture buffer315.
In at least one embodiment of the present invention,memory controller301 further comprisesevent trigger circuitry328, which providescontrol signal332 to one or more ofmultiplexer318, transmitcapture buffer314, and receivecapture buffer315.Event trigger circuitry328 is configured to allow operation ofmultiplexer318, transmitcapture buffer314, and/or receivecapture buffer315 to enable interconnection testing. Control of event trigger circuitry may be accomplished, for example, viaserial link334, which is coupled tomemory controller301.
FIG. 4 is a flow diagram illustrating a method for interconnection testing in accordance with at least one embodiment of the present invention. The method begins by loading a first component pattern buffer, where the first component may, for example, be a controller, instep401.Optional Step402 comprises loading a second component pattern buffer, where the second component may be a system component other than the first component, for example, a graphics processor.Optional Step403 comprises setting up a capture buffer to receive a pattern. Step404 comprises transmitting a pattern. In at least one embodiment of the present invention, the pattern is transmitted from a pattern buffer. Step405 comprises capturing the pattern. In at least one embodiment of the present invention, the pattern is captured in a receive capture buffer. In at least one embodiment involving a memory system, the pattern is captured in a memory device.
Step406 comprises assembling information concerning the transmitted pattern and the captured pattern. In at least one embodiment of the present invention,Step406 involves communicating the captured pattern back to the component that transmitted the transmitted pattern. Optionally, other information sufficiently representative of the captured pattern may be communicated back to the component that transmitted the transmitted pattern, for example, an encrypted form or condensed representation of the captured pattern may be communicated. Examples of such a condensed representation include CRC values and other check sum information. In at least one embodiment of the present invention, the transmitted pattern may be communicated to a component holding the captured pattern. Optionally, an encrypted or condensed version of the transmitted pattern may be communicated. In at least one embodiment of the present invention, information concerning both the transmitted pattern and the captured pattern may be communicated to yet another component.
Step407 comprises comparing the captured pattern to the transmitted pattern. Optionally, information concerning the transmitted pattern, such as an encrypted or condensed version thereof, may be compared to information concerning the captured pattern, such as an encrypted or condensed version thereof. Step408 comprises identifying interconnect faults based on the comparison. Inferences may be made from any differences identified based on comparison of the captured pattern to the transmitted pattern.
For example, if the pattern is communicated over a parallel bus and one bit of the captured pattern always remains zero, regardless of the value of the corresponding bit of the transmitted pattern and the values of other bits of the transmitted pattern, it may be inferred that the portion of the interconnect corresponding to the bit that remains zero is shorted to ground. Likewise, it may be inferred that a portion of the interconnection corresponding to a bit that always remains one, regardless of the values of bits of the transmitted pattern, is shorted to a supply voltage or other high logic level. As another example, if the value of at least one bit of the captured pattern appears to have some dependence on the value of a bit of the transmitted pattern other than the corresponding bit of the transmitted pattern, it may be inferred that the portion of the interconnection that corresponds to the bit that exhibits the dependence is shorted to another portion of the interconnection that corresponds to the other bit or bits.
One or more embodiments of the present invention further compriseSteps409 through414. Step409 comprises loading a second pattern into the first controller pattern buffer. The second pattern may be similar to or different from the pattern loaded inStep401. Step410 comprises loading the second pattern into a memory device via a serial link. Step411 comprises performing a memory read operation. Step412 comprises capturing a second received pattern received from the memory device. Step413 comprises comparing the second captured pattern with the second pattern loaded into the memory device via the serial link inStep410. Step414 comprises identifying any interconnect faults based on the comparison ofStep413. It should be noted that at least one embodiment of the method ofFIG. 4 may be practiced with any two or more system components, for example, any two integrated circuit devices.
FIG. 5 is a flow diagram illustrating a method in accordance with an embodiment of the present invention. Step501 comprises loading a first pattern into a pattern buffer of a first component. Step502 comprises loading a second pattern into a pattern buffer of a second component. Step503 comprises enabling a capture buffer in the first component. Step503 may includeSteps504 and/or505. Step504 comprises enabling an incoming capture buffer in the first component. Step505 comprises enabling an outgoing capture buffer in the first component. Step506 comprises enabling a capture buffer in the second component. Step506 may includeSteps507 and/or508. Step507 comprises enabling an incoming capture buffer in a second component. Step508 comprises enabling an outgoing capture buffer in the second component. Step509 comprises transmitting patterns between a first component and a second component. Step509 may includeSteps510 and/or511. Step510 comprises transmitting a first pattern from the first component to the second component. Step511 comprises transmitting the second pattern from the second component to the first component. Step512 comprises extracting a first captured pattern from the first component. Step513 comprises extracting a second captured pattern from the second component. Step514 comprises comparing the second captured pattern to the first pattern. Step515 comprises comparing the first captured pattern to the second pattern. Step516 comprises identifying any interconnect faults. The interconnect faults may be identified based on the comparisons performed inSteps514 and/or515.
FIG. 6 is a flow diagram illustrating a method in accordance with an embodiment of the present invention. Step601 comprises loading a first pattern into a memory controller pattern buffer. Step602 comprises setting a memory device into a wire test mode via a serial link. Step603 comprises transferring the first pattern from the memory controller to the memory device via a control bus. Step604 comprises capturing the first pattern at the memory device. Step605 comprises transferring the captured first pattern from the memory device to the memory controller via the serial link. Step606 comprises comparing the captured first pattern to the first pattern that was transferred inStep603.
Step607 comprises loading a second pattern into the memory controller pattern buffer. A second pattern may be similar to or different from the first pattern. If the second pattern is similar to the first pattern and the first pattern is retained in the memory controller pattern buffer,Step607 may be omitted. Step608 comprises transferring the second pattern from the memory controller to the memory device via the serial link. Step609 comprises storing the second pattern at the memory device. Step610 comprises transferring the second pattern from the memory device to the memory controller via a data bus. Step610 may includeStep611. Step611 comprises performing a read operation to transfer the second pattern from the memory device to the memory controller via the data bus. Step612 comprises capturing the second pattern at the memory controller. Step613 comprises comparing the captured second pattern to the second pattern that was transferred inStep608. Step614 comprises identifying any interconnect faults. Interconnect faults may be identified based on the comparison performed inStep613.
In one or more embodiments of the present invention, information pertaining to the captured pattern may be assessed in any of a variety of ways. For example, information pertaining to the captured pattern may be compared to imbedded information stored in permanent memory, such as read only memory (ROM), programmable read only memory (PROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), electrically alterable programmable read only memory (EAPROM), FLASH memory, or other permanent or semi-permanent memory. As another example, information pertaining to the captured pattern may be compared to preloaded information that is loaded prior to capturing the captured pattern and is ready for comparison with the captured pattern or information relating thereto after the captured pattern has been captured. As another example, information relating to the captured pattern may be compared to information loaded for comparison after the captured pattern has been captured.
As another example, information relating to the captured pattern may be compared to encrypted or condensed information representative of the pattern being used for testing. Examples of encrypted information representative of the pattern being used for testing include both forms of encryption that may be decrypted to obtain the original pattern being used for testing and forms of one-way encryption for which decryption is not provided. Examples of condensed information representative of the pattern being used for testing include CRC values and other check sum values.
As another example, comparison of information pertaining to the captured pattern may be performed as part of a built-in self-test (BIST) process. In such a case, information pertaining to the captured pattern may be compared to other information used during the BIST process that relates back to the pattern being used for testing. As another example, a sequence of deterministic patterns may be used for testing. For example, a value represented by a pattern, such as a binary value, may be incremented or decremented to generate each successive pattern. A sequence of deterministic patterns could also be generated using a predictable coding, such as a gray code may be used. Use of a sequence of deterministic patterns allows that sequence to be generated both at a point in the system prior to transmission over the interconnect being tested and, optionally, at a point in the system where the pattern can be compared to the captured pattern. As yet a further example, information pertaining to a current captured pattern may be compared to information derived from a previously captured pattern. As a further example, a static testing pattern may be used, allowing the captured pattern to always be compared to the same standard.
In accordance with at least one embodiment of the present invention, testing may be performed on a variety of types of interconnections. For example, interconnections may include any type of medium or media supporting electromagnetic communication. More specific examples include radio frequency (RF) interconnections, wireless interconnections, ultrawideband (UWB) interconnections, optical interconnections, but, in at least one preferred embodiment, include electrically conductive interconnections.
In accordance with at least one embodiment of the present invention, various paths may exist between devices. For example, such paths may include one or more serial links and/or one or more parallel buses. Such paths may communicate signals in a variety of ways. For example, signals may be communicated as a current, a voltage relative to some reference, such as a ground voltage, a differential voltage, or in another form. Other forms may be applicable to other types of media. For example, a signal may be represented by a magnitude of electromagnetic energy, or by modulating the signal using some form of modulation, such as amplitude modulation, frequency modulation, phase modulation, pulse modulation, pulse coded modulation, or some other form of modulation.
While at least one embodiment of the present invention described herein has a point-to-point architecture (i.e., a direct connection between two components), the present invention may also be practiced with a variety of types of architectures. For example, one or more first components may be coupled to one or more second components via one or more point-to-point and/or one or more multidrop buses. A multidrop bus provides for the ability to connect more than two components via such a bus. With either point-to-point connections or multidrop connections, numerous configurations are possible. For example, one first component or component of a first type may be coupled to one second component or component of a second type by a point-to-point interconnection. As another example, a plurality of first components or components of a first type may be coupled to one second component or component of a second type via a multidrop interconnection, a plurality of point-to-point interconnections, or a combination thereof. As a further example, a first component or a component of a first type may be coupled to a plurality of second components or components of a second type via a multidrop interconnection, a plurality of point-to-point interconnections, or a combination thereof. As yet another example, a plurality of first components or components of a first type may be coupled to a plurality of second components or components of a second type via one or more multidrop interconnections, a plurality of point-to-point interconnections, or a combination thereof.
In accordance with at least one embodiment of the present invention, a method and apparatus for interconnect testing advantageously utilizes the diversity of multiple interconnections between components to identify and isolate interconnect faults within those multiple interconnections. For example, between devices that are coupled by two or more paths, such as buses or links, which may include serial links and/or parallel buses, a testing pattern or information related thereto may be communicated from a first component to a second component over a first bus and the testing pattern or information related thereto may be communicated from the second component to the first component over a second bus, thereby allowing comparison of the results of communication over the diverse paths to occur at the first component. As another example, the testing pattern or information related thereto may be communicated from the first component to the second component over the first bus, and the testing pattern or information related thereto may be communicated from the first component to the second component over the second bus, allowing comparison based on communication over the diverse paths to occur at the second component.
In accordance with one or more embodiments of the present invention, the techniques described herein may be applied for testing between integrated circuits on a circuit board. Such a circuit board may include a printed circuit board, a subset thereof, such as a multi-chip module, or a superset thereof, such as a system comprising multiple interconnected circuit boards. As another example, one or more embodiments of the present invention may be practiced with a memory system comprising a controller and one or more memory devices and may be used to test interconnections between the controller and the one or more memory devices. As another example, one or more embodiments of the present invention may be used to test components linked by a serial link.
Depending on the number of interconnections provided between components, the advantages of the diversity of communication over the several interconnections may be utilized to sequentially test the various interconnections. For example, a serial link may be initially tested, then used to test a parallel bus, for example by transmitting the pattern in one direction over the serial link and the in the opposite direction over the parallel bus. Likewise, multiple serial links or multiple parallel buses may also be tested. By confirming the integrity of each bus in sequence, a bus exhibiting an interconnect fault may be accurately identified. Even if multiple paths between components are not available, one or more embodiments of the present invention may be used to identify and isolate any interconnect faults within the bus that exists between the components. For example, by communicating the pattern over the bus in one direction, altering the pattern, then communicating the pattern over the bus in the opposite direction, the specific nature of any interconnect faults present may be identified and isolated. For example, by transposing the bit order between the transmission of the pattern in one direction and in the other direction, and by performing multiple tests using different patterns or different transpositions, the precise nature of any interconnect fault present can be determined.
Another advantage of the diversity of using both a serial link and a parallel bus for testing is that errors that affect only a serial or parallel bus may be identified. For example, timing errors or waveform distortion errors, such as errors induced by over shoot or under shoot that might occur on a serial link may be identified. Likewise, errors such as pattern-induced errors that arise as a result of certain combinations of bits being present on a parallel bus may be identified. By performing multiple testing cycles and varying the testing patterns used, testing patterns tailored to identify a particular type of fault for a particular type of bus may be generated and used to identify the specific nature of the faults and its location.
In accordance with one or more embodiments of the present invention, testing may be performed using a buffer width equal to or greater than the bus width of the interconnections or, a buffer having a buffer width of less than the bus width may be used. For example, a buffer, such as a pattern buffer or capture buffer, having a buffer width of less than the bus width may be multiplexed onto the bus such that multiple testing cycles may be performed to test the entire bus width. Such multiple testing cycles may be performed using the same pattern or different patterns.
One or more embodiments of the present invention may be practiced in a manner that does not introduce additional components that would cause performance limitations within the system being tested. Consequently, both testing and normal operation of the system may be conducted using the same performance parameters, thereby maximizing performance. By being able to perform testing at the full speed at which the components under test normally operation (i.e., “at speed” testing), a valid assessment of the performance of the system may be made. Not only may direct current (DC) interconnect faults, such as opens or shorts, be identified, but AC performance characteristics may also be observed. For example, by performing testing using patterns communicated so as to have similar AC characteristics as information communicated during normal operation, even interconnect faults involving complex impedances may be identified. For example, reactive interconnect faults, such as capacitive or inductive interconnect faults may be identified. An example of such a fault would include an excessive parasitic capacitance that might interfere with high frequency communication between components.
In accordance with one or more embodiments of the present invention, similar or different timing may be used to transmit and capture the pattern being used for testing. For example, a capture buffer may capture more than one sample for each transition of the transmitted pattern. As an example, by causing the capture buffer to sample at a high rate, dynamic disturbances, such as overshoot and undershoot, following a transition of the transmitted pattern may be observed. By adjusting the timing and frequency of transmission and sampling of the pattern, a time domain analysis may be performed, for example to yield information of the sort that might otherwise be obtained using time domain reflectometry techniques. Such a time domain analysis may be used to obtain a spatial characterization of the interconnection, for example allowing the location of a fault along an interconnection to be identified.
It should be noted that one advantage of time domain analysis in accordance with at least one embodiment of the present invention provides over traditional time domain reflectometry is that an actual measurement of the interconnect can be made using the actual circuitry coupled to that interconnect, rather than relying on external testing apparatus that may yield artificial test results. Time domain analysis may be performed by performing at speed interconnect testing using different patterns and accumulating capture pattern information so as to synthesize an eye diagram of the characteristics of the captured patterns. Set up and hold time characteristics may be observed in such an eye diagram by adjusting the timing used to transmit or capture the pattern, for example by adjusting a reference clock. An eye diagram maybe interpreted to identify interconnect faults. For example, if a conductive interconnect trace on a circuit board is over edged, the height of the eye would be smaller. If the conductive interconnect trace of the circuit board is under edged, the width of the eye would be smaller. Another advantage that may be provided over traditional time domain reflectometry techniques is that a large number of interconnect conductors may be analyzed simultaneously.
In accordance with the aspects of the invention described herein, one or more embodiments of the present invention may be used to identify a wide variety of different types of interconnection faults. These various types of faults may include open faults, short faults, power or ground faults, pattern-induced faults, AC-related faults, intermittent faults, as well as spatial characterizations thereof. For example, an open fault, such as a broken conductor or a conductor exhibiting abnormally high resistance, may be identified. As another example, a short fault, such as a conductor shorted to another conductor, such as another interconnect conductor, a ground conductor, a power conductor, or some other conductor. As another example, a power or ground fault may include faults arising from inadequate provision of power or ground, such as static or dynamic anomalies in power or ground conductors that affect the quality of the pattern as it is transmitted and/or received.
As another example, pattern-induced faults may arise when a particular combination of bits in a pattern tends to result in unreliable operation. As a further example, AC-related faults may include capacitive faults, such as those that may occur from improper spacing of circuit board traces, which may results from over etching or under etching of a circuit board. AC-related faults may also include inductive faults, as well as lossy dielectric faults. As yet another example, intermittent faults may include faults of a mechanical nature that can arise. For example, when a system or portion thereof is subjected to mechanical shock or vibration, as well as thermally related faults that may manifest themselves as temperatures change and materials expand or contract or properties of semiconductors are affected. Not only is the existence of such a wide variety of faults possible, but also, by implanting time domain analysis in accordance with one or more embodiments of the present invention, spatial characterization of such faults may be achieved, including determination of the location of a fault along the path of an interconnection.
According to one or more embodiments of the present invention, a pattern buffer may be implemented as either a register, which may be loaded with a value representing the pattern, or circuitry capable of generating multiple patterns over time, for example a pattern generator configured to generate multiple patterns over time or a first-in-first-out (FIFO) buffer which may be loaded with multiple patterns over time. Even in the case of a pattern buffer implemented as a single register, control circuitry may be provided to load the register with multiple patterns over time. Also, a capture buffer may be implemented as a register or as a circuit capable of receiving multiple patterns over time, such as a FIFO buffer. It should be noted that, with appropriate control logic, even a capture buffer implemented as a register may be used to receive multiple patterns over time, provided those patterns are retrieved from the capture buffer with adequate promptness.
In accordance with one or more embodiments of the present invention, methods and/or apparatuses described herein may be implemented in a manufacturing environment, for example to test a finished assembly before shipping, or to perform diagnosis of a defective item without the need to open the case and closing that item. Also, methods and apparatuses described herein may be used to test a system or a portion thereof during normal operation or in close temporal proximity thereto. For example, one or more embodiments of the present invention may be implemented to provide a BIST capability. Consequently, built-in self-testing may be conducted specifically on interconnects, as well as on other system components.
One or more embodiments of the present invention may be practiced to perform testing on any sort of interconnections. For example, any sort of interconnections between system components, such as integrated circuits, may be tested. As an example, interconnections on a printed circuit board between integrated circuits may be tested. As another example, interconnections across a cable may be tested. As another example, one or more embodiments of the present inventions may be applied to back plane testing to assure the integrity of a back plane to couple circuit boards within a system.
One or more embodiments of the present invention may be practiced to between similar and/or different types of system components. Control of system components may be centralized or distributed. For example, control circuitry to enable and coordinate one or more pattern buffers, one or more capture buffers, and one or more trigger circuits may be localized on one system component or may be distributed among two or more system components. One or more system components may be provided with a pattern buffer, a capture buffer, and trigger circuitry, while one or more other system components may omit one or more of a pattern buffer, a capture buffer, and a trigger buffer. For example, a system component that does not include a pattern buffer may not generate patterns by itself, but may rely on another system component to generate patterns.
It should be noted that, while a transmission capture buffer may be implemented, for example to be used for debugging purposes, one or more embodiments of the present invention may be practiced without the use of a transmit/capture buffer. Also, functionality of other components, such as a pattern buffer or a receive/capture buffer may be implemented within another portion of a system component, for example within core circuitry. In such cases, elements so implemented, need not be explicitly implemented as separate portions within the system component. Even so, embodiments of the present invention may be practiced without altering interface circuitry of the system component in a manner that would impair the performance of that system component.
Accordingly, a method and apparatus for performing testing of interconnections between components of a system has been described. It should be understood that the implementation of other variations and modifications of the invention in its various aspects will be apparent to those of ordinary skill in the art, and that the invention is not limited by the specific embodiments described. It is therefore contemplated to cover by the present invention, any and all modifications, variations, or equivalents that fall within the spirit and scope of the basic underlying principles disclosed and claimed herein.