Ultra96の開発ツール(Vivado 2019.1)
FPGAの仕事に関わっていると、時たま同じような質問を聞く場合があります。開発環境の整備もその一つで、どれをダウンロードすればいいのかが、
わからないということをよく聞きます。
実際に使いこなすには、いろいろ勉強をしないといけないのですが、少なくともどのツールがあれば、Ultra96を開発できるのかをご紹介します。
ここでは、FPGAのメーカーである、ザイリンクス社と、Ultra96を提供している、アヴネット社の情報を中心に、記述していきます。
対象ボードは Ultra96V1、Ultra96V2共通です
必要な開発環境
Ultra96を開発するためのFPGA開発環境は次のLinux環境が必要です。
- Red Hat Enterprise Workstation/Server 7.4、7.5、7.6 (64 ビット)
- CentOS 7.4、7.5、7.6 (64 ビット)
- Ubuntu Linux 16.04.5、18.04.1 (64 ビット)
※ただし、Ubuntu Linux 18.04.01は、バージョン2019.1から対応。
この辺はザイリンクス社のリファレンスガイドがバージョン毎に出ているので、確認してみてください。今回はバージョン2019.1をご紹介しています。
Vivadoリファレンスガイド
SDSoC開発環境リファレンスガイド
Petalinuxリファレンスガイド
RedHatは、有償ですが各種サポートが期待できます。
CentOSは、RedHatの無償版として、公開されています。
Ubuntuは、Linuxの中で現在一番人気があります。無償です。
開発環境用Linuxのインストール
開発環境は、Linuxが必要となりますが、市販パソコンで、Linuxが最初からインストールされている例は少ないと思います。
そのため、WindowsやMacOSのパソコンからLinuxをインストールする必要があります。大きく分けて、次の方法があります。
1:すべてLinuxマシーンにする。 Linuxしか使えなくなります。
2:デュアルブートにする。 両OSを共存できます。インストールの時に、デュアルブートを選択できます。
3:仮想環境を使う Windowsまたは、MacOS上に、仮想環境のツールをインストールして、その中にLinuxを入れる方法です。Oracl VM VirtualBOXなど有名です。
Linuxのインストールする方法は、検索すればみつかりますので、割愛しますが、お望みの方法を使用してください。
Linuxの暗黙の文化
Linux自体は、世界で一番使われているOSです。知らず知らずのうちにお世話になっている人も多いです。
特にスマートフォンは、iOS、Andoroidともに、ベースにLinuxが入ってまして、その上に、GUIなど使いやすい環境を載せています。
ただし、開発用にLinuxを使おうとなると、ほぼCUI(コマンドライン)での操作が多くなります。ザイリンクス社のツールも例外ではなくて、Linuxを作るとなるとCUIしか選択筋がありません。Linux上ではターミナルと呼んでいますが、そのターミナルにお世話になることが多くなります。
また、もともと全部ツール等が全部入っているわけではなくて、必要に応じて、ライブラリー等をダウンロードして、インストールすることが多いです。
Linuxの解説をみていると、yumや、apt(apt-get)など使われています。これは、必要なものをダウンロードして使う場合に必要になります。
また、最近ではgit pipと言ったものも流行ってきています。これらも、ダウンロードして使うものです。(コンパイルすることもあります)
開発ツールを使うにも、予めダウンロードするものがいくつかあります。
Ultra96向け開発ツールの分類は大きく分けて2つ。
ツールとしての分類は、大きく分けると2つに分けることができます。
一つが、ハードウェアからスタンドアローンのソフトウェアまで作成できる、ハードウェア系のツール。
もうひとつが、LinuxなどのOSを組み立てるためのLINUXツールになります。これはUltra96にのせるOSです。
ハードウェア系のツールはザイリンクス社からの一択です。
Linxu系については、ザイリンクス社からの提供の他、サードパーティー製や、オープンソースのものも使用できます。
ハードウェア系のツール
ザイリンクス社製のFPGAを作るための開発ツールです。
Ultra96向けには2つの中から選択できます。一つがVivadoというツール、もうひとつがSDSoCというツールです。どちらか片方使用すればいいです。
VivadoとSDSoCの違いは、Vivadoがハードウェア技術者向けツールとして位置づけてるのに対して、SDSoCはVivadoが含まれてる上にC/C++言語だけで、開発できるツールがついてきます。
Vivadoの場合は、登録後無償で使用できます。(WebPack利用)
SDSOCの場合はラインセンスが必要ですが、Ultra96を購入した方には一緒についてきます。
SDSOCの場合は、Vivadoの機能が全て入っています。
Vivadoで、インストールした場合は、SDSOCの機能は入っていません。
インストールする前に、事前にライブラリー等をダウンロードしておきます。私の場合、Ubuntuでやっているので、次のようにしています。
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install apt-utils libc6:i386 libncurses5:i386 libstdc++6:i386 g++-multilib libgtk2.0-0:i386 dpkg-dev:i386 libxtst6:i386 default-jre wget unzip net-tools libtext-csv-perl libcanberra-gtk-module libcanberra-gtk3-module lsb-core -y
sudo ln -s /usr/bin/make /usr/bin/gmake
sudo mkdir /tools
sudo chmod 777 /tools
Vivadoの場合
Vivadoで必要なものですが、次のところからダウンロードします。
https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/vivado-design-tools.html
ダウンロードするところは、次のところです(バージョン2019.1の場合)
Vivado Design Suite - HLx Edition - 2019.1 Full Product Installation
Updateは不要です。お望みの方をダウンロードしてください。ウェッブインストーラーはインターネットから、ファイルをダウンロードしながらインストールします。
シングルファイルはすべてをダウンロードしてから、インストールします。
Vivado HLx 2019.1: WebPACK および Editions - Linux 用自己解凍型ウェブ インストーラー (BIN - 115.05 MB)
または
Vivado HLx 2019.1: すべての OS インストーラー シングルファイル ダウンロード(TAR/GZIP - 21.39 GB)
ともに、事前にザイリンクス社に登録、ダウンロードの承認をしたあと、無料でダウンロードできます。
インストールはウェブインストールは次のとおりになります。
chmod 755 Xilinx_Vivado_SDK_Web_2019.1_0524_1430_Lin64.bin
./Xilinx_Vivado_SDK_Web_2019.1_0524_1430_Lin64.bin
シングルファイルの場合も解凍後、xsetupを実行してください。
順番に行けばインストールできます。途中で、どのツールをインストールするか聞いてきますが、webpackで、十分です。
インストールの最後に、ライセンス登録の案内が出てきますが、WebPackを選択した方は不要ですので、そのままキャンセルしてください。
SDOSCの場合
SDSoCの場合は次のところからダウンロードします。
https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/sdx-development-environments.html
次のものをダウンロードします。
SDSoC - 2019.1 Full Product Installation
お望みの方をダウンロードしてください。ウェッブインストーラーはインターネットから、ファイルをダウンロードしながらインストールします。
シングルファイルはすべてをダウンロードしてから、インストールします。
Linux 64 用 SDSoC 2019.1 ウェブ インストーラー (BIN - 114.52 MB)
SDx 2019.1 SFD (TAR/GZIP - 25.8 GB)
ウェブインストーラーは、そのまま実行してください。
chmod 755 Xilinx_SDSoC_2019.1_0524_1430_Lin64.bin
./Xilinx_SDSoC_2019.1_0524_1430_Lin64.bin
シングルファイルは、解凍後、./xsetup で実行できます。
承諾書を承諾したあと、特に指定しなければ、そのままインストールを続けてください。
SDSoCの場合、すべての機能を使おうとするときは、ラインセスが必要となります。
ライセンスはUltra96を購入するとついてきますので、それを使用してください。
インストール後に登録できるようになります。
また、Vivadoの機能に限定すれば、ライセンス無しでも使用できます。
ボードファイル
Ultra96の場合、予めボードファイルをVivadoに準備しておくと、便利です。
ダウンロードは次のところです。
https://github.com/Avnet/bdf/archive/master.zip
unzip master.zip 等で、解凍後、bdf-master以下のディレクトリーを次のところにコピーします。
/tools/Xilinx/Vivado/2019.1/data/boards/board_files
コマンドだとこんな感じです。(バージョン2019.1の場合、適宜変更してください)
wget https://github.com/Avnet/bdf/archive/master.zip
unzip master.zip
cp -rf bdf-master/* /tools/Xilinx/Vivado/2019.1/data/boards/board_files
ケーブルドライバーのインストール
Vivadoまたは、SDSoCをインストール後、USB-JTAG Podを持っている方は、ケーブルドラーバーをインストールしておいたほうが便利です。
次のようにします。
cd /tools/Xilinx/Vivado/2019.1/data/xicom/cable_drivers/lin64/install_script/install_drivers
sudo ./install_drivers
Linuxツール
Ultra96向けLinux開発ツールの場合は選択筋が多く、どれを使っても構いません。逆にたくさんありすぎて困るかもしれません。
その中で、ご紹介するするのは、ザイリンクス社からでているのは、Petalinuxというツールです。
特徴としては、
- 簡単なコマンドだけで、Linuxのビルドができ、イメージができる。
- ザイリンクスの他のツールとの親和性がある。
- 他のLinuxのツールに比べると、設定の自由度が低くなる。
などがあります。
使っている方は、Linuxビルドシステムの勉強時間が取れなかったり、とりあえずやってみようという方が多い感じがします。
PetaLinux
ザイリンクス社が提供している、Linuxの開発ツールです。ホストはLinuxのみ対応です。
ザイリンクスのFPGAに搭載されている、CPUに対して、Linuxに必要なカーネルなどのビルドシステムを提供しています。
少ないコマンドでビルドできるのが特徴です。
全体として、CUI(コマンドライン、ターミナル)での実行になります。GUIはありません。
まず、準備としては、予め必要な処理を行っておきます。私の場合はUbuntuで構成しました。
途中でなにか聞かれることがあると思いますが、必要に応じて実行してください。
sudo dpkg-reconfigure dash
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y tofrodos iproute2 gawk make net-tools locales cpio libncurses5-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev screen pax gzip xvfb tftpd tftp libtool-bin default-jre lsb-release zlib1g:i386 git python-dev
sudo locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export LC_ALL=en_US.UTF-8
sudo mkdir -p /opt/petalinux/
sudo chmod -R 777 /opt/petalinux/
sudo mkdir /tftpboot
sudo chmod 666 /tftpboot
PetaLinuxは次のところからダウンロードできます。
https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/embedded-design-tools.html
必要なのが次のファイルになります。
PetaLinux - インストレーション ファイル - 2019.1
PetaLinux 2019.1 インストーラー (TAR/GZIP - 7.14 GB)
ダウンロードしたファイルは、実行可能な属性を与えたうえ、直接実行します。
chmod 755 petalinux-v2019.1-final-installer.run
./petalinux-v2019.1-final-installer.run /opt/petalinux
承諾書等を確認しながら、インストールが終了します。
環境変数の設定
Vivadoと、Petalinuxを実行するときには環境変数の設定が必要です。
毎回、設定してもいいのですが、予めターミナルを立ち上がるときに自動設定することもできます。
そのための設定方法は次のとおりになります。
sudo echo "source /tools/Xilinx/Vivado/2019.1/settings64.sh " >> ~/.bashrc
sudo echo "source /opt/petalinux/settings.sh " >> ~/.bashrc
開発環境の設定はこれで可能です。
Petalinux向けBSPの作成
2019年12月15日追記。
本来なら、別記事で紹介しようと思っていたのですが、Vitisというツールが出てきたこと、
また、Avnetから簡単にBSPを作る方法が提供されましたので、ご紹介します。
ソースファイルは
まずは適当なフォルダーを作成して、次の3つのファイルをダウンロードをします。
git clone -b 2019.1 https://github.com/Avnet/hdl.git
git clone -b 2019.1 https://github.com/Avnet/petalinux.git
git clone https://github.com/Avnet/bdf.git
ディレクトリーを変更します。
cd ./petalinux/scripts
その後、次のスクリプトを実行します。
Ultra96V1の場合
source ./make_ultra96v1_petalinux_full_bsp.sh
Ultra96V2の場合
source ./make_ultra96v2_obb_bsp.sh
自動的にVivadoとPetalinuxが動作しまして、数時間後、BSPファイルが作成されます。