ホームページ >よくある問題 >fpgaとは何ですか

fpgaとは何ですか

青灯夜游
青灯夜游オリジナル
2023-01-29 15:59:4354837ブラウズ

FPGA は主にデジタル回路で構成された集積チップであり、プログラマブル ロジック デバイス (PLD) の一種であり、FPGA は特定用途向け集積回路 (ASIC) の分野の一種です。カスタマイズされた回路の出現は、カスタマイズされた回路の欠点を解決するだけでなく、元のプログラマブル デバイスのゲート数が限られているという欠点も克服します。

fpgaとは何ですか

このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。

fpgaとは

FPGA (Field Programmable Gate Array) は、PAL (Programmable Array Logic) や GAL (General Array Logic) 製品などのプログラマブル デバイスの基礎です。更なる発展の為に。これは、特定用途向け集積回路 (ASIC) の分野におけるセミカスタム回路として登場し、カスタム回路の欠点を解決するだけでなく、元のプログラマブル デバイスのゲート数が限られているという欠点も克服します。

FPGA は本質的にチップの一種であり、主にデジタル回路で構成される集積チップです。

FPGA は、ザイリンクスの創設者の 1 人であるロス フリーマンによって 1985 年に発明され、プログラマブル ロジック デバイス (PLD) の一種です。有名なムーアの法則の出現より約20年遅い時代ですが、FPGAが発明されると、その後の開発スピードは多くの人が想像していたよりも速かったのです。

図 1 は、FPGA チップの物理的な画像を示します。

fpgaとは何ですか
図 1 FPGA チップの物理的な画像

#FPGA 開発の歴史

PLD が発明される前、エンジニアは回路システムを構築するために複数の論理ゲートを含む個別の論理チップを使用していましたが、複雑な論理機能を実装することは困難でした。

この問題を解決するために、1970 年代にプログラマブル ロジック アレイ (PLA) が登場しました。PLA には、それぞれ「AND プレーン」を形成する一定数の AND ゲートと NOT ゲートが含まれています。そして「or プレーン」、つまり「AND 接続マトリックス」と「OR 接続マトリックス」、および一度だけプログラムできる接続マトリックス (ここでのプログラミングはヒューズ技術に基づいているため)、比較的複雑な AND、または複数の式の論理関数である PLA の内部構造を図 2 に示します。


図 2 PLA の内部構造

これも同時に発表されました。 PLA はプログラム可能な Programmable Read-Only Memory (PROM) であり、その内部構造を図 3 に示します。 PLAと同様にPROMも内部に「AND接続行列」と「OR接続行列」を持っていますが、ANDゲートの接続行列はハードウェアで固定されており、ORゲートの接続行列のみプログラム可能です。


図 3 PROM の内部構造

AND ゲートの接続行列のみがプログラム可能で、OR ゲートの接続行列がハードウェアによって固定されている場合このチップはプログラマブル アレイ ロジック (PAL) と呼ばれます。出力回路のさまざまな動作モードに応じて、PAL はスリーステート出力、レジスタ出力、相補出力に分けられます。ただし、PAL は依然としてヒューズ プロセスを使用します。プログラムできるのは 1 回だけです。 PALの構造図を図4に示します。


図 4 PAL 構造図

PAL に基づいて、一般的なアレイ ロジック デバイス (Generic Array Logic、GAL) が開発されています。 PAL と比較して、GAL には 2 つの改善点があります:

  • 電気的に消去可能な CMOS プロセスを採用し、複数回コンパイルできるため、デバイスの再構成可能性と柔軟性が向上します。出力ロジック マクロ セル (Output Logic Macro Cell、OLMC) OLMC をプログラミングすることで、GAL の出力をさまざまな状態に設定できます。GAL の 1 つのモデルだけで、すべての PAL デバイス出力回路の動作モードを実現できます。デバイスの多用途性が向上します。
  • GAL の構造図を図 5 に示します。


図 5 GAL の構造図
初期の PLD は主に上記4種類のチップで構成されており、PROM、PLA、PAL、GALで構成されています。共通の特徴は、速度特性の良い論理関数を実装できることですが、構造が単純すぎるため、より小さなデジタル回路しか実装できません。

