• 検索結果がありません。

UltraScale FPGA での SPI コンフィギュレーションおよびフラッシュ プログラミング (XAPP1233)

N/A
N/A
Protected

Academic year: 2021

シェア "UltraScale FPGA での SPI コンフィギュレーションおよびフラッシュ プログラミング (XAPP1233)"

Copied!
39
0
0

読み込み中.... (全文を見る)

全文

(1)

概要

こ のアプ リ ケーシ ョ ン ノ ー ト では、 UltraScale™ FPGA のマ ス タ ー シ リ アル ペ リ フ ェ ラ ル イ ン ターフ ェ イ ス (SPI)、 4 ビ ッ ト データ パス (x4 ま たは ク ワ ッ ド ) コ ン フ ィ ギ ュ レーシ ョ ン モー ド について説明 し ます。 x4 モー ド を推奨 し ますが、 必要 に応 じ て、 x4 モー ド か ら 1 ビ ッ ト のデー タ パ ス (x1) モー ド お よ び 2 ビ ッ ト のデー タ パス (x2) モー ド に簡単に変更で き ま す。 こ のアプ リ ケーシ ョ ン ノ ー ト では、 デザ イ ンのデザ イ ンの最初の起動段階で SPI コ ン フ ィ ギ ュ レーシ ョ ン と コ ン フ ィ ギ ュ レ ーシ ョ ン デバ ッ グ を問題な く 完了 さ せ る ために役立つマ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ンの基本について説明 し ます。

こ こ では、Vivado® Design Suite 統合設計環境 (IDE) やコ マン ド ラ イ ンか ら 使用で き る Tcl フ ロ ーを使用 し て、SPI コ ン フ ィ ギ ュ レーシ ョ ンのビ ッ ト ス ト リ ーム を生成 し 、 こ のビ ッ ト ス ト リ ーム を SPI メ モ リ デバ イ ス にプ ロ グ ラ ムする手順につい て も 説明 し ます。 SPI メ モ リ デバ イ ス と マ ス タ ー SPI x4 に必要な FPGA 間の接続サンプル一式 も 提供 さ れます。

は じ めに

UltraScale FPGA のマ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ン モー ド では、 ピ ン数の少ない コ ン フ ィ ギ ュ レーシ ョ ン オプシ ョ ン が可能です。 UltraScale FPGA は、 コ ン フ ィ ギ ュ レーシ ョ ン バン ク (バン ク 0) に 4 つの専用デー タ ピ ンがあ る ため、 ク ワ ッ ド SPI フ ラ ッ シ ュ規格に準拠する ク ワ ッ ド SPI シ リ アル NOR フ ラ ッ シ ュ デバ イ ス を介 し て中速の コ ン フ ィ ギ ュ レー シ ョ ンに対応で き ます。

ザ イ リ ン ク ス では、 ボー ド を x4 幅向けに レ イ ア ウ ト し て、 コ ン フ ィ ギ ュ レーシ ョ ン時間を x1 マ ス ター SPI の 4 分の 1 に 短縮す る こ と を推奨 し ます。 SPI x4 のすべてのピ ンは専用のバン ク 0 にあ る ため、 x4 の利用に よ っ てユーザー I/O ピ ンが さ ら に使用 さ れ る こ と はあ り ません。 x1 幅お よび x2 幅がサポー ト さ れてお り 、 こ のアプ リ ケーシ ョ ン ノ ー ト で示すよ う に x4 のケース か ら 簡単に変更で き ます。UltraScale FPGA では、 2 つの ク ワ ッ ド SPI を並列に使用する こ と で よ り 高速な コ ン フ ィ ギ ュ レーシ ョ ン を可能にす る マ ス タ ー SPI デ ュ アル ク ワ ッ ド モー ド も 導入 し てい ます。 デュ アル ク ワ ッ ド SPI コ ン フ ィ ギ ュ レーシ ョ ンの詳細は、 こ のアプ リ ケーシ ョ ン ノ ー ト では扱い ません。 x8 モー ド の詳細は、 『UltraScale アーキテ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 1] を参照 し て く だ さ い。

フ ラ ッ シ ュ の イ ン シ ス テ ム プ ロ グ ラ ムは、 Vivado Design Suite で可能です。 Vivado Design Suite は、 間接プ ロ グ ラ ム と 呼ば れ る よ う に、UltraScale FPGA の コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム を JTAG を経由で SPI フ ラ ッ シ ュ にプ ロ グ ラ ム で き ます。 Vivado Design Suite は、 最大の UltraScale FPGA のビ ッ ト ス ト リ ーム を複数個格納する のに十分な容量の メ モ リ で広範な SPI フ ラ ッ シ ュ集積度をサポー ト し ます。 コ ン フ ィ ギ ュ レーシ ョ ン後は、 追加の格納領域に イ ン タ ーコ ネ ク ト ロ ジ ッ ク に追加 さ れたエンベデ ッ ド SPI コ ン ト ロ ー ラ ーを介 し てア ク セ ス で き ます。図 1 に、 間接プ ロ グ ラ ム フ ロ ー と コ ン フ ィ ギ ュ レーシ ョ ン シーケ ン ス の概略図を示 し ます。 XAPP1233 (v1.0) 2015 年 5 月 29 日

UltraScale FPGA での SPI  コ ン フ ィ ギ ュ

レーシ ョ ンおよび フ ラ ッ シ ュ プ ログ

ラ ミ ン グ

(2)

プ ロ セ ス フ ロ ーの概要を次に示 し ます。

1. SPI フ ラ ッ シ ュ はボー ド 上にあ り 、 タ ーゲ ッ ト FPGA の コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス と 直接接続 さ れて い ます。 こ のボー ド は、 ザ イ リ ン ク ス プ ラ ッ ト フ ォーム ケーブル USB II ま たは Digilent プ ロ グ ラ ミ ン グ モジ ュール な ど のプ ロ グ ラ ミ ン グ ケーブルを介 し て ローカル ワー ク ス テーシ ョ ンに接続 さ れます。

2. Vivado Design Suite は、 ロ ーカル ワ ー ク ス テーシ ョ ン に イ ン ス ト ール さ れてお り 、 間接プ ロ グ ラ ム ビ ッ ト ス ト リ ーム を含みます。 SPI フ ラ ッ シ ュへプ ロ グ ラ ム さ れ る最終的な ビ ッ ト ス ト リ ームに も ア ク セ ス で き ます。

3. Vivado Design Suite のハー ド ウ ェ ア マネージ ャ ーを用いて、 タ ーゲ ッ ト の UltraScale FPGA を間接プ ロ グ ラ ム ビ ッ ト ス ト リ ーム で コ ン フ ィ ギ ュ レーシ ョ ン し ます。 その後、 Vivado Design Suite で、 間接プ ロ グ ラ ム ビ ッ ト ス ト リ ーム を 通 じ て、 JTAG 接続を介し SPI フ ラ ッ シ ュ を タ ーゲ ッ ト ビ ッ ト ス ト リ ームでプ ロ グ ラ ム し ます。

4. こ れで、 SPI フ ラ ッ シ ュ が タ ーゲ ッ ト ビ ッ ト ス ト リ ームに よ っ てプ ロ グ ラ ム さ れたので、 UltraScale FPGA は、 PROGRAM_B のアサー ト 後に SPI フ ラ ッ シ ュ か ら 直接 コ ン フ ィ ギ ュ レーシ ョ ン さ れ ます。 あ る いは、 マ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ン モー ド に合わせてモー ド ピ ン を設定 し てい る場合は、 電源を入れ直 し ます。

UltraScale FPGA は、SPI fast read コ マ ン ド お よ び SPI quad output fast read コ マ ン ド を サポー ト す る シ リ アル NOR フ ラ ッ シ ュ メ モ リ か ら デバ イ ス自身を コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 こ の コ ン フ ィ ギ ュ レーシ ョ ン モー ド は、 ユーザー I/O ピ ン を必要 と せずに、シ ンプルで信頼で き る コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ューシ ョ ンです。こ のモー ド は x4 幅の コ ン フ ィ ギ ュ レーシ ョ ン イ ン ターフ ェ イ ス であ る ため、 中速の コ ン フ ィ ギ ュ レーシ ョ ンに対応で き ます。 コ ン フ ィ ギ ュ レーシ ョ ン時間 の短縮が必要な場合は、 ス レーブ SelectMAP (x8、 x16、 x32)、 マ ス タ ー BPI (x16)、 マ ス タ ー SPI x8 (2 つの SPI フ ラ ッ シ ュ デバ イ ス を並列に使用) な ど、ほかの コ ン フ ィ ギ ュ レーシ ョ ン オプシ ョ ン を検討し て く だ さ い。こ れ ら の コ ン フ ィ ギ ュ レー シ ョ ン モー ド の詳細は、 『UltraScale FPGA の BPI コ ン フ ィ ギ ュ レーシ ョ ンおよ びフ ラ ッ シ ュ プ ロ グ ラ ム』 (XAPP1220) [参 照 2] ま たは 『UltraScale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 1] を参照 し て く だ さ い。 コ ン フ ィ ギ ュ レーシ ョ ン時間計算の詳細は、「付録」 を参照 し て く だ さ い。

(3)

SPI フ ラ ッ シ ュ か ら UltraScale FPGA を コ ン フ ィ ギ ュ レーシ ョ ンす る ために必要な大ま かな手順は次の と お り です。 1. SPI と マ ス タ ー SPI ク ワ ッ ド コ ン フ ィ ギ ュ レーシ ョ ン の基本を理解す る - 「SPI の基本」。

2. SPI フ ラ ッ シ ュ を介 し て FPGA コ ン フ ィ ギ ュ レーシ ョ ン用にボー ド を レ イ ア ウ ト す る - 「マ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ン用のボー ド レ イ ア ウ ト 」。

3. Vivado Design Suite に よ り 、 タ ーゲ ッ ト ビ ッ ト ス ト リ ーム を (.bin フ ァ イ ル と し て) 準備す る - 「マ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル」。

4. Vivado Design Suite ハー ド ウ ェ ア マネージ ャ ーを使用 し て、 NOR フ ラ ッ シ ュ を シ ス テ ム内でプ ロ グ ラ ムす る - 「SPI フ ラ ッ シ ュ のプ ロ グ ラ ム」。

