41
XAPP518 (v1.2) 2013 4 9 japan.xilinx.com 1 © Copyright 2013 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. PCI, PCIExpress, PCIe, and PCI-X are trademarks of PCI-SIG. All other trademarks are the property of their respective owners. 概要 多くのシステムが、 FPGA コンフィギュレーションおよびシステム データの格納用に BPI (バイ ト ペリ フェラル インターフェイス) フラッシュ メモリを使用しています。しかしいったんシステムを実環境に 導入してしまうと、フラッシュ PROM を直接ア ッ プデー ト する こ と は望ま し く ないか、 不可能な場合 がよ く あ り ます。 この問題を解決する 1 つの手段 と し て、 FPGA に接続されている PROM FPGA らプログラムする方法があります。 この方法を、 インシステム プログラミング (ISP) と呼びます。 バッ チ処理 と GUI 操作をサポート した iMPACT ツールの間接プログラムも、 ISP の一例です。 この場合、 iMPACT はホストと FPGA 間の通信チャネルとして JTAG インターフェイス ポート を使用します。 iMPACT から FPGA BIT ファイルを送信し、 FPGA に接続された PROM FPGA からプログラム します。 しかし、 このよ うな JTAG インターフェイス接続を備えた組み込みシステムは多く あ り ません。 通常、 FPGA PCI Express® バス上のエンドポイント デバイスとなっています。 標準の PCIe® ペリフェラ ルでは JTAG インターフェイス チャネルは利用できないため、 エンドポイントの PROM は、 PCIe ステム経由でプログラムする以外に方法はあ り ません。 このアプリケーション ノ ー ト では、 PCIe システムで Virtex®-6Virtex®-7Kintex®-7 FPGA BPI PROM ISP を実行す る リ フ ァ レ ン ス デザインを紹介し、 その方法と注意点について説明します。 はじめに 1 に、 ISP リファレンス デザインの概略ブロック図を示します。 このデザインを構成する主なコン ポーネン ト は、 Integrated Block for PCI Express コア、バッファー、プログラミング ステート マシン (PSM) 3 つです。 この ISP リファレンス デザインは、 ML605VC707KC705 評価ボードをターゲッ トにしています。 ML605 ボードでは、 XC6VLX240T-1FFG1156 FPGA デバイスに 256Mb BPI PROM が接続されてい ます。 アプリケーション ノート : Virtex-6Virtex-7Kintex-7 ファミリ XAPP518 (v1.2) 2013 4 9 PCI Express テクノロジを利用した Virtex-6Virtex-7Kintex-7 FPGA BPI PROM インシステム プログラミング 著者 : Simon Tam X-Ref Target - Figure 1 1 : 概略ブロック図 PROM Programming State Machine Integrated Block for PCI Express Buffer X518_01_093011 In-System Programmer

ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 1

© Copyright 2013 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. PCI, PCIExpress, PCIe, and PCI-X are trademarks of PCI-SIG. All other trademarks are the property of their respective owners.

概要 多くのシステムが、FPGA コンフ ィギュレーシ ョ ンおよびシステム データの格納用に BPI (バイ ト ペリ

フェラル インターフェイス) フラ ッシュ メモ リ を使用しています。 しかしいったんシステムを実環境に

導入してしま う と、 フラ ッシュ PROM を直接アップデートするこ とは望まし くないか、 不可能な場合

がよ くあ り ます。 この問題を解決する 1 つの手段と して、 FPGA に接続されている PROM を FPGA からプログラムする方法があ り ます。 この方法を、 インシステム プログラ ミ ング (ISP) と呼びます。 バッ

チ処理と GUI 操作をサポート した iMPACT ツールの間接プログラムも、 ISP の一例です。 この場合、

iMPACT はホス ト と FPGA 間の通信チャネルと して JTAG インターフェ イス ポー ト を使用します。

iMPACT から FPGA に BIT ファ イルを送信し、 FPGA に接続された PROM を FPGA からプログラム

します。

しかし、 このよ う な JTAG インターフェイス接続を備えた組み込みシステムは多くあ り ません。 通常、

FPGA は PCI Express® バス上のエンドポイン ト デバイス となっています。 標準の PCIe® ペリ フェラ

ルでは JTAG インターフェイス チャネルは利用できないため、 エンドポイン トの PROM は、 PCIe システム経由でプログラムする以外に方法はあ り ません。

このアプリ ケーシ ョ ン ノートでは、 PCIe システムで Virtex®-6、 Virtex®-7、 Kintex®-7 FPGA の BPIPROM に ISP を実行する リ ファレンス デザインを紹介し、 その方法と注意点について説明します。

はじめに 図 1 に、 ISP リ フ ァレンス デザインの概略ブロ ッ ク図を示します。 このデザインを構成する主なコン

ポーネン トは、 Integrated Block for PCI Express コア、 バッファー、 プログラ ミ ング ステート マシン

(PSM) の 3 つです。

この ISP リ ファレンス デザインは、 ML605、 VC707、 KC705 評価ボードをターゲッ トにしています。

ML605 ボードでは、 XC6VLX240T-1FFG1156 FPGA デバイスに 256Mb BPI PROM が接続されてい

ます。

アプリケーシ ョ ン ノート : Virtex-6、 Virtex-7、 Kintex-7 ファ ミ リ

XAPP518 (v1.2) 2013 年 4 月 9 日

PCI Express テク ノロジを利用した Virtex-6、Virtex-7、 Kintex-7 FPGA の BPI PROM インシステム プログラ ミング著者 : Simon Tam

X-Ref Target - Figure 1

図 1 : 概略ブロック図

PR

OM

Pro

gram

min

gS

tate

Mac

hine

Inte

grat

ed B

lock

for

PC

I Exp

ress

Buffer

X518_01_093011

In-System Programmer

Page 2: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 2

この BPI PROM は Numonyx 製 JS28F256P30T95 [参照 1] です。この BPI PROM には 16 ビッ ト デー

タ バスがあ り、 同期バース ト読み出しおよびバッファード プログラ ミ ング モードをサポートするこ と

で高性能データ アクセスを実現しています。 メモ リ空間全体は複数のブロ ッ クに分割されており、 ブ

ロ ッ ク単位で個別に消去とプログラムが可能です。 この PROM は 上位のブート コンフ ィギュレー

シ ョ ン デバイスで、アドレス 0 から開始する 初の 255 ブロ ッ クは各 128KB です。 上位のアドレス

を占める残り 4 つのブロ ッ クは、 各 32KB です。 図 2 にアドレス とブロ ッ クのマッピングを示します。

KC705 ボードでは、 XC7K325T-2FFG900C FPGA デバイスに 1Gb BPI PROM が接続されています。

この BPI PROM は、JS28F256P30T95 と類似の Numonyx 製 PC28F00AP30TF [参照 1] です。この ISPリ ファレンス デザインは、 初の 24 アドレス ビッ ト しか接続していません。 したがって、 アドレス指

定できるのは PROM の 4 つの 32MB 領域のうち 1 つのみです。 アドレスの上位 2 ビッ ト (A26、 A25)は、 それぞれ DIP スイ ッチ SW13-1 と SW13-2 に接続されています。

VC707 ボードでは、 XC7VX485T-2FFG1761C FPGA デバイスに 128MB BPI PROM が接続されてい

ます。 この BPI PROM は Numonyx 製 PC28F00AG18FE です。 この ISP リ ファレンス デザインは、

初の 24 アドレス ビッ ト しか接続していません。 したがって、 アドレス指定できるのは PROM の 4 つの 32MB 領域のうち 1 つのみです。 アドレスの上位 2 ビッ ト (A26、 A25) は、 それぞれ DIP スイ ッチ

SW11-1 と SW11-2 に接続されています。

Integrated Block for PCI Express

リ ファレンス デザインは、 Virtex-6 および Kintex-7 FPGA に内蔵の Integrated Block for PCI Expressコア (CORE Generator™ ツールで生成) と 8 つの GTX ト ランシーバーを使用します。物理層は、8 レー

ンを使用して Gen1 のレート (2.5Gb/s) で動作します。 外部基準クロ ッ クの周波数は 100MHz です。

64 ビッ ト幅の ト ランザクシ ョ ン層インターフェイス データパスは 250MHz で動作します。ベース アド

レス レジスタ 2 (BAR2) は ISP 用に予約されています。

すべての PROM データは、 ホス トから PIO (Programmed I/O) モードでバッファーに書き込まれます。

