1. 背景
非情報系出身なのに低レイヤの知識を要する業務が多い。どこかで勉強しようということで、こちらの書籍を購入。
内容は初学者にもわかりやすく、大変気に入っている。(経験者には物足りない内容なのかもしれない。)
サポートページによると、推奨されているFPGAボードは軒並み1万円超えで、挫折するリスクを考えると少し怖い。
そこで、アリエクで下記のボードを購入した。
当時の価格で5000円くらい。
ボード本体にI/Oインターフェースがそれなりに付いているので、これ単体で色々遊べるのかな?と思いこちらにした。
買ったはいいものの、日本語での情報が少なく、こちらもかなり苦戦した。動かすまでの手順をまとめておく。
2. 環境
- PC: Ubuntu 20.04.3 LTS (64bit)
- Board: 上記Aliexpressのリンク
- Altera Cyclone iv ep4ce6
3. 手順
3.1 開発環境の準備
FPGAではボードに合わせて開発環境のソフトを選択する必要があるらしい。
今回のボードでは、IntelのQuartusを用いる。
下記サイトから、無料のLite版をダウンロードし、適切な場所に解凍する。
intelFPGA_lite/{version}/quartus/bin
の配下のquartus
が実行ファイルになっている。
3.2 USB Blasterの準備
ここが少しはまったところ。こちらのページが参考になった。
USB Blasterを使用するには、/etc/udev/rules.d/51-usbblaster.rules
を作成し、下記の内容を記載する必要があるとのこと。
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666"
PC, USB Blaster, FPGAボードの接続は下記の順番
- FPGAボードとPCを接続(ボードに給電を開始する)
- FPGAボードとUSB Blasterを接続
- USB BlasterをPCに接続
quartusを起動する前にintelFPGA_lite/{version}/quartus/bin/jtagconfig
を実行し、下記のように表示されればOK。
1) USB-Blaster [1-7]
020F10DD 10CL006(Y|Z)/10CL010(Y|Z)/..
逆に、下記のようなエラーメッセージが表示される場合はPCを再起動するなどして複数回試してみる。
1) USB-Blaster [1-7]
Unable to read device chain - JTAG chain broken
3.3 Quartus上での操作
ここからは下記の動画が参考になった。
-
プロジェクトの作成
-
New Project Wizard
を選択 -
[Introduction]
Next>
-
[Directory, Name, Top-Level Entity] 適切なプロジェクトフォルダ、プロジェクト名を記載し、
Next>
-
[Project Type] Empty projectを記載し、
Next>
-
[Add Files]
Next>
- **[Family, Device & Board Settings]**下記を設定し、
Next>
- Family: Cyclone IV E
- Available devices: EP4CE6E22C8
-
[EDA Tool Settings]
Next>
-
-
コードを記載
-
New
->SystemVerilog HDL File
を選択 - 書籍のコードを記載し、
*.sv
で保存
-
-
ピンの割当
-
Assignments
->Pin Planner
- Node Nameにコード中のin/out名、Locationにピン番号を割り当てる
- ピン番号は、Aliexpressのページに記載がある(FPGA_CLKが23番、など)
-
-
コンパイル
-
Processing
->Start Compilation
- エラーメッセージが出ていないことを確認
-
-
ボードへの書き込み
-
Tools
->Programmer
-
Hardware Setup
でUSB Blasterを選択 -
Add File
で出来上がった*.sof
ファイルを選択 -
Start
を押下
-
以上の手順で、書籍中のLチカおよび、TD4によるキッチンタイマーの実装が動作することを確認した。
4. 所感
とりあえず動かすところまでの流れをざっと記載した。
設定はあまり理解できておらず、どの設定がどのように効くのかはちょっとずつ調べていきたい。