Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用...

18
Vivado Design Suite ユーザー ガイド 階層デザイン : デザインの再利用 UG905 (2012.3) 2012 10 16

Transcript of Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用...

Page 1: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

Vivado Design Suite ユーザー ガイド

階層デザイン : デザインの再利用

UG905 (2012.3) 2012 年 10 月 16 日

Page 2: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

階層デザイン : デザインの再利用 japan.xilinx.com 2UG905 (2012.3) 2012 年 10 月 16 日

Notice of DisclaimerThe information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products.To the maximum extent permitted by applicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent.Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications:http://www.xilinx.com/warranty.htm#critapps.© Copyright 2012 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries.All other trademarks are the property of their respective owners.

本資料は英語版 (v2012.3) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあ り ます。日本語版は参考用と してご使用の上、 最新情報につきましては、 必ず最新英語版をご参照ください。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、[email protected] までお知らせください。 いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。

改訂履歴次の表に、 この文書の改訂履歴を示します。

日付 バージョ ン 改訂内容

2012 年 10 月 16 日 2012.3 初版

Page 3: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

階層デザイン : デザインの再利用 japan.xilinx.com 3UG905 (2012.3) 2012 年 10 月 16 日

目次

改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

デザインの再利用概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

チェッ クポイン ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

注意事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

コマンドおよび制約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Tcl スク リプ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

既知の問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

付録 A : その他のリソースザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

ソ リ ューシ ョ ン センター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

リ ファレンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Page 4: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

デザインの再利用

概要階層デザイン (HD) 手法を使用する と、 デザインを小さい管理可能なブロ ッ クにパーティシ ョ ン分割するこ とができます。 Vivado Design Suite では、 次のフローで残りのデザインとは関連のない (out-of context (OOC)) ブロ ッ クをインプリ メン トできます。 次は、 Vivado Design Suite での手法です。

• モジュール インプリ メンテーシ ョ ン : このフローでは、デザインの最上位レベルとは関係なくパーティシ ョ ン分割されたブロッ クまたは IP コア (OOC) がインプ リ メン ト されます。モジュールは特定のパーツ/パッケージの組み合わせでデバイスの決まった位置にインプ リ メ ン ト されます。 この OOC インプ リ メ ンテーシ ョ ンの結果は、デザイン チェッ クポイン ト (DCP) ファ イルに保存できます。 このフローでは、 次が実行できます。

° デザインの残りの部分とは別にブロ ッ クをインプリ メン ト し、フッ トプ リ ン トおよびタイ ミ ング解析を実行します。 I/O バッファーは挿入されませんが、 モジュール内にインスタンシエートできます。

° モジュール インプ リ メンテーシ ョ ンのチェッ クポイン ト を作成し、 結果が完全なデザイン インプ リ メンテーシ ョ ンに読み込まれるよ うにします。結果を再利用するには、モジュール ピンおよびインターフェイスロジッ クの配置を制御する制約を使用して、完全なデザインに読み込まれたと きに高品質な結果になるよ うにする必要があ り ます。

• モジュール再利用 : このフローでは、最上位デザイン内のモジュール インプ リ メンテーシ ョ ン フローから作成されたデザイン チェッ クポイン ト を使用します。 この OOC モジュールを使用する場合、 モジュール ピンと インターフェイス ロジッ クが配置された箇所を把握しておかないと、 接続ロジッ クが正し く フロアプランできません。 インポート された OOC モジュールの保持レベルを選択するこ とはできますが、 配置配線は少ししか変更できません。 このフローでは、 デバイスのほかのエリ アや別のデバイスへの OOC インプリ メンテーシ ョ ン結果の移動または複製はまだサポート されていません。

• ト ップ ダウン再利用 : このフローは、 1 つの相違点を除いて、 モジュール インプリ メンテーシ ョ ン フローとモジュール再利用フローを統合したフローに類似しています。 このフローでは、 最上位フロアプラン (Pblock、 ピン配置、 グローバル ロジッ クなど) は既知で、 OOC インプ リ メンテーシ ョ ンをガイ ドするために使用されます。これによ り、 OOC モジュール ピン制約、 最上位の入力/出力タイ ミ ング要件、 バウンダ リ最適化制約すべてが最上位デザインから作成できるよ うにな り ます。 OOC モジュールはこのフローの場合、 必ず必要ではあ り ません。最上位のみ合成して、 OOC モジュールに必要なコンテキス ト制約を準備するには、 OOC モジュールのポート定義を含むブラ ッ ク ボッ クスのみが必要になり ます。

このフローでは、 次が実行できます。

° チーム デザインで、デザイン内の 1 つまたは複数モジュールの合成およびインプ リ メンテーシ ョ ンをパラレルに実行できます。チーム メ ンバーは、アセンブルされたデザインで対応する結果を再利用して、それぞれの担当部分をインプリ メン トできます。

° デザイン全体ではなく、デザインに含まれるモジュールの 1 つのみをインプ リ メン トするこ とで、 インプ リメンテーシ ョ ン実行時間を削減できます。 これによ り、設計時間を削減でき、モジュール ベースでタイ ミ ングを検証して満たすこ とができます。

パーシャル リ コンフ ィギュレーシ ョ ン、 単独デザイン フローなどのその他の階層デザイン フローは、 今後の VivadoDesign Suite バージ ョ ンでサポート される予定です。

階層デザイン : デザインの再利用 japan.xilinx.com 4UG905 (2012.3) 2012 年 10 月 16 日

Page 5: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

チェ ックポイン ト

チェ ックポイン ト階層デザイン フローでは、 モジュール インプ リ メンテーシ ョ ンの結果をエクスポートおよびインポートするためにチェッ クポイン トが使用されます。 チェッ クポイン トは、 論理デザイン、 物理デザイン、 モジュール制約をアーカイブしたもので、 デザインを完全に復元するのに必要な唯一のファイルです。

保存されたチェッ クポイン トは、 元々生成されていたのと同じパーツ /パッケージ/スピード グレードの組み合わせにのみ読み込むこ とができます。

