Revision Control

Revision Control
Tim Vanevenhoven Using Revision Control In Vivado
Tim Vanevenhoven
•
•
•
•
概要とリビジョン管理
Vivado Design Suite の最近の改良点
Vivado Design Suite の推奨事項
まとめ / Q&A
リビジョン管理を使用する理由
 ソース ファイルの重要な管理を自動化
– マイルストーンが「バックアップ」される
– 必要が生じたら、以前のマイルストーンに戻すことができる
– 変更がログ記録される
 コンパイル時間が短縮される
– 依存性トラッキング – 入力が変更されたときのみビルド
– 並列化の活用 – 独立した複数のステップを並列実行可能
 ほとんどのお客さまが、何らかの形でリビジョン管理を利用
『UltraFast 設計手法ガイド (UG949)』 では、Vivado Design Suite で
リビジョン管理を使用することを推奨しています。
どのリビジョン管理システムをお使いですか
Vivado のリビジョン管理方針
 ユーザー フレンドリーなリビジョン管理
– 特定のツールとの直接の統合はしない
– 一般に ASCII ベースのファイルに適す (XML プロジェクト ファイル)
– 非表示の「dot」ファイルや、「ロック済み」読み取り専用ソースもリビジョン
管理で許容
– プロジェクトを開くときのファイル更新は最小限にし、変更分のみ書き込み
 さまざまな使用モデルと連携可能
– GUI (IDE) と非 GUI (TCL スクリプティング)
– プロジェクトと非プロジェクト フロー
– 分散型と中央集中型のリビジョン管理レポジトリ
Vivado Design Suite の最近の改良点
 Vivado Design Suite 2015.1 で発表
– .bd file だけで、ブロック デザインを再作成可能
– 2014.1 と比較して、1 IP 当たりの平均ファイル数が 1/3
– 推奨メソドロジに関するテストの増加 / 強化
 2015 年 6 月発行の『UltraFast 設計手法ガイド』の第 2 章の
加筆
 リビジョン管理に関するクイック ビデオの更新
 Vivado Design Suite 2015.3 – 2015 年 10 月 6 日
– 1 IP 当たりファイル数のさらなる削減
– DocNav から新しいリビジョン管理チュートリアルを提供
文書化された 2 つのリビジョン管理ストラテジ
ザイリンクス推奨
リビジョン管理ストラテジ
• 最大の柔軟性
柔軟性
• IP を将来の Vivado でアップ
グレードなしで使用できる
オプション
• プロジェクトのリビルドに
かかるランタイムを短縮
• 最少のファイル
管理するファイル数
• 柔軟性とランタイムは劣る
が、管理するファイル数が
最も少ない
推奨ディレクトリ構造の概要
 複数のソース タイプを別々のリモート ディレクトリで
管理
 「work」ディレクトリを使用して、デザインをコンパイル
し、Vivado プロジェクトを作成
 さまざまなディレクトリのリモート ソースを持つ Vivado プロジェクトをセットアップ
– プロジェクトにはコピーしない
 リモート ソース エリアのリビジョンを直接管理するか、
プロジェクトのローカル サンドボックスとして使用
リビジョン管理されたソースを持つプロジェクト
project_1.xpr
project_1.srcs
•constrs_1
•sources_1
•sim_1
リモート ソース
HDL (Verilog/VHDL)
IPI BD (ディレクトリ全体)
IP XCI (ディレクトリ全体)
project_1.data
Sys Gen IP XCI (ディレクトリ全体)
XDC 制約
Tcl スクリプト
project_1.cache
シミュレータ テストベンチ
COE/BMM/ELF
project_1.runs
最大の柔軟性 ‐ 推奨される管理対象ファイル
 プロジェクトを使用する場合、.xpr ファイル
または Tcl 再作成スクリプトのみを管理
– write_project_tcl コマンドを使用して、
プロジェクトを再作成するスクリプトを作成
– プロジェクトのサブディレクトリはチェックイン
しない
 RTL、XDC などのディレクトリ構造については、
独自に判断する
 IP と IP インテグレーター ソースについては、
ディレクトリ ツリー全体を管理
– 生成されたソースは、将来の Vivado リリースで
使用可能
最大の柔軟性 ‐ 推奨される管理対象ファイル
 Vivado HLS ソース ファイル、スクリプト、
サンプル プロジェクト、パッケージ IP を管理
 DSP ソース向けの System Generator ディレクトリ全体を管理
 スクリプトと文書を必要に応じて管理
 SDK の場合、.hdf ファイルを管理
最小限のファイル ‐ 管理が推奨されるファイル
 プロジェクトを使用する場合、.xpr ファイルまたは
Tcl 再作成スクリプトのみを管理
– write_project_tcl コマンドを使用して、
プロジェクトを再作成するスクリプトを作成
– プロジェクトのサブディレクトリはチェックイン
しないでください
 IP の場合、.xci ファイルのみをチェックインする
– .xci ファイルを使用して、IP 出力ファイルを再生成
可能
– IP は、.xci を作成したバージョンの Vivado でのみ
再生成可能
 IP インテグレーターの場合、.bd ファイルまたは
Tcl 再作成スクリプトをチェックインする
– write_bd_tcl コマンドを使用して、
ブロック デザインのスクリプトを作成
最小限のファイル ‐ 管理が推奨されるファイル
 Vivado HLS ソース ファイル、スクリプト、
サンプル プロジェクト、パッケージ IP を管理
 DSP ソース向けの System Generator ディレクトリ全体を管理
 スクリプトと文書を必要に応じて管理
 SDK の場合、.hdf ファイルを管理
リビジョン管理のベスト プラクティス
 プロジェクトを再作成する
Tcl スクリプトを作成
– Write_project_tcl は、そのまま、
もしくは変更して使用できる
テンプレートを作成
 IP インテグレーターブロック
デザインを再作成する
Tcl スクリプトを作成
– Write_bd_tcl は、BD のみを再作成
する Tcl スクリプトを作成
– 極めてバージョン依存性が高い – IP と同様
 スクリプトのチェックイン / チェック
アウト フロー
まとめ
 管理対象ファイルの決定には、2 つの文書化された
方法がある
– 最大の柔軟性 / 最小のリビルド時間 ザイリンクスの推奨
– 最小の管理対象ファイル数
 リモート ソースを使用し、プロジェクト ディレクトリを管理
しないことがポイント
 改訂済みの資料を提供中
– UG949 の第 2 章
– リビジョン管理に関するクイック ビデオ
– リビジョン管理チュートリアル