UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 46249

Vivado Constraints - How do I constrain ODDR/IDDR interfaces

Description

How do I constrain my IDDR/ODDR interfaces?

Solution

In the IDDR/ODDR application, you must specify the set_output_delay for the rising edged portion and one for the falling edged portion.

Example of ODDR:

set_output_delay -clock [get_clocks clk_pin_p] -max 1.0 [get_ports {spi_pin}]
set_output_delay -clock [get_clocks clk_pin_p] -max 1.0 [get_ports {spi_pin}] -clock_fall -add_delay
set_output_delay -clock [get_clocks clk_pin_p] -min 0.5 [get_ports {spi_pin}] -add_delay
set_output_delay -clock [get_clocks clk_pin_p] -min 0.5 [get_ports {spi_pin}] -add_delay -clock_fall

Example of IDDR:

set_input_delay -clock [get_clocks clk_pin_p] -max 1.0 [get_ports {spi_pin}]
set_input_delay -clock [get_clocks clk_pin_p] -max 1.0 [get_ports {spi_pin}] -clock_fall -add_delay
set_input_delay -clock [get_clocks clk_pin_p] -min 0.5 [get_ports {spi_pin}] -add_delay
set_input_delay -clock [get_clocks clk_pin_p] -min 0.5 [get_ports {spi_pin}] -add_delay -clock_fall

Then I ran:

report_timing -to [get_ports {spi_pin}] -delay_type max -max_paths 18 -nworst 18
report_timing -from [get_ports {spi_pin}] -delay_type max -max_paths 18 -nworst 18

You will get the rising to rising, rising to falling, falling to falling, and falling to rising paths for the ODDR/IDDR.

AR# 46249
Date Created 01/17/2013
Last Updated 08/07/2013
Status Active
Type Release Notes
Tools
  • Vivado Design Suite