FPGA 設計とは?
FPGA (Field Programmable Gate Array)はユーザが構成をプログラムできる集積回路で、高速なデジタル処理を必要とされるところで使用されています。
FPGAには次のようなメリットがあります。
- 逐次処理であるソフトウェア処理と比較して、FPGAではデジタル回路で並列処理を行うことができるため高速な処理が可能
- 回路の仕様変更が容易なので、設計を試行錯誤できる
- 設計したらコンパイル後すぐに実機動作させられるため、ソフトウェア・ハードウェアの設計を同時に行うことが可能
- マスクが不要なためイニシャルコストが安い
FPGAの内部はLUT(Lookup Table)、フリップフロップ、積和演算専用回路、メモリ、I/Oバッファなどで構成されており、必要に応じてプログラムすることでこれらのリソースの選択や配線を行い、所望の処理を実現できるようになっています。この処理内容は電源投入時に毎回ROMから読み込まれるため、仕様変更にも柔軟に対応することが出来ます。
FPGAにはCPUを内蔵することが可能で、そのプログラムによってCPUコアを構成するソフトコアCPUと、FPGA内に予めハードウェア回路としてARM® Cortex-AやCortex-MなどのCPUコアを内蔵しているハードコアCPUとがあります。後者は特にSoC FPGAやProgrammable SoCと呼ばれており、コンパクト化やBOMコスト低減などのメリットがあります。
FPGA 設計では、古くは回路図入力で行われていましたが、現在はハードウェア記述言語(HDL、例:VHDL®, Verilog®HDLなど)を使ってRTL(Regisiter Transfer Level)の抽象度で設計するのが主流となっています。しかし近年、抽象度を上げて効率的に設計を行う高位設計手法が考案されており、元々ソフトウェア用のプログラミング言語であるC言語の動作記述によるFPGA 設計手法や、ブロック線図を用いて記述したアルゴリズムモデルによるFPGA 設計手法などが普及して来ています。これら高位のFPGA 設計を行うためのツールとして、HDL Coder™とHDL Verifier™があります。HDL Coderを使用すると、Simulink®製品によるブロック線図モデルからVHDL/Verilog HDLを自動生成し、短期間でFPGA 設計することが出来るようになります。HDL VerifierはHDLとFPGAの機能検証を行うためのツールで、高抽象度のMATLAB®プログラムまたはブロック線図によるSimulinkモデルを利用して、効率的に入力信号と期待値の生成を行うことで、検証時間の削減に貢献します。
Simulinkは信号生成、可視化・解析機能をはじめ、信号処理、通信、画像処理、制御など各種アプリケーション分野に特化した機能ブロックを提供し、アルゴリズム開発とシミュレーションを円滑に行える環境です。そのため、SimulinkモデルからHDL生成を行うHDL Coderと、HDLの検証を行うHDL Verifierを用いることで、アルゴリズム開発からFPGA 設計と検証の作業を円滑に進めることができます。