2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

「作ろう! CPU」を中華FPGAで動かすまで

Last updated at Posted at 2021-12-30

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ボードの接続は下記の順番

  1. FPGAボードとPCを接続(ボードに給電を開始する)
  2. FPGAボードとUSB Blasterを接続
  3. 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上での操作

ここからは下記の動画が参考になった。

  1. プロジェクトの作成

    1. New Project Wizardを選択
    2. [Introduction] Next>
    3. [Directory, Name, Top-Level Entity] 適切なプロジェクトフォルダ、プロジェクト名を記載し、Next>
    4. [Project Type] Empty projectを記載し、Next>
    5. [Add Files] Next>
    6. **[Family, Device & Board Settings]**下記を設定し、Next>
    • Family: Cyclone IV E
    • Available devices: EP4CE6E22C8
    1. [EDA Tool Settings] Next>
  2. コードを記載

    1. New -> SystemVerilog HDL Fileを選択
    2. 書籍のコードを記載し、*.svで保存
  3. ピンの割当

    1. Assignments -> Pin Planner
    2. Node Nameにコード中のin/out名、Locationにピン番号を割り当てる
    3. ピン番号は、Aliexpressのページに記載がある(FPGA_CLKが23番、など)
  4. コンパイル

    1. Processing->Start Compilation
    2. エラーメッセージが出ていないことを確認
  5. ボードへの書き込み

    1. Tools->Programmer
    2. Hardware SetupでUSB Blasterを選択
    3. Add Fileで出来上がった*.sofファイルを選択
    4. Startを押下

以上の手順で、書籍中のLチカおよび、TD4によるキッチンタイマーの実装が動作することを確認した。

4. 所感

とりあえず動かすところまでの流れをざっと記載した。
設定はあまり理解できておらず、どの設定がどのように効くのかはちょっとずつ調べていきたい。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?