5. シ リ アル NOR フ ラ ッ シ ュ か ら ターゲ ッ ト FPGA を コ ン フ ィ ギ ュ レーシ ョ ンする - 「タ ーゲ ッ ト FPGA の コ ン フ ィ ギ ュ レーシ ョ ン」。 こ れ ら の手順の説明が こ のアプ リ ケーシ ョ ン ノ ー ト の主要部分です。「付録」 には次の追加事項が記載 さ れてい ます。 1. プ ロ グ ラ ム時間 2. コ ン フ ィ ギ ュ レーシ ョ ン時間 3. SPI フ ラ ッ シ ュ の選択 4. マ ス タ ー SPI x1、 x2、 およ び x8 5. SPI コ ン フ ィ ギ ュ レーシ ョ ン の生成に関す る 制約 : IDE フ ロ ー 6. デバ ッ グ と ト ラ ブルシ ュ ー ト のガ イ ド ラ イ ン

SPI の基本

UltraScale FPGA でのマ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ン に使用 さ れ る SPI 規格お よ び ク ワ ッ ド SPI 規格のサブセ ッ ト を 基本的な理解は、 正常な コ ン フ ィ ギ ュ レーシ ョ ン を確実に行 う こ と と 、 考え ら れ る コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーの ト ラ ブルシ ュ ー ト に役立ち ます。 実際の SPI 規格は、 メ モ リ やセンサー と 通信する ためのエンベデ ッ ド シ ス テ ムで よ く 使用 さ れ る シ ンプルなチ ッ プ間デー タ リ ン ク です。 こ の ア プ リ ケーシ ョ ン ノ ー ト で x1 幅 と 呼ばれ る 元の形式では、 SPI は、 マ ス タ ー出力、 ス レ ーブ入力 (MOSI) ラ イ ン を介 し てマ ス タ ーか ら コ マ ン ド お よ びア ド レ ス を送信 し 、 マ ス タ ー入力、 ス レーブ出力 (MISO) ラ イ ン を介 し てデー タ を受信す る 全二重モー ド で動作 し ます。 デー タ は SPI ク ロ ッ ク (SCLK) 信号 と 同期 し てお り 、 ス レーブ デバ イ ス は SPI セ レ ク ト (SS#) 信号を介 し て選択 さ れます。図 2 に、 SPI マ ス タ ー と SPI ス レーブ間の x1 イ ン タ ーフ ェ イ ス を示 し ます。

SPI フ ラ ッ シ ュ には上記に示 し た ピ ン以外に も い く つかの ピ ン が あ り 、 特別な機能を制御す る ために使用で き ます。 こ れ ら の ピ ンは SPI フ ラ ッ シ ュ ベン ダーに よ っ て異な り ますが、共通する 2 つの特殊機能ピ ン と し てホール ド ピ ンおよ び書き 込み禁止ピ ンがあ り ます。 ホール ド ピ ンおよ び書き込み禁止ピ ンは、表 1 に示す よ う に、 SPI x4 モー ド では追加のデー タ ピ ン と し て機能 し ます。 こ の表は、 デー タ ピ ン、 な ら びに さ ま ざ ま なベン ダーで一般的に使用 さ れてい る名前を ま と めた X-Ref Target - Figure 2

(4)

(UltraScale FPGA の信号名) ピ ン名 一般的な名前

SCLK CCLK (CCLK) C SCK、 CLK マ ス タ ーに よ っ て ス レーブ ま で

駆動 さ れ る 同期 ク ロ ッ ク 。

SS# RDWR_FCS_B (FCS_B) S# CS# ア ク テ ィ ブ Low の ス レーブ セ レ

ク ト 。

MOSI D00_MOSI (D00_MOSI) DQ0 SI、 IO0、 SIO0、 DI マ ス タ ー出力、 ス レーブ入力。 x2 お よ び x4 出力モー ド では LSB デー タ ビ ッ ト と し て使用。 MISO D01_DIN (D01_DIN) DQ1 SI、 IO1、 SIO1、 DO マ ス タ ー入力、 ス レーブ出力。

W# D02 (D02) DQ2 WP#、 IO2、 SIO2 書 き 込み禁止。 x4 モー ド でデー

タ ピ ン と し て使用。

HOLD# D03 (D03) DQ3 HOLD#、 IO3、 SIO3 デバ イ ス の選択を解除せずに

ホール ド /ポーズ。 x4 モー ド では MSB デー タ ビ ッ ト と し て使用。 注記:

(5)

ス レ ーブのア ド レ ス 0 に有効な UltraScale FPGA コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム があ る 場合、図 3 の波形は、 その ス レーブに よ っ て返 さ れた同期 ワー ド の最初の数ビ ッ ト ま での fast read コ マン ド (0Bh) を示し ます。 こ の read コ マン ド は、 ス レーブ セ レ ク ト ラ イ ンがマ ス ターに よ っ てデ ィ アサー ト さ れ る ま で続行 さ れます。データ は常に最上位ビ ッ ト を か ら 送信 さ れます。

図 3 について説明 し ます。

• ク ロ ッ ク a = 24 ビ ッ ト のア ド レ ス指定の場合は 32 サ イ ク ル、 32 ビ ッ ト のア ド レ ス指定 fast read コ マン ド の場合は 40 サ イ ク ルです。

• ク ロ ッ ク b = fast read コ マン ド の場合、 ク ロ ッ ク a + SPI フ ラ ッ シ ュ に よ る ダ ミ ー サ イ ク ル出力の数です。

• ク ロ ッ ク c = ク ロ ッ ク b + ビ ッ ト ス ト リ ーム ヘ ッ ダー バ イ ト の数です。 ビ ッ ト ス ト リ ーム ヘ ッ ダーは、 0xFF と 、 write_bitstream に よ っ て同期 ワ ー ド の前に ビ ッ ト ス ト リ ーム に挿入 さ れた 32 ビ ッ ト ア ド レ ス 幅の検出 ワ ー ド のバ イ

ト 数です。

ク ワ ッ ド  SPI フ ラ ッ シ ュ

x1 幅での ス ループ ッ ト を向上す る ため、 メ モ リ ベン ダーは、 2 本の追加 ラ イ ン をデー タ に使用す る ク ワ ッ ド SPI モー ド を 提供 し てい ます。UltraScale FPGA コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク は、MOSI ラ イ ン を介 し て x1 幅で コ マン ド およ びデー タ を送出で き ます。 その後、 MOSI ラ イ ン と MISO ラ イ ンおよ び 2 本の追加データ ラ イ ン を使用 し て、 x4 幅でデータ を受 信 し ま す。図 4 に こ の イ ン タ ー フ ェ イ ス を 示 し ま す。 こ の図では、 マ ス タ ー と ス レ ーブの ピ ン 名を 変更 し て、 UltraScale FPGA お よ び N25Q256A の名前に対応 さ せてい ます。

X-Ref Target - Figure 3

図 3 : マス タ ー SPI の x1 0Bh コ マ ン ド

X-Ref Target - Figure 4

(6)

UltraScale FPGA のマ ス タ ー SPI  コ ン フ ィ ギ ュ レーシ ョ ン

UltraScale FPGA は、 マ ス タ ー SPI の コ ン フ ィ ギ ュ レーシ ョ ン モー ド に設定 し た場合、 接続 さ れてい る SPI フ ラ ッ シ ュ デ バ イ ス か ら FPGA 自身を コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 UltraScale FPGA が送信する のは、表 2 に示す SPI fast read コ マ ン ド お よ び SPI output fast read コ マン ド のみです。

UltraScale FPGA の電源投入後 ま たは PROGRAM_B パル ス と INIT_B の リ リ ー ス 後、 FPGA コ ン フ ィ ギ ュ レ ーシ ョ ン モー ド ピ ン を マ ス ター SPI の コ ン フ ィ ギ ュ レーシ ョ ン モー ド (M[2:0] = 001) に設定 さ れていれば、FPGA はフ ラ ッ シ ュ チ ッ プ セ レ ク ト ピ ン (FCS_B) を アサー ト し て、 SPI fast read コ マン ド (0Bh) を D00_MOSI に駆動出力 し ます。図 3 に波形を示 し ます。

UltraScale FPGA コ ン フ ィ ギ ュ レーシ ョ ン に使用 さ れ る すべての SPI コ マ ン ド では、 SPI コ マ ン ド の コ マ ン ド 部 と ア ド レ ス 部が常に MOSI を介 し て x1 幅で送信 さ れます。 データ は コ マン ド に合わせて適宜 x1、 x2、 ま たは x4 幅で リ ー ド バ ッ ク さ れ ます。 MOSI ラ イ ンはデ ィ アサー ト さ れ、 最後のア ド レ ス ビ ッ ト の送信後に フ ロ ー ト 状態にで き ます。 x2 幅お よ び x4 幅の場合は、 こ の ラ イ ンは read コ マン ド の最下位ビ ッ ト D00 と し て使用 さ れます。

X-Ref Target - Figure 5

図 5 : マス タ ー SPI の x4 6Bh/6Ch コ マ ン ド

表 2 :  SPI コ マ ン ド

SPI  コ マ ン ド オペ コ ー ド

Fast read 0Bh

Dual output fast read 3Bh

Quad output fast read 6Bh

Fast read (32 ビ ッ ト ア ド レ ス ) 0Ch Dual output fast read (32 ビ ッ ト ア ド レ ス) 3Ch Quad output fast read (32 ビ ッ ト ア ド レ ス ) 6Ch

(7)

UltraScale FPGA マス タ ー SPI  コ ン フ ィ ギ ュ レーシ ョ ン シーケ ン ス

コ ン フ ィ ギ ュ レ ーシ ョ ン モー ド ピ ン を マ ス タ ー SPI の コ ン フ ィ ギ ュ レ ーシ ョ ン モー ド (M[2:0] = 001) に設定す る と 、 FPGA の電源投入後 ま たは PROGRAM_B のデ ィ アサー ト 後に、 UltraScale FPGA はマ ス タ ー SPI の コ ン フ ィ ギ ュ レーシ ョ ン シーケ ン ス を開始 し ます。 こ のシーケ ン スは、図 3 に示す よ う に、 fast read コ マ ン ド を駆動出力す る コ ン フ ィ ギ ュ レー シ ョ ン ロ ジ ッ ク か ら 必ず始ま り ます。 1. fast read コ マ ン ド (0Bh) を駆動 し ます。 2. 3 つのア ド レ ス バ イ ト と し て 0 を送信 し ます。 3. D00_MOSI ピ ン の駆動を停止 し ます。 4. FCS_B のアサー ト 状態を維持 し て、 ク ロ ッ ク CCLK を供給 し 続け ます。 5. D01_DIN のデー タ を ス キ ャ ン し て、 同期 ワ ー ド (0xAA995566 の 32 ビ ッ ト パ タ ーン) の有無を調べます。 6. 後続のデー タ を 32 ビ ッ ト ワー ド と し て同期ワー ド に揃え ます。 7. FPGA コ ン フ ィ ギ ュ レーシ ョ ン パケ ッ ト お よ び コ マ ン ド と し て各 32 ビ ッ ト ワ ー ド の処理を開始 し ます。 8. 次のいずれかの状況が起 こ る ま で FCS_B アサー ト 状態を維持 し ます。 ° コ ン フ ィ ギ ュ レーシ ョ ン コ マ ン ド が、 新 し い SPI コ マ ン ド を発行 よ う コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク に命令 し た ° デバ イ ス ID エ ラ ーが発生 し た ° 巡回冗長検査 (CRC) エ ラ ーが発生 し た ° コ ン フ ィ ギ ュ レーシ ョ ンが完了 し た た と えば、 同期 ワー ド の読み取 り 完了後に、 エンベデ ッ ド FPGA コ ン フ ィ ギ ュ レーシ ョ ン コ マ ン ド を実行する と 、 FPGA コ ン フ ィ ギ ュ レ ーシ ョ ン ロ ジ ッ ク は、 ビ ッ ト ス ト リ ーム に指定 し た ア ド レ ス で 4 バ イ ト の quad output fast read コ マ ン ド (6Ch) を発行で き ます。 こ のア ド レ ス が 16MB (0x01000000) であ っ た場合、 FPGA は FCS_B をデ ィ アサー ト し てか ら 再 アサー ト し 、 D00_MOSI で 0x6C の後に 0x01000000 を送信 し ます。 コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク は、 FCS_B のア サー ト 状態を維持 し つつ、D[03:00] を読み出 し ます。FPGA コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク は、入力データ を再度ス キ ャ ン し て同期 ワー ド の有無を調べます。 同期 ワー ド 検出後の動作は、 エンベデ ッ ド SPI コ マン ド を ス キ ッ プする以外は前述 し た内容 と 同様です。 注記 : UltraScale FPGA コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク は同期ワー ド の有無を ス キ ャ ン し てデータ の位置を 32 ビ ッ ト 境 界に揃え る ため、 SPI フ ラ ッ シ ュ が使用する ダ ミ ー サ イ ク ルの数は、 マ ス タ ー SPI の コ ン フ ィ ギ ュ レーシ ョ ンでは重要で はあ り ま せん。 コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク は、 デー タ の位置を揃え る ためにダ ミ ー ビ ッ ト の数を数え て必要はな く 、 む し ろ同期 ワー ド での ラ ッ チに依存 し ます。

(8)

SPI イ ン タ ーフ ェ イ ス は高性能 イ ン タ ーフ ェ イ ス ではあ り ませんが、 シ グナル イ ン テ グ リ テ ィ の問題やボー ド レ イ ア ウ ト 上の決定に よ っ て ク ロ ッ ク レー ト が制限 さ れた り 、 CCLK ラ イ ン上での反射の よ う な信号上の問題につなが ら ない よ う に 注意す る 必要があ り ます。

Kintex UltraScale FPGA KCU105 評価キ ッ ト [参照 4] は、 マ ス タ ー SPI x4 コ ン フ ィ ギ ュ レーシ ョ ン に関 し て よ い指針を示 し ま す。 こ のボー ド には、 マ ス タ ー SPI x8 モー ド を実現す る 2 つの N25Q256A デバ イ ス があ り ます。 ただ し 、 こ のアプ リ ケーシ ョ ン ノ ー ト で扱 う のはマ ス タ ー SPI x4 モー ド で使用 さ れ る 1 個の SPI フ ラ ッ シ ュ (U35) のみですが、 こ れ と 同 じ セ ッ ト ア ッ プ を必要に応 じ て x1 モー ド や x2 モー ド に使用で き ます。 マ ス タ ー SPI x4 用のボー ド レ イ ア ウ ト は、前世代のマ ス タ ー x1/x2 レ イ ア ウ ト 要件 と 非常に似てい ます。x4 幅では 2 つの 追加信号が必要です。 こ れ ら の信号は こ のボー ド 上では High に接続 さ れてい る こ と があ り 、 7 シ リ ーズ FPGA の コ ン フ ィ ギ ュ レーシ ョ ン レ イ ア ウ ト では FPGA に接続 さ れません。 (D[03:02] を SPI フ ラ ッ シ ュ に接続する) こ れ ら の追加信号、 な ら びにマ ス タ ー SPI x4 コ ン フ ィ ギ ュ レーシ ョ ンに必要な残 り の接続を図 6 に示 し ます。表 3 では、 SPI コ ン フ ィ ギ ュ レー シ ョ ン特有の こ れ ら の信号について説明 し ます。

(9)

表 3 :  マス タ ー SPI x4 コ ン フ ィ ギ ュ レーシ ョ ン ピ ン ピ ン名 バン ク /方向  ( タ イ プ) コ ン フ ィ ギ ュ レーシ ョ ン 機能 SPIx4 の推奨事項 説明 POR_OVERRIDE N/A 入力 (専用) パ ワーオン リ セ ッ ト 遅延の無効化 x4 コ ン フ ィ ギ ュ レ ーシ ョ ンでは、通常は GND 接続 を 推奨 し ま す。 こ の オ プ シ ョ ン に よ っ て短縮 さ れ る 時 間 は、 UltraScale FPGA の コ ン フ ィ ギ ュ レ ーシ ョ ン に必要な合計 時間に対 し て短い も ので す。 TPOR (電源投入か ら INIT_B の立ち 上が り ま で) をデータ シー ト に記載 さ れた値ま で短縮 し ます。[参照 5] [参照 6]。TPOR を短縮す る 必要があ る 場合は、 こ の ピ ン を VCCINT に直 接接続 し ます (ただ し コ ン フ ィ ギ ュ レーシ ョ ン データ ソ ース の電源投 入 タ イ ミ ン グ が短縮 し た遅延時間 を サ ポー ト し て い る 必要が あ る )。 標準の POR 遅延で よ ければ、 GND に接続 し ます。 注意: コ ン フ ィ ギ ュ レ ー シ ョ ン 前お よ び コ ン フ ィ ギ ュ レ ー シ ョ ン中は、 こ の ピ ン を フ ロ ー ト に し ないで く だ さ い。必ず VCCINT ま た は GND に接続 し て く だ さ い。 VCCO_0 に は接続 し な い で く だ さ い。 VBATT N/A N/A (電源電圧) バ ッ ク ア ッ プ バ ッ テ リ の電源電圧 揮発性のキー メ モ リ 領域 に格納 さ れて い る 復号化 キ ー を 使用す る 必要が な い 場 合 は、 GND ま た は VCCAUX に 接続 し て く だ さ い。 こ の ア プ リ ケ ー シ ョ ン では暗号化 を 扱わ ないため、図 6 では VBATT を GND に 接続 し て い ま す。 AES 復号化キーを格納す る 、 FPGA の内部揮発性 メ モ リ のバ ッ ク ア ッ プ バ ッ テ リ の電源です。。 ビ ッ ト ス ト リ ーム を暗号化 し た場合、 FPGA の電源がオ フ の間、復号化キーを格 納 し た揮発性 メ モ リ の内容 を 保持 す る た めに こ の ピ ン を バ ッ ク ア ッ プ バ ッ テ リ に接続す る 必要があ り ます。 M[2:0] 0 入力 (専用) コ ン フ ィ ギ ュ レ ーシ ョ ン モー ド マ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ンの場合は、 1k ( ま たは よ り 強い) 抵 抗 を GND ま た は VCCO_0 に接続 し て 001 に設定 し ます。 コ ン フ ィ ギ ュ レーシ ョ ン モー ド を 指定 し ます。 各モー ド ピ ン を直接、 ま たは 1kの抵抗を介し て VCCO_0 ま たは GND に接続 し ます。 TCK 0 入力 (専用)

IEEE Standard for Test Access Port and Boundary-Scan Architecture (IEEE Std 1149.1) (JTAG) テ ス ト ク ロ ッ ク JTAG ケ ーブル ヘ ッ ダ ー に接続 し て 10k 抵抗に プルア ッ プ し ます。SPI フ ラ ッ シ ュ の Vivado ツール 間接プ ロ グ ラ ム で必須で す。 JTAG チ ェ ー ン 上 の すべ て の デバ イ ス に対す る ク ロ ッ ク です。ザ イ リ ン ク ス ケ ーブル ヘ ッ ダーの TCK ピ ンに接続 し ます。ク リ テ ィ カルな ク ロ ッ ク 信号であ る ため、複数のデ バ イ ス を JTAG チ ェ ー ン で接続す る 場合は、 必要に応 じ て ケ ーブル ヘ ッ ダーの こ の信号 を バ ッ フ ァ ー し て く だ さ い。 TCK 信号 を バ ッ フ ァ ーす る 場合は、バ ッ フ ァ ー入力 を外部の弱いプルア ッ プ抵抗 (た と えば、 10k) に接続し、 ケーブルを 接続 し ていない場合 も 有効な High を維持す る よ う に し ます。

(10)

TMS 0 入力 (専用) JTAG テ ス ト モー ド セ レ ク ト JTAG ケ ーブル ヘ ッ ダ ー に接続 し て 10k 抵抗に プルア ッ プ し ます。SPI フ ラ ッ シ ュ の Vivado ツール 間接プ ロ グ ラ ム で必須で す。 JTAG チ ェ ー ン 上 の すべ て の デバ イ ス に対す る モー ド セ レ ク ト 信号 です。 ザ イ リ ン ク ス ケーブル ヘ ッ ダーの TMS ピ ンに接続し ます。 複 数のデバ イ ス を JTAG チ ェ ー ン で 接続す る 場合は、必要に応 じ て ケー ブ ル ヘ ッ ダ ー の こ の 信号 を バ ッ フ ァ ー し て く だ さ い。 TMS 信号を バ ッ フ ァ ーす る 場合は、バ ッ フ ァ ー 入力を外部の弱いプルア ッ プ抵抗 (た と えば、10k) に接続し て、ケー ブル を 接続 し て い な い場合 も 有効 な High を維持する よ う に し ます。 TDI 0 入力 (専用) JTAG テ ス ト デー タ 入力 JTAG ケ ーブル ヘ ッ ダ ー に接続 し て 10k 抵抗に プルア ッ プ し ます。SPI フ ラ ッ シ ュ の Vivado ツール 間接プ ロ グ ラ ム で必須で す。 JTAG チ ェ ー ン の シ リ ア ル デー タ 入力です。デバ イ ス が 1 つ し かない 場合、ま たは JTAG チ ェーンの最初 のデバ イ ス の場合は、ザ イ リ ン ク ス ケーブル ヘ ッ ダーの TDI ピ ンに接 続 し ま す。 それ以外の場合 (FPGA が JTAG チ ェ ー ン の最初のデバ イ ス でない場合) は、 JTAG ス キ ャ ン チ ェ ー ン の上位 JTAG デバ イ ス の TDO ピ ン に接続 し て く だ さ い。 TDO 0 出力 (専用) JTAG テ ス ト デー タ 出力 JTAG ケ ー ブ ル ヘ ッ ダ ー に接続 し ます。 SPI フ ラ ッ シ ュ の Vivado ツール間接 プ ロ グ ラ ムで必須です。 JTAG チ ェ ー ン の シ リ ア ル デー タ 出力です。デバ イ ス が 1 つ し かない 場合、ま たは JTAG チ ェーンの最後 のデバ イ ス の場合は、ザ イ リ ン ク ス ケ ーブル ヘ ッ ダーの TDO ピ ン に 接続 し ます。それ以外の場合 (JTAG チ ェ ー ン の最後の FPGA デバ イ ス で な い 場 合) は、 JTAG ス キ ャ ン チ ェ ー ン の下位 JTAG デバ イ ス の TDI ピ ン に接続 し て く だ さ い。 PROGRAM_B 0 入力 (専用) プ ロ グ ラ ム (負論理) 4.7k 以下の抵抗 を 介 し て VCCO_0 に プ ル ア ッ プ し ま す。 通常はオープ ン のプ ッ シ ュ ボ タ ン を GND に接続 し て コ ン フ ィ ギ ュ レ ーシ ョ ン の手動 リ セ ッ ト を 有効に し 、 コ ン フ ィ ギ ュ レ ーシ ョ ン に使用す る と き に役立つ よ う に し ます。 コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク に 対 す る 、 ア ク テ ィ ブ Low の リ セ ッ ト 信号です。 こ の信号 を Low にす る と FPGA コ ン フ ィ ギ ュ レ ー シ ョ ン が ク リ ア さ れ、 新 し い コ ン フ ィ ギ ュ レ ーシ ョ ン シーケ ン ス が 開始 し ます。コ ン フ ィ ギ ュ レーシ ョ ン の リ セ ッ ト は立ち下が り エ ッ ジ で始ま り 、コ ン フ ィ ギ ュ レーシ ョ ン (すな わ ち プ ロ グ ラ ム) シーケ ン ス が次の立ち上が り エ ッ ジ で始 ま り ます。 安定 し た High 入力 と する た め、4.7k 以下の外付けプルア ッ プ 抵抗 を 介 し て VCCO_0 に接続 し て く だ さ い。 ( タ イ プ)

(11)

INIT_B 0 双方向、 オープン ド レ イ ン (専用) 初期化 (負論理) 4.7k の抵抗を介し て VCCO_0 に接続 し ます。 KCU105 ボ ー ド に 使用 し てい る よ う な 2 色 LED を 追加す る と 、 DONE ピ ン と 共に コ ン フ ィ ギ ュ レ ー シ ョ ン ス テー タ ス を視覚 的にすばや く 確認で き ま す。 LED は必須ではあ り ま せん が、 追加 し な い場 合は、 コ ン フ ィ ギ ュ レ ー シ ョ ン に使用す る と き に こ の ピ ン を 容易にプ ロ ー ブで き る よ う に し て く だ さ い。 ア ク テ ィ ブ Low の FPGA 初期化ピ ン ま た は コ ン フ ィ ギ ュ レ ーシ ョ ン エ ラ ー信号です。FPGA が コ ン フ ィ ギ ュ レーシ ョ ン リ セ ッ ト 状態にあ る 場合や、コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ を 初 期 化 ( ク リ ア) 中 の 場 合、ま たは コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーを検出 し た場合に、こ の ピ ン を Low に駆動 し ます。 VCCINT が電 源 が 供 給 さ れ て い な い 場 合、 INIT_B は Low に 駆 動 し ま せ ん。 FPGA の初期化プ ロ セ ス が完了す る と 、 INIT_B はハ イ イ ン ピーダ ン ス と な り ます。 こ の時点で INIT_B が High にな る よ う に外部プルア ッ プ抵抗を接続 し て く だ さ い。電源投 入時に INIT_B を 外部か ら Low に 保持す る と 、初期化プ ロ セ ス が完了 し た後 も コ ン フ ィ ギ ュ レ ーシ ョ ン シー ケ ン ス の開始 を 遅 ら せ る こ と が で き ま す。 初期化プ ロ セ ス 完了 後、INIT_B 入力で High が検出 さ れ る と FPGA は M[2:0] ピ ンの設定に 従 っ て 残 り の コ ン フ ィ ギ ュ レ ー シ ョ ン シー ケ ン ス を 実行 し ま す。 コ ン フ ィ ギ ュ レーシ ョ ン完了後は、 FPGA が コ ン フ ィ ギ ュ レ ー シ ョ ン エ ラ ー を 検出 し た か ど う か を 示す 目的 で INIT_B を オ プ シ ョ ン で使 用で き ます。4.7k のプルア ッ プ抵 抗を介 し て VCCO_0 に接続 し 、Low か ら High へ確実に遷移する よ う に し て く だ さ い。 DONE 0 双方向 (専用) コ ン フ ィ ギ ュ レーシ ョ ン完了 ア ク テ ィ ブ な プル ア ッ プ ま た はプルダ ウ ン し な い で く だ さ い。 DONE が ア サー ト さ れ る と 導通す る LED を追加す る か、 容易に ア ク セ ス 可 能な テ ス ト ポ イ ン ト を追 加 し て、 コ ン フ ィ ギ ュ レ ーシ ョ ン に使用す る と き に 役 立 つ よ う に し ま す。 DONE ピ ン が High にな る と 、 コ ン フ ィ ギ ュ レ ーシ ョ ン シーケ ン ス が 完了 し た こ と を表 し ます。デフ ォ ル ト では、 DONE 出力はオープ ン ド レ イ ン です。 DONE にはデ フ ォ ル ト で約 10k の内部プルア ッ プ抵 抗があ り ます。外付け抵抗回路は必 須ではあ り ません。使用す る 場合は 4.7 の抵抗を推奨し ます。 表 3 :  マス タ ー SPI x4 コ ン フ ィ ギ ュ レーシ ョ ン ピ ン (続き) ピ ン名 バン ク /方向  ( タ イ プ) コ ン フ ィ ギ ュ レーシ ョ ン 機能 SPIx4 の推奨事項 説明

(12)

CCLK 0 入力ま たは出力 (専用) コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク SPI コ ン フ ィ ギ ュ レー シ ョ ンで必須です。 FPGA か ら SPI フ ラ ッ シ ュ ま での こ の接続上で 信号品質が低い と 、 コ ン フ ィ ギ ュ レ ーシ ョ ン 速度 に悪影響 を 及ぼすか、 正 常 な コ ン フ ィ ギ ュ レ ー シ ョ ン が妨げ ら れ る こ と が あ り ま す。 ザ イ リ ン ク ス は、 SPI フ ラ ッ シ ュ を FPGA 近 く に 配 置 し て、 デー タ ピ ン と 極めて近い 長 さ に整合 さ せ る こ と を 推奨 し てい ます。 ま た、 こ の 信 号 は コ ン フ ィ ギ ュ レ ーシ ョ ン に使用す る と き に、 フ ラ ッ シ ュ デバ イ ス の近 く でプ ロ ーブで き る よ う にす る こ と を 推奨 し ます。 デ フ ォ ル ト で は、 FPGA コ ン フ ィ ギ ュ レーシ ョ ン シーケ ン ス が同期 で実行 さ れます。FPGA が コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク ソ ース と な り 、CCLK を出力 と し て駆動 し ま す。CCLK は ク リ テ ィ カルな ク ロ ッ ク 信号のため、 シ グナル イ ン テ グ リ テ ィ が重要です。 PUDC_B 0 入力 (専用) コ ン フ ィ ギ ュ レーシ ョ ン中のプルア ッ プ (負 論理) コ ン フ ィ ギ ュ レ ーシ ョ ン 中 の SelectIO™ イ ン タ ー フ ェ イ ス ピ ンの ス テー ト 要件に従っ て、直接ま たは 1k以下の抵抗を介 し て VCCO_0 あ る いは GND に 接続 し ます。 こ のア ク テ ィ ブ Low 入力は、 電源 投 入 後 お よ び コ ン フ ィ ギ ュ レ ー シ ョ ン 時に SelectIO イ ン タ ー フ ェ イ ス ピ ン の内部プルア ッ プ抵抗を 有効に し ま す。 Low にす る と 、 各 SelectIO イ ン タ ー フ ェ イ ス ピ ン の 内部プルア ッ プ抵抗が有効に な り ま す。 High に す る と 、 各 SelectIO イ ン タ ーフ ェ イ ス ピ ン の内部プル ア ッ プ 抵 抗 が 無 効 に な り ま す。 PUDC_B は直接、 ま たは 1k 以下 の 抵抗 を 介 し て VCCO_0 あ る い は GND に接続 し て く だ さ い。 RDWR_FCS_B 0 出力 (専用) ア ク テ ィ ブ Low のフ ラ ッ シ ュ チ ッ プ セ レ ク ト (FCS_B) SPI コ ン フ ィ ギ ュ レー シ ョ ンで必須です。 SPI フ ラ ッ シ ュ チ ッ プ セ レ ク ト ピ ンに接続 し て、 4.7k 以 下 の 抵 抗 を 介 し て プ ル ア ッ プ し ま す。 コ ン フ ィ ギ ュ レ ーシ ョ ン に使用す る と き に容易にプ ロ ーブ で き る ポ イ ン ト が あ る こ と を確認 し て く だ さ い。 コ ン フ ィ ギ ュ レ ーシ ョ ン で使用す る SPI フ ラ ッ シ ュ デバ イ ス を有効 化す る ア ク テ ィ ブ Low のチ ッ プ セ レ ク ト 出力です。 フ ラ ッ シ ュ デバ イ ス のチ ッ プ セ レ ク ト 入力に接続 す る と 共に、4.7k 以下の外付けプ ルア ッ プ抵抗 (2.4k を推奨) を介 し て VCCO_0 に も 接続 し ます。 D00_MOSI 0 双方向 (専用) SPI x1 シ リ アル デー タ 出力、 SPI x2/x4/x8 デー タ ピ ン 0 (D00_MOSI) SPI コ ン フ ィ ギ ュ レー シ ョ ンで必須です。 SPI フ ラ ッ シ ュ のシ リ アル データ入力 (DQ0/D/SI/ IO0) ピ ンに接続 し ます。コ ン フ ィ ギ ュ レ ーシ ョ ン に 使用す る と き に容易にプ ロ ーブ で き る ポ イ ン ト が あ る こ と を 確認 し て く だ さ い。 す べ て の SPI 幅 を 対象 に SPI ( ス レ ーブ) フ ラ ッ シ ュ デバ イ ス に コ マ ン ド を 送 信 す る た め の 出 力 で す。 SPI コ マ ン ド お よ び ア ド レ ス は、 コ ン フ ィ ギ ュ レ ーシ ョ ン 中は 常に こ の ピ ン を 介 し て ス レ ーブに x1 幅で送信 さ れ ま す。 x2、 x4、 お よ び x8 幅では、 こ れは最下位デー タ ビ ッ ト と し て使用 さ れ る 多目的 ピ ン です。 ( タ イ プ)

(13)

D01_DIN 0 入力 (専用) SPI x1 シ リ アル デー タ 入力 (DIN)、SPI x2/x4/x8 デー タ ピ ン 1 (D01) SPI コ ン フ ィ ギ ュ レー シ ョ ンで必須です。SPI フ ラ ッ シ ュ のシ リ アル デー タ 出力 (DQ1/Q/SO/ IO1) ピ ン に 接続 し ま す。 コ ン フ ィ ギ ュ レ ーシ ョ ン に容易に使用す る と き に プ ロ ーブで き る ポ イ ン ト が あ る こ と を 確認 し て く だ さ い。 x1 モー ド では、 ス レ ーブか ら シ リ アル デー タ を受信す る デー タ 入力 です。 x2、 x4、 およ び x8 モー ド で デー タ 入力ビ ッ ト 1 です。デフ ォ ル ト では、DIN か ら のデータ が CCLK の立ち上が り エ ッ ジ で キ ャ プチ ャ さ れます。 D02 0 入力 (専用) SPI x4/x8 のデー タ ビ ッ ト 2 必須ではあ り ませんが、 非常に推奨 さ れてい ま す。 4.7k の抵抗を介し て VCCO_0 にプルア ッ プ し ます。 こ れを SPI フ ラ ッ シ ュ のデー タ ビ ッ ト 2 ピ ン (DQ2/W#/WP#/IO2) に接続 し ます。 x4 お よ び x8 モー ド で SPI デー タ を 受信す る デー タ 入力です。こ の ピ ン は一般に SPI フ ラ ッ シ ュ デバ イ ス の書 き 込み禁止 ピ ン と し て使用 さ れ る ため、 x4 ま たは x8 モー ド で動 作 し ない場合は、プルア ッ プ し て正 し い SPI 機能を確保 し て く だ さ い。 D03 0 入力 (専用) SPI x4/x8 のデー タ ビ ッ ト 3 必 須 で は あ り ま せ ん が、 大いに推奨 し ます。 4.7k の 抵 抗 を 介 し て VCCO_0 にプルア ッ プ し ます。 SPI フ ラ ッ シ ュ の ク ワ ッ ド デー タ ビ ッ ト 3 出力 (DQ3/HOLD#/IO3) ピ ン に 接続 し ます。 x4 お よ び x8 モー ド で SPI デー タ を 受信す る デー タ 入力です。こ の ピ ン は一般に SPI フ ラ ッ シ ュ デバ イ ス の ホール ド ま たは リ セ ッ ト ピ ン と し て使用 さ れ る ため、 x4 ま たは x8 モー ド で動作 し な い場合は、 プル ア ッ プ し て正 し い SPI 機能 を確保 し て く だ さ い。 CFGBVS 0 入力 (専用) コ ン フ ィ ギ ュ レ ーシ ョ ン バン ク 電圧の選択 こ の ア プ リ ケ ー シ ョ ン ノ ー ト と 同 様 に 1.8V の SPI フ ラ ッ シ ュ を 使用す る 場合は、 GND に直接接 続 し ます。 コ ン フ ィ ギ ュ レ ーシ ョ ン 専用バ ン ク 0、 お よ びバン ク 65 の コ ン フ ィ ギ ュ レ ーシ ョ ン ピ ン につい て I/O 電圧の動作範囲 と 電圧の許容範囲 を 決定 し ま す。 CFGBVS は、 すべ ての UltraScale FPGA で常に専用バ ン ク 0 の動作電圧を 選択 し 、 コ ン フ ィ ギ ュ レ ーシ ョ ン 中は多目的バ ン ク 65 の動作電圧を選択 し ま す。 CFGBVS は バ ン ク 電 圧 の 要 件 に 従 っ て High ま たは Low に接続 し て く だ さ い。 バン ク 0 の VCCO_0 電 源が 2.5V ま たは 3.3V の場合は、こ の ピ ン を High (つ ま り VCCO_0) に 接続す る 必要があ り ます。 バン ク 0 の VCCO_0 が 1.8V 以下の場合にの み、 Low (つ ま り GND) に接続 し ま す。 バン ク 65 を コ ン フ ィ ギ ュ レー シ ョ ンで使用す る 場合、電圧はバン ク 0 と 同 じ にする必要があ り ます。 注意: デバ イ ス の損傷 を 防 ぐ た め、 こ の ピ ンは必ず VCCO_0 ま た は GND のいずれかに正 し く 接続 し て く だ さ い。 表 3 :  マス タ ー SPI x4 コ ン フ ィ ギ ュ レーシ ョ ン ピ ン (続き) ピ ン名 バン ク /方向  ( タ イ プ) コ ン フ ィ ギ ュ レーシ ョ ン 機能 SPIx4 の推奨事項 説明

(14)

EMCCLK 65 入力 (多機能) 外部マ ス タ ー コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク コ ン フ ィ ギ ュ レ ーシ ョ ン ク ロ ッ ク の最高速度が必 要 な 場 合 は 推 奨 し ま す。 詳 細 は、「 コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク の最 大周波数」 を 参照 し て く だ さ い。 そ う でない場合、 こ の ア プ リ ケ ー シ ョ ン ノ ー ト での場合 と 同様に こ の入力は未接続の ま ま でか ま い ません。 マ ス タ ー モ ー ド で 内部 コ ン フ ィ ギ ュ レーシ ョ ン オシ レー タ ーの代 わ り に コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク の ク ロ ッ ク ソ ース と な る オ プシ ョ ンの外部 ク ロ ッ ク 入力です。 FPGA は 内 部 コ ン フ ィ ギ ュ レ ー シ ョ ン エ ン ジ ン を駆動す る ク ロ ッ ク ソ ー ス と し て、 内部 オ シ レ ー タ ー の 代 わ り に EMCCLK に 切 り 替え る こ と がで き ま す。 EMCCLK の周波数は ビ ッ ト ス ト リ ー ム 設定 で分周で き 、 マ ス タ ー CCLK 信号 と し て出力で き ます。 ( タ イ プ)

(15)

マ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イル

こ のセ ク シ ョ ンでは、 UltraScale FPGA マ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ンに使用する さ ま ざ ま な コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルの概要を説明 し 、 こ れ ら のフ ァ イ ルの生成に利用する ツールについて ま と めてい ます。 フ ァ イ ルの作成手順に ついては、 以降のセ ク シ ョ ンで説明 し ます。

SPI x4 プ ログ ラ ミ ング フ ァ イル

UltraScale FPGA Bitstream (.bit)

FPGA コ ン フ ィ ギ ュ レ ーシ ョ ン に使用 さ れ る デフ ォ ル ト のバ イ ナ リ ビ ッ ト ス ト リ ーム です。 こ の ビ ッ ト ス ト リ ーム には、 メ タ デー タ を含むヘ ッ ダーがあ り ます。 メ タ デー タ は、 ビ ッ ト ス ト リ ーム を用いた作業時に ツールに よ っ て使用 さ れます。 JTAG を介 し て FPGA を コ ン フ ィ ギ ュ レーシ ョ ンす る 場合、 こ の情報は Vivado ツールで削除 さ れ ます。

UltraScale FPGA Bitstream (.bin)

FPGA ビ ッ ト ス ト リ ーム のバージ ョ ン の 1 つで、 コ ン フ ィ ギ ュ レーシ ョ ン デー タ のみが含 ま れてお り 、 .bit フ ァ イ ルに 存在す る メ タ デー タ は削除 さ れてい ます。 こ の フ ァ イ ルを使用す る こ と に よ り 、 x1、 x2、 およ び x4 幅の SPI フ ラ ッ シ ュ を Vivado ツールでプ ロ グ ラ ム で き ます。

UltraScale FPGA Intel HEX (.mcs)

16 進数表記のプ ロ グ ラ ミ ン グ ビ ッ ト ス ト リ ーム を含む ASCII テ キ ス ト フ ァ イ ル形式で、 ア ド レ ス 指定情報 と デー タ サ イ ズ情報が追加 さ れてい ます。 MCS はマ ス タ ー SPI x8 および BPI プ ロ グ ラ ムでは 必須ですが、 SPI x1、 x2、 およ び x4 では オプシ ョ ンであ り 、 こ のアプ リ ケーシ ョ ン ノ ー ト では説明対象外です。 必要な場合は write_cfgmem Tcl コ マン ド を使用 し て生成で き ます。 詳細は、 Vivado ツールの Tcl コ ン ソ ールで次の コ マン ド を実行し て く だ さ い。 write_cfgmem -help マ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ンのビ ッ ト ス ト リ ーム を生成す る前に、 SPI コ ン フ ィ ギ ュ レーシ ョ ン固有のい く つか のプ ロ パテ ィ を有効にす る 必要があ り ます。 こ れ ら の設定には、 次が含まれます。 BITSTREAM.CONFIG.CONFIGRATE BITSTREAM.CONFIG.SPI_32BIT_ADDR BITSTREAM.CONFIG.SPI_BUSWIDTH BITSTREAM.CONFIG.SPI_FALL_EDGE CONFIG_VOLTAGE CFGBVS BITSTREAM.GENERAL.COMPRESS BITSTREAM.CONFIG.EXTMASTERCCLK_EN

(16)

マ ス タ ー モー ド の コ ン フ ィ ギ ュ レーシ ョ ン で EMCCLK を有効に し ていない場合は、 CCLK の公称周波数を設定 し ます。 可能な値の リ ス ト を取得す る には、 Vivado ツールで タ ーゲ ッ ト FPGA の合成済みデザ イ ン ま たは イ ンプ リ メ ン ト 済みデザ

イ ン を開いて、 次の コ マ ン ド を実行 し ます。

list_property_value BITSTREAM.CONFIG.CONFIGRATE [current_design] 推奨設定 : 33 注記 : こ のアプ リ ケーシ ョ ン ノ ー ト では、一般的に安全な コ ン フ ィ ギ ュ レーシ ョ ン レー ト と し て 33 を選択 し ます。SPI レ イ ア ウ ト を適切に考慮 し たほ と ん ど のデザ イ ンは、 は る かに高い コ ン フ ィ ギ ュ レーシ ョ ン レー ト で実行で き ます。 最大許 容 コ ン フ ィ ギ ュ レーシ ョ ン レー ト の計算方法については、「 コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク の最大周波数」 を参照 し て く だ さ い。 CCLK ラ イ ンにシ グナル イ ン テグ リ テ ィ の問題があ る と 、 最小周波数の場合で も エ ラ ーが発生する可能性があ る こ と に も 注意 し て く だ さ い。 た と えば、 CCLK の配線が SPI フ ラ ッ シ ュ の C ピ ンでの反射につなが る場合には、 二重 ク ロ ッ ク が生 じ る こ と があ り ます。

BITSTREAM.CONFIG.SPI_32BIT_ADDR

(Enable SPI 32-bit address style : NO、 YES)

SPI コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク に命令 し て、表 2 に示す 4 バ イ ト のア ド レ ス 指定 コ マ ン ド を発行 し ます。SPI フ ラ ッ シ ュ の集積度が 256Mb 以上の場合は YES に設定し ます。 推奨設定 : • フ ラ ッ シ ュ の集積度が 128Mb を超え る場合は YES • 集積度が 128Mb 以下の場合は NO

BITSTREAM.CONFIG.SPI_BUSWIDTH

(Bus width : None、 1、 2、 4、 8)

SPI デー タ を SPI フ ラ ッ シ ュ か ら 読み出す と き のデー タ 幅を設定 し ます。 UltraScale FPGA SPI コ ン フ ィ ギ ュ レーシ ョ ン の 場合は、 こ のアプ リ ケーシ ョ ン ノ ー ト で推奨 し てい る よ う に 4 に設定 し ます。 コ ン フ ィ ギ ュ レーシ ョ ンに使用する際は 1 に設定す る の と 便利です。

推奨設定 : 4

BITSTREAM.CONFIG.SPI_FALL_EDGE

(Enables the FPGA to use a falling edge clock for the SPI data capture : NO、 YES)

SPI フ ラ ッ シ ュ デバ イ ス は、 立ち下が り エ ッ ジでデー タ を出力 し ます。 通常、 FPGA は CCLK の立ち上が り エ ッ ジで こ の デー タ に ク ロ ッ ク を供給 し ます。 こ れを YES に設定する と 、 読み出 し データ が次のエ ッ ジで ク ロ ッ ク 供給の対象にな る た めに タ イ ミ ン グ マージ ンが向上 し て、 よ り 高速の CCLK レー ト が可能にな り ます。 推奨設定 : Yes

CONFIG_VOLTAGE

(Configuration voltage : 1.5、 1.8、 2.5、 3.3) コ ン フ ィ ギ ュ レ ー シ ョ ン に使用す る 電圧 を ツ ールに通知 し ま す。 コ ン フ ィ ギ ュ レ ー シ ョ ン バ ン ク (バ ン ク 0 お よ び EMCCLK を使用す る 場合はバン ク 65) で使用す る 電圧を こ の値に設定 し ます。 こ のアプ リ ケーシ ョ ン ノ ー ト では 1.8V の 電圧を想定 し てい る ため 1.8 に設定 し ます。 推奨設定 : ターゲ ッ ト ボー ド での コ ン フ ィ ギ ュ レーシ ョ ン電圧 と 一致する必要があ り ます。

(17)

CFGBVS

(Configuration bank voltage selection : GND、 VCCO)

CFGBVS ピ ン を駆動す る 電圧を ツールに通知 し ます。こ のアプ リ ケーシ ョ ン ノ ー ト と 同様に 1.8V を使用 し 、かつバン ク 65 も 1.8V の場合、 ま たはバン ク か ら の コ ン フ ィ ギ ュ レーシ ョ ン ピ ン (EMCCLK な ど) を ま っ た く 使用 し ない場合は、 こ れを GND に設定で き ます。 詳細は、 『UltraScale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 1] の 「 コ ン フ ィ ギ ュ レーシ ョ ン バン ク 電圧の選択」 を参照し て く だ さ い。 推奨設定 : CFGBVS ピ ンでの実際の接続 と 一致 さ せる必要があ り ます。

BITSTREAM.GENERAL.COMPRESS

(Enable bitstream compression : TRUE、 FALSE)

コ ン フ ィ ギ ュ レーシ ョ ン中に FPGA に よ っ て解凍で き るや り 方で生成済みのビ ッ ト ス ト リ ーム を圧縮する よ う ツールに通 知 し ます。 ザ イ リ ン ク ス では、 こ れを有効に し て コ ン フ ィ ギ ュ レーシ ョ ン時間 と SPI のプ ロ グ ラ ム時間を短縮する こ と を 推奨 し ます。 ただ し 、 必要な格納容量を計算す る 場合は、 コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム サ イ ズに依存 し ない よ う に し て く だ さ い。 小 さ なデザ イ ン変更に よ っ て圧縮率が大 き く 変わ る こ と があ り ます。 必要な格納容量を計算す る 場 合は、 『UltraScale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) の 「UltraScale FPGA のビ ッ ト ス ト

