はじめに
FPGAからの出力を外部クロックでラッチするシステム接続の場合のタイミング制約例です。
SDCは、システム構成、RTL、ご仕様を考慮して設定することで妥当な制約となるため、この例の SDC をコピーするのではなく、あくまでご理解のサポートとしてご参照ください。
このコンテンツでは、FPGA の出力ピンに対するタイミング制約の考え方と Timing Analyzer のレポートの確認方法を説明します。
システム構成
FPGA から出力したデータを外部 IC の外部クロックでラッチする場合の例です。
SDC制約
ボード上の遅延などは一切考慮しない場合、タイミング制約の例は下記のようになります。
最終段の FF を同期するクロック制約(Launch Clock)
create_clock -name CLK_50M -period 20.000 [get_ports {CLK_50M}]
受信デバイスの FF を同期する外部クロックの仮想クロック制約(Latch Clock)
create_clock -name CLK_50M_vir -period 20.000
DATAOUT の Port に対する set_output_delay 制約
set_output_delay -clock { CLK_50M_vir } -max -add_delay 3.000 [get_ports {DATAOUT}]
set_output_delay -clock { CLK_50M_vir } -min -add_delay -1.000 [get_ports {DATAOUT}]
※ ラッチクロックから保持する Th の場合、-min の値は ー(マイナス)になることに注意
Report Timing の確認
タイミング制約をしてコンパイル後に Timing Analyzer で制約に対する結果を下記の手順で確認します。
1. Timing Analyzer でタイミング解析用のネットリストを作成します。
2. Report Timing 設定画面を開き、
今回設定した SDC の結果を Report させるため、下図(図5)のように設定します。
3. Report Timing のsetup 解析では -max で設定した値が考慮された結果が解析できます。
4. Report Timing のhold 解析では -min で設定した値が考慮された結果が解析できます。
以上で外部クロックでラッチする Output 制約と確認が完了しました。
ぜひ参考にしてください。