電子ガジェットいろいろ

電子系のガジェットやアプリ開発等の話題を書いてます

FPGAで遊ぶときのメモ

久しぶりに以前のエントリー「FPGAのこと」でも紹介したMAX IIマイクロキットで遊ぼうとしたら色々と忘れてたので、軽くメモを書きます。

環境は Quartus II 9.1 です。

新規にプロジェクトを作ったら、まずデバイスの設定

バイスEPM2210F324C3 を選択する

ピン配置の設定

"Assignment Editer"でピンのアサインを行う。
以下の画像はMAX IIマイクロキットの基本I/Oを定義しているので、テンプレートとして毎回同じ設定をしています。です。

ソースコードファイルを追加

Velilog HDL File(*.v)を追加して、ソースコードを記述する。
以下は簡単なサンプル
ボタンをビットに見立てて、対応した番号のLEDが光るサンプルです。
例:●が押下状態のボタン
ボタンの状態○○○●→LED1が表示
ボタンの状態○○●○→LED2が表示
ボタンの状態○●●●→LED7が表示

module bintest(LED, KEY, CLOCK_50);

  input CLOCK_50;
  input [3:0] KEY;
  output [7:0] LED;
  
  reg [3:0] keystatus;
  reg [7:0] ledstatus;

  assign LED[7:0] = ledstatus[7:0];

  initial begin
    ledstatus <= 8'b11111111;
  end

  always @(posedge CLOCK_50) begin
    case (KEY[2:0])
      3'b111:  ledstatus <= 8'b11111111;
      3'b110:  ledstatus <= 8'b11111110;
      3'b101:  ledstatus <= 8'b11111101;
      3'b100:  ledstatus <= 8'b11111011;
      3'b011:  ledstatus <= 8'b11110111;
      3'b010:  ledstatus <= 8'b11101111;
      3'b001:  ledstatus <= 8'b11011111;
      3'b000:  ledstatus <= 8'b10111111;
      default:  ledstatus <= 8'bXXXXXXXX;
    endcase
  end

endmodule

コンパイルしてデバイス書き込み

コンパイルして生成された*.pofファイルをProgrammerでデバイスに書き込む。
マイクロキットが正常に認識していれば、"Hardware Setup"で"USB-Blaster"が選択できる。

こんな感じで動きました。

今回はG11で撮ったのですが、さすがに細かいところも良く撮れてますね。

自分用のメモなので最低限のことしか書いてませんが、細かい操作方法はマニュアルを参照してください。

HDL独習ソフトで学ぶCQ Endeavor Verilog HDL―個人レッスン方式でHDL設計完全マスター

HDL独習ソフトで学ぶCQ Endeavor Verilog HDL―個人レッスン方式でHDL設計完全マスター

入門Verilog HDL記述―ハードウェア記述言語の速習&実践 (Design wave basic)

入門Verilog HDL記述―ハードウェア記述言語の速習&実践 (Design wave basic)