リ ーム長」 の表を参照 し て く だ さ い。 推奨設定 : Yes

BITSTREAM.CONFIG.EXTMASTERCCLK_EN

(Enable external configuration clock and set divide value : DISABLE、 DIV-1、 DIV-2、 DIV-3、 DIV-4、 ...)

コ ン フ ィ ギ ュ レーシ ョ ンに命令 し て、 コ ン フ ィ ギ ュ レーシ ョ ン プ ロ セ ス の早期に EMCCLK ピ ン を CCLK の ソ ース と し て 使用す る よ う 切 り 替え ます。 こ れに よ り 、 かな り 高い コ ン フ ィ ギ ュ レーシ ョ ン レー ト を有効にで き ますが、 EMCCLK ピ ン をバン ク 65 か ら 使用する こ と が必要です。 コ ン フ ィ ギ ュ レーシ ョ ン レー ト の向上については、「 コ ン フ ィ ギ ュ レーシ ョ ン時間」 お よ び 「 コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク の最大周波数」 を参照 し て く だ さ い。 追加の DIV 値を使用で き ます。 タ ーゲ ッ ト にす る FPGA の全 リ ス ト を取得する には、Vivado ツールで タ ーゲ ッ ト FPGA の合成済みデザ イ ン ま たは イ ンプ

