AR# 62537

Vivado 制約 - 「Critical Warning:[Constraints 18-852]Found more than one automatically derived clock matching the supplied criteria for renaming」というクリティカル警告メッセージが表示される

説明

Vivado で create_generated_clock 制約に対して次のようなクリティカル警告メッセージが表示されます。

Critical Warning:[Constraints 18-852]Found more than one automatically derived clock matching the supplied criteria for renaming


この問題の解決方法を教えてください。

ソリューション

自動派生クロックの名前を変更する場合、1 つの create_generated_clock に、新しい名前と、名前を変更したい自動派生クロックを 1 つだけ指定します。

構文:
create_generated_clock -name new_name [-source source_pin] [-master_clock master_clk] source_object

オプションとして使用する -source および -master_clockは、名前を変更している自動派生クロックのあるピンに、複数のクロックが伝搬する場合の曖昧さを回避するために、使用します。 

このクリティカル警告メッセージが表示されたときは、合成されたデザインまたはインプリメントされたデザインで report_clocks を実行します。
 
report_clocks の出力からは、-source および -master_clock で自動派生クロックに重複しない名前を付けるのに使用する次の情報が確認できます。
 
1. 名前を変更する自動派生クロックのあるピンに、生成されたクロックがいくつあるか
2. -source で指定するためのマスター ソース
3. -master_clock で指定するためのマスター クロック

:

クリティカル警告が発生する制約
create_clock -period 10.000 -name clk1 [get_ports clk]
create_clock -period 5.000 -name clk2 -add [get_ports clk]
create_generated_clock -name user [get_pins my_mmcm/inst/mmcm_adv_inst/CLKOUT1]

合成されたデザインで report_clocks を実行すると次の内容が返ってきます。

Clock                                      Period        Waveform                 Attributes   Sources
clk1                                        10.00000    {0.00000 5.00000}    P                 {clk}
clk2                                        5.00000      {0.00000 2.50000}    P                 {clk}
inst/clk_out1_clk_wiz_0        5.00000      {0.00000 2.50000}    P,G             {my_mmcm/inst/mmcm_adv_inst/CLKOUT0} 
inst/clk_out1_clk_wiz_0_1    2.50000      {0.00000 1.25000}    P,G             {my_mmcm/inst/mmcm_adv_inst/CLKOUT0} 
......                                                                                                                      

====================================================
Generated Clocks
====================================================
Generated Clock   : inst/clk_out1_clk_wiz_0
Master Source     : my_mmcm/inst/mmcm_adv_inst/CLKIN1
Master Clock      : clk1
Multiply By       : 2
Generated Sources : {my_mmcm/inst/mmcm_adv_inst/CLKOUT0}

Generated Clock   : inst/clk_out1_clk_wiz_0_1
Master Source     : my_mmcm/inst/mmcm_adv_inst/CLKIN1
Master Clock      : clk2
Multiply By       : 2
Generated Sources : {my_mmcm/inst/mmcm_adv_inst/CLKOUT0}
......

上記の情報から、{my_mmcm/inst/mmcm_adv_inst/CLKOUT0} ピンには自動派生クロックが 2 つあること、そしてこれらはそれぞれ異なるマスター クロック (clk1 および clk2) から派生していることがわかります。

つまり、次のように create_generated_clock コマンドを変更すると、クリティカル警告は表示されなくなります。

create_generated_clock -name user -master_clock [get_clocks clk1] [get_pins my_mmcm/inst/mmcm_adv_inst/CLKOUT1]

AR# 62537
日付 10/21/2014
ステータス アクティブ
種類 既知の問題
ツール