したがって、 ISP は受信したデータのアドレスをデコード しません。 ホス ト ソフ ト ウェアは、 BAR2 で定義されたメモ リ範囲へデータを逐次的にコピーするだけでかまいません。

X-Ref Target - Figure 2

図 2 : JS28F256P30T95 のアドレス マップ

64 Kword Block

64 Kword Block

16 Kword Block16 Kword Block16 Kword Block16 Kword Block

0x000000–0x00FFFF (block0)

0x010000–0x01FFFF (block1)

0xFF0000–0xFF3FFF (block255)0xFF4000–0xFF7FFF (block256)0xFF0000–0xFFBFFF (block257)0xFF4000–0xFFFFFF (block258)

256 Mb

64 Kword Block

0xFE0000–0xFEFFFF (block254)

X518_02_030812

1 word = 16 bits

Page 3: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

バッファー

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3

図 3 に、 受信パス側の Integrated Block for PCI Express とバッファー FIFO の概略接続図を示します。

バッファー バッファーはプログラマブル ロジッ ク内のビルト イン FIFO にインプリ メン ト されており、ク ロ ッ ク ドメ イン間を切り替えるバッファーと して機能します。 FIFO の片方は Integrated Block for PCI Expressコアのクロ ッ ク ド メ イン (動作周波数 250MHz) に接続されます。 FIFO のも う片方は PROM プログラ

マのクロ ッ ク ド メ イン (周波数約 20MHz) に接続されます。FIFO サイズは 2KB で、これはバッファー

ド プログラ ミ ング モードで使用する PROM 内部バッファーの 2 倍のサイズに相当します。 ホス ト アプリ ケーシ ョ ンは一度に 64 バイ ト を書き込み、PROM が現在のデータ セッ トのプログラムを完了して

から次の 64 バイ トのデータを書き込みます。 このため、 データ オーバーフローは起こ り ません。 デー

タ オーバーフ ローを防ぐ も う 1 つの仕組みと し て、 FIFO がフルに近づ く と Integrated Block forPCI Express からのデータ供給を一時停止します。

プログラ ミング ステート マシン (PSM)

PSM は、 従来の PROM プログラ ミ ングのセッ ト アップと実行を制御します。 PROM のプログラムを

開始する前に、データを書き込むターゲッ ト ブロ ッ ク全体を消去する必要があ り ます。プログラム済み

ビッ ト (0) を未プログラムの状態 (1) に変更する手段は、 ブロ ッ ク全体の消去以外にあ り ません。 また、

各ブロ ッ クはデフォルトで書き込み保護が有効になっています。 したがって、 消去コマンドを実行する

前にターゲッ ト ブロ ッ クの書き込み保護 (ロ ッ ク ) を解除する必要があ り ます。 PSM は、 ブロ ッ クの

ロ ッ ク解除と消去コマンドのシーケンスをサポート しています。

X-Ref Target - Figure 3

図 3 : FIFO と Integrated Block for PCI Express の概略ブロック図

din[31:0]

Wr_enwr_clk

FIFO

Post_wr_data[31:0]

Write_en

wr_data_o[31:0] wr_data_i[31:0]

MEM_ACCESSRX ENGINE

Trn_rd[63:0] Trn_rd[63:0]

Integrated Block forPCI Express

wr_en_o

pause

pause

wr_busy_owr_busy_i

wr_en_oTrn_rdst_rdy_n

Trn_rdst_rdy_n

TX

RX

X518_03_093011

Page 4: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

プログラ ミング ステート マシン (PSM)

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 4

図 4 に、 BPI PROM とバッファー FIFO 間に接続された PSM を示します。

PSM はバッファード プログラ ミ ング モードをサポート しており、 高性能プログラ ミ ングが可能です。

バッファード プログラ ミ ングでは、複数バイ トのデータを一度に書き込むこ とができます。 この機能に

よ り、 バッファーを使用しないプログラ ミ ング モードに比べ、 オーバーヘッ ドが大幅に削減されます。

プログラマは、 このモードで書き込み可能な 大バイ ト数である 64 バイ ト をバッファーに書き込みま

す。 PSM は PROM へのデータのプログラムのみをサポート し、 読み出しは実行しません。

X-Ref Target - Figure 4

図 4 : プログラマのブロック図

PSM

JS28F256P30T95 (ML605)/

A[24:1]

DQ[15:0]

WE#

OE#

CE#

Addr[23:0]

DQ_I[15:0]WE_n

OE_n

CE_n

WP#

ADV#

WAIT

CLK

n/c

V

Data[31:0]

RDEN

Full

Empty

DATA[31:0]

RD_EN

FIFO_Full

FIFO_Empty

Error[2:0]

PROG_RDY

DQ_O[15:0]

TRI_CTRL

ENB

Prog_clk

FPGA

FIFO

X518_04_032013

CCPC28F00AP30TF (KC705)/PC28F00AG18FE (VC707)

Page 5: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

プログラ ミング ステート マシン (PSM)

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 5

PSM は、 メ イン ステート マシンとサブループで構成され、 PROM プログラ ミ ングのネイティブ コマ

ンドを各サブループで実行します。 図 5 に、 メ イン コマンド ループを示します。

X-Ref Target - Figure 5

図 5 : メイン コマンド ループ

Idle

Unlock?

Erase?

Program?

FIFOEmpty?

Read a Wordfrom FIFO

StartAddress?

EndAddress?

Unlock Loop

Erase Loop

Program Loop

Register StartAddress

Register EndAddress

X518_05_022212

Y

Y

Y

Y

Y

Y

N

N

N

N

N

N

Page 6: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

プログラ ミング ステート マシン (PSM)

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 6

図 6 に、 Unlock コマンドループを示します。

X-Ref Target - Figure 6

図 6 : Unlock コマンド ループ

Write x60 to DQ

Write xD0 to DQ

Write x90 to DQ

Read StatusRegister

SR = x80?

LastBlock?

MaximumUnlock TimeReached?

Error

Idle

N

Y

Y

N

N

Y

Increment UnlockTimeout Counter

X518_06_022212

Increment BlockCount

Page 7: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

プログラ ミング ステート マシン (PSM)

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 7

図 7 に、 Erase コマンド ループを示します。

X-Ref Target - Figure 7

図 7 : Erase コマンド ループ

Erase loop

Write x50 to DQWrite Address

Write x20 to DQ

Write xD0 to DQ

Read StatusRegister

SR = x80?

LastBlock?

MaximumErase TimeReached?

Error = x3

Idle

N

Y

Y

N

N

Y

X518_07_090211

Increment EraseTimeout Counter

- Increment Block- Calculate Address

SR > x80? Error = x2

N

- Load First Block Number- Calculate Address

Y

Page 8: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

プログラ ミング ステート マシン (PSM)

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 8

図 8 に、 Program コマンド シーケンスを示します。

X-Ref Target - Figure 8

図 8 : Program コマンド ループ

Program Loop

Write xE8 to DQWrite Address

Write x1FF to DQ

FIFOEmpty?

N

Y

Y

N

Write Top Half Wordto DQ FIFO

Empty?

Y

N

SR = x80?

Read StatusRegister

MaximumProgram

Ready TimeReached?

Error = x4

Read FIFO

Write Bottom HalfWord to DQ

PROMBufferFull?

FIFOEmpty?

Read StatusRegister

N

EndAddress

Reached?

YN N

N

Write xD0 to DQIncrement Address

PROM BufferFull?

Y

FIFOEmpty?

Y

SR = x80?

ProgramDone?

Idle

MaximumBuffer Ready

Timeout?

Error = x5

Y

N

N

Y

X518_08_022212

N

N

YY

Y

Y

Page 9: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

プログラ ミング ステート マシン (PSM)

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 9

表 1 に、 推奨されるプログラ ミ ング コマンド シーケンス と各コマンドの定義をま とめます。

図 9 と図 10 に、 バッファード プログラ ミ ングの開始および終了時のタイ ミ ング図を示します。

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

1. CLK はプログラマ モジュールのクロ ッ クです。

2. ADDR は、 PROM バッファーに書き込む 256 ワードの開始アドレスです。

3. PROM からのステータス出力は xx80 です。

表 1 : ホスト ソフ トウェアのコマンド シーケンス

シーケンス コマンド ワード定義 説明

1 Start_Address 0x5341[aaaa] 開始ブロッ ク アドレスを指定します。

2 End_Address 0x45[aaaaaa]PROM ワードの終了ア ド レスを指定します。

コマンド ワードのビッ ト 23 ~ 0 で終了アドレ

スを指定します。

3 Unlock 0x556E6C6BStart_Address コマンド と End_Address コマン