リ メ ン ト 済みデザ イ ン を開いて、 次の コ マ ン ド を実行 し ます。

list_property_value BITSTREAM.CONFIG.EXTMASTERCCLK_EN [current_design]

推奨設定 : 可能な最高速の コ ン フ ィ ギ ュ レーシ ョ ン レー ト が必要な場合は DIV-1 (ま たは該当する分周値)、 そ う でない場 合は DISABLE。

こ れ ら のプ ロ パテ ィ はデザ イ ン上の制約で設定 さ れます。 こ れ ら は XDC 制約フ ァ イ ルで設定する か、 Tcl コ マン ド を使用 し て実行時に指定で き ます。 Vivado IDE では、 [Bitstream Settings] での選択に基づいて、 制約が自動的に設定 さ れます。 推 奨方法は、 次に示す推奨制約をデザ イ ン制約フ ァ イ ルに追加 し 、 制約フ ァ イ ルを介 し て設定を追加す る 方法です。

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] set_property BITSTREAM.CONFIG.CONFIGRATE 33 [current_design] set_property CONFIG_VOLTAGE 1.8 [current_design]

set_property CFGBVS GND [current_design]

set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] set_property BITSTREAM.CONFIG.SPI_FALL_EDGE YES [current_design]

(18)

Vivado ツール デザ イ ン でプ ロ ジ ェ ク ト モー ド に基づい て次の IDE フ ロ ー を 使用 し 、 マ ス タ ー SPI x4 コ ン フ ィ ギ ュ レ ー シ ョ ンのビ ッ ト ス ト リ ーム を生成 し ます。

