連載
» 2007年01月25日 00時00分 UPDATE

触って学ぼう FPGA開発入門(1):理論より実践! FPGA開発をスタートしよう (1/3)

「どこから始めたらよいのか分からない」というFPGA開発入門者を対象に、低価格FPGAボードを使って実際に動かしながら解説

[鳥海佳孝 設計アナリスト,@IT MONOist]

開発環境の準備

ツールを選定しよう

 まずは、FPGA開発に必要なツールを選定します。FPGAメーカー各社から独自の開発ツールが提供されています。その中から筆者が選択したのは、ザイリンクスの「ISE WebPACK 8.2i」です。同ツールはアカウント登録さえ行えば、無償で利用できます。

 ISE WebPACKは、ザイリンクスのサイトにある、「無償ダウンロード」からダウンロードできます。インストールの方法は、「WebInstall」と「シングル ファイル ダウンロード」の2種類があります。どちらでインストールしても構いません。また、インストールはデフォルトの設定で進めて特に問題ありません。

 ちなみにサイト内の「無償 ISE WebPACK の登録およびダウンロード方法」に、ダウンロードに関する説明があるので参考にしてください。

※参考:
拙著【実践】C言語による組込みプログラミングスタートブックの「Xilinx社の開発環境(ISE WebPACK)のインストール」に、ツールのインストール方法が記載されています。


関連リンク:
アルテラ
ザイリンクス

ボードを選定しよう

 続いて、今回使用するFPGAボードを選定します。本連載は入門者を対象にしているので、誰にでも気軽に始められるような「低価格」で「使いやすい」ボードを選択したいと思います。世の中には多くのFPGAボードが出回っていますが、その中で低価格と使いやすさを考慮すると「ヒューマンデータ XILINX対応FPGAトレーナ EDX-002」が最良だと筆者は考えます。同製品を選択した主な理由は以下のとおりです。

ヒューマンデータ XILINX対応FPGAトレーナ EDX-002 写真1 ヒューマンデータ XILINX対応FPGAトレーナ EDX-002
  • 価格が1万4800円(税抜き)と安い
  • USBで設計データをFPGAボードへダウンロードできる(パラレルポートのないノートPCでも利用可能)
  • USBから電源供給できる
  • 入出力が豊富にある(プッシュスイッチ×3、赤色LED×8、7セグメントLED×4)

 EDX-002とPCを接続するには、EDX-002用のドライバをPCにインストールする必要があります。また、開発・生成したFPGA用のデータをEDX-002にダウンロードするには「BitCfg」というツールが必要となります。詳しくは、EDX-002に付属しているマニュアルを参考にインストールしてください。

 これで、開発ツール(ISE WebPACK)と実装対象となるFPGAボード(EDX-002)の準備ができました。

関連リンク:
ヒューマンデータ

Verilog-HDLを記述しよう

 開発を進める前に、回路設計に使用するハードウェア記述言語(HDL)を選定する必要があります。HDLには大きく分けて「Verilog-HDL」と「VHDL」がありますが、本連載では以下の理由からVerilog-HDLを採用することにします。

  • Verilog-HDLの方が歴史が古い(日本での浸透度はアプリケーション分野により異なる)
  • 記述量が少ない
  • Verilog-HDLが主流である(筆者の独断と偏見)

 ここでは、Verilog-HDLの文法や言語仕様などの細かな説明は避けて、まずは「動かす」ことを第一に進めていきます。

 今回は、3つのプッシュスイッチ(以下スイッチ)を押して(入力)、8つの赤色LEDを点灯(出力)させる「3入力8出力のデコーダ」をサンプルとして開発してみましょう。

8つの赤色LED(上)と3つのプッシュスイッチ(下) 写真2 8つの赤色LED(上)と3つのプッシュスイッチ(下)

 下記リスト1に「3入力8出力のデコーダ」のソースを示します。このソースをそのまま入力して「dec.v」というファイルを作成し、任意のフォルダに保存します(本連載では、C:\temp\IT_Media\Chapter1に保存しています)。

1  module DECODER(A,B,C,Y);
2  input A,B,C;
3  output [7:0] Y;
4  reg [7:0] Y;
5  
6  always @(A or B or C)
7  begin
8     case({A,B,C})
9             3'b000:Y=8'b00000001;
10            3'b001:Y=8'b00000010;
11            3'b010:Y=8'b00000100;
12            3'b011:Y=8'b00001000;
13            3'b100:Y=8'b00010000;
14            3'b101:Y=8'b00100000;
15            3'b110:Y=8'b01000000;
16            3'b111:Y=8'b10000000;
17            default:Y=8'bxxxxxxxx;
18    endcase
19 end
20 endmodule
リスト1 「3入力8出力のデコーダ」のVerilog-HDLソース(dec.v)

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.