Incremental slack margin propagation

US9280625B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9280625-B2
Application numberUS-201514860450-A
CountryUS
Kind codeB2
Filing dateSep 21, 2015
Priority dateDec 2, 2011
Publication dateMar 8, 2016
Grant dateMar 8, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques and systems are described for improving the efficiency of timing calculations in numerical sequential cell sizing and for improving the efficiency of incremental slack margin propagation. Some embodiments cache timing-related information associated with a source driver that drives an input of a sequential cell that is being sized, and/or timing-related information for each output of the sequential cell that is being sized. The cached timing-related information for the source driver can be reused when sizing a different sequential cell. The cached timing-related information for the outputs of the sequential cell can be reused when evaluating alternatives for replacing the sequential cell. Some embodiments incrementally propagate slack margins in a lazy fashion (i.e., only when it is necessary to do so for correctness or accuracy reasons) while sizing gates in the circuit design in a reverse-levelized processing order.

First claim

Opening claim text (preview).

What is claimed is: 1. In an electronic design automation (EDA) tool in a computer, a method for incrementally propagating slack margins in a circuit design while optimizing the circuit design by processing gates in the circuit design in a reverse-levelized order, the method comprising: after the EDA tool in the computer replaces a first gate with an alternative gate, the EDA tool in the computer marking outputs of source drivers that drive inputs of the alternative gate as out-of-date; in response to the EDA tool in the computer determining that an output of a source driver is marked out-of-date, the EDA tool in the computer performing at least the following operations: (1) computing a new arrival time at the output of the source driver, (2) propagating the new arrival time to inputs of gates that are driven by the output of the source driver, and (3) removing an out-of-date mark from the output of the source driver; in response to the EDA tool in the computer determining that an input of a second gate is marked out-of-date or that a slack margin was not computed for an output of the second gate, the EDA tool in the computer performing at least the following operations: (1) propagating arrival times from the input to the output of the second gate, and (2) marking the output of the second gate as having an out-of-date slack margin; and in response to the EDA tool in the computer determining that an output of a third gate is marked as having an out-of-date slack margin, the EDA tool in the computer performing at least the following operations: (1) computing new slack margins for the output of the third gate based on the old arrival time, new arrival time, and old slack margin at the output of the third gate, and (2) computing new slack margins for each input of the third gate based on a new margin at the output of the third gate and an arrival time from each input of the third gate to the output of the third gate. 2. The method of claim 1 , wherein processing gates in the circuit design in a reverse-levelized order comprises: assigning a level to each gate in the circuit design, wherein the assigned level is greater than the levels assigned to gates in the fan-out cone of the gate; and processing gates in increasing order of their assigned levels. 3. The method of claim 1 , wherein a slack margin at a pin in the circuit design represents an extent to which a change in a slack value at the pin affects a slack value at a timing end-point. 4. A non-transitory computer-readable storage medium storing instructions of an electronic design automation (EDA) tool that, when executed by a computer, cause the computer to perform a method for incrementally propagating slack margins in a circuit design while optimizing the circuit design by processing gates in the circuit design in a reverse-levelized order, the method comprising: after replacing a first gate with an alternative gate, marking outputs of source drivers that drive inputs of the alternative gate as out-of-date; in response to determining that an output of a source driver is marked out-of-date, performing at least the following operations: (1) computing a new arrival time at the output of the source driver, (2) propagating the new arrival time to inputs of gates that are driven by the output of the source driver, and (3) removing an out-of-date mark from the output of the source driver; in response to determining that an input of a second gate is marked out-of-date or that a slack margin was not computed for an output of the second gate, performing at least the following operations: (1) propagating arrival times from the input to the output of the second gate, and (2) marking the output of the second gate as having an out-of-date slack margin; and in response to determining that an output of a third gate is marked as having an out-of-date slack margin, performing at least the following operations: (1) computing new slack margins for the output of the third gate based on the old arrival time, new arrival time, and old slack margin at the output of the third gate, and (2) computing new slack margins for each input of the third gate based on a new margin at the output of the third gate and an arrival time from each input of the third gate to the output of the third gate. 5. The non-transitory computer-readable storage medium of claim 4 , wherein processing gates in the circuit design in a reverse-levelized order comprises: assigning a level to each gate in the circuit design, wherein the assigned level is greater than the levels assigned to gates in the fan-out cone of the gate; and processing gates in increasing order of their assigned levels. 6. The non-transitory computer-readable storage medium of claim 4 , wherein a slack margin at a pin in the circuit design represents an extent to which a change in a slack value at the pin affects a slack value at a timing end-point. 7. An electronic design automation (EDA) apparatus, comprising: a processor; and a non-transitory computer-readable storage medium storing instructions of an EDA tool that, when executed by the processor, cause the EDA apparatus to perform a method for incrementally propagating slack margins in a circuit design while optimizing the circuit design by processing gates in the circuit design in a reverse-levelized order, the method comprising: after replacing a first gate with an alternative gate, marking outputs of source drivers that drive inputs of the alternative gate as out-of-date; in response to determining that an output of a source driver is marked out-of-date, performing at least the following operations: (1) computing a new arrival time at the output of the source driver, (2) propagating the new arrival time to inputs of gates that are driven by the output of the source driver, and (3) removing an out-of-date mark from the output of the source driver; in response to determining that an input of a second gate is marked out-of-date or that a slack margin was not computed for an output of the second gate, performing at least the following operations: (1) propagating arrival times from the input to the output of the second gate, and (2) marking the output of the second gate as having an out-of-date slack margin; and in response to determining that an output of a third gate is marked as having an out-of-date slack margin, performing at least the following operations: (1) computing new slack margins for the output of the third gate based on the old arrival time, new arrival time, and old slack margin at the output of the third gate, and (2) computing new slack margins for each input of the third gate based on a new margin at the output of the third gate and an arrival time from each input of the third gate to the output of the third gate. 8. The EDA apparatus of claim 7 , wherein processing gates in the circuit design in a reverse-levelized order comprises: assigning a level to each gate in the circuit design, wherein the assigned level is greater than the levels assigned to gates in the fan-out cone of the gate; and processing gates in increasing order of their assigned levels. 9. The EDA apparatus of claim 7 , wherein a slack margin at a pin in the circuit design represents an extent to which a change in a slack value at the pin affects a slack value at a timing end-point.

Assignees

Inventors

Classifications

  • Timing analysis or timing optimisation · CPC title

  • Computer-aided design [CAD] · CPC title

  • Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM] (optical proximity correction [OPC] design processes G03F1/36) · CPC title

  • Physics · mapped topic

  • G06F30/327Primary

    Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9280625B2 cover?
Techniques and systems are described for improving the efficiency of timing calculations in numerical sequential cell sizing and for improving the efficiency of incremental slack margin propagation. Some embodiments cache timing-related information associated with a source driver that drives an input of a sequential cell that is being sized, and/or timing-related information for each output of …
Who is the assignee on this patent?
Synopsys Inc
What technology area does this patent fall under?
Primary CPC classification G06F17/5031. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 08 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).