web-dev-qa-db-ja.com

FPGAの実用的なアプリケーションは何ですか?

私のプログラムが小さな7セグメントディスプレイに電力を供給していることに非常に興奮していますが、現場にいない人々にそれを見せびらかすと、彼らは常に「よく何ができるのか」と言います。私は彼らに簡潔な答えを与えることはできません。誰かが私を助けてくれますか?

17
Willem Ellis

まず、揮発性メモリは必要ありません。

実際、大規模なプレーヤー(ザイリンクス、アルテラ)は通常、SRAMにオンチップ構成を持っているため、外部に保存するには追加のEEPROM/Flash/WhatEver(TM)が必要です。

しかし、他にもあります。アクテルは、FPGAに不揮発性構成ストレージを備えた大きなプレーヤーの1つです(SRAMは通常、耐放射線性が低く、軌道に入るときに特別な測定を行う必要があるため、これには他の利点もあります) )。

FPGAを正当化する2つの大きな点があります。

  1. 価格-彼らは安くはありません。しかし、時にはソフトウェアで何かを行うことができず、そのためのハードウェアが必要になります。そして、必要な量の特定のポイントを下回っている場合(たとえば、その小さなシリーズまたはプロトタイプのため)、FPGAはASICよりもはるかに安価です。また、ASICの開発中、これにより-最終状態に到達する前に-ターンアラウンド時間が大幅に長くなります。

  2. 再構成-FPGAを再構成できます。これは、プロセッサまたはASICは実行できないことです。これを使用できるアプリケーションがいくつかあります。物理的にデバイスにアクセスします。この例:火星探査機/探査機はザイリンクスFPGAを使用しました。誰かが間違いを見つけた場合(またはデータを送信するために別のコーディングに切り替えたい場合)、船を交換することはできません。到達不可能です。しかし、FPGAを使用すると、再構成して変更を適用できます。別のシナリオでは、シナリオに応じて、さまざまなアクセラレーションを実行できる単一のチップを使用できます。電話をかけるときのスマートフォンを想像してください。 FPGAは、オーディオエンコード/デコードを作成するように構成できます。サーフィンする場合は圧縮エンジンとして機能し、ビデオを再生する場合はh264デコーダ/アクセラレータとして構成できます。別の方法として、ハードウェアをたとえば、シスコはハードウェアで多くのFPGAを使用しています。必要な速度でスイッチング/ルーティング/パケット検査を実行するにはハードウェアが必要です。実際の設定マッチングエンジンから直接ハードウェアに生成できます。

もうすぐ登場するかもしれないもう1つのこと(私は一部の自動車メーカーがそれについて考えたことを知っています)は、多くの異なる電子機器を含み、大きなサプライチェーンを持つデバイス用です。それは多かれ少なかれ価格と再構成の組み合わせです。 10個のFPGAを使用するよりも10個のASICを使用する方がコストが高くなります。どちらも同じタスクを実行しますが、10個のサプライヤーに1つのサプライヤだけが必要であり、サービスと供給に1種類のチップのみを保持する必要がある場合は、10個のサプライヤに供給とサービスで10種類のチップを保持および管理する必要性。

20
flolo

実話。

あなたはすべてをインストールして統合を行っているだけで明らかになる数百万ドルの粒子物理学実験のためのカスタムデータ取得ボードで設計の欠陥を修正することができます。作業と検出器の特性評価。

あなたは回路を進化させることができます。これは少し古い学校の進化的アルゴリズムですが、ランダムな個人のセットから始めて、フィットネス関数で他よりもスコアが高い回路を選択し、それらを繁殖させて新しい人口を無限に作成できます。進化するハードウェアについて読んで、この本がFPGAをカバーしていると考えてください http://www.Amazon.co.uk/Introduction-Evolvable-Hardware-Self-Adaptive-Computational/dp/0471719773/ref=sr_1_1?ie=UTF8&qid = 1316308403&sr = 8-1

