AR# 73681

|

2020.2 Clocking Wizard: 1 ps を超える周期を必要とするシミュレーションの問題

説明

2020.2 リリース以前のバージョンでは、UNISIM のタイムスケールは 1 ps でした。

MMCM または PLL ウィザードで VCO 周期が単位がピコ秒 (ps) の整数で設定されていない場合は、シミュレーションで問題が発生する可能性があります。

この問題はシミュレーションでのみ発生し、ハードウェアでは VCO の周期は間違っていません。

たとえば、入力周波数が 100 MHz、出力周波数が 150 MHz の場合、Clocking Wizard での設定は M=12、D=1、O0=8 になる可能性があります。この設定であれば、VCO 周期は 833.333 ps、出力 0 周期は 6666.6667 ps となります。

シミュレーションでは、平均周期が 833.333 ps となるように、Vco の周期が 833 ps と 834 ps の間で交互に変化します。

ソリューション

Vivado 2020.1 では、正確な平均値を得るため Vco 周期を交互に変化させる必要があり、これをジッターと呼ぶことをユーザーに通知するための警告が追加されていました。

シミュレーションのコンソールには次のような警告メッセージが表示されます。

Warning: [Unisim MMCME5-35] Input clock has jitter @7478259000.This may cause misalignment in output clocks.Instance clk_wiz_0.MMCME5_inst

VCO の周期が単位は ps の整数以外の値であっても、シミュレーションに平均周期以上の精度を必要としない場合、警告は無視しても問題はなく、ハードウェアへの影響もありません。

VCO の周期が単位は ps の整数以外の値で、シミュレーションにこの機能に関連した問題が起きていると思う場合は、ジッターが原因でこの問題が起きていることを確認します。

これを確認するには、Clocking Wizard で値を変更して、VCO 周期が ps の整数値になるようにします。

Tcl を介して値を変更する場合は、次のような構文を使用します。

set_property -dict [list CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {100.00} CONFIG.MMCM_CLKOUT0_DIVIDE_F {8.000} ] [get_ips clk_wiz_0]

これはシミュレーションのみの問題なので、UNISIM 1 ps の解像度がシミュレーション問題の原因であることを確認する別の方法としては、テストベンチの入力クロック周波数を変更することが考えられます。

別の Clock Wizard を使用して、入力周波数/出力周波数のオプションが有効であること、Vco 周波数が単位が ps の整数値であることを確認できます。

MMCM/PLL からの同じ出力周波数を保ち、MMCM 出力のクロック周期が交互に変化していない場合にシミュレーションの残りの部分が正しいことを検証できます。

AR# 73681
日付 11/24/2020
ステータス アクティブ
種類 一般
デバイス 詳細 概略
IP
People Also Viewed