ドで指定したア ド レスの間の連続するブロ ッ

クの書き込み保護を解除します。

4 Erase 0x45726173Start_Address コマンドで指定したアド レスか

ら End_Address コマンドで指定したアド レス

までの連続するブロ ッ クを消去します。

5 Program 0x50726F67

プログラム シーケンスを開始します。プログラ

マがバッファーからデータを読み出し、終了ア

ドレスに達するまで PROM への書き込みを実

行します。

X-Ref Target - Figure 9

図 9 : バッファード プログラ ミングの開始時

X518_09_091211

Addr + 1 Addr + 2 Addr + 3 Addr + 4

00E8 0000 01FF

D1D2D3D4

D2D1 D4D3

D5D6D7D8 D9D10D11D1250726F67

D6D5 D8D7 D10D9

CLK

A[23:0]

DQ[15:0]

WE_N

OE_N

TRI_CTRL

FIFO_RD_EN

FIFO_EMPTY

DATA[31:0]

PROG_RDY

Addr

xx80

000000

0000

XXXXXXXX

Page 10: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

プログラ ミング ステート マシン (PSM)

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 10

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

1. CLK はプログラマ モジュールのクロ ッ クです。

2. ADDR は、 PROM バッファーに書き込む 256 ワードの開始アドレスです。

3. PROM からのステータス出力は xx00 と xx80 です。

X-Ref Target - Figure 10

図 10 : バッファード プログラ ミングの終了時

CLK

A[23:0]

DQ[15:0]

WE_N

OE_N

TRI_CTRL

FIFO_RD_EN

FIFO_EMPTY

DATA[31:0]

Addr + 253

D1020D1019 D1022D1021 D1024D1023

Addr + 254 Addr + 255

00D0 0000 0000 00E8

Addr + 256Addr + 255Addr + 252

D1018D1017

D1017D1018D1019D1020D1021D1022D1023D1024 D1021D1022D1023D1024

0000

xx80xx00

X518_10_091211

Page 11: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

デモ用ホスト ソフ トウェア

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 11

デモ用ホスト ソフ トウェア

リ ファレンス デザインには、デモ用のホス ト ソフ ト ウェアが含まれています。デモ用ホス ト ソフ ト ウェ

アは、ド ライバーとデモ アプリ ケーシ ョ ンで構成されます。図 11 に、このアプリ ケーシ ョ ンのスク リー

ンシ ョ ッ ト を示します。このアプリ ケーシ ョ ンの Visual Basic 6 ソース コードがリ ファレンス デザイン

に付属しています。 ド ライバー ファ イルは、 サードパーティ ベンダーの Jungo 社 [参照 2] からバイナ

リ形式のみで提供されています。 ソース コードの入手については、 Jungo 社に直接お問い合わせくださ

い。

このアプリ ケーシ ョ ンには、 次の 2 つの機能ボタンがあ り ます。

• [Erase All Blocks]

• [Program PROM]

[Erase All Blocks] をク リ ッ クする と、 PROM のすべてのブロ ッ クが消去されます。 [Program PROM]をク リ ッ クする と、 PROM ファ イルの選択画面が表示されます。 PROM ファ イルを選択する とアプ リ

ケーシ ョ ンは一連のネイテ ィブ PROM コマン ド を実行し、 ユーザー PROM フ ァ イル内のデータを

PROM にプログラムします。 プログラ ミ ングのステータス と進行状況が、 コンソール ログ ウ ィンド ウ

に表示されます。 PROM プログラム関数のソース コードは、 「付録 A」 に掲載しています。

PROM プログラム関数

PROM プログラム関数は主に 3 つのセクシ ョ ンで構成されています。

• ファ イル解析

• プログラム セッ ト アップ

• PROM プログラ ミ ング

X-Ref Target - Figure 11

図 11 : XAPP518 のデモ アプリケーシ ョ ン

X518_12_091311

Page 12: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

デモ用ホスト ソフ トウェア

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 12

ファイル解析

ファ イル解析では、 アプ リ ケーシ ョ ンが PROM ファ イル全体を読み出し、 開始アドレス と終了アドレ

ス (いずれも拡張線形アドレス = ELA) を決定し、 PROM データ サイズを計算します。 図 12 に、 この

フロー図を示します。

X-Ref Target - Figure 12

図 12 : ファイル解析のフロー図

<PROM>.mcs Open PROM File

EOF?

Read a Line from File

Record Last ELA

ExtendedAddress Record?

Start BlockDefined?

Record Start ELA

Data Record?Close File

Record LastAddress

Command Loop

X518_13_090211

Page 13: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

デモ用ホスト ソフ トウェア

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 13

プログラム セッ トアップ

プログラム セッ ト アップでは Unlock、 Erase、 Program コマンドを発行し、 この後に実行されるプログ

ラ ミ ングの準備をします (図 13)。

X-Ref Target - Figure 13

図 13 : プログラム セッ トアップのフロー図

X518_14_090211

Calculate File Size

Calculate File StartAnd End Blocks

Write StartAddr toBuffer

Write EndAddr toBuffer

Write UnlockCommand to Buffer

Write EraseCommand to Buffer

Read Ready Status

Ready?

Read Ready Status

Ready?

Memory Copy

Memory Copy

Write ProgramCommand to Buffer

Memory Copy

Program

Program Setup

N Y

Y

N

Page 14: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

デモ用ホスト ソフ トウェア

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 14

PROM プログラ ミング

PROM プログラ ミ ングでは、PROM ファ イルから一度に 64 バイ トの連続するデータを読み出し、ロー

カル バッファーに格納してからバッファー内のデータをプログラマのターゲッ ト アドレスへコピーし

ます (図 14)。 モニター ルーチンは Programmer Ready ステータスをポーリ ングし、 PROM データの

後のバイ トが書き込まれるまでプログラ ミ ングを繰り返し実行します。

X-Ref Target - Figure 14

図 14 : PROM プログラ ミングのフロー図

Open PROM File

EOF?

Read ProgrammerStatus

Status =Ready?

Update Word Count

32 WordsWritten?

Read a Line fromFile

RecordType =EOF?

Exit

RecordType =Data?

Write AvailableData to Buffer

Status =Program Error?

Close File

Copy 64 Bytesto Target

N

Exit

N

Y

Y

N

Y

Y

N

N

N

Y

X518_15_022212

Y

Page 15: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

MCS PROM ファイル フォーマッ ト

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 15

MCS PROM ファイル フォーマッ ト

このデモ アプ リ ケーシ ョ ンがサポー ト する フ ァ イル フ ォーマッ ト は、 Intel MCS-86 HexadecimalObject (MCS) のみです。 こ こでは、 MCS ファ イルの構成について簡単に説明します。 このデモ アプリ

ケーシ ョ ンは、 このセクシ ョ ンおよび 「ELA レコード」、 「MCS ファ イルの例」 の項で説明する定義と

規則に従ってファイルを解釈します。

MCS ファ イルは、 MCS ファ イル フォーマッ トに基づいて記述された、 複数行からなる ASCII テキス

ト ファ イルです。 1 つの MCS ファ イルには任意の数の 16 進数レコードを格納できます。 1 レコード

は、 次のフ ィールドで構成されます。

<delimiter><DataLength><Address><RecordType><Data><CheckSum>

表 2 に、 各フ ィールドの定義をま とめます。

ELA レコード

ホス ト アプリ ケーシ ョ ンは ELA レコード もサポート しています。 ELA レコードには、 データ アドレ

スの上位 2 バイ トが格納されます。 ELA レコードの DataLength は常に 2 バイ トです。

ELA レコードが読み出される と、 データ フ ィールドに格納された ELA が保存され、 それ以降に MCSファ イルから読み出されるレコードに適用されます。 この線形アドレスは、 次の ELA レコードによっ

て変更されるまで有効です。

データ レコードの物理メモ リ アドレスは、 各レコードのアドレス フ ィールドの値と ELA レコードの

アドレス データをシフ ト した値を加算して取得します。物理メモ リ アドレスの求め方の詳細は、「MCSファ イルの例」 で説明します。

表 2 : MCS レコードの各フ ィールドの定義

フ ィールドフ ィールド長

(バイ ト )定義

Delimiter N/A 16 進数レコードの開始を示します。 レコードの開始は常にコロン (:)で示されます。

DataLength 1 レコードに含まれるデータのバイ ト数を表します。

Address 2 レコードに含まれるデータの開始アド レスの下位 2 バイ ト を格納し

ます。

RecordType 1

次のいずれかのレコード タイプを示します。

