A structure, system, and method block clock inputs to clock domains (using a computer). While the clock domain inputs are blocked, the structure, system, and method perform a first timing test only of signals that are transmitted within the clock domains (using the computer) by only observing latches that receive signals from sources within the clock domains. The structure, system, and method also unblock the clock inputs to the clock domains (using the computer). While the clock domain inputs are unblocked, the structure, system, and method perform a second timing test only of signals that are transmitted between the clock domains by only observing latches that receive signals from other clock domains.
|
1. A computer-implemented method of testing clock domains within an integrated circuit structure, said method comprising:
blocking clock inputs to said clock domains using a computer;
while said clock domain inputs are blocked, performing a first timing test only of signals that are transmitted within said clock domains using said computer;
unblocking said clock inputs to said clock domains using said computer; and
while said clock domain inputs are unblocked, performing a second timing test only of signals that are transmitted between said clock domains.
7. A computer-implemented method of testing clock domains within an integrated circuit structure, said method comprising:
blocking clock inputs to said clock domains using test equipment;
while said clock domain inputs are blocked, performing a first timing test only of signals that are transmitted within said clock domains using a computer by only observing latches that receive signals from sources within said clock domains;
unblocking said clock inputs to said clock domains using said computer; and
while said clock domain inputs are unblocked, performing a second timing test only of signals that are transmitted between said clock domains by only observing latches that receive signals from other clock domains.
19. An integrated circuit structure comprising:
a plurality of clock domains, each clock domain comprising a different section of said integrated circuit, and each clock domain operating according to a different clock signal;
controllers positioned within each of said clock domains, said controllers blocking and unblocking clock inputs to said clock domains;
a processor operatively connected to said clock domains,
while said clock domain inputs are blocked by said controllers said processor performs a first timing test only of signals that are transmitted within said clock domains by only observing latches that receive signals from sources within said clock domains, and
while said clock domain inputs are unblocked by said controllers, said processor performs a second timing test only of signals that are transmitted between said clock domains by only observing latches that receive signals from other clock domains.
13. A system for testing clock domains within integrated circuit structures, said system comprising:
an integrated circuit structure;
a plurality of clock domains within said integrated circuit structure, each clock domain comprising a different section of said integrated circuit, and each clock domain operating according to a different clock signal;
controllers positioned within each of said clock domains, said controllers blocking and unblocking clock inputs to said clock domains;
a tester operatively connected to said controllers,
while said clock domain inputs are blocked by said controllers said tester performs a first timing test only of signals that are transmitted within said clock domains by only observing latches that receive signals from sources within said clock domains, and
while said clock domain inputs are unblocked by said controllers, said tester performs a second timing test only of signals that are transmitted between said clock domains by only observing latches that receive signals from other clock domains.
2. The method according to
3. The method according to
4. The method according to
5. The method according to
6. The method according to
8. The method according to
9. The method according to
10. The method according to
11. The method according to
12. The method according to
14. The system according to
15. The system according to
16. The system according to
17. The system according to
18. The system according to
20. The structure according to
21. The structure according to
22. The structure according to
23. The structure according to
24. The structure according to
|
1. Field of the Invention
The embodiments of the invention generally relate to methods and systems for performing timing analysis and, more specifically, to methods, systems, and integrated circuit structures that separately test the timing characteristics within clock domains and timing characteristics between clock domains by selectively blocking or unblocking the inputs to clock domains.
2. Description of the Related Art
When performing timing analysis on integrated circuit structures (such as integrated circuit chips) traditional edge based multiplexer scan architectures can be exposed to race conditions at the interfaces between clock domains. A clock domain is a grouping of circuit structures (e.g., flip flops) that are driven by a common clock signal. A race condition or race hazard is a flaw in a system or process whereby the output and/or result of the process is unexpectedly and critically dependent on the sequence or timing of other events. The term originates with the idea of two signals racing each other to influence the output first. Race conditions can produce unpredictable results as the output may not be based upon logic, but instead may simply be based on which signal reaches a destination first.
Known solutions to race hazards include additional timing constraints where the race conditions are corrected for timing. However, such solutions are difficult to implement and add to the time needed to design the chip. Further, with conventional testing, the chip is tested one domain at a time, which adds to test patterns and test time and thus adversely impacts manufacturing cost.
Some testing systems, such as an Automatic Test Pattern Generation Tool, do not perform timing testing at domain crossings, which results in loss of test coverage at such domain crossings. Other systems such as Logic Built-In Self Test (BIST) methodologies, for which patterns are randomly generated on-chip, cannot accommodate race hazards because it is not possible to modify the random patterns in a way that would prevent transitions at domain crossings.
In view of the foregoing, disclosed herein are computer-implemented methods of testing clock domains within an integrated circuit structure. One exemplary method blocks clock inputs to the clock domains (using a computer). While the clock domain inputs are blocked, the method performs a first timing test only of signals that are transmitted within the clock domains (using the computer) by only observing latches that receive signals from sources within the clock domains. The method also unblocks the clock inputs to the clock domains (using the computer). While the clock domain inputs are unblocked, the method performs a second timing test only of signals that are transmitted between the clock domains by only observing latches that receive signals from other clock domains.
The first timing test comprises simultaneously testing the signals that are transmitted within the clock domains. To the contrary, the second timing test comprises sequentially testing the signals that are transmitted between the clock domains. The method uses a first scan enable signal for the first timing test and uses a second scan enable signal for the second timing test. The first scan enable signal is different than the second scan enable signal.
The first timing test and the second timing test are used with alternating current (AC) testing, direct current (DC) testing and at-speed structure testing (ASST). The first timing test and the second timing test can use multiple test clock signals delayed from one another when performing AC testing. The first timing test and the second timing test use a feedback loop as a toggle to test downstream logic within the clock domains and to block clock signals that are transmitted between the clock domains when performing at-speed testing.
Systems are also described herein. One exemplary system for testing clock domains within integrated circuit structures comprises an integrated circuit structure and a plurality of clock domains within the integrated circuit structure. Each clock domain comprises a different section of the integrated circuit, and each clock domain operates according to its own clock signal that is different from the other clock signals. Controllers are positioned within each of the clock domains. The controllers block and unblock clock inputs to the clock domains. Further, a tester is operatively connected to the controllers.
While the clock domain inputs are blocked by the controllers, the tester performs a first timing test of signals that are transmitted within the clock domains by only allowing data capture in latches that receive signals from sources within the clock domains. To the contrary, while the clock domain inputs are unblocked by the controllers, the tester performs a second timing test only of signals that are transmitted between the clock domains by also allowing data capture in latches that receive signals from other clock domains.
Some system embodiments can include a feedback loop operatively connected to the controllers. The first timing test and the second timing test use the feedback loop as a toggle to test downstream logic within the clock domains and to block clock signals that are transmitted between the clock domains when performing at-speed testing.
In addition, integrated circuit structures are disclosed herein. One exemplary integrated circuit structure comprises a plurality of clock domains. Each clock domain utilizes a different section (physical or logical) of the integrated circuit, and each clock domain operates according to its own different clock signal. Controllers are positioned within each of the clock domains (again, the controllers block and unblock clock inputs to the clock domains) and a processor or test equipment is operatively connected to the clock domains.
While the clock domain inputs are blocked by the controllers, the processor or test equipment performs a first timing test only of signals that are transmitted within the clock domains by only allowing data capture in latches that receive signals from sources within the clock domains. While the clock domain inputs are unblocked by the controllers, the processor performs a second timing test only of signals that are transmitted between the clock domains by also allowing data capture in latches that receive signals from other clock domains.
The integrated circuit structure can include a feedback loop operatively connected to the controllers. The first timing test and the second timing test can use the feedback loop as a toggle to test downstream logic within the clock domains and to block clock signals that are transmitted between the clock domains when performing at-speed testing.
The embodiments of the invention will be better understood from the following detailed description with reference to the drawings, which are not necessarily drawing to scale and in which:
The embodiments of the invention and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description.
As mentioned above, conventional systems have difficulty handling race conditions that can exist at clock domain boundaries. In view of the foregoing, the present embodiments separately test the timing characteristics within clock domains and timing characteristics between clock domains by selectively blocking or unblocking the inputs to clock domains.
The embodiments herein utilize controllers at the source of each clock domain. Such controllers are capable of selecting whether the test clock signal will be propagated to the domain or not. The embodiments herein utilizes two types of scan enable signal, a first scan enables signal for latches internal to clock domains, and a second scan enable signal for latches that receive data from other clock domains.
In the first mode of testing, all domains receive clocks signals, but latches that receive data from other domains are held in scan state (will not capture clock signals from other domains, but only capture clock signals from the scan chain instead) by using their specific scan enable signal. The majority of patterns use this mode, and the only testing that does not happen is at the domain crossings.
In the second mode of testing, each domain is tested individually (fault coverage clean-up from first mode). The clock is uniquely pulsed for each domain, one domain at a time. In the second mode of testing, the scan enable signal is sent to all latches such that they receive data from the functional path rather than from the scan path.
Referring to
With respect to clock domain considerations in DC testing of
In view of this, embodiments herein utilize the structure and method illustrated in
Controllers (e.g., gates 302, 304, 306 and multiplexers 312, 314, 316) are positioned within each of the clock domains (the controllers block and unblock clock inputs to the clock domains) and are operatively connected to the various clock domains 322, 324, 326. By being “operatively” connected, as used herein, two devices are directly or indirectly connected (by direct wiring, indirect wiring, wireless connections, through intermediate devices, intermediate trees, etc.).
A processor 350 is operatively connected to the clock domains. The processor 350 supplies the scan enable signal for the input/output latches (se_input) and the scan enable signal for the internal latches (se_internal) to the clock domains 322, 324, 326. While the clock domain inputs are blocked by the controllers 302, 304, 306 and 312, 314, 316, the processor 350 performs a first timing test only of signals that are transmitted within the clock domains by only allowing data capture in latches that receive signals from sources within the clock domains (internal/output latches). While the clock domain inputs are unblocked by the controllers 302, 304, 306 and 312, 314, 316, the processor 350 performs a second timing test only of signals that are transmitted between the clock domains by also allowing data capture in latches that receive signals from other clock domains (input latches).
As shown in
While the foregoing is utilized with DC testing, alternating current (AC) testing is also important with respect to domain crossings, asynchronous paths, clock gates, ASST-untested domains, etc. AC testing within domains is standard with generalized scan design (GSD). Thus, the embodiments herein perform parallel AC testing similar to the DC testing discussed above. The first timing test and the second timing test can use multiple test clock signals (test_clk1, test_clk2) delayed from one another when performing AC testing (see
Thus, the structure shown in
This process is also graphically shown in
In
The structure shown in
In the example shown in
Another AND gate 510 receives input from the second test clock signal (testclk2) and from a gptrmode signal. Various latches 508 respond to a gptrsi input signal and the output from the AND gate 510 to provide a gptrso output signal. In addition, logic element 512 receives input from a scan enable (se) signal and a blk_i signal to produce a seinput signal. As shown in charge 514, these elements allow various operations to take place. For example, a functional operation which forces the system clock can be enabled with the appropriate signals listed in charge 514. Similarly, a load GPTR operation that both allows shift load of programmable register 508, and also blocks the clock can be performed. An operation that tests another domain (blocking the clock) can be performed as well as operations that test the current domain (using the system clock signal (sysclock), first test clock signal (testclk1), or second test clock signal (testclk2)).
As mentioned above, the embodiments herein are useful in AC mode, DC mode and at-speed mode. With embodiments herein, the first timing test and the second timing test use a feedback loop as a toggle to test downstream logic within the clock domains and to block clock signals that are transmitted between the clock domains when performing at-speed testing.
For at-speed testing, embodiments herein use a separate scan_input signal verses a scan_internal signal at domain input flops and also add a fencing mechanism (a feedback mechanism) at the domain input. The fencing mechanism is utilized because listening to a scan chain during at-speed test operation is a problem for domain crossings in the scan chain (e.g., for example, where an asynchronous scan chain path runs an at-speed test with multiple clocks running in parallel). It is not desirable to run the scan chains at speed, but this would be necessary for the domain data input latches. The fencing mechanism accommodates the situation by providing a toggle to test downstream logic within the clock domains and to block clock signals that are transmitted between the clock domains when performing at-speed testing.
As shown in
The first timing test 902 comprises simultaneously testing the signals that are transmitted within the clock domains. To the contrary, the second timing test 906 comprises sequentially testing the signals that are transmitted between the clock domains. The method uses a first scan enable signal for the first timing test 902 and uses a second scan enable signal for the second timing test 906. The first scan enable signal is different that the second scan enable signal.
The first timing test 902 and the second timing test 906 are used with alternating current (AC) testing, direct current (DC) testing and at-speed structure testing (ASST). The first timing test 902 and the second timing 906 test can use multiple test clock signals delayed from one another when performing AC testing. The first timing test 902 and the second timing test 906 can use a feedback loop as a toggle to test downstream logic within the clock domains and to block clock signals that are transmitted between the clock domains when performing at-speed testing.
The resulting integrated circuit chip can be distributed by the fabricator in raw wafer form (that is, as a single wafer that has multiple unpackaged chips), as a bare die, or in a packaged form. In the latter case the chip is mounted in a single chip package (such as a plastic carrier, with leads that are affixed to a motherboard or other higher level carrier) or in a multichip package (such as a ceramic carrier that has either or both surface interconnections or buried interconnections). In any case the chip is then integrated with other chips, discrete circuit elements, and/or other signal processing devices as part of either (a) an intermediate product, such as a motherboard, or (b) an end product. The end product can be any product that includes integrated circuit chips, ranging from toys and other low-end applications to advanced computer products having a display, a keyboard or other input device, and a central processor.
The embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment including both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the embodiments of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can comprise, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output (I/O) devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
A representative hardware environment for practicing the embodiments of the invention is depicted in
It should be understood that the corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. Additionally, it should be understood that the above-description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to 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 and spirit of the invention. The embodiments were chosen and described in order to best explain the principles of the invention and the practical application, 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. Well-known components and processing techniques are omitted in the above-description so as to not unnecessarily obscure the embodiments of the invention.
Finally, it should also be understood that the terminology used in the above-description is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. For example, as used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Furthermore, as used herein, the terms “comprises”, “comprising,” and/or “incorporating” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5001731, | Oct 02 1989 | Freescale Semiconductor, Inc | Method and apparatus for eliminating clockskew race condition errors |
5008618, | Jan 23 1989 | NXP B V | Scan test apparatus for asynchronous circuitry |
6020763, | Apr 23 1996 | International Business Machines Corporation | High speed decoder without race condition |
6131173, | Dec 13 1996 | NXP B V | Clock domain test isolation |
6442722, | Oct 29 1999 | Mentor Graphics Corporation | Method and apparatus for testing circuits with multiple clocks |
6861867, | Mar 07 2002 | CALLAHAN CELLULAR L L C | Method and apparatus for built-in self-test of logic circuits with multiple clock domains |
7116152, | Jan 28 2004 | Samsung Electronics, Co., Ltd. | Digital circuit tolerant of race condition problem |
7478300, | Apr 28 2006 | International Business Machines Corporation | Method for testing functional boundary logic at asynchronous clock boundaries of an integrated circuit device |
20080282122, | |||
20100011264, | |||
20100180242, | |||
20100188096, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 03 2009 | LACKEY, DAVID E | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023217 | /0410 | |
Sep 11 2009 | International Business Machines Corporation | (assignment on the face of the patent) | / | |||
Dec 31 2012 | International Business Machines Corporation | Mentor Graphics Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029733 | /0156 |
Date | Maintenance Fee Events |
Aug 16 2013 | ASPN: Payor Number Assigned. |
Aug 16 2013 | RMPN: Payer Number De-assigned. |
Dec 29 2014 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 01 2019 | REM: Maintenance Fee Reminder Mailed. |
Sep 16 2019 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Aug 09 2014 | 4 years fee payment window open |
Feb 09 2015 | 6 months grace period start (w surcharge) |
Aug 09 2015 | patent expiry (for year 4) |
Aug 09 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 09 2018 | 8 years fee payment window open |
Feb 09 2019 | 6 months grace period start (w surcharge) |
Aug 09 2019 | patent expiry (for year 8) |
Aug 09 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 09 2022 | 12 years fee payment window open |
Feb 09 2023 | 6 months grace period start (w surcharge) |
Aug 09 2023 | patent expiry (for year 12) |
Aug 09 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |