1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. 【Vivado®で使用するXDCファイルの基本的な記述例】第4回 Vivado®からみるXDCファイルの優先度、省略できる記述

TECHブログ

【Vivado®で使用するXDCファイルの基本的な記述例】第4回 Vivado®からみるXDCファイルの優先度、省略できる記述

【Vivado®で使用するXDCファイルの基本的な記述例】第4回 Vivado®からみるXDCファイルの優先度、省略できる記述

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

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

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

本ブログシリーズでXDC制約の基本的な記述について述べてきました。
今回は、補足として、Vivado® ML Edition からみるXDCファイルの優先度、省略できる記述などについて説明します。

目次

XDCファイルの読み込み

XDCは以下のような特徴があります。
・TCL構文に従ったコマンドである
・他のTCLコマンド同様に、Vivado® ML Edition で解析できる

Vivado® ML Editionでは、複数のXDCファイルを読み込むことが可能です。
例えば多ピンのFPGAの場合、1つのXDCファイルにすると、行数が多くなり、変更(修正)が大変になります。PIN制約、クロック制約、タイミング制約などに分けてXDCを作成することで、見やすさや管理しやすくなると思います。


(例)以下にpin.xdc、clock.xdc、timing.xdcに
分けた場合のイメージ



IPコアを含んだ環境でのXDCファイルの優先度

生成した各IPコアフォルダの中にXDCファイルが存在しています。
そのため、IPコアのXDCファイル、ユーザーで作成したXDCファイルの読み込まれる順序があります。
まず、最初にIPコアのXDCファイルが読み込まれ、次にユーザーで作成したXDCファイルが読み込まれます。
注意として、ユーザーで作成したXDCファイルが後に読み込まれるため、IPコアの制約を上書きできてしまいます。

XDCの記述では、以下の内容は省略できます。

外部インタフェースに関係するIPコアを生成した場合

IPコア生成時に自動生成されて、ツールが勝手に参照しに行くためです。
外部インタフェースとは、DDR3/4メモリ、ZYNQでは、MIOなどになります。

差動信号の場合

・信号のバス幅の違い
・信号名が不一致
・対象のモジュールの階層が違っている

XDCファイルで発生するワーニング

Vivado® ML Edition でコンパイル実行すると、XDC関連のワーニング、クリティカルワーニングが表示される場合があります。
XDCファイルの記述内容とデザイン内容に差分があり、無効な制約に関して表示されます。

・信号のバス幅の違い
・信号名が不一致
・対象のモジュールの階層が違っている

など、他の要因もありますが1例となります。


(例)Vivado® ML Editionで
Synthesis結果のレポート抜粋



(例)Vivado® ML Editionで
Implementation結果のレポート抜粋

ワーニング

多数出る場合がありますがメッセージの確認を行い、処置する/しないをユーザーで判断する必要があります。
制約の有効性を確認するために、何度もコンパイルを実行する場合があります。

クリティカルワーニング

動作不具合の原因になりますので、すべてのメッセージを確認し処置することをお勧めします。

コンパイルに使用しているRTLソースファイルの機能追加もしくは修正した場合でもXDCファイルに反映することを忘れていたために、ワーニング、クリティカルワーニングが発生する場合がありますので注意ください。

本件に関しては、いろいろな場合がありますので、別の機会にでも記載できたらと思います。

おわりに

以下のような場合には、XDCファイルの再確認、見直しを行うことをおすすめします。
不具合の発生原因のヒントにつながるかもしれません。

・XDCファイルに制約を記述しているが、デザインに反映されていない
・XDCファイルの制約が抜けているために、実機動作で不安定な現象が発生する
 →実行動作の不具合の原因となり、解析に時間を要してしまう

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

お問い合わせはこちら

弊社ではFPGA設計や回路図設計、レイアウト設計、ソフトウェア設計、筐体設計などを受託開発しています。サービス内容をWEBサイトに掲載していますので、ぜひご覧ください。

詳細はこちら

このブログのシリーズ

関連ブログ