1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. 【Vivado®で使用するXDCファイルの基本的な記述例】第3回 バススキュー制約、優先順位、物理的制約編

TECHブログ

【Vivado®で使用するXDCファイルの基本的な記述例】第3回 バススキュー制約、優先順位、物理的制約編

【Vivado®で使用するXDCファイルの基本的な記述例】第3回 バススキュー制約、優先順位、物理的制約編

このブログでは、Vivado® ML EditionsおよびVivado® design Suite(以下「Vivado」といいます)で使用する、「XDCファイル」の基本的な記述について解説します。

XDCとは、Xilinx Design Constraint(頭文字)の略です。
XDCファイルとは、Xilinx社のFPGA及び適応型SoCに対して制約を与えることができるファイルで、以下の項目の制約設定が可能です。

  • ・端子配置設定
  • ・クロック設定
  • ・コンフィグレーション設定
  • ・タイミング設定など

第3回では、バススキュー制約、優先順位、物理的制約について進めます。
これまでの連載BLOGはこちらからご確認ください!

 

それでは始めましょう。

目次

バススキュー制約

複数のクロック乗せ換えのパス間の最大スキューを設定するために使用します。
データ送信可能で、デスティネーションクロックの立ち上りで受信可能なソースクロックの立ち上りの数を制限するものです。

set_bus_slewコマンドの構文

set_bus_skew [-from <args>] [-to <args>] [-through <args>] <value>

オプション
-from 始点のオブジェクト リストを指定する
-to 終点のノード リストを指定する
-through ピンまたはネットのリストを指定する

-from、-toオプションではクロックを参照することも可能ですが、始点および終点のリストを指定することで、制約が適用されるパスが多くなることを回避できます。


優先順位

XDCでは、順次解釈のため、後に宣言している制約が優先となります。

1行目 create_clock -name clock1 -period 10 [get_ports clk_in1]
2行目 create_clock -name clock2 -period 20 [get_ports clk_in1]


とした場合、どちらも同じポートですが、1行目は無視されて、2行目の周期=20nsをclock2の名前で制約が与えられます。

複数のタイミング例外が同じパスに適用されているなど、制約が重複する場合、優先順位は次のようになります。

  • クロックグループ (set_clock_groups)
  • フォルスパス (set_false_path)
  • 最大/最小遅延パス (set_max_delay/set_min_delay)
  • マルチサイクルパス (set_multicycle_path)

オブジェクトの優先順位は次のようになります。

  • ポート、ピン、およびセル
  • クロック

フィルターの優先順位は次のようになります。

  • -from -through -to
  • -from -to
  • -from -through
  • -from
  • -through -to
  • -to
  • -through

物理制約

以下のオブジェクトのプロパティ宣言(set_property)を行います。

  • ・ロケーションや I/O規格などのI/O制約
  • ・セルのロケーションなどの配置制約
  • ・固定配置などの配線制約
  • ・コンフィギュレーション制約

→各コマンドの使用方法は、 第1回 にて記載してあります。


上記以外に、ネットリスト制約には次の宣言があります。

  • ・CLOCK_DEDICATED_ROUTE
  • ・MARK_DEBUG
  • ・DONT_TOUCH

この3つの宣言文を以下に説明します。

CLOCK_DEDICATED_ROUTE

クロックネットに使用し、デフォルトの配線ではなく新たなクロック配線を指定できます。
専用クロックが使用できない場合、FALSEに設定できます。
クロックポートからBUFG、MMCMなどのグローバルリソースではなく、汎用配線を使用できます。

MARK_DEBUG

ネットを保持し、コンパイル時にデバックツールに接続することができます。

DONT_TOUCH

ネットが最適化中に削除されないようにします。
設定されたネットは、合成orインプリメンテーションで最適化されないため、リソースが増える可能性があります。
手動で複製したロジックが統合されることを防ぐことができます。


 

ここまでXDCに関して話してきましたが、XDCファイルはVivado® 環境で使用します。
ISEの使用していたUCFファイルとはフォーマットが異なるため、変換が必要になります。

そのため、『ISE から Vivado® Design Suite への移行ガイド』(UG911) がありますので参考にしてください。
『UCF制約のXDCへ移行』の章にUCF→XDCファイルへの変換する方法が説明されています。


以上となります。
最後までご覧いただきありがとうございました。
今回説明した内容でのご不明な点や、FPGA設計などでお困りのことなどがありましたら、下記よりお問い合わせください。


お問い合わせはこちら

このブログのシリーズ

関連ブログ