FPGA
zynq
Vivado

UltraZed 向け Debian GNU/Linux (v2017.3版) の構築(Sample FPGA Design編)

はじめに

UltraZed-EG スターターキットに Debian GNU/Linux (v2017.3版) を構築する方法について、具体的な方法をいくつかに分けて説明します。

この記事では、ZynqMP の Boot Loader で使うための Sample FPGA Design の構築について説明をします。

Sample FPGA Design を構築する目的

Vivado SDK では FSBL(First Stage Boot Loader) および PMUFW(Platform Manager Unit Firmware) をビルドするのにハードウェア情報が必要になります。ただしハードウェア情報のうち ZynqMP の PS(Processing System)の設定のみが必要なだけで、実は PL(Programmable Logic) の情報は必要ありません。ということは、PL 側のデザインは何でも良くて、ちゃんと PS 側の設定がされているハードウェア情報でありさえすれば良いのです。

U-Boot のビルドでもハードウェア情報に含まれるファイルが必要です。ただし、U-Boot でハードウェア情報に含まれるファイルが必要になるのは u-boot.spl をビルドする場合です。今回は u-boot.spl は使いませんので、一度作っておいたファイルを使いまわしても問題ありません。

Sample FPGA Design の構成

PS 側の情報が出来れば事足りるので、ここでは以下のような単純な FPGA デザインを作ります。

Fig.1 ZynqMP Sample Design

Fig.1 ZynqMP Sample Design

必要な環境

  • Vivado 2017.2
  • Vivado SDK 2017.2

Sample FPGA Design の構築

次の URL から git clone でリポジトリをダウンロードして v2017.3.0 をチェックアウトします。

shell$ git clone git://github.com/ikwzm/ZynqMP-FPGA-Linux
shell$ cd ZynqMP-FPGA-Linux
shell$ git checkout v2017.3.0

ここでは Vivado の XST(Xilinx Software Command Line Tool) を使って構築する方法を示します。GUI を使って手で入力するのは面倒なので Tcl スクリプトファイルを用意しています。

  • target/UltraZed-EG-IOCC/build/
    • fpga/
      • create_project.tcl
      • design_1_bd.tcl
      • implementation.tcl
      • export_hardware.tcl

Project を作る

create_projet.tcl を Vivado で実行してプロジェクトを作ります。

vivado% cd target/UltraZed-EG-IOCC/build/fpga/
vivado% vivado -mode batch -source create_project.tcl

なお、この FPGA デザインは次の記事で説明している SD1 の WP(Write Protection) の設定も済ませてあります。

ビットストリームの生成

implementation.tcl を Vivado で実行して、デザインの論理合成、配置配線、ビットストリームの生成を行います。

vivado% cd target/UltraZed-EG-IOCC/build/fpga/
vivado% vivado -mode batch -source implementation.tcl

ハードウェア情報の生成

export_hardware.tcl を Vivado で実行してハードウェア情報を生成します。

vivado% cd target/UltraZed-EG-IOCC/build/fpga/
vivado% vivado -mode batch -source export_hardware.tcl

このスクリプトを実行することにより、target/UltraZed-EG-IOCC/build/fpga/project.sdk/design_1_wrapper.hdf が生成されます。

参考