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