たとえば、DSP回路が必要だとします。入力信号と出力信号があり、ランダムな母集団から始めて、適切なテスト(不良)のみを選択するか、適切なテストと奇数のテストの混合を選択して、次世代を作成します。何世代にもわたって、ふたを開けて、低いことを発見できます。そして、目を見張るような進化が起こり、最初の期待を裏切る回路ができたのです!

遺伝的プログラミングのフィールドガイドも読んでください。ウェブ上のどこかで無料です。

5
Pepe

ソフトウェアには制限があります。ソフトウェアでは、CPUのクロックレートで実行しているため、クロックサイクルごとに1つの命令しか実行できません。ソフトウェアでは、すべてが高レベルであり、低レベルで発生する詳細を制御しません。プログラミングしているオペレーティングシステムや開発ボードによって常に制限されます。これは、ArduinosやRaspberry Piなどの一般的な開発ボードにも当てはまります。

FPGAハードウェアでは、各クロックサイクル間で起こることを正確にプログラムおよび制御し、電子レベルでの速度を計算に提供できます(注:電子の速度はハードウェア間の電気信号転送の速度を決定します)。

これで、FPGAがハードウェア、電子の速度を意味することがわかります。これは、ソフトウェアを意味するCPU、クロックサイクルあたり1命令よりもはるかに優れています。

では、プリント基板、トランジスタレベルを使用して独自のボードを設計できるのに、なぜFPGAを使用するのでしょうか。

これは、FPGAがプログラム可能なハードウェアだからです。特定のアプリケーション用に配線する代わりに、ボードの接続をプログラムできるように構築されています。これがFPGAが高価な理由です!それは一種の「一般的なハードウェア」またはプログラム可能なハードウェアです。

コストにもかかわらずFPGAを選択する必要がある理由を議論するために、プログラマブルハードウェアコンポーネントでは次のことが可能です。

  1. より長い製品サイクル(更新されたHDLコードをFPGAにプログラムするだけで、FPGAを含む顧客の製品のプログラマブルハードウェアを更新できます)

  2. ハードウェアのバグの回復。修正されたプログラムをFPGAにダウンロードさせるだけです。 (注:特定のハードウェア設計ではこれを行うことはできません。何百万ドルもの費用をかけて製品を回収し、新しい製品を作成して顧客に返送する必要があるためです)

FPGAで実行できる優れた機能の例については、スタンフォードの悪名高いECE5760コースを参照してください。

http://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/

お役に立てれば!すぐにトロント大学のChee Loong

3
Chee Loong Soon

FPGAは、大量生産を開始する前に回路設計をテスト/研究するためにも使用されます。これは、画像処理、信号処理など、いくつかのセクターで発生しています。

編集-数年後、金融や機械の収益を含む、より実用的なアプリケーションを見ることができます:

  • aerepospace
  • エミュレーション
  • 自動車
  • 放送
  • 高性能コンピュータ
  • 医療の
  • 機械学習
  • ファイナンス(クリプトコインを含む)
3
ES2018

私はこの記事が好きです: http://www.hpcwire.com/hpcwire/2011-07-13/jp_morgan_buys_into_fpga_supercomputing.html

私の感じでは、FPGAは、制御下のシステムに入る時点で、ストリーミングデータに直接配置できます。次に、GPGPUが必要とする手順を実行せずに、そのデータをクランチできます(データをネットワークから切り離し、PCI Expressバスを介して渡し、一度に1 GBずつクランチします)。

両方の理由はありますが、データをバッファリングすることを気にするかどうかの考えは良い前兆です。

次に、別の素晴らしいFPGAアプリケーションを示します。

https://ehsm.eu/m-labs.hk/m1.html

3
memetech

自動車の画像処理は興味深いドメインの1つです。

ドライバーへの車線維持サポートの提供(開示:このページを作成しました!):

http://www.conekt.co.uk/capabilities/50-fpga-for-ldw

4台の魚眼レンズカメラからの車の空中写真の提供(ビデオ付き):

http://www.logicbricks.com/Solutions/Sur​​round-View-DA-System/Xylon-Test-Vehicle.aspx

1
Martin Thompson