FPGAボードDE0-Nanoを使ってみる:ピン割付けからRAMへの書き込みまで

FPGA

関連記事 FPGAの記事一覧

スポンサーリンク

DE0-Nano購入

アマゾンでTerasic社のFPGAボードDE0-Nanoを購入しました。

Terasic DE0-NANO開発ボード 【P0082】

新品価格
¥14,520から
(2020/6/5 00:08時点)

アマゾンでの購入ですが、販売と発送はマルツオンラインでした。

商品はこんな箱に入って届きました。

箱の中にはDE0-NanoボードとUSBケーブルが入っていました。

ちなみに、このUSBケーブルはFPGA書き込み専用のケーブルではなく、普通のUSB mini-Bケーブルのようです。
なので、このケーブル以外でもFPGAへの書き込みはできそうです。

USB-Blasterのデバイスドライバーをインストール

実際にFPGAを動かす前に、まずはFPGAに書き込みを行うためにUSB-Blasterのデバイスドライバーをインストールしてみます。

DE0-NanoとパソコンをUSBケーブルで接続した後、デバイスマネージャを開くと以下のように表示されました。

上の画像のように表示されたら、USB-Blasterを右クリックし、”ドライバーの更新”を選択します。

“ドライバーの検索方法”のウインドウが開いたら、”コンピューターを参照してドライバーソフトウェアを検索”を選択します。

次に、デバイスドライバーが保存されている場所を選択します。

デバイスドライバーは、Quartusのインストールフォルダに保存されているようなので、その場所を選択します。

Quartusのインストールフォルダの中にある、”quartus/drivers/usb-blaster”を選択します。

それと、”サブフォルダーも検索する”にチェックを入れます。

すると、無事にUSB-Blasterのデバイスドライバーがインストールされました。

デバイスドライバーのインストールに成功すると、デバイスマネージャーの表記は以下の画像のように変わりました。

FPGAの設計

次は、FPGA内部の回路設計ですが、今回は前に記事にした回路を流用しました。

この記事の回路は、AND、OR、XOR、NOTを使っているだけです。
それを回路図とVHDLで設計してみた時の記事です。

この回路では入力信号が2つあるのですが、DE0-Nanoには2つのプッシュスイッチが付いていてちょうど良かったので流用しました。

FPGAピンの割付け

回路設計が終わったら、次にFPGAのピン割付けです。

今回の回路は、入力が2本、出力が4本あります。

入力ピンの2本は、プッシュスイッチが接続されたFPGAのピンに割付けます。

出力ピンの4本は、DE0-Nanoボードに実装されているLEDに割付けます。
ちなみに、DE0-NanoボードにLEDは8個付いているので、そのうちの4個を使います。

プッシュスイッチ

まずは、入力ピンのプッシュスイッチへの割付けです。

プッシュスイッチがどのピンに割付けられているかは、データシートで調べます。

データシートでは、プッシュスイッチは”KEY”という信号名になっていました。

データシートを確認したところ、プッシュスイッチは以下のようにFPGAに割付けられていました。

プッシュスイッチは、”PIN_J15″と”PIN_E1″に割付けられているようです。

ちなみに、プッシュスイッチの回路は、以下のようになってます。

プッシュスイッチとFPGAの間には、ロジックICが使用されていました。

このロジックIC(SN74AUC17)は、シュミットトリガバッファのようです。

この回路構成だと、
プッシュスイッチを押すとLowレベルがFPGAに入力され、
プッシュスイッチを離すとHighレベルがFPGAに入力されそうです。

LED

次は、出力ピンのLEDへの割付けです。

LEDは、LED[0]からLED[7]までの8個ですが、今回使用するのはLED[0]からLED[3]の4個です。

FPGAとLEDは、以下の画像のようにダイレクトに接続されているので、
FPGAがHighレベル出力でLED点灯、
FPGAがLowレベル出力でLED消灯となります。

Quartusでの割付け方法

回路設計とコンパイルが終了し、割付けたいFPGAのピンが決まったら、割付けの作業に移ります。

