How can I tell if my design is fully constrained for timing analysis in PrimeTime?
Importance of the check_timing Command
Answer:
PrimeTime and Design Compiler provide the check_timing command to perform thisFormer article name: Static_Timing-250
function. In PrimeTime, check_timing provides additional information. This
article is based on the PrimeTime tool's check_timing command.
Paths that are not completely or correctly constrained might not appear in
violation reports. This can cause you to overlook a violating path. It is
recommended that you always run the check_timing command as a basic check of
the constraints. Once the constraints (clock definitions, I/O delays, and
timing exceptions) are well defined, the output of the check_timing command
should be reviewed in detail. After any problems are resolved, the check_timing
command needs to be run only if the constraints change.
Check_timing looks for the following:
? undefined clocking (either multiple clocks or no clock to a register clock pin)
? undefined input arrival times
? undefined output constraints
The check_timing command flags unconstrained paths so that you can correct any
problems by adding constraints such as create_clock, create_generated_clock,
set_input_delay, and set_output_delay).
The check_timing command also provides the following additional information
(some by default, others must be specifically enabled):
. clock source latency override
? combinational feedback loops
. data to data timing checks
. driver signal level matches load signal level
. generated clock networks
? ignored timing exceptions
? latch fanout transparencies
? minimum clock separation (for master-slave clocking)
. paths crossing clock domain boundaries
. unmapped logic
Command usage:
For maximum information, use the following command:
pt_shell> check_timing -verbose
This shows detailed information about potential problems and executes all of
the checks.
If the -verbose switch is not used, all of the default and enabled checks are
executed and a summary of potential problems is listed for each type.
The check_timing command can be used to perform a single check or a set of
checks. The following is a list of valid check_timing switches:
? -verbose
? -ms_min_separation [delta]
? -significant_digits [digits]
. -override_defaults [list of timing checks]
. -include [list of timing checks]
. -exclude [list of timing checks]
For more information, see the man page for check_timing in pt_shell.
Example output of check_timing:
pt_shell> check_timing
Warning: There are 4 register clock pins with no clock.
Warning: There are 10 endpoints which are not constrained for maximum delay.
Warning: There are timing exceptions which are ignored.
Warning: There are max_time_borrow attributes which are ignored.
Warning: There are 6 timing loops in the design.
Warning: There are 2 level-sensitive latches which fanout to themselves.
Information: There are 2 level-sensitive latches which fanout to latches
of the same clock.