はじめに
Source Synchronous のセンターアライン入力が必要なデバイスに、FPGAからデータと反転クロックを出力するシステムでは SDC の設定や解析結果はどのようになるのでしょう?
この記事ではシンプルなシステムを例に、SDCと解析結果を紹介しています。
システム構成と インターフェイス 仕様
下図のようなシステム構成とI/Fの仕様のときの例を考えてみます。
SDC 制約
受信デバイスで Latch clock として使われる CLK_OUT に create_generated_clock でクロックを設定します。図2のCLK_OUTのようなイメージになります。
derive_pll_clocks -create_base_clocks
create_generated_clock -name CLK_OUT -source [get_pins {DDIOを同期するクロックターゲット}] [get_ports {CLK_OUT}]
set_output_delay の Value は図2のように CLK_OUT がラッチするときに必要とするスペックを設定します。
set_output_delay -clock {CLK_OUT} -max 4.000 [get_ports {DATA_OUT}]
set_output_delay -clock {CLK_OUT} -min -4.000 [get_ports {DATA_OUT}]
受信デバイスのスペックの表記や種類によって考え方は変わるのでご注意ください。
※ ボード遅延は考慮していません
Report Timing
Timing Analyzer でタイミング解析用の Netlist を作成します。
Report Timing 設定画面を開き、Report の条件などを設定し、Report Timing をクリック。
Report Timing の Setup 解析では、set_output_delay の -max で設定した結果の解析ができます。
Report Timing の Hold 解析では、set_output_delay の -min で設定した結果の解析ができます。
以上で Source Synchronous Output の SDC の例と解析が完了しました。
是非参考にしてみてください。