FPGAの設計とプログラミング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/20 23:15 UTC 版)
「FPGA」の記事における「FPGAの設計とプログラミング」の解説
FPGAの動作を定義するには、ユーザーがハードウェア記述言語 (HDL) または回路図で設計を提供する。大規模な場合は回路図よりもHDL方式の方が適している。しかし、回路図の方が設計の視覚化が容易で事前に確認しやすい場合もある。 HDLで記述した設計をEDAツールに入力し、ネットリスト(英語版)を生成する。ネットリストを実際のFPGAアーキテクチャに対応させるため、そのFPGAのメーカーが提供しているPlace and route(英語版)と呼ばれるソフトウェアを使用する。ユーザーはその結果をシミュレータにかけるなどして、タイミングに問題がないかなどを検証する。設計と検証が終わったら、バイナリファイルを生成し(この工程もFPGAメーカーの独自ソフトウェアを使う)、FPGAの(再)構成に使う。バイナリファイルはシリアル通信 (JTAG) 経由でFPGAに転送するか、EEPROMなどの外部メモリデバイスに格納する。 最も一般的なHDLとしてはVHDLとVerilogがあるが、これらは通常のプログラミング言語で言えば抽象度がC言語を少し下回る程度であり、手間がかかる。そこでもっと高い抽象度でハードウェア設計を行う言語を導入する動きもある。 FPGAにおける複雑なシステムの設計を単純化するため、検証・最適化済みの既存の機能ブロックや回路をライブラリ化して利用する。このような既存の回路をIPコアと呼び、FPGAベンダーやサードパーティのIP業者から購入できる(一般に無償ではない)。他にもOpenCoresといった開発者コミュニティなどでフリーなものが入手できる。 FPGAアプリケーションを開発する場合、設計の各段階でシミュレーションによる検証を行う。まずVHDLやVerilogのRTL記述でシミュレーションを行う。次に論理合成によって出力されたネットリスト、ネットリストを変換したゲートレベル記述でもシミュレーションによる検証を行う。そこからさらにFPGA向けに配置を決定すると配線による遅延が加わるため、再度シミュレーションによる検証が必要になる。
※この「FPGAの設計とプログラミング」の解説は、「FPGA」の解説の一部です。
「FPGAの設計とプログラミング」を含む「FPGA」の記事については、「FPGA」の概要を参照ください。
- FPGAの設計とプログラミングのページへのリンク