1. 「SPI x4 プ ロ グ ラ ミ ン グ フ ァ イ ル」 か ら デザ イ ンの制約フ ァ イ ルに推奨の制約を追加 し ます。 こ の手順は、 理想的に は合成お よ び イ ンプ リ メ ン テーシ ョ ンの前に実行 し ます。 合成お よ び イ ンプ リ メ ン テーシ ョ ンの後に制約を追加す る と 、 こ れ ら の run は、 制約フ ァ イ ルの保存時に期限切れ と マー ク さ れます。 変更 さ れた制約 (ま たはデザ イ ン フ ァ イ ル) がほかにない場合は、「SPI コ ン フ ィ ギ ュ レーシ ョ ンの生成に関する制約 : IDE フ ロ ー」 で説明 し た よ う に、 [Force Up-to-Date] オプシ ョ ン を使用 し て run を安全に最新状態に変更す る よ う 強制で き ます。

2. 図 7 に示す よ う に、 Flow Navigator で [Program and Debug] の [Bitstream Settings] を ク リ ッ ク し ます。

3. [Project Settings] ダ イ ア ロ グ ボ ッ ク ス で、 -bin_file を選択 し ます。 こ れに よ り 、 write_bitstream コ マ ン ド が命令 さ れ、 SPI フ ラ ッ シ ュ を プ ロ グ ラ ムす る ためのヘ ッ ダーのない ビ ッ ト ス ト リ ーム が生成 さ れ ます。 [OK] を ク リ ッ ク し て、 こ の変更を確定 し ます。

