FPGA(Field Programmable Gate Array)はPAL、GALなどのプログラム可能部品の基礎でさらに発展する産物である。以下では典型的なFPGAの設計開発プロセスを簡単にご紹介する。
1.回路設計
システム設計の前に、まず設計案論証、システム設計、FPGAチップの選択などの準備を行う必要がある。システムエンジニアは任務要求に基づき、例えばシステムの指標と複雑さなどにより、仕事スピードとチップ自身の各資源、コストなどの方面を評価してバランスを取り、合理的な設計案と適切な部品タイプを選択する。
2.入力設計
入力設計は、設計されたシステムまたは回路をソフトウェア開発の要求のある形式で示し、そしてEDAツールに入力するプロセスである。よく使われる方法はハードウェア記述言語(HDL)と原理図入力方法などがある。
3.機能シミュレーション
機能シミュレーションは、コンパイルの前にユーザーが設計した回路を論理機能の検証を行うことである。この時のシミュレーションには遅延情報がなく、初期の機能のみを検出するのである。
4.総合的最適化
総合的最適化とは、より高度な抽象的な記述をより低レベルの記述に転換することである。総合的最適化は、目標と要求に基づき、生成された論理接続を最適化し、レベル設計を平面化になさせ、FPGA配置配線ソフトウェアで実現する。
画像引用元:https://baike.baidu.com/item/FPGA/935826?fr=aladdin
5.総合後のシミュレーション
総合後のシミュレーションは、総合結果が元の設計と一致するかどうかを検査することである。シミュレーションの時で、総合的に生成された標準的な遅延ファイルを総合的なシミュレーションモデルに逆表記し、遅延による影響を推定することができる。しかし、この工程はケーブルの時間遅延を推定できないので、配線した実際状況とある程度の差異があり、あまり正確ではない。
6.実現と配置配線
実現は総合的に生成された論理ネット表を具体的なFPGAチップに配置することであり、配置配線はその中で最も重要なプロセスである。
7.タイミングシミュレーション
タイミングシミュレーションとは、ポストシミュレーションともいい、配置配線の遅延情報を設計ネット表に逆表記し、タイミング違反があるかどうかを検出することである。
8.基板レベルのシミュレーションと検証
基板レベルのシミュレーションは主に高速回路設計に応用され、高速システムの信号の完備性、電磁妨害などの特徴を分析することである。一般的にサードパーティーのツールでシミュレーションと検証を行う。
9.チップのプログラミングとデバッグ
チップのプログラミングとは、使用するデータファイル(ビットデータストリームファイル)を生成し、プログラムデータをFPGAチップにダウンロードすることである。FPGA設計の主なデバッグツールはロジックアナライザ(LA)である。しかし、大量のテストピンを導き出す必要があり、そしてLAの価格も高い。
資料引用元:
http://m.elecfans.com/article/673005.html
https://baike.baidu.com/item/FPGA/935826?fr=Aladdin
筆者:孔靖茵
2019年11月4日