Abstract:
A scan chain latch circuit, a method of operating a latch circuit in a scan chain, and a computer-readable medium having stored thereon a data structure defining a scan chain latch circuit for instantiation on a semiconductor die are disclosed. In an embodiment, the scan chain latch circuit comprises a first latch for holding one data value, a second latch for holding another data value, and a multiplexor. The one data value is applied to a first data input of the multiplexor and the another data value is applied to a second data input of the multiplexor. An alternating clock signal is applied to a select input of the multiplexor to control the output of the multiplexor, wherein the output of the multiplexor toggles between the two data values held in the two latches at a defined frequency.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of copending U.S. patent application Ser. No. 15/138,737, filed Apr. 26, 2016, which is a continuation of U.S. patent application Ser. No. 14/985,681, filed Dec. 31, 2015, which is a continuation of U.S. patent application Ser. No. 14/722,377, filed May 27, 2015, which is a continuation of U.S. patent application Ser. No. 13/850,555, filed Mar. 26, 2013. The entire contents and disclosures of U.S. patent applications Ser. Nos. 15/138,737, 14/985,681, 14/722,377 and 13/850,555 are hereby incorporated herein by reference. 
     
    
     STATEMENT OF GOVERNMENT INTEREST 
       [0002]    This invention was made with Government support under Contract No.: FA8650-11-C-7105 (National Security Agency). The Government has certain rights in this invention. 
     
    
     BACKGROUND 
       [0003]    The present invention relates generally to circuit testing, and more particularly to scan chains used for circuit diagnostics. 
         [0004]    Modern circuit design incorporates methods and hardware that enable circuit testing upon completion of production, often referred to as “design for test” or “design for testability” (DFT). One DFT technique utilizes scan chains. In a scan chain system, certain latches couple together into a hardware connection known as a “scan chain.” The test system inputs a test pattern into the scan chain latches, which the system then uses to test the functionality of the circuit. As such, scan chains allow for increased testability and observability of an integrated circuit design. 
         [0005]    Scan chains are widely used in modern IC for rapid test and debug purposes. The recent emergence of emission based test tools imposes additional requirements on scan chains. To extract useful information from emission images, a high degree of control is needed over stimuli applied to a circuit under test. In this respect, functionality of standard scan chains is quite limited. 
         [0006]    Other limitations of standard scan chains include the scan chain adjacency problem, and broken/shorted/stuck-at wires. The scan chain adjacency problem is the inability to test certain logic state transitions when adjacent latches feed both inputs of the same 2-input AND, NAND, OR, or NOR gate. A stuck-at fault, which is typically a manufacturing defect, occurs when an input or output of a circuit is stuck at a single logic value. 
       BRIEF SUMMARY 
       [0007]    Embodiments of the invention provide a scan chain latch circuit, a method of operating a latch circuit in a scan chain, and a computer-readable medium having stored thereon a data structure defining a scan chain latch circuit for instantiation on a semiconductor die. In an embodiment, the scan chain latch circuit comprises two latches and a multiplexor. Each of these two latches holds a data value, and each of these data values is applied to a respective one data input of the multiplexor. A clock subcircuit applies an alternating clock signal to a select input of the multiplexor to control the output of the multiplexor so that the output of the multiplexor toggles between the two data values held in the two latches at a defined frequency. 
         [0008]    In one embodiment, the output of the multiplexor is an output of the latch circuit. 
         [0009]    In an embodiment, the two latches are located in series in the scan chain latch circuit. 
         [0010]    In an embodiment, the clock subcircuit applies the clock signal to the select input of the multiplexor at a specified frequency, and said defined frequency is equal to the specified frequency. 
         [0011]    In one embodiment, the two values held in the latches are different values. 
         [0012]    In one embodiment, the scan chain latch circuit has a forward mode of operation and a reverse mode of operation. In the forward mode of operation, a scan-in input is applied to a first of the latches, the data value held in this first latch is applied to the second latch, and this second latch generates a scan-out signal. In the reverse mode of operation, the scan-in signal is applied to the second latch, the data value held on this second latch is applied to the first latch, and the first latch generates the scan-out signal. 
         [0013]    In an embodiment, a scan direction signal is applied to the first and second latches to control whether the latch circuit is in the forward mode of operation or the reverse mode of operation. 
         [0014]    In an embodiment, the first latch includes a first latch multiplexor, and the scan-in signal and an output of the second latch are applied to the first latch multiplexor. The scan direction signal is applied to the first latch multiplexor to control whether the first latch holds the scan-in signal or the output of the second latch. 
         [0015]    In one embodiment, the second latch includes a second latch multiplexor, and the scan-in-reverse input and an output of the first latch are applied to the second latch multiplexor. The scan direction signal is applied to the second latch multiplexor to control whether the second latch holds the scan-in-reverse input or the output of the first latch. 
         [0016]    In an embodiment, the second latch includes a scan-inversion multiplexor, and an inverter sub-circuit for applying an inversion of the output of the first latch to this scan-inversion multiplexor. The output of the second multiplexor is also applied to the scan inversion multiplexor. A scan-inversion signal is applied to a select input of the scan-inversion multiplexor to control whether the output of the second multiplexor or the inversion of the output of the first latch is stored in the second latch. 
         [0017]    Embodiments of the invention provide a number of important advantages. For instance, embodiments of the invention support bidirectional scan chain operation. This simplifies diagnosis of broken chains and ensures that scan chain retains partial functionality when broken. Embodiments of the invention speed up toggling between two input patterns (in high speed-GHz) without the need to reload the entire scan chain. Embodiments of the invention allow single-bit data toggling (cone of logic detection, path delay estimation) and resolve the latch adjacency problem. In addition, embodiments of the invention introduce skew between inputs, helping separate switching activity of closely located gates, and substantially reduce image acquisition time for Time Resolved Emission (TRE) testing by excluding scan chain reload step. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0018]      FIG. 1  illustrates a standard latch of a scan chain. 
           [0019]      FIG. 2  shows a latch design according to an embodiment of this invention. 
           [0020]      FIG. 3  depicts the operation of the latch of  FIG. 2  in a forward direction. 
           [0021]      FIG. 4  shows the operation of the latch of  FIG. 2  in a reverse direction. 
           [0022]      FIG. 5  illustrates unidirectional and bidirectional scans. 
           [0023]      FIG. 6  illustrates high speed data toggling in the latch of  FIG. 2   
           [0024]      FIG. 7  shows a cone of logic for a latch. 
           [0025]      FIG. 8  shows a Picosecond Imaging Circuit Analysis system that may be used to analyze an integrated circuit including scan chains designed in accordance with embodiments of the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0026]    The present invention relates to scan chains used for integrated circuit diagnostics. Scan chains are widely used in modern IC for rapid test and debug purposes. The recent emergence of emission based test tools imposes additional requirements on scan chains. To extract useful information from emission images, a high degree of control is needed over stimuli applied to a circuit under test. In this respect, functionality of standard scan chains is quite limited. For example, to capture a time resolved emission waveform, the same stimulus may have to be applied thousand or even million times. Using standard scan chain, the entire scan chain would have to be reloaded every time the stimulus is reapplied. This results in unacceptably long acquisition time, because the frequency of stimulus exercising is the frequency of scan chain clock (hundreds of MHz) divided by scan chain length. 
         [0027]    Other limitations of standard scan chains include the scan chain adjacency problem, and broken/shorted/stuck-at wires. The scan chain adjacency problem is the inability to test certain logic state transitions. Logic testing starts by loading the scan chain with the initial pattern. And this pattern is applied to test the logic by toggling the system clocks. Due to the nature of latch adjacency, certain logic state transitions cannot be generated on the output of one latch while keeping the logic state on the output of other latch. As a result, the possible sequence of test patterns that can be used is limited. 
         [0028]    Broken/shorted/stuck-at wires pose a serious threat to standard scan chains rendering them inoperable. However, for test site or prototype IC designs, it would be beneficial to have robust scan chain that would retain partial functionality even when the chain is broken. 
         [0029]    Also, standard scan chain lacks in the ability to toggle a single bit while the rest of the bits are not switching. The need of single bit toggling arises in the context of emission testing where single bit toggling reveals a cone of logic affected by this bit. Collecting this kind of information from all the bits within the scan chain one by one could help create a map that would simplify further localization and identification. 
         [0030]    Another limitation of standard scan chain is that they do not have any provision to skew toggling times between two bits. All the bits are clocked out by the same scan chain clock. Skew adjustment is a valuable control mechanism for optical diagnosing of ICs. Skew adjustment allows spreading switching activities of closely separated gates in time, thus, improving resolvability. 
         [0031]      FIG. 1  depicts a prior art latch  100 . A “scan chain” is typically comprised of many such latches arranged in a serial fashion. A standard scan chain latch  100  contains a one-bit memory  102  (DFF, or type-D flip flop) and a 2-input multiplexor  104 . The SE or scan-enable input allows selection between two modes of operation: on the next edge of the clock (CLK), the memory will store either incoming data D, or the memory may store the state of the neighbor latch as presented on the SI (scan in) input. This ultimately permits the contents of the entire scan chain to be passed outside the chip on a single line which is the SO (scan out) output of the final latch in the chain. Additional descriptions of scan chains and scan chain latches are given in U.S. Pat. Nos. 6,453,436 and 7,774,662, the disclosures of which are hereby incorporated herein by reference. 
         [0032]      FIG. 2  shows a latch design in accordance with an embodiment of this invention. Latch circuit  200  includes a number of unique elements not found in the prior art latch  100 . One unique element is a second latch  204 , or shadow latch, which may be essentially a copy of the first latch  202  with some extra logic. Another unique element is the MUX  206 , which has as its data inputs the outputs of the first and second latches, and as its select input a high speed clock C 1 . The combination of the first and second latches  202 ,  204  may be referred to as a superlatch, since from a higher level, the D and SI inputs and the SO output would appear to be identical in function to those of the standard latch, except for the fact that in latch  200 , it takes two clock edges for the SO output to propagate vs. one clock edge for the standard latch. The MUX  206  and the extra logic of latch circuit  200  are present to provide the unique features discussed below in more detail. 
         [0033]    Latch circuit  200  thus comprises two component latches  202  and  204  and multiplexor  206 . Component latch  202  includes a one bit memory  212  and two 2-input multiplexors  214  and  216 ; and component latch  204  includes a one bit memory  220  and two 2-input multiplexors  222  and  224 . 
         [0034]    The scan in input is applied to one input of MUX  214 , and the output of latch  204  is applied to the other input of MUX  214 . The select input of MUX is the scan direction signal. The data D and the output of MUX are input to MUX  216 , and the select input of this MUX is the scan enable signal. The output of MUX  216  is applied to memory  212 , and the system clock CLK is applied to this memory to control the timing of the data storage in the memory. 
         [0035]    The output of memory  212  is applied to a first input of MUX  206 , to a first input of MUX  222  and to the Scan-out Reverse (SOR) output of latch circuit  200 . The scan-in reverse input from an adjacent latch is applied to the second input of MUX  222 , and the select input of this MUX is the scan direction signal. 
         [0036]    The output of MUX  222  is applied to one input of MUX  224 , and the other input of this MUX  224  is the inversion of the output of memory  212 . The select input of this MUX  224  is the scan inversion signal. The output of MUX  224  is applied to memory  220 , and the system clock CLK is also applied to this memory to control the timing of the data storage in the memory. The output of memory  220  is the SO output of the latch  200 , and this output is also applied to MUX  206  and to MUX  214 . The select signal for MUX  206  is the high speed data toggling clock C 1 . 
         [0037]    Latch circuit  200  provides a number of significant features. This embodiment of the invention supports bidirectional scan chain operation, may be used to speed up toggling between two input patterns (GHz) without the need to reload the entire scan chain, and allows single-bit data toggling (cone of logic detection, path delay estimation). This embodiment of the invention also may be used to resolve the latch adjacency problem, to introduce skew between inputs, helping separate switching activity of closely located gates, and to reduce significantly image acquisition time for TRE by excluding scan chain reload step. 
         [0038]      FIGS. 3 and 4  depict the bidirectionality feature of the Latch circuit  200 . In an ordinary scan chain, data is always passed in one direction to an output. However, there are cases in which—due to design error or circuit malfunction—the data does not successfully reach the output. In these cases, it can be difficult or impossible to identify where the fault lies along the chain. With a bidirectional scan chain, data can proceed along the chain in either direction, as shown in  FIG. 5 . This allows precise identification of the location of the fault. 
         [0039]    The direction of movement of data through latch  200  is controlled by the Sc_dir signal. When this signal is low, as in  FIG. 3 , the output of component latch  202  is applied to component latch  204 , and data moves in the forward direction through latch circuit  200 . When the Sc_dir signal is high, as in  FIG. 4 , the output of component latch  204  is applied to component latch  202 , and data moves in the reverse direction through latch circuit  200 . 
         [0040]    When data moves in the forward direction through latch circuit  200 , the latch input is presented on the SI input, and the latch output is presented on the SO output. When data moves in the reverse direction through latch circuit  200 , the latch input is presented on the SIR input, and the latch output is presented on the SOR output. 
         [0041]    Advantages of this bidirectional movement are illustrated in  FIG. 5  which shows two chains  502  and  504  of latches  506  and  510 . With unidirectional movement, shown at  502 , when a latch is not operating or is broken, the input data is not able to pass through the entire chain, and the chain output may be a series of Os. Bidirectional movement, shown at  504 , may be used to identify the location of the defective latch. Bidirectional movement may also be used to confirm that the other latches in the chain are working properly. 
         [0042]      FIG. 6  depicts the High Speed Data Toggling feature of the latch. One deficiency of many standard scan chains is the Latch Adjacency Problem, in which certain logic transitions are unavailable due to the fact the logic is driven by adjacent latches in a scan chain. 
         [0043]    In embodiments of the invention, high speed data toggling is achieved through use of the MUX  206  and the high speed data toggling clock C 1 . As mentioned above, the output of component latch  202  is applied to one input of MUX, and the output of component latch  204  is applied to a second input of the MUX, and clock C 1  is applied to the select input of the MUX. As clock C 1  alternates between high and low, the output Q of MUX alternates between the output of component latch  202  and the output of component latch  204 . 
         [0044]    With the example shown in  FIG. 6 , the output of component latch  202  is 0 and the output of component latch  204  is 1. The output Q of MUX alternates between 0 and 1 under the timing control of Clock C 1 . With this arrangement, the output of latch  200  can quickly alternate between 0 and 1 without changing any of the data stored in the latch. 
         [0045]    With reference to  FIG. 7 , latch  200  offers a complete solution to the Latch Adjacency Problem, and in addition, when combined with Emission-based imaging (TRE), has several unique advantages: 1) it permits toggling of a single bit anywhere along the scan chain; 2) it permits direct observation of the cone of logic (or sphere of influence) of a given bit transition; 3) it permits very high speed switching between two arbitrary test patterns (effectively the two test patterns are stored in the two component latches of the superlatch and can be selected with the MUX); 4) through the use of multiple MUX select signals C 1 , C 2 , etc., an arbitrary timing skew can be applied between different signal paths; and 5) since two test vectors can be stored at the same time, the image acquisition time for TRE can be substantially reduced by eliminating the overhead of reloading the scan chain. 
         [0046]    In an embodiment of the invention, an adjustable skew between several latches (temproal resolvability) can be achieved by providing the output multiplexor of each of a group of superlatches with an independent or otherwise adjustable clock input. For example, the multiplexor  206  of  FIG. 2  has a clock C 1 . In a group of three superlatches, for example, as represented in  FIG. 7 , the multiplexors of the three superlatches may have clocks C 1 , C 2  and C 3  respectively. 
         [0047]    Embodiments of the invention address requirements imposed on scan chains by the recent emergence of emission based test tools, and  FIG. 8  illustrates, as an example, a Picosecond Imaging Circuit Analysis (PICA) system  800  that may be used to analyze an integrated circuit including scan latches of embodiments of the invention. 
         [0048]    The PICA system  800  exemplarily shown in  FIG. 8  includes an imaging section  801  with a light-tight enclosure for the components  802 ,  803 ,  804  that detect the photon emission for the chip  805  mounted on test board  806 . The timing section  810  is used to control the test sequence and analyze the photon emission image. 
         [0049]    Thus, in PICA, an automated tester  800  is used to stimulate the packaged device so that the transistors to be studied are switched repetitively. A standard infrared microscope  802 ,  803  is used to magnify and focus these devices onto the detection apparatus  804 , which may be, for example, a thermoelectrically-cooled microchannel-plate (MCP) photomultiplier with a position-sensitive resistive anode, thereby determining both the location and the time of a photon emission. 
         [0050]    Additional details of PICA systems are disclosed in “On-Chip Power Supply Noise Measurement using Time Resolved emission (TRE) Waveforms of Light Emission from Off-State Leakage current (LEOSLC),” International Test Conference, Paper 8.1, (IEEE) (2009) (Stellari, et al.) and in U.S. Pat. No. 7,774,662. The disclosures of Stellari, et al. and of U.S. Pat. No. 7,774,662 are hereby incorporated herein by reference in their entireties. 
         [0051]    The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or to limit the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the invention. The embodiments were chosen and described in order to explain the principles and application of the invention, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.