• 00 = データ レコード

• 01 = EOF (End-of-File) レコード

• 02 = 拡張セグメン ト アドレス レコード

• 04 = 拡張線形アドレス レコード

Data 0-255 DataLength フ ィールドで指定したバイ ト数のデータを格納します。

CheckSum 1 レコード全体のチェッ クサムを格納します。

Page 16: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

MCS PROM ファイル フォーマッ ト

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 16

MCS ファイルの例

表 3 に、 iMPACT ツールで生成した MCS ファ イルのレコード フ ィールドの例を示します。 このセク

シ ョ ンでは、 これらフ ィールドの解釈方法について説明します。

レコード 1 は物理アドレスの上位 2 バイ ト を設定します。 このアドレスは、 レコード 8 で次の ELA レコードまで有効です。 表 4 で、 レコード 1 の各フ ィールドについて説明します。

レコード 2 ~ 7 は通常のデータ レコードです。表 5 で、レコード 7 の各フ ィールドについて説明します。

表 3 : MCS PROM ファイルの例

レコード 内容

1 :020000040000FA

2 :10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00

3 :10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0

4 :100020000000DD0044882200FFFFFFFFFFFFFFFF0D

5 :10003000995566AA00040000400C800000000000F2

6 :10004000000C80010000000000040000000C800192

7 :100050000000E0000004000000040000400C8004E8

8 :020000040021D9

9 :1000000000000000000000000000000000000000F0

10 :10001000000C80040C008821800C600200000000AD

11 :0CBB7000000400000004000000040000BD

12 :00000001FF

表 4 : レコード 1 の説明

フ ィールド 内容 説明

DataLength 02 データ フ ィールドに 2 バイ トのデータが含まれるこ とを示します。

Address 0000 ELA レコードの場合、 Address フ ィールドは常に 0x0000 です。

RecordType 04 ELA レコードであるこ とを示します。

Data 0000 アドレスの上位 2 バイ トは 0x0000 です。

CheckSum FA チェッ クサムは 0xFA です。

表 5 : レコード 7 の説明

フ ィールド 内容 説明

DataLength 10 データ フ ィールドに 16 バイ トのデータが含まれるこ とを示します。

Address 0050このアドレス フ ィールド とレコード 1 で定義された現在の ELA を連結したものが絶対アドレス とな り ます。この場合は、0x00000050です。

RecordType 00 通常のデータ レコードであるこ とを示します。

Data <data> 全部で 16 バイ トのデータが含まれます。

CheckSum E8 チェッ クサムは 0xE8 です。

Page 17: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 17

レコード 8 は、 物理アドレスの上位 2 バイ ト を更新します。 こ こで指定したアドレスは、 ファ イルの終

わり まで有効です。 表 6 で、 レコード 8 の各フ ィールドについて説明します。

レコード 9 ~ 11 は通常のデータ レコードです。レコード 11 は 後のデータ レコードで、多くの場合、

データ バイ ト数は 16 バイ ト未満です。 表 7 で、 レコード 11 の各フ ィールドについて説明します。

リファレンス デザインのデモ

こ こでは、 リ ファレンス デザインのデモのセッ ト アップと実行の手順について説明します。 このデモで

は、 Windows XP が動作するホス ト システムに接続した ML605、 VC707、 KC705 ボード上の BPIPROM をプログラムします。 このリ ファレンス デザインには、作成済みの BIT ファ イルとホス ト ソフ

ト ウェア アプリ ケーシ ョ ンが含まれます。

システム要件

このデモに必要なものは、 次のとおりです。

• ML605 デモ プラ ッ ト フォーム (XC6VLX240T-FF1156 プロダクシ ョ ン デバイス搭載)、VC707 評価ボード (XC7VX485T-2FFG1761C 搭載)、KC705 評価ボード (XC7K325T-2FFG900C 搭載) のい

ずれか

• Windows XP サービス パッ ク 3 をインス トールした x86 システム

リ ファレンス デザインのデモを実行するには、 次の手順に従います。

1. xapp518.zip ファ イルに含まれる ML605.zip、 VC707.zip、 KC705.zip のいずれかを <ref_design_dir> ディ レク ト リに展開します。

2. <ref_design_dir>\sw\Jungo\system ディ レク ト リのファ イルをすべて <WindowsXP_install_path>\system32 にコピーします。

これによ り、Jungo WinDriver ライブラ リ と ド ラ イバー (rev. 10.2) が Windows XP にインス トール

されます。 コピー先ディ レク ト リに COMDLD32.OCX が存在する場合は、 バッ クアップを保存して

から上書きして ください。

3. 各ボードの DIP スイ ッチを次のとおりに設定し、 BPI フラ ッシュ プログラムを有効にします。

表 6 : レコード 8 の説明

フ ィールド 内容 説明

DataLength 02 データ フ ィールドに 2 バイ トのデータが含まれるこ とを示します。

Address 0000 ELA レコードの場合、 Address フ ィールドは常に 0x0000 です。

RecordType 04 ELA レコードであるこ とを示します。

Data 0021 アドレスの上位 2 バイ トは 0x0000 です。

CheckSum D9 チェッ クサムは 0xD9 です。

表 7 : レコード 11 の説明

フ ィールド 内容 説明

DataLength 0C データ フ ィールドに 12 バイ トのデータが含まれるこ とを示します。

Address BB70このアドレス フ ィールド とレコード 1 で定義された現在の ELA を連結したものが絶対アドレス とな り ます。この場合は、0x0021BB70です。

RecordType 00 通常のデータ レコードであるこ とを示します。

Data <data> 12 バイ トのデータが含まれます。

CheckSum E8 チェッ クサムは 0xBD です。

Page 18: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 18

• ML605 ボードの場合 :

- S2-1 = ON

- S2-2 = ON

- S2-3 = OFF

- S2-4 = ON

- S2-5 = ON

- S2-6 = OFF

• VC707 ボードの場合 :

- S11-1 = OFF

- S11-2 = OFF

- S11-3 = OFF

- S11-4 = ON

- S11-5 = OFF

• KC705 ボードの場合 :

- S13-1 = OFF

- S13-2 = OFF

- S13-3 = OFF

- S13-4 = ON

- S13-5 = OFF

4. DIP スイ ッチを次のとおりに設定し、CompactFlash カードからの読み込みを無効にします (ML605ボードのみ)。

• S1-1 = OFF

• S1-2 = OFF

• S1-3 = OFF

• S1-4 = OFF

5. ホス ト システムの PCIe 空きスロ ッ トに各ボードを挿入します。

a. ML605 ボードの場合 :

- ATX (Advanced Technology eXtended) 電源ケーブルを J25 に接続します。

- スイ ッチ SW2 を ON の位置にします。

b. VC707 ボードの場合 :

- 6 ピン ミ ニフ ィ ッ ト コネクタ J18 に電源を正し く接続します。

- スイ ッチ SW12 を ON の位置にします。

c. KC705 ボードの場合 :

- 6 ピン ミ ニフ ィ ッ ト コネクタ J49 に電源を正し く接続します。

- スイ ッチ SW15 を ON の位置にします。

6. システムの電源を投入します。

このデモ アプリ ケーシ ョ ンは、PROM アドレス範囲内のアドレスから P30 BPI PROM をプログラ

ムできます。 こ こからは、 開始アドレスを指定して PROM ファ イルを作成する手順について説明

します。

7. 表 8 に示した PROMGen コマンド オプシ ョ ンを使用して、 アプリ ケーシ ョ ン用の PROM ファ イ

ルを作成します。

Page 19: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 19

8. シェルまたはコマンド プロンプ トで次に示すコマンド ラインを実行します。 このコマンドを実行

する と、 BIT フ ァ イル <user_bit_file> から 32MB BPI PROM を ターゲ ッ ト にし た MCSフォーマッ トのファ イル (開始アドレス 0x800000) が作成されます。

promgen -w -s 32768 -p mcs -data_width 16 -o <PROM_File.mcs> -u 0x800000 <user bit_file>

9. 次のコマンドを実行して、 このファ イルを MS-DOS 互換フォーマッ トに変換します。

unix2dos <PROM_File.mcs>

注記 : 改行コードの違いによ り、 このデモ アプリ ケーシ ョ ンは PROMGen で生成した MCS ファ

イルを正し く読み込むこ とができません。 DOS 互換フォーマッ ト以外の PROM ファ イルを使用し

た場合、 デモ アプ リ ケーシ ョ ンはハングします。 改行コードの変換には、 unix2dos などのシェア

