Subject: DC-WG: DCDL cmds for tomorrow
From: Mark Hahn (mhahn@cadence.com)
Date: Mon Aug 28 2000 - 22:58:23 PDT
Attached is a write up prepared by Paul Bonnel on the commands
to be reviewed in tomorrow's DC-WG meeting.
Mark
SLEW_TIME:
See slew_time.pdf.
The slew_time command specifies the time from the logical 0 to the
logical 1.
Clock slew can be specified with this command.
The corresponding SDC command is "set_input_transition" (and
"set_clock_transition"
for clocks). The port transition value is a floating number greater
than or equal to
zero.
The corresponding GCF command is "SLEW".
In BuildGates, "set_slew_time" adds 3 more options:
-clock clock_name
specifies the name of the ideal clock that is associated with the slew
time.
-lead | -trail
specify whether the slew time data signal is trigerred by the leading
edge or the
trailing edge of the ideal clock
-pos | -neg
specify that the slew time should be applied to an actual clock having
a positive
or negative polarity with respect to the ideal clock
There is no command to define the voltage thresholds for measuring the
slew in DCDL 0.3.7.
Here is a proposal:
slew_thresholds
The slew_thresholds command specifies the measurement points that were
used in calculating
the slews (transition times). The measurement points are defined as a
percentage of the
change in voltage from the start of the transition to the end of the
transition.
usage:
slew_thresholds [-rise|-fall] low_high_values
optional keywords:
-rise|-fall
The -rise or -fall keywords indicate whether the slew thresholds
refers to the rising
or falling edges. (default: if neither -rise nor -fall are specified,
both transitions
are implied.)
Positional parameters:
low_high_values
The low_high_values specifies the percentage of the voltage that
corresponds to the
minimum and maximum measurement points for the slew as numbers between
0 and 100.
Examples:
slew_thresholds -fall {10 90}
(slew_thresholds corresponds to VOLTAGE_THRESHOLD in GCF 1.4)
SLEW_LIMIT:
The slew_limit commmand specifies a constraint on edge transition time
as measured at a specified port.
The corresponding SDC command is "set_max_transition".
The corresponding BuildGates commands are "set_slew_time_limit" and
"set_global slew_time_limit"
BORROW_LIMIT:
See borrow_limit.pdf.
The borrow_limit command specifies the maximum amount of time that can
be borrowed by
one cycle from the next cycle when using level-sensitive latches.
Normally, data must arrive at the target latch data input before the
opening edge of
the target clock, thereby ensuring consistency across multiple cycles.
Time borrowing
allows data to arrive at a target latch during the active portion of the
target's clock.
The default limit on time borrowing for a given latch is the active
pulse width of the
clock minus the setup time of the latch (see case 1). The borrow_limit
command can only
be used to specify a smaller limit (see case 2); larger limits are
ignored (see case 3).
The corresponding SDC command is "set_max_time_borrow".
The corresponding GCF command is "BORROW_LIMIT".
Here is an explanation on "How is the slack on the path arriving on the
latch computed?"
You will find several figures for that in borrow_limit.pdf (case 5 and
case 6). I describe here how GCF works.
If there is no borrow_limit specified (case 5) then
- if the signal arrives before the opening edge, the positive slack is
calculated
from this opening edge. (case 5A)
- if the signal arrives after the opening edge and before the "closing
edge minus setup",
the slack is 0. (case 5B)
- if the signal arrives after the "closing edge minus setup"
(equivalent to opening edge
plus maximum_borrow_limit), the slack is negative. (case 5C).
If there is a borrow_limit specification then it is quite the same
calculation except that
the negative slack are calculated from the borrow_limit point. (see case
6A, case 6B and
case 6C)
This archive was generated by hypermail 2b28 : Mon Aug 28 2000 - 23:03:16 PDT