Versal デバイスでは、MMCM に反転クロックを生成する CLKOUTxB
ポートはありません。反転クロックを生成するには、CLKOUTx
出力を 180 度位相シフトします。
クロックを 180 度位相シフトすると、タイマーにより、位相シフトがクロック波形エッジまたはレイテンシの変更としてクロック波形を変えずにモデル化されます。タイマーでの位相シフトのモデル化には、MMCM の PHASESHIFT_MODE プロパティが使用されます。PHASESHIFT_MODE プロパティのデフォルト値は LATENCY です。
詳細は、 『Vivado Design Suite ユーザー ガイド: デザイン解析およびクロージャ テクニック』 (UG906) のこのセクションを参照してください。
注記: DPLL およびデジタル スキュー調整を使用する MMCM/XPLL では、PHASESHIFT_MODE にサポートされる設定は LATENCY のみです。
位相シフトが I/O タイミングに使用されず、ファブリック内のタイミング パスに使用されている場合、レイテンシ モード (PHASESHIFT_MODE=LATENCY) を使用すると、位相シフトされていないクロックと位相シフトされたクロックの間に予期しないセットアップ/ホールド要件が発生することがあります。Versal デバイスで CLKOUTxB
クロックがないことを補うため、クロックを 180 度位相シフトしてファブリックで反転クロックを生成する場合がこの状況に当てはまります。
位相シフトされていないクロックと位相シフトされたクロックの間のセットアップ/ホールド要件を生成するオプションは、次のとおりです。
- マルチサイクル パスを追加してタイマーで使用されるクロック エッジを調整する。
set_multicycle_path -from [get_clocks clk] -to [get_clocks clk_phase_shitfed] -setup -end 0
- タイマーで使用される位相シフト モデルを LATENCY から WAVEFORM に変更する。この場合、マルチサイクル パスは必要ありません。
set_property PHASESHIFT_MODE WAVEFORM [get_cells <MMCM>]