Thursday, January 31, 2008

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 this 
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.
Former article name: Static_Timing-250

Sunday, January 13, 2008

Motivating books

The Monk who sold his Ferrari by RobinSharma
The Alchemist by Paul cauelho