FPGAはどのくらい安くなりますか?同等の機能を備えたマイクロプロセッサよりも高価であることは知っていますが、Linuxを実行するMicroblazeソフトコアを含むFPGAがあり、DSP機能(メディアコーデックなど)を実装するためのゲートを競争力のあるコストで残せるのではないかと思います、たとえば、Cortex A8(数量$ 20-30〜100)。
(私の用語が非慣用的、つまり間違っている場合はおologiesび申し上げます。訂正してコメントするか、直接編集してください。)
FPGAはどのくらい安くなりますか?同等の機能を備えたマイクロプロセッサよりも高価であることは知っていますが、Linuxを実行するMicroblazeソフトコアを含むFPGAがあり、DSP機能(メディアコーデックなど)を実装するためのゲートを競争力のあるコストで残せるのではないかと思います、たとえば、Cortex A8(数量$ 20-30〜100)。
(私の用語が非慣用的、つまり間違っている場合はおologiesび申し上げます。訂正してコメントするか、直接編集してください。)
回答:
私は最近、FPGAのオンライン会議に出席し、基調講演で「次のプロセッサはFPGAである必要があります」と述べました。
FPGAは、高度に並列化可能なワークストリームを必要とするアプリケーションで基本的に意味があり、使用されている例は、たとえば歩行者を見つけるためにフルHD画像を分析することです。
覚えておくべきことは、電源を入れるたびにFPGAを初期化する必要があるということです。FPGAのザイリンクス(オンチップARMコアを搭載)は良い選択肢ですが、おそらく高価です。オンチップフラッシュを備えたアクテルの製品を調べることも有用です。
パフォーマンスに関しては、BDTI社は、FPGAへのパフォーマンスゲインの切り替えが約40倍になる高度な並列計算のベンチマークを行いました。おもしろいのは、同じようなコストのチップを比較したことです(23ドル対28ドル)。
興味のあるリンクは次のとおりです。
FPGA Conference Archives(無料登録、ただしこの回答後約6か月間のみ利用可能)
MIPSまたはMhzの統計に基づいてFPGAベースのシステムのパフォーマンスを実際に比較することはできません。FPGAを使用して特定のタスクを処理する方法は、マイクロコントローラーとはあまりにも異なります。FPGAのファームウェアの設計は、たとえばVHDLを使用して行う必要があるもので、アセンブリに似ています。抽象化のレジスタ転送レベル(RTL)。一部の環境はより多くの抽象化を提供するために作成されていますが、それでも多くの場合ベンダー固有です。ウィキペディアには、FPGAコードのプログラミングに使用できる言語の適切な概要があります。
燃えるお金がある場合は、LabViewシステムを使用して、たとえばFPGAベースのリアルタイム測定システムを構築できます。このために必要なこれらのデバイスは、完全に異なる価格帯(1500ドル以上)ですが、グラフィックプログラミングを使用してFPGAデザインをより多くのユーザーに開放します。
特定の追加機能と並列処理能力を提供するために、ARMチップなどのマイクロコントローラーとFPGAを組み合わせたボードを提供するベンダーが増えています。そのような製品の例はここにあります:EmbeddedARM:FPGAシリーズ
FPGAはどのくらい安くなりますか?Newarkによると、最も安いFPGAは約10ドルです(最低価格のAltera Cycloneおよび最低価格のザイリンクスSpartan)。単純な8ビットCPUを実行するのに十分な容量がある場合があります。
ご想像のとおり、単純な(MMUのない)32ビットCPUでも、8ビットCPUの約4倍のFPGAリソースが必要です。このような単純な32ビットCPUを実行するのに十分なリソースを備えたFPGAのコストは約14ドルです。私の理解では、uCLinuxはこれらのFPGAソフトCPU(NIOS II / eなど)の一部に移植されています-uClinuxは目的に合っていると思うかもしれません。
本格的なLinuxには、MMU(NIOS II / fなど)を備えたCPUが必要です。MMUを備えた32ビットCPUには、MMUを備えていない32ビットCPUの約4倍のFPGAリソースが必要です。この理由はそれほど明白ではありません。
ザイリンクスのMicroblazeページからわかる限り 、MicroblazeソフトCPUはザイリンクスFPGAでのみ動作します。
Linuxはすでに他のいくつかのソフトCPUに移植されています。他の会社のFPGAでLinuxを実行したい場合は、「FPGAのソフトCPUコア」にリストされているLinuxポートを調べてください 。
MMUを含むこれらのソフトCPUのいくつかは、Xilinx Spartan XC3S400A(Avnetから17ドル)に適合します。
MMUを含むいくつかの32ビットソフトCPUは、20ドルのFPGAチップ上で「デュアルコア」として設定するのは非常に簡単だと聞いています。「Jan's Razor」に続くものは、代わりに同じチップ上のダース程度の8ビットCPUを圧迫しようとするかもしれません。
一般に、FPGAはシリコンに実装された同じデバイスよりもはるかに高価になります。これは、再構成が可能なため、オーバーヘッドが大きいためです。いいえ、20〜30ドルのARM CPUと同じパワーを持つFPGAを20〜30ドルで見つけることはできません。現在、20〜30ドルで特定のタスクを実行できる20〜30ドルのFPGAを見つけることができますが、一般的なコンピューティングタスクではFPGAに勝るものはありません。
これが、同じボードにマイクロコントローラーとFPGAを貼り付ける人を見るのが一般的な理由です。ARMとPPCは、FPGAと組み合わせられる最も一般的な2つです。
FPGAを購入する場合、FPGAプログラムを保持するフラッシュメモリのコストを考慮することを忘れないでください。それは忘れがちです。
PCB設計者として、FPGAはレイアウトが数百万倍簡単になります。これは、ボードを作成した後でもピン配置を自由に再配置できるためです。FPGAを配線するのに必要なレイヤー数が少ないため、潜在的なコスト削減につながります。
FPGA対CPUのパフォーマンスをうんちする人には、ある程度同意します。実際のプロセッサは、プロセッサのように動作するようにプログラムされたFPGAよりも、実際のプロセッサの処理を高速に実行できます。
ただし、これはFPGAにとっては公平ではありません。CPUは「時間制限付き」です。より多くの作業を行うには、より多くの時間、またはより高速なプロセッサが必要です。FPGAは通常「エリア制限」されています。より多くの作業を行うには、より大きなFPGAが必要です。
たとえば、モノラルのオーディオ信号を処理するスペクトルアナライザーを作成するとします。CPU時間の70%を要し、CPUが処理できる速度に既に達しているとします。CPUは、最初のチャネルを再度処理する前に2番目のチャネルを実行するのに十分な速度がないため、ステレオサポートを追加することはできません。しかし、FPGAの70%を使用している場合は、より大きなFPGAを購入して2番目のチャネルをドロップするだけで済みます。高速化する必要はありません。
CPUの代わりに有限状態マシンとデータパスを使用して、問題をデジタルデザインドメインに移植した場合、設計の複雑さが増すことを犠牲にして、FPGAがCPU を破壊するというペソにドルを賭けます。
FPGAの価格設定はおかしいです-フランチャイズ店と話をすると、Digikey、Mouserなどで見積もられた価格が、入手可能な価格よりも数倍高くなることがあります。私が知っている中で最も安いのは、トレイ数量がGBP3以下のQFP100のラティスEC1です。SPIフラッシュメモリにはGBP0.40程度を追加してください。
CPUをFPGAファブリックに配置することは、一般的にシリコンコストの観点からは適切な値ではありませんが、CPUとFPGA間の密結合、パッケージ数の削減など、他の要因が個別のCPUの使用に対する最適なトレードオフを変える可能性があります。
これまでのところ、ザイリンクスのXC3S400Aのようなものは16ドル前後ですが、MicroBlazeを処理できるかどうかはわかりません。
チップだけでなくボードが必要な場合、2013年の最近の2つのオプションを以下に示します。
アルテラの現在のCPLDの多くは、構成メモリを内蔵したFPGAであるため、http://www.altera.com/products/devices/cpld/max2/mx2-index.jspで入手できます。
まず、コアでLinuxを実行する必要があります。どの程度ARM上でそれを実行している、このスレッドではいくつかの他の提案のように。MCUはOSの実行に優れていますが、MCUを構築するFPGAリソースの無駄遣いになります。MCUは、そのためにカスタム設計されると、はるかに小さなシリコン領域に収まるため、より安価に製造できます。それから、FPGAが並列処理で本当に優れているという他の説明があります-論理演算は正確に処理するようには感じませんが、本当のことです。あなたが指摘するように、強力なFPGAは高価になり、実際に電力を消費します。したがって、高速IOなどの並列処理の利点を必要とするLinuxおよびDSPを実行できる低コストのプラットフォーム。XMOS並列プロセッサを見てください。