推奨 : 階層デザイン フローで読み込まれるすべてのデータがモジュール インターフェイスで完全に一致するよ うにするには、 -strict オプシ ョ ンの使用をお勧めします。 チェ ッ クポイン トの詳細は、 『Vivado Design Suite ユーザーガイ ド : インプリ メンテーシ ョ ン』 (UG904) を参照してください。

注意事項デザイン再利用手法で最適な結果にするためには、特別な注意が必要です。次のセクシ ョ ンでは、 Vivado 階層デザイン フローでのアーキテクチャ、 設計、 制約に関して注意すべき点について説明します。

最適化の制限

デザインの残りの部分と関連しない (OOC) ブロ ッ クをインプ リ メン トする と、 通常の ト ップ ダウン フローの最適化は実行されません。 こ ういった制限のためのパフォーマンス劣化を防ぐには、 次のガイ ド ラ インに従ってください。

• インプリ メン ト される OOC ブロ ッ クを注意して選択します。デザインのほかのブロッ クからは論理的に孤立し、デバイスの連続したエリ アに物理的に制約が付けられたブロ ッ クを選択して ください。

• ブロッ ク内に完全に含まれるク リ ティカル パスを下位モジュールまたは最上位モジュールのいずれかに保持します。

• ブロッ ク間のバウンダ リ をレジスタに入力して、モジュールのバウンダ リ最適化制限による損失を最小限に抑えます。

• コンテキス ト制約を定義して、 ブロ ッ クの使用方法に関する情報を提供します。 コンテキス ト制約の中には、 どのポートが定数で駆動されるのか、 どのポート を未接続にするのかなどをツールに伝えるために、別の最適化ができるものもあ り ます。 詳細は、 「コマンドおよび制約」 セクシ ョ ンの 「OOC 制約」 を参照してください。

• モジュール バウンダ リ間は最適化されませんので、 パーティシ ョ ン分割された関連するデザイン エレ メン トはすべて一緒に維持する必要があ り ます。

フロアプラン要件

関連のない個別 (OOC) モジュールをインプ リ メン トするには、 次の要件に従う必要があ り ます。

• 各モジュールのインプリ メンテーシ ョ ンに Pblock 制約を含めて、 配置を制御する必要があ り ます。 Pblock が使用されない場合、 アセンブリ段階で配置が競合する可能性があ り ます。

• 各 OOC モジュールの Pblock 範囲は重複しないよ うにします。 最上位デザインに複数の OOC モジュールをインポートする場合は、 モジュールがそれぞれデバイスの別の領域を使用している必要があ り ます。

• ネス ト化された Pblock (子 Pblock) は、 そのネス ト化された Pblock の範囲が親 Pblock の範囲に完全に含まれている限り、 OOC インプ リ メンテーシ ョ ンでサポート されます。

階層デザイン : デザインの再利用 japan.xilinx.com 5UG905 (2012.3) 2012 年 10 月 16 日

Page 6: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

注意事項

• すべてのクロッ ク バッファー (最上位と OOC モジュールの両方) はロッ ク される必要があ り ます。OOC モジュールの中のバッファーには LOC 制約を付ける必要があ り、最上位のバッファーの位置は HD.CLK_SRC 制約で識別される必要があ り ます。

• OOC インプ リ メンテーシ ョ ン結果が使用される場合は、 HD.PARTPIN_RANGE または HD.PARTPIN_LOCS 制約を使用して OOC インプ リ メンテーシ ョ ン中に OOC モジュール ピンをロ ッ ク しておく必要があ り ます。

階層に関する注意事項

デザイン階層は、 重要な考慮事項です。 デザインがパーティシ ョ ン分割される箇所によっては、 結果の質に多大な影響のあるこ とがあ り ます。 OOC インプリ メンテーシ ョ ン用に適切なモジュールをグループで分類するために、階層を追加または変更する必要のあるこ と もあ り ます。

専用接続

専用接続のあるコンポーネン ト をデザインの同じパーティシ ョ ンに保持するこ とが推奨されたり、必要と されるこ とがあ り ます。 OOC モジュールのバウンダ リにまたがる専用接続がある と、 パフォーマンスが落ちた り、 インプ リ メンテーシ ョ ン エラーが発生するこ とがあ り ます。 次は、 専用接続を含むコンポーネン トの リ ス トです。

• IOLOGIC および IOBUF : ILOGIC または OLOGIC、 IDDR、 ODDR、 ISERDES、 および OSERDES に配置されたレジスタから IBUF、 OBUF、 IBUFDS、 OBUFDS、 IOBUF、 および IOBUFDS を含む IO コンポーネン トへの接続が含まれます。

• GT コンポーネン ト : GTX、 GTP、 およびそれらの専用 I/O 接続。

デザインの異なるパーティシ ョ ンに相互接続する IP コンポーネン トは配置しないよ うにして ください。

IO およびクロック バッファー

IO およびクロ ッ ク バッファーは OOC モジュール内でサポート されますが、使用方法によっては特別な注意が必要なこ と もあ り ます。

• IO バッファー : OOC ポートが最上位の IO バッファーに直接接続される場合は、 このバッファーを OOC モジュール内に移動した方が結果が改善するこ とがあ り ます。 インプリ メンテーシ ョ ン ツールを使用すれば、 IO コンポーネン トが完全に表示されるので、 最も効率的に配置できます。 ただし、 すべての状況のおいてこれが実行できるわけではあ り ません (たとえば、 OOC ポートが最上位の IBUF に直接接続されていても、 IBUF が OOC モジュール以外のその他のロジッ クを駆動する場合)。 また、 この場合、 OOC モジュール内のロジッ クは HD.PARTPIN_LOCS 制約で制御する必要があ り ます。 詳細は、 「コマンドおよび制約」 セクシ ョ ンを参照して ください。

• リージ ョ ン クロッ ク バッファー : BUFR は OOC モジュール内にある場合、 特定の位置にロッ クする必要があ ります。 これによ り、 ツールで BUFR で駆動されるロジッ クが適切に配置されるよ うにな り ますが、 BUFR が最上位デザインに含まれる場合、 OOC Pblock が BUFR のアクセスよ り も多くのク ロ ッ ク領域にまたがるので、 さ らに多くの情報を提供する必要があ り ます。 ネス ト化された Pblock は、 OOC Pblock で定義された範囲のサブセットである範囲で作成される必要があ り ます。ネス ト化された Pblock には、BUFR で駆動されるすべてのセルが含まれます。 この Pblock は次のコマンドで作成できます。

