Vivado Design Suite におけるバージョン管理システムの使用...

22
XAPP1165 (v1.0) 2013 8 5 japan.xilinx.com 1 © Copyright 2013 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. 概要 このアプリケーション ノ ー ト で は、 Vivado® Design Suite の非プロジェクト モードとプロジェクト モード の両方でバージ ョ ン管理システムを使用する場合の推奨事項について説明し ます。 具体的には、 Vivado Design Suite Manage IP 機能を使用して IP を管理す る こ と 、デザ イ ン ソースをリモート ファ イルのまま扱うこと、 Tcl (Tool Command Language) スクリプトを使用してデザイン ソース管理、デザ イ ン実行、 プ ロ ジ ェ ク ト 作成を行 う こ と を推奨し ます。 こ のアプ リ ケーシ ョ ン ノ ー ト には、 こ の推奨設 計事項に従って RTL からビッ ト ス ト リーム生成までを実行できる完全なサンプル デザインが付属して います。 また、 非プロジェク ト モードとプロジェクト モー ド の両方で Git を使用して初期デザイン ポジ ト リ を作成する Tcl ス ク リ プ ト も 付属 し ま す。 はじめに Vivado Design Suite IP/ システム中心型の画期的なデザイン環境で、各種デザイン ツールを共通の環 境に統合する こ とで、 デザインの統合と インプ リ メ ンテーシ ョ ンを簡単にしています。 チームで設計を 行う場合、 プロジェク トの管理とコラボレーションを円滑にするためにバージョン管理システムを用い ますが、Vivado Design Suite のよ う なデザイ ン環境でのバージ ョ ン管理システムの運用は容易ではあ り ません。 た と えば複雑な FPGA プ ロ ジ ェ ク ト の場合、 1 つのプ ロ ジ ェ ク ト に複数のデザ イ ン ソースおよ びコンフィギュレーション ファイルが含まれます。 このとき、プロジェク トを再作成してインプリ メン テーシ ョ ンを再実行するためにバージ ョ ン管理が必要と なるのは、一部のフ ァ イルのみです。た と えば、 Vivado Design Suite では次のファイルが使用されます。 RTL およびネ ッ ト リ ス ト ファイル (VerilogSystemVerilogVHDLEDIF を含む) System Generator モデル (.mdl.slx) IP-XACT コア ファイル (.xci.mem.coe) Vivado IP インテグレーター ブロック図ファイル (.bd) エンベデッ ド サブシステム (.xmp) およびファイル (.elf.bmm) ザイリンクス デザイン制約ファイル (.xdc) デザインの生成とコンパイルを実行するスク リプト (.tcl) コンフィギュレーション フ ァ イ ル。 Vivado シミュレータおよび Vivado ロジック解析のコンフィ ギュレーション ファイル (.wcfg) を含む Vivado Design Suite は特定のバージ ョ ン管理システムとの組み合わせを想定していません。 あらゆる バージ ョ ン管理システム と組み合わせて使用でき る よ う 、 次の機能を備えています。 ファイルが変更された場合のみプロジェク ト ファイルとタイムスタンプを更新する Vivado Design Suite プロジェク トを開いても、ファイルを変更しない限りバージョンが古くなるこ とはあ り ません。 ASCII ベースのプロジェク ト ファイルをサポート これには、 プロジェク ト、 ソース管理、 IP 設定、 フ ロ ー制御、 run 管理などに関するファイルが含 まれます。 ほとんどの場合、 ファイルは XML 形式のため、 容易にカス タ ム解析が可能です。 バイ ナリ フ ァ イルは、 知的所有権で保護された情報を格納する場合など、 最小限にと どめています。 広範な Tcl ス ク リ プ ト 機能をサポー ト アプリケーション ノート : Vivado Design Suite XAPP1165 (v1.0) 2013 8 5 Vivado Design Suite におけるバージ ョ ン管理 システムの使用 著者 : Jim Wu

Transcript of Vivado Design Suite におけるバージョン管理システムの使用...

Page 1: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 1

© Copyright 2013 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.

概要 このアプ リ ケーシ ョ ン ノー ト では、 Vivado® Design Suite の非プロジェ ク ト モード とプロジェ ク ト

モードの両方でバージ ョ ン管理システムを使用する場合の推奨事項について説明します。 具体的には、

Vivado Design Suite の Manage IP 機能を使用して IP を管理するこ と、デザイン ソースを リモート ファ

イルのまま扱う こ と、Tcl (Tool Command Language) スク リプ ト を使用してデザイン ソース管理、デザ

イン実行、 プロジェク ト作成を行う こ とを推奨します。 このアプリ ケーシ ョ ン ノートには、 この推奨設

計事項に従って RTL からビッ ト ス ト リーム生成までを実行できる完全なサンプル デザインが付属して

います。 また、 非プロジェク ト モード とプロジェク ト モードの両方で Git を使用して初期デザイン リポジ ト リ を作成する Tcl スク リプ ト も付属します。

はじめに Vivado Design Suite は IP/システム中心型の画期的なデザイン環境で、各種デザイン ツールを共通の環

境に統合するこ とで、 デザインの統合と インプリ メンテーシ ョ ンを簡単にしています。 チームで設計を

