やまものブログ

メモ書きブログです (^_^;A

Ultra96 ボード

FPGA は公私ともに触ったことがなかったのですが、、、公開情報も多く、流行りの技術も身につけられそうということで Ultra96 に手を出しました

本体、USB-to-JTAG/UART pod の注文
AVNETさんのこちらのサイトから 10/7(日) に Ultra96 の購入を申し込みました。
Xilinx FPGA/SoC 評価ボード

会社名はつい勤務先を入れてしまいましたが、個人での利用であることは明記して、住所・連絡先は個人のものを記載しました。

翌日、営業さんからメールの連絡を受けて、そこからはメールベースで見積もり、支払いなどの連絡を取り合って、10/12(金)の早朝深夜に銀行振込で支払を済ませると、10/15(月)にモノが届きました。
イメージ 1

購入したのは Ultra96 ボードに加えて、営業さんに薦められた USB-to-JTAG/UART pod です。podの価格は税抜5,000円でしたが、USB-to-JTAGで検索してでてきた他社製品より安かったのもあり、あまり考えずに注文しました。全くの初心者なので、動かなかった時のことを心配すると、推奨品が無難かと思いました。

ACアダプタの購入
電源と変換アダプタが必要なことも営業さんが教えてくれました。
ちょうど、東京駅に行く予定があったので、久々にアキバで買い物しました。
イメージ 2


動作確認

イメージ 3

最初の動作確認は、箱に入っていた手順書(英語)のとおりの操作で、microSDHC をセットして、電源入れて、ノートPCからWifiで接続して(下記のとおり)、ブラウザを開いて、メニューからサンプルを実行しただけです。

イメージ 4

受け入れの動作確認が手っ取り早くできて感心しました

Vivado ライセンスの登録
どこから手を付けていいのか分からないパニック状態(は大袈裟)でしたが、FPGA部分を使うには Xilinx社の Vivadoは必要なのは間違いないということで、

UG973 "Vivado Design Suite User Guide"
に従ってライセンス、および、ツールをインストールしました。

まずは、Xilinx社サイトで自分のアカウント登録からスタートです。Companyは正直に"private"にしました。

ライセンスは購入者向けの Voucherがあります。
登録は Voucherに書かれていたリンク先にて作業しました。
Host ID は自宅のPCの EthernetアダプタのMACアドレスを登録しました。
MACアドレスの確認方法が"/sbin/ifconfig" ではなく "ip addr"だったのには意外と迷いました。自宅PCは Ubuntu 18.04.1 LTS です。

ライセンス情報はメールですぐに自動送信されますが、そのメールが迷惑メールに分類されていました。それ自体は驚くことではないのですが、ライセンス情報の発行には人手で何らかのチェックがあって時間がかかっているものと思い込んでいて、迷惑メールを疑わなかったのは失敗でした。


Vivado のインストール
インストール手順は UG973 のとおりなので、ここで詳細は書き残しません。
はまったポイントを思い出せる範囲で列挙します。

現時点での最新は
Vivado Design Suite - HLx Editions: Update 2 - 2018.2
ですが、これをインストールするには、その前に
Vivado Design Suite - HLx Editions - 2018.2  Full Product Installation
も必要でした。

UG973Windowsでの手順、Web経由での手順などが記載されていて、Ubuntuで推奨できる手順はよくわかりませんでしたが、自分は下記の2つをダウンロードしてインストールしました。

Xilinx_Vivado_SDK_2018.2_0614_1954.tar.gz
Xilinx_Vivado_SDx_Update_2018.2.2_1001_1805.tar.gz


なお、Ubuntu16.04.3 LTS (64-bit) しかサポートしていませんが、18.04 で動かせているとの情報をみかけたので信じてインストールしてしまいました。

インストールは xsetup というコマンドを実行するのですが、それに sudo をつけるかどうか、つまり、root でインストールするか、自身のユーザ権限でインストールするかで悩みました。結局、sudo でインストールしたのですが、Cable Driver のインストールは sudo 必須なので、全て sudo がスッキリしていいと思いますが、皆さんはどうされているのでしょう

通常のインストール作業に加えて、ライブラリのインストールも必要です。特に、Ubuntuの場合、加えて、18.04はなおさらかもしれません。

AR# 66184
Install - How do I find out which libraries are required to run Vivado tools in Linux?


これに従って、Recursive LDD なるものを使って "not found"と報告されるライブラリをインストールしました。

自分が実行した apt install で必要だったであろうもの列挙します。本当に全て必要かどうかは分かりませんし、システムによってこれ以外が必要になるかもしれません。

$ sudo apt install libboost-all-dev
$ sudo apt install google-perftools

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install libgtk2.0-0:i386
$ sudo apt install libsm6:i386
$ sudo apt install libqtgui4:i386

なお、librdi_* なるものも"not found"でしたが、インストールは不要みたいです。

ド素人からはじめるFPGA ~ Ubuntu & Vivado環境構築 篇~

最初、よくわからなくて、
$ sudo apt install 'librdi*'
とか実行したのですが、"not found"が解消されず困り果てて検索したら上記のサイトをみつけました。

問題のファイルは、
/opt/Xilinx/Vivado/2018.2/lib/lnx64.o/
にあるので、settings64.shの設定で参照されるようになるのかと思います(多分)。


あと、Update 2 をインストールして vivadoを起動したら、インストーラを置いたパスへの書き込み権限のエラーがでたので、下記のようにしてエラーを消しました。
$ sudo chmod a+w <インストーラを置いた場所>/Xilinx_Vivado_SDx_Update_2018.2.2_1001_1805

また、Vivado で
Helpメニュー → Documentations and Tutorial...
とすると、エラーになります。
docnav: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

これはUbuntu 18.04 LTS 独自で、しかも、16.10から upgradeすると問題ないらしいです。
Fix libpng12-0 Missing In Ubuntu 18.04 Or 18.10, Preventing Apps Like WPS Office From Installing

上記サイトの
64bit DEB
から、
libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
をダウンロードして dpkg -i でインストールしたら解消しました。


Vivado: Totorials & Gettring Started を開こうとするとエラーになります。
/usr/lib/firefox/firefox: /home1/opt/Xilinx/Vivado/2018.2/ids_lite/ISE/lib/lin64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/firefox/firefox)