° create_pblock -parent <parent_pblock_name> <nested_pblock_name>

° add_cells_to_pblock <nested_pblock_name> [get_cells -of [get_nets -of [get_ports<bufr_clock_port>]]]

° resize_pblock <nested_pblock_name> -add {SLICE_Xx1Yy1:SLICE_Xx2Yy2}

これは、最上位の BUFR で駆動される各モジュール ポートに対して実行する必要があ り ます。ネス ト化された Pblockの範囲は、最上位インプ リ メンテーシ ョ ンの BUFR 位置に対応する必要があ り ます。最上位の BUFR 位置と対応するOOC モジュールの Pblock 範囲間が一致しないと、 最上位インプ リ メ ンテーシ ョ ン中に配線不可能な状態になるこ とがあ り ます。

• グローバル クロック バッファー : グローバル バッファーは OOC モジュール内でサポート されます。 BUFR がOOC インスタンス内にある と、ク ロ ッ ク ネッ トが OOC インプ リ メンテーシ ョ ンでグローバル配線に配線されま

階層デザイン : デザインの再利用 japan.xilinx.com 6UG905 (2012.3) 2012 年 10 月 16 日

Page 7: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

コマンドおよび制約

す。 OOC ポートが最上位のクロ ッ ク ネッ トで駆動される場合、 クロ ッ ク ネッ トは OOC インプリ メ ンテーシ ョン中には配線されません。 ク ロ ッ ク遅延 / スキ ューはタ イ ミ ング概算によ り 判断されます。 この場合、HD.CLK_SRC 制約を使用する と タイ ミ ング概算が改善できます。

コマンドおよび制約 階層デザイン フローは、現在のと ころ、プロジェク トのないバッチ モード /Tcl インターフェイス (ユーザー インターフェイスまたはプロジェク ト ベースのコマンドなし ) でのみサポート されています。

次のセクシ ョ ンでは、階層デザイン フローに必要な特定のコマンドおよびオプシ ョ ンについて説明します。階層デザイン フローを実行するためのこれらのコマンドの使用例を示します。 各コマンドの詳細については、 『Vivado DesignSuite Tcl コマンド リ ファレンス ガイ ド』 (UG835) を参照して ください。

OOC コマンド

関連のない孤立 (out of context) ブロ ッ クを合成またはインプ リ メン トするには、 ツールが out-of-context モードで実行される必要があ り ます。 これ以外の場合、 out-of-context フローを実行するために使用されるコマンドはほかのフローと同じにな り ます。 現在のと ころ、 合成、 最適化またはインプ リ メンテーシ ョ ンでサポート されないコマンドはあ りません。

合成

このフローでは、 複数の合成ツールおよび手法がサポート されます。 次は、 サポート されるツールのリ ス トです。

• XST : パーティシ ョ ン (PMXL ファ イル) を使用したボ ト ムアップ合成またはインク リ メンタル合成

• Synplify : ボ ト ムアップ合成またはコンパイル ポイン ト (階層プロジェク ト を使用して各ネッ ト リ ス ト を生成)

• Vivado 合成 : ボ ト ムアップ合成のみ

重要 : ボ ト ムアップ合成は、 各ブロ ッ クにそれぞれ合成プロジェク トがあるよ う な合成フローのこ とです。 通常は、下位ブロッ クの自動 IO バッファー挿入はオフになり ます。

この文書では、 Vivado 合成フローのみについて説明します。 その他のフローについては、 『XST ユーザー ガイ ド』 または Synopsys Synplify の資料を参照してください。

このフローの Vivado 合成は、 synth_design コマンドを使用してバッチ モードで実行されます。

synth_design -mode out_of_context -flatten_hierarchy rebuilt -top <top_module_name>-part <part>

表 1 : synth_design のオプシ ョ ン

コマンド オプシ ョ ン 説明

-mode out_of_context 合成およびダウンス ト リーム ツールの IO 挿入が阻止されます。 このモードは、write_checkpoint が使用される とチェッ クポイン トに保存されます。

-flatten_hierarchy rebuilt -flatten_hierarchy に使用できる値は複数あ り ますが、 階層デザイン フローの設定には rebuilt が推奨されます。

-top

合成されるモジュールのモジュール/エンティティ名を指定します。synth_design よ り前に set_property top <top_module_name> [current_fileset] が実行されている場合、 このオプシ ョ ンを使用する必要はあ り ません。

-part ターゲッ トにするザイ リ ンクス パーツ (例 : xc7k325tffg900-3) を指定します。

階層デザイン : デザインの再利用 japan.xilinx.com 7UG905 (2012.3) 2012 年 10 月 16 日

Page 8: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

コマンドおよび制約

synth_design コマンドは、 デザインを合成して、 その結果を メモ リに格納します。 結果をファ イルに書き出すには、 コマンドを実行する必要があ り ます。 書き出す形式には、 EDIF または Vivado チェッ クポイン トのいずれかが推奨されます。 次のいずれかのコマンドを使用して ください。

write_edif <file_name>.edf

write_checkpoint <file_name>.dcp

プロジェク ト なしのデザインを閉じて、合成を再実行せずにインプ リ メンテーシ ョ ンを実行するには、上記のコマンドのいずれかを実行して、 合成結果をファイルに書き出す必要があ り ます。

インプリ メンテーシ ョ ン

このセクシ ョ ンでは、 OOC フローでモジュール インスタンスをインプ リ メン トするのに必要なコマンドについて説明します。最上位デザインにインスタンシエート されたインスタンスが複数このモジュールに含まれ、アセンブ リ フローが使用される場合、必要なインプ リ メンテーシ ョ ン結果を生成するために、それぞれ独自の Pblock 制約の付いたOOC インプ リ メンテーシ ョ ンが複数必要になり ます。

synth_design -mode out_of_context が以前に実行され、結果がまだメモ リに含まれる場合は、 インプ リ メンテーシ ョ ンを直接実行できます。 たとえば、 次のインプリ メンテーシ ョ ン コマンドを使用できます。

• read_xdc (すべての制約がまだ読み込まれていない場合)