行う場合、 プロジェク トの管理と コラボレーシ ョ ンを円滑にするためにバージ ョ ン管理システムを用い

ますが、Vivado Design Suite のよ うなデザイン環境でのバージ ョ ン管理システムの運用は容易ではあ り

ません。たとえば複雑な FPGA プロジェク トの場合、1 つのプロジェク トに複数のデザイン ソースおよ

びコンフ ィギュレーシ ョ ン ファ イルが含まれます。 このと き、プロジェク ト を再作成してインプ リ メン

テーシ ョ ンを再実行するためにバージ ョ ン管理が必要となるのは、一部のファイルのみです。たとえば、

Vivado Design Suite では次のファイルが使用されます。

• RTL およびネッ ト リ ス ト ファ イル (Verilog、 SystemVerilog、 VHDL、 EDIF を含む)

• System Generator モデル (.mdl、 .slx)

• IP-XACT コア ファ イル (.xci、 .mem、 .coe)

• Vivado IP インテグレーター ブロッ ク図ファイル (.bd)

• エンベデッ ド サブシステム (.xmp) およびファイル (.elf、 .bmm)

• ザイ リ ンクス デザイン制約ファイル (.xdc)

• デザインの生成と コンパイルを実行するスク リプ ト (.tcl)

• コンフ ィギュレーシ ョ ン ファ イル。 Vivado シ ミ ュレータおよび Vivado ロジッ ク解析のコンフ ィ

ギュレーシ ョ ン ファ イル (.wcfg) を含む

Vivado Design Suite は特定のバージ ョ ン管理システムとの組み合わせを想定していません。 あらゆる

バージ ョ ン管理システムと組み合わせて使用できるよ う、 次の機能を備えています。

• ファ イルが変更された場合のみプロジェク ト ファ イルと タイムスタンプを更新する

Vivado Design Suite プロジェク ト を開いても、ファ イルを変更しない限りバージ ョ ンが古くなるこ

とはあ り ません。

• ASCII ベースのプロジェク ト ファ イルをサポート

これには、 プロジェク ト、 ソース管理、 IP 設定、 フロー制御、 run 管理などに関するファイルが含

まれます。 ほとんどの場合、 ファ イルは XML 形式のため、 容易にカスタム解析が可能です。 バイ

ナリ ファ イルは、 知的所有権で保護された情報を格納する場合など、 最小限にとどめています。

• 広範な Tcl スク リプ ト機能をサポート

アプリケーシ ョ ン ノート : Vivado Design Suite

XAPP1165 (v1.0) 2013 年 8 月 5 日

Vivado Design Suite におけるバージ ョ ン管理システムの使用著者 : Jim Wu

Page 2: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

はじめに

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 2

オブジェク ト指向の Tcl 拡張によ り、 複雑なもの、 カスタマー独自のもの、 自動化されたものを含

め、 あらゆるバージ ョ ン管理システムと組み合わせて使用できます。

Vivado がサポートするデザイン フロー モードには、 非プロジェク ト モード とプロジェク ト モードの

2 つがあ り ます。 非プロジェク ト モードは Tcl スク リプ ト を利用してコンパイルを実行するスタイルの

フローで、 ソースおよびデザイン プロセスはユーザー自身で管理します。 プロジェク ト モードはプロ

ジェク ト をベースにしたフローで、 デザイン プロセスおよびデザイン データはプロジェク トおよびプ

ロジェク ト ステート を使用して自動的に管理されます。 どちらのフローも、 Tcl スク リプ トによるバッ

チ モードでの実行および Vivado 統合設計環境 (IDE) と呼ばれる GUI 環境でのインタラ クティブな実

行の両方が可能です。これら 2 種類のデザイン フロー モードの詳細は、『Vivado Design Suite ユーザー

ガイ ド : デザイン フローの概要』 (UG892) [参照 1] を参照してください。

表 1 に、これら 2 つのモードでバージ ョ ン管理システムを使用する場合の推奨事項の概要をまとめます。

注記 : Tcl コマン ドの詳細は、 『Vivado Design Suite Tcl コマン ド リ フ ァ レンス ガイ ド』 (UG835) [参照 2] を参照してください。

次のセクシ ョ ンからは、 プロジェク ト モード と非プロジェク ト モードの両方で実際にサンプル デザイ

ンを使用しながら、プロジェク ト ファイル システムについて説明します。これらのセクシ ョ ンでは、Gitを使用して リポジ ト リ を作成する手順についても説明していきます。 Git はオープンソースで分散型の

バージ ョ ン管理/ソース コード管理システムです。分散モデルを採用し、速度と効率に優れた Git は、近

年ユーザー数を増やしています。 ザイ リ ンクス オープンソース Wiki [参照 3] で提供しているプロジェ

ク トにも、ソース管理に Git を使用しているものがあ り ます。Git の詳細は、Git のウェブサイ ト [参照 4]を参照してください。

表 1 : バージョ ン管理システムを使用する場合の推奨事項の概要

モード 推奨事項

非プロジェク ト モード デザイン ソースの管理、 ツール オプシ ョ ンの制御、デザインの実行、および

インプリ メンテーシ ョ ン結果の生成は Tcl スク リプ ト を作成して実行する

プロジェク ト モード Vivado Design Suite の Tcl コマンド write_project_tcl で生成したプ

