« Vivadoが生成するプロジェクト生成Tclを読んでみた | トップページ | EZ-USB FX3とFPGAをつなぐファームウェア »

2019.05.01

VivadoのIPアップデートと論理合成をするスクリプト

Vivadoで作業をしていると、IPを更新したらReport IP Statusをやって、Update Selectedをやって、Generateなんちゃらのダイアログをキャンセルして・・という一連のボタン操作をしてから論理合成をしなければならず、IPの中を更新するのがとても億劫になってしまいます。

そこで、こうした一連の作業を自動化するスクリプトを作りました。

このスクリプトを使うと、子IPの更新から論理合成&配置配線の流れがとても簡単にできるようになります。

Nahiviva_1

それに、GUIを使わないモードでも動作させることができるので、起動も速やかです。

Nahiviva_2

スクリプトの機能は以下のようなものがあります。

  • Tcl形式のプロジェクトからXPRを生成
  • VivadoのGUIを起動しなくても、バッチモードで動作可能
  • DOSプロンプトのバッチファイルで起動 (Vivadoコマンドラインのショートカット不要)
  • 論理合成、配置配線の自動化
  • IPコア・アップデート作業(Report IP Status から Update Selected、Generate)の自動化
  • IPコアの子プロジェクト編集作業の自動化

ユーザ向け関数には以下のようなものがあります。

  • NahiRun [<option>]
    論理合成と配置配線を行う
  • NahiUpdate
    IPのアップデートを行う(Report IP StatusとUpdate Selectedの自動化)
  • NahiChild [<name>]
    IPコアの子プロジェクトをVivadoで開く
  • NahiPackage Re-Package IP
    IPを再パッケージする(子プロジェクトで使用する)
  • NahiSave Write tcl to re-create project.}
    プロジェクトをTclで保存する。

このスクリプトはTclで作られていますが、上記のような関数にまとめられているため、必要に応じて呼び出すことができます。

配布はgithubで行います。

https://github.com/tokuden/NahiViva/

githubのページにセットアップ方法が書いてありますが、今回の記事の内容を利用するだけならば不要です。ダウンロードしてファイルを置くだけで、どのようなプロジェクトにもすぐに適用できます。

 

使い方

このスクリプトには2つの使い方があります。

1つ目は論理合成や子IPのアップデートの機能だけを使う方法。もう一つはこのスクリプトにプロジェクトの管理をすべて任せる方法です。

まずは、簡単な論理合成とIPのアップデートだけを使う方法を説明します。

セットアップ (簡単版)

まず、githubから全体をダウンロードするか、下記のスクリプトのみをダウンロードします。

https://raw.githubusercontent.com/tokuden/NahiViva/master/scripts/nahiviva.tcl

(右クリックでファイル保存してください。)

そして、Vivadoのプロジェクトがある任意のフォルダにnahiscript.tclを保存します。

Vivadoを起動したら、Tclコンソールに

source nahiviva.tcl

と入力します。人によっては../nahiviva.tclだったり、scripts/nahiviva.tclだったり違うフォルダに置いているかもしれません。

Nahiviva_3

これで、使用する準備が整いました。

子IPの更新

Vivadoで子IPを更新したら、憎きこの通知が出るでしょう。↓

Nahiviva_4

普通ならRefresh IP Catalogを押して、ReRunを押して、Upgrade Selectedを押して、Generate Output ProductsのダイアログでSkipを押して、再度ReRunを押すという面倒なプロセスが待っているのですが、

Nahiviva_5 Nahiviva_6

 

これからは、tclコンソールで、

NahiUpdate

と入力するだけです。(NahiUまででOK)

Nahiviva_7

上の一連の操作をスクリプトが自動的に行います。面倒なダイアログでボタンを押す必要もありません。

ビルド(論理合成と配置配線)

論理合成と配置配線およびBitStreamの生成は、Tclコンソールに

NahiRun [オプション]

と入力するだけでできます。

下の図のように複数のRUNが存在している場合でも、アクティブなRUNを探して自動的に実行してくれます。

常にRUNを最初からやり直すのではなく、途中までできている場合には途中から開始します。(もちろん最初からやり直すこともできる)

Nahiviva_8

オプションには以下のようなものがあります。

  • -update  コアの更新も一緒に行う
  • -restart  Runをリセットして、最初から開始する
  • -report   使用率、タイミング、IOのレポートを作成する

終了したらBitStreamファイルをプロジェクトのフォルダの上までコピーします。

Vivadoは生成したBitStreamを<project>\<project_1.runs>\<impl_x>\という深いフォルダに保存してしまうので、とても探しにくくなります。また、Runをリセットしたり再度Runするとbitファイルが消されてしまいます。
このスクリプトは<project>のディレクトリまでコピーするので、

  • bitファイルが探しやすくなる
  • 再度Runしたときにも前のbitファイルが消されない

というメリットもあります。

プロジェクトを開く

DOSのバッチファイルからプロジェクトを開くこともできます。

レポジトリをダウンロードしたら、これらのファイルをVivadoのプロジェクトのあるフォルダか、その一つ上のフォルダに置きます。

Nahiviva_9

そして、SETTINGS.CMDを編集します。SETTINGS.CMDの内容は

@SET VIVADO_PATH=D:\Xilinx\Vivado\
@SET VIVADO_VERSION=2018.3

という簡単なものですが、ここにVivadoをインストールしたフォルダのパスと、Vivadoのリビジョンを設定します。

そして、open_project.cmdまたはopen_project_gui.cmdのアイコンをクリックします。

このコマンドファイルを実行すると、現在のディレクトリと同じか、一つ下のディレクトリからxprファイルを探してそれを指定されたバージョンのVivadoで開きます。Vivadoをたくさん入れている方でも、指定したバージョンのVivadoで開くことができます。

open_project.cmdを実行するとVivadoがテキストモードで開きます。開いたらNahiRunを実行すると論理合成をしてBitファイルが生成されます。

Nahiviva_10

open_project_gui.cmdを実行すると見慣れたVivadoのGUIが起動します。

GUIの起動は時間がかかるので、論理合成をするだけならテキストモードで実行したほうが早いでしょう。

 

|

« Vivadoが生成するプロジェクト生成Tclを読んでみた | トップページ | EZ-USB FX3とFPGAをつなぐファームウェア »

コメント

コメントを書く



(ウェブ上には掲載しません)




« Vivadoが生成するプロジェクト生成Tclを読んでみた | トップページ | EZ-USB FX3とFPGAをつなぐファームウェア »