• opt_design (オプシ ョ ン)

• place_design

• phys_opt_design (オプシ ョ ン)

• route_design

メモ リにデザインが含まれていない場合は、 デザインを読み込む必要があ り ます。 これは、 次の 2 つの方法のいずれかで実行できます。

方法 1 : ネッ ト リス ト デザインの読み出し

read_edif <file_name>.edf/edn/ngclink_design -mode out_of_context -top <top_module_name> -part <part>

デザイン ネッ ト リ ス ト を読み込んだ後に link_design に -mode out_of_context オプシ ョ ンを付けない場合、その後のインプリ メンテーシ ョ ン段階でデザインが完全デザインと して処理され、ソースのない信号やロードのない信号がすべて削除されます。 synth_design または link_design のを実行中には、 OOC モジュールを定義して、モジュール インプ リ メンテーシ ョ ン フローを実行する必要があ り ます。

方法 2 : チェ ッ クポイン トの読み出し

read_checkpoint <file_name>.dcp

表 2 : link_design のオプシ ョ ン

コマンド オプシ ョ ン 説明

-mode out_of_context ネッ ト リ ス ト デザインを OOC モードで読み込みます。 ダウンス ト リーム ツールの特定チェッ クおよび最適化をオンにします。

-part ターゲッ トにするザイ リ ンクス パーツ (例 : xc7k325tffg900-3) を指定します。

-top

インプリ メン ト されるモジュールのモジュール/エンティティ名を指定します。link_design よ り前に set_property top <top_module_name> [current_fileset] が実行されている場合、 このオプシ ョ ンを使用する必要はあ り ません。

階層デザイン : デザインの再利用 japan.xilinx.com 8UG905 (2012.3) 2012 年 10 月 16 日

Page 9: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

コマンドおよび制約

重要 : read_checkpoint コマンドには、-mode out_of_context オプシ ョ ンは使用できません。このモジュールはチェッ クポイン トの一部と して保存されるので、チェッ クポイン ト を書き出す際にはツールが正しいモードであるかど うかを必ず確認して ください。

OOC 制約

OOC (out-of-context) モジュールを問題なく インプ リ メン トするには、完全デザインにインスタンシエート される OOCモジュールのコンテキス ト を記述する必要があ り ます。 これには、 ク ロ ッ ク ポートの定義、 定数および未接続ピン、物理制約、 タイ ミ ング要件などが含まれます。

次の表は、 OOC インプ リ メ ンテーシ ョ ンで使用すべきタイ ミ ング制約、 配置制約、 コンテキス ト制約を リ ス ト しています。 これらの制約の多くは、 どのデザイン フローでも使用できます。 詳細は、『Vivado Design Suite ユーザー ガイド : 制約の使用』 (UG903) を参照してください。

タイ ミ ング制約の例

• create_clock -period 8.000 -name clk -waveform {0.000 4.000} [get_ports clk]

• set_input_delay -clock <clock_name> 3.0 [get_ports <ports>]

• set_output_delay 5.0 -clock [get_clocks <clock_name>] [get_ports]

これらのタイ ミ ング制約の範囲は、 その OOC モジュール自体までです。 OOC インプリ メンテーシ ョ ンには、 インスタンスへのタイ ミ ング、 インスタンスからのタイ ミ ング、 インスタンス内部のタイ ミ ングなどすべてが含まれます。これには、 フォルス パスおよびマルチサイクル パスなどの特殊なパスも含まれます。

表 3 : タイ ミング制約

制約名 説明

set_input_delay入力遅延を定義するのに使用して、 OOC モジュールで許容される時間を概算します。OOC インプ リ メンテーシ ョ ンの配置を制御し、 最上位のタイ ミ ング クロージャを達成しやすく します。

set_output_delay出力遅延を定義するのに使用して、 OOC モジュールで許容される時間を概算します。OOC インプ リ メンテーシ ョ ンの配置を制御し、 最上位のタイ ミ ング クロージャを達成しやすく します。

create_clockOOC モジュール ポートのクロ ッ クを定義するのに使用します。create_clock 制約は、ク ロ ッ ク バッファーが最上位にインスタンシエート されていても、OOC モジュールにインスタンシエート されていても、 各ク ロ ッ ク ポート ごとに必要です。

表 4 : Pblock コマンド とプロパティ

コマンド /プロパティ名 説明

create_pblock 各 OOC インスタンスの最初の Pblock を作成するために使用するコマンドです。

resize_pblock サイ ト タイプ (SLICE、 RAMB36 など) と Pblock のサイ ト位置を定義するために使用するコマンドです。

add_cells_to_pblock

Pblock に含まれるインスタンスを指定するために使用するコマンドです。 通常、 個別インスタンスに対する階層レベルを指定します。 OOC インプ リ メンテーシ ョ ンの場合は、セル名を指定する代わりに、-top を使用して、OOC モジュールの下のセルすべてを指定します。

階層デザイン : デザインの再利用 japan.xilinx.com 9UG905 (2012.3) 2012 年 10 月 16 日

Page 10: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

コマンドおよび制約

Pblock コマンドおよびプロパティの例

• create_pblock <pblock_name>

• add_cells_to_pblock [get_pblocks <pblock_name>] -top

• resize_pblock [get_pblocks <pblock_name>] -add {SLICE_X0Y0:SLICE_X100Y100}

• resize_pblock [get_pblocks <pblock_name>] -add {RAMB18_X0Y0:RAMB18_X2Y20}

• set_property CONTAIN_ROUTING true [get_pblocks <pblock_name>]

Pblock に追加されるセルが -top を使用して指定されているこ とに注意して ください。 これは、 OOC インプ リ メ ンテーシ ョ ンでは、 OOC インスタンスが最上位になり、 OOC インスタンス全体が Pblock に含まれる必要があるからです。 -top を使用するこ とで、 OOC モジュールが最上位デザインにインポート される際に、 Pblock が正しい階層レベルに適切に変換されるよ う もな り ます。

重要 : 現在のバージ ョ ンのソフ ト ウェアでは、 1 つのリ ソース タイプに 1 つの長方形 (Pblock) しか使用できません。

