Comments
Description
Transcript
デバイス プログラマを使用した eFUSE のプログラム (XAPP1260)
ア プ リ ケーシ ョ ン ノ ー ト : 7 シ リ ーズ FPGA デバイ ス プ ロ グ ラ マ を使用 し た eFUSE のプ ロ グ ラ ム XAPP1260 (v1.0) 2015 年 7 月 8 日 著者 : Randal Kuramoto 概要 こ のアプ リ ケーシ ョ ン ノ ー ト は、 デバ イ ス プ ロ グ ラ マで 7 シ リ ーズ FPGA の eFUSE ビ ッ ト をプ ロ グ ラ ムす る 際のガ イ ド ラ イ ン を提供 し ます。 デバ イ ス プ ロ グ ラ マは、 次の場合に効果的です。 • 量産製品のプ ロ グ ラ ムす る • ボー ド 製造サ イ ト でアセ ンブ リ を行 う 前に、 機密デー タ をデバ イ ス内の eFUSE にプ ロ グ ラ ムする • プ ロ グ ラ ム さ れたデバ イ ス の DNA (固有のシ リ アル番号) 情報を記録する 重要 : 7 シ リ ーズ FPGA eFUSE ビ ッ ト は OTP (ワ ン タ イ ム プ ロ グ ラ マブル) であ り 、一度プ ロ グ ラ ムす る と 変更で き ません。 eFUSE ビ ッ ト を正 し く プ ロ グ ラ ムす る には、 正確な設定 と 検証方法を指定す る こ と が重要です。 こ のア プ リ ケーシ ョ ン ノ ー ト は、 eFUSE ビ ッ ト の設定についてのガ イ ド ラ イ ン を提供 し ます。 デバ イ ス プ ロ グ ラ マ用の暗号化 さ れた検証ビ ッ ト ス ト リ ーム を生成す る ための リ フ ァ レ ン ス デザ イ ン も 提供 さ れてい ます。 こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン ス デザ イ ン フ ァ イ ルは、 ザ イ リ ン ク ス の ウ ェ ブサ イ ト か ら ダ ウ ン ロ ー ド で き ます。 デザ イ ン フ ァ イ ルの詳細は、 「 リ フ ァ レ ン ス デザ イ ン」 を参照 し て く だ さ い。 本資料は表記のバージ ョ ンの英語版を翻訳 し た も ので、内容に相違が生 じ る場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本 語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。 XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 1 プ ログ ラ ム可能な eFUSE の概要 図 1 に、 eFUSE ビ ッ ト をプ ロ グ ラ ム/検証する 際のデバ イ ス プ ロ グ ラ マの入力、 お よ び 7 シ リ ーズ FPGA におけ る eFUSE ビ ッ ト の使用方法を示 し ます。 X-Ref Target - Figure 1 3RZHU :ULWH5HDG VHFXULW\ (QFU\SWHG %LWVWUHDP PFVELW ILOH 8VHU9DOXH ()86(B865 &RQWURO%LWV $(6NH\ &RQILJXUDEOH /RJLF 6WDQG$ORQH 9HULI\ 2SHUDWLRQ '21( 6HOHFW0$3 ,QWHUIDFH $(6.H\ QN\ILOH 3URJUDP 2SHUDWLRQ -7$*,QWHUIDFH &RQWURO %LWV H)86($UUD\ 'HYLFH3URJUDPPHU 'HYLFH3URJUDPPHU3URMHFW6HWXS 8VHU 9DOXH )3*$ (QFU\SWHG &RQILJXUDWLRQ %LWVWUHDP $(6 'HFU\SWRU $QG &RQILJXUDWLRQ (QJLQH 'HFU\SW&RQILJXUH 3DVV)DLO6WDWXV ;BB 図 1 : eFUSE ア レ イ および関連機能のブ ロ ッ ク 図 7 シ リ ーズ FPGA では、 ビ ッ ト ス ト リ ーム を暗号化す る こ と で、 複製デザ イ ン の不正使用を防 ぐ こ と がで き ま す。 7 シ リ ーズ FPGA は、NIST (National Institute of Standards and Technology) に よ っ て FIPS PUB 197 (Federal Information Processing Standards Publication 197) と し て公表 さ れてい る AES (advanced encryption standard) を使用 し てい ます。 AES は、 ビ ッ ト ス ト リ ーム の暗号化 と 復号化に同 じ 秘密キーを用い る 対称キー アルゴ リ ズ ム を採用 し ま す。 Vivado® デザ イ ン ツールは、 ビ ッ ト ス ト リ ーム フ ァ イ ルへの書 き 込み時に こ のキーを使用 し て ビ ッ ト ス ト リ ーム を暗号化 し ま す。FPGA は、 コ ン フ ィ ギ ュ レーシ ョ ン時に こ のキーを使用 し て ビ ッ ト ス ト リ ーム を復号化 し ま す。 FPGA での AES 復号化用に、 バ ッ ク ア ッ プ バ ッ テ リ 付 き の RAM 内、 ま たは FPGA 内の不揮発性 OTP ( ワ ン タ イ ム プ ロ グ ラ マブル) eFUSE ビ ッ ト に AES キーを格 納で き ます。 eFUSE ビ ッ ト は、 デバ イ ス プ ロ グ ラ マでプ ロ グ ラ ム可能です。 バ ッ ク ア ッ プ バ ッ テ リ 付 き の RAM は、 プ ロ グ ラ マか ら デバ イ ス が切断 さ れ る と 設定値を失っ て し ま う ため、 事実上はデバ イ ス プ ロ グ ラ マではプ ロ グ ラ ム で き ま せん。 キーの格納に不揮発性の eFUSE ビ ッ ト を使用する メ リ ッ ト は次の と お り です。 • FPGA の電源が切断 さ れた際にキー値を保持す る ためのバ ッ テ リ ーが不要 • バ ッ テ リ ーを使用す る 場合 よ り も BOM コ ス ト が低い • ボー ド 製造サ イ ト でアセ ンブ リ を行 う 前に、 デバ イ ス プ ロ グ ラ マ を使用 し てデバ イ ス の安全な場所に eFUSE をプ ロ グ ラ ムで き る 不揮発性の 7 シ リ ーズ FPGA eFUSE ビ ッ ト は、 32 ビ ッ ト の 「ユーザー値」 を格納す る こ と も 可能で あ り 、 FPGA の コ ン フ ィ ギ ャ ラ ブル ロ ジ ッ ク デザ イ ンは EFUSE_USR プ リ ミ テ ィ ブか ら こ れ ら の値を読み出す こ と がで き ます。 ま た、 FPGA JTAG ポー ト を介 し て、 外部デバ イ ス で読み出す こ と も 可能です。 追加の eFUSE ビ ッ ト を使用す る こ と で、 eFUSE の読み出 し 保護や書 き 込み保護な ど FPGA のセキ ュ リ テ ィ 設定を制御 し 、 よ り 厳 し く 読み出 し /書 き 込みを保護で き ます。 XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 2 eFUSE プ ロ グ ラ ムにデバイ ス プ ログ ラ マ を使用 重要 : eFUSE を プ ロ グ ラ ム し てい る 間、 秘密 AES キーは常に読み出 し 禁止 と な り ます。 ザ イ リ ン ク ス か ら 出荷 さ れ る 時点では、すべてのユーザー プ ロ グ ラ マブル eFUSE ビ ッ ト が 0 にプ ロ グ ラ ム さ れてい ます。 FPGA JTAG ポー ト を介 し て選択 さ れた eFUSE ビ ッ ト は 1 にプ ロ グ ラ ム さ れ ま す。 eFUSE を プ ロ グ ラ ムす る 際には、 プ ロ グ ラ ム し た eFUSE ビ ッ ト の検証 と 選択 し たセ キ ュ リ テ イ オプシ ョ ン の設定を併せて行 う 必要があ り ま す。eFUSE のプ ロ グ ラ ム が完了す る と eFUSE ビ ッ ト の読み出 し が禁止 さ れ、 こ れ ら の ビ ッ ト は直接検証で き な く な り ま す。 推奨 : デバ イ ス を プ ロ グ ラ ムす る 場合は、 デバ イ ス プ ロ グ ラ マ用に作成 さ れ、 照合キーで暗号化 さ れたサ ン プル ビ ッ ト ス ト リ ーム を使用 し て、 デバ イ ス プ ロ グ ラ マで正 し い eFUSE キーがプ ロ グ ラ ム さ れてい る か を検証す る こ と を推奨 し てい ま す。 ま た、 プ ロ グ ラ ム済みデバ イ ス の イ ンベン ト リ を再確認する ためにデバ イ ス プ ロ グ ラ マ を ス タ ン ド ア ロ ン検証モー ド で使 用す る 場合、 こ のサンプル ビ ッ ト ス ト リ ーム を用い、 照合キーでプ ロ グ ラ ム さ れたデバ イ ス を特定で き ます。 ス タ ン ド ア ロ ン検証動作時、 サンプル ビ ッ ト ス ト リ ームは、 7 シ リ ーズ FPGA SelectMAP コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス に送 ら れます。 7 シ リ ーズ FPGA eFUSE の機能お よ びデバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンの詳細は、 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レー シ ョ ン ユーザー ガ イ ド 』 (UG470) [参照 1] を参照 し て く だ さ い。 eFUSE プ ログ ラ ムにデバイ ス プ ロ グ ラ マ を使用 デバ イ ス プ ロ グ ラ マの使用用途は次の と お り です。 • FPGA 内の eFUSE ビ ッ ト をプ ロ グ ラ ム し 、 FPGA の DNA 値を記録する • FPGA が特定 AES キーであ ら か じ めプ ロ グ ラ ム さ れてい る こ と を ス タ ン ド ア ロ ンで検証す る eFUSE のプ ロ グ ラ ム こ のセ ク シ ョ ンでは、 デバ イ ス プ ロ グ ラ マ を使用 し て 7 シ リ ーズ FPGA 内の eFUSE をプ ロ グ ラ ムする 手順を示 し ます。 1. プ ロ グ ラ ミ ン グ マネージ ャ ーでデバ イ ス プ ロ グ ラ マのプ ロ ジ ェ ク ト を作成 し ます。 必要事項は次の と お り です。 a. b. 2. 入力フ ァ イ ルの詳細 - NKY フ ァ イ ル (AES キーを含む ) - 暗号化 さ れた検証ビ ッ ト ス ト リ ーム フ ァ イ ル プ ロ グ ラ ム可能なオプシ ョ ン設定の定義 - ユーザー指定の 32 ビ ッ ト 値 - eFUSE 制御ビ ッ ト (読み出 し 保護、 書き 込み保護、 お よ びその他のセキ ュ リ テ ィ 機能) デバ イ ス プ ロ グ ラ マの演算子に よ っ てデバ イ ス がプ ロ グ ラ ム さ れて、 次の動作が実行 さ れます。 a. デバ イ ス を特定 し てデバ イ ス DNA を記録す る b. デバ イ ス の eFUSE ビ ッ ト をプ ロ グ ラ ムお よ び検証する c. 暗号化 さ れた検証ビ ッ ト ス ト リ ーム をデバ イ ス にダ ウ ン ロ ー ド し て、 二次的な検証を行 う eFUSE のプ ロ グ ラ ムが完了す る と 、 通常、 デバ イ ス内の eFUSE は保護 さ れた状態 と な り ます。 つま り 、 AES キーが保護 さ れてデバ イ ス か ら 読み出す こ と はで き な く な り ます。 プ ロ グ ラ ム完了後、 デバ イ ス プ ロ グ ラ マは、 デバ イ ス内の eFUSE が保護 さ れた状態であ っ て も 、 すでにプ ロ グ ラ ム さ れ てい る 7 シ リ ーズ FPGA の eFUSE に正 し い AES キーがプ ロ グ ラ ム さ れてい る か を確認/検証する ために、 ス タ ン ド ア ロ ン 動作を実行で き ます。 こ の ス タ ン ド ア ロ ン検証動作では、 デバ イ ス プ ロ グ ラ マが暗号化 さ れた ビ ッ ト ス ト リ ーム をデバ イ ス にダ ウ ン ロ ー ド し ます。こ の暗号化 さ れた検証ビ ッ ト ス ト リ ーム でデバ イ ス が正常に コ ン フ ィ ギ ュ レーシ ョ ン さ れ る と 、 そのデバ イ ス に照合キーが含まれてい る こ と が確認で き ます。 XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 3 デバイ ス プ ログ ラ マの準備 デバイ ス プ ログ ラ マの準備 デバ イ ス プ ロ グ ラ マ を使用 し てプ ロ グ ラ ム を開始す る 前に、 次の準備が必要です。 • デバ イ ス プ ロ グ ラ マのサ イ ト /サービ ス を確立す る • AES キーを含む NKY フ ァ イ ルの位置を確認する • 各 eFUSE 制御ビ ッ ト オプシ ョ ンのセキ ュ リ テ ィ 設定を明確にす る • 提供 さ れた リ フ ァ レ ン ス デザ イ ン をベース に、 NKY フ ァ イ ルを使用 し て暗号化 さ れた検証ビ ッ ト ス ト リ ーム を生成 する • デバ イ ス サンプル と デバ イ ス プ ロ グ ラ マの設定お よ びフ ァ イ ルをデバ イ ス プ ロ グ ラ マのサ イ ト に提供する デバイ ス プ ログ ラ マのサイ ト /サービ スの確立 デバ イ ス プ ロ グ ラ ミ ン グ サービ ス の詳細は、 ザ イ リ ン ク ス販売代理店ア ヴネ ッ ト 社へお問い合わせ く だ さ い。 ま た、 ザ イ リ ン ク ス プ ロ グ ラ マのオプシ ョ ンについては、 FAE へお問い合わせ く だ さ い。 重要 : デバ イ ス プ ロ グ ラ マのサ イ ト ま たはサービ ス はで き る だけ早期に確立する こ と が重要です。 事前構築 さ れていない デバ イ ス/パ ッ ケージのデバ イ ス プ ロ グ ラ マ ソ ケ ッ ト を開発する には、 数週間かか る 場合があ り ます。 デバイ ス プ ログ ラ マの設定および入力フ ァ イルを定義する デバ イ ス プ ロ グ ラ マには、 明確な設定 と 必要な フ ァ イ ルを提供す る 必要があ り ます。 デバ イ ス プ ロ グ ラ マの設定 と 入力 フ ァ イ ルのチ ェ ッ ク リ ス ト お よ びそれ ら の説明は、 表 1 を参照 し て く だ さ い。 最初の試験デバ イ ス向けにデバ イ ス サンプ ルを備えたデバ イ ス プ ロ グ ラ ミ ン グ サ イ ト に、 必要な フ ァ イ ルを含むすべての設定 (表 1) を提供 し ます。 表 1 : デバイ ス プ ログ ラ マの設定 プ ログ ラ ム さ れた場合の機能の説明 設定の種類 256 ビ ッ ト の AES キー NKY フ ァ イ ル名 こ のキーで、FPGA コ ン フ ィ ギ ュ レーシ ョ ン用の暗号 化 さ れた ビ ッ ト ス ト リ ーム を復号で き ます。 NKY フ ァ イ ルには、 256 ビ ッ ト の AES キー値が含まれます。 32 ビ ッ ト のユーザー定義値 FPGA デザ イ ン内の EFUSE_US プ リ ミ テ ィ ブか ら 、ま たは JTAG (R_EN_B_User がプ ロ グ ラ ム さ れていない 場合) か ら ア ク セ ス で き る オプ シ ョ ン のユーザー定 義のデバ イ ス識別子の値です。 使用 し な い場合は、 空の ま ま に し て お き ま す。 8 文字の 16 進数値 [31:0] XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com デバイ ス プ ログ ラ マの入力 フ ァ イルまたは設定 (設定値 と フ ァ イル名を こ こ に記入) 4 デバイ ス プ ログ ラ マの準備 表 1 : デバイ ス プ ログ ラ マの設定 (続き) プ ログ ラ ム さ れた場合の機能の説明 デバイ ス プ ログ ラ マの入力 フ ァ イルまたは設定 (設定値 と フ ァ イル名を こ こ に記入) 設定の種類 CFG_AES_Only (FUSE_CNTL[0]) Yes = 1 にプ ロ グ ラ ム eFUSE に格納 さ れてい る AES キーの使用を強制 し 、 No = プ ロ グ ラ ム し ない (0) 照合キーがない ビ ッ ト ス ト リ ーム で FPGA を プ ロ グ ラ ムす る こ と を防ぎ ます。 ( こ の ビ ッ ト がプ ロ グ ラ ム 通常設定 = No さ れていない場合、FPGA は暗号化 さ れていない ビ ッ ト ス ト リ ーム、 ま たはバ ッ ク ア ッ プ バ ッ テ リ 付 き の RAM に格納 さ れた キーの値で暗号化 さ れ た ビ ッ ト ス ト リ ー ム を 使用 し て FPGA を コ ン フ ィ ギ ュ レ ー シ ョ ン で き ます。 ) 注意 : こ の ビ ッ ト がプ ロ グ ラ ム さ れて い る 場合、 エ ラ ー解析の た め に ザ イ リ ン ク ス テ ス ト ビ ッ ト ス ト リ ー ム を デ バ イ ス に ロ ー ド で き な い た め、 RMA (Return Material Authorization) に よ る 返却は受け付け ら れません。 AES_Exclusive (FUSE_CNTL[1]) Yes = 1 にプ ロ グ ラ ム 外部 コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス か ら のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を無効に し ます。 ただ し 、 ICAPE2 を使用す る こ と でパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンが可能にな り ます。 No = プ ロ グ ラ ム し ない (0) 通常設定 = No 注 意 : こ の ビ ッ ト が プ ロ グ ラ ム さ れ て い る 場 合、 RMA (Return Material Authorization) に よ る 返却は、 デ バ イ ス 解析お よ びデバ ッ グ の面で制限が あ り ま す。 オプ シ ョ ン の推奨方法 と し て、 ビ ッ ト ス ト リ ーム を 生成す る 前 に Vivado デザ イ ン ツ ール で BITSTREAM.READBACK.SECURITY プ ロ パ テ ィ を Level2 に設定す る こ と で、 同 じ セ キ ュ リ テ ィ 機能 を 実現で き ます。 W_EN_B_Key_User (FUSE_CNTL[2]) Yes = 1 にプ ロ グ ラ ム AES キー と FUSE_USER のプ ロ グ ラ ム を無効に し ま す。 No = プ ロ グ ラ ム し ない (0) 通常設定 = Yes R_EN_B_Key (FUSE_CNTL[3]) Yes = 1 にプ ロ グ ラ ム Yes AES キーの読み出し、 および AES キー と 32 ビ ッ ト の ユーザー定義値のプ ロ グ ラ ム を無効に し ます。 No = プ ロ グ ラ ム し ない (0) AES キ ー を プ ロ グ ラ ム し な い限 り は変更 し ないで く だ さ い。 AES キーがプ ロ グ ラ ム さ れてい る 場合は、 REQUIRED = Yes 重要 : JTAG ポー ト を 介 し て秘密の AES キーが読み 出 さ れ る こ と を防 ぐ には、 R_EN_B_Key ビ ッ ト を プ ロ グ ラ ムす る 必要があ り ます。 XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 5 デバイ ス プ ログ ラ マの準備 表 1 : デバイ ス プ ログ ラ マの設定 (続き) プ ログ ラ ム さ れた場合の機能の説明 R_EN_B_User (FUSE_CNTL[4]) 設定の種類 デバイ ス プ ログ ラ マの入力 フ ァ イルまたは設定 (設定値 と フ ァ イル名を こ こ に記入) Yes = 1 にプ ロ グ ラ ム JTAG を介す 32 ビ ッ ト のユーザー定義値の読み出 し 、 No = プ ロ グ ラ ム し ない (0) お よ び AES キー と ユーザー定義値のプ ロ グ ラ ム を無 効に し ます。 JTAG ポー ト を介すユーザー定義値の読 通常設定 = No み出 し は無効にな り ますが、EFUSE_USR コ ン ポーネ ン ト を使用す る ユーザー定義値の読み出 し は無効に な り ません。 W_EN_B_Cntl (FUSE_CNTL[5]) Yes = 1 にプ ロ グ ラ ム 制御ビ ッ ト のプ ロ グ ラ ム を無効に し ます。 No = プ ロ グ ラ ム し ない (0) 通常設定 = Yes 暗号化 さ れた検証ビ ッ ト ス ト リ ーム MSC フ ァ イ ル名 ビ ッ ト ス ト リ ームは、NKY フ ァ イ ルにあ る AES キー を使用 し て暗号化 さ れ、 MCS フ ォーマ ッ ト で提供 さ れます。 注意 : 実際のデザ イ ンは使用 し ないで く だ さ い。 ビ ッ ト ス ト リ ーム デザ イ ンの制約については、「暗号化 さ れた検証ビ ッ ト ス ト リ ーム」 を参照 し て く だ さ い。 AES キー と NKY フ ァ イル 通常、 ビ ッ ト ス ト リ ー ム の暗号化には、 256 ビ ッ ト の AES キーが定義 さ れて Vivado デザ イ ン ツ ールに与え ら れ ま す。 write_bitstream コ マ ン ド が実行 さ れ る と 、 暗号化 さ れた ビ ッ ト ス ト リ ーム が生成 さ れ ます。 Vivado デザ イ ン ツール は、 AES キーの値を NKY フ ァ イ ルに保存 し ます。 こ の NKY フ ァ イ ルをデバ イ ス プ ロ グ ラ マの入力 と し て保持 し 、 FPGA eFUSE に AES キー値をプ ロ グ ラ ムす る 場合、 さ ら には write_bitstream コ マ ン ド の連続実行において同 じ キーを使用 し て ビ ッ ト ス ト リ ーム を暗号化 (ま たは write_bitstream の実行で検証ビ ッ ト ス ト リ ーム を暗号化) す る 場合に使用 し ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 2] の 「暗号化済みビ ッ ト ス ト リ ームの生成」 お よ び 『暗号化を使用 し て 7 シ リ ーズ FPGA ビ ッ ト ス ト リ ーム を保護』 (XAPP1239) [参照 3] を参照 し て く だ さ い。 Vivado デザ イ ン ツールの暗号化ビ ッ ト ス ト リ ーム フ ロ ーで、 暗号化キーの格納場所 と し て 「eFUSE」 が選択 さ れてい る こ と を確認 し て く だ さ い。 NKY フ ァ イ ルの例 : Device xc7a200tfbg676; Key 0 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef; Key StartCBC 9966d617cc42731291374e58239a823e; Key HMAC cd552f296733ac7abec573bf72e1b2d91d8c5ee603857a62f743ab8229fcbb25; デバ イ ス プ ロ グ ラ マは、 64 文字の 16 進数値のみ使用 し 、 その後に Key 0 が続 き 、 Key 0 値の ビ ッ ト 順は KEY[0:255] です。 StartCBC 値 と HMAC 値はビ ッ ト ス ト リ ーム生成中に使用 さ れ、 eFUSE にはプ ロ グ ラ ム さ れません。 XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 6 デバイ ス プ ログ ラ マの準備 ユーザー定義の 32 ビ ッ ト 値 こ れ ら の値は、 eFUSE の 32 ビ ッ ト のユーザー定義値フ ィ ール ド を プ ロ グ ラ ムす る ために、 デバ イ ス プ ロ グ ラ マの入力 と し てオプシ ョ ンで指定で き ます。 32 ビ ッ ト 値へア ク セ スす る 方法は次の と お り です。 • JTAG FUSE_USER 命令 (R_EN_B_User [読み出 し 保護機能] eFUSE ビ ッ ト がプ ロ グ ラ ム さ れていない場合) • FPGA デザ イ ンの EFUSE_USR プ リ ミ テ ィ ブ 通常、 こ の値は 8 文字の 16 進数値 [31:0] と し てデバ イ ス プ ロ グ ラ マに指定 さ れます。 注記 : eFUSE ア レ イ におけ る ユーザー定義ビ ッ ト 値の物理的な割 り 当てに よ り 、Vivado ハー ド ウ ェ ア マネージ ャ ーな ど一 部のプ ロ グ ラ マ ソ リ ュ ーシ ョ ンでは、 ユーザー値を user value[31:8] と user value[7:0] に分割 し ます。 プ ロ グ ラ マ演算子は、 完全な値 [31:0] か ら こ の よ う に分割で き る こ と が必要です。 eFUSE 制御 (FUSE_CNTL) ビ ッ ト eFUSE 制御ビ ッ ト は、 FUSE_CNTL eFUSE レ ジ ス タ に格納 さ れ、 各ビ ッ ト に よ っ て特定のセキ ュ リ テ ィ 設定が永久的に有 効に な り ま す。 通常、 選択 さ れ る eFUSE 制御 ビ ッ ト の設定は、 ユーザー ア プ リ ケ ー シ ョ ン の要件に基づ き ま す。 各 FUSE_CNTL ビ ッ ト の説明お よ び標準的な アプ リ ケーシ ョ ンでの FUSE_CNTL の設定例は、 表 1 を参照 し て く だ さ い。 標 準的な ア プ リ ケーシ ョ ン と は、 ビ ッ ト ス ト リ ーム 内容 を 保護 し 、 その使用 を 照合 AES キー を 用い て プ ロ グ ラ ム さ れた FPGA に限定す る アプ リ ケーシ ョ ンの こ と を指 し ます。 追加で eFUSE 制御ビ ッ ト を プ ロ グ ラ ムす る こ と で、 標準的な アプ リ ケーシ ョ ン を上回 る セ キ ュ リ テ ィ 要件に対応で き ま す。 標準設定以上に eFUSE 制御ビ ッ ト をプ ロ グ ラ ム し た場合に RMA 解析へ与え る 影響については、 表 1 の注意欄を参照 し て く だ さ い。 暗号化 さ れた検証ビ ッ ト ス ト リ ーム 特別に設計 さ れて暗号化 さ れた ビ ッ ト ス ト リ ーム をデバ イ ス プ ロ グ ラ マへ提供す る こ と で、 「eFUSE プ ロ グ ラ ムにデバ イ ス プ ロ グ ラ マ を使用」 で説明 さ れてい る 検証プ ロ セ ス を実行で き ます。 こ のセ ク シ ョ ンでは、デバ イ ス プ ロ グ ラ マ向けに、暗号化 さ れた検証ビ ッ ト ス ト リ ーム を構築する ための リ フ ァ レ ン ス デ ザ イ ン と 手順を提供 し ます。 注意 : デバ イ ス プ ロ グ ラ マ ソ ケ ッ ト の ピ ン配置お よ び制約に よ り 、 デバ イ ス プ ロ グ ラ マでの検証に実際のデザ イ ン ビ ッ ト ス ト リ ームは使用 し ないで く だ さ い。 リ フ ァ レ ン ス デザイ ン デバ イ ス プ ロ グ ラ マに よ る 制約 ( 「暗号化 さ れた検証ビ ッ ト ス ト リ ーム デザ イ ン の変更 と 制約」 で説明) があ る ため、 リ フ ァ レ ン ス デザ イ ンの大半は空です。 こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン ス デザ イ ンは、 次の リ ン ク か ら ダ ウ ン ロ ー ド で き ます。 https://secure.xilinx.com/webreg/clickthrough.do?cid=393635 表 2 に、 リ フ ァ レ ン ス デザ イ ンの詳細を示 し ます。 表 2 : リ フ ァ レ ン ス デザイ ンの詳細 パラ メ ー タ ー 説明 一般 開発者 Randal Kuramoto タ ーゲ ッ ト デバ イ ス 7 シ リ ーズ FPGA ソ ース コ ー ド の提供 あり XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 7 デバイ ス プ ログ ラ マの準備 表 2 : リ フ ァ レ ン ス デザイ ンの詳細 (続き) パラ メ ー タ ー 説明 ソ ース コ ー ド の形式 VHDL/Verilog 既存のザ イ リ ン ク ス アプ リ ケーシ ョ ン ノ ー ト / リ フ ァ レ ン ス デザ イ ン、 ま たはサー ド パーテ ィ か ら デザ イ ンへの コ ー ド /IP の使用 なし イ ン プ リ メ ン テーシ ョ ン 使用 し た合成ツール/バージ ョ ン Vivado 2014.4 合成 使用 し た イ ンプ リ メ ン テーシ ョ ン ツール/バージ ョ ン Vivado 2014.4 イ ンプ リ メ ン テーシ ョ ン ス タ テ ィ ッ ク タ イ ミ ン グ解析の実施 あり ハー ド ウ ェ ア検証 ハー ド ウ ェ ア検証の実施 あり 使用 し たハー ド ウ ェ ア プ ラ ッ ト フ ォーム AC701 評価キ ッ ト リ フ ァ レ ン ス デザイ ン で暗号化 さ れた検証ビ ッ ト ス ト リ ームを構築 リ フ ァ レ ン ス デザ イ ン フ ァ イ ルを ダ ウ ン ロ ー ド し た後、次の手順に従っ て、暗号化 さ れた検証ビ ッ ト ス ト リ ーム を構築 し ます。 1. リ フ ァ レ ン ス デザ イ ン デ ィ レ ク ト リ ツ リ ー と フ ァ イ ルを コ ン ピ ュ ー タ ーに解凍 し ます。 2. リ フ ァ レ ン ス デザ イ ン デ ィ レ ク ト リ ツ リ ー内の verilog ま たは vhdl デ ィ レ ク ト リ に、 ユーザーの NKY フ ァ イ ル を コ ピー し ます。 3. verilog ま たは vhdl デ ィ レ ク ト リ 内の XAPP1260_make_encrypted_verification_bitstream.tcl フ ァ イ ルを編集 し 、 Tcl ス ク リ プ ト フ ァ イ ル内の使用手順に従っ て、 各デバ イ スや NKY フ ァ イ ルの ス ク リ プ ト を カ ス タ マ イ ズ し ます。 次の各手順で、 Tcl ス ク リ プ ト の編集部分を示 し ます。 a. Tcl ス ク リ プ ト の次の行にあ る xc7a200tfbg676-1 を置き 換えて、 デバ イ ス を指定 し ます。 set part xc7a200tfbg676-1 b. Tcl ス ク リ プ ト の次の行にあ る XAPP1260_example.nky を置 き 換えて、 NKY フ ァ イ ルを指定 し ます。 set nkyFileName XAPP1260_example.nky 4. Vivado デザ イ ン ツールを起動 し て、 verilog ま たは vhdl デ ィ レ ク ト リ に移動 (cd) し 、 source コ マ ン ド で XAPP1260_make_encrypted_verification_bitstream.tcl フ ァ イ ルを読み込みます。 つま り 、 次の コ マ ン ド ラ イ ン を使用 し ます。 vivado -mode batch -source XAPP1260_make_encrypted_verification_bitstream.tcl 5. ロ グ内の write_bitstream オプシ ョ ンのサマ リ に 「暗号化 さ れた検証ビ ッ ト ス ト リ ームのチ ェ ッ ク リ ス ト 」 の設定が含 まれてい る こ と を確認 し ます。 Tcl ス ク リ プ ト に よ っ て、 暗号化 さ れた検証ビ ッ ト ス ト リ ームが生成 さ れ、 MCS フ ァ イ ル形式で出力 さ れます。 MCS フ ァ イ ルは、 デバ イ ス プ ロ グ ラ マで使用で き ます。 生成 さ れた フ ァ イ ル名は、 次の よ う に表わ さ れます。 XAPP1260_<part>_encrypted_verification_bitstream.mcs <part> には、 「 リ フ ァ レ ン ス デザ イ ン で暗号化 さ れた検証ビ ッ ト ス ト リ ーム を構築」 の手順 3 で指定 し たデバ イ ス名が入 り ます。 デザ イ ン を検証 ま たはデバ ッ グす る 目的 と し て、 暗号化せずに FPGA でデザ イ ン が機能す る か を確認す る ために、 Tcl は 暗号化 さ れていない ビ ッ ト ス ト リ ーム も 生成で き ます。 暗号化 さ れていないビ ッ ト ス ト リ ーム フ ァ イ ル名は、 次の よ う に 表 さ れます。 XAPP1260_<part>_unencrypted_bitstream.bit <part> には、 「 リ フ ァ レ ン ス デザ イ ン で暗号化 さ れた検証ビ ッ ト ス ト リ ーム を構築」 の手順 3 で指定 し たデバ イ ス名が入 り ます。 XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 8 デバイ ス プ ログ ラ マの準備 注記 : XAPP1260_example.nky フ ァ イ ルには、 プ ロ グ ラ ム さ れていない eFUSE を備えた FPGA のキー値 と 一致す る 、 す べて 0 のキー値が含まれてい ます。XAPP1260_example.nky フ ァ イ ルを用いて生成 さ れた暗号化テ ス ト ビ ッ ト ス ト リ ー ム を正 し く 復号化 し 、 eFUSE がプ ロ グ ラ ム さ れていない FPGA の コ ン フ ィ ギ ュ レ ーシ ョ ン に使用で き ま す。 こ れは、 デ フ ォ ル ト のすべて 0 の eFUSE キーがすべて 0 の暗号化キー と 一致す る ため可能です。 こ の方法を利用す る と 、 FPGA の eFUSE をプ ロ グ ラ ム し な く て も Vivado デザ イ ン ツールの暗号化フ ロ ーを検証で き ます。 ビル ド エ ラ ーの場合 Vivado デザ イ ン ツールの Tcl ス ク リ プ ト 実行で生成 さ れた vivado.log フ ァ イ ルを確認 し ます。デバ イ ス名や NKY フ ァ イ ルに関す る 問題が生 じ る と 、 Tcl ス ク リ プ ト がエ ラ ーを レ ポー ト し ます。 エ ラ ーが レ ポー ト さ れた場合は、 プ ロ ジ ェ ク ト サブデ ィ レ ク ト リ 内の ロ グ フ ァ イ ルでエ ラ ー内容を確認 し て く だ さ い。 ERROR:[Common 17-69] Command failed:Run 'impl_1' has not been launched. 詳細は、 XAPP1260_encrypted_verification_bitstream.runs\synth_1\runme.log フ ァ イ ルで、 合成中のエ ラ ーを確認で き ます。 暗号化 さ れた検証ビ ッ ト ス ト リ ーム デザイ ンの変更 と 制約 基本の リ フ ァ レ ン ス デザ イ ンか ら 生成 さ れ る 暗号化 さ れた コ ン テ ン ツ を変更する ため、必要に応 じ て リ フ ァ レ ン ス デザ イ ン を変更で き ます。 ただ し 、 最終的な FPGA デザ イ ンは次の制約事項に従 う 必要があ り ます。 • 検証ビ ッ ト ス ト リ ームは、 電源投入時の最小電流を超え てはいけ ません。 通常、 デバ イ ス プ ロ グ ラ マへの電力供給は 制限 さ れてい ます。 デバ イ ス プ ロ グ ラ マは、 デバ イ ス に電源を投入 し 、 eFUSE をプ ロ グ ラ ムす る だけの電力 し か備え ていない こ と に注意 し て く だ さ い。 • ユーザー指定の I/O は使用 し ないで く だ さ い。 デバ イ ス プ ロ グ ラ マの ピ ン接続は固定 さ れてい ます。 デバ イ ス プ ロ グ ラ マは、 専用の JTAG イ ン タ ーフ ェ イ ス ピ ン と のみ適切に接続で き る こ と に注意 し て く だ さ い。 ユーザー指定の ピ ン の接続お よ び電力は定義 さ れてい ません。 • ト ラ ン シーバーを イ ン ス タ ン シエー ト ま たは有効化 し ないで く だ さ い。 デバ イ ス プ ロ グ ラ マの ソ ケ ッ ト は、 ト ラ ン シーバーを使用 し ない、 ま たは有効に し ない こ と を前提に設計 さ れてい る こ と に注意 し て く だ さ い。 暗号化 さ れた検証ビ ッ ト ス ト リ ームのチ ェ ッ ク リ ス ト 暗号化 さ れた検証ビ ッ ト ス ト リ ームに対 し て、 プ ロ パテ ィ が次の よ う に適切に指定 さ れてい る 必要があ り ます。 BITSTREAM.ENCRYPTION.ENCRYPT = YES BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT = EFUSE BITSTREAM.ENCRYPTION.KEYFILE = <NKY file name that contains your AES key> デバ イ ス プ ロ グ ラ マでの検証時間を最小にす る には、 次のプ ロ パテ ィ 設定が重要です。 BITSTREAM.GENERAL.COMPRESS = TRUE こ こ に リ ス ト し たプ ロ パテ ィ 設定は、 -verbose オプシ ョ ン を使用 し て write_bitstream コ マ ン ド を実行す る こ と で 検証で き ます。 リ フ ァ レ ン ス デザ イ ン の Tcl ス ク リ プ ト には、 -verbose オプシ ョ ン と write_bitstream コ マ ン ド が 含 ま れてい ます。 -verbose オプシ ョ ン を使用 し て write_bitstream が実行 さ れ る と 、 ビ ッ ト ス ト リ ーム の書 き 込み 時にプ ロ パテ ィ 設定が ロ グ フ ァ イ ルに記録 さ れます。 サマ リ 内の重要な部分を次に示 し ます。 Summary of write_bitstream Options: +-------------------------+-------------------------+ | Option Name | Current Setting | +-------------------------+-------------------------+ ... +-------------------------+-------------------------+ | KEYFILE | your_key_file_name.nky | +-------------------------+-------------------------+ ... XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 9 デバイ ス プ ログ ラ マの準備 +-------------------------+-------------------------+ | ENCRYPTKEYSELECT | EFUSE | +-------------------------+-------------------------+ ... +-------------------------+-------------------------+ | ENCRYPT | YES | +-------------------------+-------------------------+ ... +-------------------------+-------------------------+ | COMPRESS | TRUE | +-------------------------+-------------------------+ ... 先に リ ス ト し たプ ロ パテ ィ 設定は、ビ ッ ト ス ト リ ームが復号化の実行や AES 暗号化キーの格納場所を指示す る と い う 理由 か ら 重要です。 こ れ ら のプ ロ パテ ィ を設定せずに生成 さ れた ビ ッ ト ス ト リ ームは、 eFUSE に格納 さ れた AES キー値を テ ス ト せずに、 FPGA を コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 た と えば、 標準の FPGA eFUSE 設定では、 暗号化 さ れていない ビ ッ ト ス ト リ ームか ら の コ ン フ ィ ギ ュ レーシ ョ ンが可能です。 し たがっ て、 格納 さ れた AES キーを テ ス ト せずに、 暗号化 さ れていない ビ ッ ト ス ト リ ームで標準の FPGA をプ ロ グ ラ ムで き る こ と にな り ます。 暗号化 さ れた検証ビ ッ ト ス ト リ ーム (MCS) フ ァ イ ルのビ ッ ト ス ト リ ーム ヘ ッ ダー以降のデー タ (12 行目以降) は、 暗号化 さ れてい る こ と を視覚的に確認で き ます。 暗号化 さ れていない ビ ッ ト ス ト リ ーム デー タ は、 ほ と ん ど 0 ビ ッ ト 値 と な り ま す (FPGA デザ イ ン内の大半の リ ソ ース が未使用なため)。暗号化 さ れた ビ ッ ト ス ト リ ームは、よ り ラ ン ダ ム なデー タ パ タ ー ン と な り ます。 図 2 に、 暗号化 さ れていない ビ ッ ト ス ト リ ーム と 暗号化 さ れた ビ ッ ト ス ト リ ームのデー タ パ タ ーンの比較 を示 し ます。 黄色の枠でハ イ ラ イ ト し た部分がビ ッ ト ス ト リ ーム デー タ です。 X-Ref Target - Figure 2 ;BB 図 2 : 暗号化 さ れていない ビ ッ ト ス ト リ ーム (左) と 暗号化 さ れた ビ ッ ト ス ト リ ーム (右) XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 10 デバイ ス プ ログ ラ マのセ ッ ト ア ッ プ と 動作を検証する ガ イ ド ラ イ ン デバイ ス プ ログ ラ マのセ ッ ト ア ッ プ と 動作を検証する ガイ ド ラ イン 前のセ ク シ ョ ンでは、デバ イ ス プ ロ グ ラ マの設定を定義 し 、デバ イ ス プ ロ グ ラ マの入力フ ァ イ ルを構築す る 方法について 説明 し ま し た。 こ のセ ク シ ョ ンでは、 次のガ イ ド ラ イ ン を提供 し ます。 • デバ イ ス プ ロ グ ラ マへ提供す る 前に、デバ イ ス プ ロ グ ラ マの設定 と 入力フ ァ イ ルが予定 さ れていた も のであ る か を確 認す る 。 • デバ イ ス プ ロ グ ラ マの設定お よ び入力フ ァ イ ルを確認する 。 • デバ イ ス プ ロ グ ラ マでプ ロ グ ラ ム さ れた最初のデバ イ ス が、 その eFUSE 設定で、 アセ ンブ リ 済みボー ド 上で正 し く 動作す る か を検証す る 。 こ れ ら のガ イ ド ラ イ ン をチ ェ ッ ク リ ス ト と し て使用す る こ と で、デバ イ ス プ ロ グ ラ マで 7 シ リ ーズ FPGA eFUSE を確実に プ ロ グ ラ ムで き ます。 デバイ ス プ ログ ラ マ フ ァ イルの事前確認 こ のセ ク シ ョ ンでは、デバ イ ス プ ロ グ ラ マに提供す る 前に、デバ イ ス プ ロ グ ラ マの設定 と 入力フ ァ イ ルが予定 さ れていた も のであ る か を確認す る ためのガ イ ド ラ イ ン を示 し ます。 1. プ ロ ト タ イ プ ボー ド 上で、 暗号化を行わずに、 基本の リ フ ァ レ ン ス デザ イ ンがユーザー デバ イ ス で機能す る こ と を 確認 し ます。 Vivado ハー ド ウ ェ ア マネージ ャ ーを使用 し て、 プ ロ ト タ イ プ ボー ド 上にあ る 、 eFUSE 内の AES キーを用いてプ ロ グ ラ ム さ れていない FPGA に XAPP1260_<part>_unencrypted_bitstream.bit フ ァ イ ルを ダ ウ ン ロ ー ド し ま す。 こ の FPGA は コ ン フ ィ ギ ュ レーシ ョ ン を正常に完了する はずです。 2. プ ロ ト タ イ プ ボー ド 上で、 暗号化 さ れた ビ ッ ト ス ト リ ームのセキ ュ リ テ ィ を検証 し ます。 Vivado ハー ド ウ ェ ア マネージ ャ ーを使用 し て、 プ ロ ト タ イ プ ボー ド 上にあ る 、 eFUSE 内の AES キーを用いてプ ロ グ ラ ム さ れていない FPGA に暗号化 さ れた検証ビ ッ ト ス ト リ ーム を ダ ウ ン ロ ー ド し ま す。 こ の FPGA は コ ン フ ィ ギ ュ レーシ ョ ン を正常に完了で き ないはずです。 3. 暗号化 さ れた検証ビ ッ ト ス ト リ ーム と 実際の暗号化 さ れたデザ イ ン ビ ッ ト ス ト リ ームがプ ロ ト タ イ プ ボー ド 上のデ バ イ ス で有効であ る こ と を確認 し ます。 a. Vivado ハー ド ウ ェ ア マネージ ャ ーを使用 し て、 ユーザーが記入 し た表 1 の設定で eFUSE をプ ロ グ ラ ム し ます。 Vivado ツールを使用 し てデバ イ ス eFUSE へア ク セ ス す る 際の手順については、 『暗号化を使用 し て 7 シ リ ーズ FPGA ビ ッ ト ス ト リ ーム を保護』 (XAPP1239) [参照 3] を参照 し て く だ さ い。 - Vivado ハー ド ウ ェ ア マネージ ャ ーを使用 し て、 デバ イ ス の [Properties] → [Register] → [eFUSE] → [FUSE_CNTL] で、 FUSE_CNTL の値を確認 し ます。 Vivado ハー ド ウ ェ ア マネージ ャ ーの eFUSE プ ロ グ ラ ミ ン グか ら 得た FUSE_CNTL 値の コ ピーを保存 し ます。 こ の値を使用 し て、 デバ イ ス プ ロ グ ラ マか ら 得 ら れ る FUSE_CNTL 値が同 じ であ る か を後に検証で き ます。 b. Vivado ハー ド ウ ェ ア マネージ ャ ーを使用 し て、 暗号化 さ れた検証ビ ッ ト ス ト リ ーム をプ ロ ト タ イ プ ボー ド 上の デバ イ ス にダ ウ ン ロ ー ド し ます。 FPGA は コ ン フ ィ ギ ュ レーシ ョ ン を正常に完了す る はずです。 c. Vivado ハー ド ウ ェ ア マネージ ャ ーを使用 し て、 実際の暗号化 さ れたデザ イ ン ビ ッ ト ス ト リ ーム を プ ロ ト タ イ プ ボー ド 上のデバ イ ス にダ ウ ン ロ ー ド し ま す。 FPGA は コ ン フ ィ ギ ュ レ ーシ ョ ン を正常に完了す る はずです。 XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 11 デバイ ス プ ログ ラ マのセ ッ ト ア ッ プ と 動作を検証する ガ イ ド ラ イ ン デバイ ス プ ログ ラ マの設定検証 こ のセ ク シ ョ ンでは、 デバ イ ス プ ロ グ ラ マの設定 と 入力フ ァ イ ルを確認する ためのガ イ ド ラ イ ン を示 し ます。 4. 照合キーでデバ イ ス がプ ロ グ ラ ム さ れていない場合、 デバ イ ス ポー ト さ れ る こ と を確認 し ます。 プ ロ グ ラ マの ス タ ン ド ア ロ ン検証動作でエ ラ ーが レ a. フ ァ ク ト リ か ら の新品デバ イ ス をデバ イ ス プ ロ グ ラ マ ソ ケ ッ ト に挿入 し ます。 b. 暗号化 さ れた検証ビ ッ ト ス ト リ ームで ス タ ン ド ア ロ ン検証動作を実行 し ます。 c. デバ イ ス プ ロ グ ラ マがエ ラ ーを レ ポー ト す る はずです。 ス タ ン ド ア ロ ン検証がエ ラ ーを レ ポー ト し なか っ た場合 : 5. - デバ イ ス が空であ る こ と を再確認 し ます。 - 暗号化 さ れた検証ビ ッ ト ス ト リ ーム を再確認 し ます。 Vivado ハー ド ウ ェ ア マネージ ャ ーを使用 し て、 暗号化 さ れた検証ビ ッ ト ス ト リ ーム で、 ボー ド 上の eFUSE がプ ロ グ ラ ム さ れていないデバ イ ス に対 し て コ ン フ ィ ギ ュ レーシ ョ ン を実行 し ます。 Vivado ハー ド ウ ェ ア マネージ ャ ーは、 コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーを レ ポー ト す る はずです。 設定を使用 し て、 1 つま たは 2 つのテ ス ト デバ イ ス をプ ロ グ ラ ム し て検証 し ます。 その後 こ れ ら のプ ロ グ ラ ム済みテ ス ト デバ イ ス は、 アセ ンブ リ 済みボー ド 上での検証プ ロ セ スへ渡 さ れます。 検証動作に失敗 し た場合は、 「デバ イ ス プ ロ グ ラ マ フ ァ イ ルの事前確認」 のガ イ ド ラ イ ンに従っ て、 暗号化 さ れた検 証ビ ッ ト ス ト リ ーム を再確認 し ます。 最初にプ ログ ラ ム さ れたデバイ ス を アセ ン ブ リ 済みボー ド 上で検証 こ のセ ク シ ョ ン では、 デバ イ ス プ ロ グ ラ マでプ ロ グ ラ ム さ れた最初のデバ イ ス が、 こ れ ら の eFUSE 設定で、 アセ ン ブ リ 済みボー ド 上で正 し く 機能す る か を検証す る ためのガ イ ド ラ イ ン を提供 し ます。 6. FUSE_CNTL レ ジ ス タ で、 AES キーの読み出 し 保護機能お よ びその他のセキ ュ リ テ ィ 設定を確認 し ます。 a. Vivado ハー ド ウ ェ ア マネージ ャ ーを使用 し て、 JTAG を介 し てボー ド 上のデバ イ ス に接続 し ます。 b. デバ イ ス の [Properties] → [Register] → [eFUSE] → [FUSE_CNTL] か ら 、 FUSE_CNTL の値を確認 し ます。 プ ロ ト タ イ プ ボー ド での eFUSE の Vivado ハー ド ウ ェ ア マネージ ャ ー プ ロ グ ラ ミ ン グか ら 得た FUSE_CNTL の値を保存 し てい る 場合は、 その値 と デバ イ ス プ ロ グ ラ マでプ ロ グ ラ ム さ れたデバ イ ス の値を比較 し ます。 c. 少な く と も R_EN_B_Key (FUSE_CNTL[3]) ビ ッ ト が 1 にプ ロ グ ラ ム さ れてい る こ と を確認 し ます。た と えば、図 3 では、 16 進数値 0008 (バ イ ナ リ 値 00000000001000) を 示 し て い ま す。 こ の例では、 1 にプ ロ グ ラ ム さ れ た FUSE_CNTL[3] ビ ッ ト が正 し く 定義 さ れてい ます。 - 7. FUSE_CNTL[3] ビ ッ ト が 1 にプ ロ グ ラ ム さ れていない場合、 ま たはデバ イ ス プ ロ グ ラ マでプ ロ グ ラ ム さ れた デバ イ ス か ら 取得 し た FUSE_CNTL レ ジ ス タ 値が Vivado ハー ド ウ ェ ア マネージ ャ ーでプ ロ グ ラ ム さ れたデ バ イ ス の値 と 一致 し ない場合は、 デバ イ ス プ ロ グ ラ マのすべての設定を再確認 し ます。 暗号化 さ れた ビ ッ ト ス ト リ ーム を FPGA に ロ ー ド し ます。 XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 12 デバイ ス プ ログ ラ マのセ ッ ト ア ッ プ と 動作を検証する ガ イ ド ラ イ ン a. コ ン フ ィ ギ ュ レーシ ョ ンに失敗 し た場合は、 ユーザー デザ イ ン と デバ イ ス プ ロ グ ラ マの設定が同 じ NKY フ ァ イ ル (AES キー ) を使用 し て ビ ッ ト ス ト リ ーム を暗号化 し てい る か を再度確認 し ます。 X-Ref Target - Figure 3 ;BB 図 3 : Vivado ハー ド ウ ェ ア マネージ ャ ーの FUSE_CNTL 値 XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 13 参考資料 参考資料 注記 : 日本語版のバージ ョ ンは、 英語版 よ り 古い場合があ り ます。 1. 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG470 : 英語版、 日本語版) 2. 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908 : 英語版、 日本語版) 3. 『暗号化を使用 し て 7 シ リ ーズ FPGA ビ ッ ト ス ト リ ーム を保護』 (XAPP1239 : 英語版、 日本語版) 改訂履歴 次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 2015 年 7 月 8 日 1.0 内容 初版 法的通知 本通知に基づいて貴殿ま たは貴社 (本通知の被通知者が個人の場合には 「貴殿」、 法人その他の団体の場合には 「貴社」。 以下同 じ ) に開示 さ れ る 情報 (以下 「本情報」 と いい ます) は、 ザ イ リ ン ク ス の製品を選択お よ び使用す る こ と のためにのみ提供 さ れます。 適用 さ れ る 法律 が許容す る 最大限の範囲で、 (1) 本情報は 「現状有姿」、 お よ び全て受領者の責任で (with all faults) と い う 状態で提供 さ れ、 ザ イ リ ン ク ス は、 本通知を も っ て、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますが こ れ ら に限 ら れません)、 全ての 保証お よ び条件を負わない (否認す る ) も の と し ます。 ま た、 (2) ザ イ リ ン ク ス は、 本情報 (貴殿ま たは貴社に よ る 本情報の使用を含む) に 関係 し 、 起因 し 、 関連す る 、 いかな る 種類 ・ 性質の損失ま たは損害について も 、 責任を負わない (契約上、 不法行為上 (過失の場合を含む )、 その他のいかな る 責任の法理に よ る か を問わない) も の と し 、 当該損失ま たは損害には、 直接、 間接、 特別、 付随的、 結果的な損失ま たは損害 (第三者が起 こ し た行為の結果被っ た、 デー タ 、 利益、 業務上の信用の損失、 その他あ ら ゆ る 種類の損失や損害を含みます) が 含ま れ る も の と し 、 それは、 た と え当該損害や損失が合理的に予見可能であ っ た り 、 ザ イ リ ン ク ス がそれ ら の可能性について助言を受け ていた場合であ っ た と し て も 同様です。 ザ イ リ ン ク ス は、 本情報に含ま れ る いかな る 誤 り も 訂正す る 義務を負わず、 本情報ま たは製品仕 様のア ッ プデー ト を貴殿ま たは貴社に知 ら せ る 義務 も 負い ません。事前の書面に よ る 同意のない限 り 、貴殿ま たは貴社は本情報を再生産、 変 更、 頒 布、 ま た は 公 に 展 示 し て は な り ま せ ん。 一 定 の 製 品 は、 ザ イ リ ン ク ス の 限 定 的 保 証 の 諸 条 件 に 従 う こ と と な る の で、 http://japan.xilinx.com/legal.htm#tos で見 ら れ る ザ イ リ ン ク ス の販売条件を参照 し て下 さ い。 IP コ アは、 ザ イ リ ン ク ス が貴殿ま たは貴社に付 与 し た ラ イ セ ン ス に含ま れ る 保証 と 補助的条件に従 う こ と にな り ます。 ザ イ リ ン ク ス の製品は、 フ ェ イ ルセーフ と し て、 ま たは、 フ ェ イ ルセーフ の動作を要求す る アプ リ ケーシ ョ ンに使用す る ために、 設計 さ れた り 意図 さ れた り し てい ません。 その よ う な重大な アプ リ ケー シ ョ ン に ザ イ リ ン ク ス の 製 品 を 使 用 す る 場 合 の リ ス ク と 責 任 は、 貴 殿 ま た は 貴 社 が 単 独 で 負 う も の で す。 http://japan.xilinx.com/legal.htm#tos で見 ら れ る ザ イ リ ン ク ス の販売条件を参照 し て下 さ い。 自動車用のア プ リ ケーシ ョ ンの免責条項 ザ イ リ ン ク ス の製品は、 フ ェ イ ルセーフ と し て設計 さ れた り 意図 さ れてはお ら ず、 ま た、 フ ェ イ ルセーフ の動作を要求す る ア プ リ ケー シ ョ ン (具体的には、 (I) エアバ ッ グの展開、 (II) 車の コ ン ト ロ ール (フ ェ イ ルセーフ ま たは余剰性の機能 (余剰性を実行す る ためのザ イ リ ン ク ス の装置に ソ フ ト ウ ェ ア を使用す る こ と は含ま れません) お よ び操作者が ミ ス を し た際の警告信号があ る 場合を除 き ます)、 (III) 死亡 や身体傷害を導 く 使用、 に関す る アプ リ ケーシ ョ ン) を使用す る ために設計 さ れた り 意図 さ れた り も し てい ません。 顧客は、 その よ う な アプ リ ケーシ ョ ンにザ イ リ ン ク ス の製品を使用す る 場合の リ ス ク と 責任を単独で負い ます。 © Copyright 2015 Xilinx, Inc. Xilinx、 Xilinx の ロ ゴ、 Artix、 ISE、 Kintex、 Spartan、 Virtex、 Vivado、 Zynq、 お よ び こ の文書に含まれ る その他 の指定 さ れたブ ラ ン ド は、 米国お よびその他各国のザ イ リ ン ク ス社の商標です。 全てのその他の商標は、 それぞれの保有者に帰属 し ます。 こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected] ま で、 ま たは各ページの右下 にあ る [フ ィ ー ド バ ッ ク 送信] ボ タ ン を ク リ ッ ク す る と 表示 さ れ る フ ォームか ら お知 ら せ く だ さ い。フ ィ ー ド バ ッ ク は日本語で入力可能で す。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受け付けてお り ませ ん。 あ ら か じ めご了承 く だ さ い。 XAPP1260 (v1.0) 2015 年 7 月 8 日 japan.xilinx.com 14