4. Flow Navigator で、 [Program and Debug] の下にあ る [Generate Bitstream] を ク リ ッ ク す る か、 [Flow] → [Generate Bitstream] を ク リ ッ ク し ます。

X-Ref Target - Figure 7

(19)

こ れに よ り 、 [Generate Bitstream] フ ロ ーが起動 し ます。 完了後、 エ ラ ーが検出 さ れなかっ た場合、 SPI のプ ロ グ ラ ムに使用 で き る ビ ッ ト ス ト リ ームは次の場所にあ り ます。

<Project_Dir>\<Project_Name>.runs\impl_1\

以前に -bin_file オプシ ョ ン を選択 し ていたため、 ビ ッ ト ス ト リ ームは標準の .bit フ ァ イ ルのほかに .bin 拡張子の付い た BIN フ ァ イ ル と し て生成 さ れま し た。 .bin フ ァ イ ルは、「SPI プ ロ グ ラ ミ ン グ フ ァ イ ルの生成」 で SPI フ ラ ッ シ ュ をプ ロ グ ラ ムす る ために使用 し ます。

ビ ッ ト ス ト リ ームの生成 : Vivado ツール Tcl バ ッ チ フ ァ イルの例

前のセ ク シ ョ ンで説明 し た IDE フ ロ ーの代替手段 と し て、プ ロ ジ ェ ク ト 以外の Vivado ツール フ ロ ーで使用で き る Tcl バ ッ チ フ ァ イ ルを こ こ に示 し ます。 こ のフ ロ ーを正常に実行する には、 事前にチ ェ ッ ク ポ イ ン ト を作成 し てお く 必要があ り ま す。 次の ス ク リ プ ト では、 ス ク リ プ ト の実行元であ る 現在のデ ィ レ ク ト リ のサブデ ィ レ ク ト リ にチ ェ ッ ク ポ イ ン ト が保存 さ れ る と し てい ます。

