暗号化キー メ モ リ セルは揮発性であ り 、 その内容を維持す る には、 電源が継続 し て投入 さ れてい る 必要があ り ます。 通常の動作中、 こ れ ら の メ モ リ セルには補助電圧入力 (VCCAUX) か ら 電源が供 給 さ れ ますが、VCCAUXが切断 さ れ る と 、 キーを保持す る ために VBATT電源入力か ら 電源が供給 さ れます。VBATTにはほ と ん ど電流が流れないため (nA 程度)、 こ の電源には小 さ なボ タ ン電池が 適 し てい ます。 バ ッ テ リ の寿命を推定す る には、 『Spartan-6 FPGA デー タ シー ト : DC 特性お よ び ス イ ッ チ特性』記載の VBATTの DC 特性お よ びバ ッ テ リ の仕様を参照 し て く だ さ い。150nA 未満 の負荷では、 バ ッ テ リ の使用可能期間はバ ッ テ リ の寿命期間にな る はずです。
VBATTには電流が流れないため、VCCAUXか ら 電源を供給中に切断で き ます。VBATTは、VCCAUX 切断時に暗号化キーを保持す る 以外の目的には使用で き ません。
eFUSE
ヒ ュ ーズ リ ン ク は、 一定期間に大量の電流を流す こ と でプ ロ グ ラ ム し ます。FUSE プ ロ グ ラ ム用の 電流は、 固定 さ れた外部電源供給 (VFS ピ ン) か ら 供給 さ れます。 最大レベルは、 内部で生成 さ れた 電源で制御 さ れます。 ま た、eFUSE は OTP (ワ ン タ イ ムプ ロ グ ラ マブル) です。
通常、プ ロ グ ラ ム し た ヒ ュ ーズ リ ン ク はプ ロ グ ラ ム し ていない状態の抵抗値 よ り も その値が数桁大 き く な り ます。 プ ロ グ ラ ム し た ヒ ュ ーズの論理値は 1 で、 プ ロ グ ラ ム し ていない ヒ ュ ーズの論理値 は 0 です。
FUSE_KEY お よ び FUSE_CNTL レ ジ ス タ の各論理ビ ッ ト は、2 つの eFUSE セル (プ ラ イ マ リ 、 リ ダ ン ダ ン ト)、1 つの フ リ ッ プ フ ロ ッ プ、 お よ びデー タ マルチプ レ ク ス用の共通 ロ ジ ッ ク エ レ メ ン
ト で構成 さ れてい ます。
eFUSE レ ジ ス タ
Spartan-6 FPGA には、 全部で 3 つの eFUSE レ ジ ス タ があ り ます。表5-18 に、Spartan-6 デバ イ ス の eFUSE レ ジ ス タ と それぞれのサ イ ズお よ び用途を説明 し ます。eFUSE ビ ッ ト のア ド レ ス が指 定 さ れ る と 、LSB 順にシ フ ト イ ン/シ フ ト ア ウ ト さ れて最後に MSB が き ます。
eFUSE 制御レ ジ ス タ (FUSE_CNTL)
こ の レ ジ ス タ には、6 つのユーザープ ロ グ ラ マブルビ ッ ト が含まれてい ます。 こ れ ら のビ ッ ト を使 用 し て、表5-19 に示す よ う に AES キーの使用法や eFUSE レ ジ ス タ の読み出 し/書 き 込み保護を設 定 し ます。 ビ ッ ト 0 が最初にシ フ ト イ ン/シ フ ト ア ウ ト さ れます。
表 5-18 : eFUSE レ ジス タ レ ジス タ 名 サイ ズ
(ビ ッ ト) 内容 説明
FUSE_KEY(1) 256 ビ ッ ト ス ト リ ー ム 暗 号 化 キー
[0:255]
(ビ ッ ト 255 が最初にシ フ ト さ れ る)
AES ビ ッ ト ス ト リ ームの復号化で使用す る キーを格納 し ます。
バ ッ ク ア ッ プ バ ッ テ リ が必要な SRAM にキーを格納す る 代わ り に、eFUSE にキーを格納 し て使用で き ます。
Spartan-6 FPGA の復号化エン ジ ンは、 こ の AES キーを使用 し て暗号化ビ ッ ト ス ト リ ーム を読み込みます。AES キーは、
FUSE_CNTL レ ジ ス タ の読み出 し/書 き 込みア ク セ ス ビ ッ ト の 設定に基づ き 、JTAG ポー ト を介 し て読み出 し ま たはプ ロ グ ラ ム が可能です。
FUSE_ID 57 Device DNA
[0:56]
(ビ ッ ト 56 が最初にシ フ ト さ れ る)
Device DNA を格納 し ます。JTAG ポー ト や DNA_PORT プ リ ミ テ ィ ブ を介 し て ア ク セ スす る 読み出 し 専用レ ジ ス タ です。
FUSE_CNTL(1) 32 制御ビ ッ ト
CNTL [31:0]
(ビ ッ ト 0 が最初にシ フ ト さ れ る)
キーの使用や eFUSE レ ジ ス タ への読み出 し/書 き 込みア ク セ ス を制御 し ます。 こ の レ ジ ス タ は、JTAG ポー ト を介 し て読み出 し ま たはプ ロ グ ラ ムが可能です。
注記 :
1. FUSE_KEY お よ び FUSE_CNTL は、XC6SLX75/T、XC6SLX100/T、 お よ び XC6SLX150/T デバ イ ス でのみ使用で き ます。
eFUSE ビ ッ ト は OTP (ワ ン タ イ ムプ ロ グ ラ マブル) です。 つま り 、 一度プ ロ グ ラ ムす る と 再プ ロ グ ラ ムはで き ません。 た と えばレ ジ ス タ へのア ク セ ス を無効に し た場合、 後か ら 有効にす る こ と はで き ません。
表 5-19 : eFUSE CNTL レ ジス タ ビ ッ ト ビ ッ ト
番号 名前 説明 注釈
0:7 - - 予約
8 CNTL
セキ ュ リ テ ィ
CNTL レ ジ ス タ の読み出 し と 書 き 込み を 無効 に し ます。CNTL[12] で リ ダ ン ダ ン ト
AES お よ び CNTL レ ジ ス タ の操作や リ ー ド バ ッ ク を 防止す る た め、 ユー ザーは こ れ ら の レ ジ ス タ を プ ロ グ ラ ム お よ び検証 し た後に こ の ビ ッ ト を プ ロ グ ラ ムす る 必要があ り ます。
9 - - 予約
10 キー
セキ ュ リ テ ィ
KEY レ ジ ス タ の読み出 し と 書 き 込み を 無効 に し ま す。CNTL[14] で リ ダ ン ダ ン ト 。
AES レ ジ ス タ の操作や リ ー ド バ ッ ク を防止す る ため、ユーザーは こ れ ら の レ ジ ス タ を プ ロ グ ラ ム お よ び検証 し た 後に こ の ビ ッ ト を プ ロ グ ラ ム す る 必要があ り ます。
11 - - 予約
12 CNTL
セキ ュ リ テ ィ
CNTL レ ジ ス タ の読み出 し と 書 き 込み を 無効 に し ます。CNTL[8] で リ ダ ン ダ ン ト 。
AES お よ び CNTL レ ジ ス タ の操作や リ ー ド バ ッ ク を 防止す る た め、 ユー ザーは こ れ ら の レ ジ ス タ を プ ロ グ ラ ム お よ び検証 し た後に こ の ビ ッ ト を プ ロ グ ラ ムす る 必要があ り ます。
13 - - 予約
14 キー
セキ ュ リ テ ィ
KEY レ ジ ス タ の読み出 し と 書 き 込み を 無効 に し ま す。CNTL[10] で リ ダ ン ダ ン ト 。
AES レ ジ ス タ の操作や リ ー ド バ ッ ク を防止す る ため、ユーザーは こ れ ら の レ ジ ス タ を プ ロ グ ラ ム お よ び検証 し た 後に こ の ビ ッ ト を プ ロ グ ラ ム す る 必要があ り ます。
15 - - 予約
16 aes_exclusive パーシ ャ ル リ コ ン フ ィ ギ ュ レ ー シ ョ ン を 無効 に し ます。
次のいずれか の方法で コ ン フ ィ ギ ュ レーシ ョ ン前に FPGA の内容を ク リ アす る こ と を要求 し ます : JPROG JTAG 命令の発行、PROGRAM_B ピ ンのパルス、ま たは FPGA への電源再 投入。
17 cfg_aes_only こ の ビ ッ ト が プ ロ グ ラ ム さ れた後、FPGA は、
eFUSE レ ジ ス タ に格納 さ れた AES キーを使用 し て の み コ ン フ ィ ギ ュ レ ー シ ョ ン可能です。
eFUSE AES レ ジ ス タ に格納 さ れた AES キーで暗号化 さ れた ビ ッ ト ス ト
リ ームでのみ FPGA の コ ン フ ィ ギ ュ レーシ ョ ンが可能です。
18:31 -
-• 暗号化は、BitGen オプシ ョ ンで無効/有効にで き る
• eFUSE に格納 さ れてい る AES キーを使用す る か、 バ ッ ク ア ッ プ バ ッ テ リ を必要 と す る SRAM に格納 さ れてい る AES キーを使用す る か を BitGen のオプシ ョ ンで選択で き る CNTL[17] をプ ロ グ ラ ム し た場合、eFUSE に格納 さ れた キーで暗号化 し た ビ ッ ト ス ト リ ームのみを FPGA の コ ン フ ィ ギ ュ レーシ ョ ンに使用で き ます。
CNTL[16] をプ ロ グ ラ ム し た場合、最初の コ ン フ ィ ギ ュ レーシ ョ ン後に コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ が ブ ロ ッ ク さ れ ま す。 デ バ イ ス を リ コ ン フ ィ ギ ュ レ ー シ ョ ン す る に は、 電 源 の 再 投 入、
JPROGRAM ま たは IPROG コ マ ン ド の発行、PROGRAM_B ピ ンのパルス のいずれかが必要にな り ます。
JTAG 命令
eFUSE レ ジ ス タ は JTAG ポー ト か ら 読み出す こ と がで き ます。eFUSE のプ ロ グ ラ ムは、JTAG を 介 し てのみ可能です。表5-20 に、eFUSE に関連す る JTAG 命令を示 し ます。 標準的な JTAG 通信 プ ロ ト コ ルの詳細は、第 10 章 「ア ド バン ス JTAG コ ン フ ィ ギ ュ レーシ ョ ン」を参照 し て く だ さ い。
こ れ ら の命令は、eFUSE をプ ロ グ ラ ムす る のに十分ではあ り ません。 適切なアルゴ リ ズ ムが使用 さ れ ま す が、 提供 さ れ て い ま せ ん。 唯一 サ ポ ー ト さ れ て い る eFUSE の プ ロ グ ラ ミ ン グ 方法 は、
iMPACT ソ フ ト ウ ェ アの使用に よ る も のです。
V FS ピ ン
Spartan-6 デバ イ ス の VFS ピ ンは、2 つの eFUSE 動作専用ピ ン の う ちの 1 つです。VFS ピ ンは、
電源投入の上昇率や ESD ス ト レ ス な ど を検証す る ための電源供給 と し て使用 さ れます。
プ ロ グ ラ ム中の VFS ピ ンの電圧仕様は、 公称値で 3.3V です。 プ ロ グ ラ ム中の電流に対 し ては、 最 大 40mA を 供給 で き る よ う にす る 必要 が あ り ま す。 読み出 し モー ド の場合、VFS ピ ン は唯一 VCCAUXの最大動作条件 よ り 低 く な る 必要があ り ます。VFS バ イ ア ス の条件については、表5-21 を参照 し て く だ さ い。 完全な仕様は、 デー タ シー ト DS162 『Spartan-6 FPGA デー タ シー ト : DC 特性お よ びス イ ッ チ特性』 () を参照 し て く だ さ い。
表 5-20 : eFUSE 関連の JTAG 命令
JTAG 命令 コ ー ド ア ク シ ョ ン
FUSE_KEY 6'h3B 256 ビ ッ ト の FUSE_KEY レ ジ ス タ を選択 し ます。
FUSE_OPTION
6'h3C eFUSE と の イ ン タ ーフ ェ イ ス で使用 さ れ る デー タ お よ び コ マ ン ド に対応す る 16 ビ ッ ト の FUSE_OPTION レ ジ ス タ を選択 し ます。
ISC_FUSE_READ
6'h30 DNA eFUSE レ ジ ス タ を選択 し ます。ISC_ENABLE の後に実行 し 、それか ら ISC_DISABLE を実行す る 必 要があ り ます。
FUSE_UPDATE 6'h3A AES お よ び CNTL の eFUSE か ら の値で FPGA を更 新 し ます。
FUSE_CNTL 6'h34 32 ビ ッ ト の FUSE_CNTL レ ジ ス タ を選択 し ます。
RFUSE ピ ン
RFUSE ピ ンは、eFUSE 動作に使用 さ れ る 2 つ目の専用ピ ン です。eFUSE のプ ロ グ ラ ムが必要な 場合は、1,140Ω 抵抗を GND に接続 し て く だ さ い。1,140Ω 抵抗を得 る こ と が難 し い場合は、10W 抵抗 と 直列の 1,130W 抵抗に置 き 換 え る こ と が可能です。 許容抵抗につい て は、 デー タ シ ー ト DS162 『Spartan-6 FPGA デー タ シー ト : DC 特性お よ び ス イ ッ チ特性』 を参照 し て く だ さ い。 プ ロ グ ラ ム し ていない と き に eFUSE を使用す る か、 ま たは eFUSE を使用 し ない場合、RFUSE を VCCAUXに接続ま たはグ ラ ン ド 接続す る こ と を推奨 し ます。 あ る いは、RFUSE はフ ロ ー ト さ せて お く こ と が可能です。
V CCAUX ピ ン
VCCAUXは、eFUSE のプ ロ グ ラ ム時に VFS と 同等ま たはそれ以上にす る 必要があ り ます。VCCAUX は、eFUSE か ら の読み出 し ま たは コ ン フ ィ ギ ュ レーシ ョ ン時にほかの推奨動作値を と る こ と が可能 です。 詳細は、 デー タ シー ト DS162 『Spartan-6 FPGA デー タ シー ト : DC 特性お よ びス イ ッ チ特 性』 を参照 し て く だ さ い。
コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ フ レーム
Spartan-6 FPGA の コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ は、 フ レームに分割 さ れ、 デバ イ ス に並べ ら れ てい ます。Spartan-6 FPGA の コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ 空間では、 フ レームがア ド レ ス指定 可能な最小単位であ り 、すべての操作は コ ン フ ィ ギ ュ レーシ ョ ン フ レーム全体に対 し て実行す る こ と にな り ます。Spartan-6 FPGA の フ レーム数お よ び コ ン フ ィ ギ ュ レーシ ョ ンサ イ ズは、表5-22 に 記載 さ れてい ます。BitGen のオプシ ョ ンに よ っ ては、 コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム にオーバーヘ ッ ド が追加 さ れ る こ と があ り ます。 ビ ッ ト ス ト リ ームの正確な長 さ は、RBT (rawbits) フ ァ イ ルにに記述 さ れてい ます。 こ の フ ァ イ ルは、BitGen の-bオプシ ョ ン を指定す る か、 ま たは ISE ソ フ ト ウ ェ ア の ポ ッ プ ア ッ プ メ ニ ュ ー で [Generate Programming File] → [Create ASCII Configuration File] を ク リ ッ ク す る と 生成 さ れ ま す。 ビ ッ ト ス ト リ ーム長 (ワ ー ド) は、 コ ン フ ィ ギ ュ レーシ ョ ン ア レ イサ イ ズ (ワ ー ド) に コ ン フ ィ ギ ュ レーシ ョ ン オーバーヘ ッ ド (ワ ー ド) を足 し た も のにほぼ等 し く な り ます。 ビ ッ ト ス ト リ ーム長 (ビ ッ ト) は、 ビ ッ ト ス ト リ ーム長 (ワー ド) に 32 を掛けた も のにほぼ等 し く な り ます。
表 5-21 : VFSピ ンのバイ ア ス条件
eFUSE モー ド VFS ピ ンのバイ ア ス
読み出 し ま たは未使用 VCC/GND (推奨) ま たは未接続
プ ロ グ ラ ム 3.3V
表 5-22 : デバイ ス リ ソ ース
デバイ ス ブ ロ ッ ク RAM 列 コ アの フ レーム数
ブ ロ ッ ク RAM
の フ レーム数 I/O 数 I/O の
フ レーム長 ビ ッ ト 総数
XC6SLX4 1 794 9360 120 577 2,724,832
XC6SLX9 2 2028 37440 200 897 2,724,832
XC6SLX16 2 2976 37440 244 1,073 3,713,568