ロジェク ト作成スク リプ ト を用いて、 リモート プロジェク ト ソースを使用

する

両モード共通 すべての IP 出力を専用のディ レク ト リに生成し、 再帰的にチェッ ク インで

きるよ う、 IP の作成、 設定、 生成にはスタンドアロンの Manage IP 機能を

使用する

Page 3: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

バージョ ン管理と IP

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 3

バージ ョ ン管理と IP

IP の管理

非プロジェク ト モード、 プロジェク ト モードいずれの場合も、 IP の作成、設定、生成には Vivado IDE(図 1) が備えるスタンドアロンの Manage IP 機能を使用し、 IP および IP 出力をバージ ョ ン管理下にあ

るデザインの専用ディ レク ト リに生成するこ とを推奨します。非プロジェク ト モードおよびプロジェク

ト モードで IP を管理するには、 次の手順を実行します。

1. Vivado IDE の Getting Started ページで [Manage IP] をク リ ッ ク します。

2. Vivado IDE で、 Vivado IP カタログを使用して新規 IP を作成します。

X-Ref Target - Figure 1

図 1 : Vivado IDE の [Manage IP]

Page 4: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

バージョ ン管理と IP

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 4

3. IP の設定が完了したら、 IP リ ポジ ト リに含まれるファ イルの数を最小限にするために [GenerateOutput Products] ダイアログ ボッ クスで [Skip] をク リ ッ ク します (図 2)。

これによ り、 この IP の IP カタログ ファ イル (.xml)、 IP コンフ ィギュレーシ ョ ン ファ イル (.xci)、そして VHDL (.vho) または Verilog (.veo) の IP インスタンシエーシ ョ ン ファイルのみが生成されま

す。

4. ある IP に関連して、 バージ ョ ン管理下に置く必要のあるファ イルすべてを リ ス ト と して取得する

には、 get_files コマンドを実行します。 次に例を示します。

get_files -all -of [get_files <IP_NAME>.xci]

注記 : Vivado Design Suite 2013.2 を使用する場合は、 このアプ リ ケーシ ョ ン ノー ト のデザイン

ファ イルに含まれる git_manage_ip.tcl スク リプ ト を実行する必要があ り ます。 この Tcl スク

リ プ トは、 管理対象の IP 格納場所にある IP に関連するすべてのファ イルの リ ス ト を返し、 バー

ジ ョ ン管理が必要なすべての IP ファ イルを取得して、これらのファイルを Git リ ポジ ト リにチェッ

ク インするバッチ ファ イルを生成します。

5. 次の方法で、 既存の IP を IP リ ポジ ト リにインポート します。

a. IP ディレク ト リ を現在の IP 格納場所にコピーします。 次に例を示します。

file copy {C:\xapp\working\vcs_project_flow\xfft_0} {C:\xapp\working\vcs_ip_location}

b. add_files Tcl コマンドを使用して、 IP コンフ ィギュレーシ ョ ン ファ イル (.xci) を追加しま

す。 次に例を示します。

add_files {C:\xapp\working\ip_location\xfft_0\xfft_0.xci}

図 3 は、これらのコマンドを使用して既存の FFT コアを管理対象の IP 格納場所に追加した例です。

X-Ref Target - Figure 2

図 2 : [Generate Output Products] ダイアログ ボックス

X-Ref Target - Figure 3

図 3 : add_files Tcl コマンド

Page 5: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

バージョ ン管理と IP

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 5

6. IP を作成または追加したら、 同じディ レク ト リ構造、 IP コンフ ィギュレーシ ョ ン ファ イル (.xci)、データ ファ イル (.coe、 .mem など) をデザイン リ ポジ ト リに再帰的にチェッ ク インします。

管理対象の IP 格納場所にある IP を用いたシミ ュレーシ ョ ン

シ ミ ュレータまたはその他の EDA (Electronic Design Automation) ツールで使用する IP 出力ファ イル

の順序リ ス ト を生成する方法には、 次の 2 つがあ り ます。

report_compile_order Tcl コマンドを使用する方法

現在の Manage IP プロジェク トに含まれるすべての IP のコンパイル順を返すには、 次のコマンドを実

行します (図 4)。

report_compile_order -fileset {sources_1}

get_files Tcl コマンドを使用する方法

管理対象の IP 格納場所にある特定の IP のコンパイル順を返すには、次のコマンドを実行します (図 5)。

join [get_files -compile_order sources -used_in simulation -of [get_files xfft_0.xci]] \n

注記 : join コマンドを使用する と、 返された リ ス トが 1 ファ イルずつ改行して表示されます。

X-Ref Target - Figure 4

図 4 : report_compile_order Tcl コマンド

X-Ref Target - Figure 5

図 5 : get_files Tcl コマンド

Page 6: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

バージョ ン管理と IP

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 6

管理対象の IP 格納場所にある IP を用いたボトムアップ合成フロー

デザイン環境によっては、 IP の再コンパイル時間を短縮し、 合成結果を維持するためにボ ト ムアップ合

成を使用するこ とがあ り ます。 Manage IP プロジェク トではこれがサポート され、 自動化されています。

IP 出力を生成する際に、[Generate Output Products] ダイアログ ボッ クスで [Generate Synthesized DesignCheckpoint (.dcp)] をオンにします (図 6)。 これで、自動的に OOC (Out-of-Context) モジュール run が生