## Non-project Tcl flow to generate a BIN file used for SPI flash # programming

# NOTE: write_checkpoint must have been run prior to running this script open_checkpoint {post_route.dcp}

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] set_property BITSTREAM.CONFIG.CONFIGRATE 33 [current_design] set_property CONFIG_VOLTAGE 1.8 [current_design]

set_property CFGBVS GND [current_design] X-Ref Target - Figure 8

(20)

SPI プ ロ グ ラ ミ ング フ ァ イルの生成

Vivado Design Suite を オプシ ョ ン で使用 し て、 SPI フ ラ ッ シ ュ を プ ロ グ ラ ムす る ための MCS フ ァ イ ルを生成で き ます。 SPI x8 では 2 つの異な る プ ロ グ ラ ム フ ァ イ ルが必要なので こ れは必須です。 ただ し 、 SPI x1、 x2、 ま たは x4 では MCS フ ァ イ ルは必ず し も 必要ではないため、 こ のアプ リ ケーシ ョ ン ノ ー ト では、 前のセ ク シ ョ ンで作成し た .bin フ ァ イ ルを使用 し て SPI フ ラ ッ シ ュ をプ ロ グ ラ ム し ます。

SPI フ ラ ッ シ ュのプ ログ ラ ム

Vivado Design Suite は、 SPI コ ン ト ロ ー ラ ーを内蔵 し てい る タ ーゲ ッ ト FPGA に間接プ ロ グ ラ ム ビ ッ ト ス ト リ ーム を ダ ウ ン ロ ー ド し て、 FPGA に接続 し てい る SPI フ ラ ッ シ ュ をプ ロ グ ラ ムで き ます。 Vivado ツールは JTAG ケーブルを介 し て SPI コ ン ト ロ ー ラ ー と 通信 し て、 プ ロ グ ラ ミ ン グ フ ァ イ ルを SPI フ ラ ッ シ ュ に転送 し ます。 こ の イ ン シ ス テ ム プ ロ グ ラ ム機能 に よ り 、 プ ロ ト タ イ プ段階におけ る 反復作業を要す る デザ イ ンのテ ス ト やデバ ッ グ を可能に し ますが、 量産品のプ ロ グ ラ ム を目的 と し た も のではあ り ません。 量産品のプ ロ グ ラ ムには、 BPM Microsystems 社ま たは Data I/O 社が提供する プ ロ グ ラ ミ ン グ ソ リ ューシ ョ ン を使用 し て く だ さ い。

SPI フ ラ ッ シ ュのプ ロ グ ラ ム : Vivado Design Suite IDE の例

Vivado IDE に よ る SPI フ ラ ッ シ ュ のプ ロ グ ラ ムは、 前述 し た ビ ッ ト ス ト リ ーム生成フ ロ ーの一部 と し て実行す る か、 プ ロ ジ ェ ク ト を開かずに実行す る こ と がで き ます。 Vivado ツールに イ ンプ リ メ ン ト 済みのデザ イ ンが現在読み込まれていない 場合、 Vivado ツールはハー ド ウ ェ ア マネージ ャ ー フ ロ ーで開 く こ と がで き ます。 プ ロ ジ ェ ク ト を開かずにハー ド ウ ェ ア マネージ ャ ー フ ローで直接開いた場合は、 Flow Navigator が表示 さ れませんが、 それ以外は次の手順 と な り ます。 1. ボー ド が接続 さ れていて、 プ ロ グ ラ ム ケーブルが接続 さ れてい る こ と を確認 し ます。 タ ーゲ ッ ト ボー ド の電源をオン

(21)

2. 図 9 に示す よ う に、 [Program and Debug] の下にあ る [Open Hardware Manager] を ク リ ッ ク し て、 Vivado ツールのハー ド ウ ェ ア マネージ ャーを開き ます。 ま たは、 [Flow] → [Open Hardware Manager] を ク リ ッ ク し ます。

X-Ref Target - Figure 9

(22)

注記 : Vivado Design Suite を実行 し てい る ワー ク ス テーシ ョ ンに ターゲ ッ ト の UltraScale FPGA を接続し ていて、 ケー ブルが適切に接続 さ れ、 ボー ド に電源が供給 さ れてい る 場合、 こ の手順を実行す る と タ ーゲ ッ ト に自動的に接続 さ れ ます。 hw_server を実行 し ていて、 プ ロ グ ラ ミ ン グ ケーブルを介し て タ ーゲ ッ ト ボー ド に物理的に接続 さ れてい る別 の ワー ク ス テーシ ョ ンに リ モー ト 接続す る こ と も 可能です。 こ の フ ロ ーが必要な場合ま たは自動接続がエ ラ ーにな る 場合、 詳細は 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムおよ びデバ ッ グ』 (UG908) [参照 7] の 「新 し いハー ド ウ ェ ア タ ーゲ ッ ト を開 く 」 を参照 し て く だ さ い。

4. 図 11 に示す よ う に、 [Hardware Manager] で タ ーゲ ッ ト FPGA を右 ク リ ッ ク し て [Add Configuration Memory Device] ダ イ ア ロ グ を起動 し ます。

図 10 : [Hardware Manager]

X-Ref Target - Figure 11

(23)

5. [Add Configuration Memory Device] ダ イ ア ロ グ ボ ッ ク ス で、 リ ス ト か ら 適切な SPI フ ラ ッ シ ュ を選択 し ます。図 12 に 示す よ う に、 フ ィ ル タ ー オプシ ョ ン と 検索フ ィ ール ド の両方を使用する と 、 検索を大幅に簡略化し て、 オプシ ョ ン を 絞 り 込む こ と がで き ます。 [OK] を ク リ ッ ク し ます。 注記 : SPI の幅が x1、 x2、 ま たは x4 の場合は、 末尾が 「-x1_x2_x4」 (ま たは 「-x1」 や 「-x1_x2」 の場合 も あ り ) で、 末 尾が 「-x1_x2_x4_x8」 ではない SPI フ ラ ッ シ ュ デバ イ ス を使用 し ます。 後者はマ ス タ ー SPI x8 コ ン フ ィ ギ ュ レーシ ョ ン モー ド の場合専用です。

6. 次に表示 さ れ る [Add Configuration Memory Device Completed] ダ イ ア ロ グ ボ ッ ク ス で [OK] を ク リ ッ ク し 、 こ の段階で コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス をプ ロ グ ラ ム し ます。

7. [Program Configuration Memory Device] ダ イ ア ロ グ ボ ッ ク ス で、[Configuration file] の右にあ る 参照ボ タ ン を ク リ ッ ク し て、 以前作成 し た .bin フ ァ イ ルを選択 し ます。 デフ ォ ル ト では、 .bin フ ァ イ ルは次のサブデ ィ レ ク ト リ 内にあ る impl_1 プ ロ ジ ェ ク ト デ ィ レ ク ト リ にあ り ます。

<Project_Dir>\<Project_Name>.runs\impl_1\

注記 : こ のアプ リ ケーシ ョ ン ノ ー ト では、Vivado ツールのプ ロ ジ ェ ク ト サブデ ィ レ ク ト リ の場所を <Project_Dir>、 プ ロ ジ ェ ク ト 名を <Project_Name> と 表記し ます。

8. ボー ド で必要な場合は、 [State of non-config mem I/O pins] を変更し ます。 こ れに よ り 、 プ ロ グ ラ ミ ン グ ビ ッ ト ス ト リ ー ム を読み込んでい る と き に コ ン フ ィ ギ ュ レーシ ョ ン ピ ンの内部終端が指定 さ れます。 こ のオプシ ョ ンは、 SPI フ ラ ッ シ ュ のプ ロ グ ラ ム に適切な BITSTREAM.CONFIG.UNUSEDPIN 設定を持つプ ロ グ ラ ミ ン グ フ ァ イ ル を使用す る よ う Vivado ツールに命令 し ます。 た と えば、 ボー ド の電源投入時にはプルア ッ プ し てはな ら ない非 コ ン フ ィ ギ ュ レーシ ョ ン ピ ンにペ リ フ ェ ラ ルを接続し てい る ボー ド の場合 (かつ、 通常のデザ イ ンでは こ れ ら の信号のプルダ ウ ンがあ る か、 こ れ ら のピ ン を常に能動的に駆動 し てい る 場合) は、 [Pull-down] を選択で き ます。 こ れに よ り 、 一時的なプ ロ グ ラ ミ ン グ ビ ッ ト ス ト リ ームには、 すべての SelectIO イ ン ターフ ェ イ ス ピ ンに内部プルダ ウ ンが付き ます。

