SelectMAP デー タ バ ス のすべての動作は、CCLK に同期 し てい ます。RDWR_B が書 き 込みに設定 さ れてい る 場合 (RDWR_B =0、 コ ン フ ィ ギ ュ レーシ ョ ン)、FPGA は SelectMAP デー タ ピ ン を
CCLK エ ッ ジの立ち上が り でサンプ リ ン グ し ます。RDWR_B が読み出 し に設定 さ れてい る 場合 (RDWR_B =1、 リ ー ド バ ッ ク)、FPGA は SelectMAP デー タ ピ ン を CCLK エ ッ ジの立ち上が り で 更新 し ます。
ス レーブ SelectMAP モー ド では、CCLK を停止す る こ と に よ っ て コ ン フ ィ ギ ュ レーシ ョ ン を中断 で き ます (36 ページの 「断続的な SelectMAP デー タ の読み出 し 」 を参照)。
継続的な SelectMAP デー タ の読み込み
継続的なデー タ 読み出 し は、 コ ン フ ィ ギ ュ レーシ ョ ン コ ン ト ロ ー ラ か ら 連続 し た コ ン フ ィ ギ ュ レー シ ョ ン デー タ ス ト リ ームが供給 さ れ る アプ リ ケーシ ョ ン で実行 さ れます。 電源投入後、 コ ン フ ィ ギ ュ レーシ ョ ン コ ン ト ロ ー ラ に よ り 、RDWR_B 信号が書 き 込み (RDWR_B =0) に設定 さ れ、
CSI_B 信号がアサー ト (CSI_B =0) さ れ る と 、デバ イ ス は BUSY 信号を Low に駆動す る よ う にな り ます (こ の遷移は非同期)。RDWR_B を CSI_B のアサー ト 前に Low 駆動 し ない と ABORT が発 生 し ます (144 ページの 「SelectMAP の ABORT」 を参照)。
デバ イ ス は、CCLK の次の立ち上が り エ ッ ジで、デー タ ピ ンのサンプ リ ン グ を開始 し ます。コ ン フ ィ ギ ュ レーシ ョ ンに よ り 、バス幅が決定す る ま で D[0:15] の ピ ンがサンプル さ れます。詳細は、74 ペー ジの 「同期 ワー ド/バ ス幅の自動検出」を参照 し て く だ さ い。 バ ス幅が決定す る と 、 デー タバ ス の適 切な幅が同期 ワー ド 検出のためにサンプル さ れます。 同期 ワー ド がデバ イ ス に送信 さ れた後、 コ ン フ ィ ギ ュ レーシ ョ ンが開始 し ます。
コ ン フ ィ ギ ュ レーシ ョ ンビ ッ ト ス ト リ ームの読み込み後に、デバ イ ス は ス タ ー ト ア ッ プシーケ ン ス を開始 し ます。 デバ イ ス は、 ビ ッ ト ス ト リ ームで指定 さ れた ス タ ー ト ア ッ プシーケ ン ス で、DONE 信号を High にアサー ト し ます (第 5 章の 「ス タ ー ト ア ッ プ (手順 8)」 を参照)。 コ ン フ ィ ギ ュ レー シ ョ ン コ ン ト ロ ー ラ は、 ス タ ー ト ア ッ プシーケ ン ス完了後ま で CCLK パルス を送信 し 続け る 必要 があ り ます (DONE が High にな っ た後、CCLK は数パルス必要です。 詳細は第 5 章の 「ス タ ー ト ア ッ プ (手順 8)」 を参照 し て く だ さ い)。
コ ン フ ィ ギ ュ レーシ ョ ン後に CSI_B お よ び RDWR_B 信号をデ ィ アサー ト で き ます。ま た、アサー ト 状態の保持 も 可能です。SelectMAP ポー ト が非ア ク テ ィ ブであ る ため、 こ の と き に RDWR_B を ト グル し て も ABORT は生 じ ません。図 2-8 は、 継続的なデー タ 読み出 し の SelectMAP コ ン フ ィ ギ ュ レーシ ョ ンの タ イ ミ ン グ図です。
X-Ref Target - Figure 2-8
図 2-8 : 継続的なデー タ 読み込みの x8 または x16 SelectMAP PROGRAM_B
INIT_B
CCLK
CSI_B
RDWR_B
D[0:n]
UG380_c2_08_042909
Byte 0 Byte 1 Byte n
DONE (1)
(2)
(3)
(4) (5)
(6) (7) (8) (9)
(10) (11)
(12)
次は、図 2-8 に関す る 注記です。
1. SelectMAP バ ス にデバ イ ス が 1 つ し かない場合、CSI_B 信号を Low に接続で き ます。CSI_B
が Low でない場合は、 常時アサー ト 可能です。
2. リ ー ド バ ッ ク が不要な場合は RDWR_B を Low に接続で き ます。CSI_B がアサー ト さ れた後、
RDWR_B を ト グル し ない よ う に し て く だ さ い。 ト グルす る と ABORT が生 じ ます。 詳細は、
144 ページの 「SelectMAP の ABORT」を参照 し て く だ さ い。
3. モー ド ピ ンは、 INIT_B が High にな っ た と き にサンプル さ れます。
4. ABORT を回避す る ため、CSI_B よ り 前に RDWR_B を アサー ト す る 必要があ り ます。
5. CSI_B を アサー ト し て SelectMAP イ ン タ ーフ ェ イ ス を有効に し ます。
6. CSI_B のアサー ト 後の最初の CCLK の立ち上が り エ ッ ジで、最初のバ イ ト が読み込まれます。
7. 各 CCLK の立ち上が り エ ッ ジで 1 バ イ ト の コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ームが読み 込まれます。
8. ス タ ート アッ プコ マンド が読み込ま れる と 、 デバイ ス はス タ ート アッ プシーケンス を 開始し ま す。
9. ス タ ー ト ア ッ プシーケ ン ス は、 最低で も CCLK の 8 サ イ ク ル間継続 さ れます (第 5 章の 「ス タ ー ト ア ッ プ (手順 8)」 を参照)。
10.ス タ ー ト ア ッ プシーケ ン ス中、DONE ピ ンは High にな り ます。 ス タ ー ト ア ッ プシーケ ン ス を 完了す る ために追加の CCLK が必要な場合があ り ます (第 5 章の 「ス タ ー ト ア ッ プ (手順 8)」 を参照)。
11. コ ン フ ィ ギ ュ レーシ ョ ン完了後、CSI_B 信号はデ ィ アサー ト で き ます。
12. CSI_B 信号をデ ィ アサー ト し た後、RDWR_B はデ ィ アサー ト で き ます。
13.デー タ バ ス のサ イ ズは x8 ま たは x16 です。
断続的な SelectMAP デー タ の読み出 し
コ ン フ ィ ギ ュ レーシ ョ ン コ ン ト ロ ー ラ が連続す る コ ン フ ィ ギ ュ レーシ ョ ン デー タ を提供で き ない アプ リ ケーシ ョ ンでは、 断続的なデー タ の読み出 し を実行 し ます。 た と えば、 コ ン ト ロ ー ラ が追加 デー タ を フ ェ ッ チす る 間、 コ ン フ ィ ギ ュ レーシ ョ ン を一時停止す る 必要があ る アプ リ ケーシ ョ ンが
こ れに該当 し ます。
コ ン フ ィ ギ ュ レーシ ョ ン を一時停止 さ せ る 方法は 2 つあ り ます。1 つは CSI_B 信号をデ ィ アサー ト す る 方法 (フ リ ー ラ ン ニ ン グ CCLK 手法、図 2-9) で、 も う 1 つは、CCLK を停止す る 方法 (制御 CCLK 手法、図 2-10) です。
次は、図 2-9 に関す る 注記です。
1. RDWR_B を Low に駆動 し 、D[0:n] ピ ン を コ ン フ ィ ギ ュ レーシ ョ ンの入力 と し て設定 し ます。
リ ー ド バ ッ ク が不要な場合は RDWR_B を Low に接続で き ます。CSI_B がアサー ト さ れた後、
RDWR_B を ト グル し ない よ う に し て く だ さ い。 ト グルす る と ABORT が生 じ ます。 詳細は、
144 ページの 「SelectMAP の ABORT」を参照 し て く だ さ い。
2. INIT_B が High を ト グルす る と 、 デバ イ ス は コ ン フ ィ ギ ュ レーシ ョ ン可能な状態です。
3. CSI_B 信号を Low にアサー ト し て SelectMAP バ ス を有効に し ます。SelectMAP バ ス にデバ イ ス が 1 つ し かない場合は、CSI_B 信号を Low に接続で き ます。CSI_B が Low に接続 さ れてい ない と き は、 常時アサー ト 可能です。
4. バ イ ト は CCLK の立ち上が り エ ッ ジで読み込まれます。デー タバ ス のサ イ ズは x8 ま たは x16 です。
5. バ イ ト は CCLK の立ち上が り エ ッ ジで読み込まれます。
6. ユーザーが CSI_B をデ ィ アサー ト し 、 バ イ ト は無視 さ れます。
7. ユーザーが CSI_B をデ ィ アサー ト し 、 バ イ ト は無視 さ れます。
8. バ イ ト は CCLK の立ち上が り エ ッ ジで読み込まれます。
9. バ イ ト は CCLK の立ち上が り エ ッ ジで読み込まれます。
10.ユーザーが CSI_B をデ ィ アサー ト し 、 バ イ ト は無視 さ れます。
11.バ イ ト は CCLK の立ち上が り エ ッ ジで読み込まれます。
12.バ イ ト は CCLK の立ち上が り エ ッ ジで読み込まれます。
13.バ イ ト は CCLK の立ち上が り エ ッ ジで読み込まれます。
X-Ref Target - Figure 2-9
図 2-9 : フ リ ー ラ ン ニ ング CCLK 手法を使用 し た断続的 SelectMAP デー タ の読み出 し PROGRAM_B
INIT_B
CCLK
CSI_B
RDWR_B DATA[0:n]
UG380_c2_09_042909
(2)
(4) (5) (6) (7) (8) (9) (10) (11) (12) (13)
(1)
(3)
次は、図 2-10 に関す る 注記です。
1. CSI_B がデ ィ アサー ト さ れてい る 間、 デー タ ピ ンはハ イ イ ン ピーダ ン ス の状態にな っ てい ま す。 デー タ バ ス のサ イ ズは x8 ま たは x16 です。
2. CSI_B がデ ィ アサー ト さ れてい る 間、RDWR_B はデバ イ ス に影響を与え ません。
3. ユーザーが CSI_B を アサー ト し ます。デバ イ ス は、CCLK の立ち上が り エ ッ ジで コ ン フ ィ ギ ュ レーシ ョ ン デー タ の読み込みを開始 し ます。
4. バ イ ト は CCLK の立ち上が り エ ッ ジで読み込まれます。
5. バ イ ト は CCLK の立ち上が り エ ッ ジで読み込まれます。
6. バ イ ト は CCLK の立ち上が り エ ッ ジで読み込まれます。
SelectMAP デー タ の順序
通常、SelectMAP コ ン フ ィ ギ ュ レーシ ョ ンは、マ イ ク ロ プ ロ セ ッ サ ま たは CPLD にあ る ユーザーア プ リ ケーシ ョ ン を使用 し て駆動す る か、 場合に よ っ ては、 別の FPGA デバ イ ス を使用 し て駆動 し ま す。 こ れ ら のアプ リ ケーシ ョ ンでは、 コ ン フ ィ ギ ュ レーシ ョ ン デー タ フ ァ イ ル内のデー タ 順序 と FPGA が期待す る デー タ 順序が ど の よ う な関係であ る かを認識す る 必要があ り ます。
SelectMAP x8 モー ド の場合、CCLK の 1 サ イ ク ルで 1 バ イ ト の コ ン フ ィ ギ ュ レーシ ョ ンデー タ が 読み込まれ、 各バ イ ト の MSB は D0 ピ ンに出力 さ れます。D0 = MSB、D7 = LSB と い う 規則は、
その他のデバ イ ス には適用 さ れません。x16モー ド の場合は、76 ページの 「パ ラ レルバ ス のビ ッ ト 順序」を参照 し て く だ さ い。 こ の規則は、 カ ス タ ム コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ュ ーシ ョ ン を設計 す る と き に誤解を招 く こ と があ り ます。表 2-4 は、16 真数値0xABCDが ど の よ う に SelectMAP デー
タバ ス に読み込まれ る か を示 し た も のです。
不規則なデー タ を問題な く 使用で き る アプ リ ケーシ ョ ン も あ り ますが、 その他のアプ リ ケーシ ョ ン では、 ソ ース コ ン フ ィ ギ ュ レーシ ョ ン デー タ フ ァ イ ルを ビ ッ ト ス ワ ッ プ さ せ る と (デー タ ス ト リ ームの各バ イ ト 内のビ ッ ト の順序を逆にす る と)、 使用 し やす く な り ます。 こ の よ う なアプ リ ケー シ ョ ン用に、 ザ イ リ ン ク ス の PROM フ ァ イ ル生成 ソ フ ト ウ ェ アでは、 ビ ッ ト ス ワ ッ プ し た PROM フ ァ イ ルが生成で き ます (72 ページの 「 コ ン フ ィ ギ ュ レーシ ョ ンデー タ フ ァ イ ル」 を参照)。
X-Ref Target - Figure 2-10
図 2-10 : CCLK を制御する手法を使用 し た断続的 SelectMAP デー タ の読み出 し CCLK
CSI_B
RDWR_B DATA[0:n]
UG380_c2_10_042909
Byte 0 Byte 1 Byte n
(1)
(2) (3)
(4) (5) (6)
表 2-4 : SelectMAP 8 ビ ッ ト モー ド のビ ッ ト 順序
CCLK サイ ク ル 16 進数 D0 D1 D2 D3 D4 D5 D6 D7
1 0xAB 1 0 1 0 1 0 1 1
2 0xCD 1 1 0 0 1 1 0 1
メ モ :
1. D[0:7] は SelectMAP モー ド のデー タ ピ ンです。
表 2-5 は 8 ビ ッ ト お よ び 16 ビ ッ ト のビ ッ ト 順序を示 し てい ます。
SPI コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ー フ ェ イ ス
マ ス タ シ リ アル ペ リ フ ェ ラ ル イ ン タ ーフ ェ イ ス (SPI) (図 2-11 参照) では SPI シ リ アル フ ラ ッ シ ュ を使用 し て コ ン フ ィ ギ ュ レーシ ョ ンデー タ を格納で き ます。Spartan-6 FPGA は、接続 さ れてい る 業界標準の SPI シ リ アルフ ラ ッ シ ュ PROM か ら 直接 コ ン フ ィ ギ ュ レーシ ョ ン さ れます。SPI は 標準の信号線 4 本での書 き 込み イ ン タ ーフ ェ イ ス ですが、さ ま ざ ま な SPI フ ラ ッ シ ュ メ モ リ でいろ いろ な読み出 し コ マ ン ド お よ びプ ロ ト コ ルが使用 さ れてい ます。図 2-12 は、 デー タ 幅が x1 ま たは x2 の SPI コ ン フ ィ ギ ュ レーシ ョ ンの接続を示 し た も のです。x2 フ ラ ッ シ ュデバ イ ス では D ピ ンが 多目的ピ ンのデー タ 入出力ピ ン と し て使用 さ れ る ので、 こ れ ら の接続は同 じ です。SPI x4 の接続は 43 ページの図 2-13 に示 し て あ り ます。2 つの追加デー タ ピ ン で 4 ビ ッ ト のデー タ イ ン タ ーフ ェ イ ス を提供 し てい ます。 デ イ ジーチ ェーンの コ ン フ ィ ギ ュ レーシ ョ ンモー ド は SPI x1 モー ド でのみ 使用可能です。 マ ス タ SPI モー ド の SPI フ ラ ッ シ ュ PROM の FPGA ピ ンの接続は、表 2-5 に リ ス
ト さ れてい ます。
iMPACT プ ロ グ ラ ミ ン グ ソ フ ト ウ ェ アには、 イ ン ダ イ レ ク ト プ ロ グ ラ ミ ン グ を使用 し て SPI シ リ アルフ ラ ッ シ ュ をプ ロ グ ラ ムす る 機能があ り ます。こ の機能は、Spartan-6デバ イ ス を介 し た SPI フ ラ ッ シ ュ と iMPACT ソ フ ト ウ ェ アの接続を提供す る 新 し い FPGA デザ イ ン を ダ ウ ン ロ ー ド し ま す。古い FPGA メ モ リ 内容は消去 さ れます。サポー ト さ れてい る SPI フ ラ ッ シ ュデバ イ ス の リ ス ト は、 http://japan.xilinx.com/support/documentation/sw_manuals/xilinx11/isehelp_start.htm で ISE ソ フ ト ウ ェ アのヘルプ を開 き 、 「デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ンお よ びプ ロ グ ラ ム」 の下にあ る iMPACT ヘルプか ら 「SPI ま たは BPI フ ラ ッ シ ュ メ モ リ の間接的プ ロ グ ラ ムの概要」 を参照 し て く だ さ い。
詳細は、『Indirect Programming of SPI Serial Flash PROMs with Spartan-3A FPGAs』 (XAPP974) を 参照 し て く だ さ い。
表 2-5 : Spartan-6 FPGA ビ ッ ト 順序
モー ド ピ ン
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
x16 8 9 1
0 11 1 2
1 3
1 4
1
5 0 1 2 3 4 5 6 7
x8 0 1 2 3 4 5 6 7
X-Ref Target - Figure 2-11
図 2-11 : Spartan-6 FPGA SPI コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ー フ ェ イ ス DONE
CCLK PROGRAM_B INIT_B DIN M[1:0]
UG380_c2_11_051909
MOSI CSO_B