OOC モジュール内のロジッ クをフロアプランする場合は、 ネス ト化された Pblock を使用できます。 子 Pblock は完全に親 Pblock 内に含まれる必要があ り ます。 Pblock 間の親子関係は、 次に示すよ うに -parent オプシ ョ ンを使用して宣言します。

create_pblock -parent <parent_pblock_name> <child_pblock_name>

前述のタイ ミ ング制約および物理制約だけでなく、 OOC インプ リ メンテーシ ョ ンのコンテキス ト を定義する制約もあ り ます。 コンテキス ト制約では、 OOC インプ リ メンテーシ ョ ンがインポート される最上位の環境を定義します。

CONTAIN_ROUTING

配線リ ソースが Pblock に含まれないよ うに配線を制御する Pblock プロパティです。 デフォルト の値は false です。 Pblock RANGE に完全に含まれるパスのみが含まれます (例 : BUFGMUX の範囲がない場合、BUFGMUX を出入りするパスは含まれません。 これは BUFGMUX のよ う な多くのコンポーネン トで必要と されるビヘイビアです)。

EXCLUDE_PLACEMENT

定義された Pblock RANGE 内で Pblock に含まれないロジッ クが配置されないよ うにするため使用する Pblock プロパティです。 デフォルトは false です。このプロパティは OOC インプ リ メンテーシ ョ ンには影響しませんが、 アセンブリ中の最上位ロジッ クの配置に影響します。アセンブ リ中に最適な結果となるので、 値を false のままにしておく こ とをお勧めします。

表 4 : Pblock コマンド とプロパティ

コマンド /プロパティ名 説明

表 5 : コンテキスト コマンド とプロパティ

コマンド /プロパティ名 説明

HD.CLK_SRC OOC インプ リ メンテーシ ョ ンで、 ク ロ ッ ク バッファーが OOC モジュール外で使用される場合に、 それをインプ リ メ ンテーシ ョ ン ツールに伝えるため使用します。 値は、 ク ロ ッ ク バッファー インスタンスの位置になり ます。

HD.PARTPIN_LOCS

配線される指定ポートの特定のインターコネク ト位置を定義するために使用し、HD.PARTPIN_RANGE の値を上書きします。 内部 OOC ロジッ クの配置配線に影響します。

ク ロ ッ ク ポートに使用する と、 ク ロ ッ クのローカル配線が推測され、 専用接続で使用されなくなるので、 使用しないでください。

階層デザイン : デザインの再利用 japan.xilinx.com 10UG905 (2012.3) 2012 年 10 月 16 日

Page 11: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

コマンドおよび制約

重要 : set_logic バウンダ リ最適化制約を間違って指定する と、 不正なビヘイビアおよびツール エラーが発生する可能性があ り ます。 たとえば、 出力ポート を OCC モジュールで未接続と して定義したのに、 実際にはそれが最上位で使用される場合、 次のよ うなエラー メ ッセージが表示されます。

ERROR:[Opt 31-67] Problem:A LUT2 cell in the design is missing a connection on input pinI0, which is used by the LUT equation.

コンテキス ト制約の例

• set_property HD.CLK_SRC BUFGCTRL_X0Y16 [get_ports <port_name>]

• set_property HD.PARTPIN_LOCS INT_R_Xx1Yy1 [get_ports <port_name>]

• set_property HD.PARTPIN_RANGE SLICE_Xx1Yy1 :SLICE_Xx2Yy2 [get_ports <port_name>]

• set_logic_unconnected [get_ports <port_name>]

• set_logic_one [get_ports <port_name>]

• set_logic_zero [get_ports <port_name>]

モジュール インプ リ メンテーシ ョ ン フローの場合、デフォルトではインターフェイス ネッ ト (OCC モジュール ポートに接続されるモジュール内のネッ ト ) は配線されません。 これらのインターフェイス ネッ トが配線されるよ うにするには、 HD.PARTPIN 制約を使用してモジュールをロ ッ クする必要があ り ます。配置配線モジュール ポート (またはパーティシ ョ ン ピン) の配置を素早く取得するには、 HD.PARTPIN_RANGE に OOC モジュールの Pblock SLICE 範囲の値を付けます。 これらのピンのさ らに詳細な配置を取得するには、 さ らに厳密な HD.PARTPIN_RANGE 値を使用するか、 明示的な HD.PARTPIN_LOCS 値を指定します。 最適なサイ トや範囲を決定するには、 Vivado IDE で [Device]ビューを開いて、 次のアイコンをク リ ッ ク して配線リ ソースをオンにします。

拡大する と、 図 1 のよ うに INT の位置が表示されます (この図では見やすくするために配線リ ソースを非表示にしています)。

HD.PARTPIN_RANGE

指定したポー ト を配線するために使用可能なコンポーネン ト サイ ト (SLICE、DSP、 BRAM) またはインターコネク ト タイル (INT) の範囲を定義するために使用します。 ク ロ ッ ク ポートに使用する と、 ク ロ ッ クのローカル配線が推測されるので、 使用しないでください。

専用接続には使用しないでください。

set_logic_unconnected 最上位で未接続のままになる指定した出力ポートに対して、追加で最適化が実行できるよ うにな り ます。

set_logic_one 最上位の VCC で駆動される指定した入力ポートに対して、 追加で最適化が実行できるよ うにな り ます。

set_logic_zero 最上位で GND で駆動される指定した入力ポートに対して、 追加で最適化が実行できるよ うにな り ます。

表 5 : コンテキスト コマンド とプロパティ

コマンド /プロパティ名 説明

階層デザイン : デザインの再利用 japan.xilinx.com 11UG905 (2012.3) 2012 年 10 月 16 日

Page 12: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

コマンドおよび制約

最上位アセンブリ (再利用) コマンド

アセンブリでは、 前にインプ リ メン ト したモジュールをモジュール インプ リ メンテーシ ョ ン フローから読み込む必要があ り ます。パーティシ ョ ン分割された各インスタンスのチェッ クポイン トは、必ず存在している必要があ り ます。また、 それぞれのチェッ クポイン トは、 インプ リ メ ン ト済み OOC モジュールを読み込む各インスタンスのブラ ッ クボッ クス と一緒に最上位デザインに読み込まれます。 これで標準的なインプリ メンテーシ ョ ン コマンドを使用して、まだ配置配線されていないデザイン部分をインプリ メン トできるよ うにな り ます。

