スクリプトの詳細

主要なスクリプト

実際に使用するコマンド(スクリプト)は下記のとおりです。

コマンド名 説明

design_basic_settings.cmd

他のcmdファイルのための設定を行います。
他のcmdファイルの実行前に必ず設定することになります。

design_run_project_batchmode.cmd

リファレンスデザイン中の設定ファイルとソースファイルを用いて、Vivadoプロジェクトを作成した後、全てのハードウェアおよびソフトウェアのビルドを行います。
test_board/prebuilt/TE0726-0x/ 以下の全てのファイルは、
このコマンドを実行することで作成することができます。

design_clear_design_folders.cmd

v_logとVivadoプロジェクトを削除します。
すでに作成されたprebuild内のファイルは残ります。

vivado_create_project_guimode.cmd

リファレンスデザイン中の設定ファイルとソースファイルを用いて、Vivadoプロジェクトを作成した後、Vivado のGUIモードでこのプロジェクトを開きます。(ビルドは行われません。)

vivado_create_project_batchmode.cmd

リファレンスデザイン中の設定ファイルとソースファイルを用いて、Vivadoプロジェクトを作成します。(ビルドは行われません。)

vivado_open_existing_project_guimode.cmd

作成されたVivadoプロジェクトをGUIモードで開きます。

sdk_create_prebuilt_project_guimode.cmd

SDKのプロジェクトを作成します。プロジェクト作成に利用されるhdfファイルは、design_basic_settings.cmdの 変数であるSWAPPおよびPARTNUMBERにより指定される以下のパスにより決定されます。

test_board/prebuilt/hardware///*.hdf

program_flash_binfile.cmd

zynq専用のコマンドです。
JTAGを通じてフラッシュメモリにBOOT.binの書き込みを行います。

書き込みにはSDK Programmerが利用されるのでSDKのパスが通っていることが必要となります。
書き込まれるBOOT.binはdesign_basic_settings.cmdの変数であるSWAPPおよびPARTNUMBERにより指定される以下のパスにより決定されます。

test_board/prebuilt/boot_images///
BOOT.bin

program_flash_mcsfile.cmd

zynq では対応していないコマンドです。
JTAGを通じてフラッシュメモリにmcsファイルの書き込みを行います。

program_fpga_bitfile.cmd

JTAGを通じてFPGAにbitファイルを用いて書き込みを行います。
書き込みにはLabToolsが利用されます。書き込まれるbitファイルはdesign_basic_settings.cmdの変数であるSWAPPおよびPARTNUMBERにより指定される以下のパスにより決定されます。

test_board/prebuilt/hardware///*.bit

labtools_open_project_guimode.cmd

LabToolsのプロジェクトを作成し、GUI モードで開きます。

 

スクリプトを使用した開発の手順

上記のコマンドを使用して、プロジェクトの作成~ビルド、書き込みを行います。

  1. vivado_create_project_guimode.cmd ・・・ プロジェクト作成
  2. design_clear_design_folders.cmd ・・・プロジェクトクリーン
  3. program_flash_binfile.cmd ・・・ 書き込み
  4. design_run_project_batchmode.cmd ・・・ ビルド
  • ソースファイルをテキストで用意します
  • ブロックデザインはblock_designフォルダにTCLで記述されています
  • 制約ファイルはconstraintsフォルダにあります
  • 自社製IPをip_libに入れておきます

自分で機能を付け加えたい場合は、2.のところからforkして、自分のプロジェクトとして保存すればOKです。
ただし、これらのスクリプトを理解して自分のIPを追加するのは難しいので、
プロジェクトを生成した後は普通のVivadoのプロジェクトのようにGUI上で配線をつないだり、
モジュールを追加してユーザ回路を追加していくのがよいでしょう。