This description relates to integrated circuit testing systems and methods, and, more particularly, to performing parametric tests using boundary scan elements.
Boundary scan is a method for testing interconnects on a printed circuit board or in an integrated circuit at the inputs and outputs of the circuit, in a stand-alone configuration, in a loop-back mode, or on an interposer with multiple integrated circuits placed thereon. Boundary scan testing involves the use of test cells (also referred to as boundary scan elements) that are internally connected to the input/output pins of an integrated circuit. These boundary scan elements are connected in a dedicated path internal to the integrated circuit and typically positioned around the boundary of the integrated circuit. This path provides a virtual access capability that circumvents (or overrides) the normal circuit inputs and/or outputs to provide direct control of the device for testing interconnects. The path provides controllability using boundary scan elements at the device outputs to provide stimuli to the interconnects outside the device. It also provides visibility at the device inputs to observe the response on the interconnects to the test stimuli that are driven through the boundary scan elements. Boundary scan thus provides a mechanism by which to gain test access to an integrated circuit board without requiring physical test probes external to the device.
According to one example, a circuit comprises at least one first input/output (I/O) device, at least one boundary scan element coupled to the at least one first I/O device, at least one second I/O device, and test circuitry configured to selectively couple the at least one second I/O device to the at least one boundary scan element, the test circuitry including a test controller coupled to the at least one boundary scan element and configured to control the at least one boundary scan element to drive the at least one first I/O device and the at least one second I/O device with a binary test signal.
According to another example, a circuit (e.g., an integrated circuit or other device) comprises a circuit board, a plurality of first input/output (I/O) devices disposed on the circuit board, a corresponding plurality of boundary scan elements disposed on the circuit board, individual boundary scan elements of the plurality of boundary scan elements coupled to respective individual first I/O devices of the plurality of first I/O devices, and a plurality of second I/O devices disposed on the circuit board and coupled to one or more of the plurality of boundary scan elements.
According to another example, a method comprises performing a first boundary scan test by (i) driving a plurality of first input/output (I/O) devices using a plurality of boundary scan elements, and (ii) observing first state signals from the plurality of first I/O devices. The method further comprises controlling a plurality of switches to couple the plurality of boundary scan elements to a plurality of second I/O devices, and performing a second boundary scan test by (i) driving the plurality of second I/O devices using the plurality of boundary scan elements, and (ii) observing second state signals from the plurality of second I/O devices.
Techniques are described for implementing direct current (DC) parametric testing of an integrated circuit using boundary scan elements that are shared among sets of input/output (I/O) pins. In particular, examples provide techniques for using boundary scan elements provided in a circuit for one set of I/O pins to test interconnects among one or more other sets of I/O pins that do not have dedicated boundary scan elements. By sharing boundary scan elements according to examples described herein, test access can be provided for I/O pins that otherwise may not be available for testing and/or circuit footprint can be reduced by reducing the number of boundary scan elements needed to provide full testing capability. In one such example, a circuit comprises at least one first input/output (I/O) device, at least one boundary scan element coupled to the at least one first I/O device, and at least one second I/O device coupled to the at least one boundary scan element via test circuitry. The test circuitry may comprise a test controller coupled to the at least one boundary scan element and configured to control the at least one boundary scan element to drive the at least one first I/O device and the at least one second I/O device with a binary test signal.
As described above, boundary scan testing provides a mechanism by which to gain test access to an integrated circuit without the need for external physical probes. As circuits become more complex, physically testing all the circuit interconnects can be time-consuming and potentially difficult. Using boundary scan, the need for such physical test access can be eliminated, or at least reduced. In addition, boundary scanning provides the ability to test interconnects between circuits with arbitrary functionality, thereby eliminating or reducing the need to design circuit-specific test routines a multitude of various devices.
Devices communicate with external circuitry through their I/O pins. Devices configured to support boundary scan include boundary scan elements (or test cells) coupled to the I/O pins of the device and configured to selectively override the functionality of the respective I/O pins. As described further below, the boundary scan elements can include shift register cells that can be used to force test data through the circuit outputs of a first integrated circuit according to certain test conditions. Test results can be observed by reading the resulting signals present at the input pins of a second integrated circuit (connected via its input pins to the output pins the first integrated circuit). In some examples, to support boundary scan testing, a device includes a dedicated internal boundary scan element for each I/O pin. However, providing dedicated boundary scan elements for each individual I/O pin of a device can consume significant area on an internal circuit board of the device or inside an integrated circuit. Further, while standards requiring dedicated boundary scan elements exist for certain technologies and/or types of integrated circuits, such standards may not be applicable to other technologies and/or types of integrated circuits. As a result, circuits can be designed and produced in which not every I/O pin has a dedicated boundary scan element. For I/O pins that do not have dedicated boundary scan elements, DC parametric testing may be performed separately from the boundary scan used to test those I/O pins that do have dedicated boundary scan elements. This approach may add significant time to testing routines, and can add significant complexity. Furthermore, in some instances physical testing (e.g., using physical probes) of I/O devices lacking boundary scan elements may not be viable, and setting up functional tests for such I/O devices can be difficult.
Accordingly, techniques are disclosed herein for allowing boundary scan elements to be shared among sets of I/O pins, such that I/O pins that do not have dedicated boundary scan elements can nonetheless be tested using boundary scan test routines. In some examples, a control mechanism is provided to drive multiple sets of I/O devices with a single set of shared boundary scan elements. Furthermore, techniques are described by which boundary scan tests for I/O pins without dedicated boundary scan elements can be merged with tests for I/O pins with boundary scan elements as part of a single test routine or test sequence. In some examples, for I/O devices that do not have boundary scan elements associated therewith, control and observation mechanisms are provided using internal flip-flops (or other latch elements) and/or switches that directly connect I/O devices without boundary scan elements to I/O devices that do have boundary scan elements.
According to certain examples, a method of testing a circuit comprises performing a first boundary scan test by (i) driving a plurality of first I/O devices using a plurality of boundary scan elements, and (ii) observing first state signals from the plurality of first I/O devices. In some examples, two types of potential faults can be observed using boundary scanning, namely faults (e.g., open circuit or short circuit conditions) on individual input or output signal paths or faults across two adjacent input or output signal paths. Accordingly, the first I/O devices can be driven, via the boundary scan elements, with a binary test signal configured such that adjacent I/O devices have alternating binary values (e.g., logical 1s or 0s) applied. The use of a binary test signal with alternating binary values allows testing for faults across two adjacent signal paths. If no faults are present, a corresponding alternating binary pattern should be observed across the first state signals, as described further below. The method may further comprise controlling a plurality of switches to couple the plurality of boundary scan elements to a plurality of second I/O devices, and performing a second boundary scan test by (i) driving the plurality of second I/O devices using the plurality of boundary scan elements, and (ii) observing second state signals from the plurality of second I/O devices. Thus, the same boundary scan elements used to test the first I/O devices can be used to test the second I/O devices, thereby obviating the need for dedicated boundary scan elements to be provided for the second I/O devices. In some examples, the second I/O devices can be driven with a binary test signal, as described above for the first I/O devices.
In some examples, a circuit comprises a plurality of first I/O devices, a corresponding plurality of boundary scan elements, and a plurality of second I/O devices. In some examples, circuit is an integrated circuit, and the plurality of first I/O devices, the plurality of boundary scan elements, and the plurality of second I/O devices are disposed on a circuit board (or other substrate) that is part of and internal to the integrated circuit. For example, the circuit board may be an integrated circuit layout that includes a plurality of embedded circuit elements. The plurality of boundary scan elements are individually coupled to respective individual ones of the plurality of first I/O devices. Further, the plurality of second I/O devices can be selectively coupled to one or more of the plurality of boundary scan elements. Accordingly, the boundary scan elements can be used to perform boundary scan testing of the second I/O devices as well as of the first I/O devices. In some examples, the circuit includes a test controller coupled to the plurality of boundary scan elements and configured to drive the first I/O devices and the second I/O devices with a binary test signal. The test signal can be configured for DC parametric testing of the circuit.
These and other features are described in more detail below.
The circuit 100 further includes test circuitry 108 coupled to the plurality of boundary scan elements 104 and configured to allow some or all of the boundary scan elements 104 to be shared by the second I/O devices 106, as described further below. The test circuitry 108 may include a test controller 110 configured to drive the boundary scan elements with test signals to perform DC parametric testing of the first I/O devices 102 and the second I/O devices 106, as also described further below. The test circuitry 108 may further include circuitry, such as circuit traces, switches, and/or other components, that allow the second I/O devices to share the boundary scan elements 104 associated with the first I/O devices 102, as described further below.
Still referring to
Continuing with the examples of
According to certain examples, the boundary scan elements 104 include latch cells that, for normal operation of the circuit 100, are set such that they have no effect on the circuit 100 (e.g., on the circuitry 112) and are therefore essentially invisible. The individual latch cells of the boundary scan elements 104 can be connected together to form one or more boundary scan shift registers. In some examples, when the circuit 100A is set into a test mode, the boundary scan elements 104 allow a test data stream from the test controller 110 to be shifted from one latch into the next. Once a complete data word has been shifted into the circuit 100A being tested, it can be latched into place such that it drives defined signals through the connected output I/O devices 102 and/or 106. These signals can be read on the input I/O devices 102 and/or 106 of the second circuit 100B being tested, or via another read-out mechanism as described further below, to monitor for faults in the interconnections between the circuits 100A, 100B.
The test controller 110 can be configured to control the boundary scan elements 104 to perform one or more DC parametric tests of pairs of circuits 100 by sending particular test signals to the boundary scan elements 104. In some examples, the test signals, and expected test results, are defined by a test standard, such as a standard from the Joint Test Action Group (JTAG). In some such examples, the test signals and expected test results can be specified in a Boundary Scan Description Language (BSDL) file that is loaded to the test controller 110. In some examples, the test controller 110 can receive the BSDL file and/or other test instructions from external test equipment 114. Results of the test routine(s)/sequence(s) can also be provided from the test controller 110 to the external test equipment, either during a test routine or at a later time.
As described above, in certain examples, the test circuitry 108 comprises logic and/or other circuitry configured to allow boundary scan testing of the second I/O devices 106 using dedicated boundary scan elements 104 provided for the first I/O devices 102. Accordingly, the test circuitry 108 can include switches, circuit traces, and/or other components configured to selectively couple individual ones of the boundary scan elements 104 to one or more of the second I/O devices 106. Examples are described further below with reference to
Turning to
The circuit 100A further includes second I/O devices 106a and 106b. As illustrated, the second I/O devices 106a, 106b do not have dedicated boundary scan elements 104 associated therewith. As described above, this lack of boundary scan elements provided for the second I/O devices 106a, 106b could prevent certain testing of interconnections with the second I/O devices 106a, 106b, or present a need for more complex, time-consuming test routines. According to certain examples, however, the test circuitry 108 (
It will be appreciated that although only two first I/O devices 102a, 102b, and two second I/O devices 106a, 106b are shown in
Still referring to
In some examples, the test controller 110 provides the test signal via one or more direct digital interface (DDI) macros. For example, the test controller 110 may produce an 8-bit test signal that can drive four DDI macros to test 32 channels of I/O devices 102 and 106 in combination. With a configuration such as that shown in
For an even number of channels under test, an x-bit (e.g., 4-bit, 8-bit, etc.) test signal at circuit traces 202 can be repeated (e.g., concatenated), depending on the number of channels under test. For example, a test signal 1010 can be duplicated and concatenated to produce: 101010101010, etc. In this manner, adjacent channels (e.g., first I/O devices 102a, 102b may be positioned adjacent one another on the circuit board 116) can be driven with opposite binary values of the test signal at circuit traces 202, as described above. For an odd number of channels, however, concatenation of the binary test signal may result in some adjacent channels having the same binary value applied. For example, a test signal 101010101 (nine channels), duplication results in: 101010101101010101. Accordingly, to address this problem and allow parallel testing of higher numbers of channels, selective inversion can be applied in some boundary scan elements 104.
For example, referring to
As noted above, in the examples shown in
Referring to
The circuit 100D further includes first I/O devices 102a, 102b that are coupled to boundary scan elements 104a, 104b, as described above. In the illustrated example, the first I/O devices 102a, 102b are configured as output/transmit I/O devices. Boundary scan testing of the first I/O devices 102a, 102b may be accomplished using the boundary scan elements 104a, 104b, as described above. The outputs of the differential I/O devices 306a, 306b are coupled to switches 308a, 308b (collectively switches 308) that are also coupled to the inputs of first I/O devices 102a, 102b, and to the boundary scan elements 104a, 104b, as shown in
According to certain examples, when the circuit 100D is in a test mode, test data (e.g., supplied by the external test equipment 114) can be applied to the inputs of the differential I/O devices 306a, 306b (e.g., from another circuit 100). As described above, the test signals can include alternating sequences of binary values (e.g., 1010 . . . ) applied such that adjacent channels receive opposite binary values during any given test sequence. Responses of the differential I/O devices 306a, 306b to the test signals can be observed in a variety of ways.
For example, a first boundary scan sequence can be applied to test the first I/O devices 102a, 102b that have boundary scan elements 104a, 104b. As described above, the test signal can be applied from the test controller 110 to the boundary scan elements 104a, 104b, and the responses of the first I/O devices 102a, 102b can be observed in the output signals 204a, 204b, respectively. The switches 308a, 308b can then be operated (e.g., under control of the test controller 110) to connect the outputs of the differential I/O devices 306a, 306b to the boundary scan elements 104a, 104b. Responses of the differential I/O devices 306a, 306b to test signals applied to the inputs of the differential I/O devices 306a, 306b may then be read out via the boundary scan elements 104 under control of the test controller 110. Thus, in some examples, boundary scan testing of I/O devices with and without boundary scan elements can be performed in series.
Referring to
In the examples shown in
Referring to
Turning to
Thus, the various circuit configurations illustrated and described with reference to
As described above, examples provide techniques for applying boundary scan test routines for I/O devices that do not have dedicated boundary scan elements associated therewith.
Referring to
Referring to
Returning to
Referring again to
At operation 618, the second I/O devices 106 can be driven with a test signal (e.g., the test signal from the test controller 110) via the boundary scan elements 104, as described above.
At operation 620, second state signals representing the responses of the second I/O devices to the applied test signal can be observed.
In some examples, operation 606 involves using internal latch devices, as described above with reference to
Thus, aspects and examples provide techniques for applying boundary scan in circuits where at least some of the I/O devices do not have dedicated boundary scan elements. Boundary scan testing of these I/O devices can be performed in series or concurrently with boundary scan testing of other I/O devices that do have boundary scan elements. Accordingly, the time and resources needed to perform full DC parametric testing of a circuit can be reduced by leveraging existing boundary scan elements and avoiding the need for, possibly complex and time-consuming, separate testing of I/O devices without dedicated boundary scan elements.
Example 1 is a circuit comprising: at least one first input/output (I/O) device, at least one boundary scan element coupled to the at least one first I/O device, at least one second I/O device coupled to the at least one boundary scan element, and a test controller coupled to the at least one boundary scan element and configured to control the at least one boundary scan element to drive the at least one first I/O device and the at least one second I/O device with a binary test signal.
Example 2 includes the circuit of Example 1, wherein the at least one first I/O device comprises a plurality of first I/O devices arranged adjacent to one another, wherein the at least one second I/O device comprises a plurality of second I/O devices, and wherein the binary test signal comprises a series of bits having alternating binary values such that adjacent first I/O devices and adjacent second I/O devices are driven with bits having opposite binary values.
Example 3 includes the circuit of Example 2, wherein the second plurality of I/O devices comprises an odd number of I/O devices. The circuit further comprises at least one inverter coupled to the at least one boundary scan element.
Example 4 includes the circuit of any one of Examples 1-3, wherein the at least one second I/O device comprises a plurality of second I/O devices. The circuit further comprises at least one switch that selectively couples the plurality of second I/O devices to the at least one boundary scan element.
Example 5 includes the circuit of any one of Examples 1-4, further comprising at least one latch device coupled to the at least one second I/O device.
Example 6 includes the circuit of Example 5, further comprising at least one switch that selectively couples the at least one latch device to the at least one first I/O device.
Example 7 includes the circuit of any one of Examples 1-6, wherein the at least one first I/O device is a CMOS I/O device, and wherein the at least one second I/O device is a low voltage differential signal I/O device.
Example 8 is a circuit comprising: a circuit board; a plurality of first input/output (I/O) devices disposed on the circuit board; a corresponding plurality of boundary scan elements disposed on the circuit board, individual boundary scan elements of the plurality of boundary scan elements coupled to respective individual first I/O devices of the plurality of first I/O devices; and a plurality of second I/O devices disposed on the circuit board and coupled to one or more of the plurality of boundary scan elements.
Example 9 includes the circuit of Example 8, further comprising a plurality of latch elements coupled to the plurality of second I/O devices, wherein the plurality of first I/O devices comprises a first subset of first I/O devices and a second subset of first I/O devices, and wherein the plurality of second I/O devices are coupled to the one or more boundary scan elements coupled to the first subset of first I/O devices.
Example 10 includes the circuit of Example 9, further comprising a plurality of switches that selectively couple the plurality of latch elements to the second subset of first I/O devices.
Example 11 includes the circuit of any one of Examples 8-10, further comprising a test controller coupled to the plurality of boundary scan elements and configured to control the plurality of boundary scan elements to drive the plurality of first I/O devices and the plurality of second I/O devices with a binary test signal.
Example 12 includes the circuit of Example 11, wherein the binary test signal comprises a series of bits having alternating binary values such that adjacent first I/O devices of the plurality of first I/O devices and adjacent second I/O devices of the plurality of second I/O devices are driven with bits having opposite binary values.
Example 13 includes the circuit of Example 12, wherein the plurality of boundary scan elements comprises a first subset of boundary scan elements and a second subset of boundary scan elements, wherein the plurality of second I/O devices comprises an odd number of second I/O devices, wherein the first subset of boundary scan elements and the second subset of boundary scan elements are respectively coupled to alternating adjacent ones of the second I/O devices, and wherein the second subset of boundary scan elements individually comprise an inverter to invert binary values of the binary test signal.
Example 14 includes the circuit of one of Examples 12 or 13, wherein the plurality of boundary scan elements comprises a plurality of shift register cells.
Example 15 is a method comprising: performing a first boundary scan test by (i) driving a plurality of first input/output (I/O) devices using a plurality of boundary scan elements, and (ii) observing first state signals from the plurality of first I/O devices; controlling a plurality of switches to couple the plurality of boundary scan elements to a plurality of second I/O devices; and performing a second boundary scan test by (i) driving the plurality of second I/O devices using the plurality of boundary scan elements, and (ii) observing second state signals from the plurality of second I/O devices.
Example 16 includes the method of Example 15, wherein observing the second state signals comprises reading a plurality of latch devices coupled to the plurality of second I/O devices.
Example 17 includes the method of Example 16, wherein observing the second state signals comprises controlling another plurality of switches to couple the plurality of latch devices to a subset of the plurality of first I/O devices, and observing the second state signals via the subset of the plurality of first I/O devices.
Example 18 includes the method of any one of Examples 15-17, wherein driving the plurality of first I/O devices comprises driving adjacent first I/O devices with opposite binary values.
Example 19 includes the method of Example 18, wherein driving the plurality of second I/O devices comprises driving adjacent second I/O devices with opposite binary values.
Example 20 includes the method of Example 19, wherein the plurality of second I/O devices comprises an odd number of second I/O devices, and wherein driving the plurality of plurality of second I/O devices comprises inverting, using at least one of the plurality of boundary scan elements, a binary test signal applied to a subset of the plurality of second I/O devices.
In this description, the term “couple” may cover connections, communications, or signal paths that enable a functional relationship consistent with this description. For example, if device A generates a signal to control device B to perform an action: (a) in a first example, device A is coupled to device B by direct connection; or (b) in a second example, device A is coupled to device B through intervening component C if intervening component C does not alter the functional relationship between device A and device B, such that device B is controlled by device A via the control signal generated by device A.
A device that is “configured to” perform a task or function may be configured (e.g., programmed and/or hardwired) at a time of manufacturing by a manufacturer to perform the function and/or may be configurable (or reconfigurable) by a user after manufacturing to perform the function and/or other additional or alternative functions. The configuring may be through firmware and/or software programming of the device, through a construction and/or layout of hardware components and interconnections of the device, or a combination thereof.
As used herein, the terms “terminal,” “node,” “interconnection,” “pin,” and “lead” are used interchangeably. Unless specifically stated to the contrary, these terms are generally used to mean an interconnection between or to a terminus of a device element, a circuit element, an integrated circuit, a device or other electronics or semiconductor component.
A circuit or device that is described herein as including certain components may instead be adapted to be coupled to those components to form the described circuitry or device. For example, a structure described as including one or more semiconductor elements (such as transistors), one or more passive elements (such as resistors, capacitors, and/or inductors), and/or one or more sources (such as voltage and/or current sources) may instead include only the semiconductor elements within a single physical device (e.g., a semiconductor die and/or integrated circuit (IC) package) and may be adapted to be coupled to at least some of the passive elements and/or the sources to form the described structure either at a time of manufacture or after a time of manufacture, such as by an end user and/or a third party.
In this description, unless otherwise stated, “about,” “approximately” or “substantially” preceding a parameter means being within a range of that parameter, such as +/−10 percent of that parameter or +/−5 percent of that parameter.
Modifications are possible in the described examples, and other examples are possible within the scope of the claims.
This application claims the benefit of and priority to U.S. Provisional Patent Application No. 63/581,313 filed on Sep. 8, 2023, which is hereby incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63581313 | Sep 2023 | US |