FPGAの学習計画と開発環境の構築

移転前のサイトからの転記です。日付は当時のものを使用しています。文言などは若干修正を入れています(7年前なので表現が若くて恥ずかしい)。


4bit CPU製作が完了したので、次はFPGAに手を出してみたいと思っています。きっかけはいくつかありますが、一番はハード素人が32bit CPUをFPGAで自作して動かすまで読んだ本のまとめを見て意欲がかきたてられたためです。このページではDE0というAltera製のFPGA評価ボードを使用し、32bit MIPS CPUを動作させるまでの参考書が紹介されています。その中に “CPUの創り方” も紹介されていて、自分の経験が無駄にはならないことを確信するとともに、コンピュータアーキテクチャの道を進むならFPGAを理解しておきたいと考えた次第です。

FPGA学習で目標とするところ

目的はFPGAの技術習得です。まずはLチカから始めてデジタルフィルターの実装・評価までやってみたいと思います。その先はMIPS CPU実装まで個人で実施したいと考えています。

学習計画

基本的にはハード素人が32bit CPUをFPGAで自作して動かすまで読んだ本のまとめで紹介されている書籍を読みながらFPGAに慣れていきたいと考えています。紹介されている入門書を2冊仕上げてから一度デジタルフィルターの実装にトライしてみて、再度学習計画を立てたいと考えています。

入門書の1冊目はCQ出版のトライアルシリーズです。DE0の周辺機能を簡単に動かしてみようといったスタイルの本で、加算器を実装したり7セグLEDを光らせたりといったことをやっています。これでFPGA開発環境の使い方やVerilog HDLの記述方法のさわりが分かりそうだと思っています。

続いて技術評論社の名著です。こちらもDE0を対象に書かれている本で、プロセッサ実装やSDRAM制御、Linuxを動かすというところまで書いてあります。もう既に購入しているのですが、今さらっと読んでみても難解です。

購入するFPGAボード

上記参考書での学習を決めているためDE0を購入します。DE0はWEBや書籍の情報がとにかく豊富なため、独学の私には安心です。またFPGAの書き込み・デバッグに必要なUSB-Blasterも相当機能が内蔵されており扱いやすいです。USB-Blasterは純正品なら5万円近くする高価なデバイスのため、個人で買うのはキツそうだと思っていました。

ただ少し気になるのはDE0-CVというCyclone Vが載った後継が出ていること。DE0との大きな違いはDE0-CV届きましたによると、パラレルFlashが無くなったこととSDRAMの容量が8MB→64MBになったことらしいです。SDRAMのページサイズも異なるため、コードが使い回せなくなったり細かなバグが出ることがあるとのことでした。完全に上位互換なら良いですが、WEBや書籍のリソースを参考にすると考えると素直にDE0を購入するのが正しい判断だと考えました。

CycloneIIIに必要なツールについて

次記事で記載しますがDE0は個人輸入となり届くまで時間が掛かるため、いずれ必要になる開発環境を事前に整えておくことにします。DE0を購入する前に現在のPCで開発環境が動作するかを確認しておきます。ALTERA製FPGAの開発に必要となる代表的なツールは以下3点になります。

  1. Quartus : 統合開発環境
  2. ModelSim : シミュレーション/モデルツール
  3. Nios II (EDS) : Nios II ソフトウェア・デザインツール

基本的にはQuartusを用いた開発になりますが、シミュレーションを用いて本格的に開発したい人はModelSim、またALTERA製FPGA上で動くプロセッサー (Nios II) を載せたい人はNios II (EDS) を導入することになります。今回は将来も見据えてこれら3点全て導入したいと思います。

CycloneIII対応ツールの確認

DE0に搭載されているFPGAはCycloneIIIなので、ALTERA社のソフトウェア・セレクターにて対象となるQuartusのバージョンを確認します。ver 13.1まで対応しているようです(本記事記載時点でver16.1までリリースされていました)。尚、ModelSimとNios II (EDS) に関する記載はありませんでした。

各種ツール対応OSの確認

パーツ換装 & Win10クリーンインストールでも記載した通り、最近win10にアップグレードしたため “そもそもツールは動くのか?” が心配です。各種ツールのオペレーティング・システム・サポートにて上記3種のツールの対応OSを確認してみた結果が以下になります。

  1. Quartus : 記載はver 16.1の対応状況のみでver 13.1の対応状況が記載されていませんでした。
  2. ModelSim : Window10(64bit)で「-」となっていました。
  3. Nios II (EDS) : Window10(64bit)で「-」となっていました。

そもそも今更CycloneIIIを使う人が少ないためだと思いますが、Quartusに関しては過去のバージョンについても対応OSを載せておいてもらえたら安心だったと思います。「-」となっている項目は未確認ということだと思いますが、まずはインストールしてみることにします。

ツールのダウンロード

ソフトウェア・セレクターの画面から“Quartus II ウェブ エディション ”を選択します。ウェブ エディションでない方は有償のため注意します。ダウンロード方法は「ダウンロード・マネージャー」を指定し、DeviceはCycloneIIIのみを対象としました。

my ALTERAなるアカウントが必要ということで、各種情報を入力して登録します。

ダイレクトリンクが表示されたためダイレクトダウンロードしました。回線に不安がある方はダウンロードマネージャーを使用した方が良いかと思います。

ツールのインストール

“QuartusSetupWeb-13.1.0.162.exe”を実行します。インストール先はProgram Filesの下ではなくCドライブ直下のALTERAフォルダになっていましたが、特に変更する必要も無いのでそのままにしておきました。インストール内容は以下を選択。ModelSimは先程ダウンロードしたファイルがありますが、念のためチェックしておきました。

10分程度でインストール完了しました。早速立ち上げてみます。

起動後、以下のダイアログが現れました。TALKBACKとは、回路をコンパイルしたときの情報をALTERA社に送信するというもので、設計データそのものは送らないとのことです。無償のWEBエディションではこれに同意しないとロジックアナライザ機能が使えないため渋々OKにしておきました。

正常起動することを確認して一件落着です。これで安心してDE0の購入に踏み切れます。