これはお手上げで、Ubuntu 設定にてデフォルトのブラウザを Chromium に変更したら解決しました。これまで、Firefox デフォルトで、Gmail/Google-Drive だけ Chromium で使っていましたが、今後は正副を逆にします。

ツール起動コマンド(まとめ)

source /opt/Xilinx/Vivado/2018.2/settings64.sh

vivado
xsdk
vlm (Vivado License Manager)

なお、インストール作業中には起動できていた
xic (Xilinx Information Center)
は、何故か今は起動できなくなっています。ツールのアップデート情報とかを表示してただけだったので、まあ、いいか…


チュートリアル
AVNET社のサポートサイトにあるチュートリアルを実行しました。
Home → Support → Reference Design / Tutorials → Ultra96

とりあえず、本日の時点で下記4つは無事に実行できています。

● Tutorial 01 Build a ZU+ MPSoC Hardware Platform
● Tutorial 02 First ZU+ Application - Hello World
● Tutorial 03 Generate and Run Bare Metal ZU+ Test Applications
● Tutorial 04 FSBL and Boot from microSD Card

チュートリアルに必要なデータは Vivadoにインストール済みで、ここではPDFによる手順書が提供されています。手順は Windowsベースなので、以下はUbuntuでちょっと迷たあたりを中心にメモ書きします。


● Tutorial 01
Ultra96 の Board Definition Files(BDF)が3つになります。※下記4つ目は別のボード
イメージ 5


手順書によると古いのはバグがあるので v1.2がよいらしい。
An Ultra96 board definition is built into Vivado 2018.2, but it
has a bug
. Make sure that your Vivado Install shows Ultra96’s 1.2 folder:
  <画像は省略>
Figure 1 – Ultra96 v1.2 BDF Installed


● Tutorial 02
SDK は vivado とは別コマンドで、Vivadoからは起動できないとここで知りました

Ubuntu で USB Serial cableを有効にする方法はこちらを参考にしました。
Tutorial how to use adapter usb serial cable Ubuntu 14 04

要約すると以下のコマンドです。1,3番めは確認なので、2,4番目だけでもいいかも。
$ lsusb
        : 中略
Bus 001 Device 007: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
        : 中略
$ modprobe usbserial vendor=0x0403 product=0x6010
$ dmesg | grep 'ttyUSB'
$ sudo chmod 777 /dev/ttyUSB1

"ttyUSB0"も同時に現れますが、使えませんでした。


● Tutorial 03
リセットは POR_B ボタンを押しますが、POR_B はボードの概略図に吹き出しの説明が無いので探してしまった。

ZynqMP_DRAM_Test は Terminal からメニューを選んだ項目が実行されるところが他と違っていて、インタラクティブな処理を記述する際に参考にできそう。


● Tutorial 04
Tutorial 03の直後に続けて実行したら /dev/ttyUSB1 が見えなくなってとまどった。ボードのリセット、電源入れ直し、USBケーブル挿し直しでは復活せず、PCをリブートしてようやく復活。 modprobe あたりの知識がもっとあればスマートに対処できたかも。

ターミナル接続は、vivado の SDK terminal を使わなくてもこれでもOKでした。
$ cu -l /dev/ttyUSB1 -s 115200

追記(2018/10/31):
BOOT.bin を書き込む SDHC上海問屋オリジナル microSDHC(マイクロSDHC)カード 16GB (Class10)を使いました。購入時そのままです。df -T  でタイプは "vfat" でした。


おわりに
以上、ここ2週間での作業を一気に書き留めました。
間違ったことを書いていたらゴメンナサイ

次は、同じ AVNET サイトにある
Accelerated Image Classification via Binary Neural Network
を試してみる予定です