ウェアを利用するこ とを推奨します。 unix2dos は多くのパブリ ッ ク ソフ ト ウェア ダウンロード サイ トで入手できます。

注記 : こ こからの手順では、 BPI プログラマ リ ファレンス デザインが有効になるよ うに FPGA デバイスをコンフ ィギュレーシ ョ ンします。

10. ケーブルを接続します。

a. ML605 ボードの場合 :

- USB-mini USB ケーブルを使用して J22 コネクタ とホス ト システムを接続します。

b. VC707 ボードの場合 :

- プラ ッ ト フォーム ケーブル USB II を使用してボードの J4 とホス ト システムを接続しま

す。

c. KC705 ボードの場合 :

- プラ ッ ト フォーム ケーブル USB II を使用してボードの J60 とホス ト システムを接続し

ます。

11. iMPACT を起動し、 [iMPACT Flows] パネルの [Boundary Scan] をク リ ッ ク します。

12. ツールバーの [Initialize Chain] をク リ ッ ク します。

13. スキャン チェーンに表示された FPGA デバイスを右ク リ ッ ク して、 [Assign New ConfigurationFile] をク リ ッ ク します。

a. ML605 ボードの場合、 次のファイルを選択します。

<ref_design_dir>\config\bitfile\PCIe_ISP_top_ML605.bit

a. VC707 ボードの場合、 次のファイルを選択します。

<ref_design_dir>\config\bitfile\PCIe_ISP_top_VC707.bit

b. KC705 ボードの場合、 次のファイルを選択します。

<ref_design_dir>\config\bitfile\PCIe_ISP_top_KC705.bit

ML605 ボードの場合、 iMPACT の画面は図 15 のよ うにな り ます。

表 8 : PROMGen オプシ ョ ン

オプシ ョ ン 説明

-s <PROM size> 2 のべき乗でサイズを指定します。

-p <format> このアプリ ケーシ ョ ンでサポート されるのは MCS フォーマッ トのみです。

-data_width ターゲッ ト PROM のデータ幅は 16 です。

-o PROM ファ イル名

-u 開始アドレス

Page 20: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 20

X-Ref Target - Figure 15

図 15 : FPGA デバイスへのコンフ ィギュレーシ ョ ン ファイルの割り当て

X518_16_092111

Page 21: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 21

14. FPGA デバイスを再度右ク リ ッ ク して、 [Program] をク リ ッ ク します。 これで FPGA デバイスが

BPI プログラマでコンフ ィ ギュ レーシ ョ ン されます。 コンフ ィ ギュ レーシ ョ ンが完了する と、

iMPACT の画面は図 16 のよ うになり ます。

注記 : ML605 ボードの場合は、MMCM Locked (DS21) および Link Ready (DS22) の LED が点灯

します。 VC707 ボードの場合は、 LED DS0、 DS1、 DS2 が点灯します。 LED DS3 は点滅します。

KC705 ボードの場合は、 LED DS0、 DS1、 DS2 が点灯します。 LED DS3 は点滅します。

15. ホス ト システムを再起動します。

注意 : システムをシャッ ト ダウンして電源を入れ直すのではなく、 必ず再起動 (ウォーム リセッ ト )してください。 新し く コンフ ィギュレーシ ョ ンした機能 (BPI プログラマ) を検出して認識させるに

は、 ウォーム リセッ トが必要です。

こ こからの手順では、ホス ト システムから BPI PROM をプログラムするためのデモ アプリ ケーシ ョ ン

のセッ ト アップと使用方法について説明します。

X-Ref Target - Figure 16

図 16 : FPGA コンフ ィギュレーシ ョ ン成功

X518_17_092111

Page 22: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 22

16. Windows が再起動したら、 次のバッチ ファ イルを実行してプログラマのド ライバーをインス トー

ルします。

sw\Jungo\driver\install_XAPP518_driver.bat

このバッチ ファ イルによってインス トールされる ド ライバーは、DEVICE と PR_PCIe_V6 の 2 つです。 インス トールが完了する と、 Windows デバイス マネージャーの [Jungo] 直下にこれら 2 つのド ライバーが表示されます (図 17)。

17. アプリ ケーシ ョ ン <ref_design_dir>\sw\XAPP518_PCIe_ISP.exe を実行します。

18. [Program PROM] をク リ ッ ク します。 図 18 に示したダイアログ ボッ クスが表示されます。

19. 手順 7 と手順 9 で作成したターゲッ ト PROM ファ イルを選択します。

または、 次のディ レク ト リにある生成済み PROM ファ イルを選択するこ と もできます。

<ref_design_dir>\config\PROM\XAPP518_PROM_img.mcs

X-Ref Target - Figure 17

図 17 : デバイス マネージャーのド ライバー リス ト

X518_18_081911

Page 23: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 23

20. [Open] をク リ ッ ク します (図 18)。

アプ リ ケーシ ョ ンはただちにプログラムを開始し、 そのステータス と進行状況がコンソール ログ ウ ィ

ンド ウに表示されます (図 19)。

X-Ref Target - Figure 18

図 18 : PROM ファイルの選択

X-Ref Target - Figure 19

図 19 : プログラ ミングのステータスと進行状況

X518_19_081911

X518_20_091611

Page 24: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 24

PROM のプログラム完了後、 iMPACT を使用して PROM の内容を検証し、正し くプログラムされたか

ど うかを確認できます。 こ こからは、 iMPACT で検証を実行するためのセッ ト アップ手順について説明

します。

21. iMPACT を起動し、 再度 [iMPACT Flows] パネルの [Boundary Scan] をク リ ッ ク します。

22. [OK] をク リ ッ ク します。

23. ターゲッ ト FPGA を右ク リ ッ ク します。

24. [Add SPI/BPI Flash] をク リ ッ ク します (図 20)。X-Ref Target - Figure 20

図 20 : iMPACT で BPI フラッシュを追加

X518_21_081911

Page 25: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 25

25. ダイアログ ボッ クスでターゲッ ト PROM ファ イルを選択します。 ML605 ボードの場合、 [SelectAttached SPI/BPI] で BPI PROM に [28F256P30] を選択し、 RS ピンに [24:23] を選択します (図 21)。 VC707 ボードの場合は、 BPI PROM に [28F00FAG18F] を選択し、 RS ピンに [25:24] を選択します。 KC705 ボードの場合は、 BPI PROM に [28F00AP30] を選択し、 RS ピンに [25:24]を選択します。

26. ターゲッ ト FPGA に接続された緑の [FLASH] デバイス アイコンをク リ ッ ク します。

27. [iMPACT Processes] パネルの [Verify] をダブルク リ ッ ク します (図 22)。

注記 : この手順を実行する と、 FPGA デバイスは iMPACT の BPI プログラマで再びコンフ ィギュ

レーシ ョ ンされるため、 ISP は消去されます。

ISP を再度使用するには、 手順 14 からの操作を実行して ください。

X-Ref Target - Figure 21

図 21 : iMPACT の BPI PROM セッ トアップ画面

X518_22_081911

Page 26: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 26

PROM ファ イルのサイズによっては、iMPACT による PROM の内容のリードバッ ク と検証に時間がか

かる場合があ り ます。 内容が正し く一致する と、 検証が成功したこ とが図 23 のよ うに表示されます。

X-Ref Target - Figure 22

図 22 : iMPACT での BPI PROM の検証

X518_23_081911

Page 27: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのデモ

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 27

X-Ref Target - Figure 23

図 23 : PROM の検証成功

X518_24_081911

Page 28: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

フェイルセーフ PROM アップデート

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 28

フェイルセーフ PROM アップデート

PROM のアップデート中に問題が発生するこ と もあ り ます。 たとえば、 PROM に新しいコンフ ィギュ

レーシ ョ ン ビッ ト ス ト リームを書き込んでいる途中にシステムの電源が停止したり、 PROM データが

破損した りする可能性があ り ます。 このよ うに PROM のアップデートで問題が発生する と、 FPGA が正し く コンフ ィギュレーシ ョ ンされません。 システムの継続動作と リ カバリ を可能にするには、 何らか

のフェイルセーフ メカニズムを用意しておく必要があ り ます。

このよ うな問題を解決する 1 つの方法と して、FPGA のコンフ ィギュレーシ ョ ン フォールバッ ク機能が

利用できます。 フォールバッ クは、 コンフ ィギュレーシ ョ ン実行中に何らかのエラーが発生した場合、

必ずデフォルトの PROM イ メージでコンフ ィギュレーシ ョ ンを実行させる制御ロジッ クです。 このよ