成され、 合成されます。 ボ ト ムアップ合成フローでデザイン リ ポジ ト リにチェッ クインするには、 この

DCP ファイルが必要です。

X-Ref Target - Figure 6

図 6 : 合成済みデザイン チェ ックポイン トの生成

Page 7: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

バージョ ン管理と IP

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 7

サンプル プロジェク トの IP 格納場所

図 7 に、非プロジェク ト モードおよびプロジェク ト モードでのサンプル デザインの IP 格納場所を示し

ます。

X-Ref Target - Figure 7

図 7 : サンプル デザインの IP 格納場所

Page 8: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

非プロジェク ト モード

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 8

サンプル デザインの IP 格納場所のディ レク ト リ構造は次のとおりです。

vcs_ip_location|-- git_manage_ip.tcl|-- coeffs| `-- fir_p2_1db_s3_50db.coe|-- dds_compiler_0| |-- dds_compiler_0.vho| |-- dds_compiler_0.xci| `-- dds_compiler_0.xml|-- fir_compiler_0| |-- fir_compiler_0.vho| |-- fir_compiler_0.xci| `-- fir_compiler_0.xml|-- ila_0| |-- ila_0.xci| `-- ila_0.xml|-- vio_i256_o256| |-- vio_i256_o256.xci| `-- vio_i256_o256.xml|-- xfft_0

|-- xfft_0.vho|-- xfft_0.xci`-- xfft_0.xml

非プロジェク ト モード

非プロジェク ト モードでは、 Vivado Design Suite はデザイン ソース と制約ファイルを直接入力と して

取り込み、 フロー全体を メモ リ内で実行します。 このモードではコンフ ィギュレーシ ョ ン ファ イルは

ハード ディ スクに保存されず、 プロジェク ト管理やフロー ナビゲーシ ョ ンの機能もあ り ません。 ただ

し、 任意の段階でデザイン チェッ クポイン トやレポート を作成し、 これらを Vivado IDE で開いてデザ

インを解析できます。 非プロジェク ト モードでは、 コマンド ラ インを使用した制御が可能なほか、 デ

ザイン チェッ クポイン ト を使用した制約の割り当てやクロスプローブなど、 Vivado IDE の強力な機能

も利用できます。

バージ ョ ン管理システムでは一般に非プロジェク ト モードが使用され、事実、その使用が強く推奨され

ています。非プロジェク ト モードでは、 ツールに渡される入力および使用するオプシ ョ ンはユーザーが

管理します。 コンパイルへのすべての入力、 およびこれらの入力からのコンパイルを制御して希望の最

終出力を生成する Tcl スク リプ ト をバージ ョ ン管理の対象に含めるこ とを推奨します。 このフローでリ

ポジ ト リにチェッ ク インする必要のあるファ イルは、 次のとおりです。

• コンパイルを実行し、 ツールのオプシ ョ ンを制御する Tcl スク リプ ト

• read_* または add_source Tcl コマンドに渡される入力ファイル

• オプシ ョ ンのツール レポートおよび出力ファイル (ビッ ト ス ト リーム、 デザイン チェッ クポイン

ト、 レポート など)

注記 : プロジェク ト全体をバージ ョ ン管理の対象にしないでください。

Page 9: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

プロジェク ト モード

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 9

非プロジェク ト モードにおけるサンプル デザインのディ レク ト リ ツリー

非プロジェク ト モードにおけるデザインのディ レク ト リ構造の例を次に示します。 これは、 インプ リ メ

ンテーシ ョ ンの実行および合成/インプリ メンテーシ ョ ン実行結果の再作成のために、 リポジ ト リでバー

ジ ョ ン管理が必要な最小限のファイルセッ トです。 IP はすべて Manage IP 機能を使用して生成した IP格納場所にあ り ます。

|-- script| |-- file_list.txt| `-- vivado_non-project.tcl|-- sim| `-- spectrum_top_tb.v`-- src

|-- constrs| |-- spectrum_top_physical.xdc| `-- spectrum_top_timing.xdc|-- verilog| |-- cplx_mult.v| `-- spectrum_top.v`-- vhdl