割付け方法は、まず、Quartusのメニュー”Assignments -> Pin Planner”を選択します。

“Pin Planner”のウインドウが開くので、各”Node Name”の欄で、”Location”の欄をダブルクリックして割付けピンを選択するか、直接ピン番号を入力してあげます。

“Node Name”の欄には、入出力ピンに設定した名前が入っています。

全ピンに対して、”Location”の入力が終わったら、割付け作業は終了です。Pin Plannerのウインドウは閉じてしまって大丈夫です。

Quartusのウインドウに戻ると、以下の画像のように、各入出力ピンにピン番号が付いていました。

そしたら、もう一度、コンパイルしておきます。

FPGAへの書き込み

ピン割付け後のコンパイルに成功したら、いよいよ書き込みです。

Quartusの”Programmer”アイコンをクリックします。

以下のようなウインドウが開きますが、赤枠のように”No Hardware”と表示されている場合には、”USB-Blaseter”を選択してあげる必要があります。

“USB-Blaster”の選択方法は、”Hardware Setup”ボタンを押して、”USB-Blaster”を選択します。

問題なく選択できれば、”USB-Blaster”と表示されます。

書き込みファイルは自動で選択されていたのでそのままですが、”Program/Configure”にチェックが入っていることを確認します。

そしたら、”Start”ボタンで書き込みスタートです!

が、しかし、、、ProgressにFailedの表示です。

書き込み失敗です。

あきらめず、もう一度”Start”を押したところ、今度は”100% (Successful)です。

書き込み成功です!

これはQuartusのバグなのかわかりませんが、1度目は書き込みに失敗するケースがほとんどです。

ただ、もう一度実行すると、成功します。

なので、FPGAに書き込みができない場合は、何度が試してみてください。

動作確認

書き込みが終わったので、プッシュスイッチを押してLEDの点灯状態を試してみました。

結果、期待通りのLED点灯をしてくれました!

書き込み先はRAMだった

さて、無事にFPGAの動作が確認できましたが、さきほどの書き込みでは、設計データはRAMに書き込んでいました。

つまり、電源を切ったら設計データは消えてしまい、FPGAは正常動作しなくなります。

電源を切っても設計データを残しておくにはROMに書き込む必要があります。

ROMに書き込むにはもう一手間必要になりそうなので、次回の記事にしたいと思います。

FPGA未経験者の方には

「FPGAを使ってみたいけど、まったくFPGAを使ったことがない」という方で、
「FPGAボードのDE0-Nanoを使ってみたい」という方には、
“FPGAチャレンジャー入門編ALTERA版”がお薦めです。

【アドウィン】FPGAチャレンジャー入門編ALTERA版  AKE-1104S 【3-8808-01】

価格:30,200円
(2020/5/19 00:24時点)
感想(0件)

この商品はDE0-Nanoを含んでいます。

良い点:
・DE0-Nano以外に、未経験者向けに日本語のpdf解説資料がCDで付属しています。
・スイッチや7セグメントLED、それら電子部品をDE0-Nanoに接続する拡張基板も付属されています。

面倒な点:
・拡張基板やそれに付属するスイッチやLEDは自分で半田付けして、DE0-Nanoボードに接続する必要があります。
(DE0-Nanoボード単体でも動くので、拡張基板・部品が不要な方は、半田付けの必要はないです)

悪い点:
・DE0-Nano以外にも解説資料や拡張基板・部品が付いている分、DE0-Nanoより値段が高いです。

私にとって悪かった点:
・解説資料は、Verilog-HDL向けに作られているので、VHDLを勉強したい人には別途VHDLの解説本を買った方が良いかもしれません。

お薦めのVHDLの本は長谷川裕恭さんの参考書です。

基本的な内容から始まり、サンプルプログラムも多く記載されているのお薦めです。

VHDLによるハードウェア設計入門?言語入力によるロジック回路設計手法を身につけよう (Design wave basic)

新品価格
¥2,860から
(2020/6/5 00:09時点)

関連記事 FPGAの記事一覧

タイトルとURLをコピーしました