Abstract:
An integrated circuit device utilizes a serial scan chain register to support efficient reliability testing of internal circuitry that is not readily accessible from the I/O pins of the device. This reliability testing includes the performance of, among other things, delay fault and stuck-at fault testing of elements within the internal circuitry. The scan chain register has scan chain latch units that support a toggle mode of operation. The scan chain register is provided with serial and parallel input ports and serial and parallel output ports. Each of the plurality of scan chain latch units includes a latch element and additional circuit elements that are configured to selectively establish a feedback path in the respective latch unit. This feedback path operates to pass an inversion of a signal at an output of the latch to an input of the latch when the corresponding scan chain latch unit is enabled to support a toggle mode of operation. Thus, if the output of the latch is set to a logic 1 level, then a toggle operation will cause the output of the latch to switch to a logic 0 level and vice versa. Because of the presence of a respective feedback path within each scan chain latch unit, the toggle operation at the output of a scan chain latch unit will be independent of the value of any other output of other scan chain latch units within the scan chain.

Description:
REFERENCE TO RELATED APPLICATION  
       [0001]     This application claims priority to U.S. Provisional Application Ser. No. 60/520,213, filed Nov. 14, 2003, the disclosure of which is hereby incorporated herein by reference. 
     
    
     FIELD OF THE INVENTION  
       [0002]     The present invention relates to integrated circuit devices and methods of operating same, and more particularly to integrated circuit devices that utilize scan chains to facilitate device testing.  
       BACKGROUND OF THE INVENTION  
       [0003]     Scan design test techniques are frequently used to facilitate testing of complicated integrated circuit devices. A variety of these techniques are disclosed in U.S. Pat. Nos. 6,453,456 and 6,490,702. In particular,  FIG. 10  of the &#39;702 patent discloses a scan chain circuit 110 that purports to solve a latch adjacency problem when testing for delay faults within an integrated circuit. This scan chain circuit 110 includes a plurality of shift register latches  30  that operate as stages within the scan chain circuit 110. One shift register latch is illustrated as including a master latch 32 a  and a slave latch 34 a . The output of the slave latch 34 a  is provided to a first input of a combinational logic device 122. This combinational logic device 122 is illustrated as a two-input AND gate. The output of the slave latch 34 a  is also provided to a first input of a multiplexer 112 a , which is responsive to a select signal SEL. A second inverted input 116 of the multiplexer 112 a  also receives the output of the slave latch 34 a . The output of the multiplexer 112 a  is provided to an input of a next shift register latch within the scan chain circuit 110. This next shift register latch is illustrated as including a master latch 32 b  and a slave latch 34 b . The output of the slave latch 34 b  is provided to a second input of the combinational logic device 122. This combinational logic device 122 is illustrated as undergoing a conventional delay fault test by having one input of the device 122 switch low-to-high while the other input of the device 122 is held high. The timing of this low-to-high switching of the one input of the device 122 is synchronized with a leading edge of the next clock pulse (not shown). To facilitate this delay fault test, the second inverted input 116 of the multiplexer 112 a  is selected (i.e., SEL=0) so that the output of the next shift register latch (i.e., output of the slave latch 34 b ) is held at a logic 1 level when the next clock pulse is received.  
         [0004]     Accordingly, based on the illustrated configuration of the shift register latches 30 within the scan chain circuit 110, a value of the select signal SEL can be used to control whether the multiplexers 112 a -112 c  operate to pass a true or complementary version of the output of a respective slave latch 34 a -34 c  to the next shift register latch within the scan chain circuit 110. Nonetheless, even if the output of the slave latch 34 a  can be controlled to switch states (i.e., switch 0→1 or 1→0) in response to the clock pulse (not shown), an output of the next shift register latch within the scan chain circuit 110 (i.e., the output of the slave latch 34 b ) will nonetheless be a function of a value of the output of the preceding slave latch 34 a  during the delay fault test operation. This functional dependency between the output of one shift register latch and the output of a preceding shift register latch during the fault test operation can limit the effectiveness of the scan chain circuit 110 when testing for other more complicated types of delay faults within an integrated circuit device.  
       SUMMARY OF THE INVENTION  
       [0005]     Embodiments of the present invention include an integrated circuit device that utilizes a scan chain register to support efficient reliability testing of internal circuitry that is not readily accessible from the I/O pins of the device. This reliability testing includes the performance of, among other things, delay fault and stuck-at fault testing of elements within the internal circuitry. According to some of these embodiments, an integrated circuit device is provided with a scan chain register having a plurality of scan chain latch units therein that support a toggle mode of operation. The scan chain register is provided with serial and parallel input ports and serial and parallel output ports. Each of the plurality of scan chain latch units includes a latch element and additional circuit elements that are configured to selectively establish at least one feedback path in the respective latch unit. This feedback path can operate to pass an inversion of a signal at an output of the latch to an input of the latch when the corresponding scan chain latch unit is enabled to support the toggle mode of operation. Accordingly, if the output of the latch is set to a logic 1 level, then a toggle operation will cause the output of the latch to automatically switch to a logic 0 level and vice versa. Because of the presence of a respective feedback path within each scan chain latch unit, the toggle operation at the output of a scan chain latch unit will be independent of the value of any other output of any other scan chain latch unit within the scan chain.  
         [0006]     According to additional embodiments of the present invention, a scan chain latch unit includes a latch and a pair of multiplexers that route data through the latch unit. The latch may constitute a flip-flop device that is synchronized to a clock signal, such as a positive edge triggered D-type flip-flop. In particular, a first multiplexer is provided having first and second data inputs and a select terminal that is responsive to a toggle signal. A second multiplexer is provided having a first data input electrically coupled to an output of the first multiplexer, a second data input configured as a parallel input port of the scan chain latch unit, a select terminal responsive to a scan enable signal (SE i ) and an output electrically coupled to an input of the latch. The scan chain latch unit further includes an inverter having an input electrically coupled to a true output of the latch and an output electrically coupled to the second data input of the first multiplexer. Accordingly, through proper control of the select terminals of the first and second multiplexers, a signal generated at an output of the inverter can be passed to the input of the latch and then loaded into the latch upon performance of the toggle operation. In the event the latch includes true and complementary outputs, then the complementary output may be fed back directly to the second data input of the first multiplexer and the inverter may be eliminated.  
         [0007]     Further embodiments of the present invention include a sequential scan chain register having a serial input port, a serial output port and a plurality of parallel output ports. The sequential scan chain register is configured to generate at least a first portion of a serially scanned-in test vector at a plurality of immediately adjacent ones of the parallel output ports during a preload time interval that spans multiple consecutive cycles of a clock signal. This register is further configured to respond to a launch edge of the clock signal and an active toggle signal by toggling each and every one of the bits in the first portion of the serially scanned-in vector regardless of a value of the serially scanned-in vector.  
         [0008]     According to still further embodiments of the present invention, a scan chain latch unit is configured to support a toggle mode of operation that establishes a next output state (NS) of the scan chain latch unit as an invert of a current output state (CS) of the scan chain latch unit, while blocking data at serial and parallel inputs of the scan chain latch unit from influencing a value of the next output state. The scan chain latch unit is further configured to support a freeze mode of operation that establishes a next output state of the scan chain latch unit as equivalent to a current output state of the scan chain latch unit. This mode of operation also blocks data at the serial and parallel inputs of the scan chain latch unit from influencing a value of the next output state. In these embodiments, the scan chain latch unit may include a four input multiplexer that is responsive to a pair of select signals. The scan chain latch unit may also generate a true output state (Q) that is fed back to a first data input of the four input multiplexer and a complementary output state (QB) that is fed back to a second data input of the four input multiplexer. The four input multiplexer may include first and second totem pole arrangements of PMOS and NMOS transistors having commonly connected outputs. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]      FIG. 1A  is an electrical schematic of a scan chain latch unit according to an embodiment of the present invention.  
         [0010]      FIG. 1B  is a timing diagram that illustrates operation of the scan chain latch unit of  FIG. 1A .  
         [0011]      FIG. 1C  is an electrical schematic of a scan enable signal SE i  generator according to an embodiment of the present invention.  
         [0012]      FIG. 1D  is an electrical schematic of a circuit that is configured to generate scan enable and toggle signals, which are received by the scan chain latch unit of  FIG. 1A .  
         [0013]      FIG. 2A  is an electrical schematic of a portion of a scan chain register according to an embodiment of the present invention.  
         [0014]      FIG. 2B  is an electrical schematic of a portion of a scan chain register according to an embodiment of the present invention.  
         [0015]      FIG. 2C  is an electrical schematic of a portion of a scan chain register according to an embodiment of the present invention.  
         [0016]      FIG. 2D  is an electrical schematic of a portion of a scan chain register according to an embodiment of the present invention.  
         [0017]      FIG. 3A  is a block diagram of a scan chain latch unit according to an embodiment of the present invention.  
         [0018]      FIG. 3B  is an electrical schematic of an embodiment of the scan chain latch unit of  FIG. 3A .  
         [0019]      FIG. 3C  is an electrical schematic of an embodiment of the scan chain latch unit of  FIG. 3A .  
         [0020]      FIG. 3D  is an electrical schematic of an embodiment of the scan chain latch unit of  FIG. 3A .  
         [0021]      FIG. 3E  is an electrical schematic of an alternative embodiment of the scan chain latch unit of  FIG. 3C .  
         [0022]      FIG. 3F  is an electrical schematic of an alternative embodiment of the scan chain latch unit of  FIG. 3D .  
         [0023]      FIG. 4A  is an electrical schematic of a portion of a scan chain register according to an embodiment of the present invention.  
         [0024]      FIG. 4B  is an electrical schematic of a portion of a scan chain register according to an embodiment of the present invention.  
         [0025]      FIG. 4C  is an electrical schematic of a portion of a scan chain register according to an embodiment of the present invention. 
     
    
     DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0026]     The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout. The suffix B or prefix symbol “/” to a signal name may denote a complementary data or information signal or an active low control signal, for example.  
         [0027]     Referring now to  FIG. 1A , a scan chain latch unit  10  according to an embodiment of the present invention is illustrated as including first and second multiplexers M 1  and M 2 , a latch L 1  and an inverter I 1 . The latch L 1  is shown as a D-type flip-flop having an input D and a “true” output Q that is fed back to an input of the inverter I 1 . The latch L 1  is synchronized to a clock signal CLK. As described more fully hereinbelow with respect to  FIG. 2B , the latch L 1  may also be configured as a flip-flop having true and complementary outputs Q and QB and the inverter I 1  may be eliminated. Other types of latches may also be used. The scan chain latch unit  10  has a number of ports. These ports include a serial input port SI, a serial output port SO, a parallel input port DI and a parallel output port DO. The first multiplexer M 1  has a select terminal that is responsive to a toggle signal TOG and the second multiplexer M 2  has a select terminal that is responsive to a scan enable signal SE i . When the toggle signal TOG is set to a logic 0 level (i.e., low state) and the scan enable signal SE i  is set to a logic 1 level (i.e., high state), serial input data can be passed from the serial input port SI to the input D of the latch L 1  and then transferred to the output Q of the latch L 1  in-sync with a rising edge of the clock signal CLK. Alternatively, when the scan enable signal SE i  is set to a logic 0 level, parallel input data can be passed from the parallel input port DI to the input D of the latch L 1 . Finally, in preparation of a toggle operation, both the toggle signal TOG and the scan enable signal SE i  can be set to logic 1 levels to thereby connect an output of the inverter I 1  to the input D of the latch L 1 . In this manner, an inversion of the output Q of the latch L 1  can be passed to the input D of the latch L 1 . Stated alternatively, setting both the toggle signal TOG and the scan enable signal SE i  to logic 1 levels will operate to establish an active feedback path that passes an inversion of a signal from the output Q of the latch L 1  to the input D of the latch L 1 . Then, upon receipt of a leading “launch” edge of the clock signal CLK, the output Q of the latch will undergo a toggle operation (i.e., switch high-to-low or low-to-high).  
         [0028]     The timing diagram of  FIG. 1B  also illustrates operation of the scan chain latch unit  10  of  FIG. 1A . In  FIG. 1B , the clock signal CLK is shown as having an initial leading edge that operates to synchronize the loading of data from the serial input port SI to the serial output port SO. This leading edge is received while the toggle signal TOG is held at a logic 0 level and the scan enable signal SE i  is held at a logic 1 level. These settings establish a data path that extends from the serial input port SI to the input D of the latch L 1 , via the first and second multiplexers M 1  and M 2 . After this initial loading operation, the toggle signal TOG is switched low-to-high and the scan enable pad signal SE pad  is switched high-to-low in advance of the next leading edge of the clock signal CLK, which is referred to herein as the launch edge of the clock signal CLK. The timing of when the toggle signal TOG switches low-to-high is somewhat flexible because it is only necessary that the low-to-high transition of TOG occur after the serial data has been loaded (i.e., after the initial leading edge of the clock signal CLK has been received) and before the launch edge of the clock signal CLK is received. As illustrated by the scan enable signal generator  12  of  FIG. 1C , which includes a latch L 2 , a NOR gate NR 1  and an inverter I 2 , switching the scan enable pad signal SE pad  high-to-low in advance of the launch edge of the clock signal CLK will cause the scan enable signal SE i  to switch high-to-low in-sync with the launch edge of the clock signal CLK. When this occurs, a data path between the parallel data input DI of the scan chain latch unit  10  and the data input D of the latch L 1  will be enabled. The signal generator  12  of  FIG. 1C  has the advantage of being responsive to the scan enable pad signal SE pad , which, as illustrated by  FIG. 1B , has more relaxed timing requirements and can be more easily distributed within a chip (with the scan enable signal SE i  being separated for each block within the chip).  
         [0029]     Upon receipt of the launch edge of the clock signal CLK, the true output Q of the latch L 1  will undergo a toggle operation by switching from a previously loaded high state to a low state. The toggle operation is made automatic because both the toggle signal TOG and the scan enable signal SE i  are high at the moment the launch edge of the clock signal CLK is received, which means the feedback path between the output of the inverter I 1  and the input D of the latch L 1  is enabled pending receipt of the launch edge. Following this, the scan enable signal SE i  switches high-to-low to thereby enable the true output Q of the latch L 1  to switch to the current value of the parallel data input DI upon receipt of the next leading edge of the clock signal CLK that follows the launch edge. After this next leading edge, the scan enable pad signal SE pad  switches low-to-high and the scan enable signal SE i  follows in-sync with the rising edge of the scan enable pad signal SE pad  signal, as illustrated by  FIG. 1C . Setting the scan enable signal SE i  high while the toggle signal TOG remains low will operate to connect the serial input port SI to the data input D of the latch L 1 . The data at the serial input port SI will then be passed to the true output Q of the latch L 1  in-sync with the next leading edge of the clock signal CLK, which is shown as the final leading edge illustrated by  FIG. 1B .  
         [0030]     Control of the generation of the toggle signal TOG in  FIG. 1B  may be independent of the scan enable pad SE pad  signal in some embodiments of the present invention. In particular, separate bond pads may be provided on an integrated circuit substrate and these bond pads may be electrically coupled to separate pins of an integrated circuit package that is configured to receive the scan enable pad SE pad  signal and the toggle signal TOG, respectively. However, in other embodiments, the toggle signal TOG may be generated by an alternative scan enable signal generator  12 ′, which is illustrated by  FIG. 1D . In particular, the toggle signal TOG may be generated at the output of an inverter I 3 , which receives the scan enable pad signal SE pad  as an input signal. Thus, in the timing diagram of  FIG. 1B , the timing of the toggle signal TOG may be modified so that it is set high when the scan enable pad signal SE pad  switches low and set low when the scan enable pad signal SE pad  switches high.  
         [0031]      FIG. 2A  illustrates a scan chain register  20  according to an embodiment of the present invention. This scan chain register  20  is illustrated as including a plurality (i.e., n+1) of the scan chain latch units  10  illustrated by  FIG. 1A . These scan chain latch units are shown by the reference numerals  10   a - 10   c . The first scan chain latch unit  10   a  includes first and second multiplexers M 1   a , M 2   a , a D-type latch L 1   a  and an inverter I 1   a . The second scan chain latch unit  10   b  includes first and second multiplexers M 1   b , M 2   b , a D-type latch L 1   b  and an inverter I 1   b . The last scan chain latch unit  10   c  within the scan chain register  20  includes first and second multiplexers M 1   c , M 2   c , a D-type latch L 1   c  and an inverter I 1   c . The scan chain register  20  is provided with a serial input port SI, a serial output port SO, a parallel input port DI 0 -DIn and a parallel output port DO 0 -DOn. By setting the toggle signal TOG high and the scan enable signal SE i  high, a toggle operation can be performed in-sync with a launch edge of the clock signal CLK. This toggle operation will cause all of the data signals at the parallel output port DO 0 -DOn to be inverted to thereby facilitate a scan test operation. Moreover, this toggle operation will not be functionally dependent on the values of any of the data signals at the parallel output port DO 0 -DOn. Accordingly, if a scanned-in test vector equivalent to DO 0 -DOn=101100 . . . 1 is loaded into the scan chain register  20  in a serial fashion (i.e., in-sync with a plurality of consecutive leading edges of the clock signal CLK), then the receipt of the launch edge of the clock signal CLK will cause each bit of this test vector to become inverted (i.e., DO 0 -DOn=010011 . . . 0).  
         [0032]     Referring now to  FIG. 2B , an alternative scan chain register  20 ′ is illustrated. This scan chain register  20 ′ is similar to the scan chain register  20  of  FIG. 2A , however, the scan chain latch units  10   a ′- 10   c ′ have been modified to include latches L 3   a , L 3   b  and L 3   c , respectively. These latches L 3   a , L 3   b  and L 3   c  have true and complementary outputs Q and /Q. These complementary outputs /Q are fed back to corresponding inputs of the first multiplexers M 1   a , M 1   b  and M 1   c , as illustrated. The use of complementary outputs /Q with each latch L 3   a , L 3   b  and L 3   c  eliminates the requirement of using inverters within the feedback paths of the scan chain latch units. The scan chain register  20 ″ of  FIG. 2C  is illustrated as including one (or more) conventional scan chain latch unit  14   b  within the chain, which is not configured to perform a toggle operation as described herein. Thus, it is not necessary that every scan chain latch unit within a scan chain register  20 ″ be configured to perform a toggle operation as described above with respect to  FIGS. 1A-1B . The scan chain register  20 ′″ of  FIG. 2D  is illustrated as including three different configurations of scan chain latch units. The use of different scan chain latch units supports reduction in hardware (e.g., transistor count) and optimization for each configuration of combinational logic connected to the parallel data outputs DO 0 -DOn. The scan chain latch units  10   a  and  14   b  are similar to those illustrated by FIG.  2 C, however, the scan chain latch unit  14   c  is illustrated as being responsive to the scan enable pad signal SE pad . Based on the timing diagram of  FIG. 1B , upon receipt of the launch edge of the clock signal CLK, the next state (NS) of the output of the scan chain latch unit  14   c  will be equivalent to the value of the data at the parallel input port DIn.  
         [0033]     As illustrated by  FIGS. 3A-3B , alternative embodiments of a scan chain latch unit  30  may be configured to support a toggle mode of operation and a freeze mode of operation. The toggle and freeze modes, which are synchronized with the clock signal CLK, may utilize a pair of feedback paths that are each selectively enabled to pass data to support a respective one of the toggle and freeze modes. Other embodiments of the scan chain latch unit  30  that do not utilize feedback paths to support the toggle and freeze modes may also be implemented. In the toggle mode of operation, the next output state (NS) of the scan chain latch unit  30  equals an opposite of the current output state (CS) of the scan chain latch unit  30  (i.e., NS=/CS, where “/” designates an inversion operation). The scan chain latch unit  30  is similar to the scan chain latch unit  10  of  FIG. 1A , however, the two select signals (TOG and SE i ) in  FIG. 1A  have been replaced by a pair of select signals SA and SB. This pair of select signals SA and SB enables selection between as many as four modes of operation. In addition to the toggle and freeze modes, two additional modes of operation include: (i) a “scan-in” mode whereby the next state of the latch unit  30  is equivalent to the data at the serial input port (SI) of the latch unit  30  when a next leading edge of the clock signal CLK is received and (ii) a “data-in” mode whereby the next state of the latch unit  30  is equivalent to the data at the parallel data input port (DI) of the latch unit  30  when a next leading edge of the clock signal CLK is received. The four possible combinations of the select signals SA and SB are illustrated more fully by TABLE 1. With these select signals, as many as four states may be established at an output of a scan chain latch unit  30  in-sync with the clock signal CLK.  
                       TABLE 1                       SA   SB   OUTPUT OF SCAN CHAIN LATCH UNIT 30                   0   0   NS = DI; NORMAL LOGIC OPERATION       0   1   NS = Q; FREEZE MODE FOR SPEED TEST       1   0   NS = QB; TOGGLE MODE FOR SPEED TEST       1   1   NS = SI; SCAN-IN MODE FOR SCAN CHAIN SHIFTING                  
 
         [0034]      FIG. 3B  illustrates a detailed electrical schematic of one embodiment of the scan chain latch unit  30  of  FIG. 3A . This electrical schematic includes two totem pole arrangements of PMOS and NMOS transistors having commonly connected outputs, which are provided as an input to a first transmission gate TG 1 . The first totem pole arrangement of transistors includes PMOS transistors P 1 -P 4  and NMOS transistors N 1 -N 4 , connected as illustrated. The second totem pole arrangement of transistors includes PMOS transistors P 5 -P 8  and NMOS transistors N 5 -N 8 . These two totem pole arrangements of transistors operate as a 4-input multiplexer that is responsive to the two select signals SA and SB. The four data inputs of the multiplexer include the serial input port (SI), the data input port (DI), a first feedback path, which electrically connects a complementary output (QB) of a latch unit to gate terminals of PMOS transistor P 3  and NMOS transistor N 3 , and a second feedback path, which electrically connects a true out (Q) of the latch unit to gate terminals of PMOS transistor P 7  and NMOS transistor N 7 . Inverters I 2  and I 3  are also provided for inverting the select signals SA and SB. The latch unit is illustrated as including a first latch, which is synchronized with a clock signal CLK, and a second latch connected to an output of the first latch. This first latch includes a first pair of inverters connected in antiparallel (L 4 ), first and second transmission gates TG 1  and TG 2 , which are synchronized with the clock signal CLK, and an inverter I 5  which generates a complement of the clock signal CLK. The second latch includes a second pair of inverters connected in antiparallel (L 5 ) and an output inverter I 4 . The second latch is configured to generate the true output signal Q and the complementary output signal QB.  
         [0035]     Based on the illustrated configuration of the scan chain latch unit  30  of  FIG. 3B , setting the select signals SA and SB to a value of “00” will operate to turn on NMOS transistors N 1  and N 4  and PMOS transistors P 1  and P 4 . When this occurs, the value of the data at the data input port DI will operate to pull the output of the first totem pole arrangement high when DI=0 or low when DI=1. In contrast, setting the select signals SA and SB to a value of “11” will operate to turn on NMOS transistors N 5  and N 8  and PMOS transistors P 5  and P 8 . When this occurs, the value of the data at the serial input port SI will operate to pull the output of the first totem pole arrangement high when SI=0 or low when SI=1. Setting the select signals SA and SB to a value of “01” will operate to turn on NMOS transistors N 4  and N 5  and PMOS transistors P 1  and P 8 . When this occurs, the value of the feedback signal line Q will operate to pull the output of the first totem pole arrangement high when Q=0 and PMOS transistor P 7  is “on” or low when Q=1 and NMOS transistor N 7  is “on”. Finally, setting the select signals SA and SB to a value of “10” will operate to turn on NMOS transistors N 1  and N 8  and PMOS transistors P 4  and P 5 . When this occurs, the value of the feedback signal line QB will operate to pull the output of the first totem pole arrangement high when QB=0 and PMOS transistor P 3  is “on” or low when QB=1 and NMOS transistor N 3  is “on”.  
         [0036]     When the clock signal CLK is low (CLK=0), the output of the 4-input multiplexer is passed to an input of the first latch while the output of the first latch remains in a high impedance state by virtue of the fact that the second transmission gate TG 2  is “off”. When the clock signal CLK switches high (e.g., when a “launch” edge of the clock signal CLK occurs), the first transmission gate TG 1  is turned off, the second transmission gate TG 2  is turned on and the data at the output of the first pair of inverters L 4  is passed to an input of the second pair of inverters L 5  and the next state values of Q and QB are established. These values Q and QB are fed back to inputs of the 4-input multiplexer.  
         [0037]     The scan chain latch unit  30 ′ of  FIG. 3C  represents an alternative scan chain latch unit embodiment that utilizes a single feedback path from the true output Q and a feed-forward path from the data input port DI. As illustrated by TABLE 2, this scan chain latch unit  30 ′ supports a freeze mode of operation but not a toggle mode of operation. A more preferred embodiment of the scan chain latch unit  30 ′ of  FIG. 3C  is illustrated by the scan chain latch unit  30 ′″ of  FIG. 3E , which has a reduced transistor count. The scan chain latch unit  30 ″ of  FIG. 3D  represents yet another scan chain latch unit embodiment that utilizes a single feedback path from the complementary output QB and a feed-forward path from the data input port DI. As illustrated by TABLE 2, this scan chain latch unit  30 ″ supports a toggle mode of operation but not a freeze mode of operation. A more preferred embodiment of the scan chain latch unit  30 ″ of  FIG. 3D  is illustrated by the scan chain latch unit  30 ″″ of  FIG. 3F , which has a reduced transistor count.  
                           TABLE 2                               OUTPUT OF LATCH   OUTPUT OF LATCH UNIT 30″       SA   SB   UNIT 30′ and 30′″   and 30″″                   0   0   NS = DI; NORMAL   NS = DI; NORMAL OPERATION               OPERATION       0   1   NS = Q; FREEZE MODE   NS = QB; TOGGLE MODE       1   0   NS = DI; NORMAL   NS = DI; NORMAL OPERATION               OPERATION       1   1   NS = SI; SCAN-IN MODE   NS = SI; SCAN-IN MODE                  
 
         [0038]     As illustrated by  FIG. 4A , a scan chain register  40  according to another embodiment of the present invention includes a plurality of scan chain latch units  30   a - 30   n , which are illustrated in greater detail by  FIGS. 3A-3B . This scan chain register  40  supports the four modes of operation illustrated by TABLE 1, with the SA and SB select terminals of the illustrated units  30   a - 30   n  being connected to select lines SA and SB, respectively. Based on this configuration of the select lines and terminals, each of the scan chain latch units  30   a - 30   n  will operate in the same mode of operation at all times. In contrast, the segment of a scan chain register  40 ′ illustrated by  FIG. 4B  demonstrates how a first select terminal SA of one scan chain latch unit  30   e  may be connected to a second select terminal SB of another scan chain latch unit  30   f  by a first select line S 1 . Similarly, the first select terminal SB of the scan chain latch unit  30   e  may be connected to a second select terminal SA of the scan chain latch unit  30   f  by a second select line S 2 . Based on this illustrated configuration, disposing the scan chain latch unit  30   e  in a toggle mode of operation by setting S 1 , S 2  equal to 10 will operate to dispose the scan chain latch unit  30   f  in a freeze mode of operation. Likewise, disposing the scan chain latch unit  30   e  in a freeze mode of operation by setting S 1 , S 2  equal to 01 will operate to dispose the scan chain latch unit  30   f  in a toggle mode of operation.  
         [0039]     This configuration of the scan chain latch units  30   e  and  30   f  enables at-speed testing of combinational logic devices. For example, all of the possible speed paths that can be tested in the two-input NAND gate ND 1  illustrated by  FIG. 4B  may be tested at-speed using the four test sequences illustrated by TABLE 3. The four test sequences also demonstrate the independence of the next states (NS) on the data values established at the serial input ports (SI) and the data input ports (DI) of the illustrated scan chain latch units  30   e  and  30   f .  
                                                                                   TABLE 3                                       Z falling   Z rising                CS   NS   CS   CS   NS                    X   1    1    0    1    0   1               (NS = CS)   (NS = /CS)   (NS = CS)   (NS = /CS)       Y   1    0    1    0    1   1               (NS = /CS)   (NS = CS)   (NS = /CS)   (NS = CS)       S1 S2       01   10   01   10                  
 
         [0040]     In the event the 2-input NAND gate ND 1  of  FIG. 4B  is replaced by a 2-input XOR gate, then TABLE 4 illustrates the eight test sequences that may be required to test the 2-input XOR gate, with each sequence being independent of the data values established at the serial input ports (SI) and the data input ports (DI) of the illustrated scan chain latch units  30   e  and  30   f .  
                                                                                                                       TABLE 4                                       Z rising   Z falling                CS   NS   CS   NS   CS   NS   CS   NS                    X   0   0   1   1   0   1   0   0   1   1   0   1       Y   0   1   0   1   1   0   1   0   1   0   0   1       S1 S2       01   10       10   01       01   10       10   01                  
 
         [0041]     Increased controllability may also be achieved for more complex applications by inserting one or more dummy flip-flops into a scan chain register. As illustrated by  FIG. 4C , a scan chain register  40 ″ may include a plurality of scan chain latch units  30   g - 30   i  and at least one dummy flip-flop  32 , which is illustrated as a D-type flip-flop. Each of these latch units  30   g - 30   i  may be configured as illustrated by  FIGS. 3B-3F , however, other configurations of the latch units (not shown herein) may also be possible. Moreover, the latch units  30   g - 30   i  need not be equivalent. The inputs (SA 1 , SB 1 ), (SA 2 , SB 2 ) and (SA 3 , SB 3 ) to each of the scan chain latch units  30   g - 30   i  may be connected to respective pairs of terminals or may be connected in different ways to a single pair of input terminals (e.g., S 1  and S 2 ) to achieve desired functions for each of the latch units. The inclusion of this dummy flip-flop  32  (and others at strategic locations within the scan chain register  40 ″) may enable the at-speed testing of complex logic  34  with 100 percent controllability of the third input to the complex logic  34  (i.e., the last input of the complex logic  34  that is connected to output of scan chain latch unit  30   i ), albeit using a somewhat longer scan chain register  40 ″. The inclusion of one or more dummy flip-flops can enable all speed paths within the complex logic  34  to be checked using a smaller number of test vectors. As illustrated, the dummy flip-flop  32  may be programmed to store a desired next state for the following scan chain latch unit  30   i  when the corresponding select signals SA 3  and SB 3  are set to a predetermined value. This value may equal a 11 value (i.e., SA 3 =SB 3 =1) in the event the latch unit  30   i  is configured to operate in accordance with TABLES 1-2, however, alternative configurations of the latch unit  30   i  (not shown herein) may also be utilized to achieve the desired operation.  
         [0042]     In the drawings and specification, there have been disclosed typical preferred embodiments of the invention and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being set forth in the following claims.