私のプログラムが小さな 7 セグメント ディスプレイに電力を供給していることに非常に興奮していますが、現場にいない人にそれを見せびらかすと、彼らはいつも「それで何ができるの?」と言います。私は彼らに簡潔な答えを与えることができません。誰でも私を助けることができますか?
7 に答える
まず、揮発性メモリは必要ありません。
実際、大手プレーヤー(ザイリンクス、アルテラ)は通常SRAMにオンチップで構成されているため、外部に保存するには追加のEEPROM / Flash / WhatEver(TM)が必要です。
しかし、他にもあります。たとえば、Actelは、FPGAに不揮発性構成のストレージを備えた大きなプレーヤーの1つです(ただし、SRAMは通常、耐放射線性が低く、特別なものが必要なため、これには他の利点もあります。軌道に乗るときの測定値)。
FPGAを正当化する2つの大きなことがあります。
価格-安くはありません。しかし、ソフトウェアで何かを行うことができず、そのためのハードウェアが必要になる場合があります。また、必要なボリュームの特定のポイントを下回っている場合(たとえば、そのシリーズが小さいため、またはプロトタイプであるため)、FPGAはASICよりもはるかに安価です。また、ASICの開発中、これにより、最終状態に達する前に、はるかに長いターンアラウンドタイムが可能になります。
再構成-FPGAを再構成できます。これは、プロセッサやASICでは実行できないことです。これを使用できるアプリケーションがいくつかあります。たとえば、デザインで何かを修正する機能が必要であるが、デバイスに物理的にアクセスできない場合。この例:火星探査機/ローバーはザイリンクスFPGAを使用しました。誰かが間違いを見つけた場合(またはデータを送信するために別のコーディングに切り替えたい場合など)、船は到達できないため、船を交換することはできません。ただし、FPGAを使用すると、再構成して変更を適用できます。もう1つのシナリオは、シナリオに応じて、さまざまな加速を実行できる1つのチップを使用できることです。スマートフォンを想像してみてください。FPGAに電話をかけると、オーディオをエンコード/デコードするように構成できます。サーフィンをすると、圧縮エンジンとして機能します。ビデオを再生するときは、h264デコーダー/アクセラレーターとして構成できます。もう1つできることは、ハードウェアを問題のインスタンスに一致させることができるということです。たとえば、シスコはハードウェアで多くのFPGAを使用しています。必要な速度でスイッチング/ルーティング/パケット検査を実行するにはハードウェアが必要であり、実際の設定マッチングエンジンから直接ハードウェアに生成できます。
すぐに出てくるかもしれないもう一つのこと(私はいくつかの自動車メーカーがそれについて考えたことを知っています)は、多くの異なる電子機器を含み、大きなサプライチェーンを持っているデバイスのためのものです。それは多かれ少なかれ価格と再構成の組み合わせです。10個のFPGAよりも10個のASICを使用する方がコストがかかります。どちらも同じタスクを実行しますが、1つのサプライヤで10個のFPGAを使用する方が安価であり、サービスと供給で1種類のチップを保持する必要があるのは10個のサプライヤを使用するよりも安価です。供給とサービスにおいて10種類のチップを保持および管理する必要性。
実話。
それらを使用すると、数百万ドルの素粒子物理学実験用のカスタム データ取得ボードの設計上の欠陥を修正できます。これらの欠陥は、すべてをインストールし、統合作業と検出器の特性評価を行った後にのみ明らかになります。
回路を進化させることができます。これは少し古い学校の進化的アルゴリズムですが、ランダムな個体のセットから始めて、フィットネス関数で他の回路よりもスコアが高い回路を選択し、それらを繁殖させて新しい個体群を無限に作成できます。Evolutionary Hardware について読んでください。この本は FPGA をカバーしていると思います。 -1
たとえば、DSP 回路が必要な場合、入力信号と目的の出力信号があり、ランダムな母集団から始めて、おそらく最も適した (悪い) ものだけを選択するか、適切なものと奇数のものの混合物を選択して次世代を作成するとします。何世代にもわたって蓋を開けてみると、進化が起こり、当初の期待を上回る回路ができていることがわかります。
遺伝的プログラミングのフィールドガイドも読んでください。ウェブのどこかに無料で掲載されています。
FPGAは、量産を開始する前に回路設計をテスト/研究するためにも使用されます。これは、画像処理、信号処理など、いくつかの分野で起こっています。
編集-数年後、金融や機械学習など、より実用的なアプリケーションを見ることができます。
- aerepospace
- エミュレーション
- 自動車
- ブロードキャスト
- 高性能コンピューター
- 医学
- 機械学習
- ファイナンス(クリプトコインを含む)
この記事が好きです: http://www.hpcwire.com/hpcwire/2011-07-13/jp_morgan_buys_into_fpga_supercomputing.html
私の感じでは、FPGA は、ストリーミング データが制御下でシステムに入るポイントで、ストリーミング データに直接組み込まれている可能性があります。その後、GPGPU が必要とする手順 (ネットワークからデータを取り込み、PCI Express バスを介して渡し、一度に 1 GB ずつ処理する) を経ずに、そのデータを処理できます。
どちらにも十分な理由がありますが、データのバッファリングを気にするかどうかという概念は良い指標になると思います。
別のクールな FPGA アプリケーションを次に示します。
ソフトウェアには制限があります。ソフトウェアでは、CPU のクロック レートで実行しているため、クロック サイクルごとに 1 つの命令しか実行できません。ソフトウェアでは、すべてが高レベルであり、低レベルで発生する詳細を制御することはできません。プログラミングしているオペレーティング システムまたは開発ボードによって常に制限されます。これは、Arduinos や Raspberry Pi などの一般的な開発ボードに当てはまります。
FPGA ハードウェアでは、各クロック サイクル間で何が起こるかを正確にプログラムおよび制御できるため、電子レベルの速度で計算を行うことができます (注: 電子の速度は、ハードウェア間の電気信号転送の速度を決定します)。
これで、FPGA はハードウェア、電子の速度を意味することがわかりました。これは、ソフトウェア、クロック サイクルごとに 1 つの命令を意味する CPU よりもはるかに優れています。
では、トランジスタ レベルのプリント基板を使用して独自のボードを設計できるのに、なぜ FPGA を使用するのでしょうか?
これは、FPGA がプログラム可能なハードウェアであるためです。特定のアプリケーション用に配線する代わりに、ボードの接続をプログラムできるように構築されています。これは、FPGA が高価である理由を説明しています。これは一種の「一般的なハードウェア」またはプログラマブル ハードウェアです。
コストがかかるにもかかわらず FPGA を選択する理由を説明すると、プログラマブル ハードウェア コンポーネントは次のことを可能にします。
より長い製品サイクル (更新された HDL コードを FPGA にプログラムできるようにするだけで、FPGA を含む顧客の製品のプログラマブル ハードウェアを更新できます)
ハードウェアのバグの回復。修正したプログラムを FPGA にダウンロードするだけです。(注: 製品を回収し、新しい製品を作成し、顧客に返送するために何百万ドルも費やす必要があるため、特定のハードウェア設計ではこれを行うことはできません)
FPGA の優れた機能の例については、スタンフォード大学の悪名高い ECE5760 コースを参照してください。
http://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/
お役に立てれば!トロント大学のSoon Chee Loong
自動車の画像処理は興味深い分野の 1 つです。
車線維持サポートをドライバーに提供する (開示: このページを書きました!):
http://www.conekt.co.uk/capabilities/50-fpga-for-ldw
4 つの魚眼レンズ カメラ (ビデオ付き) からの車の航空写真の提供:
http://www.logicbricks.com/Solutions/Surround-View-DA-System/Xylon-Test-Vehicle.aspx