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

Vivado Constraints - Why is the defined clock not seen in report_clock result?

Description

I created a clock at a flip-flops Q output with the following create_clock command in XDC.

create_clock -name {clk_cpu_div2} [get_pins {orion_core0/arm_axi_bus/cpu_subsystem/u_cpu_subsystem_without_dap_lite/ucpu_clk_rst_gen/ugen_cpu_rst_clk/clk_div2/Q} ] -period {74.07407407407408} -waveform {0 37.03703703703704}

However, after implementation is completed, When I run "report_clocks", a different clock is returned for this same pin.

gen_cpu_rst_clk|clk_div2_derived_clock                                                  37.03700   {0.00000 18.51900}  P           {orion_core0/arm_axi_bus/cpu_subsystem/u_cpu_subsystem_without_dap_lite/ucpu_clk_rst_gen/ugen_cpu_rst_clk/clk_div2/Q}

What is causing this difference?

Solution

This is caused by a re-definition of the clock on the same pin. 

Check the XDC file to ensure that there are no identical create_clock commands.

In the example generating the above error message, the XDC file contains the following:

Line 15,

create_clock -name {clk_cpu_div2} [get_pins {orion_core0/arm_axi_bus/cpu_subsystem/u_cpu_subsystem_without_dap_lite/ucpu_clk_rst_gen/ugen_cpu_rst_clk/clk_div2/Q} ] -period {74.07407407407408} -waveform {0 37.03703703703704}

 
Line 284,

create_clock  -name {gen_cpu_rst_clk|clk_div2_derived_clock} [get_pins {orion_core0/arm_axi_bus/cpu_subsystem/u_cpu_subsystem_without_dap_lite/ucpu_clk_rst_gen/ugen_cpu_rst_clk/clk_div2/Q}]  -period {  37.037} -waveform {0.000 18.519}

 

These two clocks are both attached to the pin in question, and the second clock definition overrides the first one. 

That is why gen_cpu_rst_clk|clk_div2_derived_clock is listed in the report_clocks result.

 

If you really want to define multiple clocks on the same source for simultaneous analysis with different clock waveforms, use the "create_clock -add" option.

AR# 53805
Date Created 01/15/2013
Last Updated 01/14/2015
Status Active
Type General Article
Devices
  • FPGA Device Families
Tools
  • Vivado Design Suite