X-Ref Target - Figure 12

(24)

° [Erase] : [Address Range] で示 さ れてい る と お り にセ ク タ ーま たはデバ イ ス全体を消去 し ます。 ° [Blank Check] : [Address Range] で示 さ れ る セ ク タ ーが空白であ る か ど う か をチ ェ ッ ク し ます。 ° [Program] : [Configuration file] の フ ァ イ ルを使用 し て SPI デバ イ ス を プ ロ グ ラ ム し ます。

° [Verify] : プ ロ グ ラ ム内容を リ ー ド バ ッ ク 、 [Configuration file] の フ ァ イ ル と 一致す る こ と を検証 し ます。

プ ロ グ ラ ムは [OK] を ク リ ッ ク する と すぐ に始ま り ます。 [Programming Configuration Memory Device] ダ イ ア ロ グ ボ ッ ク ス の内容が読み込ま れ、 [Program Operations] で選択 し た さ ま ざ ま なプ ロ グ ラ ム動作の進捗が表示 さ れます。 消去時間は SPI フ ラ ッ シ ュ の既存の内容に応 じ て大 き く 変動す る 可能性があ る ため、 消去動作の ス テー タ スは予測 さ れません。 プ ロ グ ラ ミ ン グは低速プ ロ セ ス であ り 、 い く つかの要因に よ っ て完了す る ま で多少時間がかか り ます。 予測については、「プ ロ グ ラ ム時間」 を参照 し て く だ さ い。

X-Ref Target - Figure 13

(25)

SPI フ ラ ッ シ ュのプ ロ グ ラ ム : Vivado ツール Tcl バ ッ チ フ ァ イルの例

前のセ ク シ ョ ンで説明 し た IDE フ ロ ーの代替手段 と し て、 非プ ロ ジ ェ ク ト の Vivado ツール フ ロ ー と 組み合わせて使用で き る Tcl バ ッ チ フ ァ イ ルを こ こ に示 し ます。 こ のフ ロ ーを正常に実行す る には、 事前に.bin フ ァ イ ルを作成 し てお く 必 要があ り ます。 次の Tcl ス ク リ プ ト を program_spi.tcl と し て保存する か、 Vivado ツールで ソ ース を記述する と き に必 要に応 じ て命令を調整 し ます。

# Simple Vivado script to program a SPI flash #

# The board should be connected via a programming cable and powered prior to # running.The programming file is specified by the variable

# "programming_files" in this example #

# Run this script from a Vivado command prompt: # vivado -mode batch -source program_spi.tcl open_hw

connect_hw_server -url localhost:3121 current_hw_target [get_hw_targets] open_hw_target

# Set the current Xilinx FPGA device.If more than one FPGA is in the JTAG # chain, you may need to use the get_hw_devices command to help set the proper

# one with the current_hw_target command current_hw_device [lindex [get_hw_devices] 0] # Set my_mem_device variable for the SPI flash device get_cfgmem_parts can be

# used to find the supported flash.See "help get_cfgmem_parts" in the Vivado # Tcl Console when in the Hardware Manager for options which can help narrow # the search.UG908 also lists supported SPI flash devices.Be sure to use the # parts ending with _x1_x2_x4 for width x1, x2, and x4 and parts ending with # _x1_x2_x4_x8 for Dual Quad SPI (x8 width).

set my_mem_device [lindex [get_cfgmem_parts {n25q256-1.8v-spi-x1_x2_x4}] 0] # Set a variable to point the to BIN file to program

set programming_files {top.bin}

# Create a hardware configuration memory object and associate it with the # hardware device.Also, set a variable with which to point to this object set my_hw_cfgmem [create_hw_cfgmem -hw_device \

[lindex [get_hw_devices] 0] -mem_dev $my_mem_device]

# Set the address range used for erasing to the size of the programming file set_property PROGRAM.ADDRESS_RANGE {use_file} $my_hw_cfgmem

# Set the programming file to program into the SPI flash set_property PROGRAM.FILES $programming_files $my_hw_cfgmem

# Set the termination of unused pins when programming the SPI flash set_property PROGRAM.UNUSED_PIN_TERMINATION {pull-none} $my_hw_cfgmem # Configure the hardware device with the programming bitstream

program_hw_devices [lindex [get_hw_devices] 0] # Set programming options

# Do not perform a blank check, but erase, program and verify set_property PROGRAM.BLANK_CHECK 0 $my_hw_cfgmem

set_property PROGRAM.ERASE 1 $my_hw_cfgmem set_property PROGRAM.CFG_PROGRAM 1 $my_hw_cfgmem set_property PROGRAM.VERIFY 1 $my_hw_cfgmem # Now program the part

(26)

SPI フ ラ ッ シ ュ のプ ロ グ ラ ム が正常に完了 し た ら 、 ボー ド の電源 を 入れ直すか、 PROGRAM_B を ア サー ト お よ びデ ィ ア サー ト し て、 FPGA の コ ン フ ィ ギ ュ レーシ ョ ン を開始し ます。 コ ン フ ィ ギ ュ レーシ ョ ンの開始か ら 終了ま での合計時間は、 Vivado ツールの calc_config_time オプシ ョ ン を使用 し て計算で き ます。 詳細は、「 コ ン フ ィ ギ ュ レーシ ョ ン時間」 を参照 し て く だ さ い。

付録

プ ログ ラ ム時間

KCU105 ボー ド で N25QU256A の内容を消去、 プ ロ グ ラ ム、 お よ び検証す る 時間の測定には、 Vivado Design Suite 2014.4 を 使用 し ま し た。 こ れ ら の時間は、 解凍状態の XCKU040 ビ ッ ト ス ト リ ーム (約 128Mb) を対象に、 ボー ド のエ ンベデ ッ ド USB ケーブルを 15MHz で使用 し て得 ら れ ま し た (表 4)。 こ れ ら の値は、 参照用であ り 保証 さ れた値ではあ り ません。

UltraScale FPGA コ ン フ ィ ギ ュ レーシ ョ ン のほかのサ イ ズについては、『UltraScale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 1] の 「デバ イ ス の リ ソ ー ス と コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム の長 さ 」 を参照 し て く だ さ い。

コ ン フ ィ ギ ュ レーシ ョ ン時間

コ ン フ ィ ギ ュ レーシ ョ ン時間は、 コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム サ イ ズ を コ ン フ ィ ギ ュ レーシ ョ ン レー ト と コ ン フ ィ ギ ュ レーシ ョ ン幅の積で割っ た値です。 ただ し 、 起動オプシ ョ ン MATCH_CYCLE ま たは LCK_CYCLE の設定な ど別の要因 も い く つかあ り ます。 こ れ ら のオプシ ョ ンに よ り 、 デザ イ ン内部の ク ロ ッ ク 管理回路が ロ ッ ク ま で待機す る 分 だけ コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク サ イ ク ル数が増加 し 、 その数は変動 し ます。 次の式では、 こ れ ら の設定値が確定 し ていない も の と さ れます。 ほかの要因はすべて軽微であ り 、 一次概算では無視で き ます。 T = コ ン フ ィ ギ ュ レーシ ョ ン時間 (秒) S = ビ ッ ト ス ト リ ーム サ イ ズ (ビ ッ ト ) CR = コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク の周波数 (Hz) W = デー タ バ ス幅 (ビ ッ ト ) 式 1 内部の コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク ソ ース を使用 し て CCLK を駆動す る場合は、 ク ロ ッ ク 耐性を考慮す る必要があ

り ま す。 UltraScale FPGA の場合は、 こ の耐性パ ラ メ ー タ ー FMCCKTOL が UltraScale のデー タ シー ト に記載 さ れてい ま す。 し たがっ て、 コ ン フ ィ ギ ュ レーシ ョ ン時間の範囲は次の と お り です。 式 2 表 4 :  プ ログ ラム時間 動作 時間 (秒) 消去 (1) 163 プ ロ グ ラ ム 223 検証 62 注記: 1. 消去の対象 と な る 事前プ ロ グ ラ ム済みの内容に基づい て、 消去時間は大幅に変動す る 可能性があ り ます。 T = ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐CR WS S 1 F+ MCCKTOL  CR W ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ T S 1 FMCCKTOL  CR W ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  

図 1 : Vivado SPI フ ラ ッ シ ュのプ ログ ラ ミ ング フ ローおよび コ ン フ ィ ギュ レーシ ョ ン フ ロー
図 2 : SPI マス タ ー /ス レーブのイ ン タ ー フ ェ イ ス
図 3  について説明 し ます。
図 5 : マス タ ー SPI の x4 6Bh/6Ch コ マ ン ド
+7

参照

関連したドキュメント

Adaptec U320 SCSI RAID 0 または 1 は、Ultra320 および Ultra160 の SCSI ハードディスク ドライブで動作 するように設計されていますが、従来の

スタンドアロン モードでの Cisco DCNM ISO のインストール 46 ネイティブ HA モードで Cisco DCNM ISO をインストールする 50.. Cisco APIC SE で Cisco DCNM

の商標です。Intel は、米国、およびその他の国々における Intel Corporation の登録商標であり、Core は、Intel Corporation の商標です。Blu-ray Disc

較的⾼温場の場合では,主にアセチレンが⽣成される.⼀⽅で⽐較的低温場の場合で

JohnLoCk,oSemnLums,JamesBurtおよびGmrgeBurtの四名は12月

Microsoft/Windows/SQL Server は、米国 Microsoft Corporation の、米国およびその

リポ多糖(LPS)投与により炎症を惹起させると、Slco2a1 -/- マウス肺、大腸、胃では、アラキ ドン酸(AA)およびエイコサペンタエン酸(EPA)で補正した PGE 2

TBNA Transbronchial needle aspiration (biopsy) : 経気管支針吸引細胞診(生検). TBNB Transbronchial needle biopsy : 経気管支針生検 2)