Abstract:
A method and structure for testing a circuit with reduced test pattern generation constraints. The circuit includes a first logic circuit coupled to receive input signals from a first flip-flop and a second flip-flop. The first and second flip-flops store part of a test pattern generated to test the circuit. The circuit also includes first and second three state driver (TSD) circuits coupled to receive output signals from the first logic circuit. The output leads of the first and second TSDs are connected to a single input lead of a second logic circuit. The first and second TSDs receive control signals that enable and disable the first and second TSDs. The control signals are provided by the first logic circuit or, alternatively, by a separate decoder. During test operations, the control signals enable the first and second TSDs substantially simultaneously for a predetermined duration. The predetermined duration is short enough to prevent burnout of the first and second TSDs when outputting signals of different logic levels. The predetermined duration is long enough to allow the test pattern to propagate through the second logic circuit and load the output signals of the second logic circuit into third and fourth flip-flops.

Description:
FIELD OF THE INVENTION 
     The present invention is related to test circuitry and, more particularly, to scan design test circuitry and test pattern generation. 
     BACKGROUND 
     In many high speed applications such as, for example, microprocessors, multiple three-state drivers (TSDs) are used in some circuits to drive a single conductive line. In normal functional operation, only one of the TSDs in such a circuit is activated at any given time to drive the conductive line, with the rest of the TSDs drying the conductive line being disabled. By enabling only one TSD at a time, the circuit avoids high current conditions in the TSDs resulting from contention on the conductive line. This contention can damage or &#34;burnout&#34; the TSDs as well as result in an undefined data signal being placed on the conductive line. More specifically, if one TSD was attempting to drive a logic zero on the conductive line while another TSD was attempting to drive a logic one, then these TSDs would, in effect, create a short circuit between the supply rails. As a result, a high current condition is created that can burnout these TSDs. Consequently, the circuit is designed to ensure that only one TSD can drive the conductive line at any given time. 
     FIG. 1 is a block diagram illustrating one such multiple-TSD circuit in a circuit 100 that is adapted for scan design testing. Flip-flops 102 1  -102 0  form an input register 102 that is connected to a logic circuit 104. The input register 102 can be serially loaded with test patterns to test the logic circuit 104 using well known scan design techniques. It is appreciated that clock, scan-in and scan-out lines interconnect the flip-flops 102 1  -102 0 , which are omitted for clarity. 
     The logic circuit 104 is connected to TSDs 106 1  -106 N  through conductive lines 108 1  -108 N . The TSDs 106 1-106   N  have output leads 110 1  -110 N  connected to an input lead 112 of a logic circuit 114. A decoder 116 is connected to the disable terminals of the TSDs 106 1  -106 N  through lines 118 1  -118 N  to prevent concurrent activation of the TSDs 106 1  -106 N  during normal functional operation, as described above. The logic circuit 114 includes output leads 120 1  -120 M  that are connected to flip-flops 122 1  -122 M , respectively. The flip-flops 122 1  -122 M  form a register 122, which serves as an output register for the logic circuit 114. 
     The register 122 then serves as the input register of a third logic circuit 124, which receives the output signals of the register 122. The logic circuit 124 provides input signals to TSDs 126 1  -126 L  through output leads 128 1  -128 L , respectively. The decoder 116 also provides control signals to the disable input terminals of the TSDs 126 1  -126 L , through leads 129 1  -129 L . Similarly, the output leads 130 1  -130 L  of the TSDs 126 1  -126 L  are connected to line 132. Because the output leads 130 1  -130 L  are connected together, the decoder 116 also controls the TSDs 126 1  -126 L  to avoid burnout during normal functional mode operation. 
     Although not shown, the logic circuit 104 provides additional output signals to the logic circuit 114 through additional multiple-TSDs (omitted for clarity). Thus, the test pattern loaded into the register 102 causes the logic circuit 104 to provide several input signals to the logic circuit 114 that the decoder 116 also must control signals to these TSDs to avoid burnout during the normal functional mode. Likewise, the logic circuit 124 also provides additional output signals through additional TSDs (omitted for rarity). Because of the decoder 116, the circuit 100 is often used in relatively low speed applications. 
     FIG. 1A illustrates an alternative conventional circuit 100A for high speed applications (e.g., microprocessor applications) substantially similar to the circuit 100 (FIG. 1), except that the decoder 116 (FIG. 1) is eliminated by replacing the logic circuit 104 (FIG. 1) with a logic circuit 104A that provides control signals to the TSDs 106 1  -106 N  that enable or disable the TSDs. When the circuit 100A is in the functional mode, the logic circuit 104A provides to the TSDs 106 1  -106 N  disable signals ensured to be mutually exclusive by state assignment and logic design. 
     The multiple-TSD circuits of FIG. 1A are tested using well known scan design techniques. As is well known in the art of test circuits, in scan design, a circuit is tested by: (a) configuring the circuit into a scan mode; (b) &#34;scanning in&#34; a test pattern into an input register of the circuit; (c) configuring the circuit into a normal functional mode; (d) pulsing the circuit (i.e., allowing the circuit to operate for one clock cycle on the test pattern) and capturing the resultant output signals in an output register; (e) configuring the circuit into the scan mode; and (f) &#34;scanning out&#34; the captured data from the output register for comparison with the expected values. In general, the input and output registers are serially coupled in a scan chain that allows scan design testing of several circuits in the integrated circuit. 
     FIG. 2 shows a block diagram of a typical conventional flip-flop which is used to implement the scan chain of the scan design circuit. Each flip-flop has a data input terminal D, an output terminal Q and a clock input terminal Clk. In addition, each flip-flop has a scan-in terminal si, a scan-out terminal so and a scan-enable terminal se. The scan-in terminal si of each flip-flop is generally connected to the scan-out terminal so of an adjacent flip-flop in the scan chain. The scan-in terminal of the first flip-flop in the scan chain is typically connected to an input/output (I/O) pin of the integrated circuit. Similarly, the scan-out terminal of the last flip-flop in the scan chain is typically connected to another I/O pin. The flip-flop is configured into the scan mode and the functional mode by asserting and deasserting a scan-enable signal received at the flip-flop&#39;s scan-enable terminal se, respectively. Some scan design flip-flops have an additional scan clock input terminal, which are used in a scan design technique commonly referred to as docked scan. 
     FIG. 3 is an exemplary timing diagram illustrating the testing of circuit 100A (FIG. 1A). To test the circuit 100A, the scan-enable signal se and the disable signal dis for all of the flip-flops in the circuit 100A are asserted, thereby causing the circuit 100A to enter the scan mode. Consequently, the flip-flops are loaded with the values currently at their data input terminals, and the TSDs 106 1  -106 N  (FIG. 1) are configured in the high impedance state. Alternatively, the TSDs 106 1  -106 N  may be enabled, with the loaded flip-flops generating a safe state (i.e., the output signals of the logic circuit 104A causing the TSDs 106 1  -106 N  to provide output signals of the same logic level). In this conventional scheme, the disable signal dis is substantially identical to the scan enable signal se during testing. Consequently, a single signal can be used for both the disable signal dis and the scan-enable signal se, as shown in FIG. 3. Other embodiments may use an enable signal instead of a disable signal to control the TSDs. In these embodiments, the enable signal would simply be the complement of the scan-enable signal se. 
     As shown in FIG. 3, the next several dock cycles are the scan cycles 302 during which scan-in data is serially loaded into the flip-flops on the rising edges of the scan cycles. The scan-enable signal se and the disable signal dis remain asserted for all of the scan cycles except the last half of the last scan cycle, thereby keeping the circuit 100A in the scan mode while the scan-in data is loaded. During the last scan cycle of the scan cycles 302 after all of the scan-in data is loaded, the scan-enable signal se and the disable signal dis are deasserted. As a result, the TSDs 106 1  -106 N  are enabled, allowing output signals from the logic circuit 104A (FIG. 1) to be received by the logic circuit 114 (FIG. 1). The logic circuit 114 then operates on these output signals to provide output signals to the output register 122 (FIG. 1). The next clock cycle is commonly called the capture pulse CP, during which the output signals of the logic circuit 114 are &#34;captured&#34; or loaded into the output register 122. The data captured in the output register 122 is commonly referred to as the capture data. 
     To scan out the capture data, before the rising edge of the next clock cycle after the capture pulse CP, the scan-enable signal se and the disable signal dis to all of the flip-flops in the circuit 100A are re-asserted, thereby causing the circuit 100A to enter the scan mode. The next several clock cycles are the scan cycles 304 during which the capture data is serially scanned out for comparison with the expected values. 
     Referring back to the capture pulse CP, after the capture data is loaded into the flip-flops 122 1  -122 M  (FIG. 1), the capture data is received by the logic circuit 124 (FIG. 1). Thus, the logic circuit 124 then operates on the capture data, generating output signals that are dependent on the capture data (and thus, the test pattern loaded into the register 102) to the TSDs 126 1  -126 M  (FIG. 1). 
     A problem arises because in the scan mode, all of the TSDs can be enabled after the logic circuit 104 operates on the test pattern. Because multiple TSDs of a multi-TSD circuit can be enabled, a high current condition is possible. Consequently, the test pattern must be generated under the constraint that if the logic circuit 104A operates properly, all of the enabled TSDs of each multi-TSD circuit are generating output signals of the same logic level (i.e., the test pattern must be burnout proof). The time and expense of the generating a burnout proof test pattern can be substantial for large logic circuits (e.g., microprocessor circuits). 
     Further, the test pattern must be generated under a second constraint. In this example, the capture data drives another set of TSDs (which includes TSDs 126 1  -126 L ) through the logic circuit 124. Accordingly, the test pattern is further constrained to generate capture data that avoids burnout in the TSDs driven by the logic circuit 124. These constraints on the test pattern increase the complexity and cost of the test pattern generation. Moreover, these constraints can prevent complete testing of the circuit 100 (i.e., incomplete test coverage) because in some cases, the only test patterns that can test a portion of a circuit cause burnout. 
     The circuit 100A (FIG. 1A) operates in substantially the same manner, except that the logic circuits 104A and 124A provide the disable signals to their corresponding TSDs. Consequently, the timing diagram of FIG. 3 and the aforementioned test pattern constraints also applies to the circuit 100A. 
     SUMMARY 
     In accordance with the present invention, a method and structure for testing a circuit with reduced test pattern generation constraints is provided. In one embodiment, the circuit includes a first logic circuit coupled to receive input signals from a first storage element and a second storage element. The first and second storage elements store part of a test pattern generated to test the circuit. The circuit also includes first and second driver circuits coupled to receive output signals from the first logic circuit. In this embodiment, the driver circuits are TSDs and the storage elements are flip-flops. 
     The output leads of the first and second driver circuits are connected to a single input lead of a second logic circuit. In addition, the first and second driver circuits are coupled to receive control signals that selectively enable and disable the first and second driver circuits. In this embodiment, the control signals are provided by the first logic circuit. During a test operation, the control signals enable the first and second driver circuits substantially simultaneously for a predetermined time duration after the rising edge of the capture clock. 
     The predetermined time duration is short enough to prevent burnout of the first and second driver circuits if the first and second driver circuits were outputting signals of different logic levels. Further, the predetermined time duration is long enough to allow the test pattern to account for hold time requirements of the second logic circuit, due to clock skew. This embodiment can be used advantageously to eliminate the constraint that the capture data avoid burnout. This scheme with reduced test pattern generation constraints greatly reduces the time needed to generate test patterns and, moreover, facilitates the generation of test patterns with complete test coverage. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same becomes better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein: 
     FIGS. 1 and 1A are block diagrams of conventional circuits with scan design; 
     FIG. 2 is a block diagram of a conventional flip-flop with scan design capability; 
     FIG. 3 is a timing diagram illustrating the test sequence of a conventional circuit using scan design testing; 
     FIG. 4 is a block diagram of an electronic system with an integrated circuit using a test method and structure according to one embodiment of the present invention; 
     FIG. 5 is a block diagram of circuit with reduced test pattern constraints according to one embodiment of the present invention; 
     FIG. 6 is a timing diagram illustrating the operation of the circuit depicted in FIG. 5; 
     FIG. 7 is a schematic diagram of a disable signal generator according to one embodiment of the present invention; 
     FIG. 8 is a timing diagram illustrating the operation of the circuit depicted in FIG. 5 using the subcircuit depicted in FIG. 7; 
     FIG. 9 is a schematic diagram of a disable signal generator according to another embodiment of the present invention; and 
     FIG. 10 is a timing diagram illustrating the operation of the circuit depicted in FIG. 5 using the subcircuit depicted in FIG. 9. 
    
    
     DETAILED DESCRIPTION 
     FIG. 4 is a block diagram of an electronic system 400 having an integrated circuit 401 using a test method and structure according to one embodiment of the present invention. The electronic system 400 can be any type of electronic system. In this embodiment, the electronic system 400 is a computer system in which the integrated circuit 401 is a processor connected to a memory 403 and to interfaces 405. The interfaces 405 are connected to peripherals 407 1  -407 N , thereby allowing the processor to interact with these peripherals. The memory 403 and the interfaces 405 can be any type of memory or interface for use in computer systems. Likewise, the peripherals can be any type of peripheral such as, for example, displays, mass storage devices, keyboards or any other type of input or input-output device. In accordance with the present invention, the integrated circuit 201 includes test circuits that utilize test methods that reduce test pattern generation constraints, compared to conventional testing schemes. 
     FIG. 5 is a block diagram of circuit 500 with reduced test pattern constraints according to one embodiment of the present invention. The circuit 500 is substantially identical in structure to the circuit 100A (FIG. 1A), except that the circuit 500 respectively includes logic circuits 502 and 504 with disable subcircuits 505 instead of conventional logic circuits 104A and 124A (FIG. 1A) in the circuit 100. In this embodiment, during the scan mode the disable subcircuit 505 generates a negative pulse to serve as the disable signal dis (described further below in conjunction with FIG. 6). In this embodiment, the disable signal dis and the scan-enable signal se are active high signals. 
     The circuit 500 is also substantially similar in operation to the circuit 100A, except that the logic circuits 502 and 504 each use the disable subcircuit 505 to provide the disable signal dis to the TSDs 106 1  -106 N  and TSDs 126 1  -126 L . The disable subcircuit 505 deasserts the disable signal dis after the test pattern is loaded into the flip-flops 102 1  -102 0  and before the capture pulse is generated. Then, during the capture pulse, the disable subcircuit 505 reasserts the disable signal dis. As a result, the flip-flops 122 1  -122 M  do not provide the capture data to the logic circuit 504 until the capture data is loaded on the rising edge of the capture pulse, which causes the TSDs 126 1  -126 L  to drive the output signals from the logic circuit 504 for approximately a predetermined time duration Δt after the rising edge of the capture pulse. 
     The predetermined duration Δt is short enough to prevent burnout of any of TSDs 126 1  -126 L  that were outputting signals of different logic levels onto the input lead 132 of the logic circuit 504. For many integrated circuit fabrication technologies, the TSDs can enter a high current condition for about two nanoseconds without significant damage. Further, the predetermined time duration Δt is long enough to account for the data hold time requirements (due to clock skew) of the register 122. In many applications, the data hold time requirements are about one-half of a nanosecond, down to about a quarter nanosecond in relatively fast applications. Thus, in this embodiment, the predetermined time duration Δt is about one quarter to two nanoseconds. As a result, the TSDs 126 1  -126 L  will not burnout when driving different logic values onto the lines 112 and 132, respectively. 
     Referring to FIGS. 5 and 6, in the scan mode, the scan-enable signal se and the disable signal dis are asserted. The test pattern is loaded into the flip-flops 102 1  -102 0  during the scan cycles 302. After the falling edge 601 of the last cycle of the scan cycles 302, but before the rising edge of the capture pulse CP, the scan-enable signal se is deasserted. At the falling edge 601, the disable signal dis is deasserted for the predetermined time duration, during which the TSDs are enabled. In this embodiment, the rising edge 605 of the disable signal dis at the end of the predetermined time duration occurs during the capture pulse CP. Thus, the capture pulse CP occurs before the TSDs 106 1  -106 N  are disabled, thereby loading the capture data into the register 122. 
     During the capture pulse, the capture data from the register 122 propagates through the logic circuit 504 to the still enabled TSDs 126 1  -126 L . Because the predetermined time duration Δt prevents burnout of the TSDs 126 1  -126 L , the capture data is not constrained to avoid high current conditions in the TSDs 126 1  -126 L  as is required using conventional testing schemes. Thus, significantly less time is needed to generate the test patterns and, moreover, the test coverage is more complete. Of course, in this embodiment, the test pattern loaded into the register 102 remains constrained to avoid high current conditions in the TSDs 106 1  -106 N  so that valid data will propagate to the logic circuit 114. In addition, this constraint is also required because the TSDs 106 1  -106 N  will be able to drive any output signals from logic circuit 502 from about the falling edge 603 of the disable signal dis, which is a significantly larger time than the predetermined time duration Δt and could cause burnout. 
     Those skilled in the art of test circuits can easily implement a disable subcircuit 505 in the logic circuits 502 and 504 that generates the scan-enable signal se and disable signal dis from primary input signals during the scan mode as shown in FIG. 6. 
     FIG. 7 is a schematic diagram of one embodiment of the disable subcircuit 505 (FIG. 5) according to the present invention for use with a multiplexed scan design scheme. In a multiplexed scan design scheme, the flip-flops in the scan chain do not have a separate scan clock input terminal. Instead, the scan clock and the functional mode dock are multiplexed to the dock input terminal of the scan chain flip-flops. 
     In this embodiment, the disable subcircuit 505 includes an inverter 701, D flip-flops 703 and 705 and an optional delay circuit 709. The disable subcircuit 505 uses signals generated from a state machine (not shown) implemented within the logic circuits 502 and 504 (FIG. 5). Such internal state machines are well known in the art of scan design test circuits and can easily be implemented by those skilled in the art without undue experimentation using this disclosure. The internal state machine generates a clock signal Clk, a last --  cycle signal and a test --  clk signal. The clock signal Clk provides the capture pulse CP and clock pulses for the scan cycles. The last --  cycle signal is asserted and deasserted to form a &#34;window&#34; about the first half of the last clock cycle in each set of scan cycles (see FIG. 8). The test --  clk signal provides pulses at the beginning and the end of a scan mode operation. 
     The inverter 701 is coupled to received the last --  cycle signal from the state machine (not shown). The output lead of the inverter 701 is connected to the D input terminals of the flip-flops 703 and 705. Thus, the flip-flops 703 and 705 receive the complement of the last --  cycle signal. The flip-flop 703 has an inverted clock input terminal, which is coupled to receive the test --  clk signal from the state machine. The output signal of the flip-flop 703 serves as the scan-enable signal se. The flip-flop 705 receives the clock signal Clk through the delay circuit 709. The output signal of the flip-flop 705 serves as the disable signal dis. 
     Referring to FIGS. 5, 7 and 8, the disable circuit 505 operates in the scan mode as follows. In this example, the scan mode begins when the state machine provides a pulse 801 in the test --  clk signal. On the falling edge of the pulse 801, the last --  cycle signal is at a logic low level. As a result, the flip-flop 703 (which is clocked on the falling edge of the test --  clk signal) loads a logic high level (i.e., the complement of the last --  cycle signal), thereby causing the scan-enable signal se to be asserted. Because the state machine (not shown) keeps the last --  cycle signal deasserted until slightly before the last clock cycle of the scan cycles 302, the scan-enable signal remains asserted until the falling edge of the pulse 803 of the test --  clk signal. Accordingly, the register 102 is loaded with the test pattern during the scan cycles 302. Then at the falling edge of the pulse 803, a logic low level is loaded into the flip-flop 703, thereby causing the scan-enable signal se to be deasserted. The falling edge of the scan-enable signal se then allows the flip-flops 122 1  -122 M  to receive the output signals of the logic circuit 114 on the rising edge of the capture pulse CP of the clock signal Clk. 
     Referring back to the start of this scan mode operation, the flip-flop 705 is loaded with a logic high level (the complement of the last --  cycle signal) during functional mode operation or the last cycle of a previous scan mode operation. Thus, the disable signal is shown asserted at the start of the clock cycle 801. During the scan cycles 302, the state machine (not shown) keeps the last --  cycle signal deasserted until slightly before the last dock cycle of the scan cycles 302. As a result, the disable signal dis remains asserted until about the rising edge of the last clock cycle of the scan cycles 302. The rising edge of the last clock cycle of the scan cycles 302 is delayed by the delay circuit 709, thereby causing the flip-flop disable signal dis is deasserted. Consequently, the TSDs are enabled about a half cycle before the scan-enable signal is deasserted. 
     Slightly after the falling edge 601 of the scan cycles 302, the last --  cycle signal is deasserted by the state machine (not shown). The cycle following the scan cycles 302 includes the capture pulse CP, which loads into the register 122 the capture data resulting from the test pattern propagating through the logic circuits 502 and 114. However, the logic high level from the complemented last --  cycle signal does not get loaded into the flip-flop 705 until the rising edge of the capture pulse CP propagates through the delay circuit 709. Thus, the flip-flop 705 asserts the disable signal dis after a slight delay relative to the rising edge of the capture pulse CP, thereby generating the predetermined time duration At. Then in the pulse 801A, the falling edge of the test --  clk signal causes the flip-flop 703 to assert the scan-enable signal se, which causes the register 122 to be scanned-out during the scan cycles 304. 
     During normal functional mode, the state machine (not shown) causes the last --  cycle signal to remain at a logic high level, thereby deasserting both the disable signal dis and the scan-enable signal se. Of course, in light of this disclosure, those skilled in the art of test circuits can provide, without undue experimentation, different circuits that enable the TSDs for a predetermined duration within the high current condition tolerance of the devices implementing the TSDs. 
     The delay circuit 709 is used to add a relatively small delay to the clock signal Clk and can be adjusted to set the predetermined time duration Δt. The delay circuit can be implemented using any suitable circuit. For example, the delay circuit 709 may simply be an extra length of the signal line bringing the clock signal Clk to the OR gate 707 to add a delay. The output signal of the flip-flop 705 serves as the disable signal dis. 
     FIG. 9 is a schematic diagram illustrating a disable signal generator 505 for use with a docked scan scheme, according to one embodiment of the present invention. This embodiment is substantially similar to the embodiment of FIG. 7 except that an OR gate 901 is added to provide the logical OR of the scan clock signal Sclk and the clock signal Clk. FIG. 10 is a timing diagram illustrating the operation of the circuit depicted in FIG. 9. In this embodiment, the internal state machine (not shown) in effect respectively separates the capture pulse CP and the scan cycles of the dock signal Clk (FIG. 8) into the dock signal Clk (FIG. 10) and the scan clock signal Sclk of this embodiment. However, because the clock signal Clk and the scan clock signal Sclk are &#34;OK&#39;d&#34; by OR gate 901, the generation of the scan enable signal se and the disable signal dis is substantially identical to the embodiment of FIG. 7. 
     The embodiments of the method and structure for testing a circuit with reduced test pattern generation constraints described above are illustrative of the principles of this invention and are not intended to limit the invention to the particular embodiments described. For example, using this disclosure, those skilled in the art of test circuit design can implement different embodiments of the disable subcircuit without undue experimentation. In addition, using this disclosure, those skilled in the art of test circuit design can implement embodiments adapted for docked scan testing schemes without undue experimentation. Accordingly, while a preferred embodiment of the invention has been illustrated and described, it will be appreciated that in view of this disclosure, various changes can be made therein without departing from the spirit and scope of the invention.