`-- heartbeat_gen.vhd

プロジェク ト モード

プロジェク ト モードでは、 Vivado IDE がプロジェ ク ト ファ イル システムを作成し、 プロジェ ク トの

データ と ステータスを管理します。 Vivado IDE でプロジェク ト を管理するには、 プロジェク ト モード

で Tcl コマン ド をインタ ラ クテ ィブに使用する方法と、 Tcl ス ク リ プ ト を使用する方法があ り ます。

Vivado IDE は、 デザイン サイクル全体にわたってインターフェイスを統一した堅牢なデザイン環境を

提供します。 プロジェク ト モードでは、 次の自動機能を利用できます。

• デザイン ソースおよびデザイン実行の設定と管理

• IP の設定、 インプリ メンテーシ ョ ン、 パッケージング

• 包括的なクロスプローブ機能によるデザインの解析と検証

• I/O、 ク ロ ッ ク、 タイ ミ ング、 フロアプランに対する制約の作成と割り当て

• デバッグおよび解析のための Vivado ロジッ ク解析コアの挿入

• ビッ ト ス ト リームの生成とプログラ ミ ング

Page 10: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

プロジェク ト モード

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 10

図 8 は、 Vivado IDE でサンプル デザインを開いたと ころです。

プロジェク ト モードでバージ ョ ン管理を使用する場合の推奨事項

プロジェク ト モードでバージ ョ ン管理システムを使用する場合の推奨事項は、 次のとおりです。

• すべての入力ソース (特に IP ソース) を リモート ソース ディ レク ト リに置いたままにする。

ソースはプロジェク トにインポートするのではなく、 参照先ソースと して追加します。

• プロジェク ト 、 ツール オプシ ョ ン、 設定を作成する Tcl スク リプ ト を作成および維持する。

Vivado Design Suite 2013.1 以降には、 プロジェク ト作成用の Tcl スク リプ ト をエクスポートする

Tcl コマンド write_project_tcl が用意されています。このスク リプ ト をプロジェク ト作成スク

リプ トのテンプレート と して使用し、 フローまたは入力ソースの場所を変更してカスタマイズでき

ます。

• プロジェク ト設定の変更はなるべくプロジェク ト作成 Tcl スク リプ ト内で行う。

Vivado IDE でインタラ クティブに行ったプロジェク トへの変更は、 write_project_tcl コマン

ドで新しい Tcl スク リプ トへ書き出す必要があ り ます。 バージ ョ ン管理システムのマージ機能を利

用して、 新しいスク リプ ト と リ ポジ ト リ内のスク リプ トの差異をなく します。

• バージ ョ ン管理システムでサポート されている方法でファイルをチェッ ク インおよびチェッ クアウ

トする。

Vivado IDE の Tcl コンソールでコマンド ラ インのコマンドを使用してファ イルをチェ ッ ク インお

よびチェッ クアウ トするこ と もできます。

X-Ref Target - Figure 8

図 8 : サンプル デザイン

Page 11: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

プロジェク ト モード

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 11

プロジェク ト モードにおけるサンプル プロジェク トのディ レク ト リ ツリー

プロジェク ト モードにおけるプロジェク トのディ レク ト リ構造の例を次に示します。

write_project_tcl コマンドを実行する と、 script ディ レク ト リに create_specturm_prj.tcl スク リプ トが生成されます。 このスク リプ トは、 プロジェク トおよびプロジェク ト モードで使用する

すべての設定を作成するものです。

vcs_project|-- debug| `-- hw_ila_data_1.wcfg|-- script | |-- file_list.txt| |-- git_project.tcl| `-- spectrum_vv_prj_flow.tcl|-- sim| |-- spectrum_top_tb.v| `-- spectrum_top_tb.wcfg|-- script| `-- spectrum_top_tb.wcfg`-- src

|-- constrs| |-- spectrum_top_physical.xdc| `-- spectrum_top_timing.xdc|-- verilog| `-- cplx_mult.v| `-- spectrum_top.v`-- vhdl

