Not Redistribute: Primetime Workshop
Not Redistribute: Primetime Workshop
ut
CUSTOMER EDUCATION SERVICES
ib
tr
is
ed
PrimeTime
tr
Workshop
no
o
Lab Guide
10-I-034-SLG-017 2021.06-SP1
D
.
nc
,I
ys
ps
no
Sy
©
e
ut
1
ib
PrimeTime Flow
tr
is
ed
tr
no
o
Learning Objectives
D
.
nc
After completing this lab, you should be able to:
Restore a previously saved PrimeTime session
,I
Lab Duration:
45 minutes
Overview
e
Restore a PrimeTime
ut
session.
ib
tr
is
Learn helpful commands.
ed
[OPTIONAL Task]
tr
no
Validate a restored saved
session and Exercise
d d fl
o
D
Interpret a setup and hold
.
nc
timing report.
,I
ys
directory.
no
Answers / Solutions
This lab guide contains answers and solutions to all questions. If you need some
help with answering a question or would like to confirm your results, check the back
portion of this lab.
Instructions
e
ut
Task 1. Restore a PrimeTime Sesssion
ib
Invoke a previously saved PrimeTime session to perform STA.
tr
is
Invoke PrimeTime from the lab1_flow workshop lab Unix directory.
ed
unix% cd lab1_flow
tr
unix% pt_shell
no
Restore a previously saved PrimeTime session. This step will read in the
design netlist, libraries, and constraints. The design is now ready for
o
analysis.
D
Note: The orca_savesession below is a Unix directory.
.
Note: The orca_savesession can be recreated, if needed,
nc
using: pt_shell -f RUN.tcl | tee -i run.log
,I
pt_shell> report_analysis_coverage
ig
...............................................................................................
op
Question 2. How many setup and hold violations does ORCA have?
C
...............................................................................................
pt_shell> report_global_timing
e
Question 3. How many are reg-reg setup and hold violations?
ut
………… .................................................................................
ib
tr
is
ed
tr
no
o
D
.
nc
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
pt_shell> history
e
ut
pt_shell> !!
ib
pt_shell> !2
tr
Question 4. Describe the difference between the last two history
is
commands above.
ed
...............................................................................................
tr
Use up and down arrows to scroll through the history event list as an
no
alternative to the previous step.
Type the following to see all the available key bindings (in the default emacs
editing mode).
o
pt_shell> list_key_bindings
D
.
nc
Explore the page mode alias; execute the following command, which will
generate a report that scrolls off the screen:
,I
ys
pt_shell> page_on
Sy
pt_shell> !rep
©
Use the space bar and Enter keys to page through a long report. Quit from
a long report in page mode by typing “q”. If you want to turn off page mode,
ht
Send a timing report to a separate window with the view Tcl procedure.
yr
Find the command to restore a PrimeTime session and then display help
information on this command.
e
pt_shell> man restore_session
ut
pt_shell> restore_session –help
ib
Note: The following is an alternative way to display syntax help.
tr
is
pt_shell> help –v restore_session
ed
tr
Question 5. From the last command above, does the command
restore_session accept switches?
no
...............................................................................................
o
The time unit in PrimeTime is determined by the main technology library.
D
To find the time unit for ORCA, first list all libraries in memory.
Note: The * in the following report indicates the main library.
.
nc
pt_shell> list_lib
,I
ys
Generate a report for the main library which will state the time unit.
ps
Note: Use copy and paste to avoid mistyping the lib name. The
time unit is at the very top of the report.
no
Question 6. What is the time unit used for timing reports (as well as all
©
...............................................................................................
ig
Note: Do not forget to use “q” to quit from a long report in page
mode and return to the pt_shell prompt without reading
yr
pt_shell> report_units
e
Verify that the current design is your top-level module: ORCA
ut
pt_shell> current_design
ib
tr
Compare the unix paths of the libraries to what has been read into PrimeTime
is
pt_shell> printvar search_path
ed
pt_shell> printvar link_path
tr
pt_shell> list_libraries
no
Question 7. Have the 4 libraries in the link_path been
successfully read into PrimeTime?
o
D
.................................................................................
.................................................................................
ys
.................................................................................
no
pt_shell> report_annotated_parasitics
©
Question 10. Are there any nets that are not annotated?
ht
.................................................................................
ig
yr
.................................................................................
pt_shell> check_timing
e
ut
use as a ‘next step’ in debugging the missing
constraints?
ib
.................................................................................
tr
is
Verify that the checks in your cells are completely exercised; look at possible
causes for your findings.
ed
pt_shell> report_analysis_coverage
tr
pt_shell> report_case_analysis
no
Question 13. Is it logical that many of your timing checks are untested?
o
...............................................................................................
Quit PrimeTime.
D
.
nc
pt_shell> quit
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
e
UNIX> pt_shell –f ./pt_scripts/pt.tcl | tee –i
ut
run.log
ib
Question 14. Were there any errors during the execution of the
tr
run script?
is
.................................................................................
ed
If there are any errors, address these first before moving on to the next step.
tr
Evaluate your log file. With a text editor, open your log file. Search for the
update timing messages (UITE-214), print_message_info output,
no
and the quit output. Then, in your profile directory, examine the file
tcl_profile_sorted_by_cpu_time.
o
Question 15. What step required the most CPU time?
D
.................................................................................
.
nc
Question 16. What commands were causing UITE-214
messages?
,I
.................................................................................
ys
.................................................................................
ps
.................................................................................
Sy
.................................................................................
ht
ig
yr
op
C
Invoke PrimeTime and restore the session that you saved in the previous
e
task
ut
ib
unix% pt_shell
tr
pt_shell> restore_session my_savesession
is
Execute the following to display the clocks in ORCA:
ed
pt_shell> report_clock
tr
no
Question 19. How many clocks are in ORCA?
..............................................................................................
o
D
Create a single, “short” timing report for setup for the clock SYS_CLK. Use
command-line expansion (the tab key) to expand both the command AND
.
the options –group and –path.
nc
short
ys
Note: The lines containing the data path cells and their delays are
ps
default.
Question 20. There are at least 4 clues that this report is for setup and not
©
...............................................................................................
ig
...............................................................................................
yr
Question 21. Identify the instance names of the start and end point
op
flip-flops.
...............................................................................................
C
Question 22. The clock skew for this timing path is 0.511ns; which two
lines in the report can you use to calculate this?
...............................................................................................
e
Question 23. How does this clock skew affect slack (i.e. does the clock
ut
skew help or hurt slack)?
ib
...............................................................................................
tr
Question 24. How large is the violation in comparison to the clock period?
is
...............................................................................................
ed
Generate a timing report for hold time.
tr
The following is a short cut that will execute the last command in history
starting with the letters “rep” and add the switch –delay min (which will
no
generate a report for hold time).
o
pt_shell> !rep –delay min
Question 25. D
There are at least 4 clues that indicate this is a hold report
.
and not a setup report. How many can you find?
nc
...............................................................................................
,I
ys
Question 26. How does the clock skew in this hold report affect slack (i.e.
does the clock skew help or hurt slack)?
ps
...............................................................................................
no
Quit PrimeTime.
Sy
pt_shell> quit
©
Answers / Solutions
e
The design is ORCA.
ut
Question 2. How many setup and hold violations does ORCA have?
ib
There are 23 setup and 53 hold violations.
tr
Question 3. How many are reg-reg setup and hold violations?
is
There are 9 setup and 53 hold violations of type reg-reg.
ed
Question 4. Describe the difference between the last two history
tr
commands above.
no
The command !2 repeats the 2nd command executed in
history. The command !! repeats the last executed
command in history.
o
Question 5. From the last command above, does the command
D
restore_session accept switches?
.
Yes, it accepts a session name, allowing a user to specify
nc
Question 6. What is the time unit used for timing reports (as well as all
other reports) for the ORCA design?
ys
1ns.
ps
Question 8. Which library defines the defaults for time units, operating
©
e
Library: cb13fs120_tsmc_max
ut
****************************************
ib
Time Unit : 1 ns
tr
is
ed
pt_shell> report_units
****************************************
Report : units
tr
Design : ORCA
****************************************
no
Units
---------------------------------------------
o
Capacitive_load_unit : 1e-12 Farad
D
Current_unit : 1e-06 Amp
Resistance_unit : 1000 Ohm
Time_unit : 1e-09 Second
.
nc
,I
Question 10. Are there any nets that are not annotated?
ys
e
ut
Question 14. Were there any errors during the execution of the run
script?
ib
No. The “run script” is setup such that any errors will
tr
terminate the script in the middle of execution. If the script
is
completes, no errors occurred during execution of the run
script. Moreover, from the “Diagnostics Summary”
ed
messages at the end of the log file from the quit command,
there were no errors during the run.
tr
Question 15. What step required the most CPU time?
For this lab, sourcing the constraints took the most CPU
no
time. (From the “tcl_profile_sorted_by_cpu_time” file)
o
Question 16. What commands were responsible for UITE-214
messages?
D
update_timing –full and a call to a macro
PLL_SHIFT which invoked update_timing
.
nc
Question 18. Why might the quit command output be a good place to
Sy
Question 20. There are at least 4 clues that this report is for setup and
not for hold. How many can you identify?
op
e
report for hold, the slack would be met!)
ut
Question 21. Identify the instance names of the start and end point
ib
flip-flops.
tr
Startpoint: I_ORCA_TOP/I_BLENDER/s3_op2_reg[18]
(rising edge-triggered flip-flop clocked by SYS_CLK)
is
Endpoint: I_ORCA_TOP/I_BLENDER/s4_op2_reg[31]
ed
(rising edge-triggered flip-flop clocked by SYS_CLK)
Path Group: SYS_CLK
Path Type: max
tr
Min Clock Paths Derating Factor : 0.900
no
Question 22. The clock skew for this timing path is 0.511 ns. Which lines
in the report can you use to calculate this?
o
Point Incr Path
-----------------------------------------------------------------
D
clock SYS_CLK (rise edge) 0.000 0.000
clock network delay (propagated) 3.247 3.247
.
I_ORCA_TOP/I_BLENDER/s3_op2_reg[18]/CP (sdnrb1) 0.000 3.247 r
nc
I_ORCA_TOP/I_BLENDER/s3_op2_reg[18]/Q (sdnrb1) 0.516 & 3.763 r
...
,I
.....
no
Question 23. How does this clock skew affect slack (i.e. does the clock
Sy
The clock skew hurts the slack for setup in this specific
©
Question 25. There are at least 4 clues that indicate this is a hold report
and not a setup report. How many can you find?
e
The clock edges used for the data arrival and data
ut
required are 0ns and 0ns respectively.
ib
The “Path Type” in the header is min which indicates
that this report is for hold time.
tr
Finally, the data arrival time is before the data required
is
time and the slack is violated.
ed
Question 26. How does the clock skew for this hold report affect slack
(i.e. does the clock skew help or hurt slack)?
tr
From the report, you can see (after applying the clock
no
network delay) that the capture clock edge arrives later
than the launch clock edge. This hurts the hold slack,
causing a violation.
o
D
Point Incr Path
-------------------------------------------------------------------
.
clock SYS_CLK (rise edge) 0.000 0.000
nc
clock network delay (propagated) 2.360 2.360
I_ORCA_TOP/I_PARSER/out_bus_reg[10]/CP (sdcrq1) 0.000 2.360 r
,I
--------------------------------------------------------------------
slack (VIOLATED) -0.142
ig
yr
op
C
e
ut
2
ib
Constraining
tr
is
Methodology
ed
tr
no
o
Learning Objectives
D
.
nc
After completing this lab, you should be able to:
Validate constraints by checking for
,I
Interface constraints
Sy
©
ht
ig
yr
op
C
Lab Duration:
30 minutes
Overview
e
Restore session and Validate
ut
Constraints
ib
tr
is
Interpret constraints in a timing
report from an input port.
ed
tr
no
Interpret constraints in a timing
report to an output port.
o
D
.
nc
,I
ys
All files for this lab are located in the lab2_constraints directory under your
home directory.
no
This lab guide contains answers and solutions to all questions. If you need some
op
help with answering a question or would like to confirm your results, check the back
portion of this lab.
C
Instructions
e
ut
Invoke PrimeTime from the lab2_constraints directory and restore the
PrimeTime session using the orca_savesession directory.
ib
Note: The orca_savesession can be recreated, if needed,
tr
using: pt_shell -f RUN.tcl | tee -i run.log
is
Note: Any PARA-124 Errors during the execution of RUN.tcl can
ed
be safely ignored for the purpose of our labs.
tr
Check for constraint completeness
no
pt_shell> check_timing -verbose
o
Question 1. Are all registers in the design clocked?
D
…………. ...............................................................................
.
nc
Question 2. Are there any missing constraints? Can you explain?
...............................................................................................
,I
ys
pt_shell> report_analysis_coverage
no
...............................................................................................
©
...............................................................................................
ig
Question 5. How many output delay constraints are there for setup and
yr
...............................................................................................
C
e
ut
pt_shell> report_port –input_delay pad[0]
ib
Question 6. What are the min and max arrival times to pad[0]?
tr
is
...............................................................................................
ed
Question 7. What is the name of the external start point clock
constraining pad[0]?
tr
...............................................................................................
no
Generate a timing report for setup starting at the port pad[0].
o
Answer the following questions using this report.
D
Use your job aid labeled “timing reports” for help recalling the
appropriate switch for report_timing.
.
nc
Question 8. Which lines in the timing report did you use to ensure the
reported path starts at the port pad[0] and is for setup?
,I
...............................................................................................
ys
...............................................................................................
no
Question 10. Where must the clock latency be included for the start point
Sy
clock PCI_CLK?
...............................................................................................
©
ht
Question 11. Describe the direction of the port pad[0] (i.e. is it an input,
ig
...............................................................................................
op
Question 12. Describe the end point of this timing path (i.e. is it an output
port or an internal flip-flop).
C
...............................................................................................
Generate a new report from the same port pad[0] for setup, which also
shows the details of the calculated clock network delay.
Use the job aid labeled “timing reports” for help recalling the
appropriate switch for report_timing. Remember to take
advantage of history commands.
e
ut
Question 13. How large is the clock source latency versus the clock
network latency for the end point clock PCI_CLK?
ib
tr
...............................................................................................
is
Question 14. Where has the clock PCI_CLK been defined (the clock
ed
definition point)?
tr
...............................................................................................
no
Generate a report starting at the port pad[0] for hold time.
Question 15. Does the value of the input external delay constraint match
o
your expectations?
D
...............................................................................................
.
nc
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
e
ut
Question 16. What are the min and max output delay constraints for this
port?
ib
...............................................................................................
tr
is
Question 17. How will the negative min output delay constraint be applied
to this port (i.e. will it impose a positive or negative hold
ed
requirement)?
tr
...............................................................................................
no
Question 18. What is the name of the external end point clock constraining
this port?
o
...............................................................................................
D
Generate a “short” timing report ending at the port pad[0] for hold time.
.
nc
Question 19. Describe the start point of this timing path (i.e. is it an input
port or an internal flip-flop).
,I
...............................................................................................
ys
Question 20. Does the path group for this timing path match your
ps
expectations?
no
...............................................................................................
Question 21. Does the “data required time” match your expectations?
Sy
...............................................................................................
©
Optionally, apply the following constraint which will impose a positive output
delay constraint for hold on pad[0] and then re-execute the steps in this
ht
pad[0]
op
Quit PrimeTime.
C
Answers / Solutions
e
Yes. There are no clock pins reported following the
ut
message Information: Checking 'no_clock'.
ib
Question 2. Are there any missing constraints? Can you explain?
tr
Yes. There are 2 output ports reported to be missing their
is
output delays.
Warning: There are 2 endpoints which are not constrained for
ed
maximum delay.
tr
sd_CKn
no
sd_CK
o
clock output ports (Use the report_clock command to
D
confirm) that should not be constrained for output delay.
Question 3. Nearly two thirds of the setup/hold checks are untested! –
.
What are the 2 causes?
nc
report_analysis_coverage -status
ys
Question 5. How many output delay constraints are there for setup and
ht
e
ut
ib
tr
is
ed
tr
Question 6. What are the min and max arrival times to pad[0]?
no
The min and max arrival times are 2ns and 8ns respectively
(with the same constraint for both rise and fall data
o
transitions at the port pad[0]).
Question 7.
D
What is the name of the external start point clock
constraining pad[0]?
.
nc
Question 8. Which lines in the timing report did you use to ensure the
reported path starts at the port pad[0] and is for setup?
ps
report.
ig
Question 10. Where must the clock latency be included for the start point
clock PCI_CLK?
e
the input delay constraint (i.e. the input external delay).
ut
The appropriate way to model this is to use the switches
–network_latency_included and
ib
–source_latency_included for
set_input_delay.
tr
is
Question 11. Describe the direction of the port pad[0] (i.e. is it an input,
output or inout port).
ed
The port pad[0] is an inout port; therefore, it is both a
tr
timing path start point as well as a timing path end point!
Point Incr Path
no
-----------------------------------------------------------------------
clock PCI_CLK (rise edge) 0.000 0.000
clock network delay (propagated) 0.000 0.000
o
input external delay 8.000 8.000 r
D
pad[0] (inout) 0.000 8.000 r
Question 12. Describe the end point of this timing path (i.e. is it an output
.
port or an internal flip-flop).
nc
Question 13. How large is the clock source latency versus the clock
network latency for the end point clock PCI_CLK?
e
network latency is 2.951ns (17.951 – 15.00).
ut
pt_shell> !rep –path full_clock
ib
tr
is
ed
tr
no
o
D
.
nc
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
Question 14. Where has the clock PCI_CLK been defined (the clock
definition point)?
e
from the clock network latency.
ut
ib
Question 15. Does the value of the input external delay constraint match
tr
your expectations?
is
Yes. From report_port above, the input external delay
ed
should be 2ns with respect to the rising edge of PCI_CLK.
This is confirmed in the timing report below.
tr
no
pt_shell> report_timing -delay min -from pad[0]
o
Startpoint: pad[0] (input port clocked by PCI_CLK)
D
Endpoint: I_ORCA_TOP/I_PCI_CORE/d_out_i_bus_reg[0]
(rising edge-triggered flip-flop clocked by PCI_CLK)
Path Group: PCI_CLK
.
Path Type: min
nc
Min Data Paths Derating Factor : 0.900
Min Clock Paths Derating Factor : 0.900
,I
-------------------------------------------------------------------------
clock PCI_CLK (rise edge) 0.000 0.000
ps
Question 16. What are the min/max output delay constraints for this port?
e
[-verbose] (Show all port info)
ut
[-design_rule] (Only port design rule info)
[-drive] (Only port drive info)
ib
[-input_delay] (Only port input delay info)
[-output_delay] (Only port output delay info)
tr
[-wire_load] (Only port wire load info)
[-nosplit] (Don't split lines if column overflows)
is
[port_list] (List of ports)
ed
pt_shell> report_port –output_delay pad[0]
Output Delay
tr
Min Max Related Related
Output Port Rise Fall Rise Fall Clock Pin
no
------------------------------------------------------------
pad[0] -1.00 -1.00 4.00 4.00 PCI_CLK --
o
D
Question 17. How will the negative min output delay constraint be
applied to this port (i.e. will it impose a positive or negative
hold requirement)?
.
nc
Question 18. What is the name of the external end point clock
ys
-path_type short
ht
ig
Startpoint: I_ORCA_TOP/I_PCI_CORE/pad_out_buf_reg[0]
(rising edge-triggered flip-flop clocked
yr
by PCI_CLK)
op
Question 20. Does the path group for this timing path match your
expectations?
e
Question 21. Does the “data required time” match your expectations?
ut
Yes. The capture clock edge is zero, which is appropriate
ib
for hold. The hold requirement of 1ns is positive, and the
tr
propagated clock network delay is 0ns. The data required
section of the timing report is shown below.
is
ed
tr
no
o
D
.
nc
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
e
ut
ib
tr
is
ed
pt_shell> report_timing –to pad[0] –delay min –path short
. . .
tr
no
o
D
.
nc
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
#From the above report, you can see that using a positive hold constraint
#for an output delay INCREASES the positive slack. This confirms that
#specifying a negative hold constraint for an output delay actually
#specifies the hold requirement on the output port.
e
ut
3
ib
Generating Reports
tr
is
ed
tr
no
o
Learning Objectives
D
.
nc
After completing this lab, you should be able to:
Generate summary reports for the violations in
,I
ORCA
ys
Lab Duration:
45 minutes
Overview
e
ut
Restore a PrimeTime
ib
session.
tr
is
ed
Generate various summary
reports.
tr
no
Generate and analyze
o
timing reports.
D
.
nc
,I
ys
All files for this lab are located in the lab3_reports directory under your home
directory.
no
This lab guide contains answers and solutions to all questions. If you need some
op
help with answering a question or would like to confirm your results, check the back
portion of this lab.
C
Instructions
e
ut
Invoke PrimeTime from the lab3_reports (which is a symbolic link to the
lab2_constraints) workshop lab directory.
ib
Restore the PrimeTime session using the orca_savesession directory.
tr
Note: The orca_savesession can be recreated, if needed,
is
using: pt_shell -f RUN.tcl | tee -i run.log
ed
Note: Any PARA-124 Errors (in parasitics_command.log) during
the execution of RUN.tcl can be safely ignored for the
tr
purpose of our labs.
no
Find the variable that controls the significant digits for many reports and set it
to 4 significant digits. [Hint: aa significant]
o
Question 1. What is this variable’s default value? [Hint: man page]
D
.....................................................................................
.
nc
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
e
reports:
ut
Question 2. Identify the top five setup violations with the worst
ib
slack. The required details are the endpoint names
and the slack.
tr
is
.....................................................................................
ed
Question 3. List the 2 clock domains that have violating setup
timing paths, and the 5 clock domains that have
tr
violating hold timing paths (ORCA has 6 clock
domains in total).
no
.....................................................................................
o
Question 4. Identify how many hold violations are on input paths,
D
how many on output paths, and how many are
register-to-register violations.
.
nc
.....................................................................................
,I
Generate a report for the worst slack for setup to each bit of a 16-bit bus
ending at the output ports sd_DQ[0] to sd_DQ[15] (the output ports are
ys
Question 5. List the end point with the largest margin (the best
slack).
no
.....................................................................................
Sy
paths?
ht
.....................................................................................
ig
yr
op
C
e
ut
pt_shell> report_timing –group PCI_CLK
ib
Question 7. Does this timing path meet or violate timing?
tr
is
.....................................................................................
ed
Question 8. What type of timing path is this - internal flip-flop to
flip-flop, input, or output timing path?
tr
.....................................................................................
no
Generate a timing report for hold time for the same clock group PCI_CLK.
o
pt_shell> report_timing –group PCI_CLK –delay min
Question 9. D
What type of timing path is this - internal flip-flop to
.
nc
flip-flop, input, or output timing path?
,I
.....................................................................................
ys
Question 10. How many cells are on the data path of this timing
path?
ps
.....................................................................................
no
Question 11. The cell delays used are rise delays. Offer one reason
why this would result in a worse slack for hold than
Sy
.....................................................................................
©
In the next step, you will continue to explore and confirm your
ht
…. ...........................................................................................
C
Generate another timing report for the same timing path for hold time but with
a fall transition at the end point (instead of a rise transition).
Use copy and paste to avoid mistyping the end point and start
point pin names.
Use the job aid labeled “timing reports” to find the appropriate
switches for report_timing.
Question 13. Which lines in this report did you use to confirm that
the correct path has been reported?
e
ut
.....................................................................................
ib
Question 14. Was the guess correct – the faster fall delays results in
a faster data arrival time but a smaller hold time
tr
requirement and thus a better slack?
is
.....................................................................................
ed
tr
no
o
D
.
nc
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
e
appropriate commands and switches.
ut
Question 15. Write the command to generate a single timing report
ib
for each path group for setup.
tr
.....................................................................................
is
Question 16. Write the command to generate a single timing report
ed
for setup for each path group which has a violation.
tr
.....................................................................................
no
Question 17. What are the names of the two path groups that have
violating timing paths in ORCA (the answer will come
from the result of the previous question)?
o
D
.....................................................................................
.....................................................................................
ys
Question 19. There are a few latches in ORCA; write the command
ps
.....................................................................................
Question 20. Write the command to generate a timing report for hold
Sy
.....................................................................................
ht
ig
yr
op
C
e
ut
These paths must be carefully monitored for various reasons (e.g. the duty cycle of
SDRAM_CLK is not yet well defined or for analysis of the clock skew).
ib
tr
Execute the following command to report the clock period for SDRAM_CLK
and use this information to answer the following questions:
is
ed
pt_shell> report_clock SDRAM_CLK
tr
Question 21. Given that the first number under the waveform
no
column is the first rising edge for the clock
SDRAM_CLK and the second number is the falling
edge – what duty cycle has been defined for this
o
clock?
D
.....................................................................................
.
nc
Question 22. Describe the specific clock edges that will be used in a
timing report for setup for a timing path constrained by
the rising edge of SDRAM_CLK to the falling edge of
,I
SDRAM_CLK.
ys
.....................................................................................
ps
Question 23. For this same timing path, describe the specific clock
no
.....................................................................................
timing reports for the half clock cycle timing paths constrained by the clock
ht
SDRAM_CLK.
ig
Worst
Launch Capture Launch Capture Worst Hold
yr
Setup
clock edge clock edge clock edge clock edge Slack
Slack
op
Rise 0ns Fall 3.75ns 0.680ns Rise 7.5ns Fall 3.75ns 3.558ns
C
Fall 3.75ns Rise 7.50ns 0.635ns Fall 3.75ns Rise 0ns 3.514ns
.....................................................................................
e
ut
Question 25. Why does PrimeTime report “no constrained paths?”
(hint – the options PrimeTime is using are shown
ib
immediately following the report_timing
command)
tr
is
.....................................................................................
ed
Question 26. What additional option must you use to report the
worst 10 timing paths?
tr
.....................................................................................
no
Quit PrimeTime.
o
D
.
nc
,I
Answers / Solutions
e
ut
set_app_var report_default_significant_digits -
default
ib
report_default_significant_digits = "2"
tr
pt_shell> set report_default_significant_digits 4
is
ed
Question 2. Identify the top five setup violations with the worst slack.
The details that are required are the endpoint names and
tr
the slack.
no
The following command will list all setup violations sorted
by slack. Use page mode to quit from the long report
because the only information desired are the top 5
o
violations.
D
# No need to type the entire command name!
pt_shell> report_analysis –status violated –check setup -nosplit
.
nc
Constrained Related Check
Pin Pin Clock Type Slack
,I
Question 3. List the 2 clock domains that have violating setup timing
paths, and the 5 clock domains that have violating hold
Sy
space.
pt_shell> report_constraint –all_violators \
ht
-max_delay -min_delay
ig
yr
Question 4. Identify how many hold violations are on input paths, how
many on output paths, and how many are register-to-
register violations.
pt_shell> report_global_timing
e
ut
Hold violations
------------------------------------------------------
ib
Total reg->reg in->reg reg->out in->out
tr
------------------------------------------------------
is
WNS -2.5189 -0.1420 -2.5189 -0.1281 -0.6657
ed
TNS -71.9799 -3.5616 -58.2729 -0.5954 -9.5499
tr
NUM 121 59 39 7 16
no
------------------------------------------------------
o
Question 5. List the end point with the largest margin (the best slack).
D
The output port sd_DQ[0] has the largest margin at
1.5994ns.
.
nc
Generally, the following command will only generate a single
report for every end point because nworst is, by default, 1 and
,I
-----------------------------------------------------------------------------
sd_DQ[6] (inout) 10.4130 f* 11.7192 0.0000 1.3061
ht
e
report_qor –only_violated
ut
ib
Timing Path Group 'SDRAM_CLK' (min_delay/hold)
---------------------------------------------
tr
Levels of Logic: 2
is
Critical Path Length: 0.8941
ed
Critical Path Slack: -2.5189
tr
Total Negative Slack: -56.1877
no
No. of Violating Paths: 44
o
It violates timing with a slack of -3.6801 ns.
Question 8.
D
What type of timing path is this - internal flip-flop to flip-flop,
input, or output timing path?
.
nc
named pad[1].
Question 9. What type of timing path is this - internal flip-flop to flip-flop,
ys
This is an input timing path. The end point looks like a flip-
flop.
no
Question 10. How many cells are on the data path of this timing path?
Sy
Question 11. The cell delays used are rise delays. Offer one reason why
this would result in a worse slack for hold than using fall
delays?
Typically, fall delays are faster than rise delays and would
e
offer a worse slack for hold! However, it’s the combination
ut
of data arrival time and the amount of hold time that causes
the amount of slack.
ib
Question 12. What additional information do you need to confirm your
tr
answer for the above question?
is
Generate another timing report where the data arrival time
ed
is calculated with fall transition at the end point and
compare the two reports. In this way you can confirm
tr
whether it’s the data arrival time or hold time that
contributed to the worst slack. You will explore this in the
no
next lab step.
o
D
.
nc
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
Question 13. Which lines in this report did you use to confirm that the
correct path has been reported?
e
pt_shell> report_timing -group PCI_CLK -delay_type min_fall \
ut
-input_pins -from pad[0] -to I_ORCA_TOP/I_PCI_CORE/d_out_i_bus_reg[0]/D
ib
tr
Startpoint: pad[0] (input port clocked by PCI_CLK)
is
Endpoint: I_ORCA_TOP/I_PCI_CORE/d_out_i_bus_reg[0]
(rising edge-triggered flip-flop clocked by PCI_CLK)
ed
Path Group: PCI_CLK
tr
Path Type: min
Min Data Paths Derating Factor : 0.9000
no
Min Clock Paths Derating Factor : 0.9000
o
Point Incr Path
D
------------------------------------------------------------------------------
clock PCI_CLK (rise edge) 0.0000 0.0000
.
nc
clock network delay (propagated) 0.0000 0.0000
input external delay 2.0000 2.0000 f
,I
------------------------------------------------------------------------------
data required time 3.5682
C
Question 14. Was the guess correct – the faster fall delays results in a
faster data arrival time but a smaller hold time requirement
and thus a better slack?
No! The data arrival time is slower with the fall transitions
e
along the path (3.045 ns versus 2.9144ns) and the hold
ut
time requirement is less negative (-0,0596 ns versus -
0.1542 ns). This combination has caused the slack to be
ib
better than the original timing report with rise transitions (-
0.5591 vs -0.5232 ns). Recall that hold time (and
tr
setup time) are a function of the transition at the data pin of
is
the flip-flop.
ed
Question 15. Write the command to generate a single timing report for
each path group for setup.
tr
pt_shell> report_timing –group [get_path_group *]
no
Question 16. Write the command to generate a single timing report for
o
setup for each path group which has a violation.
D
pt_shell> report_timing –group [get_path_group *]
.
–slack_lesser_than 0
nc
Question 17. What are the names of the two path groups that have
violating timing paths in ORCA (the answer will come from
Sy
Question 18. Write the command to generate a timing report with the
ht
PCI_CLK]
# Or, another way to do the same thing
pt_shell> report_timing –to [all_outputs] –group
PCI_CLK
Question 19. There are a few latches in ORCA; write the command to
identify the data pins of these latches.
e
ut
Question 20. Write the command to generate a timing report for hold to
the D pin of the latched_clk_en_reg latches.
ib
tr
# Use copy and paste to avoid mistyping the long end point pin name
is
pt_shell> report_timing –delay min \
ed
-to I_ORCA_TOP/I_BLENDER*/latched_clk_en_reg/D
tr
Question 21. Given that the first number under the waveform column is
no
the first rising edge for the clock SDRAM_CLK and the
second number is the falling edge – what duty cycle has
been defined for this clock?
o
D
The rising edge of SDRAM_CLK is at 0ns, the falling edge
at 3.75ns and the period is 7.50ns. The duty cycle is 50%.
.
Question 22. Describe the specific clock edges that will be used in a
nc
timing report for setup for a timing path constrained by the
rising edge of SDRAM_CLK to the falling edge of
,I
SDRAM_CLK.
ys
Use the following clock waveform for this and the next
question. The clock edges will be 0ns to 3.75ns.
ps
no
Hold Setup
Sy
Hold
0ns 3.75ns 7.5ns
Setup
©
Question 23. For this same timing path, describe the specific clock edges
that will be used in a timing report for hold timing checks.
e
ut
# Commands for the final task
ib
# The backslash is a line continuation character
tr
# The switch –delay min_max will generate one report for setup
is
and
ed
# one for hold
report_timing -rise_from [get_clocks SDRAM_CLK] \
tr
-fall_to [get_clocks SDRAM_CLK] -delay_type min_max
no
report_timing -fall_from [get_clocks SDRAM_CLK] \
–rise_to [get_clocks SDRAM_CLK] -delay_type min_max
o
D
Question 24. Which switch is useful for generating the worst 10 timing
reports for each of these half clock cycle timing paths?
.
nc
The switch –max_paths 10 to the above command.
Question 25. Why does PrimeTime report “no constrained paths?”
,I
ys
timing paths?
Sy
e
ut
ib
tr
is
ed
tr
no
o
D
.
nc
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
e
ut
4
ib
Constraining Multiple
tr
is
Clocks
ed
tr
no
o
Learning Objectives
D
.
nc
After completing this lab, you should be able to:
Apply the commands taught in lecture to gather
,I
Use the GUI for another view of the design clocks and
their relationships
ps
no
Sy
©
ht
ig
yr
op
C
Lab Duration:
45 minutes
Overview
e
clocks in the shell.
ut
ib
tr
Get to know the design
is
clocks in the GUI.
ed
tr
Identify a false violation
due to incorrectly
no
constrained clocks.
o
D
Fix the problem and confirm
.
the results.
nc
All files for this lab are located in the lab4_clocks directory under your home
directory.
ps
issue
RUN.tcl Run script for ORCA
©
scripts/
Variable script
ig
orca_pt_variables.tcl
yr
op
C
Instructions
e
ut
Make sure your current directory is lab4_clocks
Invoke PrimeTime (pt_shell).
ib
Restore the session saved in ./orca_savesession
tr
Take advantage of command and file name completion by typing
is
a few letters and then using the tab key.
ed
Use the commands taught in lecture to answer the following questions.
tr
Use the job aid labeled “Clocks and More” for help recalling the
specific commands.
no
Question 1. How many clocks are in this design and how
many of these are generated?
o
D
...........................................................................
...........................................................................
,I
clocks?
ps
...........................................................................
no
...........................................................................
Sy
...........................................................................
ig
yr
op
C
e
Start the GUI by executing the following command.
ut
ib
pt_shell> start_gui
tr
Note: The original pt_shell session is still running in the terminal
is
window. You can keep the GUI open and use either the
shell or the GUI interface as appropriate to the desired
ed
tasks.
tr
Look at clock domain crossings: Open the “clock domain matrix” from the
pull-down menu: Clock Clock Analyzer.
no
The ClockAnalyzer window that opens (expand if needed by clicking on the
plus signs to the left of the clocks) should match the information from
o
check_timing when reporting the clock crossings in the design. Mouse
D
over the blocks in the matrix to see information on what type of false paths
exist. It is sometimes easier to digest this information as a graphical matrix
table in comparison to the text output from
.
nc
check_timing –override clock_crossing –verbose.
The left part of the window lists each master clock and any generated clocks
,I
...........................................................................
no
...........................................................................
...........................................................................
ig
...........................................................................
Continue the double clicks until the fanin is exhausted [Example: an input port
has been reached]
e
ut
ib
tr
is
ed
tr
no
o
D
.
nc
,I
ys
stubs
Result of double-clicking input pin
no
stubs
Sy
©
ht
ig
yr
op
...........................................................................
Question 10. Does seeing the schematic give you insight into
the clocking scheme for test?
...........................................................................
e
Explore clock relationships with the abstract clock graph: Close the
ut
schematic window, then, on the TopLevel window, select Clock-> Clock
Graph for All Clocks. If necessary, display a toolbar next to the
ib
schematic by pressing the F8 key. Display various elements by checking the
toolbar and pressing Apply.
tr
Find a pair of muxed clocks: In the Abstract Clock Graph toolbar, select Mux
is
and click Apply.
ed
In the Abstract Clock Graph, find instance I_CLOCK_GEN/U10 of mx02d1.
[Hint: To locate/highlight U10, use Select -> By Name]
tr
Question 11. What clocks drive I_CLOCK_GEN/U10?
no
...........................................................................
o
From the clock graph window, ‘zoom into’ an interesting object by displaying
D
a schematic for it: Select I_CLOCK_GEN/U10, then Schematic
Schematic View. .
Question 12. What port drives the select line to
nc
I_CLOCK_GEN/U10?
,I
...........................................................................
ys
...........................................................................
©
Close the Clock Analyzer window by clicking on the small “X” in its upper right
corner.
ht
Close the Clock Schematic and Clock Analyzer windows by clicking on the
ig
e
Propagate all the clocks to have the clock network delays calculated by
ut
Primetime before examining paths, by executing these commands in the
shell, which remains open behind the GUI (this will take a minute or so to
ib
complete). Tell PrimeTime to save the arrival times for all pins (this is what
tr
you will examine). Then, define a collection of timing paths to examine.
is
set_propagated_clock [all_clocks]
ed
set timing_save_pin_arrival_and_slack true
tr
update_timing
set my_paths [get_timing_paths –max 10 -group
no
SYS_CLK
-path full_clock_expanded]
o
D
Enter your collection of violating paths from the pull-down menu
Timing Path Analyzer.
.
nc
Enter your collection of timing paths and click
Apply
,I
ys
ps
no
Sy
Right mouse
ht
e
ut
ib
tr
is
ed
tr
1: Select
the set of
no
paths with
the worst
slack by
o
left
D
clicking the
leftmost
bar.
.
nc
,I
ys
ps
no
2: Select the
Sy
worst path,
then click on
©
“Inspector”
ht
ig
yr
op
C
e
ut
ib
tr
is
ed
tr
no
o
D
.
nc
,I
ys
CRP?
...........................................................................
no
...........................................................................
©
ht
ig
yr
op
C
e
ut
ib
tr
is
ed
tr
no
In the schematic window, find the CRP (clock reconvergent pessimism) point.
This is the last pin before the launch and capture paths diverge.
o
Note: Mouse “gestures” or “strokes” are available for easier
D
zooming: While pressing the middle mouse button drag the
cursor vertically for ‘zoom full’; Drag diagonally up across
.
an object to zoom in, and down across an object to zoom
nc
out.
,I
To see arrival times on this pin, if necessary, you may have to first ‘expand’
the pin’s buffer. (PrimeTime may ‘collapse’ buffer trees into a single buffer).
ys
ps
no
Sy
©
ht
ig
yr
op
C
View the arrival times (and any other attributes of interest) by selecting the
output pin of the buffer just before the register, then by selecting
View->Property [and by changing the list from being the default “Basic” to the
“Application”]
e
Question 16. How wide is the arrival window for thee buffer
ut
output pin?
ib
...........................................................................
tr
is
Question 17. Does this match what we saw earlier in the data
arrival data required section of the path
ed
inspector?
tr
...........................................................................
no
Examine the path waveform: Click on the Waveform tab at the bottom of the
Path Inspector window.
Question 18. What can you add to the wavforms by clicking
o
the right mouse button in the waveform
D
window?
.
...........................................................................
nc
Close the GUI while keeping the original pt_shell session going in the
,I
terminal window:
ys
Or
no
Exit PrimeTime.
©
ht
ig
yr
op
C
e
Determine the number and type of timing violations in ORCA:
ut
report_analysis_coverage
ib
tr
Question 19. How many, and what kind of violations does
ORCA have?
is
ed
...........................................................................
tr
Generate a “short” timing report for the worst slack for an out_setup timing
check.
no
Question 20. How will you identify the endpoint port which
has the worst slack for out_setup (use the job
aid labeled “Timing Reports” for help recalling
o
the two appropriate switches)?
D
...........................................................................
.
nc
Question 21. Which clocks (launch and capture) are involved
in this violation?
,I
...........................................................................
ys
Look at the data required time section of the timing report from the last step
and notice that no clock latency is reported.
Confirm this with the following command:
©
ht
...........................................................................
e
ut
There is a variable that can be used to make all clocks propagated. Use the
Tcl procedure aa to help you identify the appropriate variable:
ib
aa propagate
tr
is
Question 23. What is the name of this variable?
ed
...........................................................................
tr
Question 24. Using a man page, explain what this variable
no
will do?
...........................................................................
o
D
Use the man page for check_timing to find the name of the additional
check that will flag all ideal clocks.
.
The following command opens the man page in a pop-up window with a scroll
nc
bar that simplifies viewing long reports.
,I
The alias vman will not work if the “wish” executable, the main
Sy
...........................................................................
ig
Quit PrimeTime.
yr
op
C
e
Adds to the default checks performed by check_timing the check that
ut
will flag ideal clocks.
ib
All created clocks will be created as propagated clocks.
Execute the run script ./RUN.tcl from the lab4_clocks Unix directory
tr
is
Log the results to the log file run.log.
ed
unix> pt_shell –f ./RUN.tcl | tee –i run.log
tr
Invoke PrimeTime and restore the newly saved session in the Unix directory
no
./orca _savesession
Use the appropriate commands to confirm the information below:
o
The out_setup violations have been reduced.
All clocks are propagated.
D
.
Execute check_timing to confirm it is performing its default checks in
nc
addition to the check for ideal clocks.
,I
Quit PrimeTime.
Sy
Answers / Solutions
Question 1. How many clocks are in this design and how many of these
are generated?
e
ut
This information can be gathered from report_clock, or
using the following commands.
ib
tr
pt_shell> sizeof_collection [all_clocks]
is
6
ed
pt_shell> sizeof_collection [get_generated_clocks *]
3
tr
no
Question 2. Which input ports have defined, master clocks?
o
pt_shell> rpt_clock_ports
D
Port Name Direction Clock Name Is Generated
-------------------------------------------------------
.
nc
pclk in PCI_CLK false
sys_clk in SYS_CLK false
,I
propagated.
ht
ig
yr
op
C
e
Information: There are 4 clocks having domains interacting.
ut
* all paths are false paths
ib
# part of paths are false paths
tr
is
From Clock Crossing Clocks
------------------------------------------------------------
ed
PCI_CLK SYS_CLK*
SDRAM_CLK SD_DDR_CLK#, SYS_CLK*
tr
SYS_2x_CLK SDRAM_CLK*, SYS_CLK
SYS_CLK PCI_CLK*, SDRAM_CLK*, SYS_2x_CLK
no
Question 6. What is the master clock for SYS_2x_CLK?
o
D
SYS_CLK
Question 7. SYS_2x_CLK is defined on which pin/port (its “source”)?
.
nc
sys_clk
no
test_mode
©
Question 10. Does seeing the schematic give you insight into the
clocking scheme for test?
ht
ig
Yes – two clocks come into the mux: one from the clock
generator, one directly from the port. The test_mode
yr
power_save
e
Question 13. From the abstract clock graph window, is it possible to
ut
display the same clock schematic you displayed in the
clock analyzer?
ib
Yes. Select the clock SYS_2x_CLK (you may have to
tr
zoom in to select just the clock), then press right mouse
is
button and select Path Schematic for Selected
Paths. You may have to expand input or output stubs (by
ed
double clicking on them) to get the exact same schematic.
tr
Question 14. What percent of the capture delay comes from CRP?
4.18%
no
Question 15. Is this percent representative of all designs?
No, this number is dependent on the particular design and
o
on the particular path.
Question 16.
D
How wide is the arrival window for the buffer output pin?
.
It is 2.86939 minus 2.40107, or about .468.
nc
Question 17. Does this match what we saw earlier in the data arrival data
,I
Question 18. What can you add to the waveforms by clicking the right
ps
Question 19. How many, and what kind of violations does ORCA have?
Sy
out_setup violations.
Question 20. How will you identify the endpoint port which has the worst
ht
OR
pt_shell> page_on
op
e
ut
ib
tr
is
ed
tr
Question 21. Which clocks (launch and capture) are involved in this
no
violation?
o
D
Startpoint: sdr_clk (clock source 'SDRAM_CLK')
Endpoint: sd_DQ[6] (output port clocked by SD_DDR_CLK)
Path Group: SD_DDR_CLK
.
nc
Path Type: max
Min Clock Paths Derating Factor : 0.90
,I
------------------------------------------------------------
slack (VIOLATED) -3.66
yr
------------------------------------------------------------
slack (VIOLATED) -3.66
op
Question 22. Why has PrimeTime not calculated source latency for the
C
pt_shell> aa propagate
********* Commands **********
e
ut
remove_propagated_clock # Remove a propagated clock
specification
ib
set_propagated_clock # Specify propagated clock latency
tr
********* Variables **********
is
case_analysis_propagate_through_icg = "false"
ed
timing_all_clocks_propagated = "false"
tr
timing_clock_gating_propagate_enable = "false"
timing_propagate_interclock_uncertainty = "false"
no
timing_propagate_through_non_latch_d_pin_arcs = "false"
o
Question 24. Using a man page, explain what this variable will do?
D
All clocks created after this variable is set to true will be
.
created as propagated clocks.
nc
e
# All clocks should be propagated
ut
pt_shell> report_clock
ib
# The command check_timing does not flag ideal clocks
tr
pt_shell> check_timing
Information: Checking 'no_clock'.
is
Information: Checking 'no_input_delay'.
ed
Information: Checking 'partial_input_delay'.
Information: Checking 'ideal_clocks'.
tr
. . .
# The source latency is being calculated for SD_DDR_CLK
no
pt_shell> report_clock –skew SD_DDR_CLK
o
SD_DQ[3]
D
pt_shell> report_timing -to sd_DQ[3] -path short
.
nc
--------------------------------------------------------
clock SDRAM_CLK (fall edge) 3.7500 3.7500
Sy
e
ut
5
ib
Additional
tr
is
Constraints
ed
tr
no
o
Learning Objectives
D
.
nc
After completing this lab, you should be able to:
Apply user specified annotated delays to explore time
,I
Lab Duration:
30 minutes
Overview
e
ut
Messages.
ib
tr
is
Explore time borrow with
latches.
ed
tr
no
Relevant Files and Directories
o
D
All files for this lab are located in the lab11_specific directory under your home
directory.
.
nc
lab5_additional/ Current working directory
orca_savesession/ Saved session for ORCA
,I
Instructions
e
ut
Invoke PrimeTime from the lab5_additional Unix directory.
Restore the session saved under ./orca_savesession.
ib
Shown below is the full message regarding a non-unate path on the clock
tr
network.
is
In the next step, you will be asked to generate a timing report through this
ed
pin. In order to copy and paste and avoid typos – either find this message in
the log file from another terminal window or use the Unix command grep
tr
from within PrimeTime as shown below.
no
# From ./logs/run.log
Information: A non-unate path in clock network detected.
o
Propagating both inverting and noninverting senses of clock
D
'SDRAM_CLK' from pin
'I_ORCA_TOP/I_SDRAM_IF/sd_mux_dq_out_0/Z'. (PTE-070)
.
nc
,I
Generate a timing report for setup through the above pin and answer the
no
following questions.
The following alias has been created in the PrimeTime setup file
Sy
Question 1. Which lines in the timing report did you use to validate it is for
setup and the timing path start point is the source for the
yr
clock SDRAM_CLK?
op
...............................................................................................
C
Question 2. How does this timing report confirm that the pin in the
warning above is on a data path (i.e. a clock source being
used and constrained as a data path) and not on a clock
path?
e
...............................................................................................
ut
Question 3. Which sense is propagated through the above pin (i.e.
ib
positive unate or negative unate)? Look for a small arrow in
the timing report which will locate the specific pin of interest.
tr
is
...............................................................................................
ed
Generate at least one additional timing report to show the use of a negative
unate timing arc through the pin of interest.
tr
Question 4. Which lines in the timing report did you use to validate it is for
setup, the timing path start point is the source for the clock
no
SDRAM_CLK and that the timing arc is negative unate for
the pin of interest?
o
D
...............................................................................................
...............................................................................................
,I
ys
pt_shell> !! –clock_pin
yr
Question 6. What is the name of the clock pin for this latch?
C
...............................................................................................
...............................................................................................
Generate a timing report starting at the latch for setup time (be specific by
using the clock pin as the start point and not just the cell name!).
This lab will refer to this timing report as “path segment #2”.
The function of this latch in the ORCA design is to generate a clock gating
e
signal to turn on and off the clock SYS_CLK.
ut
Question 8. Describe how you know this latch is not experiencing time
borrow from the previous stage?
ib
tr
...............................................................................................
is
Generate a timing report for the previous stage (this lab will refer to this
ed
timing report as “path segment #1”).
Use the D input pin of the latch as the end point of this timing path.
tr
Question 9. How much more time can path segment #1 take before it
no
would start borrowing time from path segment #2?
...............................................................................................
o
Force path segment #1 to borrow time from path segment #2 by annotating a
net delay of 4ns as shown below:
D
.
nc
# Use cut and paste to avoid typos on the pin name
pt_shell> set_annotated_delay -net 4 \
,I
-to
ys
I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/D
ps
Generate the timing report for path segment #1 again (take advantage of the
up and down arrows to scroll through the history event list).
no
Question 10. How much time is path segment #1 borrowing from path
Sy
segment #2?
...............................................................................................
©
...............................................................................................
ig
yr
op
C
e
ut
pt_shell> report_timing -from \
ib
tr
I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/D
is
ed
Question 12. Does the time given to path segment #1 now match your
expectations?
tr
...............................................................................................
no
Change the latch behavior for transparency; that is, make it transparent when
data arrives between the opening and closing edges of the clock.
o
D
set_app_var timing_enable_through_paths true
.
Repeat your timing report to the latch D pin. Notice that, even though the
nc
latch is transparent, you can still specify the D pin as an endpoint.
,I
report_timing -to \
ys
"I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/D"
ps
. ..............................................................................................
Sy
report_timing -from \
©
I_ORCA_TOP/I_PARSER/blender_clk_en_reg/CP
ht
...............................................................................................
yr
Question 15. What are the transparency open and close edges?.
op
...............................................................................................
C
...............................................................................................
...............................................................................................
e
ut
...............................................................................................
ib
Quit PrimeTime.
tr
is
This completes Lab 5. Return to lecture.
ed
tr
no
o
D
.
nc
,I
ys
ps
no
Sy
©
ht
ig
yr
op
C
Answers / Solutions
Question 1. Which lines in the timing report did you use to validate it is
for setup and the timing path start point is the source for the
e
clock SDRAM_CLK?
ut
pt_shell> report_timing –through I_ORCA_TOP/I_SDRAM_IF/sd_mux_dq_out_0/Z
ib
Startpoint: sdr_clk (clock source 'SDRAM_CLK')
tr
Endpoint: sd_DQ[0] (output port clocked by SD_DDR_CLK)
Path Group: SD_DDR_CLK
is
Path Type: max
ed
Question 2. How does this timing report confirm that the pin in the
tr
warning above is on a data path (i.e. a clock source being
used and constrained as a data path) and not on a clock
no
path?
o
pin is on a clock path. Because a timing report was
D
generated, this pin is on a data path.
.
nc
interest.
ps
Question 4. Which lines in the timing report did you use to validate it is
for setup, the timing path start point is the source for the
clock SDRAM_CLK and that the timing arc is negative unate
for the pin of interest?
e
pt_shell> pt_shell> report_timing \
ut
-rise_through I_ORCA_TOP/I_SDRAM_IF/sd_mux_dq_out_0/Z
Startpoint: sdr_clk (clock source 'SDRAM_CLK')
ib
Endpoint: sd_DQ[0] (output port clocked by SD_DDR_CLK)
Path Group: SD_DDR_CLK
tr
Path Type: max
is
…
ed
I_ORCA_TOP/I_SDRAM_IF/buffd7G5B2I36/Z (buffd7) 0.1634 & 7.1373 f
tr
I_ORCA_TOP/I_SDRAM_IF/sd_mux_dq_out_0/Z (mx02d4) <- 0.4928 & 7.6301 r
no
Question 5. Explain why this message can be ignored for these timing
paths?
o
D
The message indicates that both senses of the clock will be
used when propagating the clock through this mux – this is
the default behavior. However, because the clock is being
.
nc
used as data, PrimeTime actually propagates both senses
(both positive and negative unate), even in older versions of
,I
Question 6. What is the name of the clock pin for this latch?
no
{"I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/EN"}
©
ht
ig
yr
op
C
e
"I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/SC",
ut
"I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/SD"}
ib
tr
# For step 2, generate a timing report for path segment 2
is
pt_shell> report_timing -from
I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/EN
ed
tr
no
Question 8. Describe how you know this latch is not experiencing time
borrow from the previous stage?
o
If this latch were experiencing time borrow, there would be
D
a line in the report stating the amount of time given to the
start point (i.e. to the previous stage). This line is not
present in this timing report.
.
nc
I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/D
ps
Question 9. How much more time can path segment #1 take before it
no
Question 10. How much time is path segment #1 borrowing from path
ig
segment #2?
yr
timing report.
C
e
ut
Question 12. Does the time given to path segment #1 match your
expectations?
ib
Yes – the time given to start point in the timing report for
tr
path segment #2 will match the time borrowed in the timing
is
report for path segment #1.
ed
pt_shell> report_timing -from I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/D
pt_shell> report_timing -to I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/D
tr
no
Question 13. What is the startpoint?
I_ORCA_TOP/I_PARSER/blender_clk_en_reg/CP
o
D
Question 14. What is the path endpoint?
.
I_ORCA_TOP/I_BLENDER/U794/A (a gating check)
nc
Question 15. What are the transparency open and close edges?
,I
no
©
yes
ig
e
Path Group: **clock_gating_default**
ut
Path Type: max
Min Clock Paths Derating Factor : 0.9000
ib
Point Incr Path
tr
------------------------------------------------------------------------
clock SYS_CLK (rise edge) 0.0000 0.0000
is
clock network delay (propagated) 2.7139 2.7139
ed
I_ORCA_TOP/I_PARSER/blender_clk_en_reg/CP (sdcrb1) 0.0000 2.7139 r
I_ORCA_TOP/I_PARSER/blender_clk_en_reg/Q (sdcrb1) 0.4621 & 3.1759 r
I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/D (slnlq1) 4.0000 * 7.1759 r
tr
------------------------------------------------------------------------
transparency window #1
no
clock SYS_CLK (fall edge) 4.0000
clock latency 2.3250 6.3250
o
clock reconvergence pessimism 0.3203 6.6454
D
transparency open edge 6.6454
------------------------------------------------------------------------
data required time 9.6585
ig
e
ut
7
ib
Path-Based Analysis
tr
is
ed
tr
no
o
Learning Objectives
D
.
nc
After completing this lab, you should be able to:
Improve PrimeTime accuracy using
,I
Exhaustive PBA
ps
no
Sy
©
ht
ig
yr
op
C
Lab Duration:
30 minutes
Introduction
e
ut
ib
Perform interactive PBA on
tr
collection
is
ed
Perform Exhaustive PBA
tr
no
o
D
Relevant Files and Directories
All files for this lab are located in the lab7_pba directory under your home
.
nc
directory.
Instructions
e
ut
In this task, we will report the worst violating slacks calculated during
worst_slew propagation for the design.
ib
tr
Change into the working directory for this lab:
is
unix% cd lab7_pba
ed
tr
Bring up PrimeTime and restore a saved session called
orca_savesession.
no
unix% pt_shell
o
pt_shell> restore_session orca_savesession/
Note:
D
The orca_savesession can be recreated, if needed,
.
using: pt_shell -f RUN.tcl | tee -i run.log
nc
Identify the number of setup violations and identify the worst violating path to
an endpoint.
ps
-status violated
Sy
Question 2. Identify the size of the worst violating slack and the
ht
.................................................................................
yr
op
C
e
Determine the worst setup slack violation using PBA mode path
ut
ib
pt_shell> report_timing –to
I_ORCA_TOP/I_BLENDER/s4_op2_reg[31]/D –pba_mode path
tr
OR
is
pt_shell> set path [get_timing_path –to
ed
I_ORCA_TOP/I_BLENDER/s4_op2_reg[31]/D –pba_mode
path]
tr
pt_shell> report_timing $path
no
o
Question 3. How does report_timing indicate that the path
D
is recalculated?.
.................................................................................
nc
.................................................................................
ps
.................................................................................
Identify the top ten setup violations and the violating endpoints for the clock
e
group “SYS_CLK” design.
ut
ib
pt_shell> redirect –tee GBA.rpt { report_timing \
-path summary -group SYS_CLK -max_paths 10 -nosplit}
tr
is
Next, run the exhaustive PBA on the setup violation reported for the design
ed
and generate a summary report :
tr
pt_shell> redirect –tee PBA.rpt { report_timing \
no
-path summary -group SYS_CLK \
-max_paths 10 -nosplit -pba_mode exhaustive }
o
D
Compare GBA.rpt to PBA.rpt and check :
Question 6. How many violating paths are returned by GBA and
.
by PBA?
nc
.................................................................................
,I
ys
name?
ig
.................................................................................
yr
.................................................................................
C
e
ut
redirect -tee GBAsummary.rpt {
ib
report_global_timing
tr
report_qor
is
report_constraint -all_violators
ed
}
tr
no
redirect -tee PBApath.rpt {
report_global_timing - pba_mode path
o
report_qor -pba_mode path
path D
report_constraint -all_violators - pba_mode
.
nc
}
,I
ys
}
©
ht
Answers / Solutions
e
ut
Question 2. Identify the size of the worst violating slack and the
endpoint to which it is reported?
ib
tr
Slack to endpoint
I_ORCA_TOP/I_BLENDER/s4_op2_reg[31]/D: -0.7737
is
ed
Question 3. How does report_timing indicate that the path is
recalculated?
tr
The Path Type is followed by ‘recalculated’. See the
following example:
no
o
D
pt_shell> report_timing -to I_ORCA_TOP/I_BLENDER/s4_op2_reg[31]/D
-pba_mode path
.
****************************************
nc
Report : timing
,I
-path_type full
ys
-delay_type max
ps
-max_paths 1
-pba_mode path
no
****************************************
Sy
Startpoint: I_ORCA_TOP/I_BLENDER/s3_op2_reg[18]
©
Endpoint: I_ORCA_TOP/I_BLENDER/s4_op2_reg[31]
ig
SYS_CLK)
op
Question 5. Did the PBA slack improve or become worse than the GBA
e
slack or was there no change to the slack number? Are the
ut
results as expected?
ib
The slack improved as expected.
(Remember that when a path is recalculated, the slack can
tr
only remain the same or improve.)
is
ed
Question 6. How many violating paths are returned by GBA and by
PBA?
tr
By GBA : 9 violating paths
no
By PBA: 8 violating paths
o
D
Question 7. What is the value of worst violation before and after
exhaustive PBA; what is the associated timing path
endpoint name?
.
nc
With PBA :
,I
I_ORCA_TOP/I_BLENDER/s4_op2_reg[31]/D
-0.7737
ys
With PBA:
ps
I_ORCA_TOP/I_BLENDER/s4_op2_reg[31]/D
-0.7711
no