AR# 52913


Vivado Timing - How to calculate the output bus skew and disable the package flight times?


In Vivado how can the output skew of a source synchronous interface be calculated such that the skew is relative to the sourced output clock signal?  

Is the output skew reported with package trace flight times enabled or disabled?


Using Vivado 2012.3 and early versions

The source synchronous output skew can be manually calculated using the table Propagation delays to output ports with regard to clocks that is produced when the command report_datasheet is run. 

By default this table provides the time from the input clock package ball to each output signal package ball (flight time included). 

The skew can be calculated by subtracting the delay for the sourced clock output port  from the delay of the each data bit port of the bus (Data Delay - Clock delay).

The only XDC constraints that need to be applied to generate the proper Propagation delays to output ports with regard to clocks table are create_clock for the input clock period and set_output_delay for the bus signals.

For example:

create_clock -name clk -period 5.0 [get_ports <input clock port name>]
set_output_delay -clock clk 0.0 [get_ports *]

The set_output_delay constraint is needed so that clock uncertainty is calculated.  

Vivado does not calculate clock uncertainty for any output if no set_output_delay constraint is provided.

To disable the reporting of flight time within the output port delays enter the following TCL command before running report_datasheet:

set_param sta.disableFlighttime true

Using Vivado 2012.4 and newer versions

The source synchronous output skew can be automatically calculated by Vivado by using the group switch for report_datasheet and grouping together all the ports of the data bus including the sourced clock output port.

It is a requirement that the source clock output port be first in the group list. 

Here is an example:

report_datasheet -file <output file name> -group {{clock_port} {data_bit[0]} {data_bit[10]} {data_bit[2]}}

By default the resulting table has flight times enabled.  

To disable flight times the following Tcl command must be used:

config_timing_analysis -disable_flight_delays true

AR# 52913
Date 03/18/2015
Status Active
Type General Article
People Also Viewed