ここでは詳しく説明していませんが、プロセッサとはまったく異なる方法でFPGAが使用され、動作することを区別しています。
FPGAは、まったく同じタスクを何度も何度も繰り返すのが得意です。たとえば、ビデオ、オーディオ、またはRF信号の処理。または、イーサネットパケットをルーティングします。または、流体の流れをシミュレートします。大量の同じ種類のデータが非常に高速でスローされ、すべて同じ方法で処理したい状況。または、同じアルゴリズムを繰り返し実行したい場合。FPGAには実際に開始および停止する「タスク」がありません[1]。その全ジョブは、オンになっている限り、取得したデータに対して同じことを行うことです。それはギアを変更せず、他に何もしません。それは究極の生産ライン労働者です。同じことを、可能な限り高速で、永久に繰り返し実行します。
一方、CPUは柔軟性の縮図です。それらは何でもするようにプログラムすることができ、同時に複数の異なることをするようにプログラムすることができます。開始と停止を行うタスクがあり、ギアを変更し、マルチタスクを行い、機能を絶えず切り替え、変更しています。
FPGAとCPUはまったく逆です。CPUの必需品は時間です-それはより速く物事を成し遂げなければなりません。アプリケーションの実行速度が速いほど優れています。
FPGAの商品はスペースです。FPGAは非常に大きく、必要なタスクを実行するために使用できるゲートは非常に多くあります。ほとんどの場合、問題は速度よりもサイズが大きい[2]。
FPGAをCPUのように動作させることができます。CPU IPコアをFPGAに配置できますが、他の人が説明している理由のために正当化するのは非常に困難です[3]。FPGAとCPUは正反対であり、どちらも独自の長所と短所を持ち、結果として独自の場所を持っています。
ノート:
1)FPGAはさまざまなタスクを実行するように設計できますが、それでも事前に設計された特定の数になります。
2)速度もFPGAの設計仕様です。速度とサイズのトレードオフです。
3)CPUをFPGAに配置することは比較的頻繁に行われますが、特定のアプリケーションに応じて、ケースバイケースで行われます。たとえば、本当に小さなマイクロコントローラーが必要で、FPGAのスペースが余分にある場合。
そして最後に、この答えは非常に単純化されています-FPGAは非常に多様で複雑な方法で使用され、これは一般的な使用方法の非常に簡単な概要です。