What are design / library objects? How to manipulate these objects?

Starting from this post, we will talk about commonly asked interview questions related to timing constraints or SDC. The most basic question is, what are design / library objects and how to manipulate these objects.

What Are Design / Library Objects?

These objects include:

    1. Design: defined by top level module
    2. Port: input, output and inout ports in the top level design
    3. Clock
    4. Cell: submodule instances in the design
    5. Pin: submodule instance ports
    6. Net: wire or registers to connect pins
    7. Library name
    8. Library cell

Continue reading → What are design / library objects? How to manipulate these objects?

What is the procedure for timing ECOs? What are the timing fix techniques?

After PnR netlist is ready, STA engineers needs to do timing verification and perform timing ECO as needed. In this post, we will cover the timing ECO procedure, and some common timing fix techniques. A typical timing ECO procedure is shown in the diagram below:

Timing ECO Procedure

Continue reading → What is the procedure for timing ECOs? What are the timing fix techniques?

What is CRPR in PrimeTime timing reports?

We used the example below to explain how derate / OCV works in PrimeTime. An interesting corner case is that, in both setup time and hold time analysis, cell u0 is subject to different derating. Obviously, this introduces unnecessary pessimism in timing analysis. PrimeTime introduces a concept called Clock Reconvergence Pessimism Removal, or CRPR, to address this issue.

Timing Slack with Derate

Continue reading → What is CRPR in PrimeTime timing reports?

How to calculate timing slack using OCV

In previous post, we talked about the concepts of OCV, AOCV and POCV. In this post, we will use an example to further illustrate how to calculate timing slack using OCV.

An Example

Let’s assume OCV will derate 10% for clock cells, and 20% for data path. An reg-to-reg path along with delay values is shown in the diagram below.

Timing Slack with Derate

Continue reading → How to calculate timing slack using OCV

What are OCV / AOCV / POCV?

In manufacture, chips on the same die may suffer from variations due to process, voltage or temperature change, thus transistors can be faster or slower in different dies. To compensate the variation, STA introduces a concept called On Chip Variation, or OCV. During design time, extra timing margins are added in timing analysis.

OCV has been evolved to Advanced OCV / AOCV, or even Parametric OCV / POCV. In this post, we will cover these three concepts.

Continue reading → What are OCV / AOCV / POCV?

What is graph based analysis? What is path based analysis?

You may already noticed that we specified “-pba_mode” in “report_timing” command. This relates to PrimeTime’s different modes of analysis:

Graph based analysis, or GBA
Path based analysis, or PBA

GBA Mode

GBA mode is the default analysis in PrimeTime. It uses the worst input slew of a cell to calculate that cell’s output transition. The calculated output slew will be used to calculate the delays of downstream cells.

GBA mode is pessimistic in the analysis of certain paths.

Continue reading → What is graph based analysis? What is path based analysis?