US5801955A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and apparatus for removing timing hazards in a circuit design
Assignee: Mentor Graphics Corp
•
Filing: 1996-05-31
•
Granted: 1998-09-01
•
Expires: 2016-05-31
Abstract
Abstract A computer system is programmed with logic for automatically removing timing hazards from a circuit design. More specifically, the computer system is programmed with logic for automatically detecting and resolving clock gating as well as clock division timing hazards from the circuit design. In one embodiment, the computer system is further programmed with logic for logically organize timing hazards into levels, after the clock gating timing hazards have been resolved, and then resolving clock division timing hazards recursively. In one adaptation, the computer system is a component of a hardware emulation system.
Inventors
- 👤 Luc Burgun
- 👤 Olivier LePape
- 👤 Frederic Reblewski
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-29 15:18
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/32; G06F30/33; G06F30/3308; G06F30/331; G06F30/327
Claims Analysis
Total Claims: 34
Claim 1
Independent Claim
214 words
An apparatus comprising: an execution unit for executing programs; a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the apparatus to identify certain storage circuit elements in a circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by gating combinatorial logic based on at least the reference signal; the program further enables the apparatus to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused, the program determining the appropriate transformations for each of said certain storage circuit elements employing a boolean function corresponding to the gating combinatorial logic, and determining at least a first and a second co-factor value of a logical decomposition of the synchronization signal using the corresponding boolean function.
Claim 2
Independent Claim
214 words
An apparatus comprising: an execution unit for executing programs; a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the apparatus to identify certain storage circuit elements in a circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by gating combinatorial logic based on at least the reference signal; the program further enables the apparatus to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused, the program determining the appropriate transformations for each of said certain storage circuit elements employing a boolean function corresponding to the gating combinatorial logic, and determining at least a first and a second co-factor value of a logical decomposition of the synchronization signal using the corresponding boolean function.
Claim 3
Dependent Claim
62 words
The apparatus as set forth in claim 1, wherein the apparatus is enabled by the program to automatically transform said certain storage circuit elements controlled by the gated synchronization signals to be controlled by either the reference signal, a constant signal or a divided version of the reference signal multiplied by two, in conjunction with a complementary enable control signal, if appropriate.
Claim 4
Dependent Claim
61 words
The apparatus as set forth in claim 2, wherein the apparatus is enabled by the program to determine the appropriate transformation for one of said storage circuit elements controlled by a gated synchronization signal, using the boolean function corresponding to the gating combinatorial logic, and factoring into consideration whether the pre-transformation storage circuit element has an enable control signal or not.
Claim 5
Dependent Claim
45 words
The apparatus as set forth in claim 2, wherein the apparatus is also enabled by the program to insert an AND gate into the circuit design to qualify a complementary enable signal, if employed and the pre-transformation storage circuit element has an enable control signal.
Claim 6
Dependent Claim
30 words
The apparatus as set forth in claim 1, wherein the apparatus is enabled by the program to construct each of the boolean functions using a reduced order binary decision diagram.
Claim 7
Independent Claim
166 words
An apparatus comprising: an execution unit for executing programs; a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the apparatus to identify certain storage circuit elements in a circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by divisional combinatorial logic based on at least the reference signal; the program further enables the apparatus to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused.
Claim 8
Independent Claim
166 words
An apparatus comprising: an execution unit for executing programs; a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the apparatus to identify certain storage circuit elements in a circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by divisional combinatorial logic based on at least the reference signal; the program further enables the apparatus to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused.
Claim 9
Dependent Claim
49 words
The apparatus as set forth in claim 6, wherein the apparatus is enabled by the program to insert a replicate of the division combinatorial logic of the divided synchronous signal of a storage circuit element into the circuit design to generate a predictive version of the divided synchronous signal.
Claim 10
Dependent Claim
50 words
The apparatus as set forth in claim 7, wherein the apparatus is also enabled by the program to insert a first AND gate in the circuit design to generate a logical AND of an inverted version of the divided synchronous signal and the predictive version of the divided synchronous signal.
Claim 11
Dependent Claim
43 words
The apparatus as set forth in claim 8, wherein the apparatus is also enabled by the program to provide the output of the first AND gate as the complementary enable control signal if the storage circuit element does not have an enable signal.
Claim 12
Dependent Claim
67 words
The apparatus as set forth in claim 8, wherein the apparatus is also enabled by the program to insert a second AND gate in the circuit design to qualify the output of the first AND gate by an enable signal of the storage circuit element, and then providing the qualified output as the complementary enable control signal, if the storage circuit element has such an enable signal.
Claim 13
Dependent Claim
75 words
The apparatus as set forth in claim 7, wherein the apparatus is also enabled by the program to insert for each outputting flip-flop providing input to the division combinatorial logic and having an enable signal, a multiplexor to provide a selected one of a current state or a next state of the outputting flip-flop's output to the replicated division combinatorial logic as input, the multiplexor being controlled by the enable signal of the outputting flip-flop.
Claim 14
Dependent Claim
217 words
A computer system comprising: an execution unit for executing programs; a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the computer system to identify certain storage circuit elements in a circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by gating combinatorial logic based on at least the reference signal; the program further enables the computer system to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused, the program determining the appropriate transformation for each of said certain storage circuit elements employing a boolean function corresponding to the gating combinatorial logic, and determining at least a first and a second co-factor value of a logical decomposition of the synchronization signal using the corresponding boolean function.
Claim 15
Dependent Claim
217 words
A computer system comprising: an execution unit for executing programs; a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the computer system to identify certain storage circuit elements in a circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by gating combinatorial logic based on at least the reference signal; the program further enables the computer system to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused, the program determining the appropriate transformation for each of said certain storage circuit elements employing a boolean function corresponding to the gating combinatorial logic, and determining at least a first and a second co-factor value of a logical decomposition of the synchronization signal using the corresponding boolean function.
Claim 16
Dependent Claim
63 words
The computer system as set forth in claim 12, wherein the computer system is enabled by the program to automatically transform the storage circuit elements controlled by the gated synchronization signals to be controlled by either the reference signal, a constant signal or a divided version of the reference signal multiplied by two, in conjunction with a complementary enable control signal, if appropriate.
Claim 17
Independent Claim
168 words
An apparatus comprising: an execution unit for executing programs; a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the computer system to identify certain storage circuit elements in a circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by division combinatorial logic based on at least the reference signal; the program further enables the computer system to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused.
Claim 18
Independent Claim
168 words
An apparatus comprising: an execution unit for executing programs; a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the computer system to identify certain storage circuit elements in a circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by division combinatorial logic based on at least the reference signal; the program further enables the computer system to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused.
Claim 19
Dependent Claim
249 words
A hardware emulation system comprising: a host system having an execution unit for executing programs, and a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the host system to map a circuit design onto logic and interconnect elements of the hardware emulation, including identification of certain storage circuit elements in the circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by gating combinatorial logic based on at least the reference signal, the program further enables the host system to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused, the program determining the appropriate transformation for each of said certain storage circuit elements employing a boolean function corresponding to the gating combinatorial logic, and determining at least a first and a second co-factor value of a logical decomposition of the synchronization signal using the corresponding boolean function; and said logic and interconnect elements for emulating said circuit design.
Claim 20
Dependent Claim
249 words
A hardware emulation system comprising: a host system having an execution unit for executing programs, and a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the host system to map a circuit design onto logic and interconnect elements of the hardware emulation, including identification of certain storage circuit elements in the circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by gating combinatorial logic based on at least the reference signal, the program further enables the host system to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused, the program determining the appropriate transformation for each of said certain storage circuit elements employing a boolean function corresponding to the gating combinatorial logic, and determining at least a first and a second co-factor value of a logical decomposition of the synchronization signal using the corresponding boolean function; and said logic and interconnect elements for emulating said circuit design.
Claim 21
Dependent Claim
64 words
The hardware emulation system as set forth in claim 15, wherein the host system is enabled by the program to automatically transform the storage circuit elements controlled by the gated synchronization signals to be controlled by either the reference signal, a constant signal or a divided version of the reference signal multiplied by two, in conjunction with a complementary enable control signal, if appropriate.
Claim 22
Dependent Claim
201 words
A hardware emulation system comprising: a host system having an execution unit for executing programs, and a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the host system to map a circuit design onto logic and interconnect elements of the hardware emulation, including identification of certain storage circuit elements in the circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by division combinatorial logic based on at least the reference signal, the program further enables the host system to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused; and said logic and interconnect elements for emulating said circuit design.
Claim 23
Dependent Claim
201 words
A hardware emulation system comprising: a host system having an execution unit for executing programs, and a storage unit coupled to said execution unit, and having stored therein a program for execution by said execution unit during operation, wherein when executing, the program enables the host system to map a circuit design onto logic and interconnect elements of the hardware emulation, including identification of certain storage circuit elements in the circuit design, said certain storage circuit elements being controlled by synchronization signals that can cause timing hazards by virtue of these synchronization signals' potential skews with respect to a reference signal of the circuit design not being ensured to be within a design tolerance limit, the synchronization signals being generated by division combinatorial logic based on at least the reference signal, the program further enables the host system to automatically transform said certain storage circuit elements to be controlled by synchronization signals that do not have potential skews with respect to the reference signal not being ensured to be within the design tolerance limit, without altering functionality of the circuit design, thereby removing the timing hazards that can be caused; and said logic and interconnect elements for emulating said circuit design.
Claim 24
Dependent Claim
141 words
An automated method for removing timing hazards from a circuit design; said method comprising the steps of: a) identifying storage circuit elements controlled by synchronization signals that are generated by gating combinatorial logic based on at least a reference signal of the circuit design; b) determining boolean functions corresponding to the gating combnatorial logic, and determining a first and a second cofactor value of a logical decomposition of each of the gated synchronization signal using the corresponding boolean function; and c) automatically transforming each of said storage circuit elements controlled by the gated synchronization signals to be controlled by either the reference signal, a constant signal or a divided version of the reference signal multiplied by two, in conjunction with a complementary enable control signal, if appropriate, based at least in part on the first and the second co-factor values determined.
Claim 25
Dependent Claim
141 words
An automated method for removing timing hazards from a circuit design; said method comprising the steps of: a) identifying storage circuit elements controlled by synchronization signals that are generated by gating combinatorial logic based on at least a reference signal of the circuit design; b) determining boolean functions corresponding to the gating combnatorial logic, and determining a first and a second cofactor value of a logical decomposition of each of the gated synchronization signal using the corresponding boolean function; and c) automatically transforming each of said storage circuit elements controlled by the gated synchronization signals to be controlled by either the reference signal, a constant signal or a divided version of the reference signal multiplied by two, in conjunction with a complementary enable control signal, if appropriate, based at least in part on the first and the second co-factor values determined.
Claim 26
Dependent Claim
29 words
The method as set forth in claim 18, wherein said step (c) includes factoring into consideration whether a pre-transformation storage circuit element has an enable control signal or not.
Claim 27
Dependent Claim
25 words
The method as set forth in claim 18, wherein step (b) includes constructing each of the boolean functions using a reduced order binary decision diagram.
Claim 28
Dependent Claim
39 words
The method as set forth in claim 18, wherein step (c) includes inserting an AND gate into the circuit design to qualify the complementary enable signal, if employed and a pre-transformation storage circuit element has an enable control signal.
Claim 29
Dependent Claim
120 words
An automated method for removing timing hazards from a circuit design, said method comprising the steps of: (a) identifying a storage circuit element controlled by a synchronization signal that is generated by division combinatorial logic based on at least a reference signal of the circuit design; (b) inserting a replicate of the division combinatorial logic of the divided synchronous signal into the circuit design to generate a predictive version of the divided synchronous signal; and (c) automatically transforming said storage circuit element controlled by the divided synchronization signals to be controlled by either the reference signal, a constant signal or a divided version of the reference signal multiplied by two, in conjunction with a complementary enable control signal, if appropriate.
Claim 30
Dependent Claim
120 words
An automated method for removing timing hazards from a circuit design, said method comprising the steps of: (a) identifying a storage circuit element controlled by a synchronization signal that is generated by division combinatorial logic based on at least a reference signal of the circuit design; (b) inserting a replicate of the division combinatorial logic of the divided synchronous signal into the circuit design to generate a predictive version of the divided synchronous signal; and (c) automatically transforming said storage circuit element controlled by the divided synchronization signals to be controlled by either the reference signal, a constant signal or a divided version of the reference signal multiplied by two, in conjunction with a complementary enable control signal, if appropriate.
Claim 31
Dependent Claim
45 words
The method as set forth in claim 22, wherein step (c) further includes inserting a first AND gate in the circuit design to generate a logical AND of an inverted version of the divided synchronous signal and the predictive version of the divided synchronous signal.
Claim 32
Dependent Claim
39 words
The method as set forth in claim 23, wherein the step (c) further includes providing the output of the first AND gate as the complementary enable control signal if the storage circuit element does not have an enable signal.
Claim 33
Dependent Claim
62 words
The method as set forth in claim 23, wherein step (c) further includes inserting a second AND gate in the circuit design to qualify the output of the first AND gate by an enable signal of the storage circuit element, and then providing the qualified output as the complementary enable control signal, if the storage circuit element has such an enable signal.
Claim 34
Dependent Claim
70 words
The method as set forth in claim 22, wherein step (c) further includes inserting for each outputting flip-flop providing input to the division combinatorial logic and having an enable signal, a multiplexor to provide a selected one of a current state or a next state of the outputting flip-flop's output to the replicated division combinatorial logic as input, the multiplexor being controlled by the enable signal of the outputting flip-flop.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2001-08-31 | 2002-03-02 | 2002-09-01 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2005-08-31 | 2006-03-02 | 2006-09-01 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2009-08-31 | 2010-03-02 | 2010-09-01 | $7700.00 | Window Closed / Lapsed |