デフォルトでは、プロジェクトに追加されたすべての 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 出力ファイルは、ほかのユーザー制約と共に適用されます。
たとえば、制約ファイルをインプリメンテーションのみに使用する場合は、次の手順に従います。
- [Sources] ウィンドウで制約ファイルを選択します。
-
Source File Properties ウィンドウで、次を実行します。
- Synthesis チェック ボックスをオフにします。
- 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
ファイル名 | ファイルを読み込む段階 | 制約が使用される段階 |
---|---|---|
wave_gen_timing.xdc | 合成前 |
|
wave_gen_pins.xdc | 合成後 |
|
ヒント: 合成後に読み込まれた制約が、合成前に読み込まれた制約に加えて適用されます。