SelectMAP デー タ バ ス のすべての動作は、CCLK に同期 し てい ます。RDWR_B が書 き 込み制御 に設定 さ れてい る 場合 (RDWR_B = 0、 コ ン フ ィ ギ ュ レーシ ョ ン)、FPGA は SelectMAP デー タ ピ ン を CCLK の立ち上が り エ ッ ジでサンプル し ます。RDWR_B が読み出 し 制御に設定 さ れてい る 場 合 (RDWR_B = 1、 リ ー ド バ ッ ク)、FPGA は SelectMAP デー タ ピ ン を CCLK の立ち上が り エ ッ ジで更新 し ます。
ス レーブ SelectMAP モー ド では、CCLK を停止す る こ と に よ っ て コ ン フ ィ ギ ュ レーシ ョ ン を中断 で き ます (39ページの 「SelectMAP デー タ の不連続読み込み」 参照)。
SelectMAP デー タ の連続読み込み
デー タ の連続読み出 し は、 コ ン フ ィ ギ ュ レ ーシ ョ ン コ ン ト ロ ー ラ ーか ら コ ン フ ィ ギ ュ レ ーシ ョ ン デー タ ス ト リ ーム を中断な く 供給可能なアプ リ ケーシ ョ ンで実行 さ れます。 電源投入後、 コ ン フ ィ ギ ュ レ ー シ ョ ン コ ン ト ロ ー ラ ーは、RDWR_B 信号 を 書 き 込み制御 (RDWR_B = 0) に設定 し 、 CSI_B 信号を アサー ト (CSI_B = 0) し て、 デバ イ ス の BUSY を Low 駆動 さ せます (こ の遷移は非 同期)。CSI_B が ア サー ト さ れ る 前に RDWR_B を Low 駆動す る 必要が あ り 、 そ う し な け れば ABORT が発生 し ます。 (155ページの 「SelectMAP の ABORT」 参照)。
デバ イ ス は、CCLK の次の立ち上が り エ ッ ジでデー タ ピ ンのサンプ リ ン グ を開始 し ます。 コ ン フ ィ ギ ュ レーシ ョ ンでは、バス幅が決定す る ま で D[0:15] ピ ンのみがサンプル さ れます。詳細は、78ペー ジの 「同期 ワ ー ド/バ ス幅の自動検出」 を参照 し て く だ さ い。 バ ス 幅が決定す る と 、 同期幅を検出 す る ために適切な幅のデー タ バ ス がサンプル さ れます。 同期ワ ー ド がデバ イ ス に伝搬 さ れた後、 コ ン フ ィ ギ ュ レーシ ョ ンが開始 し ます。
コ ン フ ィ ギ ュ レーシ ョ ンビ ッ ト ス ト リ ーム の読み込み後に、 デバ イ ス は ス タ ー ト ア ッ プ シーケ ン ス を開始 し ます。デバ イ ス は、ビ ッ ト ス ト リ ームで指定 さ れた ス タ ー ト ア ッ プシーケ ン ス で、DONE 信号を High にアサー ト し ます (第 5 章の 「ス タ ー ト ア ッ プ (手順 8)」参照)。 コ ン フ ィ ギ ュ レーシ ョ
る 必要があ り ます。(DONE が High にな っ た後で も 、CCLK 信号が数サ イ ク ル必要な場合があ り ます (第 5 章の 「ス タ ー ト ア ッ プ (手順 8)」 参照)。
CSI_B お よ び RDWR_B 信号は、 コ ン フ ィ ギ ュ レーシ ョ ン後にデ ィ アサー ト で き ますが、 アサー ト し た ま ま で も か ま い ま せ ん。SelectMAP ポ ー ト が ア ク テ ィ ブ で な く な っ て い る た め、 こ こ で RDWR_B を ト グル し て も ABORT は生 じ ません。図2-8 に、SelectMAP コ ン フ ィ ギ ュ レーシ ョ ン におけ る 連続的なデー タ 読み出 し の タ イ ミ ン グ を示 し ます。
図2-8 について説明 し ます。
1. SelectMAP バ ス にデバ イ ス が 1 つ し かない場合、CSI_B 信号を Low に接続で き ます。CSI_B が Low に接続 さ れていない と き は、 随時アサー ト 可能です。
2. リ ー ド バ ッ ク が不要な場合は RDWR_B を Low に接続で き ます。CSI_B がアサー ト さ れた後、
RDWR_B を ト グル し ない よ う に し て く だ さ い。 ト グルす る と ABORT が生 じ ます。 詳細は、
155ページの 「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 信号はデ ィ アサー ト で き ます。
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)
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 が生 じ ます。 詳細は、
155ページの 「SelectMAP の ABORT」を参照 し て く だ さ い。CSI_B は、 同期 ワー ド の途中で デ ィ アサー ト で き ません。
2. INIT_B が High に ト グルす る と 、 デバ イ ス は コ ン フ ィ ギ ュ レーシ ョ ン可能な状態 と な り ます。
3. ユーザーが CSI_B 信号を Low にアサー ト し て SelectMAP バ ス を有効に し ます。SelectMAP バス にデバ イ ス が 1 つ し かない場合、CSI_B 信号を Low に接続で き ます。CSI_B が Low に接 続 さ れていない と き は、 随時アサー ト 可能です。
4. CCLK の立ち上が り エ ッ ジで 1 バ イ ト が読み込まれます。デー タバ ス幅は x8 ま たは x16 が可 能です。
5. CCLK の立ち上が り エ ッ ジで 1 バ イ ト が読み込まれます。
6. ユーザーが CSI_B をデ ィ アサー ト し 、 こ のバ イ ト は無視 さ れます。
7. ユーザーが CSI_B をデ ィ アサー ト し 、 こ のバ イ ト は無視 さ れます。
8. CCLK の立ち上が り エ ッ ジで 1 バ イ ト が読み込まれます。
9. CCLK の立ち上が り エ ッ ジで 1 バ イ ト が読み込まれます。
10. CSI_B
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)
12. CCLK の立ち上が り エ ッ ジで 1 バ イ ト が読み込まれます。
13. CCLK の立ち上が り エ ッ ジで 1 バ イ ト が読み込まれます。
図2-10 について説明 し ます。
1. CSI_B がデ ィ アサー ト さ れてい る 間、 デー タ ピ ンはハ イ イ ン ピーダ ン ス状態です。 デー タバ ス は x8 ま たは x16 が可能です。
2. CSI_B がデ ィ アサー ト さ れてい る 間、RDWR_B はデバ イ ス に影響を与え ません。
3. ユーザーが CSI_B を アサー ト し ます。デバ イ ス は、CCLK の立ち上が り エ ッ ジで コ ン フ ィ ギ ュ レーシ ョ ンデー タ の読み込みを開始 し ます。
4. CCLK の立ち上が り エ ッ ジで 1 バ イ ト が読み込まれます。
5. CCLK の立ち上が り エ ッ ジで 1 バ イ ト が読み込まれます。
6. CCLK の立ち上が り エ ッ ジで 1 バ イ ト が読み込まれます。
SelectMAP のデー タ 順
通常、SelectMAP コ ン フ ィ ギ ュ レーシ ョ ンは、 マ イ ク ロ プ ロ セ ッ サ ま たは CPLD にあ る ユーザー アプ リ ケーシ ョ ン を使用 し て駆動す る か、 場合に よ っ ては、 その他の FPGA デバ イ ス を使用 し て駆 動 し ま す。 こ れ ら のアプ リ ケーシ ョ ン では、 コ ン フ ィ ギ ュ レーシ ョ ン デー タ フ ァ イ ル内のデー タ 順 と FPGA で予測 さ れ る デー タ 順の対応関係を理解 し てお く 必要があ り ます。
SelectMAP x8 モー ド の場合、CCLK の 1 サ イ ク ルで 1 バ イ ト の コ ン フ ィ ギ ュ レーシ ョ ンデー タ が 読み込まれ、 各バ イ ト の MSB は D0 ピ ンに現れます。D0 = MSB、D7 = LSB と い う 規則は、 その 他のデバ イ ス が採用 し てい る も の と は異な り ま す。x16 モー ド の場合は、81ページの 「パ ラ レ ル バ ス の ビ ッ ト 順」 を参照 し て く だ さ い。 こ の規則の違いが、 カ ス タ ム コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ュ ーシ ョ ン を 設計す る 際に混乱の元 と な る こ と が あ り ま す。表2-4 に、16 進数値0xABCDを SelectMAP デー タ バ ス に読み込む方法を示 し ます。
こ の よ う な一般的な規則 と 異な る デー タ 順で も 問題な く 扱え る アプ リ ケーシ ョ ン も あ り ますが、 そ う でない場合は、 ソ ース コ ン フ ィ ギ ュ レーシ ョ ンデー タ フ ァ イ ルを ビ ッ ト ス ワ ッ プ し て、 デー タ
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 モー ド のデー タピ ンです。
ス ト リ ームの各バ イ ト 内のビ ッ ト 順を逆に し た方が扱いやす く な る こ と があ り ます。 こ の よ う なア プ リ ケーシ ョ ン用に、 ザ イ リ ン ク ス の PROM フ ァ イ ル生成 ソ フ ト ウ ェ アでは、 ビ ッ ト ス ワ ッ プ し た PROM フ ァ イ ルが生成可能です (77ページの「 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルの形式」参照)。 表2-5 に、 FPGA の x8 お よ び x16 モー ド でのビ ッ ト 順序を示 し ます。
SPI コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ー フ ェ イ ス
マ ス タ ーシ リ アルペ リ フ ェ ラ ルイ ン タ ーフ ェ イ ス (SPI) (図2-11 参照) では、SPI シ リ アルフ ラ ッ シ ュ を使用 し て コ ン フ ィ ギ ュ レーシ ョ ン デー タ を格納で き ます。Spartan-6 FPGA は、 接続 さ れて い る 業界標準の SPI シ リ アル フ ラ ッ シ ュ PROM か ら 直接 コ ン フ ィ ギ ュ レーシ ョ ン さ れ ます。SPI は標準の 4 線式 イ ン タ ーフ ェ イ ス ですが、 さ ま ざ ま な利用可能の SPI フ ラ ッ シ ュ メ モ リ で多様な 読み出 し コ マ ン ド お よ びプ ロ ト コ ルが使用 さ れてい ます。図2-12 は、 デー タ 幅が x1 ま たは x2 の SPI コ ン フ ィ ギ ュ レ ーシ ョ ン の接続を示 し た も のです。x2 デバ イ ス では、D ピ ン が多目的ピ ン の デー タ 入出力ピ ン と し て使用 さ れ る ので、x1 モー ド の場合 と 接続は同様です。46ページの図2-13 に SPI x4 の接続を示 し ます。デー タ ピ ン を 2 つ追加 し て 4 ビ ッ ト のデー タ イ ン タ ーフ ェ イ ス と し てい ます。デ イ ジーチ ェーン コ ン フ ィ ギ ュ レーシ ョ ンは、SPI x1 モー ド でのみ利用で き ます。表2-5 に、 マ ス タ ー SPI モー ド での SPI フ ラ ッ シ ュ PROM と の接続に使用す る FPGA ピ ン を示 し ます。
iMPACT プ ロ グ ラ ミ ン グ ソ フ ト ウ ェ アには、 間接プ ロ グ ラ ム を使用 し て SPI シ リ アルフ ラ ッ シ ュ を プ ロ グ ラ ム す る 機能 が あ り ま す。 こ れ に よ り 、iMPACT ソ フ ト ウ ェ ア と SPI フ ラ ッ シ ュ を Spartan-6 デバ イ ス経由で接続す る 新 し い FPGA デザ イ ンがダ ウ ン ロ ー ド さ れます。 以前の FPGA メ モ リ の 内 容 は 失 わ れ ま す。 サ ポ ー ト さ れ て い る SPI フ ラ ッ シ ュ デ バ イ ス の リ ス ト は、
http://japan.xilinx.com/support/documentation/sw_manuals/xilinx11/isehelp_start.htm で
ISE® ソ フ ト ウ ェ アのヘルプ を開 き 、 「デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ンお よ びプ ロ グ ラ ム」の下 にあ る iMPACT ヘルプか ら 「SPI ま たは BPI フ ラ ッ シ ュ メ モ リ の間接プ ロ グ ラ ムの概要」を参照 し て く だ さ い。
詳細は、 アプ リ ケーシ ョ ン ノ ー ト XAPP974 『Spartan-3A FPGA を使用 し た SPI シ リ アルフ ラ ッ シ ュ PROM の間接プ ロ グ ラ ム』 を参照 し て く だ さ い。
表 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 1 1
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