...

デバイス プログラマを使用した eFUSE のプログラム (XAPP1260)

by user

on
Category: Documents
76

views

Report

Comments

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
Fly UP