Tempus Lab Manual
Tempus Lab Manual
Module 10:
(c) Cadence Design Systems Inc. Do not distribute.
(c) Cadence Design Systems Inc. Do notTiming
distribute.
Analysis and Debug
Objective: To run the timing analysis and fix a couple of timing violations.
Tempus Timing Signoff Solution is a timing signoff tool used to verify that the design meets your
timing goals. In this lab, you will first rerun the previous session of Place & Route and continue it
with running Tempus timing analysis inside of Innovus .
INNOVUS221 (22.10-p001_1)
SSV221 (22.10-p001_1)
You can start the Tempus tool using the command tempus -stylus.
You can start the Tempus TSO software using the command tempus -stylus -eco.
The following files are from the physical design lab and will serve as inputs to Tempus:
There are a few additional files in the directory that are not listed above.
In this section, you will be running a Tempus-style timing analysis inside of Innovus.
1. Let us rerun the previous session of Place & Route inside the STA directory instead of
using a saved session:
LINUX# cd STA
LINUX# innovus -stylus files runPnR.tcl
At the end of this session, the design is routed and timing analyzed.
A screenshot of runPnR.tcl is shown here.
Note: There are a lot of hold violations in the design. Let us see how to fix all of
them in Tempus.
4. If the graphical interface is not open, start it using the following command:
gui_show
b. Click OK.
c. Right-click on path #1 in the Path List and select Show Timing Path Analyzer.
Note: From the Timing Path Analyzer, if you want to debug violating paths, you
can right-click on any of the signals, and you will get additional options
like interactive ECO, etc.
6. Save the design including the SPEF, DEF, and the libraries, by entering:
write_db -rc_extract -def postRoute
7. Keep this session open if you would like for debugging purposes. You can close it
later.
2. Load the Innovus database into Tempus using the following command:
read_db physical_data postRoute
This loads the entire design along with the physical layout.
Open the Layout tab (click the sign to see other available tabs) to confirm that the
same layout from Innovus is also shown here in Tempus.
Once the design is loaded successfully, then generate the following reports.
4. View the list of all constraint violations using the following command:
report_constraint -all_violators
5. Report the worst slack time for setup and hold, respectively, using the following
commands:
report_timing late
report_timing early
7. Open the Analysis tab (click the sign to see other available tabs).
After the timing analysis is done, you can see the histogram for the hold analysis.
a. Browse through the Path List with Startpoint Pin as rst, right-click on the path,
and select Show Timing Path Analyzer.
8. In the Timing Path Analyzer window, select the rst pin and right-click and select
Interactive ECO/WhatIf Add Repeater.
The Interactive ECO window opens, which will allow you to add repeaters.
a. Click Get Selected to populate the net information, or just enter rst.
d. Click Eval All to choose which buffer is suitable for the path that adds more
delay and reduces the hold slack.
From the evaluation list, we can observe that Slack can be reduced to a maximum extent
to -0.0956 with the cell BUFX2.
Note: Add only BUFX* cells to fix the timing violation, do not add any CLKBUFX*
cells in the design.
The slack improvement is clearly observable. Let us see now analyze the results using
the Timing Path Analyzer window.
11. Rerun the timing report using the below icon from the Analysis window and compare
the WNS.
d. Click OK.
Notice the improvement in Hold Slack for the rst pin in the Timinig Path Analyzer
window.
13. As we can see, the Slack is still negative (-0.096), and we need to add a buffer on the
same net of the pin rst, until we get the Zero/Positive Slack for the pin rst.
14. So, In the Analysis window, select the rst pin and right-click again on the path, and
select Show Timing Path Analyzer.
15. Repeat Steps 8, 9, and 10 again by selecting the first path of the rst pin and choosing
Add Repeater from the Timing Path Analyzer window.
Observe the BUFX20 cell is the best delay cell to add to the path to reduce the Hold
Timing Slack to -0.0705.
Note: If you have an area constraint or less area in your design, then choose a cell
that adds moderate delay and less area according to the design requirement.
16. After adding the BUFX20 cell, rerun the Timing Debug report as shown in Step 11.
Note: As we can see, the Slack is still negative (-0.070), and we need to add buffers
on the same net of the pin rst, until we get the Zero/Positive Slack for the pin
rst.
17. Repeat Steps 7, 8, 9 and 10 again by selecting the first path of the rst pin from the
Analysis window and choosing Add Repeater from the Timing Path Analyzer
window.
Note: Observe that BUFX20 cell is the best delay cell to add on the path to reduce
the timing slack but has the highest area penalty. So, ensure that if you have
the area constraint or less area is present in your design, then go for the cell,
which adds moderate delay with a lesser area overhead.
So, choose the BUFX2 cell in this scenario because the area of BUFX2 is less than the
BUFX20 cell, and also Timing-Slack reduction is not much different between those two
cells.
18. After adding the BUFX2 cell, rerun the Timing Debug report and analyze the Hold
Slack as shown in Step 11
19. Likewise, add more buffers on the same path, analyze the Hold slack for the pin rst,
and notice the reduction in WNS.
20. Now, check the analysis coverage using the following command to ensure the Setup
Slack is not affected by the changes made in the Hold Violated Paths.
report_analysis_coverage
21. Now. Try a similar exercise by buffering the SE pin to fix the Hold Slack Violations
and compare the results.
Earlier:
Later:
22. Similarly, fix the remaining timing violations. As a result, it will show zero failing
paths in the final timing report, as shown in the figure below.
Summary
1. You can run timing analysis from within Innovus. You can also evaluate and create
timing-fixing ECOs interactively from within Tempus.
2. You can run independent timing analysis from within Tempus. Independent analysis
frees up Innovus to do other things.