合成

パーティシ ョ ン分割されたインスタンスそれぞれに対するブラ ッ クボッ ク スを含む最上位ネッ ト リ ス ト が必ず必要です。 これには、 最上位合成に、 パーティシ ョ ン分割済みのインスタンスのモジュール/エンティティ宣言が含まれ、ロジッ クは含まれないよ うにする必要があ り ます。

最上位合成は、 通常すべての最上位ポート で IO バッファーを推論しますが、 IO バッファーが OOC モジュールに特にインスタンシエート される場合は、 ポート ご とに最上位合成で IO バッファー挿入をオフにする必要があ り ます。Vivado 合成でこれを実行する属性は BUFFER_TYPE です。BUFFER_TYPE およびその他の合成属性の詳細は、『VivadoDesign Suite ユーザー ガイ ド : 合成』 (UG901) を参照して ください。

インプリ メンテーシ ョ ン

最上位インプリ メンテーシ ョ ンは、 次の 2 つの手順を除いて、 標準デザインと同じよ うに実行できます。

1. パーティシ ョ ン分割されたインスタンスごとに OOC チェッ クポイン ト を読み込みます。

2. 保持レベル (logical、 placement、 routing) を選択します。

X-Ref Target - Figure 1

図 1 : INT タイルの位置

階層デザイン : デザインの再利用 japan.xilinx.com 12UG905 (2012.3) 2012 年 10 月 16 日

Page 13: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

コマンドおよび制約

OOC チェ ッ クポイン トの読み込み

OOC チェッ クポイン トは、 read_checkpoint コマンドを使用して読み込みます。 最上位デザインは既に開いており、 パーティシ ョ ン分割されたインスタンスにそれぞれブラ ッ クボッ クスが含まれる必要があ り ます。

read_checkpoint -cell <cell name> <file> [-strict]

保持レベルの設定

OOC チェッ クポイン ト を読み込んだら、 このモジュールの保持レベルを定義する必要があ り ます。

インポート された OOC チェッ クポイン トの配置配線をロ ッ クするには、lock_design という Tcl プロシージャーが存在する必要があ り ます。

lock_design <cell_name> <preservation> <lock_value>

このプロシージャー内で使用できる保持レベルは、 次のとおりです。

• logical : 論理デザインを保持します。 配置または配線情報は使用されますが、 ツールが結果を改善できる可能性がある場合は変更可能です。

• placement (デフォルト ) : 論理および配置デザインが保持されます。配置情報は使用されますが、 ツールが結果を改善できる可能性がある場合は変更可能です。

• routing : 論理および配置配線デザインが保持されます。内部配線は保持されますが、 インターフェイス ネッ トは保持されません。 OOC インプ リ メンテーシ ョ ン中は、 CONTAIN_ROUTING 制約を使用する必要があ り ます。

これらのプロパティ以外の組み合わせはサポート されません。 また、 必要な保持レベルに関係なく、 物理データベース全体は配線も含めてまだ読み込まれます。 物理データベースは、ツールで結果が改善できる と判断されない限りは、変更されません。

最上位アセンブリ (再利用) 制約

最上位デザインで OOC モジュールを再利用する場合は、すべての標準的なデザイン制約を適用できます。 OOC インプリ メンテーシ ョ ンに使用される OOC 制約は、 チェッ クポイン トに保存され、 デザインに適用可能なと きに適用されます。

表 6 : read_checkpoint のオプシ ョ ン

オプシ ョ ン名 説明

-cell OOC モジュールの完全な階層名を指定するために使用します。

-strict セルを置き換えるのにポート が完全に一致する必要があるので、 そのパーツ、 パッケージ、 スピードグレード値が同じかど うかがチェッ ク されます。

<file> 読み込む OOC チェッ クポイン ト を指定します。

表 7 : Tcl プロシージャーの lock_design 引数

引数名 説明

<cell_name> ロ ッ ク される階層セル名です。

<preservation> 保持レベルを指定します。使用できる値は、 logical、 placement、 または routing、デフォルト値は placement です。

<lock_value> 1 でロ ッ ク、 0 でロ ッ ク解除になり ます。

階層デザイン : デザインの再利用 japan.xilinx.com 13UG905 (2012.3) 2012 年 10 月 16 日

Page 14: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

Tcl スクリプ ト

Tcl スクリプ トこのセクシ ョ ンでは、 提供されているスク リプ トの詳細について説明します。 ユーザーの必要性に合わせてスク リプト を修正するための参照にして ください。

design.tcldesign.tcl スク リプ トは、 提供されているスク リプ ト を実行するために知っておく必要のある重要なファ イルです。後のセクシ ョ ンでは、提供されるその他のさまざまなスク リプ トについて説明しますが、 design.tcl を編集するだけで、 これらのスク リプ ト を使用したデザインおよびフローを設定するこ とができます。

セクシ ョ ン 1 : Tcl 変数

このセクシ ョ ンのコマンドでは、 その他の Tcl ファ イルの存在するディ レク ト リだけが設定されます。 この部分は編集する必要はあ り ません。 1 つまたは複数の Tcl の param を設定するコマンドはあ り ますが、 コ メン ト アウ ト されています。 これは通常必要あ り ませんが、 必要であればスク リプ トでサポート されます。

set tclParams [list <param1> <value> <param2> <value> ...<paramN> <value>]

セクシ ョ ン 2 : 変数の設定

このセクシ ョ ンで定義される変数は、 フローのどの部分が実行されるかを定義します。 これによ り、 デザインの 1 段階に集中でき、その他の手順は必要な場合にのみ実行できます。次の表では、これらの変数の詳細を説明しています。

このセクシ ョ ンには、 フロー制御変数に加えて、 入力および出力ディ レク ト リ も含まれます。 次の表では、 これらのディ レク ト リについて説明しています。

表 8 : フロー制御変数

変数名 説明

synthBlock1 に設定される と、 $oocModules で定義されるすべてのモジュールに対して synth_design -mode out_of_context が実行されます。 結果は $synthDir/$module に出力され、 $netlistDir/$module にもコピーされます。

implBlock