科学技術の発展と社会の進歩に伴い、チップの統合に対する人々の要求はますます高まっています。初期の PLD 製品では人々のニーズを満たすことができず、Complex Programmable Logic Device (CPLD) が誕生しました。 CPLD は PLA デバイス構造の継続として見ることができ、CPLD デバイスはいくつかの PLA とプログラム可能な接続マトリックスの集合として見ることもできます。 CPLDの内部構造図を図6に示します。


図 6 CPLD 構造図

FPGAはCPLDよりも数年早く登場し、CPLDとともに高密度プログラマブルロジックデバイスと呼ばれていますが、本質的には異なります。 FPGA チップの内部アーキテクチャは PLA のような構造には従わず、代わりにロジック セル アレイ (LCA) の概念を採用しており、PLD デバイスで多数の AND ゲートと NOT ゲートを使用するという概念を変えています。以前は主にルックアップ テーブルとレジスタを使用していました。

さらに、FPGA と CPLD には、次の表に示すように、リソースの種類、速度などの違いもあります。

#内部構造ルックアップテーブル製品用語プログラムストレージ 内部 SRAM 構造、外部 EEPROM またはフラッシュ ストレージ プログラム 内部 EEPROM またはフラッシュ#リソース タイプ##統合度##高##低##使用シーンより複雑なアルゴリズムを完成させる完全な制御ロジック## 機密性一般に秘密にすることはできません(暗号化コア使用可能)暗号化可能

内部実装メカニズムの観点から、FPGA の種類は、SRAM テクノロジに基づくもの、アンチヒューズ テクノロジに基づくもの、EEPROM/フラッシュ テクノロジに基づくものに分類できます。回路構造の観点から見ると、FPGA のプログラマビリティとは、プログラマブル ロジック ブロック、プログラマブル I/O、およびプログラマブル配線リソースというプログラマビリティの 3 つの側面を指します。プログラマブル ロジック ブロックは FPGA プログラマビリティの中核であり、上記の 3 つのテクノロジもプログラマブル ロジック ブロックのためのテクノロジです。

FPGA の構造図を図 7 に示します。


図 7 FPGA の構造図

FPGA の技術的利点

多くの読者は FPGA を知っています。強力ですが、何がそんなに強力なのでしょうか?

マイクロコントローラーを例に挙げると、マイクロコントローラーは強力でほぼすべてのことを実行できますが、FPGA はそれより強力であるだけであることは誰もが知っています。なぜなら、マイコンが実装できる機能であれば必ずFPGAで実装できるからですが、もちろんFPGAのリソースが十分にあるという大前提が必要です。しかし、FPGAで実現できる機能がマイコンで簡単に実現できるとは限りません、これは紛れもない事実であり、それが信じられないということは、FPGAをまだ理解していないということです。

そういえば、FPGA は非常に強力であるのに、なぜマイクロコントローラーがより広く使用されているのかと読者は疑問に思わずにはいられません。それは、ビジネスにおいては、価格が製品に影響を与える重要な要素の 1 つであることが多いためです。

MCU の価格は FPGA よりもはるかに低く、性能やリソースに応じて FPGA の価格も大きく異なり、FPGA チップ 1 個の価格は数万元から数十万ドルの範囲にあります。元です。それに比べて、シングルチップ マイコンの価格ははるかに安いため、同じ機能を低価格のシングルチップ コンピュータで実現できるのであれば、シングルチップ コンピュータがその機能を満たせない場合を除き、比較的高価な FPGA を選択することはありません。要件。そのため、企業が自社開発を行う場合、コストを節約するために、比較的高価なFPGAではなく、より安価なマイコンを選択することがありますが、マイコンやARMなどのマイクロプロセッサは需要が高いため、価格的に有利です。

しかし、マイコンであれ、ARMであれ、FPGAであれ、それらは機能を実現するための単なるツールであり、具体的な選択は具体的な問題に基づいて分析する必要があります。つまり、普遍的なツールは存在せず、生産のニーズを満たすツールのみが存在します。特定のツールに偏るのではなく、総合的に検討する必要があります。同様に、学習を深めていくと、これらのツールはすべて使いこなす必要があることがわかります。

