FPGAを損傷する可能性のあるVHDL


22

不良なVHDLコードがFPGAの損傷につながる可能性があることをどこかで読みました。

VHDLコードでFPGAを損傷することさえ可能ですか?どのような条件がこれを引き起こし、最悪のシナリオは何ですか?


2
私が考えることができる唯一のシナリオは、FPGAを加熱するために多くの多くのFFがクロックされるデザインです。
クラウディオアヴィチャミ

まあ、それは適切にプログラムされていない場合、燃えているものの周りにいくつかの電流を実行する不十分な設計の回路に組み込むことができます。
ユージーンSh。

3
最悪のシナリオはおそらく、fpgaが機械学習に使用され、世界と宇宙を破壊する不正なAIを作成することです。さらに深刻なことに、コンピューターに接続されたfpgaで未チェックのコードを使用している場合、そのコンピューターに感染する可能性があります。また、高出力デバイスの制御に使用されている場合は、建物を燃やすことができます。
サティベル

回答:


25

@Anonymousの答えに加えて、FPGAのファブリックを損傷する可能性のある設計を作成できます。

手始めに、すべてがFPGAの最大周波数近くでクロックされる膨大な量のレジスタ(FPGAの70%など)で構成される非常に大きなデザインを構築する場合、シリコンをかなり加熱することができます。十分に冷却しないと、物理的な損傷を引き起こす可能性があります。開発キットにひどい冷却システムがあるため過熱したため、$ 13k FPGAを失いました。

もう1つの単純なケースは、組み合わせループです。たとえば、リングにつながれた3つのゲートをインスタンス化し、そのような構造に関するシンセサイザーの警告を無効または無視した場合、FPGAにとって非常に悪いものを形成できます。この例では、非常に狭い領域で大量の熱を発生させる可能性のあるマルチGHz発振器を作成し、ALMおよび周囲のロジックに損傷を与える可能性があります。


1
組み合わせループは、真の乱数生成器として提案される場合があります。リングオシレーターの経験がありませんが、3つのゲートだけが害を及ぼすとは思いません。ただし、その出力を多くのゲートに駆動すると、おそらく害があります。
アンドレアス

7
thxスパルタン6の設計ミスのために、2〜3個のボードが役に立たなくなりました。これを試してみます:P
AntoineLev

また、他のビットストリームのロードを妨げるビットストリームをロードすることもできます。または、少なくとも非常に難しくします。
ウラジミールクラベロ

8

この文脈では、コードは正しい言葉ではありません。VerilogまたはVHDLはプログラムのように見えますが、コンパイラの出力は、FPGAチップにロードされる構成であり、FPGAチップ内で電子回路を形成します。

2つのタイプが思い浮かびます。

  • 物理的損傷:たとえば、いくつかのFPGAピンが一緒に(または別のデバイスに)接続され、同時に異なる論理電圧の出力を開始します。電流が流れる-過剰な電流である可能性があり、最終的にゲートに損傷を与えます。
  • 論理的損傷:回路がフラッシュチップまたは構成デバイスを不適切に処理し、その中のデータイメージを破損する可能性があり、このデバイス全体が最終的に誤動作します。

4
物理的損傷のトピックは、OPの引用がどこから来たのかもしれません。ソフトウェア開発者として、「ファームウェア」は2人のダイバーを互いに接続するなど、「ファームウェア」が損傷を引き起こす可能性がある一方で、「ソフトウェア」はデバイスに物理的な危害を加えてはならないという一般的なルールがあると言われています。
コートアンモン-復活モニカ

2
@CortAmmon「2人のダイバーを互いに接続する」-これは何ですか、エアホースクロスコネクトスイッチですか?
user253751

1
@immibisあなたは私を得た!実際のルールは、「バディの呼吸中にバディの頭のソフトウェア/スクイーズウェアに頼らないで、代わりに常にレギュレータをしっかりと把握する」ことでした。;-)
コートアンモン-モニカの復活

3

入力ピンのブロックを誤って設定すると、それを駆動しているものが十分に硬い場合に出力がそれを行う可能性があります。

IOバンクに過度に高い電圧(たとえば、1.8V IO規格の3.3V電力、または入力の反対)から電力が供給されているときに、LVDSまたはLVCMOS規格のいずれかのピンを設定するとどうなるかわかりませんそれ?

明らかに、多くのリングオシレーターをインスタンス化するような愚かなことを行うことで、熱の問題が発生する可能性があります。


デザインの制約として指定されたI / O規格は、タイミング計算用です。I / Oバンクが3.3 Vバンクで、3.3 Vで駆動している場合、1.8 V規格を選択しても何も起こりません。
ペブルズ

@Paebbels、使用しているツールはわかりませんが、通常、I / O規格を設定すると、そのI / Oロケーションの電圧が制御されます。FPGA入力ピンが外部デバイスがそのピンに駆動している電圧よりもはるかに低い電圧に設定されている場合、そのFPGA入力が破損する可能性があります。
シアノ

正しくない@Ciano。ピン電圧は、制約ではなくI / Oバンク電圧に依存します。
ペーベルス

1

FPGAは、新しい(部分)ビットストリームを使用して実行時に再構成できます。通常、このストリームは外部ソースからロードされますが、FPGAで自分で作成することもできます(組み込みソフトコアCPUなど)。たとえば、サブデザインを動的に再配置するためにこのようなソリューションを使用しても、ベンダーツールで行われるような一貫性チェックのすべてが提供されるわけではありません。そのため、アルゴリズムが破損している場合、FPGAでフォールスパストランジスタを有効にして焼き付ける可能性があります。

また、PLLやトランシーバーなどのFPGAプリミティブに対して偽動作モードを選択することもできます。

動的再構成は、ソフトウェアの自己修正コードに似ています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.