This invention relates to scan testing and more particularly to testing integrated circuits with multiple clock domains.
Scan testing provides testing of stuck-at and dynamic faults in integrated circuits. Storage elements such as flip-flops are configured in one or more scan strings and a test pattern is serially shifted into the scan strings during a shift phase of the testing. The storage elements are then configured back into functional mode and the integrated circuit is operated at speed by providing one or more functional clocks during a capture phase of the testing. The storage elements are then configured back into a scan mode (corresponding to the shift portion of scan test) and the results of the at speed testing are shifted to an evaluation device, e.g., automatic test equipment (ATE), to determine if the test was successful.
With scan enable (SCANEN) asserted, the output of flip-flop 101 supplies the input of flip-flop 105 through multiplexer 109. Note that in some embodiments, flip-flops in one clock domain are in a separate scan chain than from flip-flops in another clock domain. In the embodiment of
Transition coverage (functional clocks run at speed) checks for faults by scanning in a stimulus pattern to cause a transition in the logic value being stored in the storage element from 1 to 0 or 0 to 1 as a result of supplying the capture clock(s). The testing detects if there is too long a delay in the critical path resulting in the expected value not reaching its destination. Increasing transition scan coverage would be desirable to more easily detect errors related to critical path timing failures.
In order to close transition coverage gaps for devices under test having multiple clock domains, the various clock domain capture clocks are synchronized to increase coverage.
In an embodiment, a method for testing a device with multiple clock domains, includes generating a first clock signal having a first clock signal first active edge occurring at a first time relative to deassertion of a scan enable signal and having a first clock signal second rising edge occurring at a second time after the first time. The method further includes generating a second clock signal having a second clock signal first active edge occurring one second clock signal period before the second time and generating a third clock signal having a third clock signal first active edge occurring at the second time.
In another embodiment, an integrated circuit includes a plurality of on-chip clock control circuits coupled to receive an input clock signal and to generate a plurality of clock signals having different frequencies during a capture portion of a scan test. An active edge of each faster clock signal of the plurality of clock signals, occurs one clock cycle of the faster clock signal before an active edge of each slower clock signal.
In an embodiment, a method for testing a device with multiple clock domains, includes generating a plurality of clock signals during a capture portion of a scan test, each of the plurality of clock signals associated with a respective one of a plurality of clock domains. The method further includes generating each of the plurality of clock signals such that an active edge of each faster clock signal of the plurality of clock signals occurs one clock period of the faster clock signal before an active edge of each slower clock signal of the plurality of clock signals.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The use of the same reference symbols in different drawings indicates similar or identical items.
The capture clock controllers used in conventional designs can completely miss cross clock domain crossings because the capture clock bursts are not synchronized. Synchronizing the capture clocks in the clock controllers provides significant coverage improvement in designs where data is transferred across multiple clock domains. The synchronization of capture clock bursts allows more digital logic to be covered during transition scan allowing, e.g., the strict test requirements for Automotive Electronics Council (AEC) qualifications to be more easily met.
However, the clock timing shown in
In order to address the coverage problems shown in
In the embodiment of
In order to synchronize the clock signals, in an embodiment information has to be supplied to the clock control logic supplying the capture clocks. Referring to
Each OCC also includes a control logic 509 that aligns the clock signals to ensure achieving appropriate synchronization for cross clock domain signals. In an example, flip-flops in the control logic 509 are initialized during the shift portion of the scan test. That allows increased coverage since the control logic functions are tested. In other embodiments, the control logic may be loaded and/or controlled using another interface and not be included in the scan test. The control logic determines when the first edge of the clock should be provided and provides information to an adjacent OCC that the adjacent OCC uses to determine when to provide the adjacent faster capture clock signal. The control logic 509 receives information 512 from an OCC for a slower clock signal for use in generating an appropriately synchronized capture clock signal.
In the embodiment of
The control logic also supplies an indication to the OCC of a faster clock when to provide the faster clock. For example, with reference to
Similarly, OCC 403 supplies an indication to OCC 401 as to when OCC 403 is supplying its first edge. The information provided includes edge relationship information between all clocks sufficient to setup and generate the right configuration for the control logic and the divider logic in the OCC. Because multiple clock cycles of the clocks are provided, e.g., four, data transitions caused by the first rising edge 325 of FSTCLK can be sampled by SLOWCLK and SLOWCLK2 and transitions caused by the second rising edge of SLOWCLK and the first rising edge of SLOWCLK 2 can be captured by the third rising edge of FASTCLK. Further, as shown in
In the examples discussed above, the various clock signals are integer multiples, e.g., FSTCLK has a frequency 24 times faster than SLOWCLK2 and 8 times faster than SLOWCLK. In other embodiments, the clock signals may not be integer multiples but have a common multiple. In such embodiments, with three clocks, the first edge of the slowest clock would occur at the common multiple, and the remaining clocks would be synchronized to ensure each faster clock occurs one clock cycle of the faster clock before each slower clock and the pulse train is long enough to capture pulses going from slow to fast to provide the correct chain of clocks to improve transition scan coverage.
Note that the OCCs may also provide information to divider 407. For example, the divider 407 may adjust the phase of the OCC INPUT CLK signal or cause the supplied OCC INPUT CLK signal to start on a negative or positive edge. In an embodiment, the edge relationship information between all clocks is provided at setup and a phase adjustment is performed in the divider 407, if needed, to provide the appropriate positive or negative edge.
In other embodiments, to allow simpler circuits, the fast clocks are simply repeated near the slower clock edge for every clock domain. That achieves a simpler design but at the cost of increasing the complexity for the ATPG tool and also increases power during scan. For some unrelated divided clocks (for example /32 and /37), synchronization requires manual intervention. If the pulse train for the clocks can be controlled, multi cycle paths that land within a cycle (maximum−minimum delay<1 cycle) can also be computed for coverage. With reference again to
While circuits and physical structures have been generally presumed in describing embodiments of the invention, it is well recognized that in modern semiconductor design and fabrication, physical structures and circuits may be embodied in computer-readable descriptive form suitable for use in subsequent design, simulation, test or fabrication stages. Structures and functionality presented as discrete components in the exemplary configurations may be implemented as a combined structure or component. Various embodiments of the invention are contemplated to include circuits, systems of circuits, related methods, and tangible computer-readable medium having encodings thereon (e.g., VHSIC Hardware Description Language (VHDL), Verilog, GDSII data, Electronic Design Interchange Format (EDIF), and/or Gerber file) of such circuits, systems, and methods, all as described herein, and as defined in the appended claims. In addition, the computer-readable media may store instructions as well as data that can be used to implement the invention. The instructions/data may be related to hardware, software, firmware or combinations thereof.
Thus, various aspects have been described relating to improving test coverage for signals crossing clock domains. The description of the invention set forth herein is illustrative, and is not intended to limit the scope of the invention as set forth in the following claims. Other variations and modifications of the embodiments disclosed herein, may be made based on the description set forth herein, without departing from the scope of the invention as set forth in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
6115827 | Nadeau-Dostie | Sep 2000 | A |
6131173 | Meirlevede | Oct 2000 | A |
6269463 | Duggirala | Jul 2001 | B1 |
6510534 | Nadeau-Dostie | Jan 2003 | B1 |
6904553 | Brown | Jun 2005 | B1 |
7194669 | Nadeau-Dostie | Mar 2007 | B2 |
7401279 | Sumita | Jul 2008 | B2 |
7613971 | Asaka | Nov 2009 | B2 |
7620862 | Lai | Nov 2009 | B1 |
7752586 | Yokota | Jul 2010 | B2 |
7900108 | Pugliesi-Conti | Mar 2011 | B2 |
8516317 | Nadeau-Dostie | Aug 2013 | B2 |
9222981 | Puvvada | Dec 2015 | B2 |
9709629 | Sofer | Jul 2017 | B2 |
9798352 | Majumdar | Oct 2017 | B1 |
20030115524 | Johnston | Jun 2003 | A1 |
20060026473 | Patrick Tan | Feb 2006 | A1 |
20060069973 | Athavale | Mar 2006 | A1 |
20060107145 | Athavale | May 2006 | A1 |
20060282735 | Weinraub | Dec 2006 | A1 |
20070124635 | Yokota | May 2007 | A1 |
20070198882 | Namura | Aug 2007 | A1 |
20080282110 | Guettaf | Nov 2008 | A1 |
20090113265 | Cannon | Apr 2009 | A1 |
20090187801 | Pandey | Jul 2009 | A1 |
20110099442 | Hales | Apr 2011 | A1 |
20120249204 | Nishioka | Oct 2012 | A1 |
20140075257 | Wang | Mar 2014 | A1 |
20160178695 | Zhang | Jun 2016 | A1 |
20170115352 | Jayaraman | Apr 2017 | A1 |
Entry |
---|
Press, R., “Design clock controllers for hierarchical test,” EDN Network, Jul. 18, 2014, 2 pages. |
Number | Date | Country | |
---|---|---|---|
20190101590 A1 | Apr 2019 | US |