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# 63684

2014.4 Vivado UltraScale Timing - Min Pulse-width violation on SDR I/O register

Description

I have a min pulse-width violation on an SDR I/O register.

What options do I have to get around this violation?

Solution

The SDR register in the UltraScale and UltraScale+ has a lower Fmax than in previous families.

If you require a higher frequency than is possible in the SDR register then you have the following options to fix this violation:


  1. Convert the BITSLICE flip-flop to the IDDR/ODDR element.

    • If using an input SDR, use an IDDR and only monitor one of the Q outputs. You will need to tell the timing tools not to analysis for both clock edges. Below is an example constraint.
      Note: this will be applied globally to the clock.

set_false_path -setup -rise_from [get_clocks <<clock_name>>] ] -fall_to [get_clocks  <<clock_name>>] ]
set_false_path -setup -fall_from [get_clocks <<clock_name>>] ] -rise_to [get_clocks <<clock_name>>] ]

set_false_path -hold -rise_from [get_clocks <<clock_name>>] ]  -rise_to [get_clocks <<clock_name>>] ]
set_false_path -hold -fall_from [get_clocks <<clock_name>>] ]  -fall_to [get_clocks <<clock_name>>] ]

    • If using an output SDR, use an ODDR and connect the same signal to both D1 and D2. You will need to tell the timing tools that there is a multicycle path for the ODDR inputs:

set_multicycle_path -from [get_clocks <<clock_name>>] -to [get_ports <<output_port>>] 2
set_multicycle_path -from [get_clocks <<clock_name>>] -to [get_ports <<output_port>>] -hold 2


  1. Migrate the register from the BITSLICE site into the SLICE flip-flop (IOB = FALSE).

    • To ensure the register is not placed in the IOB, use the following XDC constraint:
set_property IOB FALSE [get_cells <<inst_name>>]
AR# 63684
Date Created 02/24/2015
Last Updated 07/29/2016
Status Active
Type General Article
Devices
  • Kintex UltraScale
  • Virtex UltraScale