Commands
Commands
GETTING STARTED
1. pt_shell -gui
For the graphical user interface (GUI), enter this command
2. list_licenses
To view the number of licenses currently checked out, use the list_licenses
command
4. man command_variable_or_message_name
To display the man page of a command, variable, or message.
5. printvar tcl_version
tcl_version = "8.6"
To see the Tcl/Tk version used by your version of the PrimeTime tool.
6. Pass the name of the script you want to check to the check_script
command. Pass the name of the script you want to debug to the
debug_script command.
8. set_app_var sh_message_limit 50
printvar sh_limited_messages
To specify a limit on messages generated by the read_parasitics, read_sdf,
report_annotated_parasitics -check, and update_timing commands, set the
sh_message_limit variable.
9. To specify the general limit that applies to all message types, set the
sh_global_per_message_limit variable. The default is 10,000 of each type
in the PrimeTime session.
set_app_var sh_global_per_message_limit 800
11. get_message_info -id PTE-064: To query the message format and save
limit, use the get_message_info command.
13. save_session
Before ending a PrimeTime working session, you might want to save the
data of the current session. If you need to examine the analysis results later,
save the session by using the save_session command.
14. restore_session
To later restore the session, use the restore_session command, which
takes you to the same point in the analysis.
15. exit
To exit a PrimeTime session, enter the quit or exit command at the pt_shell
prompt
CHAPTER 3
LICENSING
2. The maximum number of CPU cores used per process is four. The -max_cores
option of the set_host_options command allows you to specify this limit
set_host_options -max_cores 32
12. set_host_options: Define the compute resources that you want to use for the
timing update and reporting.
13. report_host_usage: Verify the host options. The report displays the host
options specified, status of the distributed processes, number of CPU cores
each process uses, and licenses used by the distributed host.
14. remove_host_options: Removes all distributed hosts added to the farm's pool
or to remove host options and terminate their associated processes
15. start_hosts: Request compute resources and bring the hosts online
16. current_session -all: You can restore the command focus to all scenarios in
the session
27. report_min_pulse_width
2. get_clocks: clock
3. get_designs: Design
4. get_libs: Library
10. get_pins: Pin of a lower-level cell in the design; can be input, output, or
inout (bidirectional)
11. get_ports: Port of the current design; can be input, output, or inout
(bidirectional)
14. current_design: The top level of the current design; most objects are
referenced relative to the current design
17. get_attribute: Retrieves the value of any attribute from a single object
18. list_attributes: Shows the attributes defined for each object class or a
specified object class; optionally shows application attributes
10. reset_design: Removes drive data and all user-specified data, such as
clocks, input and output delay.
11. set_drive 0.0: Removes drive resistance
13. set_load: To accurately time a design, you need to describe the external
load capacitance of nets connected to top-level ports, including the pin
and wire capacitances.
16. set_max_transition: sets a maximum limit on the transition time for all
specified pins, ports, designs, or clocks.
19. report_design: To see the default capacitance settings for the current
design
22. set_max_fanout: sets a maximum fanout load for specified output ports
or designs.
25. report_clock: Reports the clocks defined for the design, showing for
each clock the name, period, rise and fall times, and timing characteristics
such as latency and uncertainty.
26. report_design: Lists the attributes of the design, including the chosen
operating conditions, wire load information, design rules, and derating
factors.
29. report_lib: Reports a specified library showing the time units of the
library, capacitance units, wire load information, defined operating
conditions, logic trip-point thresholds, and names of library cells.
32. report_port: Lists the ports and shows port information such as the
direction, pin capacitance, wire capacitance, input delay, output delay,
related clock, design rules, and wire load information.
35. report_transitive_fanout: Reports the logic that fans out from specified
pins, ports, or net
36. report_net: Lists the nets and shows net information such as the fanin,
fanout, capacitance, wire resistance, number of pins, net attributes, and
connections.
38. set_fanout_load: specifies the expected fanout load for output ports in
the current design.
41. report_wire_load command: To see wire load model settings for the
current design or instance.
6. set_clock_latency: sets the latency for one or more clocks, ports, or pins.
16. report_constraint: Library cell pins might have a minimum pulse width
limit
19. report_constraint: checks minimum pulse width for register clock pins
and for clock networks.
34. master_pin: option corresponds to the reference clock input pin of the
PLL.
35. feedback_pin: option corresponds to the feedback input pin of the PLL.
36. output_pin: option corresponds to the output pin from which the feedback
path starts. The output_pin option can be different from the pin in the
source_objects option if the source pin's phase correction is determined by
another clock output pin of the PLL.
12. set_max_delay and set_min_delay: Overrides the default setup and hold
constraints with specific maximum and minimum time values.
16. If all paths through a pin are false, using set_disable_timing [get_pins
pin_name] is more efficient than using set_false_path -through
[get_pins pin_name].
23. To report the unconstrained reasons, you can use the report_timing
command with the three options:
pt_shell> report_timing -exceptions dominant
pt_shell> report_timing -exceptions overridden
pt_shell> report_timing -exceptions all
CHAPTER 9 & 10
OPERATING CONDITIONS & DELAY CALCULATION
17. report_mode: To report cell and design modes that have been defined or
set, run the report_mode command.
5. You also need to provide tables of derating factors that apply to different
ranges of path depths and physical path distances. You read these tables
into PrimeTime with the read_ocvm command.
6. After you enable AOCV analysis and read in the derating tables, you
perform timing analysis in the usual manner using update_timing or
report_timing.
7. If the violations still remain in GBA then we can reduce pessimism and
improve the accuracy of results by invoking PBA which analyzes each
path in isolation from other paths.
pt_shell> report_timing -pba_mode path
17. If you specify a timing path in the object_list, path metrics (distance,
launch depth, and capture depth) for that path are displayed.
pt_shell> report_aocvm [get_timing_paths -path_type
full_clock_expanded \ -pba_mode path]
18. You can use regular expression matching for the patterns value of the
object_spec definition. It is the same as the regexp Tcl command that you
can use for design object gathering commands, such as the get_cells,
get_lib_cells, and get_designs commands in PrimeTime.
19. To enable separate derating for clock paths and data paths, the
timing_aocvm_analysis_mode variable must be set to the
separate_data_and_clock_metrics mode.
37. To enable variation for setup and hold constraints, set the
timing_enable_constraint_variation variable to true.
38. To enable slew variation for cell delays, set the
timing_enable_slew_variation variable to true.
39. To report the constraint and slew variation, use the report_timing -
variation or report_ocvm command.
40. To read the coordinates of nodes of nets, pins, and ports from a Standard
Parasitic Exchange Format (SPEF) or Synopsys Binary Parasitic Format
(SBPF) file,
Set this variable:
set_app_var read_parasitics_load_locations true
Read the parasitic data: read_parasitics
45. To report only the guard band derating factors, use the
report_timing_derate -pocvm_guardband command. To reset guard
band derating factors, use the reset_timing_derate -pocvm_guardband
command.
46. To report all cells missing POCV coefficient and distance-based derating
data, use this command:
report_ocvm -type pocvm -cell_delay -list_not_annotated
47. To report all cells only missing POCV coefficient data (when you did not
apply distance based derating table in POCV analysis), use this command:
report_ocvm -type pocvm -cell_delay \ -list_not_annotated -
coefficient
CHAPTER 14 & 15
MULTIVOLTAGE DESIGN FLOW &
SMVA GRAPH-BASED SIMULTANEOUS MULTIVOLTAGE
ANALYSIS
1. report_power_domain
2. report_power_network
3. report_power_pin_info
4. report_power_switch
5. report_supply_net
7. get_power_domains
8. get_power_switches
9. get_supply_nets
10. get_supply_ports
11. get_supply_sets
3. report_si_bottleneck
report_delay_calculation -crosstalk -from pin -to pin
17. check_noise: To verify that all pins are constrained for noise analysis.
-include: specifies which types of noise model checking to perform
-verbose: get a detailed list of pins that lack constraints.
-nosplit: prevents the splitting of long lines in the report
19. report_noise: Reports noise effects, including the width, height, and slack of
worst-case noise bumps
29. report_noise: Reports noise effects, including the width, height, and slack of
worst-case noise bumps.
35. report_noise -verbose -above -low: To get a more detailed report showing
separately the noise contribution of different aggressor nets and noise
propagation, use the -verbose option.
36. report_noise -data_pins: To restrict the scope of the report to just the data
pins, clock pins, or asynchronous pins of all registers, use the option -
data_pins, -clock_pins, or -async_pins.
37. report_noise -above -low: To restrict the scope of the report to certain types
of noise bumps, use -above or -below and -high or -low.
38. report_noise -above -low -nworst_pins 4: To report multiple pins having the
worst noise slack, use the -nworst option.
40. report_timing -through pin_name: To find the critical path that determines
the transitive slack at a specified pin, use this command.
CHAPTER 18
CONSTRAINT CONSISTENCY
35. report_timing -from A1 -through B1 -through C1 \ -to D1: You can use
multiple -through options in a single command to specify paths that traverse
multiple points.
36. report_timing -from A1 -through {B1 B2} \ -through {C1 C2} -to D1: This
means any path that starts at A1, passes through B1 and C1 in that order, and
ends at D1.
37. report_timing -from A1 -through {B1 C1} -to D1: This means any path that
starts at A1, passes through either B1 or B2, then passes through either C1 or
C2, and ends at D1. This means any path that starts at A1, passes through B1
or C1, and ends at D1.
38. To report only the paths that have a specific type of startpoint and endpoint:
report_timing
-start_end_type reg_to_reg; Only paths from register to register
-start_end_type reg_to_out; Only paths from register to output port
-start_end_type in_to_reg; Only paths from input port to register
-start_end_type in_to_out; Only paths from input port to output port
16. report_qor
To report the quality of results (QoR). This report provides an overview of
the timing of your design with the following information
• Length of the worst paths
• Total negative slack (TNS)
• Minimum delay and hold
• Detailed design rule constraints summary
1. % pt_shell -gui
To start a PrimeTime session and open the GUI, enter the following
command.
2. gui_start: To open the GUI during a PrimeTime session, enter the gui_start
command at the pt_shell prompt.
4. The fix_eco_drc command shows the remaining violations and the number
of unfixable violations. To generate a report on the reasons for the
unfixable violations, use the -verbose option i.e., fix_eco_drc -verbose
6. The fix_eco_drc -type delta_delay command chooses the nets to fix based
on SI bottleneck analysis. To preview the nets targeted for fixing, run the
report_si_bottleneck command first. For example, pt_shell>
report_si_bottleneck -cost_type delta_delay \ -min -max -
slack_lesser_than 0.0 -all_nets
7. The fix_eco_drc command can target the cell-internal electromigration
DRC violations that are reported by the report_cell_em_violation
command.
8. The cell_em fixing type supports only a single iteration. To fix additional
violations, run the update_power command, then rerun the fix_eco_drc -
type cell_em command again.
10. To fix setup violations use the command fix_eco_timing -type setup
11. To fix hold violations use the command fix_eco_timing -type hold
12. This command fixes hold violations throughout the design using both cell
sizing and buffer insertion, and using exhaustive path-based analysis for
reduced timing pessimism:
pt_shell> fix_eco_timing -type hold -pba_mode exhaustive \ -
buffer_list {BUFX2 DLY1X2 DLY2X2}
13. The fix_eco_power command tries to recover power and area as much as
possible by downsizing cells in paths with positive setup slack or by
removing buffers from paths with positive hold slack, without introducing
or worsening timing and DRC violations.
14. This command recovers leakage power by swapping out cells with higher
leakage and replacing them with cells that have lower leakage, using the
library cell name prefixes to determine which cells are preferred.
pt_shell> fix_eco_power -pattern_priority {HVT MVT LVT}
15. This command recovers area and power by downsizing cells and analyzing
the timing effects using path-based analysis.
pt_shell> fix_eco_power -pba_mode path
16. This command recovers leakage power by replacing low-threshold-voltage
cells with high-threshold-voltage cells, based on the library cell name
prefixes “HVT” and “LVT.” pt_shell> fix_eco_power -pattern_priority
{HVT LVT} -pba_mode exhaustive
17. This command removes buffers in paths with positive hold slack.
pt_shell> fix_eco_power -methods {remove_buffer}
18. For a complete list of all variables related to ECO, including the current
and default settings, run this command: pt_shell> report_app_var eco*
20. To globally exclude specific library cells from being used for ECO, set the
dont_use attribute on those library cells by running the set_dont_use
command: set_dont_use lib_cells [true | false]
21. To exclude library cells from ECO use on specific parts of the design, use
the set_target_library_subset command: set_target_library_subset -
objects objects | -top -dont_use lib_cells
27. To enable the reading of parasitics with location data by setting the
read_parasitics_load_locations variable:
pt_shell> set_app_var read_parasitics_load_locations true
28. Specify ECO options and read the physical data by using the
set_eco_options command: set_eco_options
-physical_tech_lib_path tech_LEF_files
-physical_lib_path LEF_files
-physical_design_path DEF_files
-physical_constraint_file physical_constraint_file
-physical_lib_constraint_file spacing_rule_file_list
-filler_cell_names cell_names
-log_file my_log
29. The check_eco command reports issues with the LEF/DEF files, resolve
the issues, and rerun check_eco on the updated LEF/DEF files.
30. Generate the block-level and top-level ECO change list files by using the
write_changes -format icctcl command.
35. report_cell_usage: Report the cells used in the design with the
report_cell_usage command. It is optional.
36. Report the power recovery results by using the PrimePower report_power
command.
pt_shell> set_app_var power_enable_analysis true
pt_shell> report_power -groups {register combinational
sequential}
39. In the PrimeTime tool, read in the incremental netlist changes and
incremental parasitics for the modified design and check to see if it now
meets all timing constraints.
pt_shell> restore_session eco_session1
pt_shell> read_eco_changes ndm_path/design.incr.pt
pt_shell> read_parasitics -eco Block_eco1_inc.gpd
pt_shell> update_timing # incremental update performed by default
pt_shell> save_session eco_session2
pt_shell> report timing ...
... Assess timing to determine whether another ECO is needed ...
... If so, perform the next ECO iteration, then go back to step 1 ...
pt_shell> fix_eco_timing ...
pt_shell> fix_eco_drc ...
pt_shell> write_changes pt-eco_inc2.tcl
1. report_clock -map: To debug this type of issue, you can use the
report_clock command at the top level.
10. set_port_abstraction: You can also use this command to report the ports
that have been modified and clear previous port abstraction settings.
3. Design Compiler requires that you change the current design used to
specify information locally, such as wire load models:
dc_shell> current_design BOTTOM
dc_shell> set_wire_load_model -name small
dc_shell> current_design MID
dc_shell> set_wire_load_model -name medium
dc_shell> current_design TOP
dc_shell> set_wire_load_model -name large
5. SDC files are read into PrimeTime with the read_sdc command, and they
are written from PrimeTime using the write_sdc command.
6. You can specify path groups in PrimeTime. When you request a path-
timing report, PrimeTime lists a report for each path group. Export this
information to Design Compiler by using the write_script or
write_context command or by budgeting the design.