Use of set_input_delay Command Options - 2023.2 English

Vivado Design Suite User Guide: Using Constraints (UG903)

Document ID
Release Date
2023.2 English

The following examples present typical uses of the set_input_delay command options. For additional information about input delay constraint methodology, refer to section Constraining Input and Output Ports in the UltraFast Design Methodology Guide for FPGAs and SoCs (UG949).

Input Delay Example One

This example defines an input delay relative to a previously defined sysClk for both min and max analysis.

> create_clock -name sysClk -period 10 [get_ports CLK0]
> set_input_delay -clock sysClk 2 [get_ports DIN]

Input Delay Example Two

This example defines an input delay relative to a previously defined virtual clock.

> create_clock -name clk_port_virt -period 10
> set_input_delay -clock clk_port_virt 2 [get_ports DIN]

Input Delay Example Three

This example defines a different input delay value for min analysis and max analysis relative to sysClk.

> create_clock -name sysClk -period 10 [get_ports CLK0]
> set_input_delay -clock sysClk -max 4 [get_ports DIN]
> set_input_delay -clock sysClk -min 1 [get_ports DIN]

Input Delay Example Four

To constrain pure combinational paths between I/O ports, an input and output delay must be defined on the I/O ports relative to a previously defined virtual clock.

The example below sets a 5 ns (10 ns - 4 ns - 1 ns) constraint on the combinational path between ports DIN and DOUT:

> create_clock -name sysClk -period 10
> set_input_delay -clock sysClk 4 [get_ports DIN]
> set_output_delay -clock sysClk 1 [get_ports DOUT]

Refer to Combinational Delays for further information about constraining combinational paths using the timing constraints Wizard.

Input Delay Example Five

This example specifies input delay value relative to a DDR clock.

> 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

This example creates constraints from data launched by both rising and falling edges of the clk_ddr clock outside the device to the data input of the internal flip-flop that is sensitive to both rising and falling clock edges.

Input Delay Example Six

This example specifies the clock and input delay on the STARTUPE3 internal pins (AMD UltraScale+™ devices) to time the paths from STARTUPE3 to the fabric.

> create_generated_clock -name clk_sck -source [get_pins -hierarchical*axi_quad_spi_0/ext_spi_clk] [get_pins STARTUP/CCLK] -edges {3 5 7}
> set_input_delay -clock clk_sck -max 7 [get_pins STARTUP/DATA_IN[*]] -clock_fall
> set_input_delay -clock clk_sck -min 1 [get_pins STARTUP/DATA_IN[*]] -clock_fall

For more information on timing constraints for STARTUPE3, refer to the AXI Quad SPI LogiCORE IP Product Guide (PG153).