01signal.com

Xillybus クイックスタートガイド

はじめに

このページは、Xillybus または XillyUSB を使い始めるための手順を簡潔にまとめたものです。通常は短く簡単な手順で済み、細かい説明はあまり必要ありません。ただし、FPGA によって少し手順が異なります。

ここでは、最も一般的な使い方と、比較的新しい FPGA だけを扱います。このページの情報だけでは明らかに足りない場合には、Xillybus のドキュメントページを参照してください。そこには、より詳細で具体的な情報があります。

ここでは Xillinux については説明しません。手順が少し異なるためです。

概要

Xillybus を使い始める手順は、次の 3 つのステップです。

  1. デモバンドル (demo bundle) から FPGA 用のビットストリーム (bitstream) ファイルを生成します。
  2. コンピュータにドライバをインストールします(これは必要ないこともよくあります)。
  3. コンピュータ上で、Xillybus が動作することを確認する簡単なテストを実行します(LinuxWindows のそれぞれ別のページで説明しています)。

後になって、カスタム 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 用です。該当するページを開き、次の項目をダウンロードしてください。

これらのファイルはすべて .zip または .tar.gz 形式です。まず、圧縮を解いてディスクに保存してください。

お使いのボードがデモバンドルの一覧にない場合は、そのデモバンドルに修正を加える必要があります。同じ FPGA ファミリをベースにしたデモバンドルを選び、Xilinx または Intel FPGA 向けドキュメントのガイドラインに従ってください。

次の手順は AMD / Xilinx と Altera とで異なります。

AMD / Xilinx 向けビットストリームの生成

コンピュータに Vivado がインストールされている必要があります。各 FPGA に適したバージョンの一覧は、ドキュメントに記載されています。ただし、すでに Vivado をインストールしている場合は、その Vivado で試してみてください。Vivado のバージョンが適していないと、以下に示す手順は失敗します。新しいバージョンが必要であるというエラーが出るはずです。そのエラーが出なければ、Vivado のバージョンは問題ありません。

ビットストリームファイルを作成する手順は次のとおりです。

Vivado はインプリメンテーション中にいくつかの警告を出しますが、重大な警告 (Critical Warnings) やエラーは発生しないはずです。

詳細な説明は、Xilinx 向け FPGA デモバンドルのスタートアップガイドにあります。Vivado は Virtex-5、Spartan-6、Virtex-6 には対応していないことに注意してください。これらの FPGA を使う場合は、そのドキュメントを参照してください。

Tcl スクリプト (script) を使わずに FPGA プロジェクトを作成しようとしないでください。新規プロジェクトを作成してソースファイルをインポートする方法では、おそらく正しく動作しません。

Altera 向けビットストリームの生成

コンピュータに Quartus がインストールされている必要があります。各 FPGA に適したバージョンの一覧は、ドキュメントに記載されています。ただし、すでに Quartus をインストールしている場合は、その Quartus で試してみてください。Quartus のバージョンが適していないと、以下に示す手順は失敗します。新しいバージョンが必要であるというエラーが出るはずです。そのエラーが出なければ、Quartus のバージョンは問題ありません。

ビットストリームファイルを作成する手順は次のとおりです。

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 つあります。

Xillybus のドライバは Linux v3.12 以降、カーネルツリーの一部です。お使いのカーネルが v4.6 以降であれば、ドライバを更新する必要はありません。そのバージョン以降、実質的な変更はないからです(コーディングスタイルの変更のみ)。XillyUSB 用ドライバは Linux v5.14 で追加されました。

Linux での開始方法の詳細は、関連するガイドにあります。

カーネルモジュールのコンパイル

Xillybus のカーネルモジュールをコンパイルするには、コンパイルを行うコンピュータに、次の 3 点がインストールされている必要があります。

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 がお使いのハードウェアで動作するかを確認します。方法はLinuxWindows で別々に説明しています。

このページは英語から機械翻訳されたものです。不明な点があれば、原文を参照してください。
Copyright © 2021-2026. All rights reserved. (dcc38493)