Abstract:
An apparatus and method of scanning a dual edge-triggered flip-flop with scan capability includes a first scan slave element capable of capturing data on a positive edge of a clock signal; and a second scan slave element capable of capturing data on a negative edge of the clock signal. An apparatus and method of scanning a dual edge-triggered flip-flop with scan capability includes a scan slave element capable of capturing data on either a positive edge or a negative edge of a clock signal; wherein a control signal determines whether the scan slave element captures data on the positive edge or negative edge of the clock signal.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
   This application claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Application No. 60/383,318, filed on May 24, 2002, and U.S. Provisional Application No. 60/383,319, filed on May 24, 2002. 

   BACKGROUND OF INVENTION 
   A computer system typically uses variety of digital integrated circuits (ICs). For example, desktop computer systems commonly include digital ICs to implement user interfaces for receiving user instructions and handling the electronic processing of those instructions. As the complexity of the implementation increases, the system of digital ICs becomes more sophisticated. In turn, as digital devices become more sophisticated, the task of designing, testing, and debugging the digital systems implementing the devices becomes more difficult. Thus, validation of a system design and verification of the proper functionality of the system has become an important factor in the development of computer technology. 
   Mechanisms to observe the sequential logic state of a digital IC on a tester, or in a system, are critical to debugging operations. The observation is typically achieved when the IC is exercising its intended functionality on the tester or the system. To observe the logical state of any digital IC, the state elements need to have scan capability. Scan capability refers to the inclusion of an alternative path used to control and/or observe the state of a state element. With various types of scan capability and global scan architecture, there are three fundamental ways of observing logic state of a digital IC: shadow scan, dumping state, and single stepping. 
   In the shadow scan, key state elements to be observed are “shadowed” in scannable state elements and the scanned information is shifted out serially in real time without stopping the functional clock of the IC. In the dumping state, at a predetermined clock cycle during the operation of the IC, the functional clock signal is stopped. Then, the state is latched in the slave portions of the state elements and is serially shifted out for observation. In the single stepping, at every clock step, the functional clock signal is stopped, the state is latched in the slave portions of the state elements, and is shifted out for observation. Also, the state information is shifted back in to restore the state of the machine to what it was when the clock stopped. Once the shifting out and shifting in are completed, the functional clock is re-started. 
   There are various test design strategies, know as design-for-testability (DFT) techniques for ensuring the ratio of the number of passed ICs to the total number of tested ICs is high. In DFT, test patterns may be generated using an automatic test pattern generation (ATPG) algorithm to be applied via chip pins or scan mechanism. Scan capability refers to the inclusion of an alternative path used to control and/or observe the state of a state element. 
   Scan-based ATPG is a method of testing digital circuits for manufacturing defects. In this method, a state element, e.g., flip-flop or latch, in the circuit is modified to give controllability and observability of the state of the element using a sequential path that can switch between test operation (test mode) and evaluative operation (normal mode). 
   Two scan-based algorithms are combinational and sequential ATPG. Combinational ATPG is when all state elements in the design have scan capability. In combinational ATPG, all state elements can be controlled to a known state in test mode. The combinatorial logic between state elements can be evaluated in one clock cycle and the result latched in the state elements. Sequential ATPG is when only some of the state elements in the design have scan capability. In sequential ATPG, only those elements that have scan capability can be controlled to a known state in scan mode. The combinatorial logic between state elements and non-state elements are evaluated over multiple clock cycles and the results are stored in the scan capable elements. 
   Typically, flip-flops in digital circuits are single edge-triggered. These flip-flops latch state either on the positive (0 to 1 transition) of the clock or on the negative edge (1 to 0 transition). A faster data rate and some power savings can be achieved if the state element is designed such that it latches the state on the positive as well as the negative edge of the clock. This type of flip-flop that latches on both the positive edge and negative edge of the clock is known as a dual edge-triggered flip-flop. 
   Referring to  FIG. 1 , a dual edge-triggered flip-flop ( 10 ) is shown. As can be seen, the dual edge-triggered flip-flop has an input (D), an output (Q), and receives a clock signal (CLK). At the positive edge of the clock signal (CLK), the input (D) is sent to the output (Q). Also, at the negative edge of the clock signal (CLK), the input (D) is sent to the output (Q). Those skilled in the art will appreciate that while a D flip-flop is used as the exemplary flip-flop throughout this specification. The present invention is equally applicable to any dual edge-triggered flip-flop. 
   Referring to  FIG. 2 , a circuit diagram of the dual edge-triggered flip-flop ( 10 ) is shown. Essentially, the flip-flop ( 10 ) includes two latches ( 12 ) and ( 14 ). These latches ( 12 ) and ( 14 ) are each a pair of cross-coupled inverters. Transmission gates ( 16 ) and ( 18 ) are coupled around latch ( 12 ) and receive the complement of the clock signal ({overscore (CLK)}) and the clock signal (CLK) respectively. Likewise, transmission gates ( 20 ) and ( 22 ) are coupled around latch ( 14 ) and receive the clock signal (CLK) and complement of the clock signal ({overscore (CLK)}) respectively. The transmission gates may be pairs of a P-type Metal Oxide Semiconductor (P-MOS) and an N-type Metal Oxide Semiconductor (N-MOS). Thus, on the positive edge of the clock signal, the data (D) latched in latch ( 12 ) is sent to output (Q) and on the negative edge of the clock signal, the data (D) latched in latch ( 14 ) is sent to output (Q). 
   SUMMARY OF INVENTION 
   In accordance with an aspect of one or more embodiments of the present invention, a dual edge-triggered flip-flop with scan capability comprises: a first scan element capable of transferring test patterns and capturing data on a positive edge of a clock signal; and a second scan element capable transferring test patterns and capturing data on a negative edge of the clock signal. 
   In accordance with an aspect of one or more embodiments of the present invention, a dual edge-triggered flip-flop with scan capability comprises a scan slave element capable of capturing data and transferring test pattern on either a positive edge or a negative edge of a clock signal, where a control signal determines whether the scan slave element captures data and transfers test pattern on the positive edge or negative edge of the clock signal. 
   In accordance with an aspect of one or more embodiments of the present invention, a method of scanning a dual edge-triggered flip-flop comprises: capturing data and transferring test pattern on a positive edge of a clock signal; and capturing data and transferring test pattern on a negative edge of the clock signal. 
   In accordance with an aspect of one or more embodiments of the present invention, a method of scanning a dual edge-triggered flip-flop comprises: capturing data and transferring test pattern on either a positive edge or a negative edge of a clock signal based on a control signal. 
   In accordance with an aspect of one or more embodiments of the present invention, an apparatus for scanning a dual edge-triggered flip-flop comprises: means for capturing data and transferring test pattern on a positive edge of a clock signal; and means for capturing data and transferring test pattern on a negative edge of the clock signal. 
   In accordance with an aspect of one or more embodiments of the present invention, an apparatus for scanning a dual edge-triggered flip-flop comprises means for capturing data and transferring test pattern on either a positive edge or a negative edge of a clock signal based on a control signal. 
   In accordance with an aspect of one or more embodiments of the present invention, an apparatus for scanning a dual edge-triggered flip-flop comprises: a first scan element comprising a first scan input connected to a first transmission gate, a first scan output connected to a first latch, and a second transmission gate connected to the first latch; a second scan element comprising a second scan input connected to a third transmission gate, a fourth transmission gate connected to the third transmission gate, a scan output connected to a second latch, and a fifth transmission gate connected to the second latch; a dual edged-triggered flip flop comprising a data input connected to a sixth transmission gate, a seventh transmission gate and eighth transmission gate connected to the sixth transmission gate, a data output connected to a ninth transmission gate and tenth transmission gate, a third latch connected to the seventh transmission gate and eighth transmission gate and connected to the first transmission gate and the second transmission gate of the first scan element; and a fourth latch connected to the ninth transmission gate and tenth transmission gate and connected to the fourth transmission gate and the fifth transmission gate of the second scan element. 
   Other aspects and advantages of the invention will be apparent from the following description and the appended claims. 

   
     BRIEF DESCRIPTION OF DRAWINGS 
       FIG. 1  is a block diagram of a dual edge-triggered flip-flop. 
       FIG. 2  is a circuit diagram of a dual edge-triggered flip-flop. 
       FIG. 3  is a block diagram of a dual edge-triggered flip-flop with scan capability in accordance with an embodiment of the present invention. 
       FIG. 4  is a circuit diagram of a dual edge-triggered flip-flop with scan capability in accordance with an embodiment of the present invention. 
       FIG. 5  is a block diagram of a dual edge-triggered flip-flop with scan capability in accordance with an embodiment of the present invention. 
       FIG. 6  is a circuit diagram of a dual edge-triggered flip-flop with scan capability in accordance with an embodiment of the present invention. 
   

   DETAILED DESCRIPTION 
   In one or more embodiments, the present invention involves a dual edge-triggered flip-flop with scan capability for (1) observation of digital IC during debug and (2) scan based combinational and sequential ATPG. In a sequential circuit designed using flip-flops that latch state on both the edges of the clock, a scan design is required for (1) transferring test patterns on both edges of the clock using scan-based ATPG for testing the IC and (2) observing states latched on either clock edge both at the flip-flop level and global scan architecture level. 
   With dual edge-triggered flip-flops, a scan slave design and scan operation mechanism is required that transfers test patterns on both the positive and negative edges and observes the state latched at the positive edge and the state latched on the negative edge. In one or more embodiments, a scan slave is included for capturing data from either the positive or the negative half of the dual edge-triggered flip-flop. A control signal configures the clocking of the scan slave such that it captures data from one of the halves of the flip-flop. In one or more embodiments of the invention, the dual edge-triggered scan flip-flop with single edge scan capability as shown in  FIG. 3  may be used for a combinational ATPG test. In this embodiment, test patterns may, be generated for positive edge and negative edge applications separately. For example, test pattern 1 of 10110 may be prepared for the positive edge application and test pattern 2 of 11101 may be prepared for the negative edge application. Then, these patterns may be loaded into scan input (SI) terminal as shown in  FIG. 3 . When these patterns need to be loaded in a sequential path, test mode is selected by setting voltage of scan enable control (SCAN_EN) signal to high and voltage of function clock (F_CLK) signal to steady. The pattern  1  may be loaded into the sequential path using the positive edge of scan-clock (S_CLK) signal. Then, the pattern  2  is loaded in the sequential path using the negative edge of the scan clock (S_CLK) signal. 
   Referring to  FIG. 3 , a block diagram of a dual edge-triggered flip-flop with scan capability is shown. As can be seen, the dual edge-triggered flip-flop includes an input (D), an output (Q), a scan input (SI), a scan output (SO), and receives a function clock signal (F_CLK), a scan clock signal (S_CLK), and a scan enable control signal (SCAN_EN). At the positive edge of the function clock signal (F_CLK), the input (D) is sent to the output (Q). Also, at the negative edge of the function clock signal (F_CLK), the input (D) is sent to the output (Q). Further, when the scan enable control signal (SCAN_EN) is asserted, the scan input (SI) is sent to the scan output (SO). The passing of the scan input (SI) to the scan output (SO) is controlled by the scan clock signal (S_CLK). 
   Thus, in functional mode operation, the function clock signal (F_CLK) toggles and scan enable control signal (SCAN_EN) is low. In testing or debug mode, the scan enable control signal (SCAN_EN) is high, the function clock is steady at whatever level it was when the scan enable control signal (SCAN_EN) transitioned to high, and the scan clock (S_CLK) toggles. 
   Referring to  FIG. 4 , a circuit diagram of the dual edge-triggered flip-flop with scan capability is shown. The circuit of the flip-flop remains the same as that shown in  FIG. 2  and is driven by the function clock signal. Additionally, the dual edge-triggered flip-flop with scan capability includes a scan element ( 11 ). The scan element ( 11 ) includes a latch ( 15 ) at the scan output (SO) with transmission gates ( 17 ) and ( 19 ). The transmission gate ( 17 ) receives the scan clock (S_CLK) and is connected to one half of the flip-flop circuitry, e.g., latch ( 12 ) as shown. The transmission gate ( 19 ) receives the complement of the scan clock ({overscore (S_CLK)}) and connects the scan input (SI) to the same half of the flip-flop circuitry, i.e., latch ( 12 ). Also, a transmission gate ( 21 ) is included at the data input (D) and controlled by the complement of the scan enable control signal ({overscore (SCAN_EN)}). 
   In one or more embodiments, this is achieved by including a scan slave in each half of the dual edge-triggered flip-flop. Each scan slave works off a different clock edge. Thus, when the clock is stopped at any point, the data latches in the flop on the last positive and negative edges and can be captured in the two scan slaves. The scan slaves may be connected in separate scan chains or a single scan chain. In the case of a single scan chain, the data shifted out is processed to isolate the positive and negative edge states of the IC. 
   In an embodiment of the invention, the dual edge-triggered scan flip-flop with dual edge scan capability as shown in  FIG. 5  may be used for a combinational ATPG test. In this embodiment, test patterns may be generated for positive edge and negative edge applications separately. For example, test pattern 1 of 10110 may be prepared for the positive edge application and test pattern 2 of 11101 may be prepared for the negative edge application. The patterns may be loaded into a first scan input (SI 1 ) and a second scan input (SI 2 ) terminals, respectively, as shown in  FIG. 5 . When these patterns need to be loaded in a sequential path, test mode is selected by setting voltage of scan enable control (SCAN_EN) signal to high and voltage of function clock (F_CLK) signal to steady. The pattern  1  may be loaded into the sequential path using the positive edge of scan-clock (S_CLK) signal. Then, the pattern  2  is loaded in the sequential path using the negative edge of the S_CLK signal. 
   Referring to  FIG. 5 , a block diagram of a dual edge-triggered flip-flop with scan capability is shown. As can be seen, the dual edge-triggered flip-flop includes an input (D), an output (Q), a first scan input (SI 1 ), a second scan input (SI 2 ), a scan output (SO 1 ), a scan output (SO 2 ), and receives a function clock signal (F_CLK), a scan clock signal (S_CLK), and a scan enable control signal (SCAN_EN). At the positive edge of the function clock signal (F_CLK), the input (D) is sent to the output (Q). Also, at the negative edge of the function clock signal (F_CLK), the input (D) is sent to the output (Q). Further, when the scan enable control signal (SCAN_EN) is asserted, the first and second scan inputs (SI 1 ) and (SI 2 ) are sent to the first and second scan outputs (SO 1 ) and (SO 2 ) respectively. The passing of the first and second scan inputs (SI 1 ) and (SI 2 ) to the first and second scan outputs (SO 1 ) and (SO 2 ) is controlled by the scan clock signal (S_CLK). 
   Thus, as before, in functional mode operation, the function clock signal (F_CLK) toggles and scan enable control signal (SCAN_EN) is low. In testing or debug mode, the scan enable control signal (SCAN_EN) is high, the function clock is steady at whatever level it was when the scan enable control signal (SCAN_EN) transitioned to high, and the scan clock (S_CLK) toggles. In the embodiment shown, both the data from the positive edge and the negative edge of the function clock signal is captured. 
   Referring to  FIG. 6 , a circuit diagram of the dual edge-triggered flip-flop with scan capability is shown. The circuit of the flip-flop remains the same as that shown in  FIG. 4 , wherein the scan element ( 11 ) of  FIG. 4  corresponds to the first scan element ( 11 ′) of this figure and receives a first scan input (SI 1 ) and outputs a first scan output (SO 1 ). Additionally, the dual edge-triggered flip-flop with scan capability includes a second scan element ( 13 ). The second scan element ( 13 ) includes a latch ( 23 ) at the second scan output (SO 2 ) with a transmission gates ( 25 ) and ( 27 ). The transmission gate ( 25 ) receives the complement of the scan clock ({overscore (S_CLK)}) and is connected to the other half of the flip-flop circuitry, e.g., latch ( 14 ) as shown. The transmission gate ( 27 ) receives the scan clock (S_CLK) and connects the scan input (SI 2 ) to the same half of the flip-flop circuitry, i.e., latch ( 14 ). Also, a transmission gate ( 29 ) is included at the second scan input (SI 2 ) and controlled by the scan enable control signal (SCAN_EN). 
   In an embodiment of the invention, the dual edge-triggered flip-flop may be used for a sequential ATPG test. In this embodiment, a part of the state elements is designed as the dual edge-triggered flip-flop with dual edge scan capability as shown in  FIG. 5 . The state elements are selectively linked to generate a sequential path for a test. Furthermore, to improve the performance of the IC test, the remaining states elements may be also designed as dual edge-triggered flip-flops without scan capability as shown in  FIG. 1 . 
   To design a test in sequential ATPG when the scan state elements are linked to generate a sequential path, another path between the scan state elements may be generated for observing the state of logical blocks, which may be in parallel to the sequential path including only the state scan elements. 
   For each side of the dual edge-triggered flip-flop with dual edge scan capability, test patterns are separately generated and loaded in. For example, pattern  3  and pattern  4  may be separately generated for each side of the dual edge-triggered flip-flops with dual edge scan capability as shown in  FIG. 5 . The pattern  3  may be transferred using positive edge of scan clock (S_CLK) signal and the pattern  4  may be transferred using negative edge of the scan clock (S_CLK) signal while selectively disabling sides of the scan flip-flops and the non-scan flip-flop. In this case, all flip-flops may behave as single edge-triggered flip-flops. 
   During the test mode, test pattern  3  may be loaded into the first scan input (SI 1 ) terminal by using positive edge of scan clock (S_CLK) signal. Then, this resulting path is disabled and instead the other side of the path is enabled. Along the new resulting path, enabled path, the pattern  4  may be loaded into the second scan input (SI 2 ) terminal using the negative edge of the scan clock (S_CLK) signal. When the pattern  3  is loaded in, the new resulting path is disabled and the old resulting path is enabled. Generally, the responses are transferred along the sequential path using positive and negative edges of the scan clock (S_CLK) signal while side portions of dual edge-triggered scan flip-flops and non-scan flip-flops are selectively disabled or enabled. As a result, two test patterns may be transferred along the sequential path by repeating these operations until a mode is switched to normal mode. 
   Thus, two different test operations may be able to be completed in one sequence of clock signal for each stage. As a result, testing time in sequential ATPG may also be reduced. In the examples presented above, particular sets of resulting paths in a sequential path are used to explain how to create a path for processing test patterns and the responses with sequential ATPG. However, other combinations of disabling or enabling portions of dual edge-triggered scan flip-flops and non-scan flip-flops may be used to transfer test patterns and the responses. In one aspect, IC testing is improved by providing dual edge-triggered capability to state elements and then operating the state elements selectively. 
   Advantages of the present invention may include one or more of the following. In one or more embodiments, transferring test patterns at an increased rate and power savings may be achieved. Those skilled in the art appreciate that the present invention may also include other advantages and features. 
   In one or more embodiments, a single dual-mode scan slave with a control signal is used, which reduces area overhead. Two iterations are run to collect the states after both the positive edge and the negative edge of the clock. In accordance with one or more embodiments, two scan slaves are included, which can collect data from both the positive edge and the negative edge of the clock using any scan method. In accordance with one or more embodiments, the total debugging time can be reduced by allowing state elements to be tested using either or both of the positive edge and negative edge of clock. 
   While the invention has been described with respect to a limited number of embodiments, those skilled in the art, having benefit of this disclosure, will appreciate that other embodiments can be devised which do not depart from the scope of the invention as disclosed herein. Accordingly, the scope of the invention should be limited only by the attached claims.