#09 - Static Timing Analysis

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Synopsys Design Flow Tutorial

Lab 9: Static Timing Analysis. PrimeTime

Objective

Learn how to use PrimeTime to validate the timing performance of a design by checking all possible
paths for timing violations, without using logic simulation or test vectors.

Introduction

PrimeTime is a full-chip, gate-level static timing analysis tool that is an essential part of the design and
analysis flow for today's large chip designs.

Laboratory Tasks

PrimeTime can be used after Design Compiler or IC Compiler. The difference is that after IC Compiler
parasitics netlist in SPEF format can be used by PrimeTime for timing calculation. The steps to run
PrimeTime with the results from Design Compiler are very similar.

1. Start PrimeTime graphical user interface (GUI) from work directory, which is located in post_lay
directory. To start it enter:

% pt_shell
pt_shell> start_gui

This opens the PrimeTime top-level GUI window. (Fig. 1)

Fig.1. PrimeTime Top-level GUI window

2. The libraries are appended to the search path from .synopsys_pt.setup file located in work
directory. The setup file includes the following:

Synopsys University Courseware


Copyright © 2019 Synopsys, Inc. All rights reserved.
Developed by: Vazgen Melikyan
set link_path [list ../ref/lib/db_nldm/saed14rvt_tt0p8v25c.db ]

3. Use script created to carry out complex commands. There are two scripts in scripts directory,
which is located in post_lay directory. The names of these scripts are: sta_post_max.tcl and
sta_post_min.scr. The first is created for checking the setup timing and the second for checking
hold timing. To source the script write:

pt_shell> source ../scripts/sta_post_max.tcl

To check hold timing first enter reset_design command in command line, then source the
sta_post_min.tcl script.

Now show all the steps of sta_post_max.tcl script.

3.1 Read the design netlist. (Fig. 2) PrimeTime accepts design gate-level netlists in Verilog and VHDL
formats. Read design netlist with the following command: read_verilog, read_vhdl.

pt_shell> read_verilog [list ../source/johnson_icc.v]


pt_shell> current_design johnson

3.2 For a design to be complete, it needs to be connected to all of the library components and designs
it references. So to perform a name-based resolution of design references for the current design
use the link command. The references must be located and linked to the current design in order
for the design to be functional. The purpose of this command is to locate all of the designs and
library components referenced in the current design and connect (link) them to the current design.

pt_shell> link

3.3 Read the design constraints and parasitics. Read design constraints using following command:
read_sdc.

pt_shell> read_sdc ../source/johnson_icc.sdc


pt_shell> read_parasitics ../source/johnson.spef.max

3.4 Apply a constant value to input ports r and SE with the set_case_analysis command. It specifies
that a port or pin is at a constant logic value 1 or 0, or is considered with a rising or falling
transition. The ports in this lab are non active with the value 0 so the port r and Se is given 0.

pt_shell> set_case_analysis 0 [get_port r]


pt_shell> set_case_analysis 0 [get_port SE]

3.5 Get a detailed report on all constraint violations in the design with report_constraint -
all_violators.

Synopsys University Courseware


Copyright © 2019 Synopsys, Inc. All rights reserved.
Developed by: Vazgen Melikyan
pt_shell> report_constraint -all_violators -significant_digits
4 > ../results/johnson.min_constr.rpt

3.6 The report_timing command is the most flexible and powerful PrimeTime analysis command. The -
delay_type option specifies the type of timing checks to report. Set the delay type to max for setup
checks, min for hold checks.

pt_shell> report_timing -delay_type max 4 >


../results/johnson.min_timing.rpt

In reports it is possible to have violations, for example hold or setup violation. To correct the hold
violation, add buffers to the respective port. And for correcting the setup violation increase the area of
cells. Here is an example of a report that has no violations.
****************************************
Report : timing
-path_type full
-delay_type max
-max_paths 1
-sort_by slack
Design : johnson
Version: L-2016.06-SP2
Date : Mon Jul 23 07:20:35 2018
****************************************
Startpoint: out_reg[7] (rising edge-triggered flip-flop
clocked by clk)
Endpoint: out_reg[0] (rising edge-triggered flip-flop clocked
by clk)
Last common pin: clk
Path Group: clk
Path Type: max

Point Incr Path


-----------------------------------------------------------
clock clk (rise edge) 0.0000 0.0000
clock network delay (propagated) 0.0000 0.0000
out_reg[7]/CK (SAEDRVT14_FSDPRBQ_V2_1) 0.0000 0.0000 r
out_reg[7]/Q (SAEDRVT14_FSDPRBQ_V2_1) 0.0247 & 0.0247 f
U14/X (SAEDRVT14_INV_1P5) 0.0114 & 0.0361 r
out_reg[0]/D (SAEDRVT14_FSDPRBQ_V2_1) 0.0000 & 0.0361 r
data arrival time 0.0361
clock clk (rise edge) 2.0000 2.0000
clock network delay (propagated) 0.0000 2.0000
clock reconvergence pessimism 0.0000 2.0000

Synopsys University Courseware


Copyright © 2019 Synopsys, Inc. All rights reserved.
Developed by: Vazgen Melikyan
out_reg[0]/CK (SAEDRVT14_FSDPRBQ_V2_1) 2.0000 r
library setup time -0.0167 1.9833
data required time 1.9833
-----------------------------------------------------------
data required time 1.9833
data arrival time -0.0361
-----------------------------------------------------------
slack (MET) 1.9472

The report can also be seen in the Timing Analysis Driver Console by remarking one of the rows
and clicking the inspector button. See Fig. 2, and Fig.3.

Fig. 2. The Timing Analysis Driver

Fig. 3. Path Inspector console

Synopsys University Courseware


Copyright © 2019 Synopsys, Inc. All rights reserved.
Developed by: Vazgen Melikyan
3.7 The output file of PrimeTime is Standard Delay Format (.sdf) and it includes delay information,
such as pin-to-pin cell delays and net delays, and timing checks, such as setup, hold, recovery,
and removal times. In the script it was done using the following command:

pt_shell> write_sdf ../results/johnson.min.sdf

In this design, output results are stored in ../results/ directory.

4. To exit PrimeTime write:

pt_shell> exit

Synopsys University Courseware


Copyright © 2019 Synopsys, Inc. All rights reserved.
Developed by: Vazgen Melikyan

You might also like