bladeRF2.0 micro FPGAビットストリーム構築
以前にgithub上にあるbladeRFのHDLコードからFPGAイメージを作成する方法をご紹介しました。
あれからbladeRFの世代も進み、ビルドに使うツールもバージョンアップしてきているので改めて手順をご説明します。
実際にWikiの手順どおりに実行してみても、エラーになりなかなかビルドができないので、下記に詳細な手順をまとめてみました。
1 Qualtus Prime Lite Edition(無料版)のインストール(バージョンに注意)
ビルドにはQualtus Prime Lite Edition v17.1を使います。インテルのサイトからダウンロードしてください。 その際、Cyclone IV(bladeRFx40,x115の場合)あるいはCyclone V(bladeRF2.0 micro A4,A9の場合)のデバイスサポートファイルも忘れずに一緒にダウンロード、インストールしておいてください。
Qualtus Primeのバージョンが違うとビルドできないかもしれませんので、少々古い17.1を選択してください。
2 NIOS II Command Shellを起動
Windowsの場合、スタートメニューから"Intel FPGA 17.1...."配下の"NIOS II Command Shell"を起動してください。 コマンドプロンプトが立ち上がり、Unix風のコマンドシェル(Cygwin)環境が起動します。 WindowsのC:\ディレクトリは/cygdrive/c/にマウントされているのでご注意ください。
3 フォルダを用意してbladeRFソースをGitHubからclone
私の経験ではWindowsはQualtusが生成する長いパス名がエラーを引き起こすようです。なるべくフォルダのパスを浅くしていただくとこの手のエラーの発生が防げます。例えばC:\FPGA\bladeRF といった風に、Cドライブのすぐ下に置くと良いかと思います。
また、ソースをクローンする時に'--recursive’を付ける必要がありますのでご注意ください。 gitを使わず使わずに特定リリースの’*.tar.gz’ファイルをダウンロードして展開する方法は、後で述べるサブモジュールのアップデートができないためうまく行かない可能性がありますのでご注意ください。
$ cd /cygdrive/c/ $ mkdir FPGA $ cd FPGA $ git clone --recursive https://github.com/Nuand/bladeRF.git
4 ビルド手順
NuandのGitHubサイトにビルド手順が書かれています。
https://github.com/Nuand/bladeRF/tree/master/hdl
基本的にはここに書いてあるとおりです。 ビルドビルド実行ビルド実行前にビルド実行前に、cmakeとPthreads-win32のインストールを忘れずに行っておいてください。Pthreads-win32は以下のサイトにあります。私は"C:\Program Files (x86)\Pthreads-win32"フォルダフォルダにばプレビルドバイナリを手動インストールしました。
https://sourceware.org/pthreads-win32/
もう一点、クローンしたフォルダで下記gitコマンドを実行してサブモジュールをアップデートしておきましょう。
$ git submodule init $ git submodule update
クローンした直後の状態から、カレントディレクトリを移動してビルドスクリプトを起動します。
$ cd bladeRF/hdl/quartus/ $ ./build_bladerf.sh -b bladeRF-micro -s A4 -r hosted
5 CMakeLists.txtの修正(Issue#752)
それでもエラーが出るので調べたら下記Issueにたどり着きました。
https://github.com/Nuand/bladeRF/issues/752
書いてある内容に従い、"bladeRF/hdl/fpga/ip/analogdevicesinc/no_OS/CMakeLists.txt"の下記の行を書き換えます。
COMMAND ${Patcher_EXECUTABLE} -p3⇒ COMMAND ${Patcher_EXECUTABLE} -p3 --binary -l
最後の"-l"は小文字のLなのでお間違え無いよう。私の場合、ビルドは18分で終わり、以下のメッセージが最後に表示されました。
########################################################################## Done! Image, reports, and checksums copied to: hostedxA4-2020-11-18_22.31.14 hostedxA4.rbf checksums: MD5: fa5707f8f92c12e6f228d4ccf3e0a7f4 SHA256: 10eddc54645da14d9ab1429cd0afdec26a9f63d00de987bd48e5aecf73ab21e4 Fitter Status : Successful - Wed Nov 18 22:28:56 2020 Quartus Prime Version : 17.1.0 Build 590 10/25/2017 SJ Lite Edition Revision Name : hosted Top-level Entity Name : bladerf Family : Cyclone V Device : 5CEBA4F23C8 Timing Models : Final Logic utilization (in ALMs) : 5,935 / 18,480 ( 32 % ) Total registers : 13534 Total pins : 173 / 224 ( 77 % ) Total virtual pins : 0 Total block memory bits : 1,823,744 / 3,153,920 ( 58 % ) Total RAM Blocks : 228 / 308 ( 74 % ) Total DSP Blocks : 8 / 66 ( 12 % ) Total HSSI RX PCSs : 0 Total HSSI PMA RX Deserializers : 0 Total HSSI TX PCSs : 0 Total HSSI PMA TX Serializers : 0 Total PLLs : 3 / 4 ( 75 % ) Total DLLs : 0 / 4 ( 0 % ) ########################################################################## Total Build Time: 00:18:00
これで無事にビルドが完了すると思います。この例ではhostedxA4-20xx-xx-xx_xx.xx.xxフォルダ(ビルド時のタイムスタンプ)の中に*.rbfファイルが保存されていればビルド成功です。
6 最後に
ビルドを試してみた方、うまく行った場合もうまく行かなかった場合もぜひお知らせください。
追記:2021年5月、最新バージョン(2021.02)でビルドできることを確認しました。












