FPGAを使い始めるための基礎知識 ―― 開発フローとやるべき作業を理解する
tag: 半導体 ディジタル・デザイン
技術解説 2009年4月16日
ここでは,FPGAを使い始める前に知っておいてほしい最低限の知識をまとめます.始めにFPGAの特徴を説明します.次に,FPGAの設計フローに従って,設計者がやるべき作業を説明します. (編集部)
FPGAが製品開発に使われ出してから,約20年が過ぎようとしています.その間LSIの製造技術の急激な発展に伴い,FPGAはもちろんのこと,ほかのLSIも高集積,高性能,高速化が進みました.今や一人で気軽に設計できるようなものではなくなっています.
このため,「FPGAという言葉は聞いたことがあるけど,実際に使ったことがない」とか,「VHDLやVerilog HDLなどのハードウェア記述言語は何者なのかさっぱり分からない」という方は,けっこういるのではないでしょうか.実際に独特な用語もたくさん出てくるので,言葉が壁になるケースもありそうです.
しかし,ごく初歩的なハードウェアの知識を持つことと,FPGA設計の基本ルーチンさえ理解できれば,FPGA設計の第一歩を踏み出せるはずです.
そこで本稿では,FPGA設計の第一歩を踏み出すために,最低限知っておきたい事項を解説します.
1.FPGAの特徴
● FPGAはプログラマブルなLSI
FPGAは,標準LSIとカスタムLSI(ASIC)の中間的なLSIです.FPGAは標準品として提供される部品です.しかし所望の回路を設計してからでないと使うことができません.このようなプログラマブルな特徴を持つLSIは,PLDといいます(図1).
PLDはさらに,CPLDとFPGAに分類されています.代表的なFPGAベンダに,米国Actel社,米国Altera社,米国Lattice Semiconductor社,米国Xilinx社などがあります.
● ハードウェア構成をプログラムできる
プログラム可能なLSIとして,マイクロプロセッサを思い浮かべた方もいらっしゃるかもしれません.しかし,マイクロプロセッサとFPGAとでは,大きな違いがあります(図2).
マイクロプロセッサは,決められたハードウェア上でデータを処理する仕組みです.つまりデータに応じて決められた処理を行う標準LSIと何ら違いがありません.所望の機能を実現できるように意味を持たせたデータがソフトウェア・プログラムです.
これに対しFPGAは,ハードウェア構成自体を変更する仕組みです.あらかじめLSIの中に機能を作り込む点でカスタムLSIと同じです.最終的な製造方法が違うだけと見なせます.
マイクロプロセッサは,決められたハードウェア上でデータを処理する.所望の機能を実現できるように意味を持たせたデータがソフトウェア・プログラムになる.FPGAは,ハードウェア構成自体を変更する.LSIの中に機能を作り込む.
● 幅広いアプリケーションで活用
FPGAは,民生機器から産業機器まで幅広く応用されています.FPGAには以下のような特徴があるためです.
- 何回でも回路を変更できる.
- 大量生産が見込めなくても活用できる.
- 手元ですぐに動作させられる
FPGAは,ハードウェア論理を何回も変更できることが最大の利点です.しかし標準品のLSIと比べると,1個あたりの単価が上がりがちです.このため,大量生産される機器よりは少量多品種生産の機器のほうが向いています.
FPGAは,例えば図3ようなアプリケーションでよく使われています.
- ネットワーク・ルータ(データ伝送処理)
- 携帯電話基地局(音声,画像処理,エラー訂正処理)
- 液晶テレビ,プロジェクタ,カー・ナビゲーション(画像処理)
- 電車,自動車用の信号機(信号制御)
- 医療機器(画像処理,データ伝送)
- 測定器(データ伝送,画像処理)
- 半導体テスタ(データ伝送,信号処理)
- POSシステム(信号処理)
- バーコード・リーダ(信号処理,データ伝送)
- 複合機(画像処理,信号処理)
比較的生産台数の少ない産業機器が目立ちます.また,画像処理やデータ伝送の機能によく使われていることに気付きます.これは,FPGAは「高速かつ大量に流れるデータを,多チャネル並列でリアルタイムに処理できる」からです(図4).
民生機器では,例えば液晶テレビで使われています(1).