SDCを使ったタイミング制約を押さえよう:必修! FPGAタイミング解析の基礎(2)(3/3 ページ)
回路設計におけるタイミング制約に悩む人も多いだろう。今回は実際の回路を例に取り、SDCを使ったタイミング制約を解説する。
マルチサイクル制約の方法
セットアップ解析のエッジを変更するには、「set_multicycle_path」コマンドを使って次のように記述します。Nは変更するクロック・サイクル数です。「-from/-to」にはクロック、I/Oポート、FFを指定することができます。図7に示すように、N=1のときは設定をしないのと同じです。Nの値を増やすごとに、セットアップ解析のサイクル数が変更されていきます。
set_multicycle_path -end -setup -from clk1 -to clk2 N
セットアップのマルチサイクル制約を行うと、ホールド解析のエッジも変更されるので、注意が必要です。ホールドの解析エッジを独立に変更するには、「-hold」オプションを使って次のようにします。図8に示すように、M=0のときは設定をしないのと同じです(セットアップと違い初期値は0)。Mの値を増やすごとに、ホールド解析のサイクル数が変更されていきます。
set_multicycle_path -end -hold -from clk1 -to clk2 M
前のページで例として挙げた、(1)と (2)の場合に必要なマルチサイクル設定は、次のようになります。(2)の場合はクロック間にではなく、FF間に設定するのが適当です。
・(1)の場合 (図5) set_multicycle_path -end -setup -from clk1 -to clk2 2 (set_multicycle_path -end -hold -from clk1 -to clk2 0)
・(2)の場合 (図6) set_multicycle_path -end -setup -from [get_cells FF1] -to [get_cells FF2] 2 set_multicycle_path -end -hold -from [get_cells FF1] -to [get_cells FF2] 1
ここまでの解説では、「-end」オプションを説明なしに使ってきました。このオプションは変更するサイクル数を、受信側のクロック周期で数えることを表します。これに対して「-start」オプションを使うと、送信クロック周期で、サイクル数を指定することができます。送信と受信のクロック周期が異なる場合に、「-start」オプションが必要になることがあります(図9)。
SDC文法のまとめ
今回の解説の中で使用したSDCコマンドの文法を簡単にまとめておきます。
今回はSDCフォーマットによるタイミング制約とタイミング解析の方法を解説しました。次回は、I/Oタイミング制約について解説します。お楽しみに!(次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.