VivadoのIP Integratorをコマンドラインで実行する

VivadoのGUIでプロジェクトを作成すると、色々なファイルが生成されます。そのプロジェクトのデータを配布する場合、ファイルに絶対パスなどが含まれていると、データの再現性に不安が残ります。また、配布は必要最低限の設定ファイルだけにして、RTLなどのデータは配布先の環境で生成できた方がいろいろと都合が良いです。
Vivadoの中で、GUIへの依存度が高いと思われるのが、IP Integratorです。IP Integratorでは、GUIを使ってIPを接続し、目的とするシステムを簡単に作成することができます。

IP IntegratorのGUI

IP IntegratorのGUI

GUIで作成したIP Integratorのデザインを、CUI(コマンドライン)で生成するにはどうすれば良いかといろいろ試したのですが、結局、GUIでデザインを作成した時にTcl Consoloeに表示されるコマンドをファイルに格納し、Tcl Shellで実行するのが一番簡単で間違いがないようです。
既に作成済みのIP Integratorのデザインを、もう一度同じ手順でトレースするのは面倒ですが、この方法が一番間違いがありません。

IP Integratorをコマンドラインで実行する手順

適当なプロジェクトを作成して、Block Designを作成する

適当なプロジェクトを作成して、既に作成済みのBlock Designを参考に、同じBlock Designを作成します。この時、ユーザーの操作に対応したコマンドがTcl Consoleに表示されます。例えば、GPIOを追加すると、それに対応するcreate_bd_cellコマンドがTcl  Consoleに表示されます。

GPIOの追加

GPIOの追加



必要なIPの追加と接続を行って、目的とするシステムを構築します。今回のサンプルは、次のような構成のシステムです。

  • ZedBoard用のデザイン
  • ZYNQ Processing Systemを使用
  • 3種類のGPIOを使用
  • S_AXI_ACPをS_AXIという名前で外部ポートとして出力
  • M_AXI_GP0をM_AXIという名前で外部ポートとして出力
IP IntegratorのGUI

IP IntegratorのGUI

コマンドライン用のTclファイルでプロジェクトを作成する

次のようなファイルを作り、create_projectでプロジェクトを作成します。プロジェクト作成後、create_bd_designでIP Integratorのデザインを作成します。この例では、polyphonyという名前のプロジェクトを作成し、zed_baseという名前のIP Integratorのデザインを作成しています。ZedBoardの場合は、em.avnet.com:zed:part0:1.3というプロパティの設定が必要です。

GUIでTcl Consoleに表示されたコマンドをファイルに格納する

GUIのIP Integratorでシステムを構築した時に、Tcl Consoleに表示されたコマンドを、Tclファイルに追加します。プロジェクト名などに関連する部分は、一部変更を加えています。

Tcl Shellを起動してTclコマンドを実行する

Tcl Consoleを起動します。

Tcl Shellの起動

Tcl Shellの起動

次に、作成したTclファイルが存在するディレクトリに移動します。ファイルをsourceすると、VivadoのGUIで行った処理がそのままTcl Shellで実行されます。

Tclの実行

Tclの実行

実行開始直後の様子

実行開始直後の様子

処理がすべて完了すると、現在のディレクトリに次のようなサブディレクトリが作成されて、その中にIPコアのRTLなどが生成されます。 このディレクトリで配布に必要なファイルは、run.tclだけです。その他のファイルはVivadoで生成可能です。つまり、run.tclさえあれば、任意のディレクトリにVivadoのデータを再生成できます。

生成されたディレクトリとファイル

生成されたディレクトリとファイル

Vivado GUIでの確認

コマンドラインで生成したプロジェクトは、VivadoのGUIで開くことができます。

Vivado GUIでのプロジェクト表示

Vivado GUIでのプロジェクト表示

その他

Tcl Shell以外にも、settings64.batを実行したコマンドプロンプトからもtclを実行できます(Windowsの場合)。

コマンドプロンプトからVivadoを実行

コマンドプロンプトからVivadoを実行

スポンサーリンク







  • このエントリーをはてなブックマークに追加
スポンサーリンク