← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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)

US5377334A Cited
US5452239A Cited
US5493505A Cited
US5583787A Cited
US5517506A Cited

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag