Set input delay on ports
Syntax
set_input_delay [‑clock <args>] [‑reference_pin <args>] [‑clock_fall]
[‑rise] [‑fall] [‑max] [‑min] [‑add_delay] [‑network_latency_included]
[‑source_latency_included] [‑quiet] [‑verbose] <delay> <objects>
Usage
Name | Description |
---|---|
[-clock]
|
Relative clock |
[-reference_pin]
|
Relative pin or port |
[-clock_fall]
|
Delay is relative to falling edge of clock |
[-rise]
|
Specifies rising delay |
[-fall]
|
Specifies falling delay |
[-max]
|
Specifies maximum delay |
[-min]
|
Specifies minimum delay |
[-add_delay]
|
Don't remove existing input delay |
[-network_latency_included]
|
Specifies network latency of clock already included |
[-source_latency_included]
|
Specifies source latency of clock already included |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
<delay>
|
Delay value |
<objects>
|
List of ports |
Description
Specifies the external system-level path delay on a primary input port relative to a clock edge at the interface of the design. The input delay value is specified in nanoseconds (ns), and can be positive or negative, depending on the clock and data relative phase at the interface of the device.
To accurately model the system-level timing of your Xilinx FPGA design, you must assign timing delays for objects external to the FPGA onto the primary input or output ports in your design. These delays are defined by the set_input_delay
and set_output_delay
commands.
set_max_delay
constraint assigned, the specified input delay value is considered part of the max_delay computation. That is, the input delay consumes a portion of the max delay on the timing path that includes the input port.This command returns nothing if successful, or returns an error if it fails.
Arguments
-clock <arg>
- (Optional) Indicates that the input delay is relative to the specified clock. By default the rising edge is used. However the -clock_fall
argument can be used to indicate that the falling edge should be used instead.
-reference_pin <arg>
- (Optional) Specifies that the delay is relative to the active edge of a clock appearing on the specified pin or port rather than a clock.
-clock_fall
- (Optional) Specifies that the delay is relative to a falling edge of the clock rather than rising edge.
-rise
- (Optional) Specifies the input delay applies to rising transitions on the specified ports. The default is to apply the delay for both rising and falling transitions.
-fall
- (Optional) Specifies the input delay applied to falling transitions on the specified ports. The default is to apply the delay for both rising and falling transitions.
-max
- (Optional) Indicates the input delay specified is only used when calculating the maximum (longest) path delays.
-min
- (Optional) Indicates the input delay specified is only used when calculating the minimum (shortest) path delays.
-add_delay
- (Optional) Add the specified delay constraint to the port, to coexist with any other set_input_delay
constraints already defined on the port. The default behavior is to replace the existing delays.
-network_latency_included
- (Optional) Indicates that the clock network latency of the reference clock is included in the delay value. The Vivado timing engine considers the clock edge reaching the capture flop after the clock latencies unless the specified input or output delay value includes the source latency or network latency.
-source_latency_included
- (Optional) Indicates that the source latency of the relative clock is included in the specified delay value.
-quiet
- (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
-verbose
- (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config
command.<delay> - (Required) The input delay specified as nanoseconds (ns) to apply to the specified ports. Valid values are floating point numbers, with a default value of 0.
<objects>
- (Required) The list of ports to which the delay value will be assigned.
Examples
set_input_delay -clock clk1 3 DIN
set_input_delay -clock_fall -clock clk1 2 DIN
set_input_delay -clock wbClk 2 -reference_pin \
[get_pin wbClk_IBUF_BUFG_inst/O] reset
create_clock -name clk_ddr -period 6 [get_ports DDR_CLK_IN]
set_input_delay -clock clk_ddr -max 2.1 [get_ports DDR_IN]
set_input_delay -clock clk_ddr -max 1.9 [get_ports DDR_IN] -clock_fall -add_delay
set_input_delay -clock clk_ddr -min 0.9 [get_ports DDR_IN]
set_input_delay -clock clk_ddr -min 1.1 [get_ports DDR_IN] -clock_fall -add_delay
-add_delay
option allows the new min and max delay constraints to exist alongside the first delays on the same port.set_input_delay -clock wbClk 1 [all_inputs]
set_input_delay -clock wbClk 4 [list reset wbDataForInput]