This invention relates to circuit testing, and more particularly, to testing input-output circuit features on integrated circuits.
The process of designing and testing modern custom integrated circuits is complex and expensive. Custom circuits, which are sometimes referred to as application-specific integrated circuits (ASICs), offer high performance, but can be costly to produce. Not only must a circuit be designed, but the lithographic mask sets that are used to fabricate the circuit in mass production must be designed and debugged.
Because of the large amount of effort involved in creating custom integrated circuits, it is generally only cost effective to develop a custom integrated circuit when a chip is needed in large volumes. Projects requiring smaller volumes of circuits are often implemented using programmable logic devices.
Programmable logic devices are a type of integrated circuit that can be customized in relatively small batches to implement a desired logic design. In a typical scenario, a programmable logic device manufacturer designs and manufactures uncustomized programmable logic device integrated circuits in advance. Later, a logic designer uses a logic design system to design a custom logic circuit. The logic design system uses information on the hardware capabilities of the manufacturer's programmable logic devices to help the designer implement the logic circuit using the resources available on a given programmable logic device.
The logic design system creates configuration data based on the logic designer's custom design. When the configuration data is loaded into one of the programmable logic devices, it programs the logic of that programmable logic device so that the programmable logic device implements the designer's logic circuit. The use of programmable logic devices in place of ASICs can drastically reduce the amount of effort required to produce a circuit.
To reduce costs and maximize performance when high volumes of programmable logic devices are required, programmable logic device manufacturers generally offer programmable logic devices that can be programmed using lithographic masks. The masks used for mask programming a mask-programmable logic device are much simpler than the lithographic mask sets used in ASICs. For example, a single mask layer might be sufficient to program a mask-programmable device (e.g., by forming a desired pattern of via contacts in a via array).
Because mask-programmed programmable logic devices offer much of the performance and cost benefits of ASICs, they are sometimes referred to as structured ASICs.
The process of implementing a complex circuit design in an electrically-programmed or mask-programmed programmable logic device typically requires testing. Testing can be performed by a manufacturer or by a logic designer.
Testing operations can involve the testing of logic circuitry in the programmable logic device core and the testing of input-output circuits. Input-output circuits generally contain a number of components such as pull-up resistors and clamp diode circuits that are used to provide special input-output circuit features (i.e., a voltage pull-up feature, an over-voltage protection feature, etc.).
The components in an input-output circuit are often interdependent, which makes testing difficult. For example, one cannot test clamp diode by applying an over-voltage if a pull-up circuit is present. With electrically-programmable programmable logic devices, it is possible to test these features independently, by selectively enabling and disabling various features in a series of tests. With mask-programmed programmable logic device integrated circuits, however, this flexibility is not available. Once a circuit is designed, the mask for that circuit creates a pattern of fixed connections in the circuit. The mask is fixed, so the circuit cannot be reconfigured multiple times to perform a series of tests.
Because it is not possible to achieve comprehensive structural test coverage for input-output circuits by varying the programming mask, conventional mask-programmed programmable logic devices have been provided with special test control circuitry. The test control circuitry is controlled by applying appropriate test control signals during testing. By varying the test control signals, the functionality of the circuit can be changed and various input-output circuit features can be tested successfully.
To avoid the need to provide extra pins, the test control signals are applied to the test control circuitry through pins that would otherwise serve as regular input-output pins for the device. This type of arrangement leads to a number of conflicts. For example, when a pin is being used as a test control pin, its voltage may be held at a particular value. When a pin is maintained at a constant voltage level, it is not possible to sense the voltage level on that pin as part of a test. This problem is exacerbated by conventional testing methodologies, which generally require that many test pins be maintained at appropriate fixed values, even if they are not actively being used to control a particular test.
These types of limitations preclude comprehensive structural testing of input-output circuits on a mask-programmed programmable logic device integrated circuit. Structural testing of input-output circuits on other types of integrated circuits can be equally difficult.
It would therefore be desirable to provide improved ways in which to test input-output circuits on integrated circuits.
The present invention allows input-output circuit features to be tested comprehensively. In particular, the invention allows input-output circuit features on mask-programmed integrated circuit devices to be tested comprehensively. Mask-programmed integrated circuits are configured using lithographic masks to implement custom logic designs. Input-output circuits on the mask-programmed devices have features that are selectively enabled by associated mask-programmed programmable elements. The features include features such as a pull-up resistance feature, a voltage clamp feature, a single-ended/differential feature, a differential input resistance feature, a bus hold feature, and an open-drain feature. In a given input-output circuit, the states of the programmable elements determine whether each feature is turned on or off (i.e., whether the feature has been implemented or not in that input-output circuit).
To decouple features from each other to allow effective structural testing, the mask-programmable integrated circuits of the present invention are loaded with feature selection instructions. The feature selection instructions may be loaded into an input-output circuit feature control register. The outputs of the feature control register serve to globally control which features are active. For example, a feature selection instruction might be loaded into the input-output circuit feature control register that contains a high pull-up feature selection bit. The high value of this bit will globally enable the pull-up feature. By globally enabling the pull-up feature in this way, those input-output circuits in which the pull-up feature has been implemented may be tested.
Different instructions may be loaded in series, to allow systematic and comprehensive input-output feature testing. The enabled input-output features may be tested using boundary scan techniques. Boundary scan testing may be performed using Joint Test Action Group (JTAG) standards or other suitable arrangements.
These testing arrangements may be used on mask-programmed programmable logic device integrated circuits or any other suitable type of integrated circuit.
Further features of the invention, its nature and various advantages will be more apparent from the accompanying drawings and the following detailed description of the preferred embodiments.
The present invention relates to testing integrated circuits. The integrated circuits being tested may be any suitable integrated circuits such as microprocessors, digital signal processors, application-specific integrated circuits, programmable logic device integrated circuits such as mask-programmable integrated circuits, etc. As a particular example, the invention is sometimes described in the context of mask-programmed integrated circuits having test circuitry for facilitating comprehensive structural testing of input-output circuits. Aspects of the invention that relate to systems and methods for testing integrated circuits are also described.
The integrated circuits being tested in accordance with the invention are generally referred to as mask-programmed programmable logic devices or structured ASICs (application specific integrated circuits). The invention also applies to the testing of integrated circuits with no programming capabilities and to programmable integrated circuits with programmable capabilities that might not typically be referred to as programmable logic devices. Programmable integrated circuits may include, for example, application specific integrated circuits with regions of mask-programmable logic, digital signal processors containing mask-programmable logic, microprocessors or microcontrollers with mask-programmable logic regions, etc. These mask-programmable devices are sometimes referred to herein as mask-programmed programmable logic device integrated circuits, mask-programmed devices, and mask-programmed integrated circuits.
An illustrative integrated circuit 10 which may be tested in accordance with the invention is shown in
As shown in
In general, programmable logic devices such as programmable logic device 10 may be electrically programmed or mask programmed. With electrical programming techniques, programming (configuration) data is loaded into programmable elements 20 using pins 14 and input/output circuitry 12. Electrically-programmed elements 20 may, as an example, be based on random-access memory (RAM) cells. With mask-programming techniques, a lithographic mask (or masks) is developed that contains the programming data necessary for programming the device 10. Programming masks for mask-programmed devices are generally much simpler and use more regular patterns than the lithographic masks used to fabricate custom integrated circuits. For example, a typical programming mask might define a pattern of via holes to be formed in an array of possible via hole locations. If a hole is not formed, a corresponding via is not formed. If a hole is formed, a via connects the metal lines of two different metallization layers in the dielectric stack of the device. Other mask-programming arrangements may be used if desired.
Regardless of whether programmable elements 20 are configured by electrically loading programming data or by mask programming during device fabrication, the configured programmable elements 20 each provide a control output signal that controls the state of an associated logic component in programmable logic 18. The configured elements may provide static control signals that are applied to the terminals (e.g., gates) of circuit elements (e.g., metal-oxide-semiconductor transistors) in programmable logic 18 to control those elements (e.g., to turn certain transistors on or off) and thereby configure the logic in programmable logic 18 to customize its functions. The circuit elements may be transistors such as pass transistors or parts of multiplexers, look-up tables, logic arrays, AND, OR, NAND, and NOR logic gates, etc.
The circuitry of device 10 may be organized using any suitable architecture. As an example, the logic of programmable logic device 10 may be organized in a series of rows and columns of larger programmable logic regions each of which contains multiple smaller logic regions. The logic resources of device 10 may be interconnected by interconnection resources such as associated vertical and horizontal conductors. These conductors may include global conductive lines that span substantially all of device 10, fractional lines such as half-lines or quarter lines that span part of device 10, staggered lines of a particular length (e.g., sufficient to interconnect several logic areas), smaller local lines that interconnect certain logic regions with other logic regions in a given area, or any other suitable interconnection resource arrangement. If desired, the logic of device 10 may be arranged in more levels or layers in which multiple large regions are interconnected to form still larger portions of logic. Still other device arrangements may use logic that is not arranged in rows and columns.
In some logic devices 10, the larger portions of logic may be referred to as “logic array blocks” (LABs) and the smaller portions of logic may be referred to as logic elements (LEs). This is merely one illustrative logic device arrangement 10. In general, the logic of device 10 may be provided using any suitable programmable logic device architecture.
Devices such as device 10 of
The input-output circuits on the programmable logic device 10 have associated programmable elements 20. The programmable elements of each input-output circuit can be configured to customize the operation of that input-output circuit. Customizable input-output functions such as these are often referred to as input-output features. The present invention allows these features to be comprehensively tested in mask-programmed devices.
An illustrative programmable logic device input-output circuit 22 is shown in
The input-output circuit 22 of
Input-output circuit 22 has an output buffer 26 and an input buffer 28. Output signals from core logic (not shown) are provided to buffer 26 at output line 30. Output control line 32 is used to control the operation of buffer 26. When control line 32 has one state, buffer 26 is enabled so that its output follows its input. When control line 32 has another state, buffer 26 is tristated (disabled), so that its output floats. Input signals for device 10 that are received from external circuitry through pin 14 are provided to the core logic of device 10 via input buffer 28 and associated input line 34. Input buffer enable 35 controls input buffer 28.
The pull-up feature of input-output circuit 22 is implemented using pull-up resistor 40. Pull-up resistor 40 is connected to a positive power supply voltage 42 (called Vcc in this example). Switch 36 is used to control whether the pull-up feature is enabled. The state of switch 36 is controlled by the control signals on control line 38. When switch 36 is open, the pull-up feature is disabled. When switch 36 is closed, resistor 40 provides a pull-up path between input-output pin 14 and positive power supply voltage 42. The resistor 40 is typically large, so the pull-up effect is relatively weak. In the absence of a defined voltage level on pin 14, the weak pull-up effect pulls the voltage on pin 14 to Vcc (i.e., a logic high signal).
The voltage clamp feature of the present invention prevents excess voltages from developing on pin 14. Switch 44 is used to selectively enable the voltage clamp feature. When the clamp diode control signal on control path 46 has one state, switch 44 is open and the diode voltage clamp feature is disabled. When the clamp diode control signal on control path 46 has another state, switch 44 is closed and the diode voltage clamp feature is enabled. With switch 44 closed, over-voltages are prevented from developing on pin 14. If the voltage on pin 14 becomes too large, diode 48 will turn on. This will pull the voltage on pin 14 towards the Vcc voltage level produced on power supply line 42. Diode 48 is sometimes referred to as a PCI diode, because over-voltage protection of the type provided using diode 48 is specified by the PCI communications standard.
Another input-output circuit feature that input-output circuit 22 may have is the so-called open-drain feature. An illustrative output buffer 26 with open drain control is shown in
Two other input-output features that an input-output circuit 22 may have relate to single-ended versus differential mode and input termination resistance. An illustrative input-output circuit 22 having selectable single-ended/differential and termination resistance features is shown in
Input-output circuit 22 of
Buffers 28A and 28B are singled ended buffers that handle signals that are referenced to ground. When input-output circuit 22 is placed in single-ended mode, circuit 22A handles single-ended signals for pin 14A and circuit 22B handles single-ended signals for pin 14B.
Input-output circuit 22 of
Using the control inputs for the single-ended and differential buffers in input-output circuit 22, input-output circuit 22 may be configured to operate in single-ended or differential mode, as needed. For example, circuit 22 can be placed in a differential input mode by disabling all buffers except differential input buffer 56. As another example, circuit 22 can be placed in a single-ended input mode in which circuits 22A and 22B each function as a single-ended input buffer by enabling input buffers 28A and 28B and disabling buffers 26A, 26B, and 56. Input-output circuits such as input-output circuit 22 of
Input-output circuit 22 of
Another input-output circuit feature that an input-output circuit may have is the so-called bus hold feature. An input-output circuit 22 with the bus hold feature is shown in
In an electrically-programmed programmable logic device, input-output circuit features such as the input-output circuit features described in connection with
As an example, consider the electrically-programmed programmable logic device arrangement of
Conventional electrically-programmable programmable logic devices can generally be operated in two modes—user mode and test mode. The device is placed in user mode during normal operation in a system. Test mode is used for testing a subset of the circuitry of the device. The remainder of the device circuitry can be tested in user mode.
Global control block 114 handles control operations related to mode transitions (e.g., enabling and disabling various components on the device). After power-up, global control block 114 applies a logic high signal to control line 110 (in both user mode and test mode).
Circuit 82 uses AND gates 106 and 102 to control how the high signal on line 110 is applied to the switches 96 and 92. The AND gates 106 and 102 each have one input that is connected to control line 110. The other input of each AND gate is connected to a respective programmable element. Programmable element 112 provides its output to the input of AND gate 106. Programmable element 108 provides its output to the input of AND gate 102. During testing, the programmable elements on the programmable logic device are loaded with test configuration data. Different sets of test configuration data are loaded at different times during a test. For example, one set of test configuration data may include a “1” for element 112 and a “0” for element 108 and another set of test configuration data may include a “0” for element 112 and a “1” for element 108.
The AND gates 106 and 102 selectively apply the output signal on line 110 to switches 96 and 92 depending on the states of the signals received from their respective programmable elements 112 and 108.
When it is desired to enable the pull-up feature, test configuration data is loaded into the device that places a “1” in element 112 and a “0” in element 108. With the “1” applied to its input, AND gate 106 allows the high signal (“1”) on line 110 to pass to switch 96 via line 104. This closes switch 96 and connects pull-up resistor 98 to input-output pin 90. Because a “0” has been loaded into element 108, the high signal on line 110 is prevented from passing to line 100 by AND gate 102, so switch 92 remains open. In this configuration, the pull-up feature is enabled and the clamp diode feature is disabled. This allows the pull-up feature to be tested by tristating output buffer 86 and monitoring pin 90 to determine whether the voltage on pin 90 is pulled up to Vcc as expected.
When it is desired to enable the clamp diode feature, test configuration data is loaded into the device that places a “0” in element 112 and a “1” in element 108. With the “1” applied to its input, AND gate 102 allows the high signal (“1”) on line 110 to pass to switch 92 via line 100. This closes switch 92 and connects diode 94 to input-output pin 90 to provide over-voltage protection. Because a “0” has been loaded into element 112, the high signal on line 110 is prevented from passing to line 104 by AND gate 106, so switch 96 is open. In this configuration, the pull-up feature is disabled and the clamp diode feature is enabled. The clamp diode feature can therefore be tested without interference from the pull-up circuit.
As this example demonstrates, comprehensive structural testing of input-output circuits in electrically-programmable programmable logic devices can be performed by selective loading of various sets of test configuration data.
A flow chart of the steps involved in the conventional testing of electrically-programmable programmable logic devices is shown in
At step 118 of
At step 120, the enabled input-output features are tested (e.g., by capturing signals using boundary scan registers in response to test vectors applied to the circuit).
The process is generally repeated as shown by line 112. During each cycle of the process, a different set of test configuration data may be loaded into the device, which allows a tester to systematically test various input-output circuit features without interference from the operations of other input-output circuit features.
Mask-programmed programmable logic devices cannot be tested in this way, because it is not possible to repetitively load different sets of test configuration data into a mask-programmed device. Once a given mask-programmed programmable logic device has been fabricated, its configuration is fixed. It is not possible to selectively isolate features during testing by varying the states of the device's programmable elements.
To address this problem, certain input-output pins are used as test control pins during testing of conventional mask-programmed devices. A typical arrangement is shown in
The state of test mode control line 152 is “0” during user mode and “1” during test mode. When it is desired to use an input-output pin such as pin 148 as a test control pin, the device is place in test mode, so the multiplexer 146 that is associated with that input-output pin is provided with a “1” at its control input via its line 152. This routes the input of multiplexer 146 that is connected to the pin 148 to output 144.
When multiplexer 146 has been configured in this way, the signals applied to pin 148 can be used as test control signals. The test control signals from pin 148 are routed through multiplexer 146 and are applied to input 130 of AND gate 132. The other input 128 of AND gate 132 is connected to the output of mask-programmed element 126. In a typical mask-programmed programmable logic device there are numerous input-output circuits 156, each having an associated input output pin 138 and associated buffer circuitry such as output buffer 140. There are also numerous mask-programmed elements 126. Depending on the programming mask used during fabrication of the device, the mask-programmed element 126 in a given input-output circuit 156 might be configured to provide a high (“1”) output at Vcc or might be configured to provide a low (“0”) output at Vss. Once programmed during fabrication, the states of elements such as element 126 cannot be changed to facilitate testing.
Consider the situation in which the output of element 126 of
As illustrated schematically by line 144 and lines 142 (which are sometimes referred to as feature control lines), the test control signal from input output pin 148 and multiplexer 146 can be distributed to numerous input-output circuits 156 on the device. Only one circuit 156 is shown in
The conventional arrangement of
The differential input buffers such as buffer 56 of
Boundary scan registers (sometimes called scan chain registers or scan chains) are used to apply test signals during testing and are used to capture test results. Test signals are loaded into boundary scan registers serially. Test results are also unloaded serially. When a conventional mask-programmed device is placed into test mode, the routing path from the input buffer used for the scan chain is connected to the scan chain's first cell so that data can be loaded (e.g., via a test data in or “TDI” input pin). The output buffer for the test data out pin “TDO” is also enabled.
Boundary scan testing is typically performed using circuitry that is compliant with the Joint Test Action Group (JTAG) standards. The JTAG standards define a set of test instructions that can be used to control operations such as loading test vectors into boundary scan registers and unloading results from boundary scan registers. Conventional JTAG testing circuitry 158 of the type used in conventional mask-programmed programmable logic devices is shown in
During user mode, the signal on line 152 of
With conventional mask-programmed devices, there is an undesirable coupling between input-output circuit features that places restrictions on how feature tests can be performed. Consider a device in which input-output circuits have both the pull-up feature and the differential input resistor feature. A first pin serves as a test control pin that supplies test control signals that selectively enable the pull-up feature. A second pin serves as a test control pin that supplies test control signals that selectively enable the input resistor feature. In this example, the second pin is contained in an input-output circuit block in which the user has implemented the pull-up feature by mask programming an appropriate programmable element. This arrangement will lead to an undesirable interplay between the features during testing. If the first pin is taken high to enable the pull-up feature, the pull-up circuitry connected to the second pin will pull the second pin high. The second pin serves as the test control pin for the input resistor feature, so when the second pin is pulled high, the input resistor feature will unintentionally be turned on.
Because of this undesirable interplay between features, the conventional testing methodology involves holding all unused test control pins at “0”. This prevents pins such as the second pin in the present example from being taken to undesired values. However, because these pins are held at “0”, they cannot participate in the test. For example, if the input-resistor feature control pin is held at “0”, it will not be possible to monitor the voltage on that pin to attempt to determine whether the pull-up feature for that pin is working. When there are a number of input-output features to be tested, a significant portion of the total number of input-output circuits on the device cannot be tested because the input-output pins associated with those input-output circuits are being used as test control pins.
In accordance with the present invention, mask-programmable devices are provided that contain feature control registers. The feature control register on a device can be loaded with an input-output circuit feature selection instruction (also sometimes called a feature control word or feature selection word). The feature selection instruction preferably includes a global control bit whose value determines whether input-output circuit feature testing is enabled globally on the entire chip. If the value of the global control bit is “0,” feature testing is disabled for the entire mask-programmed device. If the value of the global control bit is “1,” feature testing is enabled for the entire device.
When feature testing is enabled, the remainder of the bits in the feature selection instruction are used to control which feature or features are active. If, for example, the pull-up feature selection bit is high, the pull-up feature will be tested. If the input resistance bit is high, the input resistor feature will be tested. Features may be tested independently, because the undesirable interplay between features that exists in conventional mask-programmed devices in which input-output pins serve as test control pins is eliminated.
Circuitry for a mask-programmed integrated circuit device such as a mask-programmed programmable logic device in accordance with the present invention is shown in
Global control block 172 may be used to handle power-up operations. During testing, global control block 172 provides a global control block enable signal on control line 188. The global control block enable signal is generally a logic high signal (a “1”). This enable signal is applied to the “0” inputs of multiplexers such as multiplexers 184 and 216. In a typical arrangement, there is one multiplexer for each input-output feature to be tested. Any suitable circuitry may be used to implement the switching functions of the circuitry that is shown schematically as multiplexers in
Each multiplexer has a “1” input that receives a signal from one of the feature selection bits in feature control register 174. In the example of
Each multiplexer also has a control input. The control inputs of the multiplexers are controlled by the global feature testing control bit 176 via path 222. The global feature testing control bit selectively enables testing. If the value of bit 176 is “0” the multiplexers connect their “0” inputs to their outputs. In this situation, the global control block enable signal is provided to all input-output circuits so that they can be used normally (e.g., during normal user mode operation of the integrated circuit in a system). If the value of bit 176 is “1”, the multiplexers connect their “1” inputs to their outputs to enable feature testing.
Register 174 can be loaded with feature selection instructions via data path 182. The values of the bits in the instructions loaded into register 174 provide global feature enable control signals that determine which input-output circuit features in the input-output circuits 170 are enabled for testing. In the example of
In general, each input-output circuit 170 may contain different user-defined features. For example, one set of the input-output circuits 170 may have the pull-up feature enabled and another set of the input-output circuits 170 may have the voltage clamp diode feature enabled. The logic designer who designs the mask-programmed device makes these decisions during the design phase using a logic design system. The logic design system then creates configuration data to implement the logic designer's design. The configuration data is used to construct a programming mask that, in turn, is used to fabricate the device. The finished device has mask-programmed elements such as elements 192 and 220 whose states (e.g., whether they are connected to a positive power supply voltage Vcc or a ground power supply voltage Vss) are determined by the configuration data. The state of each mask-programmed element determines the value of the mask-programmed static control signal that is provided at its output.
If, for example, element 192 has its output programmed to produce Vss, the pull-up feature for the associated input-output circuit 170 will not be implemented. In this case, the pull-up feature for the input-output circuit 170 that is associated with that element cannot be tested, regardless of the value of the feature selection bit 180. Only features that the logic designer has enabled in a given input-output circuit 170 can be tested in that circuit 170. For example, if element 192 has been mask-programmed to produce a high voltage (Vcc) at its output, the pull-up feature in the circuit 170 associated with element 192 will be enabled and will be available for testing.
AND gates 196 and 210 in each circuit 170 are used to determine which features are enabled. One input to each AND gate is the output of a corresponding mask-programmed element. The other input to each AND gate is the control signal from a corresponding multiplexer.
AND gate 196 has one input that receives the state of mask-programmed element 192 over path 194. AND gate 196 has another input that receives the output of multiplexer 184 over path 190. As shown by path 191, this output signal is distributed globally to other input-output circuits 170 to serve as a global feature enable signal. If global feature testing control bit 176 is high and if the pull-up feature selection bit 180 is high, the signal on line 190 will be high. If the output of element 192 is high because the pull-up feature has been implemented, the corresponding output of AND gate 196 will be high. This high signal is provided to switch 200 over path 202 and turns switch 200 on. With switch 200 on, the pull-up feature is enabled for testing.
AND gate 210 has one input that receives the state of mask-programmed element 220 over path 212. AND gate 210 has another input that receives the output of multiplexer 216 over path 214. As shown by path 193, this output signal is distributed globally to other input-output circuits 170 and serves as a global feature enable signal for the voltage clamp feature. If global feature bit 176 is high and if the voltage clamp feature selection bit 178 is high, the signal on line 214 will be high. If the output of element 220 is high because the voltage clamp feature has been implemented, the corresponding output of AND gate 210 will be high. The high output signal from gate 210 is provided to switch 204 over path 208 and turns switch 204 on. With switch 204 on, the voltage clamp feature is enabled for testing.
As this example demonstrates, the feature selection instructions loaded into register 174 provide global enable signals for various input-output circuit features. If the feature selection signal for a particular feature is high, that feature can be tested, provided that the input-output circuit 170 in question has been configured to implement that feature by appropriate mask programming of its programmable elements.
In the example of
The input-output circuit feature selection bits associated with each set of input-output circuits that are enabled by a feature testing control bit can be distinct. For example, if there are two feature testing control bits and two associated subsets of input-output circuits for which feature testing can be enabled, each of the two subsets may have four (or any other suitable number) of associated input-output circuit feature selection bits. One subset can have one number of associated input-output circuit feature selection bits (and features) and the other subset can have another number of associated input-output circuit feature selection bits (and features). Alternatively, both subsets can have the same number of associated input-output circuit feature selection bits. The input-output circuit features controlled by the input-output feature selection bits for each subset may be the same, may overlap, or may be mutually exclusive.
The input-output feature control register 174 can be implemented using any suitable storage elements and may be loaded through any suitable pins. With one illustrative arrangement, the input-output feature control register is formed from a shift register. The shift register contains two parallel registers. Initially, a feature selection instruction is serially loaded into a first register. In a subsequent shift operation, the loaded instruction is transferred in parallel from the first register to a second register.
Illustrative testing circuitry 250 that incorporates an I/O feature control register 174 is shown in
Testing control circuitry 224 may include a state machine and instruction decoder 232 such as a JTAG state machine and JTAG instruction decoder. Instructions are loaded into instruction register 226 and are decoded by instruction decoder 232. The instructions that are decoded by the instruction decoder 232 control the operation of the state machine and are sometimes referred as test control circuitry control instructions. The instruction decoder 232 can include support for test control circuitry instructions that direct testing control circuitry 224 to load feature selection instructions into register 174.
Boundary scan register 228 preferably contains numerous boundary scan cells that form at least one boundary scan chain through the mask-programmed device. Boundary scan register 228 can be loaded with test data when it is desired to place the device in a particular initial state for testing. Functional logic tests and structural tests (i.e., tests of input-output circuit features such as pull-up, voltage clamp, bus hold, input resistance, single-ended/differential, and open drain features) can be performed using the testing data loaded into the boundary scan register 228.
The storage elements in register 228 (which are sometimes called cells or registers) are preferably used to capture signals on certain nodes in the device (e.g., at or near input-output pins, at internal nodes, etc.). In a typical scenario, boundary scan register 228 is loaded with test data through the TDI pin. Corresponding test results are captured using the boundary scan register 228 and are serially unloaded through the TDO pin. In addition to the TDI and TDO pins, other pins 14 may be used to provide information to test control circuitry 224. In general, any suitable number of chains and individual register cells may be included in registers such as register 228 and these chains and registers may be organized in any suitable architecture.
Bypass register 230 may be used when it is desired to transmit data past boundary scan register 228 (e.g., during preliminary testing). The I/O feature control register 174 controls which input-output circuit features are globally enabled, as described in connection with
During loading, circuitry 224 is used to route data that is provided to pins such as the TDI pin to an appropriate destination (e.g., instruction register 226, boundary scan register 228, bypass register 230, or I/O feature control register 174). During unloading, circuitry 224 is used to route data from these components to an appropriate output (e.g., the TDO pin).
Illustrative steps involved in using the testing circuitry 250 of
At step 234, a logic designer designs a circuit to be implemented in a mask-programmable device. In a typical scenario, the logic designer uses a logic design system in creating the circuit design. The logic design system converts an abstract definition of the desired circuit into configuration data for programming a mask-programmable integrated circuit such as a mask-programmable programmable logic device integrated circuit.
At step 236, the configuration data that was created at step 234 is used to create one or more lithographic masks for programming the integrated circuit. Masks used for mask-programming are generally much simpler than masks used in traditional ASIC fabrication. For example, the mask that is created at step 236 may include only a pattern of squares. The pattern of squares may define where contact holes are to be formed (e.g., to connect two adjacent metal layers in a dielectric stack). Alternatively, the pattern of squares may define metal connective pads that are used to electrically connect two adjoining conductive lines.
At step 238, the mask that was created at step 236 is used in a semiconductor fabrication process that creates the mask-programmed integrated circuit. Using the mask during semiconductor fabrication is said to “mask-program” the device with the configuration data from step 234. This customizes the device so that the device implements the logic designer's custom circuit design. The device contains numerous input-output circuits such as the input-output circuits of
At step 240, the mask-programmed device may be connected to a tester or may otherwise be installed in a system environment in which testing is to be performed. Testing is typically performed by a tester that is based on a computer or group of computers and that runs a software testing program or suite of testing programs. Testers may make electrical contact with the pins of the test device. Data is loaded into the device from the tester via the pins and is unloaded from the device to the tester via the pins.
A typical testing arrangement is shown in
During testing, the device may be placed in user mode (step 242 of
At step 244 of
At step 248, the input-output circuit feature that has been globally enabled by an associated feature selection bit is tested using the test control circuitry. During testing, test signals are applied using the boundary scan register (chain) and test results are captured by the boundary scan register (chain). The boundary scan operations are performed without disturbing the contents of the input-output feature control register, so that the selected input-output feature(s) is tested properly. Comprehensive testing is accomplished by repeatedly loading fresh input-output feature selection instructions into register 174 and performing additional boundary scan testing.
Test control circuitry 224 may be compatible with conventional JTAG instructions, so that conventional JTAG boundary scan procedures that have been developed for mask-programmed devices without the input-output feature control register 174 can be used during testing. An additional test control circuitry instruction or instructions (which may be JTAG compliant) may be used to control how the test control circuitry operates the input-output feature control register (e.g., to direct the test control circuitry to load the input-output feature selection instruction into input-output feature control register 174 or otherwise handle test functions associated with register 174). Existing JTAG instructions need not be affected by the additional test control circuitry instruction or instructions and can still be used to control the conventional JTAG portion of test control circuitry 244. This allows the invention to be implemented without disturbing existing JTAG testing arrangements and allows JTAG boundary scan testing techniques to be used during feature testing with register 174.
The foregoing testing arrangements have sometimes been described in the context of mask-programmable programmable logic device integrated circuits. This is merely illustrative. In general, the invention applies to the testing of input-output circuit features on any suitable integrated circuit.
The foregoing is merely illustrative of the principles of this invention and various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention.
Number | Name | Date | Kind |
---|---|---|---|
6215689 | Chhor et al. | Apr 2001 | B1 |
6851079 | Hergott | Feb 2005 | B1 |
6885963 | Arnold et al. | Apr 2005 | B2 |
6886121 | Dervisoglu et al. | Apr 2005 | B2 |
6886122 | Barthel | Apr 2005 | B1 |
6920627 | Blodget et al. | Jul 2005 | B2 |
6928606 | Savaria et al. | Aug 2005 | B2 |
6934898 | Goff | Aug 2005 | B1 |
6959428 | Broberg, III et al. | Oct 2005 | B2 |
20040264227 | Kojima et al. | Dec 2004 | A1 |
20060179373 | Ishikawa | Aug 2006 | A1 |