`-- heartbeat_gen.vhd

write_project_tcl Tcl コマンド

Vivado Design Suite 2013.1 以降には write_project_tcl コマン ド が用意されてお り、 VivadoDesign Suite プロジェク ト を任意のバージ ョ ン管理システムと組み合わせて使用できます。 このコマン

ドを実行する と、 現在のプロジェク ト を再作成する Tcl ス ク リプ トがエクスポート されます。 こ こで、

次のいずれかを実行します。

• Vivado IDE を使用して手動でプロジェク ト を作成する。

• 既存のプロジェク ト を使用し、 入力ソースとプロジェク ト設定を用いてプロジェク ト を再作成する

Tcl スク リプ ト をエクスポートする。

注記 : プロジェク ト を正し く再作成できるよ うに、 このスク リプ ト をバージ ョ ン管理の対象に含めるこ

とを推奨します。 実際に管理されているプロジェク ト自体をバージ ョ ン管理下に置く こ とは推奨してい

ません。

Page 12: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

プロジェク ト モード

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 12

必要であれば、 ファ イルをエクスポートする Tcl コマンドを実行する前に、 現在の作業ディ レク ト リ を

適切なデスティネーシ ョ ン ディ レク ト リに変更しておきます。次に示すコマンドは、現在のプロジェク

ト ディ レク ト リに移動してから write_project_tcl コマンドを実行します (図 9)。

pwdcd [get_property DIRECTORY [current_project]]pwdwrite_project_tcl -force spectrum_vv_prj_flow.tcl

これらのコマンドを実行する と、 次のよ うにな り ます。

• ローカルの入力ファイルまたはプロジェク トにインポート された入力ファイルがある場合は、 警告

が表示される。

入力ソースはすべて リモート ソース ディ レク ト リに置く こ とを推奨します。

• Tcl スク リプ ト spectrum_vv_prj_flow.tcl が現在の作業ディレク ト リに保存される。

このスク リプ トに含まれる重要なコマンドの詳細を次に示します。 これらを使用して、 スク リプ ト

をカスタマイズできます。

# Create projectcreate_project spectrum_vv ./spectrum_vv

# Set project properties (parts, boards, etc)set obj [get_projects spectrum_vv]set_property "board" "xilinx.com:kintex7:kc705:1.0" $obj

# Create 'sources_1' fileset if {[string equal [get_filesets sources_1] ""]} { create_fileset -srcset sources_1}

# Add files to 'sources_1' fileset.All files including IP configuration files added with add_files command need to be checked in to the design repositoryset obj [get_filesets sources_1]set files [list \ "C:/dds_compiler_v5_0_0/dds_compiler_v5_0_0.xci"\ "C:/spectrum_vv/spectrum_vv.srcs/sources_1/ip/xfft_v8_0_0/xfft_v8_0_0.xci"\ "C:/xapp/working/vcs_project/src/coeff/fir_p2_1db_s3_50db.coe"\ "C:/xapp/working/vcs_project/src/vhdl/heartbeat_gen.vhd"\]add_files -norecurse -fileset $obj $files

# Set the top module for the projectset obj [get_filesets sources_1]

X-Ref Target - Figure 9

図 9 : write_project_tcl Tcl コマンド

Page 13: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

プロジェク ト モード

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 13

set_property "top" "spectrum_top" $obj

# Create 'constrs_1' fileset (if not found)if {[string equal [get_filesets constrs_1] ""]} { create_fileset -constrset constrs_1}

# Add files to 'constrs_1' fileset All files added with add_files command need to be checked in to the design repositoryset obj [get_filesets constrs_1]set files [list \ "C:/xapp/working/vcs_project/src/constrs/spectrum_top_physical.xdc"\ "C:/xapp/working/vcs_project/src/constrs/spectrum_top_timing.xdc"\]add_files -norecurse -fileset $obj $files

# Set 'constrs_1' fileset file properties for local filesset file "constrs/spectrum_top_physical.xdc"set file_obj [get_files "*$file" -of_objects constrs_1]set_property "file_type" "XDC" $file_obj

# Add files to 'sim_1' fileset All files added with add_files command need to be checked in to the design repositoryset obj [get_filesets sim_1]set files [list \ "C:/xapp/working/vcs_project/sim/spectrum_top_tb.v"\]add_files -norecurse -fileset $obj $files

# Set top module for the testbenchset obj [get_filesets sim_1]set_property "top" "spectrum_top_tb" $obj

# Create 'synth_1' run (if not found)if {[string equal [get_runs synth_1] ""]} { create_run -name synth_1 -part xc7k325tffg900-2 -flow {Vivado Synthesis 2012} -strategy "Vivado Synthesis Defaults" -constrset constrs_1}

# Create 'impl_1' run (if not found)if {[string equal [get_runs impl_1] ""]} { create_run -name impl_1 -part xc7k325tffg900-2 -flow {Vivado Implementation 2012} -strategy "Vivado Implementation Defaults" -constrset constrs_1 -parent_run synth_1

}

Page 14: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

Git によるバージ ョ ン管理

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 14

Git によるバージ ョ ン管理

Git はオープンソースで分散型のバージ ョ ン管理/ソース コード管理システムです。 Git の作業ディ レク

ト リはそれぞれが完全な リ ポジ ト リ であ り、 履歴およびバージ ョ ン追跡データを保存するための中央

サーバーは必要あ り ません。 Git リポジ ト リは、 プロジェク トのルート ディレク ト リにある .git ディ

レク ト リ 1 つに格納されています。このため、作業ディ レク ト リ を動的に追加または削除する EDA ツー

ルとの相性に優れています。

Git のインストール

Git をインス トールするには、 次の手順を実行します。

1. Git のウェブサイ ト [参照 4] から最新バージ ョ ンの Git をダウンロード します。

2. Git をインス トールします。 [Adjusting your PATH environment] ページで [Run Git from theWindows Command Prompt] を選択する点を除き、セッ ト アップ オプシ ョ ンはすべてデフォルトの

ままにします (図 10)。

注記 : このアプリ ケーシ ョ ン ノートでは、Windows 7 64 ビッ ト環境で Git-1.8.3-preview20130601を使用します。

Git リポジ ト リの作成

このセクシ ョ ンでは、 非プロジェク ト モードでサンプル デザインの初期デザイン リ ポジ ト リ を作成す

る手順について説明します。

注記 : プロジェ ク ト モードでの リ ポジ ト リ作成手順も同様で、 プロジェ ク ト管理にプロジェ ク ト作成

Tcl スク リプ ト を使用します。

非プロジェク ト モードでの Git リポジト リの初期化

Git リ ポジ ト リ を初期化するには、 次の手順を実行します。

1. Windows エクスプローラーで、 リポジ ト リ用のディ レク ト リ を作成します。 次に例を示します。

C:/xapp/repository/vcs_non_project

2. 作成したディ レク ト リへ移動し、 右ク リ ッ ク して [Git Bash] をク リ ッ ク します (図 11)。

X-Ref Target - Figure 10

図 10 : Git のセッ トアップ オプシ ョ ン

Page 15: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

Git によるバージ ョ ン管理

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 15

3. Git Bash ウ ィンド ウで次のコマンドを実行し、 ベア リ ポジ ト リ を作成します (図 12)。

$ git init --bare

X-Ref Target - Figure 11

図 11 : vcs_non_project ディレク ト リで [Git Bash] コマンドを実行

X-Ref Target - Figure 12

図 12 : ベア リポジト リの作成

Page 16: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

Git によるバージ ョ ン管理

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 16

Concurrent Versions System (CVS) または Apache Subversion (SVN) バージ ョ ン管理システムの中

央リポジ ト リ同様、 すべてのチーム メ ンバーがベア リ ポジ ト リ との間で変更を双方向にプッシュ /プルできます。 図 13 に、 ベア リ ポジ ト リのディ レク ト リおよびファイル構造を示します。

注記 : ベア リ ポジ ト リに格納できるのはバージ ョ ン管理情報のみで、 作業ファ イルは保存されま

せん。

非プロジェク ト モードでの作業リポジ ト リの作成

Git は分散型のバージ ョ ン管理システムです。 各チーム メ ンバーの作業エリ アは、 Git ベア リ ポジ ト リ

の完全なクローンです。 ベア リ ポジ ト リのクローンを作成するには、 次の手順を実行します。

1. Windows エクスプローラーで、 作業エリ ア用のディ レク ト リ を作成します。 次に例を示します。

C:/xapp/working

2. 作成したディ レク ト リへ移動し、 右ク リ ッ ク して [Git Bash] をク リ ッ ク します (図 14)。

X-Ref Target - Figure 13

図 13 : ベア リポジト リ

Page 17: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

Git によるバージ ョ ン管理

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 17

3. Git Bash ウ ィンド ウで次のコマンドを実行し、 ベア リ ポジ ト リのク ローンを作成します (図 15)。

$ git clone c:/xapp/repository/vcs_non_project

このコマンドを実行する と、 作業リ ポジ ト リ と して vcs_non_project ディ レク ト リが作成され

ます。 このディ レク ト リには、 バージ ョ ン管理情報を格納する .git という名前の隠し属性のサブ

ディ レク ト リが含まれます。

4. サンプル デザインのアーカイブ ファ イル xapp1165.zip を任意のディ レク ト リに展開します。

X-Ref Target - Figure 14

図 14 : 作業ディレク ト リで [Git Bash] コマンドを実行

X-Ref Target - Figure 15

図 15 : ベア リポジト リのクローンを作業リポジト リに作成

Page 18: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

Git によるバージ ョ ン管理

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 18

5. vcs_non_project ディ レク ト リ以下のすべてのサブディ レク ト リ を作業リポジ ト リへコピーし

ます。 次に例を示します。 C:/xapp/working/vcs_non_project

図 16 に、 作業リポジ ト リのディ レク ト リおよびファイル構造を示します。

6. Vivado Design Suite のコマンド プロンプ ト ウ ィンド ウで run ディ レク ト リ を作成します。次に例

を示します。 C:/xapp/working/vcs_non_project/run

7. run ディレク ト リに移動し、 次のコマンドを実行して git_non_project.bat ファ イルを作成し

ます。

vivado -mode batch -source ../script/vivado_non_project.tcl -notrace -tclargs -cmd vcs -ifn ../script/file_list.txt -top spectrum_top -part xc7k325tffg900-2 -out git_non_project.bat

8. Windows エクスプローラーで、 run ディ レク ト リへ移動します。 次に例を示します。

C:/xapp/working/vcs_non_project/run です。

9. 右ク リ ッ ク し、 [Git Bash] をク リ ッ ク します。

10. Git Bash ウ ィンド ウで次のコマンドを実行し、すべてのデザイン ソースをチェッ ク インしてこれら

を共有リポジ ト リへプッシュします。

git_non_project.bat

X-Ref Target - Figure 16

図 16 : 作業リポジト リ

Page 19: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

Git によるバージ ョ ン管理

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 19

非プロジェク ト モードでの共有リポジ ト リのテスト

共有リポジ ト リ内にある最小限のファイルセッ トの中に、非プロジェク ト モードでデザインをインプ リ

メン トするのに必要なファイルがすべて含まれているこ とを確認しておく必要があ り ます。 これを確認

するには、 次の手順を実行します。

1. Git Bash ウ ィンド ウで次のコマンドを実行し、共有リポジ ト リのクローンとテス ト リ ポジ ト リ を作

成します (図 17)。

$ cd /C/xapp/test

$ git clone c:/xapp/repository/vcs_non_project

注記 : テス ト リ ポジ ト リのルートは、vcs_ip_location と同じディ レク ト リに設定する必要があ

り ます。

図 18 に、 テス ト リ ポジ ト リのディ レク ト リおよびファイル構造を示します。

2. Windows エクスプローラーで、 テス ト ディ レク ト リに run という名前のディ レク ト リ を作成しま

す。 次に例を示します。 C:/xapp/test/test_non_project

X-Ref Target - Figure 17

図 17 : 作業リポジト リのクローンをテスト リポジト リに作成

X-Ref Target - Figure 18

図 18 : テスト リポジト リ

Page 20: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

リファレンス デザイン

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 20

3. Windows コマンド プロンプ ト を開き、 Vivado Design Suite 環境設定バッチ ファ イルを実行して

Vivado Design Suite のコマンド プロンプ ト を開きます (図 19)。 次に例を示します。

C:\Xilinx\Vivado\2013.2\settings64.bat

4. run ディレク ト リに移動し、次のコマンドを実行して非プロジェク ト モードでデザインをインプ リ

メン ト します。

vivado -mode batch -source ../script/non-project_run.tcl -notrace -tclargs -cmd run -ifn ../script/file_list.txt -top spectrum_top -part xc7k325tffg900-2

この run スク リプ トはすべての IP を生成し、 合成およびインプ リ メ ンテーシ ョ ン、 そしてビッ ト

ス ト リームの生成を実行します。

リファレンス デザイン

このアプリ ケーシ ョ ン ノートに含まれるサンプル プロジェク トは完全なスペク ト ラム解析デザインで、

RTL からビッ ト ス ト リーム作成までを実行し、KC705 評価ボードをターゲッ トにして Vivado ロジッ ク

解析でハードウェア デバッグを行う こ とができます。 このデザインは Direct Digital Synthesizer (DDS)Compiler コアを使用して正弦波信号を生成し、 これを Finite Impulse Response (FIR) Compiler コアお

よび Fast Fourier Transform (FFT) コアで処理します。デジタル信号処理 (DSP) の出力は、ビヘイビアー

RTL でインプリ メン ト した複素乗算器に渡して振幅を計算します。 このプロジェク トは、ユーザーが管

理するディ レ ク ト リ と ツールが管理するディ レ ク ト リ の両方にあるデザイン ソースを使用し、 RTL、IP-XACT IP、 シ ミ ュレーシ ョ ン テス トベンチ、 コンフ ィギュレーシ ョ ン ファ イル、 Vivado ロジッ ク

解析コア Inserter ファ イルなど複数のソース タイプをサポートする標準的なデザイン環境です。 このサ

ンプル プロジェク トは、 Vivado Design Suite 2013.2 で検証しています。

このアプリ ケーシ ョ ン ノートの リ ファレンス デザインは、 次のサイ トからダウンロードできます。

https://secure.xilinx.com/webreg/clickthrough.do?cid=344210

X-Ref Target - Figure 19

図 19 : Vivado Design Suite 環境設定バッチ ファイル

Page 21: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

参考資料

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 21

表 2 に、 リ ファレンス デザインの詳細を示します。

参考資料 この文書では、 次の参考資料を使用しています。

1. 『Vivado Design Suite ユーザー ガイ ド : デザイン フローの概要』 (UG892)

2. 『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835)

3. ザイ リ ンクス オープンソース Wiki (http://wiki.xilinx.com/)

4. Git のウェブサイ ト (http://git-scm.com/)

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

表 2 : リファレンス デザインの詳細

パラメーター 説明

全般

開発者 Jim Wu

ターゲッ ト デバイス Kintex-7 FPGA

ソース コードの提供 あ り

ソース コードの形式 VHDL、 Verilog

既存のザイ リ ンクス アプリ ケーシ ョ ン ノート / リ ファ

レンス デザイン、 CORE Generator™ ツール、 サー

ドパーティからデザインへのコード /IP の使用

なし

シミ ュレーシ ョ ン

論理シ ミ ュレーシ ョ ンの実施 あ り

タイ ミ ング シ ミ ュレーシ ョ ンの実施 N/A

論理シ ミ ュレーシ ョ ンおよびタイ ミ ング シ ミ ュレー

シ ョ ンでのテス トベンチの利用

あ り

テス トベンチの形式 Verilog

使用したシ ミ ュレータ /バージ ョ ン Vivado simulator 2013.2

SPICE/IBIS シ ミ ュレーシ ョ ンの実施 N/A

インプリ メンテーシ ョ ン

使用した合成ツール/バージ ョ ン Vivado synthesis 2013.2

使用したインプ リ メンテーシ ョ ン ツール/バージ ョ ン Vivado implementation 2013.2

スタティ ッ ク タイ ミ ング解析の実施 あ り

ハードウェア検証

ハードウェア検証の実施 あ り

使用したハード ウェア プラ ッ ト フォーム KC705 評価ボード

日付 バージョ ン 内容

2013 年 8 月 5 日 1.0 初版

Page 22: Vivado Design Suite におけるバージョン管理システムの使用 …japan.xilinx.com/support/documentation/application... · バージョン管理と IP XAPP1165 (v1.0)

Notice of Disclaimer

XAPP1165 (v1.0) 2013 年 8 月 5 日 japan.xilinx.com 22

Notice of Disclaimer

The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and useof 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 OFMERCHANTABILITY, 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 othertheory of liability) for any loss or damage of any kind or nature related to, arising under, or in connectionwith, 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 lossor damage suffered as a result of any action brought by a third party) even if such damage or loss wasreasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes noobligation to correct any errors contained in the Materials or to notify you of updates to the Materials orto product specifications. You may not reproduce, modify, distribute, or publicly display the Materialswithout prior written consent. Certain products are subject to the terms and conditions of the LimitedWarranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject towarranty and support terms contained in a license issued to you by Xilinx. Xilinx products are notdesigned or intended to be fail-safe or for use in any application requiring fail-safe performance; youassume sole risk and liability for use of Xilinx products in Critical Applications: http://www.xilinx.com/warranty.htm#critapps.

本資料は英語版 (v1.0) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。

資料によっては英語版の更新に対応していないものがあ り ます。

日本語版は参考用と してご使用の上、 最新情報につきましては、 必ず最新英語版をご参照ください。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、

[email protected] までお知らせください。 いただきましたご意見を参考に早急に対応さ

せていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめ

ご了承ください。