この手順では、複数の CDC 違反を同時に除外します。
- CDC レポートで、[CDC Details] の下にある
my_ip_axi_aclk
からmy_ip_glblclk
への CDC を確認します。このクロック乗せ換えには、CDC-14 違反 (マルチビット違反) が 5 つあります。この 5 つの CDC-14 違反はすべて同じ 2 つのレジスタ クロック ピンから始まります。
i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[2:1]/C
ヒント: [ID] 列で表を並べ替えると、この 5 つの CDC-14 違反が見やすくなります。
-
i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[*]/C
で 5 つのピンが一致するので、この 5 つのピンのうち 2 つだけをターゲットにし、次のように始点のリストを作成します。set startpoints [list \ [get_pins i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[1]/C] \ [get_pins i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[2]/C] \ ]
- この 5 つの CDC-14 違反を除外するには、
-from
オプションを指定してcreate_waiver
Tcl コマンドを使用します。create_waiver -type {CDC} -id {CDC-14} -user {Xilinx} -desc {No more CDC 14!} -from $startpoints
- Vivado IDE で をクリックし、[Report CDC] を再実行します。
- CDC レポートのサマリ セクションには CDC-14 違反がもうレポートされていないことを確認します。
- 除外された違反のみをレポートするには、次を入力します。
report_cdc -details -waived
除外された CDC 違反は、次の図のように 2 つの表にレポートされます。最初の表は、マルチビット違反として除外された CDC-14 違反を 5 つ示してします。2 番目の表には、シングル ビット違反が 10 あります。これは、5 つのマルチビット違反にマルチビット違反ごとの 2 ビットを掛けて計算されています。
- スクリプト内のすべての除外をエクスポートし、合計 4 つの除外が追加されたことを確認するには、次を入力します。
write_waivers -type cdc waivers.xdc -force
注記:waivers.xdc
ファイルが既に存在するので、-force
オプションを指定して、このファイルを上書きする必要があります。ヒント: または、DRC や設計手法の除外がないので、次のようにも入力できます。write_waivers waivers.xdc -force
または
write_xdc -type waiver waivers.xdc -force
waivers.xdc 内の除外リストは次のようになります。
-
waivers.xdc ファイルをインポートするには、次を入力します。
read_xdc waivers.xdc
次の警告メッセージは、重複している除外が既存の除外に追加されなかったことを知らせています。既存の除外とまったく同じの除外だけが追加されていません。
WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-10' is a duplicate and will not be added again. WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-11' is a duplicate and will not be added again. WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-11' is a duplicate and will not be added again. WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-14' is a duplicate and will not be added again.