リニア・テック

ログイン

カート

FPGA

自由にディジタル回路を作り込めるデバイス

FPGA(Filed Programmable Gate Array)は,大量の「基本セル」が並んだ構造を持つデバイスです.基本セルの内容はFPGAのメーカによって多少異なりますが,通常は数個の組み合わせ論理回路(LUT,Lookup Table)とフリップフロップ(レジスタ)で構成されています.この基本セル間の配線を定義することで,自由にディジタル回路を作り込むことができます.以前は,特定の用途向けに設計された専用のIC(ASIC,Application Specific Integrated Circuit)と比べて性能が劣る面もありました.しかし,最近のFPGAは非常に高速なので,許容された回路規模の範囲内であれば十分な性能が得られます.

FPGAとCPUの使い分け

FPGAは,CPUやマイコンと同じく「ディジタル電子回路」に分類されるデバイスです.よって,「数値計算回路」(コンピュータ)として使うのが最も正統な用途だと言えます.CPUはプログラムを書きかえれば柔軟に処理を変更できますが,プログラムを読み込む時間の分だけ計算処理が遅くなってしまいます.これに対して,FPGAは1つの計算処理だけに特化した回路を作り込めるので,CPUが苦手とする高速な並列演算などを手軽に実現できます.また,ソフトウェアでは管理しづらい厳密なタイミング制御が必要な処理でもFPGAは重宝します.

なお,FPGAには自由に回路を作り込めるので,FPGAの内部にCPUの回路を実装することも可能です.また,CPUとFPGAの両方を1チップに収めたデバイスも各社から発売されており,柔軟に処理を変更できるCPUの利点と,決められた処理だけを高速実行するFPGAの利点を両立した設計が可能です(高価ですが).

FPGAとディジタル数値計算回路

FPGAを最大限に活用するには「数値計算回路」の知識が不可欠です.CPUのようにソフトウェア的にアルゴリズムを実装するのではなく,ハードウェア的に所望の計算処理を実現します.ディジタル回路で数値を表現する方法,適切な計算方法の選択,タイミング管理,回路規模の調整,レイアウトなど,プログラムによる数値計算とはまったく異なるノウハウが必要になります.

高速な数値演算回路を作るために必要な知識

効率よく計算回路を作り込むには,アルゴリズム全体を理解する必要があります.フーリエ解析を基礎としたリアルタイム信号処理であれ,いわゆる “AI” で使われるパターン認識や学習系の処理であれ,その内容は結局のところ数式で表されます.よって,「数学」を理解せずに良い回路を作り込むことは不可能です.

また,最新のFPGAは非常に高速であり,チップの内外における信号伝送は完全に「高周波アナログ回路」や「電磁波工学」で扱う領域に達しています.よって,適切な高速信号伝送を実現するために「アナログ電子回路」を学んでおくと安心です.

数学,アナログ電子回路,FPGAの知識が揃うと,非常に汎用性の高い「高速アナログ・ディジタル混載システム」を作ることができます.これは現在の電子回路技術の集大成であり,通信機や測定器,ロボットなど様々な機器で活用できます.今後,このようなシステムを題材としたセミナや実験キットを用意する予定です.