Virtex-7 (XT/HT) および UltraScale の Gen3 Integrated Block

ア プ リ ケーシ ョ ン ノ ー ト : Virtex-7、 UltraScale アーキテ ク チ ャ
XAPP1201 (v1.0) 2014 年 1 月 23 日
Virtex-7 (XT/HT) および UltraScale の Gen3
Integrated Block for PCI Express コ アか ら
AXI4-Lite へのブ リ ッ ジ
著者 : Luis Bielich
概要
こ のアプ リ ケーシ ョ ン ノ ー ト では、Gen3 Integrated Block for PCI Express IP コ アの コ ンプ リ ー タ ス ト
リ ー ミ ン グ イ ン タ ーフ ェ イ ス か ら AXI4-Lite マ ス タ ー イ ン タ ーフ ェ イ スへのブ リ ッ ジの使用について
説明 し ま す。 リ フ ァ レ ン ス デ ザ イ ン は、 Vivado® IP イ ン テ グ レ ー タ ー で Integrated Block for PCI
Express IP コ アへ接続す る パ ッ ケージ化 さ れた IP コ ア を提供 し ます。 こ の IP が使用す る LUT は 300
個未満です。 AXI4-Lite マ ス タ ー ポー ト は、 AXI4 ス レーブ イ ン タ ーフ ェ イ ス を備え る ペ リ フ ェ ラ ルへ
接続 し ます。
は じ めに
Virtex®-7 (XT お よ び HT) デバ イ ス フ ァ ミ リ お よ び UltraScale™ の アーキ テ ク チ ャ には、 Gen3 PCI
Express 用の統合ブ ロ ッ ク がハー ド と し て備え ら れてい ます。 こ のハー ド ブ ロ ッ ク は高性能シ ス テ ム用
に設計 さ れてい ますが、 エン ド ポ イ ン ト がホ ス ト か ら 受信す る dword (DW) 要求は通常 1 つのみす。 1
つの DW 要求で DMA エ ン ジ ン を セ ッ ト ア ッ プ し た り 、 あ る いは こ れを使用 し て AXI4 ベース のシ ス
テ ムにあ る ペ リ フ ェ ラ ル レ ジ ス タ の監視や変更が可能です。
Integrated Block for PCI Express IP コ ア は ス ト リ ー ミ ン グ イ ン タ ー フ ェ イ ス を 提供す る た め、
AXI4-Lite イ ン タ ー コ ネ ク ト 上の制御側ペ リ フ ェ ラ ルへのア ク セ ス には通常 AXI4 へのブ リ ッ ジが使用
さ れ ま す。 受 信 す る すべ て の 単一 DW 要求 は、 Integrated Block for PCI Express IP コ ア の CQ
(Completer reQuest) と CC (Completer Completion) イ ン タ ーフ ェ イ ス で動作 し ます。 ブ リ ッ ジは、 こ の
CC と CQ イ ン タ ーフ ェ イ ス のみを使用 し て AXI4-Lite イ ン タ ーフ ェ イ スへ接続 し ます。 高性能アプ リ
ケーシ ョ ンではエン ド ポ イ ン ト がマ ス タ ー と な り 、複数の DW 要求を ア ッ プ ス ト リ ーム方向に伝送 し ま
す。 エ ン ド ポ イ ン ト がマ ス タ ーにな る 場合は、 RQ (Requester reQuest) と RC (Requester Completion)
イ ン タ ーフ ェ イ ス が使用 さ れます。ブ リ ッ ジはいずれの リ ク エ ス タ ー イ ン タ ーフ ェ イ ス も 使用 し ないた
め、 こ れ ら の高性能ポー ト はバ ス マ ス タ リ ン グ用にその ま ま使用で き ます。 図 1 に、 コ ン プ リ ー タ イ
ン タ ーフ ェ イ ス はブ ロ ッ ク RAM へのア ク セ ス に使用 さ れ、 リ ク エ ス タ ー イ ン タ ーフ ェ イ ス はバ ス マ
ス タ リ ン グ用にオープン (未接続) と な っ てい る シ ス テ ムの全体図を示 し ます。
X-Ref Target - Figure 1
図 1 : IP イ ン テグレー タ ーのサブ シ ス テム
図 1 に示すシ ス テ ム では、 ロ ーカル ブ ロ ッ ク RAM を メ モ リ マ ッ プ さ れた ス ト レージ と し て接続 し て
い ます。 Vivado IP カ タ ロ グには こ の他に も 接続可能な多数の AXI ペ リ フ ェ ラ ルがあ り ます。 図 1 の
ブ ロ ッ ク RAM と 同 じ よ う に接続で き る ペ リ フ ェ ラ ルの例を い く つか挙げ ま す。
•
AXI Quad SPI
© Copyright 2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Zynq, and other designated brands included herein are trademarks of Xilinx in the United
States and other countries. All other trademarks are the property of their respective owners.
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
1
機能
•
AXI UART Lite
•
AXI Timer
•
AXI IIC Bus Interface
•
AXI Ethernet Lite MAC
•
AXI GPIO
•
AXI EMC
こ のアプ リ ケーシ ョ ン ノ ー ト では、CQ/CC イ ン タ ーフ ェ イ ス を AXI-Lite イ ン タ ーフ ェ イ ス に変換す る
ための RTL (Resistor–Transistor Logic) を提供 し てい ます。 こ の RTL は IP と し てパ ッ ケージ化 さ れて
い る ため、 IP イ ン テ グ レー タ ー内で接続、 あ る いは IP モジ ュール と し て イ ン ス タ ン シエー ト で き ます。
RTL は暗号化 さ れていないため、 ブ リ ッ ジは必要に応 じ て カ ス タ マ イ ズで き ます。
機能
ハードウェアの説明
ブ リ ッ ジは Vivado IP コ ア と し てパ ッ ケージ化 さ れてお り 、 次の機能をサポー ト し ます。
•
単一 DW の メ モ リ 読み出 し お よ び メ モ リ 書 き込み要求
•
最大 6 個のベース ア ド レ ス レ ジ ス タ (BAR)
•
32 ビ ッ ト お よ び 64 ビ ッ ト の BAR
•
ト ラ ンザ ク シ ョ ン層パケ ッ ト (TLP) のヘ ッ ダー ア ド レ ス か ら AXI4 ア ド レ ッ シ ン グへのア ド レ ス
変換
•
すべての レーン幅 と ス ピー ド (gen1、 gen2、 ま たは gen3) で、 コ ンプ リ ー タ イ ン タ ーフ ェ イ ス の全
デー タ 幅のサポー ト
•
Vivado IP イ ン テ グ レー タ ーのサポー ト
•
ソ ース の提供 (Verilog のみ)
•
デー タ ア ラ イ ン モー ド のみ ( ア ド レ ス ア ラ イ ン モー ド はサポー ト 外)
ブ リ ッ ジは、 Integrated Block for PCI Express IP コ アの CC お よ び CQ イ ン タ ーフ ェ イ ス のみを使用 し
ます。 こ のハー ド ブ ロ ッ ク の m_axis_cq イ ン タ ーフ ェ イ ス がブ リ ッ ジの s_axis_cq イ ン タ ーフ ェ イ
ス に直接接続 し 、 ハー ド ブ ロ ッ ク の s_axis_cc がブ リ ッ ジの m_axis_cc イ ン タ ーフ ェ イ ス に接続 し
ます。 こ の IP コ アの user_clk 出力は、 CC お よ び CQ イ ン タ ーフ ェ イ ス の ク ロ ッ ク 信号 と 同期 し 、 ブ
リ ッ ジ を駆動す る ク ロ ッ ク と し て機能 し ます。 axi_aresetn は、 ブ リ ッ ジ を リ セ ッ ト す る 非同期のア
ク テ ィ ブ Low 信号であ り 、 ブ リ ッ ジが リ セ ッ ト 状態を維持 し てい る 間パケ ッ ト はブ リ ッ ジ を通過で き
ません。 通常は統合ハー ド ブ ロ ッ ク の user_lnk_up 出力をブ リ ッ ジの リ セ ッ ト 信号 と し て使用 し ます
が、 別の信号を リ セ ッ ト に使用す る こ と も 可能です。 図 2 に、 IP イ ン テ グ レー タ ーでブ リ ッ ジへ接続 さ
れた CQ イ ン タ ーフ ェ イ ス と CC イ ン タ ーフ ェ イ ス、 そ し て対応す る ク ロ ッ ク 信号 と リ セ ッ ト 信号を示
し ます。
X-Ref Target - Figure 2
図 2 : コ ン プ リ ー タ イ ン タ ー フ ェ イ スの接続
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
2
ハー ド ウ ェ アの説明
CQ イ ン タ ーフ ェ イ ス (m_axis_cq) は、 ホ ス ト か ら の メ モ リ 読み出 し / メ モ リ 書 き込み要求を与え ます。
こ の イ ン タ ーフ ェ イ ス か ら の メ モ リ 読み出 し / メ モ リ 書 き込み要求を ブ リ ッ ジがデコ ー ド し 、 AXI4-Lite
シ ス テ ムのマ ス タ ーへ変換 し て渡 し ます。 ホ ス ト か ら の メ モ リ 書 き 込み要求は、 AXI4 の書 き 込みア ド
レ ス チ ャ ネル と AXI4 の書き 込みデー タ チ ャ ネルの ト ラ ンザ ク シ ョ ンに変換 さ れます。AXI4 の書 き 込
み応答チ ャ ネルが接続 さ れてい ますが、 ブ リ ッ ジでは使用 さ れません。 ま た、 AXI4 の書 き込み応答チ ャ
ネルの READY 信号がアサー ト さ れますが、 こ のチ ャ ネルか ら 送信 さ れ るデー タ は無視 さ れます。
PCI Express では、 ホ ス ト が メ モ リ の読み出 し を要求する と 、 デー タ TLP と 共に コ ンプ リ ーシ ョ ン信号
が返 さ れ ます。 CQ イ ン タ ーフ ェ イ ス を介 し て メ モ リ の読み出 し が要求 さ れ る と 、 まずブ リ ッ ジが読み
出 し 要求を AXI4 の読み出 し ア ド レ ス チ ャ ネルの ト ラ ンザ ク シ ョ ンに変換 し ます。次に AXI4 ス レーブ
が AXI4 の読み出 し デー タ チ ャ ネルにデー タ を与えて応答 し ます。ブ リ ッ ジは AXI4 の読み出 し デー タ
チ ャ ネルのデー タ を受信 し て、 AXI4 の読み出 し デー タ チ ャ ネルか ら のペ イ ロ ー ド と 共に CC イ ン タ ー
フ ェ イ ス (m_axis_cc) に コ ン プ リ ーシ ョ ン TLP を作成 し ます。 図 3 に、 ト ラ ンザ ク シ ョ ン フ ロ ーの
概要図を示 し ます。
X-Ref Target - Figure 3
図 3 : イ ン タ ー フ ェ イ ス接続および対応する ト ラ フ ィ ッ ク タ イ プ
ア ド レ ス変換
Integrated Block for PCI Express IP コ アか ら の CQ 記述子には TLP か ら のア ド レ ス が含まれます。図 4
に CQ 記述子を示 し ます。 DW+0 と DW+1 が TLP か ら のア ド レ ス です。
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
3
ハー ド ウ ェ アの説明
X-Ref Target - Figure 4
':
':
$GGUHVV>@
$GGUHVV7\SH$7
':
':
7DUJHW)XQFWLRQ
7&
7DJ
%XV
'HYLFH)XQFWLRQ 5
'ZRUGFRXQW
5 $WWU
5HTXHVWHU,'
%$5,'
%$5$SHUWXUH
5HT7\SH
;
図 4 : CQ 記述子
記述子で提供 さ れ る ア ド レ ス は、 PCI Express の TLP か ら 直接 き てい ます。 TLP ア ド レ ス は AXI4 シ
ス テ ム に変換 さ れ ま す。 ア ド レ ス は ま た、 BAR ヒ ッ ト 情報に応 じ て異な る AXI4 ア ド レ スへ変換 さ れ
ま す。 IP コ アは、 [BAR Options] タ ブに あ る AXI4 空間への変換のオプシ ョ ン でパ ッ ケージ化 さ れ ま
す。 図 5 に有効なオプシ ョ ン を示 し ます。
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
4
ハー ド ウ ェ アの説明
X-Ref Target - Figure 5
図 5 : BAR 変換オプ シ ョ ン
BAR サ イ ズは、 割 り 当て ら れたマ ス ク 可能な ビ ッ ト の量に よ っ て変わ り ます。 IP の BAR サ イ ズは、 エ
ン ド ポ イ ン ト に設定 さ れ る BAR サ イ ズ と 同 じ にな る 必要があ り ます。 表 1 に、 [BAR # Size] フ ィ ール
ド の有効な値 と 対応す る アパーチ ャ ー サ イ ズ を示 し ます。
表 1 : マス ク可能な ビ ッ ト と BAR サイ ズの例
XAPP1201 (v1.0) 2014 年 1 月 23 日
有効な マス ク可能な値
対応する BAR のアパーチ ャ ー サイ ズ
0xFFFFFFFFFFFFFF80
128 バ イ ト (最小)
0xFFFFFFFFFFFFFF00
256 バ イ ト
0xFFFFFFFFFFFFFE00
0xFFFFFFFFFFFFFC00
512 バ イ ト
1KB
…
…
0xFFFFFFF800000000
32GB
0xFFFFFFF000000000
64GB
0xFFFFFFE000000000
128GB
0xFFFFFFC000000000
256GB (最大)
japan.xilinx.com
5
ハー ド ウ ェ アの説明
[Translation to AXI4] 値は、 BAR ヒ ッ ト に応 じ て変換 さ れ る AXI4 ア ド レ ス空間のベース ア ド レ ス を
提供 し ます。 [Maskable bits] に示 さ れ る アサー ト さ れた ビ ッ ト は、 PCI Express 空間の対応する ベース
ア ド レ ス オ フ セ ッ ト を除外 し 、 BAR ヒ ッ ト か ら のオ フ セ ッ ト のみを提供 し ます。 た と えば、 1KB BAR
が 0x00000000C0000000 にエニ ュ メ レー ト さ れ る場合、 マ ス ク さ れた ビ ッ ト に よ っ て上位 54 ビ ッ ト
( マ ス ク は 0xFFFFFFFFFFFFFC00 であ る ため) が除外 さ れ、下位 10 ビ ッ ト のみで [Translation to AXI]
オプシ ョ ン か ら のオ フ セ ッ ト が判断 さ れ ま す。 下位 10 ビ ッ ト はオ フ セ ッ ト 用に使用 さ れてい る ため、
[Translation to AXI] では下位 10 ビ ッ ト を オ フ セ ッ ト 値 と し て使用 し ないで く だ さ い。 こ れはアパー
チ ャ ー サ イ ズ と ア ド レ ス のア ラ イ メ ン ト を維持 し ないためです。 [Translation to AXI4] ア ド レ ス を決め
る 際は、 こ れを必ず考慮す る必要があ り ます。
表 2 に、 BAR サ イ ズ と 変換オプシ ョ ン の例を 2 つ示 し ます。 例 1 は、 特定の BAR へ割 り 当て ら れた
1KB のア ド レ ス指定可能な空間を持つブ リ ッ ジのセ ッ ト ア ッ プ を示 し てい ます。 こ の 1KB 範囲は、 ブ
リ ッ ジ の [Maskable bits] オ プ シ ョ ン か ら き て い ま す。 こ の BAR は、 ホ ス ト に よ っ て ア ド レ ス
x000000000C000000 へエニ ュ メ レー ト さ れま し た。 ホ ス ト が BAR レ ジ ス タ のオ フ セ ッ ト ア ド レ ス
4 か ら 要求 し 、 こ れは TLP ア ド レ ス x000000000C000004 と な り ます。 こ れが BAR レ ジ ス タ のエニ ュ
メ レー ト に よ る 結果です。 記述子ア ド レ ス x000000000C000004 か ら マ ス ク に よ っ て上位ビ ッ ト を マ ス
ク す る と 、 ア ド レ ス はオ フ セ ッ ト ア ド レ ス 4 にな り ます。 こ のオ フ セ ッ ト を AXI ド メ イ ンへ変換す る
ため、 オ フ セ ッ ト に [Translation to AXI4] オプシ ョ ン を追加 し ます。 その結果、 AXI ド メ イ ンのア ド レ
ス は x0000000080000004 と な り ます。 こ れが、 記述子か ら AXI ド メ イ ンへの変換プ ロ セ ス です。
表 2 の例 2 では、 記述子ア ド レ ス か ら 変換 さ れ る も う 1 つの AXI ア ド レ ス の例 と その変換プ ロ セ ス を
示 し ます。
表 2 : ア ド レ ス変換の例
例1
例2
BAR のエニ ュ メ レー ト さ れた ア ド
レ ス ( ホ ス ト で割 り 当て ら れ る )
x000000000C000000
x0000000000008000
記述子のア ド レ ス
x000000000C000004
x00000000000080CC
xFFFFFFFFFFFFFC00
xFFFFFFFFFFFFF000
( ホ ス ト か ら の要求)
[Maskable bits]
(ブ リ ッ ジのオプシ ョ ン )
BAR サ イ ズ
[Translation to AXI]
(ブ リ ッ ジのオプシ ョ ン )
1KB
4KB
x0000000080000000
x0000000040000000
結果の AXI ア ド レ ス
x0000000080000004
x00000000400000CC
図 6 には表 2 の例 1 の フ ロ ー図を示 し ます。
X-Ref Target - Figure 6
7/3$GGUHVVIURP&4
,QWHUIDFH
[BB&B
0DVNDEOH%LWV.%
%ULGJH2SWLRQ
[))))B))))B))))B))&
2IIVHW$GGUHVV
[
$;,$GGUHVV
[B
7UDQVODWLRQWR$;,$GGUHVV
%ULGJH2SWLRQ
[BBB
;
図 6 : 例1 のフ ロー図
図 7 に表 2 の例 2 の フ ロ ー図を示 し ます。
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
6
ハー ド ウ ェ アの説明
X-Ref Target - Figure 7
7/3$GGUHVVIURP&4
,QWHUIDFH
[BB&B&&
2IIVHW$GGUHVV
[&&
0DVNDEOH%LWV.%
%ULGJH2SWLRQ
[))))B))))B))))B)
$;,$GGUHVV
[B&&
7UDQVODWLRQWR$;,$GGUHVV
%ULGJH2SWLRQ
[BBB
;
図 7 : 例2 のフ ロー図
図 8 に、 Translation to AXI4 (AXI4 への変換) を実行する RTL コ ー ド を示 し ます。 [BAR#SIZE] の値
は、 [Maskable bits] フ ィ ール ド に設定 さ れた、 最 も 右にあ る 値の低いビ ッ ト に よ っ て決ま り ます。 た と
えば、 xFFFFFFFFFFFFFC00 の場合は、 11 番目の ビ ッ ト が こ の ビ ッ ト に該当す る ため、 [BAR#SIZE]
は 10 と な り ます。 [BAR#SIZE] の値は [Translation to AXI4] フ ィ ール ド か ら 派生 し ます。
X-Ref Target - Figure 8
図 8 : BAR 変換の RTL
デー タ 幅およびア ド レ ス幅
AXI マ ス タ ーのデー タ 幅は 32 ビ ッ ト で固定 さ れてい ま す。 一方、 コ ン プ リ ー タ ー イ ン タ ー フ ェ イ ス
(CC お よ び CQ) のデー タ 幅はブ リ ッ ジの [AXI Streaming Data Width] で変更可能です。 こ のオプシ ョ
ン の値は、 Integrated Block for PCI Express IP で設定 さ れてい る 幅 と 一致す る 必要があ り ま す。 [AXI
Master Address Width] は、 マ ス タ ー AXI イ ン タ ーフ ェ イ ス がア ク セ ス で き る ア ド レ ス指定可能な空間
を指定 し ます。 32 に設定 し た場合、 ブ リ ッ ジはマ ス タ ーが 4GB のア ド レ ス空間へア ク セ ス で き る よ う
に許可 し ま す。 33 に設定 し た場合は、 8GB の空間が可能にな り ま す。 こ の値は BAR サ イ ズ と は無関
係です。
X-Ref Target - Figure 9
図 9 : デー タ 幅およびア ド レ ス幅のオプ シ ョ ン
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
7
リ フ ァ レ ン ス デザイ ンの実行
その他のオプ シ ョ ン
ブ リ ッ ジは、 デー タ が AXI イ ン タ ーフ ェ イ ス か ら 返 さ れ る 前に、 PCI Express ブ ロ ッ ク か ら の複数の読
み出 し 要求を受け る こ と が可能です。 読み出 し 要求がブ リ ッ ジで受け入れ ら れ、 ブ リ ッ ジが ま だデー タ
返 し ていない場合、 こ の状況を 「outstanding read request (未処理の読み出 し 要求)」 と いい ます。 ブ リ ッ
ジ オプシ ョ ンでは、 未処理の読み出 し 要求の数 も 指定で き ます。 図 10 では、 未処理の読み出 し 要求数
は 32 (25) ~ 256 (28) の範囲で設定可能です。
X-Ref Target - Figure 10
図 10 : その他のオプ シ ョ ン
ほかに も 2 つのオプシ ョ ンで独自の設定が可能です。 [Enable Slave Configuration Register] は、 ス レー
ブ イ ン タ ー フ ェ イ ス に 機能 を 追加 で き る よ う に し ま す。 こ の オ プ シ ョ ン を 有効 に し た 場合 は、
pcie2axilite_bridge\rtl デ ィ レ ク ト リ にあ る RTL を変更 し て、 カ ス タ マ イ ズ し たオプシ ョ ン を
追加す る 必要があ り ます。 ス レーブ イ ン タ ーフ ェ イ ス を カ ス タ マ イ ズす る 事例を次に示 し ます。
•
動的な BAR の変換
•
エ ラ ー条件
•
デバ ッ グ レ ジ ス タ
[Relaxed Ordering] は、 TLS が相互に通信で き る よ う に し ま す。 こ の場合、 PCI Express の仕様に
反す る 可能性が あ る た め、 慎重な解析 を 行 っ た上で使用す る こ と を推奨 し ま す。
リ フ ァ レンス
デザイ ンの実行
こ のアプ リ ケーシ ョ ン ノ ー ト に関連す るデザ イ ン フ ァ イ ルは、 こ ち ら か ら ダ ウ ン ロ ー ド し て く だ さ い。
リ フ ァ レ ン ス デザ イ ンは、 3 つの異な る ユーザー イ ン タ ーフ ェ イ ス幅 (64、 128、 256 ビ ッ ト ) に設定 さ
れ た 3 つ の ブ リ ッ ジ 例 を 示 し ま す。 Vivado IDE で、 dw#/build デ ィ レ ク ト リ に あ る
build_design_#.tcl を読み込みます (# はデー タ 幅)。
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
8
シ ミ ュ レーシ ョ ン
X-Ref Target - Figure 11
図 11 : Vivado IDE でサン プル デザイ ン を実行
Tcl ス ク リ プ ト を読み込む と Vivado プ ロ ジ ェ ク ト が生成 さ れ、 そのプ ロ ジ ェ ク ト が ビ ッ ト フ ァ イ ル
を 生 成 し ま す。 生 成 さ れ た ビ ッ ト フ ァ イ ル は、 『PCI Express Endpoint コ ア の Programmed
Input/Output サ ン プル デザ イ ン におけ る Memory Endpoint Test (MET) ド ラ イ バーの使用』 [参照 2]
で提供 さ れてい る MET ド ラ イ バー と ア プ リ ケーシ ョ ン を使用 し て機能 し ま す。 MET ド ラ イ バーを
1 箇所で管理す る た め、 こ の ア プ リ ケーシ ョ ン ノ ー ト では ソ フ ト ウ ェ ア フ ァ イ ル を 提供 し て い ま せ
ん。 最新の MET ド ラ イ バーについては、 『PCI Express Endpoint コ ア の Programmed Input/Output
サ ン プル デザ イ ン におけ る Memory Endpoint Test (MET) ド ラ イ バーの使用』 [参照 2] を参照 し て く
だ さ い。
リ フ ァ レ ン ス デザ イ ンには、 3 つの異な る イ ン タ ーフ ェ イ ス に ILA (Integrated Logic Analyzer) コ アが
含まれ、TLP が送信 さ れ る 際の ト ラ フ ィ ッ ク フ ロ ーを解析で き ます。ILA コ ア を備えた 3 つの イ ン タ ー
フ ェ イ ス は次の と お り です。
•
CQ イ ン タ ーフ ェ イ ス
•
CC イ ン タ ーフ ェ イ ス
•
AXI4-Lite マ ス タ ー
Valid 信号の立ち上が り エ ッ ジでの ト リ ガーは、 ブ リ ッ ジ を通過 し てい る パケ ッ ト を示 し ます。
シ ミ ュ レーシ ョ ン
TLP か ら AXI4 への ト ラ ンザ ク シ ョ ンへの変換を示すために リ フ ァ レ ン ス シ ミ ュ レーシ ョ ン を提供 し
てい ます。 サ ン プル シ ミ ュ レーシ ョ ン のテ ス ト ベンチでは、 メ モ リ 書 き 込み要求 と メ モ リ 読み出 し 要
求に CQ イ ン タ ーフ ェ イ ス を使用 し ます。 変換後の AXI ト ラ ンザ ク シ ョ ンは、 それ ら の要求に応答す
る よ う に AXI4 BRAM モジ ュールへ指示 し ます。
シ ミ ュ レ ー シ ョ ン の実行に は、 simulation デ ィ レ ク ト リ の バ ッ チ フ ァ イ ル を 使用 し ま す。 こ の
run_sim.bat ス ク リ プ ト は、Vivado Simulator を使用 し てシ ミ ュ レーシ ョ ン を コ ンパ イ ル、エ ラ ボ レー
ト 、 そ し て実行 し ます。pcie_2_axilite_tb.v フ ァ イ ルには、 イ ン タ ーフ ェ イ ス幅を 64 ビ ッ ト 、 128
ビ ッ ト 、 ま たは 256 ビ ッ ト に設定す る ためのパ ラ メ ー タ ー C_DATA_WIDTH が含まれます。 ト ラ ンザ ク
シ ョ ンの変更には、 cq_axis_stimulus.v モジ ュ ールに次の 4 つの呼び出 し があ り ます。
構築済みのイ メ ー
ジ を使用
•
pcie_write (address, data, enable bits, data width)
•
pcie_read (address, data width)
•
write_seq (write count, address, data, data width)
•
read_seq (read count, data width)
3 つすべての イ ン タ ーフ ェ イ ス幅用にあ ら か じ め構築済みのビ ッ ト ス ト リ ーム (.bit) と ハー ド ウ ェ ア ア
ナ ラ イ ザー フ ァ イ ル (.ltx) を提供 し てい ます。 こ れ ら の ビ ッ ト ス ト リ ームは、 『PCI Express Endpoint
コ ア の Programmed Input/Output サ ン プル デザ イ ン におけ る Memory Endpoint Test (MET) ド ラ イ
バーの使用』 [参照 2] で提供 さ れてい る MET ド ラ イ バーを使用 し て VC709 ボー ド 上で機能 し ます。構
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
9
リ ソ ース使用状況
築済みビ ッ ト ス ト リ ーム を使用す る場合は、 次の手順に従っ て く だ さ い。
1. プ ロ ジ ェ ク ト を開かずに Vivado IDE を開いて、 Tcl コ ン ソ ールに次を入力 し ます。
>> open_hw
2. JTAG 接続を確立 し 、 VC709 ボー ド の Virtex-7 フ ァ ミ リ を タ ーゲ ッ ト に し た ビ ッ ト ス ト リ ーム と
ltx フ ァ イ ルを選択 し ます。
3. FPGA を プ ロ グ ラ ム し 、 デザ イ ン内のすべての ILA コ ア を確認 し ます。
4. すべての AXI イ ン タ ーフ ェ イ ス の任意の Valid 信号で立ち上が り エ ッ ジ を検出す る ために ト リ
ガーを設定 し ます。
5. 『PCI Express Endpoint コ アの Programmed Input/Output サ ン プル デザ イ ン におけ る Memory
Endpoint Test (MET) ド ラ イ バーの使用』 [参照 2] で提供 さ れてい る PIO アプ リ ケーシ ョ ン を実行
す る と 、 ト ラ フ ィ ッ ク が ILA コ アに現れます。
リ ソ ース使用状況
表 3 に、 VC709 ボー ド におけ る Virtex-7 の リ ソ ース使用状況を示 し ます。。
表 3 : リ ソ ース使用状況
フ ァ イルの説明
TDATA 幅
x64
LUT
FF
RAM
277
276
0
x128
289
297
0
x256
289
297
0
表 4 では、 リ フ ァ レ ン ス デザ イ ンのデ ィ レ ク ト リ 構造について説明 し ます。
表 4 : リ フ ァ レ ン ス デザイ ン フ ァ イル
デ ィ レ ク ト リ と フ ァ イル
説明
< data width: dw64, dw128, dw256 >
<build>
build_design_[data width].tcl
ビ ッ ト ス ト リ ーム を 構築す る た めの Tcl フ ァ イ ル
です。
< data width: dw64, dw128, dw256 >
<source>
<constaints>
top.xdc
ロ ケーシ ョ ン制約 と Vivado ハー ド ウ ェ ア デバ ッ
グ制約を含む制約フ ァ イ ルです。
< data width: dw64, dw128, dw256 >
<source>
<ipi>
ipi_design_[data width].tcl
IPI シ ス テ ム を構築す る ための Tcl フ ァ イ ルです。
< data width: dw64, dw128, dw256 >
<source>
<rtl>
pcie2axilite_bridge.v
IPI シ ス テ ム用の最上位 ラ ッ パー フ ァ イ ルです。
< pcie2axilite_bridge >
<rtl>
IP ソ ース フ ァ イ ルです。
Verilog フ ァ イ ル
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
10
ま とめ
表 4 : リ フ ァ レ ン ス デザイ ン フ ァ イル (続き )
デ ィ レ ク ト リ と フ ァ イル
説明
< pcie2axilite_bridge >
<xgui>
pcie_2_axilite_v1_0.tcl
GUI 用の Vivado パ ッ ケージ ャー Tcl フ ァ イ ルです。
< pcie2axilite_bridge >
component.xml
Vivado IP パ ッ ケージ ン グ フ ァ イ ルです。
< simulation >
run_sim.bat/run_sim.sh
run_time.tcl
source.prj
xsim_test.wcfg
Vivado Simulator で シ ミ ュ レ ーシ ョ ン を 実行す る
< simulation >
< verilog >
*.v
シ ミ ュ レーシ ョ ン テ ス ト ベンチ フ ァ イ ルです。
ためのフ ァ イ ルです。
注記 :
1.
ま とめ
<> はデ ィ レ ク ト リ を表 し ます。
PCI Express のエン ド ポ イ ン ト がホ ス ト か ら 受信する DW 要求は通常 1 つのみです。要求は、Integrated
Block for PCI Express IP コ アの CQ イ ン タ ーフ ェ イ ス と CC イ ン タ ーフ ェ イ ス で動作 し ます。 高性能
アプ リ ケーシ ョ ン ではエ ン ド ポ イ ン ト がマ ス タ ーにな り 、 複数の要求ア ッ プ ス ト リ ーム を構成 し ます。
エ ン ド ポ イ ン ト がマ ス タ ーにな る 場合には、 RQ と RC イ ン タ ーフ ェ イ ス が使用 さ れ ま す。 AXI4-Lite
へのブ リ ッ ジは リ ク エ ス タ ー イ ン タ ーフ ェ イ ス を使用 し ないため、 こ れ ら の高性能ポー ト を継続 し て使
用で き ます。 通常、 ホ ス ト か ら の DW 要求は 1 つであ る ため、 コ ンプ リ ー タ イ ン タ ーフ ェ イ ス を介 し
て AXI4-Lite へのブ リ ッ ジ を使用す る こ と を推奨 し ます。こ のアプ リ ケーシ ョ ン ノ ー ト で提供す る パ ッ
ケージ化 さ れた IP コ ア を利用する こ と に よ っ て、 ホ ス ト か ら の要求に素早 く 反応 し 、それ ら を AXI4 ト
ラ ンザ ク シ ョ ンに変換で き ます。
参考資料
こ の文書では、 次の参考資料を使用 し てい ます。
1.
2.
改訂履歴
Notice of
Disclaimer
『Virtex-7 FPGA Gen3 Integrated Block for PCI Express』 (PG023)
『Using the Memory Endpoint Test Driver (MET) with the Programmed Input/Output Example
Design for PCI Express Endpoint Cores』 (XAPP1022)
次の表に、 こ の文書の改訂履歴を示 し ます。
日付
バージ ョ ン
2014 年 1 月 21 日
1.0
内容
初版
The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use
of 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 OF
MERCHANTABILITY, 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 other
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
11
Automotive Applications Disclaimer
theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection
with, 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 loss
or damage suffered as a result of any action brought by a third party) even if such damage or loss was
reasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no
obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or
to product specifications.You may not reproduce, modify, distribute, or publicly display the Materials
without prior written consent.Certain products are subject to the terms and conditions of the Limited
Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to
warranty and support terms contained in a license issued to you by Xilinx.Xilinx products are not
designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you
assume
sole
risk
and
liability
for
use
of
Xilinx
products
in
Critical
Applications:http://www.xilinx.com/warranty.htm#critapps.
Automotive
Applications
Disclaimer
XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN
ANY APPLICATION REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS APPLICATIONS
RELATED TO:(I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESS
THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF
SOFTWARE IN THE XILINX DEVICE TO IMPLEMENT THE REDUNDANCY) AND A WARNING
SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD TO DEATH
OR PERSONAL INJURY.CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE
OF XILINX PRODUCTS IN SUCH APPLICATIONS.
本資料は英語版 (v1.0) を翻訳 し た も ので、 内容に相違が生 じ る 場合には原文を優先 し ます。
資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。
日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。
こ の資料に関する フ ィ ー ド バ ッ ク および リ ン ク などの問題につき ま し ては、[email protected]
までお知 らせ く だ さ い。 いただ き ま し たご意見を参考に早急に対応 させていただ き ます。 なお、 こ の メ ー
ル ア ド レ スへのお問い合わせは受け付けてお り ません。 あ ら か じ めご了承 く だ さ い。
XAPP1201 (v1.0) 2014 年 1 月 23 日
japan.xilinx.com
12