FPGA のアプリケーション シナリオはマイコンや ARM に比べてはるかに少なく、主にマイコンや ARM では解決できない問題を対象としています。たとえば、柔軟で効率的、高スループット、低バッチ遅延、高速並列コンピューティング、再構成可能、再プログラム可能、カスタマイズされたパフォーマンス、カスタマイズされた消費電力が必要な場合、これらのタスクは FPGA によってのみ実行できます。

特殊な目的のために設計された集積回路 (特定用途向け集積回路、ASIC) と比較して、FPGA には 3 つの利点があります。

1) 柔軟性

FPGA をプログラミングすることにより、FPGA は ASIC が実行できるあらゆる論理関数を実行できます。 FPGA のユニークな利点は、その柔軟性にあり、チップ機能はいつでも変更できます。この機能により、テクノロジがまだ成熟していない場合、製品のコストとリスクを削減できます。この機能は、初期段階では特に重要です。 5G技術が普及し始めた日々。

2) 市場投入までの時間の短縮

FPGA はプログラミング後すぐに使用でき、FPGA ソリューションは 3 回のチップ テープアウト サイクルを経る必要がありません。これにより、企業は製品の市場投入までの時間を短縮できます。

3) 一定のコスト上の利点があります

FPGA と ASIC の主な違いは、ASIC ソリューションには固定コストがかかるのに対し、FPGA ソリューションには固定コストがほとんどないことです。 FPGA ソリューションは、1 回限りのテープアウト費用として数百万ドルを支払う必要がなく、テープアウト障害のリスクを負う必要もありません。現時点では、FPGA のコストはソリューションのコストは ASIC よりも低くなります。使用量が増加するにつれて、FPGA ソリューションのコスト上の利点が徐々に増加します。使用量が一定量削減されると、ASIC ソリューションは、FPGA ソリューションによって生み出されるスケールメリットにより、コストの面でより多くの利点を得ることができます。次の図に示すように、多数のテープアウトが発生します。


図 8 FPGA ソリューションと ASIC ソリューションのコスト比較

したがって、FPGA は通常、デジタル信号処理、ビデオ処理、画像処理、5G通信分野、医療分野、産業制御、クラウドサービス、アクセラレーテッドコンピューティング、人工知能、データセンター、自動運転、チップ検証などの分野で使用され、かけがえのない役割を果たしています。一般的な FPGA 設計方法を習得することによってのみ、FPGA が特有の分野で大きな成果を上げることができます。

FPGA のアプリケーションの方向性は、ソフトウェアとハ​​ードウェアの間にあります。インターフェイスや通信に使用する場合は、ハードウェアが優先されます。アルゴリズムと制御の場合、ソフトウェアになる傾向があります。人工知能とマシン ビジョンの台頭により、FPGA は異種ソフトウェア アルゴリズムにさらに偏り、GPU と競合する可能性があります。

FPGA と GPU のパフォーマンス比較チャートを図 9 に示します。

図 9 FPGA と GPU のパフォーマンス比較チャート

FPGA ソフトウェアの方向性: ソフトウェア開発に焦点を当て、主に OpenCL と HLS テクノロジを使用して、ソフトウェアとハ​​ードウェアの共同開発を実現する、データ分析、人工知能、マシン ビジョンなどの分野で FPGA の高速アプリケーション機能を開発します。

FPGA ハードウェア ディレクション: FPGA の特定分野におけるロジック設計、アプリケーション設計、集積回路設計、チップ検証機能に重点を置きます。

FPGA の最初の応用分野は通信分野でしたが、情報産業とマイクロエレクトロニクス技術の発展に伴い、FPGA 技術は情報産業で最も人気のある技術の 1 つとなり、その応用範囲は拡大しました。その用途は、航空宇宙、自動車、医療、放送、試験計測、家電、産業制御などのポピュラーな分野にまで広がり、技術の発展と技術の進歩に伴い、あらゆる角度から生活に浸透し始めています。

関連知識の詳細については、FAQ 列をご覧ください。

表: FPGA と CPLD のパフォーマンス比較
デバイスの種類/特性 FPGA CPLD
豊富なトリガー リソース 豊富な組み合わせロジック リソース
##スピード 高速 低速
その他のリソース RAM、PLL、DSP など ——

以上がfpgaとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。