Amazonで売ってる激安FPGAを使う(回路書き込み編)

FPGA

概要

Cyclone ll(EP2C5T144)搭載のFPGA基板の使い方を丁寧に解説するシリーズの2回目。

で紹介したこちらの基板に、実際に回路情報を書き込んで使うまでの手順を紹介します。

開発環境の導入

Quartus II のダウンロード

FPGAの開発環境をIntel(旧アルテラ)のサイトからダウンロードできます。この時、必ず13.0sp1を選択するようにします!

理由は、CycloneIIに対応する最も新しいバージョンが13.0 sp1だからです。より新しいバージョンではCyclone IIがサポートされていないのです。。

「一式ファイル」をインストールします。(本当はCyclone IIに必要なドライバのみを選択してインストールすればよいですが、あれこれ個別にダウンロードする必要がなく楽ちんです)

面倒ですが、ダウンロードのためにIntelのアカウントを作らないといけないです…

Quartus II のインストール

自体はさほど難しい点はありません。ダウンロードしたファイルを実行し、インストラクションに従っていくだけです。インストールフォルダーもデフォルトのままでOKです。

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

FPGAへの回路情報書き込みには、”USB Blaster” という治具を使います。その際、ドライバーをインストールする必要があります。

しかしこのドライバ、デジタル署名情報がないためにWindows10にインストールするのに手間がいります。具体的な方法が以下の記事でわかりやすく説明されているので確認してみてください。
https://tom2rd.sakura.ne.jp/wp/2020/05/11/post-11156/

今回はQuartus II 13.0 sp1 をインストールしましたから、例えばインストールフォルダがデフォルト設定の “C:\altera\13.0sp1\”だった場合には、

C:\altera\13.0sp1\quartus\drivers\usb-blaster

にあるドライバをインストールすればよいです。

回路情報の作成

プロジェクトの作成

「File」 – 「New Project Wisard」をクリックします。

プロジェクト名を決めます。この例では「FPGAtest」という名前にしました。

ここは既にHDLファイル等がある場合には指定します。特になければ次に進んでしまって構いません。

この基板はIC表面の記載からも明らかなように「EP2C5T144C8N」のようなので、これに合致するデバイスを選びます。「Device Family」「Show in ’Available devices’ list」で絞り込んでおけば選びやすいです。

これ以降のPage 4,5はそのまま Next> で大丈夫です。
ここまでやると、左側のメニューにツリー構造が表示されたことがわかります。

HDLを記述

HDLを記述していきましょう。Verilog HDLを使う前提で話を進めます。

「File」 – 「New」をクリックし、”Verilog HDL file” を選択します。

とりあえず、以下のテストコードを書いてみましょう(3ポートの入力信号ext_bck, ext_lrck, ext_data を、そのまま出力するコードです)

これを、トップレベルモジュール(この例ならFPGAtest)と同じ名前で、保存します。

入出力ピンの設定 

次に、HDL内で指定した入出力ピン(ext_bck, ext_lrck, ext_data, bck, lrck, data)と、実際のFPGAのピンとの対応関係を定義しましょう。

「Assignments」 – 「Pin Planner」を実行します。

いかつい画面が登場しました。この画面で、FPGAの全144ピンのうちどのピンを入力ピン、出力ピンとするかが設定できます。

基板上にある表示はピン番号を示しており、この画面における番号と対応しています。例えば今回は、以下のようにしてみます。

  • 入力ピン(ext_bck, ext_lrck, ext_data) → 順に 129,125,121 ピン
  • 出力ピン(bck, lrck, data)     → 順に 119,115,113 ピン

つまり、基板上では以下で示す部分を入力、出力ピンとして使用することになります。

まず、ext_bckを129ピンに割り当てます。
ウィンドウをよく見ると上のほうに129ピンがあるとわかります。
これをクリックすると、網掛けされた状態になります。

さらにダブルクリックすると、右側にプロパティを指定するためのウィンドウが出てきます。ここで、「Node name」に対応させたい入(出)力ピンの名前を記入します。今回は「ext_bck」と入力します。

ウィンドウの下側に、登録されたノード名が追加されました。確かに、ext_bckが129ピン目に割り当てられていることがわかります。

HDLで記載した入力ピン ext_bckが PIN_129に対応sししtしたした

同様の手順を繰り返し、6個の入出力ピンすべてを対応させます。

完成予想図

コンパイル

「Processing」 – 「Start Compilation」によってコンパイルを行います。

成功するとこんな感じで教えてくれます。

回路情報の書き込み

コンパイルが成功すると、プロジェクトを作成したフォルダ内にある「output_files」フォルダに、同プロジェクトと同じ名前の.sofファイルが作成されます。これがFPGAヘ書き込む回路情報になります。

USB Blasterと基板の接続

USB Blasterを、PCにUSB接続します。

次に、USBBlasterから出るフラットケーブルを、FPGA基板のJTAGコネクタに接続します。

5VのACアダプタを基板のコネクタ(P7)につないでおきます。

最終的には、こんな感じで接続すれば書き込み準備OKです。

FPGAへの書き込み

「Tools」 – 「Programmer」を実行します。

このようなウィンドウが立ち上がるので、右上の「Hardware Setup…」をクリックし、「USB Blaster」をダブルクリックして指定します。

左上の「Start」ボタンを押し、FPGAへの書き込みを行います。右上のProgress: が100%となったら、書き込み完了です。

動作確認

書き込みが完了したら、以下のように入力ピンに何らかの信号を入れ(GNDの接続も忘れずに!)


以下のようなロジアナを使って、信号を観測してみましょう。

  • 129ピンの入力 → 119ピンに出力
  • 125ピンの入力 → 115ピンに出力
  • 121ピンの入力 → 113ピンに出力

になっていることがわかると思います。

コメント

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