合成およびインプリメンテーション制約ファイル - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: 制約の使用 (UG903)

Document ID
UG903
Release Date
2022-06-01
Version
2022.1 日本語

デフォルトでは、プロジェクトに追加されたすべての XDC ファイルおよび Tcl スクリプトが、合成およびインプリメンテーションの両方で使用されます。XDC ファイルまたは Tcl スクリプトに USED_IN_SYNTHESIS および USED_IN_IMPLEMENTATION プロパティを設定すると、このデフォルトを変更できます。これらのプロパティに有効な値は、TRUE または FALSE です。

重要: DONT_TOUCH 属性は USED_IN_SYNTHESIS および USED_IN_IMPLEMENTATION のプロパティには従いません。合成 XDC で DONT_TOUCH プロパティを使用すると、USED_IN_IMPLEMENTATION の値にかかわらず、インプリメンテーションに伝搬されます。DONT_TOUCH 属性の詳細は、RTL 属性を参照してください。
重要: モジュール (IP/BD/...) がアウト オブ コンテキスト (OOC) モードで合成される場合、最上位合成 run でこれらのモジュールに対してブラック ボックスが推論されます。このため、最上位合成制約は OOC モジュール内部のピン、ネット、セルなどのオブジェクトを参照できません。最上位制約の中に OOC モジュール内のオブジェクトを参照するものがある場合、制約を合成用 (USED_IN_SYNTHESIS=TRUE / USED_IN_IMPLEMENTATION=FALSE) とインプリメンテーション用 (USED_IN_SYNTHESIS=FALSE / USED_IN_IMPLEMENTATION=TRUE) の 2 つの XDC ファイルに分割する必要があります。インプリメンテーション中はこのような制限はありません。これは、OOC モジュールの DCP からのネットリストが、最上位デザイン ファイル合成する際に生成されたネットリストとリンクされ、Vivado Design Suite でブラック ボックスが解決されるためです。インプリメンテーションで使用するために生成された XDC 出力ファイルは、ほかのユーザー制約と共に適用されます。

たとえば、制約ファイルをインプリメンテーションのみに使用する場合は、次の手順に従います。

  1. [Sources] ウィンドウで制約ファイルを選択します。
  2. Source File Properties ウィンドウで、次を実行します。
    1. Synthesis チェック ボックスをオフにします。
    2. Implementation チェック ボックスをオンにします。

同等の Tcl コマンドは、次のとおりです。

set_property USED_IN_SYNTHESIS false [get_files wave_gen_pins.xdc]
set_property USED_IN_IMPLEMENTATION true [get_files wave_gen_pins.xdc]

Vivado を非プロジェクト モードで実行している場合、フローのどの段階でも制約を直接読み込むことができます。このモードでは、USED_IN_SYNTHESIS および USED_IN_IMPLEMENTATION プロパティは関係ありません。

次に、2 つの XDC ファイルをフローの異なる段階で読み込むコンパイル Tcl スクリプト例を示します。

read_verilog [glob src/*.v] 
read_xdc wave_gen_timing.xdc
synth_design -top wave_gen -part xc7k325tffg900-2 
read_xdc wave_gen_pins.xdc
opt_design 
place_design 
route_design
表 1. 合成前後の XDC ファイルの読み込み
ファイル名 ファイルを読み込む段階 制約が使用される段階
wave_gen_timing.xdc 合成前
  • 合成
  • インプリメンテーション
wave_gen_pins.xdc 合成後
  • インプリメンテーション
ヒント: 合成後に読み込まれた制約が、合成前に読み込まれた制約に加えて適用されます。