はじめに
このページは、Xillybus または XillyUSB を使い始めるための手順を簡潔にまとめたものです。通常は短く簡単な手順で済み、細かい説明はあまり必要ありません。ただし、FPGA によって少し手順が異なります。
ここでは、最も一般的な使い方と、比較的新しい FPGA だけを扱います。このページの情報だけでは明らかに足りない場合には、Xillybus のドキュメントページを参照してください。そこには、より詳細で具体的な情報があります。
ここでは Xillinux については説明しません。手順が少し異なるためです。
概要
Xillybus を使い始める手順は、次の 3 つのステップです。
- デモバンドル (demo bundle) から FPGA 用のビットストリーム (bitstream) ファイルを生成します。
- コンピュータにドライバをインストールします(これは必要ないこともよくあります)。
- コンピュータ上で、Xillybus が動作することを確認する簡単なテストを実行します(Linux と Windows のそれぞれ別のページで説明しています)。
後になって、カスタム IP コア (custom IP core) を作りたくなるかもしれません。その場合は、IP Core Factory を使えば、ストリームの数を自由に選べます。ただし、その前にデモバンドルを試すと、Xillybus の動作を理解する助けになります。
Xillybus と XillyUSB の比較
XillyUSB の使用を考えているなら、現実的な選択肢として、PCIe 向け Xillybus を検討してください。PCIe バスは USB よりはるかに堅牢です。
XillyUSB を選ぶべきなのは、FPGA をコンピュータの外に置かなければならない場合だけです(たとえばノート PC をホストとして使う場合など)。
デモバンドルとソフトウェアのダウンロード
Xillybus のウェブサイトからダウンロードできるものは、すべて完全に動作します。IP Core Factory の IP コア (IP core) も、デモバンドルも同様です。アクティベーションコードのようなものを要求する必要はありません。ただし、IP コアの利用許諾には制限があります。評価目的にのみ使用できます。その後も IP コアを合法的に使い続けるには、ライセンスの購入が必要になる場合があります。そこで、必ず利用条件を理解しておいてください。
ファイルのダウンロード用の Web ページは 2 つあります。PCIe を使う Xillybus 用と、XillyUSB 用です。該当するページを開き、次の項目をダウンロードしてください。
- お使いのボード向けに用意されたデモバンドル
- Linux または Microsoft Windows 用のドライバ。Linux を使っていて、そのディストリビューションにドライバが含まれている場合でも、ダウンロードしてください。
- Windows ユーザーのみ:Windows 用の Xillybus パッケージ
- Windows で XillyUSB を使うユーザーのみ:Windows 用の診断ユーティリティ
これらのファイルはすべて .zip または .tar.gz 形式です。まず、圧縮を解いてディスクに保存してください。
お使いのボードがデモバンドルの一覧にない場合は、そのデモバンドルに修正を加える必要があります。同じ FPGA ファミリをベースにしたデモバンドルを選び、Xilinx または Intel FPGA 向けドキュメントのガイドラインに従ってください。
次の手順は AMD / Xilinx と Altera とで異なります。
AMD / Xilinx 向けビットストリームの生成
コンピュータに Vivado がインストールされている必要があります。各 FPGA に適したバージョンの一覧は、ドキュメントに記載されています。ただし、すでに Vivado をインストールしている場合は、その Vivado で試してみてください。Vivado のバージョンが適していないと、以下に示す手順は失敗します。新しいバージョンが必要であるというエラーが出るはずです。そのエラーが出なければ、Vivado のバージョンは問題ありません。
ビットストリームファイルを作成する手順は次のとおりです。
- Vivado のメニューから Tools > Tcl Script… を選択し、xillydemo-vivado.tcl を探します。このファイルは verilog/ または vhdl/ という名前のサブディレクトリの中にあります。どちらを使うかは、おそらくご自身でおわかりでしょう。分からなければ verilog/ を選んでください。
- Vivado が、これに応じて新しい FPGA プロジェクトを作成します。Vivado の Tcl コンソールに「INFO: Project created: xillydemo」と表示されます。
- 次に「Generate Bitstream」をクリックします。
- Vivado がプロジェクトのインプリメンテーションを実行します。この処理が終わると、すぐに使えるビットストリームファイルが生成されます。ファイル名は xillydemo.bit です。
Vivado はインプリメンテーション中にいくつかの警告を出しますが、重大な警告 (Critical Warnings) やエラーは発生しないはずです。
詳細な説明は、Xilinx 向け FPGA デモバンドルのスタートアップガイドにあります。Vivado は Virtex-5、Spartan-6、Virtex-6 には対応していないことに注意してください。これらの FPGA を使う場合は、そのドキュメントを参照してください。
Tcl スクリプト (script) を使わずに FPGA プロジェクトを作成しようとしないでください。新規プロジェクトを作成してソースファイルをインポートする方法では、おそらく正しく動作しません。
Altera 向けビットストリームの生成
コンピュータに Quartus がインストールされている必要があります。各 FPGA に適したバージョンの一覧は、ドキュメントに記載されています。ただし、すでに Quartus をインストールしている場合は、その Quartus で試してみてください。Quartus のバージョンが適していないと、以下に示す手順は失敗します。新しいバージョンが必要であるというエラーが出るはずです。そのエラーが出なければ、Quartus のバージョンは問題ありません。
ビットストリームファイルを作成する手順は次のとおりです。
- 「xillydemo.qpf」ファイルをダブルクリックします。このファイルは verilog/ または vhdl/ という名前のサブディレクトリの中にあります。どちらを使うかは、おそらくご自身でおわかりでしょう。分からなければ verilog/ を選んでください。
- Quartus が FPGA プロジェクトを開きます。
- 「Compile Design」をクリックします。
- Quartus がプロジェクトのコンパイルを実行します。この処理が終わると、すぐに使えるビットストリームファイルが生成されます。ファイル名は xillydemo.sof です。
Quartus のコンパイル中に警告はいくつか出ますが、重大な警告 (Critical Warnings) やエラーは発生しないはずです。
詳細な説明は、Intel FPGA 向け FPGA デモバンドルのスタートアップガイドにあります。お使いの FPGA がシリーズ V より前の世代の場合(例:Cyclone IV)は、手順が少し長くなります。詳しくはこのドキュメントを参照してください。
Microsoft Windows 向けドライバのインストール
Xillybus の Windows ドライバは、標準的な方法でインストールします。FPGA ボードをコンピュータに装着した状態で起動してください。コンピュータの電源を入れる前に、FPGA には Xillybus を含むビットストリームを書き込んでおく必要があります。
まず、ドライバを含む Zip アーカイブの内容をローカルディスクに展開します。このファイルはデモバンドルのダウンロードページにあります。ファイル名は、xillybus-windriver-1.2.0.0.zip のような名前です。
デバイスマネージャーを開くと、「Other Devices」(その他のデバイス)の下にデバイスが表示されているはずです。このデバイスのアイコンには、正しくインストールされていないことを示す感嘆符が付いています。そのアイコンを右クリックし、「Update Driver Software…」を選択します。次に「Browse my computer for driver software」(コンピュータを参照してドライバソフトウェアを検索します)を選択します。それから、「xillybus-windriver-1.2.0.0」(または類似の名前)というディレクトリを選択します。「Next」をクリックし、続けて「Install」をクリックします。
ドライバが正しくインストールされると、デバイスマネージャーに「Xillybus」という新しいグループが表示されます。そのグループの中に、「Xillybus driver for generic FPGA interface」というデバイスがあります。このデバイスのアイコンにエラーを示すマーク(感嘆符)が付いていないことを確認してください。
XillyUSB を使う場合は、デバイスは「Universal Serial Bus controllers」(ユニバーサル シリアル バス コントローラー)グループの下に表示されます。ドライバは xillyusb-windriver-1.1.2.0-win10.zip に含まれています。
このインストール手順は、Windows 向けガイドにスクリーンショット付きで詳しく説明されています。
Windows 用ドライバをインストールしたら、次は簡単なテストを行います。これについては、別のページで説明しています。
Linux(?) 向けドライバのインストール
Xillybus のドライバは、多くのデスクトップ PC 向け Linux ディストリビューションに含まれています。Fedora、Ubuntu、Mint を使っていれば、Xillybus のドライバはおそらくすでにインストールされています。
ドライバがすでにインストールされているかどうかを確認するには、シェルプロンプトで次のように入力します。
$ modinfo xillybus_core
数行の出力が返ってきたら、ドライバはすでにインストールされています。何もする必要はありません。ドライバのインストールが必要なのは、「modinfo: ERROR: Module xillybus_core not found」と表示された場合だけです。
XillyUSB を使いたい場合のコマンドは次のとおりです。
$ modinfo xillyusb
ドライバがすでにインストールされている場合でも、Xillybus の udev ファイルをインストールしておくことをお勧めします。このページの下の方を参照してください。この手順を省略して、すぐに簡単なテストへ進んでも構いません。
ドライバがインストールされていない場合の選択肢は 2 つあります。
- ひとつは、ドライバをカーネルモジュールとしてインストールする方法です。この方法の手順は後述します。これは、ご自身でカーネルを準備していない場合(つまり、ディストリビューションや BSP (Board Support Package) の一部としてカーネルを受け取った場合)に適しています。
- もうひとつは、カーネルツリー内にあるドライバを有効にする方法です。この方法ではカーネル全体をコンパイルする必要があります。カーネルのコンパイルが作業手順に含まれているなら、こちらのほうが簡単です。該当する設定は CONFIG_XILLYBUS と CONFIG_XILLYBUS_PCIE(または CONFIG_XILLYUSB)です。
Xillybus のドライバは Linux v3.12 以降、カーネルツリーの一部です。お使いのカーネルが v4.6 以降であれば、ドライバを更新する必要はありません。そのバージョン以降、実質的な変更はないからです(コーディングスタイルの変更のみ)。XillyUSB 用ドライバは Linux v5.14 で追加されました。
Linux での開始方法の詳細は、関連するガイドにあります。
カーネルモジュールのコンパイル
Xillybus のカーネルモジュールをコンパイルするには、コンパイルを行うコンピュータに、次の 3 点がインストールされている必要があります。
- gcc コンパイラ
- 「make」
- Xillybus と一緒に使用するカーネル用のカーネルヘッダ
Linux 向けの関連ガイドには、これらの要素がインストールされているかどうかの確認方法や、インストールされていない場合の導入方法が書かれています。
ドライバのコンパイルは次のように行います。
$ tar -xzf xillybus.tar.gz $ cd xillybus/module/ $ make make -C /lib/modules/4.15.0/build M=/home/01signal/xillybus/module modules make[1]: Entering directory '/usr/src/linux-headers-4.15.0' CC [M] /home/01signal/xillybus/module/xillybus_core.o CC [M] /home/01signal/xillybus/module/xillybus_pcie.o Building modules, stage 2. MODPOST 2 modules CC /home/01signal/xillybus/module/xillybus_core.mod.o LD [M] /home/01signal/xillybus/module/xillybus_core.ko CC /home/01signal/xillybus/module/xillybus_pcie.mod.o LD [M] /home/01signal/xillybus/module/xillybus_pcie.ko make[1]: Leaving directory '/usr/src/linux-headers-4.15.0'
カーネルモジュールをインストールするには、「make install」と入力します(root 権限が必要です)。
次回、バス上に Xillybus デバイスがある状態でカーネルが起動すると、ドライバは自動的にロードされます。手動で insmod を使ってロードすることもできます。
組み込み Linux デバイスで Xillybus を使う予定がある場合、クロスコンパイラが必要になることがあります。この場合、組み込みカーネル用のカーネルヘッダも必要です。
「make install」を使いたくない場合は、同じことを手動で行えます。モジュールファイルを、カーネルモジュール用のディレクトリへコピーします。このディレクトリ名には、Xillybus と一緒に使うカーネルのバージョン番号が含まれていなければなりません。
たとえば、次のようにします。
# cp xillybus_core.ko /lib/modules/4.15.0/kernel/drivers/char/ # cp xillybus_pcie.ko /lib/modules/4.15.0/kernel/drivers/char/
その後、カーネルが新しいモジュールを認識するように depmod を実行します。例:
# depmod -a 4.15.0-20
udev ファイル (Linux)
ドライバがすでにインストールされている場合でも、Xillybus の udev ファイルをインストールすることをお勧めします。これにより、root ユーザーでなくても Xillybus にアクセスできるようになります。このファイルは、ドライバを含むパッケージ(xillybus.tar.gz または xillyusb.tar.gz)に含まれています。
Xillybus 用の udev ファイルのインストールは、次のコマンド(または類似のコマンド)で行います。root ユーザーで実行してください。
# cp 10-xillybus.rules /etc/udev/rules.d/
動作していますか?
次は、ここまでの手順がすべて正しいかどうか、つまり Xillybus がお使いのハードウェアで動作するかを確認します。方法はLinux とWindows で別々に説明しています。