1 に設定される と、 $oocModules で定義されるすべての $module#_instances に対してインプ リ メ ンテーシ ョ ン (opt_design、 place_design、 phys_opt_design、route_design) が実行されます。インプ リ メンテーシ ョ ンのどの部分を実行するか制御するには、 run.tcl スク リプ ト を参照して ください。

ネッ ト リ ス トは $netlistDir/$module に含まれている必要があ り ます。サードパーティ フローの場合はこのフォルダーにネッ ト リ ス ト を手動で追加するか、 この手順の前に synthBlock を実行します。

synthTop 1 に設定される と、 最上位モジュールに対して synth_design が実行されます。 結果は$synthDir/$top に出力され、 $netlistDir/$top にもコピーされます。

implTop

1 に設定される と、 最上位ネッ ト リ ス トが読み込まれ、 各 OOC インスタンスの保持レベルがロッ ク され、最上位のインプ リ メンテーシ ョ ン (opt_design、place_design、phys_opt_design、 route_design) が実行されます。 インプ リ メンテーシ ョ ンのどの部分を実行するか制御するには、 run.tcl スク リプ ト を参照して ください。

各 OOC インスタンスには、$implDir/$instance にチェッ クポイン トが必要です。チェッ クポイン トがない場合は、 この手順よ り前に implBlock を実行します。

階層デザイン : デザインの再利用 japan.xilinx.com 14UG905 (2012.3) 2012 年 10 月 16 日

Page 15: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

Tcl スクリプ ト

セクシ ョ ン 3 : 最上位の定義

このセクシ ョ ンでは、 合成およびインプリ メンテーシ ョ ンの最上位モジュールに関するすべてが定義されます。

サードパーティ合成フローの場合、 すべての Verilog および VHDL 変数は空のままにできます。 最上位のネッ ト リ ストは、 $netlistDir/$top/$top.{edf, edn, ngc} に保存されます。

表 9 : ディ レク ト リ変数

変数名 説明

srcDir rtl、 prj、 xdc および netlist の下位ディレク ト リ を含む主要なソース ディ レク トリです。

rtlDir$srcDir の下位ディ レク ト リ と仮定され、合成用の RTL ソース ファ イルすべてが含まれます。 このディ レ ク ト リ には各モジュールの下位フォルダー (例 : $top、 $module1、$module2) を含めるこ とをお勧めします。

prjDir

$srcDir の下位ディ レク ト リ と仮定され、XST の prj ファ イルが保存されます。 これによ り、 XST から VDS へデザインを変換しやすくな り ますが、 XST ファ イルが存在しな くても PRJ は簡単に作成できます。 prj ファ イルが解析される と、 合成で読み込まれるファイルがツールに伝えられます。

xdcDir $srcDir の下位ディ レク ト リ と仮定され、最上位と OOC インスタンスの XDC ファ イルが保存されます。

netlistDir $srcDir の下位ディ レク ト リ と仮定され、サードパーティ合成のネッ ト リ ス ト ファ イルと VDS フローを使用した場合の synth_design の結果が保存されます。

synthDir

RTL フローを実行した場合の synth_design の出力ディ レク ト リです。最上位および各 OOC モジ ュールの下位デ ィ レ ク ト リ が作成されます。 これらの結果は$netlistDir にコピーされ、合成フローの使用の有無に関係なく、互換性のあるインプリ メンテーシ ョ ン スク リプ トができるよ うにな り ます。

implDir すべてのインプリ メンテーシ ョ ンの出力ディ レク ト リです。 最上位および各 OOC インスタンスの下位ディ レク ト リが作成されます。

表 10 : 最上位モジュールの変数

変数名 説明

top 最上位モジュール名

top_prj 合成の PRJ ファ イルへのパス。こ こで定義される と、top_vlog、top_sysvlog、top_vhdl の値が上書きされます。

top_vlog_headers Verilog ヘッダー ファ イルの識別に使用

top_vlog_defines Verilog 定義に使用

top_vlog Verilog ファ イルと関連するコンパイル ラ イブラ リの定義に使用

top_sysvlog SystemVerilog ファ イルと関連するコンパイル ライブラ リの定義に使用

top_vhdl VHDL ファ イルと関連するコンパイル ライブラ リの定義に使用

top_cores IP コアのネッ ト リ ス トの定義に使用

top_xdc 合成で使用される XDC ファ イル

top_impl_xdc インプリ メンテーシ ョ ンで使用される XDC ファ イル

top_impl_preservation 編集不可。 現時点ではサポート なし。

top_impl 編集不可。 最上位インプリ メンテーシ ョ ンのすべての変数のリ ス ト

topModule 編集不可。 最上位に関するすべての変数のリ ス ト

階層デザイン : デザインの再利用 japan.xilinx.com 15UG905 (2012.3) 2012 年 10 月 16 日

Page 16: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

Tcl スクリプ ト

セクシ ョ ン 4 : OOC モジュールの定義

このセクシ ョ ンでは、最上位デザインのインスタンスすべてを含む OOC モジュールに関するすべてが定義されます。このセ ク シ ョ ンは、 デザイ ンのすべての OOC モジュールに対し て複製する必要があ り ます。 また、module#_inst#_* とい う名前の変数はモジュールのインスタンスごとに複製する必要があ り ます。

ヒン ト : サードパーティ合成フローまたはネッ ト リ ス トのみの IP の場合、すべての Verilog および VHDL 変数は空のままにできます。モジュールのネッ ト リ ス トは、$netlistDir/$module#/$module#.{edf, edn, ngc} に保存されます。 モジュールの下位レベルの IP コア ネッ ト リ ス トは、 $module#_cores で定義できます。

セクシ ョ ン 5 : デザイン サマリ

このセクシ ョ ンには、スク リプ トで合成/インプ リ メン ト されるすべてのモジュールのリ ス トである数個のリ ス トのみが含まれます。 $Modules 変数には、 $oocModules および $topModule にリ ス ト される OOC モジュールがすべてリ ス ト されるはずです。

また、 このセクシ ョ ンは、合成およびインプ リ メンテーシ ョ ン ツールを呼び出す run.tcl スク リプ ト も source で読み込みます。

表 11 : OOC モジュールの変数

変数名 説明

module# モジュール名

