VHDLでLチカ
最近、同時進行作業が多くなってきてます
今回はVHDLで回路を書いてDE-0でLチカしました。
開発環境はAlteraのQuartusⅡです。
1. QuartusⅡのインストール
DE-0は付属したCDの中にインストーラがついてきたので、そこからQuartusⅡ 9.0 Web Editionをインストールしました。
https://www.altera.co.jp/downloads/download-center.html
ここからソフトウェアを選択、QuartusⅡウェブ・エディションを選択してダウンロードすることもできます。
2. プロジェクトをはじめる
・(USB Blasterのドライバをインストールする)
DE-0をPCに接続した時、「ドライバがありません」と言われました。ネットで調べてみたら、alteraのファイルの中にあるらしい...と、フォルダを開けていくと、¥altera¥90¥quartus¥drivers¥usb-blasterにありました。
コントロールパネルからデバイスマネージャーを開いて、USB-Blasterのドライバを更新します。先ほどのフォルダから参照してドライバーをインストール。正常にインストールされると「Altera USB-Blaster」として使えるようになります。
・プロジェクトを始める
QuatusⅡを開くと上の画像のようになりました。ここの[Create a New Project]からプロジェクトを始めていきます。
Nextで次へ。
続いて名前をつけます。下の2つの名前は同じにする必要があるらしいです。ここでは適当にNewとしました。そしてNext。
ここでVHDLファイルを追加しますが、あとでも追加できるのでNextで次へ行きます。
ここでは使うデバイスを選択します。DE-0に乗っているCycloneシリーズのチップを見ながら選択しました。FinishでNew Project Wizardを終了します。
プロジェクトを無事に始めることができたら、左上の[File]から[New...]をクリックし、VHDLファイルを選択してファイルを作成します。また左上の[File]から、[Save As...]でVHDLファイルに名前をつけて保存しておきます。
3. コンパイル
論理合成にあたる行程です。時間がかかると聞いていましたが、今回は書いたコードが簡単だったようで、あまり時間はかかりませんでした。
VHDLファイルにコードを記述したら、コンパイルを行います。上の[Processing]から[Start Compilation]でコンパイルします。エラーがあったら赤文字で現れます。その赤文字をダブルクリックすると、問題のある箇所を反転表示してくれます。便利。
間違いを訂正して保存。
成功したらこんな感じでお知らせしてくれます。(warningがありますが笑)
合成した回路は、RTL Viewerで見ることができます。左側のHierarchyからプロジェクト名を右クリックし、[Locate]>[Locate in RTL Viewer]をクリックすると出てきます。
今回はこんな感じでした。
4. ピン割り当て
書いたコードを、実際のFPGAに配線していきます。[Assignments]>[Pin Planner]からウィンドウを開き、次のような画面で作業をしていきます(すでに配線した後の画面です)。赤色になっているところが書いた回路が繋がるところ、紫になっているところはトライステートの入力に設定したところです。図のピンを右クリックして[Reserve]から[As input tristated]で設定できます。未使用ピンをトライステートの入力に設定しておくことで予想しない接続があってもハイインピーダンスなのでピンがある程度守られます。TCLファイルでこの作業を自動化できるそうなのでやってみたのですが、場所は認識されてもトライステートの入力には設定されませんでした。これはまた再挑戦してみます。
配線ができたら、コンパイルと同じように[Start Compilation]で配置配線をします。
自分でチップの中身を配線できるというのはなかなかロマンがあります。
5. 動作確認
Pin Plannerウィンドウを閉じて、プロジェクトウィンドウの上の[Tools]>[Programmer]をクリックして上のウィンドウを開きます。sofファイルがあることを確認し、左側の[Start]でFPGAに書き込みます。書き込み対象のハードウェアが設定されていなければ、左側のHardware Setupから設定します。成功して以下のように動作しました。
sw0とsw1にAND,OR, XOR, NOTを接続してそれぞれ4つのLEDにつないだ回路 pic.twitter.com/Djzhj3ofvs
— やぎ湯@発展途上のMaker (@yagiyums) 2016年10月16日
というわけで、FPGAも使えるようになりました。QuartusⅡはまだまだ機能があるようなので存分に使っていきたいですね。のちのちCPUも作ってみたいなーとも考えていたり。
今回は以下の本を参考にしました。
回路図で学べるFPGA入門 回路図は読める人のためのHDLガイド
- 作者: すすたわり
- 出版社/メーカー: 秀和システム
- 発売日: 2016/03/25
- メディア: 単行本
- この商品を含むブログ (1件) を見る
投げ銭していただければ、めちゃくちゃ喜ぶのでよかったらよろしくお願いします。