うなユーザー デフォルト システムは、コンフ ィギュレーシ ョ ン エラーからのリ カバリのみを目的と し、

機能は必要 小限にとどめておきます。

コンフ ィギュレーシ ョ ン実行中、 IDCODE エラー、 CRC エラー、 ウォ ッチド ッグ タイマーのタイムア

ウ ト エラー、 あるいは BPI アドレスのラ ップアラウンド エラーによって、 フォールバッ クが ト リガー

されます。また、ユーザー モニター モードで有効になったウォッチド ッグ タイマーのコンフ ィギュレー

シ ョ ン後も、 フォールバッ クの ト リガーが可能です。二度目にフォールバッ ク リ コンフ ィギュレーシ ョ

ンでエラーが発生する と、 INIT_B および DONE の両方が Low に維持されます。 フォールバッ クは、

BitGen の -g ConfigFallback:Disable オプシ ョ ンによっても無効にできます。

フォールバッ ク リ コンフ ィギュレーシ ョ ン中、 FPGA は 2 つの多目的ピン、 RS[1:0] ( リ ビジ ョ ン セレ

ク ト ピン) に新しい値を送信します。 デフォルト設定の RS[1:0] は、 初のコンフ ィギュレーシ ョ ン中

はハイ インピーダンス ステートで弱いプルアップが付いていますが、 コンフ ィギュレーシ ョ ン後には

弱いプルダウンが付きます。 初のコンフ ィギュレーシ ョ ン中、ユーザーは FPGA の弱いプルアップ抵

抗よ り も外部のプルアップ/プルダウン抵抗を優先的に使用し、目的とするビッ ト ス ト リームを読み込ま

せるこ とができます。コンフ ィギュレーシ ョ ン エラーが検出される と、コンフ ィギュレーシ ョ ン ロジッ

クで内部リセッ ト パルスが生成され、 RS[1:0] が 00 にアクティブに駆動されて、 フォールバッ ク ビッ

ト ス ト リームが読み込まれます。

ML605 ボードでは、 フォールバッ ク コンフ ィギュレーシ ョ ンのデモが可能です。 たとえば、 オンボー

ドの BPI PROM を同じサイズになるよ うに二分割し、 ユーザー ファンクシ ョ ン イ メージと フォール

バッ ク イ メージの 2 つを格納します。 ユーザー ファンクシ ョ ン イ メージは目的とする通常動作のビッ

ト ス ト リームで、 PROM アドレス範囲の上位半分に格納します。 フォールバッ ク イ メージはコンフ ィ

ギュレーシ ョ ンが う ま く いかなかった場合の リ カバ リ に使用するゴールデン ビ ッ ト ス ト リームで、

PROM アドレス範囲の下位半分に格納します。 図 24 に、 PROM のアドレス マップを示します。

X-Ref Target - Figure 24

図 24 : PROM のアドレス マップ

XAPP518_30_061312

User FunctionImage

0xFFFFFF

0x800000

PR

OM

Wor

d A

ddre

ss

0x0

FallbackImage

Page 29: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

フェイルセーフ PROM アップデート

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 29

2 本の FPGA リ ビジ ョ ン セレク ト ピンのうち、RS[0] は PROM の 上位アドレス ビッ ト (A[24] ピン)に接続します (図 25)。 RS[1] は接続しません。 A[24] は、 DIP スイ ッチ S2-6 を介して弱いプルアップ

抵抗に接続します。

コ ンフ ィ ギ ュ レーシ ョ ン モード をマス ター BPI-UP モード に設定し た場合、 BPI ア ド レ ス ピン

Addr[22:0] は電源投入時にロジッ ク 0 に設定されます。 DIP スイ ッチ S2-6 が閉じている場合、 PROMにはアドレス 0x800000 が与えられます。 したがって、 FPGA はアドレス 0x800000 から開始する上

位メモ リ領域からユーザー コンフ ィギュレーシ ョ ン ビッ ト ス ト リームの読み込みを開始します。

コンフ ィギュレーシ ョ ン中に何らかのエラーが発生する と、フォールバッ ク コンフ ィギュレーシ ョ ンが

ト リガーされます。 この場合、 内部コンフ ィギュレーシ ョ ン ロジッ クは RS[0] ピンと BPI アドレス ピン Addr[22:0] をすべて 0 に駆動し、 PROM に与えられるアドレスは 0x0 とな り ます。 これによ り、 ア

ド レス 0x0 からフォールバッ ク ビッ ト ス ト リームを読み込んでコンフ ィギュレーシ ョ ンが再度実行さ

れます。

フォールバックのデモ

ML605 ボードでフォールバッ ク機能のデモを行うには、 次の手順に従います。

1. ML605 ボードの DIP スイ ッチ S2 を次のとおりに設定し、 BPI PROM プログラ ミ ングを有効にし

ます。

• S2-1 = ON

• S2-2 = ON

• S2-3 = OFF

• S2-4 = ON

• S2-5 = ON

• S2-6 = OFF

• S1-1 = OFF

• S1-2 = OFF

• S1-3 = OFF

• S1-4 = OFF

2. アプリ ケーシ ョ ン <ref_design_dir>\sw\XAPP518_PCIe_ISP.exe を実行します。

3. [Program PROM] をク リ ッ ク します。 リ ファレンス デザインに付属の PROM ファ イル <ref_design_dir>\config\PROM\XAPP518_corrupted_PROM_img.mcs を選択します。

4. [Open] をク リ ッ ク します。

この MCS ファ イルは破損したイ メージ ファ イルで、読み込み中にコンフ ィギュレーシ ョ ン エラー

が発生します。 このイ メージ ファ イルの開始アドレスは 0x800000 です。

X-Ref Target - Figure 25

図 25 : ML605 のリビジ ョ ン セレク ト ピンの接続

XAPP518_31_061312

BPI PROM

FPGA

Data[15:0]

A[23:1]

A[24]

n/c

Data[15:0]

Addr[22:0]

RS[1]

RS[0]

Mode[2]Mode[1]Mode[0]

VccVcc

S2-6

Page 30: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

フェイルセーフ PROM アップデート

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 30

5. [Program PROM] を再度ク リ ッ ク します。 リ ファレンス デザインに付属の PROM ファ イル

<ref_design_dir>\config\PROM\XAPP518_fallback_PROM_img.mcs を選択します。

6. [Open] をク リ ッ ク します。

この MCS ファ イルはフォールバッ ク イ メージ ファ イルで、 ML605 ボードのすべてのユーザー

LED を点灯する という単純な機能のみで構成されています。 このイ メージ ファ イルの開始アドレ

スは 0x0 です。

この時点で、 PROM の上位半分にはユーザー ファンクシ ョ ン ビッ ト ス ト リームが格納され、 下位

半分にはフォールバッ ク ビッ ト ス ト リームが格納されます。

7. ML605 ボードの DIP スイ ッチ S2 を次のとおりに設定し、マスター BPI-UP コンフ ィギュレーシ ョ

ンを有効にします。

• S2-1 = OFF

• S2-2 = ON

• S2-3 = OFF

• S2-4 = ON

• S2-5 = OFF

• S2-6 = ON

8. ホス ト システムの電源を入れ直します (パワー サイ クル)。

FPGA は、 まず PROM アドレス 0x800000 からユーザー ファンクシ ョ ン ビッ ト ス ト リームを読み込

みます。 このビッ ト ス ト リームは破損しているため、 コンフ ィギュレーシ ョ ンは CRC エラーになり ま

す。 電源投入から少しして INIT LED がわずかな間点滅し、 コンフ ィギュレーシ ョ ン エラーを示しま

す。 次に、 FPGA はフォールバッ ク コンフ ィギュレーシ ョ ンを ト リガーします。 FPGA は PROM アド

レス 0x0 からフォールバッ ク ビッ ト ス ト リームを読み込みます。 フォールバッ ク コンフ ィギュレー

シ ョ ンが完了したら、 フォールバッ ク デザインによって ML650 ボードのすべてのユーザー LED が点

灯します。

Page 31: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのビルド

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 31

リファレンス デザインのビルド

リ ファレンス デザインを構築するには、 次の手順に従います。

1. xapp518.zip ファ イルに格納されている リ ファレンス デザインの ZIP ファ イル (ML605.zip、VC707.zip、 KC705.zip のいずれか) の内容をユーザー ディレク ト リ <ref_design_dir> に展

開します。

2. リ ファレンス デザインのプロジェク ト ファ イル <ref_design_dir>\hw\ISE\PCIe_ISP\PCIe_ISP.xise を開きます。 プロジェク トが図 26 のよ うに表示されます。

