読者です 読者をやめる 読者になる 読者になる

Cafe'Tec Yagiyu

のんびり気ままに技術進捗

VHDLでLチカ

FPGA

最近、同時進行作業が多くなってきてます

今回は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」として使えるようになります。

 

・プロジェクトを始める

f:id:yagiyu-tec:20161022231639p:plain

 QuatusⅡを開くと上の画像のようになりました。ここの[Create a New Project]からプロジェクトを始めていきます。

f:id:yagiyu-tec:20161022231733p:plain

Nextで次へ。

f:id:yagiyu-tec:20161022231745p:plain

続いて名前をつけます。下の2つの名前は同じにする必要があるらしいです。ここでは適当にNewとしました。そしてNext。

f:id:yagiyu-tec:20161022231830p:plain

ここでVHDLファイルを追加しますが、あとでも追加できるのでNextで次へ行きます。

f:id:yagiyu-tec:20161022231903p:plain

ここでは使うデバイスを選択します。DE-0に乗っているCycloneシリーズのチップを見ながら選択しました。FinishでNew Project Wizardを終了します。

f:id:yagiyu-tec:20161022231947p:plain

プロジェクトを無事に始めることができたら、左上の[File]から[New...]をクリックし、VHDLファイルを選択してファイルを作成します。また左上の[File]から、[Save As...]でVHDLファイルに名前をつけて保存しておきます。

 

3. コンパイル

論理合成にあたる行程です。時間がかかると聞いていましたが、今回は書いたコードが簡単だったようで、あまり時間はかかりませんでした。

f:id:yagiyu-tec:20161022232055p:plain

VHDLファイルにコードを記述したら、コンパイルを行います。上の[Processing]から[Start Compilation]でコンパイルします。エラーがあったら赤文字で現れます。その赤文字をダブルクリックすると、問題のある箇所を反転表示してくれます。便利。

間違いを訂正して保存。

成功したらこんな感じでお知らせしてくれます。(warningがありますが笑)

f:id:yagiyu-tec:20161022232114p:plain

合成した回路は、RTL Viewerで見ることができます。左側のHierarchyからプロジェクト名を右クリックし、[Locate]>[Locate in RTL Viewer]をクリックすると出てきます。

今回はこんな感じでした。

f:id:yagiyu-tec:20161022232130p:plain

 

4. ピン割り当て

f:id:yagiyu-tec:20161022232146p:plain

 書いたコードを、実際のFPGAに配線していきます。[Assignments]>[Pin Planner]からウィンドウを開き、次のような画面で作業をしていきます(すでに配線した後の画面です)。赤色になっているところが書いた回路が繋がるところ、紫になっているところはトライステートの入力に設定したところです。図のピンを右クリックして[Reserve]から[As input tristated]で設定できます。未使用ピンをトライステートの入力に設定しておくことで予想しない接続があってもハイインピーダンスなのでピンがある程度守られます。TCLファイルでこの作業を自動化できるそうなのでやってみたのですが、場所は認識されてもトライステートの入力には設定されませんでした。これはまた再挑戦してみます。

配線ができたら、コンパイルと同じように[Start Compilation]で配置配線をします。

自分でチップの中身を配線できるというのはなかなかロマンがあります。

 

5. 動作確認

f:id:yagiyu-tec:20161022232215p:plain

 Pin Plannerウィンドウを閉じて、プロジェクトウィンドウの上の[Tools]>[Programmer]をクリックして上のウィンドウを開きます。sofファイルがあることを確認し、左側の[Start]でFPGAに書き込みます。書き込み対象のハードウェアが設定されていなければ、左側のHardware Setupから設定します。成功して以下のように動作しました。

 

というわけで、FPGAも使えるようになりました。QuartusⅡはまだまだ機能があるようなので存分に使っていきたいですね。のちのちCPUも作ってみたいなーとも考えていたり。

今回は以下の本を参考にしました。

 

回路図で学べるFPGA入門 回路図は読める人のためのHDLガイド

回路図で学べるFPGA入門 回路図は読める人のためのHDLガイド

 

 

独自CPU開発で学ぶコンピュータのしくみ

独自CPU開発で学ぶコンピュータのしくみ

 

 

7net.omni7.jp