AR# 42682

Virtex-6 のデザイン アドバイザリ、13.x/14.x iMPACT - JTAG チェーンにターゲット FPGA 以外のデバイスも含まれていると、eFUSE のキー プログラムが不正になる

説明

iMPACT v13.3 では、複数のデバイスを含む JTAG チェーンで Virtex-6 FPGA eFUSE の値をプログラムできません。次のようなメッセージがコンソールとログ ファイルに表示されます。

 "WARNING:iMPACT - '2': iMPACT software is unable to program the V6 eFUSE values if there is more than 1 device in the JTAG chain. For more information, consult (Xilinx Answer 42682)."

ソリューション

プログラム機能に問題があるため、この状況ではキーが正しくプログラムされません。次の 13.2 での追加情報を参照してください。

13.2 以前のバージョンでは、複数のデバイスを含む JTAG チェーンに含まれる Virtex-6 FPGA の eFuse レジスタをプログラムすると、256 AES キーが予測される値と一致しません。このエラーはプログラム中に検出され、次のようなメッセージが表示されます。

'2': Verifying FUSE_KEY register with high margin...

'2': Data to be programmed for FUSE_KEY = 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

'2': Actual programmed data read from FUSE_KEY = 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

'2': High Margin Verify Failed.

この問題を回避するには、次の 3 つの方法があります。

  • JTAG チェーンにこの FPGA のみを含めます。これで、キーが予測どおりにプログラムされます。
  • 13.2 以前のバージョンでは eFUSE プログラムはディスエーブルにならないので、次の回避策を使用できます。

    デバイスに含まれるキーがキー ファイル (design.nky) の値と一致しなくても、FPGA の暗号化機能は正しく動作します。eFUSE キーのリードバックを実行するか、iMPACT ログに表示されるリードバック値を使用して、デバイスにプログラムされた値を確認します。キー値を 64 桁の 16 進数にフォーマットし直し、.nky ファイルに含まれる値と置き換え、ファイルを新しい .nky ファイルとして保存します。BitGen でこの新しい .nky ファイルを暗号化キーとして指定し、ビットストリームを再生成します。この新しいビットストリームでは、キーがプログラムで使用された元のキーではなく eFUSE に格納されている値と一致するので、FPGA をコンフィギュレーションできます。

    注記 : この方法では、eFUSE プログラム用に 1 つ、FPGA ビットストリーム生成用に 1 つ、2 つの .nky が必要です。ただし、プログラムのときにターゲット FPGA が JTAG チェーンの同じ位置に配置されている必要があります。異なる位置に配置されている場合は、各位置に対して個別の .nky ファイルが必要になります。
  • このキー破損は予測できるものなので、中間的なキー値を生成することで、ビットストリームの生成に使用された元のキー値が最終的に FPGA にプログラムされるようにできます。この回避策の詳細は、ザイリンクスのテクニカル サポートにご連絡ください。

この問題は、14.5. iMPACT で修正される予定です。スクリプトの修正は、テクニカル サポートから入手できます。この修正を入手するには、ウェブケースを開き、その際にこのアンサー (ザイリンクス アンサー 42682) をお知らせください。

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
47890 14.x iMPACT - 既知の問題 N/A N/A
40503 13.x iMPACT - 既知の問題 N/A N/A

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
34565 Virtex-6 FPGA のデザイン アドバイザリのマスター アンサー N/A N/A
40503 13.x iMPACT - 既知の問題 N/A N/A
AR# 42682
日付 03/28/2013
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス 詳細 概略
ツール 詳細 概略