3. [Hierarchy] ペインでデザインの 上位モジュール [PCIe_ISP_top] をク リ ッ ク します。

X-Ref Target - Figure 26

図 26 : Project Navigator の [Design] パネルに表示されたプロジェク ト

X518_25_022712

Page 32: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザインのビルド

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 32

4. [Processes] ペインの [Generate Programming File] (図 27) を右ク リ ッ クする と インプリ メンテー

シ ョ ン プロセスが開始し、 BIT ファ イルが作成されます。 X-Ref Target - Figure 27

図 27 : 最上位モジュールのインプリ メン ト

X518_26_022712

Page 33: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リファレンス デザイン

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 33

リファレンス デザイン

このアプ リ ケーシ ョ ン ノートの リ ファレンス デザイン ファ イルは、 次のサイ トからダウンロードでき

ます。

https://secure.xilinx.com/webreg/clickthrough.do?cid=184933

表 9 に、 リ ファレンス デザインの詳細を示します。

デザイン アドバイザリ

このリ ファレンス デザインを実際のプロジェク トに採用する前に、次のガイ ド ラインを読んでおいてく

ださい。

• このリ ファレンス デザインは、 後の 4 つの 16K ワード ブロッ クをプログラムしません。

• このリ ファレンス デザインは、 FPGA 内の PCIe テク ノ ロジを利用して BPI PROM をプログラム

するシンプルなフローと メカニズムを示すものです。 実際の環境では、 プログラ ミ ング機能とユー

ザー機能が PCIe バスを共有するこ とになるため、 デザインの統合が必要です。 ユーザーと PROMプログラ ミ ング モード間の PCIe インターフェイスの共有も管理する必要があ り ます。この共有は、

ユーザー ハード ウェア デザインおよびソフ ト ウェア制御で実装する必要があ り、 この リ ファレン

ス デザインでは取り扱いません。

表 9 : リファレンス デザインの詳細

リファレンス デザインの詳細

全般

開発元 ザイ リ ンクス

ターゲッ ト デバイス (ステッピング レベル、 ES、 プロダクシ ョ ン、 ス

ピード グレード )Virtex-6 FPGA

(XC6VLX240T-FF1156-1)

Virtex-7 FPGA (XC7VX485T-2FFG1761C)

Kintex-7 FPGA (XC7K325T-2FFG900C)

ソース コードの提供 あ り

ソース コードの形式 Verilog

既存のアプリ ケーシ ョ ン ノート / リ ファレンス デザイン、 サードパー

ティ、 CORE Generator™ ツールからデザインへのコード /IP の使用

あ り

シミ ュレーシ ョ ン

論理シ ミ ュレーシ ョ ンの実施 あ り

タイ ミ ング シ ミ ュレーシ ョ ンの実施 なし

論理シ ミ ュレーシ ョ ンおよびタ イ ミ ング シ ミ ュレーシ ョ ンでのテス

トベンチの利用

なし

テス トベンチの形式 Verilog

使用したシ ミ ュレータ /バージ ョ ン ModelSim SE 6.4b

SPICE/IBIS シ ミ ュレーシ ョ ンの実施 なし

インプリ メンテーシ ョ ン

使用した合成ツール/バージ ョ ン XST 14.4

使用したインプ リ メンテーシ ョ ン ツール/バージ ョ ン ISE® Design Suite 14.4

スタティ ッ ク タイ ミ ング解析の実施 あ り

ハードウェア検証

ハードウェア検証の実施 あ り

使用したハード ウェア プラ ッ ト フォーム ML605 Rev. D ボード、

VC707 Rev. B ボード、

KC705 Rev. D ボード

Page 34: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

リソース使用状況

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 34

• PCIe バスは PIO モードでも比較的高いスループッ ト (約 20MB/s) を持続できますが、 システム全

体のパフォーマンスは BPI PROM インターフェ イ スのパフォーマンスによ る制約を受けます。

PROM の消去およびプログラムの時間が総プログラ ミ ング時間の大部分を占めます。

• このリ ファレンス デザインは Gen1 x8 構成でしかテス ト を行っていません。

• このリ ファレンス デザインは、 旧式の PROM で使用される 32 ワードのバッファード プログラ ミ

ング モードのみをサポート しています。 近の P30 PROM の中には、 1,024 ワードのバッファー

ド プログラ ミ ング モードをサポート したものもあ り ます。 これらを利用してパフォーマンスを向

上させたい場合は、 HDL でバッファー サイズを変更してください。

リソース使用状況 表 10 に、 リ ファレンス デザインのリ ソース使用状況を示します。

システム パフォーマンスは、 ホス ト バス、 ソフ ト ウェア アプリ ケーシ ョ ン、 PROM プログラ ミ ングの

スループッ ト など、多くの要因に左右されます。 ユーザー デザインのパフォーマンスも、 このデモとは

大き く異なる可能性があ り ます。 34 ページの 「テス トに使用したシステム」 に示したのと同等のシステ

ムを使用してこのリ ファレンス デザインで 25MB の PROM ファ イルをプログラムした場合、その開始

から終了までにかかる時間は平均 96 秒です。

テストに使用したシステム

このリ ファレンス デザインのテス トには、 次のホス ト システム環境を使用しました。

• ASUS P5B-VM :

• CPU : Pentium 4 531 (3.0GHz)

• チップセッ ト : Intel P965/G965

• サウスブリ ッジ : Intel 828011HB/HR (ICH8/R)

• Intel デスク ト ップ ボード D975XBX :

• CPU : Pentium D (3.0GHz)

• チップセッ ト : Intel 975 Express Chipset

• サウスブリ ッジ : Intel 82801GR (ICH7R)

参考資料 このアプリ ケーシ ョ ン ノートでは、 次の参考資料が使用されています。

1. Numonyx Axcell フラ ッシュ メモ リ (P30-65nm) データシートhttp://www.micron.com

2. Jungo、 http://www.jungo.com

3. 『Virtex-6 FPGA PCI Express 用統合ブロッ ク ユーザー ガイ ド』 (UG517)

表 10 : リソース使用状況

リソースXC6VLX240T の

使用状況

XC7VX485T の使用状況

XC7K325T の使用状況

LUT 1,325 1,346 1,580

レジスタ 1,158 2,846 2,847

ブロ ッ ク RAM/FIFO 9 9 9

Page 35: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

付録 A

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 35

付録 A この付録には、 フラ ッシュ PROM のプログラムを実行する Visual Basic 6 関数のソース コードを記載

します。

Dim pData As LongDim Commands(2) As LongDim CmdUnlock, CmdErase, CmdProgram, ReadData As LongDim File_Name As StringDim fnum, fnum_read As IntegerDim ReadMask, CmpVal As LongDim LineFile As StringDim RecType, RecLength, RecAddr As LongDim byte_cnt As IntegerDim StartBlockSet As BooleanDim StartBlock, EndBlock, LastAddr As StringDim RecData As StringDim DataOut(511) As LongDim LoopNumber As LongLoopNumber = 16Dim i, j As IntegerDim FileSize, ProgressCount As LongDim StartAddr_cmd As StringDim StartBlock_w, StartAddr, EndAddr_cmd As LongDim TextPos As Integer

CmdUnlock = &H556E6C6B 'Unlock commandCmdErase = &H45726173 'Erase commandCmdProgram = &H50726F67'Program commandStartBlockSet = False

On Error GoTo ErrHandle 'obtain pointer to the hardware from driverpData = (hML507_MK.cardReg.Card.Item(hML507_MK.addrDesc(ML507_MK_AD_BAR2).Index).dw4) With ComDiagRead .Filter = "*.mcs|*.mcs" .CancelError = True .ShowOpen End With File_Name = ComDiagRead.FileName fnum = FreeFile Open File_Name For Input As fnum

'Calculate the total number of PROM blocks targetted

While Not EOF(fnum) Line Input #fnum, LineFile 'read a line from the PROM file RecType = Mid(LineFile, 8, 2) If RecType = 4 Then 'Extended Address record type? If StartBlockSet <> True Then StartBlock = Mid(LineFile, 10, 4) StartBlockSet = True Else EndBlock = Mid(LineFile, 10, 4) End If Else If RecType = 0 Then 'Data record type? LastAddr = Mid(LineFile, 4, 4) End If

Page 36: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

付録 A

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 36

End If Wend Close fnum 'close file

'Calculate file size

