AR# 53805

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

描述

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?

解决方案

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
日期 01/14/2015
状态 Active
Type 综合文章
器件
Tools