module#_prj 最上位合成の PRJ ファ イルへのパス。 こ こで定義される と、 top_vlog、top_sysvlog、 top_vhdl の値が上書きされます。

module#_vlog_headers Verilog ヘッダー ファ イルの識別に使用

module#_vlog_defines Verilog 定義に使用

module#_vlog Verilog ファ イルと関連するコンパイル ラ イブラ リの定義に使用

module#_sysvlog SystemVerilog ファ イルと関連するコンパイル ライブラ リの定義に使用

module#_vhdl VHDL ファ イルと関連するコンパイル ライブラ リの定義に使用

module#_cores IP コアのネッ ト リ ス トの定義に使用

module#_xdc 合成で使用される XDC ファ イル

module#_inst#_name OOC モジュールのローカル インスタンス名 (例 : u1)

module#_inst#_hierName OOC モジュールの完全階層インスタンス名 (例 : a/b/u1)。アセンブ リ中にOOC インスタンスを最上位へ正し く インポートするために使用

module#_inst#_xdc OOC インプ リ メンテーシ ョ ンで使用される XDC ファ イル

module#_inst#_preservationアセンブ リ 中にイ ンポー ト された OOC イ ン ス タ ン スの保持レベル(logical、 placement、 routing) を定義するために使用され、 lock_design プロシージャへ渡されます。

module#_instance# 編集不可。 OOC インスタンスに関するすべての変数のリ ス ト

module#_instances モジュールに対して定義された $module#_instance# 変数すべてのリス ト

階層デザイン : デザインの再利用 japan.xilinx.com 16UG905 (2012.3) 2012 年 10 月 16 日

Page 17: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

既知の問題

既知の問題現在の 2012.3 リ リースの階層デザイン フローに関する既知の問題について説明します。

OOC モジュール内の IP ロジックの制限

現在のと ころ、 OOC モジュール内に IO バッファーを挿入するこ とはお勧めできません。 IO を含む IP コアがある場合、 またはこれが必要なその他の状況では、 すべての専用タイプの接続を同じパーティシ ョ ンに置きます。 OOC モジュールに I/OLOGIC ブロ ッ クが含まれる場合は、 それに関連するバッファーもモジュールに含まれるはずです。

配線保持の制限

現在のと ころ、 OOC モジュールをインポートする際に、 配線保持に関する次のよ うな制限があ り ます。

• インターフェイス ネッ トが保持されません。

• OOC インプ リ メンテーシ ョ ンで CONTAIN_ROUTING Pblock プロパティが使用されている必要があ り ます。 これは、 配線がロッ ク される と回避するこ とのできないよ うな配線競合が発生しないよ うにするためです。

• インターフェイス配線が存在する必要があ り ます。 これらは保持はされませんが、 インターフェイス配線は存在する必要があ り、 OOC インプリ メンテーシ ョ ン中に配線される必要があ り ます。 これには、 OOC インプ リ メンテーシ ョ ンで HD.PARTPIN 制約を使用する必要があ り ます。

グローバル クロックの制限

最上位のバッファーで駆動されるク ロ ッ クは、 OOC インプ リ メ ンテーシ ョ ン中は配線されません。 配線の概算が使用されます。 HD.CLK_SRC を使用する と配線の概算は改善されます。 OOC モジュール内のク ロ ッ ク バッファーはOOC インプ リ メンテーシ ョ ン中に配線されます。

OOC モジュールよ り上位で定義されるク ロ ッ ク間の関係は、 OOC モジュールがコンパイルされた時点ではわかり ません。 たとえば、同じ MMCM で生成されても位相シフ ト値の異なる 2 つのクロ ッ クは、 OOC モジュール内に両方のクロッ クが読み込まれる場合には、 同じである と判断されます。

タイ ミ ング制約処理に関する既知の問題

物理およびタイ ミ ング制約はすべて、 write_checkpoint または write_xdc で作成されるデザイン XDC ファ イルに格納されます。 タイ ミ ング制約の複製、 または再利用フローが使用される際のその他の問題が発生しないよ うにするには、 これらの OOC モジュールのチェッ クポイン トの作成時にバウンダ リ タイ ミ ング制約を削除するこ とをお勧めし ます。 これらの制約には、 最上位で作成される ク ロ ッ クに対する create_clock、 set_input_delay、set_output_delay などがあ り ます。 これらの制約は、 モジ ュール チェ ッ ク ポ イ ン ト を書き出す前にreset_timing コマンドを実行する と削除できます。 これによ り、 内部タイ ミ ング制約と set_logic_* 制約が削除されるので、最上位デザインのインプ リ メンテーシ ョ ンが終了するには、 これらの制約を再構築する必要があ り ます。 これには、 これらの制約のみを含むモジュール XDC ファ イルを読み込み直するか、最上位 XDC ファ イルにこれらの制約を含めます。

階層デザイン : デザインの再利用 japan.xilinx.com 17UG905 (2012.3) 2012 年 10 月 16 日

Page 18: Vivado Design Suite - Xilinx - All ProgrammablešŽ層デザイン : デザインの再利用 japan.xilinx.com 5 UG905 (2012.3) 2012 年 10 月 16 日 チェックポイント チェックポイント

階層デザイン : デザインの再利用 japan.xilinx.com 18UG905 (2012.3) 2012 年 10 月 16 日

付録 A

その他のリソース

ザイリンクス リソースアンサー、 資料、 ダウンロード、 フォーラムなどのサポート リ ソースは、 次のザイ リ ンクス サポート サイ ト を参照して ください。

http://japan.xilinx.com/support

ザイ リ ンクス資料で使用される用語集は、 次を参照して ください。

http://japan.xilinx.com/company/terms.htm

ソリューシ ョ ン センターデバイス、 ツール、 IP のサポートについては、 ザイ リ ンクス ソ リ ューシ ョ ン センターを参照して ください。 ト ピックには、 デザイン アシスタン ト、 アドバイザリ、 ト ラブルシュート ヒ ン ト などが含まれます。

リファレンス• Vivado™ Design Suite 2012.3 資料ページ :

http://japan.xilinx.com/support/documentation/dt_vivado_vivado2012-3.htm

• 『階層デザイン手法ガイ ド』 (UG748)