StartBlock_w = Val("&h" & StartBlock) / 2 If StartBlock_w <= 15 Then StartAddr_cmd = "0" & Hex(StartBlock_w) & "00" 'address in PROM word Else StartAddr_cmd = Hex(StartBlock_w) & "00" 'address in PROM words End If EndAddr_cmd = Val("&h" & EndBlock & LastAddr) / 2 'address in PROM words StartAddr = Val("&h" & StartBlock & "0000") / 2 FileSize = EndAddr_cmd - StartAddr 'file size in bytes ReadMask = "&h00008000" Call memcpy(VarPtr(ReadData), pData, 4) 'read programmer status CmpVal = ReadMask And ReadData If CmpVal = 32768 Then Text1.Text = "Programmer ready" & vbCrLf Else Text1.Text = "Programmer initialization error!"& vbCrLf Exit Sub End If Text1.SelStart = Len(Text1.Text) Text1.SelText = "Unlocking PROM" & vbCrLf ' Unlock blocks for erase Commands(0) = "&h" & "5341" & StartAddr_cmd 'start address Commands(1) = "&h" & "45" & Hex(EndAddr_cmd) 'end address Commands(2) = CmdUnlock 'unlock command Call memcpy(pData, VarPtr(Commands(0)), 12) 'issue commands to the target CmpVal = 0 While Not CmpVal = 32768 'Poll Programmer ready status Call memcpy(VarPtr(ReadData), pData, 4) CmpVal = ReadMask And ReadData Wend Text1.SelStart = Len(Text1.Text) Text1.SelText = "Unlocking PROM done" & vbCrLf & "Erasing PROM..."& vbCrLf

'Erase blocks Commands(0) = CmdErase 'Erase command Call memcpy(pData, VarPtr(Commands(0)), 4) CmpVal = 0 While Not CmpVal = 32768 'Poll Programmer ready status Call memcpy(VarPtr(ReadData), pData, 4) CmpVal = ReadMask And ReadData Wend Text1.SelStart = Len(Text1.Text) Text1.SelText = "Erasing PROM done" & vbCrLf & "Programming PROM" & vbCrLf

Page 37: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

付録 A

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 37

' Already reached EOF.Need to reopen the file to reset sequential read pointer fnum = FreeFile 'grab a new free file number again Open File_Name For Input As fnum 'Send out the Program command Commands(0) = CmdProgram Call memcpy(pData, VarPtr(Commands(0)), 4)

TextPos = Len(Text1.Text) Text1.SelStart = TextPos

ProgressCount = 0ReadMask = "&h000000FF" 'change read mask to filter the lowest byte While Not EOF(fnum) i = 0 'check status Call memcpy(VarPtr(ReadData), pData, 4) CmpVal = ReadMask And ReadData If CmpVal = 128 Then ProgressCount = ProgressCount + 32 '32 words at a time Text1.SelStart = TextPos Text1.SelLength = 15 Text1.SelText = (Math.Round(ProgressCount / FileSize * 100)) & " % completed"

Do While i < LoopNumber Line Input #fnum, LineFile RecLength = Val("&h" & Mid(LineFile, 2, 2)) RecType = Mid(LineFile, 8, 2) RecData = Mid(LineFile, 10, 32) byte_cnt = RecLength / 4 If RecType = 1 Then 'end-of-file record? Exit Do 'exit the write data loop routine Else If RecType = 0 Then 'data record j = 0 While j <> byte_cnt DataOut(i) = "&h" & (Mid(LineFile, 10 + j * 8, 8)) j = j + 1 i = i + 1 Wend End If End If Loop Call memcpy(pData, VarPtr(DataOut(0)), 64) Else If CmpVal = 144 Then 'program error Close fnum FrmML507.LblInfo.Caption = "Programming Error!" 'Exit Sub End If End If Wend Close fnum Text1.SelStart = Len(Text1.Text) Text1.SelText = vbCrLf & "Programming Completed" & vbCrLf Exit Sub

Page 38: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

付録 A

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 38

ErrHandle: Err.Clear On Error GoTo 0

FrmML507.LblInfo.Caption = "Error!" 'Close fnum_read Close fnum Exit Sub

End Sub

Page 39: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

付録 B

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 39

付録 B この付録では、 リ ファレンス デザインで使用する PCIe 用統合ブロッ クを CORE Generator で定義する

際のパラ メーターをま とめます。

注記 : 下記以外のパラ メーターはデフォルト値の設定のままです。

• BAR type : memory

• BAR addressing : 32 bits

• BAR memory size : 2KB

• Vendor ID : 10EE

• Device ID : 1969

• Revision ID : 00

• Subsystem vendor ID : 10EE

• Subsystem ID : 1969

• Base class : 05

• Sub-class : 80

• Interface : 00

• Cardbus CIS pointer : 00000000

• Payload size : 512 bytes

• Target board : ML605 board

• Reference clock frequency : 100MHz

PCIe 用統合ブロッ クの詳細は、『Virtex-6 FPGA PCI Express 用統合ブロッ ク ユーザー ガイ ド』 [参照 3]を参照して ください。

Page 40: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

付録 C

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 40

付録 C こ こでは、 リ ファレンス デザインの階層構造を示します。 フォーマッ トは、 「モジュール名 (インスタン

ス名)」 です。

PCIe_ISP_top() IOBUF (bidir_IO[15..0]) Programmer (programmer_i) xilinx_pcie_2_0_ep_v6 (pcie_pio_app) v6_pcie_v1_7 (core) trn_lnk_up_n (trn_lnk_up_n_i) trn_lnk_up_n_int (trn_lnk_up_n_int_i) trn_reset_n (trn_reset_n_i) trn_reset_n_int (trn_reset_n_int_i) trn_reset_delay (trn_reset_delay_i) pcie_clocking (pcie_clocking_i) MMCM_ADV (mmcm_adv_i) pcie_2_0_v6 (pcie_2_0_i) PCIE_2_0 (pcie_block_i) pcie_pipe_v6 (pcie_pipe_i) pcie_gtx_v6 (pcie_gt_i) gtx_wrapper_v6 (gtx_v6_i) GTXE1 (GTXD[7..0]) pcie_bram_top_v6 (pcie_bram_i) pcie_upconfig_fix_3451_v6 (pcie_upconfig_fix_3451_v6_i) pcie_app_v6 (app) PIO (PIO) PIO_TO_CTRL (PIO_TO) PIO_EP (PIO_EP) data_transfer (data_transfer_i) config_FIFO (config_FIFO_i) PIO_EP_MEM_ACCESS (EP_MEM) PIO_64_RX_ENGINE (EP_RX) PIO_64_TX_ENGINE (EP_TX)

Page 41: ザイリンクス アプリケーション ノート XAPP518 : …...バッファー XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 3図3 に、受信パス側の Integrated

改訂履歴

XAPP518 (v1.2) 2013 年 4 月 9 日 japan.xilinx.com 41

改訂履歴 次の表に、 この文書の改訂履歴を示します。

Notice of Disclaimer

The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and useof Xilinx products. To the maximum extent permitted by applicable law: (1) Materials are made available"AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS,EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OFMERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any othertheory of liability) for any loss or damage of any kind or nature related to, arising under, or in connectionwith, the Materials (including your use of the Materials), including for any direct, indirect, special,incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of lossor damage suffered as a result of any action brought by a third party) even if such damage or loss wasreasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes noobligation to correct any errors contained in the Materials or to notify you of updates to the Materials orto product specifications. You may not reproduce, modify, distribute, or publicly display the Materialswithout prior written consent. Certain products are subject to the terms and conditions of the LimitedWarranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject towarranty and support terms contained in a license issued to you by Xilinx. Xilinx products are notdesigned or intended to be fail-safe or for use in any application requiring fail-safe performance; youassume sole risk and liability for use of Xilinx products in Critical Applications: http://www.xilinx.com/warranty.htm#critapps.

本資料は英語版 (v1.2) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。

資料によっては英語版の更新に対応していないものがあ り ます。

日本語版は参考用と してご使用の上、 新情報につきましては、 必ず 新英語版をご参照ください。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、

[email protected] までお知らせください。 いただきましたご意見を参考に早急に対応さ

せていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめ

ご了承ください。

日付 バージョ ン 内容

2012 年 3 月 27 日 1.0 初版

2012 年 8 月 28 日 1.1 「フェイルセーフ PROM アップデート 」 セクシ ョ ンを追加。

2013 年 4 月 9 日 1.2 文書全体に Virtex-7 FPGA および VC707 ボードの情報を追加。文

書全体に Kintex-7 FPGA および KC705 ボードの情報を追加。図 4を更新。 表 9 および表 10 を更新。