During synthesis with Design Compiler, set_drive and set_driving_cell model input port drive strength by computing transition time and additional port delay. The set_input_transition command lets you override these computed values with an explicit transition time, directly setting the port’s min_transition_fall, min_transition_rise, max_transition_fall, and max_transition_rise attributes. To clear a forced trnasition, use remove_attribute. This command is available across PrimeTime and IC Compiler with minor variations. Its syntax is:
set_input_transition transition port_list
[-rise] [-fall] [-min] [-max]
Note that the port_list must immediately follow the transition value.
Assigning the Transition Value
Supply a non-negaitve transition whose unit matches the technology library’s time unit. Larger values indicate a weaker drive, while smaller values represent stronger drive.
Targeting Ports
Provide a list or collection of input or bidirectional ports. Wrap multiple objects in quotes or braces when using a list; collections do not require this.
Basic Usage
Consider a circuit where a clock is defined on port clk:
create_clock -period 10 [get_ports clk]
Input delays referenced to that clock are applied to ports d and c:
set_input_delay 0.5 -clock clk [get_ports d]
set_input_delay 0.5 -clock clk [get_ports c]
Assigning a transition to port d:
set_input_transition 0.5 [get_ports d]
Running report_timing with -transition_time on paths from d and c to the flip-flop reveals that d shows a transition of 0.5 (instead of 0), while neither port gains an extra input delay from the drive modeling.
Controlling Edge Sensitivity
Use -rise or -fall to apply the transition only to the corresponding edge. If both are omitted, the value applies to both edges.
set_input_transition -rise 0.6 [get_ports d]
This sets a 0.6 transition for rising edges on port d while the falling edge stays at 0.5. report_port -verbose displays all applied transition values.
Distinguishing Min and Max Analysis
-max associates the transition with maximum delay analysis (typically setup), and -min with minimum delay analysis (typically hold). Without either, the value applies to both.
set_input_transition -max 0.8 [get_ports c]
set_input_transition -min 0.6 [get_ports c]
Now report_timing for setup uses 0.8, while hold uses 0.6 on port c.
Differences from set_clock_transition
Before clock tree synthesis, set_clock_transition provides an estimate applied directly at flip-flop clock pins, ignoring clock-path delay. After clock tree synthesis and set_propagated_clock are in effect, apply set_input_transition on the clock input port so the tool propagates the transition through the real clock network.
Multicorner-Multimode Behavior
The command takes effect only within the active scenario, enabling per-scenario transition specifications.
## Deprecated Options
The `-clock` and `-clock_fall` options are obsolete and should be avoided in new designs.