バス ファンクション モデルを使用した高性能ビデオ システムの

ア プ リ ケーシ ョ ン ノ ー ト : Zynq-7000 All Programmable SoC
バス フ ァ ン ク シ ョ ン モデルを使用し た
高性能ビデオ システムのシ ミ ュ レーシ ョ ン
XAPP1250 (v1.0) 2015 年 5 月 15 日
著者 : James Lucero
は じ めに
高性能なシ ス テ ムの設計では、 シ ミ ュ レーシ ョ ンに よ っ てハー ド ウ ェ ア解析 よ り も 効率的にシ ス テ ム ボ ト ルネ ッ ク を判断
で き ます。 バ ス フ ァ ン ク シ ョ ン モデル (BFM) は、 ハー ド ウ ェ ア モジ ュ ールか ら 送信 さ れ得 る ト ラ フ ィ ッ ク パ タ ーン を模
倣す る よ う に コ ン フ ィ ギ ュ レーシ ョ ン可能です。
ザ イ リ ン ク ス の AXI IP コ ア を用いて、 高性能な ビデオ シ ス テ ム を作成で き ます。 AXI イ ン タ ーコ ネ ク ト コ ア、 Zynq-7000
デバ イ ス上の AXI3 ポー ト 、AXI VDMA IP ブ ロ ッ ク を使用する こ と で、複数のビデオ ス ト リ ームの処理や、DDR3 SDRAM
を 共有す る 複数の ビ デオ フ レ ー ム バ ッ フ ァ ーに対応で き る ビ デオ シ ス テ ム の コ ア を 構築で き ま す。 ザ イ リ ン ク ス は、
Zynq®-7000 All Programmable (AP) SoC デバ イ ス で使用で き 、 AXI3、 AXI4、 AXI4-Stream、 AXI4-Lite プ ロ ト コ ルに対応す
る BFM を実現す る IP コ ア も 提供 し てい ます。
シ ス テ ム レ イ テ ン シお よ びシ ス テ ム帯域幅の要件に厳密に従 う 必要のあ る ビデオ デザ イ ンにはシ ス テ ム解析が必要であ
り 、 ザ イ リ ン ク ス の BFM は、 性能のシ ミ ュ レーシ ョ ン をハー ド ウ ェ ア な し で可能にす る 効率的な方法を提供 し ます。
こ のアプ リ ケーシ ョ ン ノ ー ト で説明す る リ フ ァ レ ン ス デザ イ ンは 1080p ビデオ パ イ プ ラ イ ン を 1 つ使用 し 、 BFM を用い
た ビデオ デザ イ ン のシ ミ ュ レーシ ョ ン方法を示 し ます。 リ フ ァ レ ン ス デザ イ ンは、 Vivado® シ ミ ュ レ ー タ を使用 し た シ
ミ ュ レーシ ョ ンのみを対象 と し てい ますが、プ ロ ジ ェ ク ト の タ ーゲ ッ ト は Zynq-7000 AP SoC ZC702 評価ボー ド に変更で き
ます。
こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン ス デザ イ ン フ ァ イ ルは、 ザ イ リ ン ク ス の ウ ェ ブサ イ ト か ら ダ ウ ン ロ ー ド で き
ます。 デザ イ ン フ ァ イ ルの詳細は、 「 リ フ ァ レ ン ス デザ イ ン」 を参照 し て く だ さ い。
リ フ ァ レ ン ス デザイ ン
こ のセ ク シ ョ ンでは、 Processing System コ ア を含む主要 IP ブ ロ ッ ク の設定方法な ど、 リ フ ァ レ ン ス デザ イ ンの高度な機能
について説明 し ます。 IP の便利な機能、 性能、 その他の設定な ど の情報について も 解説 し ます。 こ れ ら の情報はビデオ シ
ス テ ム向けですが、 シ ス テ ム性能の最適化に用い ら れてい る 原則は高性能な AXI シ ス テ ムに幅広 く 適用で き ます。 AXI シ
ス テ ムの最適化お よ び設計上の ト レー ド オ フ に関す る 詳細は、 『Vivado Design Suite AXI リ フ ァ レ ン ス ガ イ ド 』 (UG1037)
[参照 1] を参照 し て く だ さ い。 こ のアプ リ ケーシ ョ ン ノ ー ト は、 ユーザーが Zynq-7000 アーキ テ ク チ ャ 、 AXI プ ロ ト コ ル、
Vivado Design Suite、 IP イ ン テ グ レー タ ーに関す る 一般的な知識を持っ てい る こ と を前提 と し てい ます。 IP イ ン テ グ レー
タ ーの詳細は。 『Vivado Design Suite チ ュ ー ト リ アル : エ ンベデ ッ ド プ ロ セ ッ サ ハー ド ウ ェ ア デザ イ ン』 (UG940) [参照 2]
を参照 し て く だ さ い。
表 1 に、 リ フ ァ レ ン ス デザ イ ンの詳細を示 し ます。
表 1 : リ フ ァ レ ン ス デザイ ンの詳細
パラ メ ー タ ー
説明
全般
開発者
James Lucero
タ ーゲ ッ ト デバ イ ス
Zynq-7000 AP SoC
ソ ース コ ー ド の提供
あり
ソ ース コ ー ド の形式
VHDL、 Verilog
本資料は表記のバージ ョ ンの英語版を翻訳 し た も ので、内容に相違が生 じ る場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本
語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
1
リ フ ァ レ ン ス デザイ ン
表 1 : リ フ ァ レ ン ス デザイ ンの詳細 (続き)
パラ メ ー タ ー
説明
既存のザ イ リ ン ク ス ア プ リ ケーシ ョ ン ノ ー ト / リ フ ァ レ ン ス デザ
イ ン、 ま たはサー ド パーテ ィ か ら デザ イ ンへの コ ー ド /IP の使用
なし
シ ミ ュ レーシ ョ ン
論理シ ミ ュ レーシ ョ ンの実施
あり
タ イ ミ ン グ シ ミ ュ レーシ ョ ンの実施
N/A
論理シ ミ ュ レ ーシ ョ ンお よ び タ イ ミ ン グ シ ミ ュ レ ーシ ョ ン でのテ
ス ト ベンチの利用
あり
テ ス ト ベンチの形式
Verilog
使用 し たシ ミ ュ レー タ /バージ ョ ン
Vivado シ ミ ュ レー タ
SPICE/IBIS シ ミ ュ レーシ ョ ンの実施
N/A
イ ン プ リ メ ン テーシ ョ ン
使用 し た合成ツール/バージ ョ ン
N/A
使用 し た イ ンプ リ メ ン テーシ ョ ン ツール/バージ ョ ン
N/A
ス タ テ ィ ッ ク タ イ ミ ン グ解析の実施
N/A
ハー ド ウ ェ ア検証
ハー ド ウ ェ ア検証の実施
N/A
使用 し たハー ド ウ ェ ア プ ラ ッ ト フ ォーム
N/A
ビデオ パ イ プ ラ イ ンは、 Timing Controller IP コ ア、 Test Pattern Generator IP コ ア、 On Screen Display IP コ アで構成 さ れてい
ます。 BFM シ ミ ュ レーシ ョ ン環境内で、 こ こ に記載 さ れてい る よ う に IP コ ア を Verilog プ ロ セ ス、 AXI4-Stream マ ス タ ー
BFM、 お よ び AXI4-Stream ス レ ーブ BFM に置 き 換 え る と 、 1080p タ イ ミ ン グ の生成、 そ し て AXI Video Direct Memory
Access (VDMA) コ ア を 用い た メ モ リ へのデー タ 書 き 込み と メ モ リ か ら のデー タ 読み出 し が可能に な り ま す。 Zynq-7000
BFM コ アでは、M_AXI_GP0 イ ン タ ーフ ェ イ ス を介 し て ビデオ パ イ プ ラ イ ンが コ ン フ ィ ギ ュ レーシ ョ ン さ れ、 シ ス テ ム メ
モ リ へのア ク セ ス には S_AXI_HP0 イ ン タ ーフ ェ イ ス が使用 さ れます。 図 1 に示す こ れ ら のブ ロ ッ ク で、 アプ リ ケーシ ョ
ン ノ ー ト 付属の リ フ ァ レ ン ス デザ イ ンは構成 さ れてい ます。
X-Ref Target - Figure 1
$;,
6WUHDP
0DVWHU
%)0&RUH
=\QT%)0&RUH
3URFHVVLQJ6\VWHP&RUH
6B$;,B*32
6B$;,B*3
6B$;,B$&3
6B$;,B+3
6B$;,B+3
6B$;,B+3
6B$;,B+3
,54B)3>@
0B$;,B*3
0B$;,B*3
$;,9'0$
&RUH
$;,
,QWHUFRQQHFW
&RUH
$;,6WUHDP
6ODYH
%)0&RUH
$;,
,QWHUFRQQHFW
&RUH
図 1 : リ フ ァ レ ン ス シ ス テムのブ ロ ッ ク 図
こ のアプ リ ケーシ ョ ン ノ ー ト は、 Zynq-7000 BFM コ ア で あ る Processing System コ アについて説明 し てい ま すが、 ハー ド
ウ ェ ア を タ ーゲ ッ ト と す る のであれば Processing System 7 コ アについて と も いえ ます。 アプ リ ケーシ ョ ン ノ ー ト のシ ミ ュ
レーシ ョ ンには Zynq-7000 BFM コ ア を使用 し ます。 シ ミ ュ レーシ ョ ン中、 こ の コ アは Processing System 7 コ アの代わ り と
な り ま すが、 設定は Processing System 7 コ アの も のです。 Processing System コ アは、 汎用 イ ン タ ー コ ネ ク ト を含むシ ス テ
ム全体に ク ロ ッ ク お よ び リ セ ッ ト を供給 し ます。
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
2
リ フ ァ レ ン ス デザイ ン
デザ イ ンで ト ラ フ ィ ッ ク 動作を模倣す る ために、 API を使用 し て BFM を制御 し ます。 シ ミ ュ レーシ ョ ン時間内に 1 つの フ
レーム全体を確認す る には、 垂直 ラ イ ンの数を減 ら し ます。
テ ス ト ベンチの フ ァ ン ク シ ョ ン と し て ビデオ パ イ プ ラ イ ンの性能が レ ポー ト さ れ、波形の解析に よ っ て ビデオ ト ラ フ ィ ッ
ク の要件が満た さ れてい る かが確認 さ れます。
AXI イ ン タ ー フ ェ イ ス プ ロ ト コ ルの規格は、 ARM® AMBA4 お よ び ARM AMBA3 AXI の仕様 (詳細は、 『Vivado Design
Suite AXI リ フ ァ レ ン ス ガ イ ド 』 (UG1037) [参照 1] 参照) で定義 さ れてい ます。デザ イ ンで使用 し てい る AXI イ ン タ ーフ ェ
イ ス は、 AXI4、 AXI3、 AXI4-Lite、 AXI4-Stream イ ン タ ーフ ェ イ ス です。 こ れ ら の イ ン タ ーフ ェ イ ス は、 デザ イ ン を構築す
る ための共通 し た IP イ ン タ ーフ ェ イ ス プ ロ ト コ ルを提供 し ます。
Processing System コ ア上の AXI Interconnect コ ア と AXI HP ポー ト を組み合わせ る こ と で、 複数のデバ イ ス が共通の メ モ リ
コ ン ト ロ ー ラ ーを共有す る アプ リ ケーシ ョ ン向けに、 広帯域幅のマルチ ポー ト メ モ リ コ ン ト ロ ー ラ ー (MPMC) を実装 し
ま す。 こ れは、 複数の ソ ー ス か ら のデー タ が共通の メ モ リ デバ イ ス (通常、 DDR3 SDRAM) を介 し て移動す る 、 ビデオ、
エンベデ ッ ド シ ス テ ム、 通信のアプ リ ケーシ ョ ンの多 く で求め ら れ る 要件です。
AXI Video DMA コ アは、 フ レーム バ ッ フ ァ ー機能、 ス キ ャ ッ タ ー ギ ャ ザー (SG) 機能、 2 次元 (2D) DMA 機能を備え た、
ビデオに最適化 さ れた高性能 DMA エン ジ ン を実装 し ます。 AXI VDMA コ アは、 ビデオ デー タ ス ト リ ーム を メ モ リ と の
間で送受信 し 、 動的 ソ フ ト ウ ェ ア制御モー ド ま たは静的 コ ン フ ィ ギ ュ レーシ ョ ン モー ド で動作 し ます。
デザ イ ンは Vivado Design Suite : System Edition 2015.1、 Vivado シ ミ ュ レー タ 機能、 お よ び Vivado IP イ ン テ グ レー タ ー機能
を使用 し て構築 し ます。 IP イ ン テ グ レー タ ーは、 IP コ ア を イ ン ス タ ン シエー ト 、 コ ン フ ィ ギ ュ レーシ ョ ン、 お よ び接続 し
て複雑な統合シ ス テ ム を構築す る 作業を簡略化 し ます。 こ のアプ リ ケーシ ョ ン ノ ー ト では IP イ ン テ グ レー タ ーの完全な
プ ロ ジ ェ ク ト お よ びシ ミ ュ レーシ ョ ン環境を提供 し てお り 、 こ れ ら をデザ イ ンの検討や再構築に活用 し た り 、 新規デザ イ
ンのテ ンプ レー ト と し て使用す る こ と が可能です。 アプ リ ケーシ ョ ン ノ ー ト 付属の ZIP フ ァ イ ルには、 リ フ ァ レ ン ス シ ス
テ ム zc702_zynq_axi_bfm_sim が含まれます。
Processing System コ ア
図 1 のブ ロ ッ ク 図では、 Processing System コ ア を追加する こ と で、 ハー ド ウ ェ ア ラ ッ パー (Processing System 7 コ ア を使用)
の生成ま たは Zynq-7000 のシ ミ ュ レーシ ョ ン (Zynq-7000 BFM コ ア を使用) のシ ミ ュ レーシ ョ ンが可能にな り ます。 Vivado
Design Suite で デザ イ ン が生成 さ れ た 後、 Processing System 7 コ ア の ハー ド ウ ェ ア コ ン フ ィ ギ ュ レ ー シ ョ ン に基づ き、
Zynq-7000 BFM コ アの sim デ ィ レ ク ト リ に ラ ッ パーが生成 さ れます。 こ こ では Zynq-7000 BFM コ アのシ ミ ュ レーシ ョ ン機
能についてのみ説明 し てい ます。
Processing System コ アは、 UART 1 と I/O 用の DDR3 コ ン ト ロ ー ラ ーを備え た ZC702 ボー ド 向けに コ ン フ ィ ギ ュ レーシ ョ
ン さ れます。 M_AXI_GP0 イ ン タ ーフ ェ イ スお よ び S_AXI_HP0 イ ン タ ーフ ェ イ ス (64 ビ ッ ト ) は、 AXI イ ン タ ーフ ェ イ ス
に使用で き ます。
周波数が 50MHz の汎用 イ ン タ ー コ ネ ク ト ク ロ ッ ク が 1 つ生成 さ れ ます。 50MHz ク ロ ッ ク を Clocking Wizard コ アに接続
し 、 ビデオ パ イ プ ラ イ ンに用い ら れ る 148.5MHz を生成 し ます。 50MHz ク ロ ッ ク は AXI4-Lite ス レーブ イ ン タ ーフ ェ イ ス
(AXI VDMA AXI4-Lite ス レーブ イ ン タ ーフ ェ イ ス であ る M_AXI_GP0 イ ン タ フ ェ イ ス) に、 148.5MHz ク ロ ッ ク はビデオ
パ イ プ ラ イ ン (AXI VDMA AXI4 MM/AXI4-Stream イ ン タ ーフ ェ イ ス であ る S_AXI_GP0 イ ン タ ーフ ェ イ ス) に使用 さ れま
す。
Zynq-7000 BFM メ モ リ コ ン ト ロー ラ ー
Zynq-7000 BFM コ アには OCM/DDR の ス パース メ モ リ モデルがあ り ます。 API を呼び出す と 、 Processing System コ ア上の
AXI ス レ ーブが こ の メ モ リ にア ク セ ス し てベ ス ト ケー ス、 平均ケー ス、 ま たは ワ ー ス ト ケー ス の レ イ テ ン シ を取得 し 、
ハー ド ウ ェ アにおけ る おおま かな レ イ テ ン シがわか り ます。アプ リ ケーシ ョ ン ノ ー ト ではベス ト ケース の レ イ テ ン シにつ
いて説明 し てい ます。BFM は自動で応答す る ため、S_AXI_HP0 イ ン タ ーフ ェ イ スへのア ク セ ス に API は必要あ り ません。
ビデオ コ ン フ ィ ギ ュ レーシ ョ ン
リ フ ァ レ ン ス デザ イ ンは、1080p60 (60 フ レーム/秒の 1920x1080 画像) 向けに変更 さ れた コ ン フ ィ ギ ュ レーシ ョ ン で動作す
る ビデオ パ イ プ ラ イ ン を 1 つ実装 し ます。 各画像は 1 ピ ク セルあ た り 4 バ イ ト (RGB の 3 バ イ ト 、 追加スループ ッ ト を示
す 1 バ イ ト のパデ ィ ン グ) で構成 さ れ、RBGA やアルフ ァ チ ャ ネル情報を含む YUVA 4:4:4 な ど のハ イ エン ド 高品位ビデオ
ス ト リ ームに対応 し ます。
AXI BFM コ ア を使用 し 、 AXI VDMA コ ア で (AXI4-Stream マ ス タ ー BFM) メ モ リ への書 き 込み と (AXI4-Stream ス レ ーブ
BFM) メ モ リ か ら の読み出 し を行 う こ と で ビデオ ト ラ フ ィ ッ ク を模倣 し ます。 フ レームの水平 ラ イ ン を 1 つ送信ま たは受
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
3
リ フ ァ レ ン ス デザイ ン
信す る よ う に、 シ ミ ュ レーシ ョ ン環境で AXI BFM コ アが コ ン フ ィ ギ ュ レーシ ョ ン さ れます。 AXI BFM コ アは、 32 ビ ッ ト
イ ン タ ーフ ェ イ ス、 1920 の最大パケ ッ ト サ イ ズに対応する よ う コ ン フ ィ ギ ュ レーシ ョ ン さ れます。
こ のデザ イ ンは、 次の fsync パルス ま で 1/60 秒かか る 1080p60 ビデオ パ イ プ ラ イ ン を タ ーゲ ッ ト と し てい ます。 シ ミ ュ
レーシ ョ ンで こ の時間を短縮す る ため、 水平 ラ イ ンの数を 1080 か ら 24 に、 水平ブ ラ ン キ ン グ ラ イ ン を 45 か ら 1 に減 ら
し てい ます。
次の計算か ら シ ミ ュ レーシ ョ ンにおけ る ビデオ パ イ プ ラ イ ンの性能が予測 さ れます。
水平 ラ イ ン : 280 ク ロ ッ ク のブ ラ ン キ ン グ期間 (ア ク テ ィ ブ ビデオな し ) + 1920 ク ロ ッ ク (ア ク テ ィ ブ ビデオ)
垂直 ラ イ ン : 24 水平 ラ イ ン + 1 ラ イ ン ブ ラ ン キ ン グ (2200 ク ロ ッ ク 間ア ク テ ィ ブ ビデオな し )
フ レーム あ た り のア ク テ ィ ブ ビデオの ク ロ ッ ク : 1920x24 = 46,080 ク ロ ッ ク
フ レーム あ た り の ク ロ ッ ク 総数 : 25 ラ イ ン x (1920+280) = 55,000 ク ロ ッ ク
秒あ た り 148,500,000 ク ロ ッ ク /フ レーム あ た り の ク ロ ッ ク 総数 = 2,700 フ レーム/秒
チ ャ ネルあ た り の帯域幅 = ピ ク セルあ た り 1920x4 バ イ ト (水平 ラ イ ン) * 24 (ア ク テ ィ ブ垂直 ラ イ ン) * 秒あ た り 2,700
フ レーム = 497.664MB/s
デザ イ ンの帯域幅の解析は、1 フ レーム (合計 55,000 ク ロ ッ ク ) に基づいて継続的にに スループ ッ ト を計算する Verilog フ ァ
ン ク シ ョ ン を用いて S_AXI_HP0 イ ン タ ーフ ェ イ ス で実行 さ れます。
AXI Interconnect (processing_system7_0_axi_periph イ ン ス タ ン ス)
1 マ ス タ ー/1 ス レーブ コ ン フ ィ ギ ュ レーシ ョ ン と い う 理由か ら AXI Interconnect processing_system7_0_axi_periph
イ ン ス タ ン ス は ス ト ラ テ ジ を 使用 し ま せ ん。 API は M_AXI_GP0 イ ン タ ー フ ェ イ ス を 用い て デザ イ ン 内の すべ て の
AXI4-Lite ス レーブ レ ジ ス タ (制御お よ びス テー タ ス レ ジ ス タ ) に対 し て書 き 込み と 読み出 し を実行 し ます。 ま た、 デザ イ
ンの こ の部分は、 シ ス テ ムのほかの部分 と 比較 し て低速な 50MHz ク ロ ッ ク で駆動 し ます。
AXI Interconnect (axi_mem_intercon イ ン ス タ ン ス)
AXI Interconnect axi_mem_intercon イ ン ス タ ン スは Maximize Performance ス ト ラ テジ向けに コ ン フ ィ ギ ュ レーシ ョ ン さ れ
てい ます。 こ れに よ り 、 AXI VDMA AXI4 MM2S/AXI4 S2MM マ ス タ ー イ ン タ ーフ ェ イ スは最大で 4 つの Outstanding (未処
理) ト ラ ンザ ク シ ョ ン を発行 し 、 S_AXI_HP0 ス レーブ イ ン タ ーフ ェ イ スは 8 つの ト ラ ンザ ク シ ョ ン を受信で き ます。 ビデ
オ パ イ プ ラ イ ンの帯域幅の要件に対応する ため、 こ の よ う に発行/受信数を設定する必要があ り ます。
AXI VDMA イ ン ス タ ン ス
AXI VDMA コ アは、メ モ リ マ ッ プ さ れた AXI4 ド メ イ ンか ら AXI4-Stream イ ン タ ーフ ェ イ ス (お よ びその逆方向) へのビデ
オ読み出 し /書 き 込み転送機能を提供す る よ う 設計 さ れてい ます。 AXI VDMA コ アに よ っ て、 シ ス テ ム メ モ リ と AXI BFM
コ ア間の高速デー タ 転送が可能にな り ます。 メ モ リ マ ッ プ方式の AXI4 イ ン タ ーフ ェ イ スは、 AXI イ ン タ ーフ ェ イ ス間の
高速デー タ 転送 と バ ッ フ ァ ー記述子の フ ェ ッ チに使用 さ れ ます。 こ のデザ イ ン では、 シ ス テ ム内の SG イ ン タ ーフ ェ イ ス
を不要 と す る バ ッ フ ァ ー記述子に対 し て、 レ ジ ス タ 直接操作モー ド を適用 し ます。
デザ イ ンは、 完全に同期 し た フ レーム DMA 動作お よ び 2 次元 DMA 転送に対応する よ う フ レーム同期 (FSYNC) な ど のビ
デオ固有の機能を備えてい ます。 FSYNC は、 テ ス ト ベンチで信号が生成 さ れ る 書 き 込みチ ャ ネル と 読み出 し チ ャ ネルの両
方に利用で き ます。
AXI VDMA コ アの イ ン ス タ ン ス では、書 き 込み と 読み出 し の両チ ャ ネルについて最大バース ト が 32 に設定 さ れてい ます。
AXI3 プ ロ ト コ ルがサポー ト す る 最大バース ト は 16 です。 し か し 、 Zynq-7000 HP イ ン タ ーフ ェ イ ス 0 は 64 ビ ッ ト であ る
ため、 こ の イ ン タ ーフ ェ イ ス は 64 ビ ッ ト x 16 デー タ ビー ト (32 ビ ッ ト x 32 デー タ ビー ト ) の転送サ イ ズ をサポー ト し ま
す。 両チ ャ ネルの ラ イ ン バ ッ フ ァ ーの深 さ は、 水平 ラ イ ンの約半分の 1024 に設定 さ れてい ます。
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
4
リ フ ァ レ ン ス デザイ ン
シ ミ ュ レーシ ョ ンのブ ロ ッ ク デザイ ンの接続
ビデオ パ イ プ ラ イ ンの フ レーム同期信号を生成す る ため、 bfm_test.v モジ ュ ールで駆動 さ れ る 入力ポー ト fsync が追
加 さ れてい ます。
bfm_test.v モジ ュ ールは出力ポー ト reg_clk お よ び reg_rst_n を使用 し て ス レーブ レ ジ ス タ の Verilog プ ロ セ ス を
制御 し ます。
bfm_test.v モジ ュ ールは出力ポー ト vid_clk お よ び vid_rst_n を使用 し て ビデオ パ イ プ ラ イ ンの Verilog プ ロ セ ス
を制御 し ます。
シ ミ ュ レーシ ョ ン環境
シ ミ ュ レーシ ョ ン環境の概要は次の と お り です。
テ ス ト ベンチ (system_tb.v)
•
シ ス テ ム ク ロ ッ ク / リ セ ッ ト を生成す る
•
IP イ ン テ グ レー タ ーの最上位 ラ ッ パーを イ ン ス タ ン シエー ト し 、 bfm_test モジ ュ ールを接続す る
定義 (axi_bfm_defines.v、 zynq_bfm_defines.v、 axi_bfm_s_defines.v)
•
API のプ ロ ト コ ル定数 と タ ス ク を含む
BFM API の呼び出 し (bfm_test.v)
•
「bfm_test.v の概要」 を参照
bfm_test.v の概要
こ の フ ァ イ ルには、 Zynq-7000 BFM コ ア (セ ッ ト ア ッ プ と M_AXI_GP0 API)、 AXI BFM コ ア、 fsync 信号、 お よ びビデオ
パ イ プ ラ イ ン の性能計測を制御す る API コ マ ン ド が含 ま れ ま す。 API の全 リ ス ト と 説明は、 『Zynq-7000 All Programmable
SoC バ ス フ ァ ン ク シ ョ ン モデル v2.0』 (DS897) [参照 3] お よ び『AXI BFM コ ア v5.0』 (PG129) [参照 4] を参照 し て く だ さ い。
次 に 示 す 初 期 設 定 で Zynq-7000 BFM コ ア は コ ン フ ィ ギ ュ レ ー シ ョ ン さ れ て い ま す。 set_slave_profile API を
S_AXI_HP0 に使用 し 、 ベス ト ケース の レ イ テ ン シ を有効に し ます。 pre_load_mem API を用いて、 デザ イ ンに含まれ る
3 つの フ レーム バ ッ フ ァ ーに対 し て ラ ン ダ ム なデー タ を生成 し ます。 メ イ ン テ ス ト ベンチの リ セ ッ ト のデ ィ アサー ト 後
(ア ク テ ィ ブ Low の リ セ ッ ト )、 fpga_soft_reset API を呼び出 し てプ ロ グ ラ マブル ロ ジ ッ ク (PL) の リ セ ッ ト をデ ィ ア
サー ト し ます。
シ ス テ ム が リ セ ッ ト 状態か ら 遷移す る と 、 Zynq-7000 BFM write_data API は M_AXI_GP0 イ ン タ ー フ ェ イ ス か ら AXI
VDMA コ アの制御レ ジ ス タ への書 き 込みを許可 し 、 1920 水平 ラ イ ン と 24 垂直 ラ イ ン を有効に し ます。
AXI VDMA コ アの コ ン フ ィ ギ ュ レーシ ョ ン後、 FSYNC プ ロ セ ス が開始 さ れ ます。 FSYNC プ ロ セ ス では、 fsync 信号の
アサー ト が 1 秒間に 2700 回発行 さ れます。
AXI4-Stream プ ロ セ スは、 fsync のアサー ト つま り 水平 ラ イ ン ブ ラ ン キ ン グ期間 (280 ク ロ ッ ク ) 待機 し 、 並行する Verilog
プ ロ セ ス内でデー タ を送受信 し 、フ レームの垂直 ラ イ ンの数が満た さ れ る と ( こ の場合は 24) 水平 ラ イ ンの送信を停止 し ま
す。 AXI4-Stream マ ス タ ー BFM に send_packet API を使用 し 、 AXI VDMA コ アへデー タ を書き 込みます。 AXI4-Stream
ス レ ーブ BFM には receive_transfer API を利用 し て AXI VDMA コ ア か ら デー タ を読み出 し ま す。 ラ イ ン の終了は
API の last 出力で判断 し ます。
最初の fsync がアサー ト さ れ る と 性能フ ァ ン ク シ ョ ンが実行 さ れ、 S_AXI_HP0 イ ン タ ーフ ェ イ ス で 1 つの フ レーム を継
続 的 に 監 視 し ま す。 フ ァ ン ク シ ョ ン は、 ク ロ ッ ク の 総数 で 除算 さ れ た 有効 な デー タ (wvalid/wready お よ び
rvalid/rready) を用いて ク ロ ッ ク 数を数え ます。 計算結果 (MB/s) が確定 し 、 シ ミ ュ レー タ の ト ラ ン ス ク リ プ ト に表示 さ
れます。
S_AXI_HP0 の読み出 し と 書 き 込み イ ン タ ーフ ェ イ ス の結果は Video Related IP セ ク シ ョ ン の結果 (497.664MB/s) と 一致す
る 必要があ り ます。 こ の よ う なにな ら ない場合、 シ ス テ ム を解析 し てボ ト ルネ ッ ク やその他機能的な問題を判断 し ます。
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
5
必要な環境
必要な環境
ハー ド ウ ェ ア
必要あ り ませんが、 Zynq-7000 AP SoC ZC702 評価ボー ド で使用す る ために タ ーゲ ッ ト を変更で き ます。
IP
リ フ ァ レ ン ス シ ス テ ムには次の LogiCORE™ IP コ アが必要です。
•
Zynq-7000 BFM
•
AXI Interconnect
•
AXI Video Direct Memory Access
•
AXI4 BFM
•
Clocking Wizard
•
Processor System Reset
図 1 にブ ロ ッ ク 図を、 表 2 にシ ス テ ムのア ド レ ス マ ッ プを示 し ます。
ソフ ト ウェア
こ の リ フ ァ レ ン ス シ ス テ ム を構築 し 、 シ ミ ュ レーシ ョ ンす る には、次の ソ フ ト ウ ェ ア ツールを イ ン ス ト ール し てお く 必要
があ り ます。
•
Vivado Design Suite : System Edition 2015.1
•
AXI お よ び Zynq Bus Functional Model LogiCORE IP ラ イ セ ン ス
表 2 に リ フ ァ レ ン ス シ ス テ ムのア ド レ ス マ ッ プ を示 し ます。
表 2 : リ フ ァ レ ン ス シ ス テムのア ド レ ス マ ッ プ
ペ リ フ ェ ラル
イ ンス タ ンス
ベース ア ド レ ス
上位ア ド レ ス
processing_system7
processing_system7_1 (M_AXI_GP0)
0x40000000
0x7FFFFFFF
processing_system7
processing_system7_1 (S_AXI_HP0)
0x00000000
0x3FFFFFFF
axi_vdma
axi_vdma_0
0x40000000
0x4000FFFF
リ フ ァ レ ン ス デザイ ン フ ァ イル
こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン ス デザ イ ン フ ァ イ ルは、 ザ イ リ ン ク ス の ウ ェ ブサ イ ト か ら ダ ウ ン ロ ー ド で き
ます。
アプ リ ケーシ ョ ン ノ ー ト 付属の ZIP フ ァ イ ルには、 リ フ ァ レ ン ス シ ス テ ム zc702_zynq_axi_bfm_sim が含まれます。
リ フ ァ レ ン ス デザ イ ンのデ ィ レ ク ト リ 構造は次の と お り です。 sim デ ィ レ ク ト リ フ ァ イ ルは、 「シ ミ ュ レーシ ョ ン環境」
で説明 し てい ます。
xapp1250/
zc702_zynq_axi_bfm_sim/
HW/
sim/
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
6
リ フ ァ レ ン ス デザイ ンの手順
ラ イセンス
AXI お よ び Zynq-7000 BFM LogiCORE IP コ アの入手方法に関する 情報は、 次の リ ン ク か ら 入手可能です。
http://japan.xilinx.com/products/intellectual-property/zynq_bfm/zynq_bfm-order.html
リ フ ァ レ ン ス デザイ ンの手順
こ のセ ク シ ョ ンでは、 セ ッ ト ア ッ プか ら 結果に至 る ま での リ フ ァ レ ン ス デザ イ ンの実行について説明 し ます。
リ フ ァ レ ン ス デザイ ンの実行
1.
Vivado Design Suite で zc702_zynq_axi_bfm_sim/HW/project_1.xpr を開 き ます。
2.
[Sources] ビ ュ ーで design_1_wrapper を展開 し ます。 design_1_i を右 ク リ ッ ク し て [Generate Output Products] →
[Generate] を ク リ ッ ク し ます。
3.
Flow Navigator で [Simulation] を展開 し ます。 [Run Simulation] → [Run Behavioral Simulation] を ク リ ッ ク し ます。 こ れで
Vivado シ ミ ュ レー タ が起動 し ます。 こ の手順は、 マシ ンに よ っ ては 10 分ほ ど かか り ます。
4.
Vivado シ ミ ュ レー タ が起動 し た ら 、 1 フ レーム分の ト ラ ンザ ク シ ョ ンが含まれ る よ う 400μs 間シ ミ ュ レーシ ョ ン を実
行 し ます。 表示 さ れ る 波形には、 AXI VDMA のすべての最上位信号 (AXI4LITE、 AXI4 MM2S、 AXI4 S2MM、 AXI4S
MM2S、 AXI4S S2MM イ ン タ ー フ ェ イ ス) が含 ま れ ま す。 こ の手順は、 マ シ ン に よ っ ては 30 分ほ ど かか り ま す。 シ
ミ ュ レーシ ョ ンが終了す る と 、 Tcl コ ン ソ ールに次が表示 さ れます。
387704000 HP0 Rd:497.664000 MB/s
387704000 HP0 Wr:497.664000 MB/s
結果
1.
[system_tb_behav.wcfg] タ ブを ダブル ク リ ッ ク し て波形ウ ィ ン ド ウ を展開 し ます。 波形は 5 つのグループ (AXI4_LITE、
AXI4_MM2S、 AXI4_S2MM、 AXI4S_MM2S、 AXI4S_S2MM) に分け ら れてい ます。
2.
AXI4_LITE グループ を展開 し 、 10.8μ s ~ 17.5μs 間を拡大表示 し ます。 こ の期間、 Zynq-7000 BFM M_AXI_GP0 は AXI
VDMA コ ア上の ス レーブ レ ジ ス タ へ書 き 込みを実行 し 、 こ の コ ア を ビデオ パ イ プ ラ イ ン用に コ ン フ ィ ギ ュ レーシ ョ
ン し ます。 AXI VDMA レ ジ ス タ へ垂直 ラ イ ン のサ イ ズが書 き 込ま れ る と 、 VDMA がア ク テ ィ ブにな り 、 テ ス ト ベン
チで fsync 信号が生成 さ れます。 図 2 に こ の様子を示 し ます。
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
7
リ フ ァ レ ン ス デザイ ンの手順
X-Ref Target - Figure 2
図 2 : AXI4_LITE – テ ス ト ベン チによ る fsync の生成
3.
AXI4_MM2S グループ を展開 し 、 17.3μs ~ 18.2μs 間を拡大表示 し ます。 こ れは、 fsync 後の最初の読み出 し 遷移を示
し ます。 AXI Interconnect コ アで 4 つの読み出 し ト ラ ンザ ク シ ョ ン (ア ド レ ス位相) が受信 さ れ ますが、 デー タ 位相の
rvalid がアサー ト さ れ る ま で 5 つ目の ト ラ ンザ ク シ ョ ンは ス ロ ッ ト ル さ れ ます。 コ アが 32 デー タ ビー ト を受信す
る と 、 rlast がアサー ト さ れます (AXI VDMA コ アの最大バース ト は 32 デー タ ビー ト に設定)。 図 3 に こ の様子を示
し ます。
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
8
リ フ ァ レ ン ス デザイ ンの手順
X-Ref Target - Figure 3
図 3 : AXI4_MM2S – fsync 後の最初の読み出 し
4.
AXI4_S2MM グループ を展開 し 、 19.5μs ~ 19.8μ s 間を拡大表示 し ます。 こ れは、 最初の書 き 込み ト ラ ンザ ク シ ョ ン を
示 し ます。 AXI VDMA コ アが AXI4-Stream マ ス タ ー BFM か ら 書 き 込みデー タ を同時に取得 し てい る ため、 書 き 込み
側では 1 つの書 き 込み ト ラ ン ザ ク シ ョ ン ( ア ド レ ス 位相) し か発生 し ま せん。 32 デー タ ビ ー ト が Zynq-7000 BFM
S_AXI_HP0 イ ン タ ーフ ェ イ ス に書 き 込まれ る と 、 wlast がアサー ト さ れます (AXI VDMA コ アの最大バース ト は 32
デー タ ビー ト に設定)。 図 4 に こ の様子を示 し ます。
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
9
リ フ ァ レ ン ス デザイ ンの手順
X-Ref Target - Figure 4
図 4 : AXI4_S2MM – 最初の書き込み
5.
AXI4S_MM2S グループ を展開 し 、 17.3μs ~ 34.0μs 間を拡大表示 し ます。 こ の期間、 fsync がアサー ト さ れ、 fsync
か ら 280 ク ロ ッ ク 後に tready (AXI4-Stream ス レ ーブ BFM に よ る ア サー ト ) が ア サー ト さ れ ま す。 tvalid (AXI
VDMA コ アが生成) お よ び tready (AXI4-Stream ス レーブ BFM が生成) は 1920 ク ロ ッ ク 間アサー ト さ れ、1920 ク ロ ッ
ク 目に tlast が アサー ト さ れて水平 ラ イ ンの終了を示 し ます。 こ れが次の ラ イ ンで も 繰 り 返 さ れます (280 ク ロ ッ ク
のブ ラ ン キ ン グ期間 と 、 1 ラ イ ンに対 し て 1920 tready ク ロ ッ ク )。 図 5 に こ の様子を示 し ます。
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
10
リ フ ァ レ ン ス デザイ ンの手順
X-Ref Target - Figure 5
図 5 : AXI4S_MM2S – 水平ラ イ ンの終了
tready がアサー ト (1) さ れ、 かつ tvalid がデ ィ アサー ト (0) さ れ る と 、 ビデオ パ イ プ ラ イ ンが ス ロ ッ ト ル さ れ ま
す。 ビデオ アプ リ ケーシ ョ ンでは、 こ れが画面のち ら つき や同様の動作の原因 と な る こ と があ り ます。
6.
AXI4S_S2MM グループ を展開 し 、 17.3μs ~ 34.0μs 間を拡大表示 し ます。 こ の期間、 fsync がアサー ト さ れ、 fsync
か ら 280 ク ロ ッ ク 後に tvalid (AXI4-Stream マ ス タ ー BFM に よ る アサー ト ) がアサー ト さ れます。tvalid が 1920 ク
ロ ッ ク 間ア サー ト さ れ、 1920 ク ロ ッ ク 目に tlast が ア サー ト さ れて水平 ラ イ ン の終了を示 し ま す。 tready (AXI
VDMA コ アが生成) がアサー ト さ れた後、 AXI4-Stream イ ン タ ーフ ェ イ ス か ら の書 き 込みデー タ の準備完了を fsync
が示 し ま す。 こ れが次の ラ イ ン で も 繰 り 返 さ れ ま す (280 ク ロ ッ ク のブ ラ ン キ ン グ期間 と 、 1 ラ イ ン に対 し て 1920
tvalid ク ロ ッ ク )。 図 6 に こ の様子を示 し ます。
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
11
参考資料
X-Ref Target - Figure 6
図 6 : AXI4S_S2MM – 水平ラ イ ンの終了
tvalid がアサー ト (1) さ れ、 かつ tready がデ ィ アサー ト (0) さ れ る と 、 ビデオ パ イ プ ラ イ ンが ス ロ ッ ト ル さ れます。 ビ
デオ アプ リ ケーシ ョ ンでは、 こ れが画面のち ら つ き や同様の動作の原因 と な る こ と があ り ます。
参考資料
注記 : 日本語版のバージ ョ ンは、 英語版 よ り 古い場合があ り ます。
1.
『Vivado Design Suite AXI リ フ ァ レ ン ス ガ イ ド 』 (UG1037)
2.
『Vivado Design Suite チ ュ ー ト リ アル : エンベデ ッ ド プ ロ セ ッ サ ハー ド ウ ェ ア デザ イ ン』 (UG940)
3.
『Zynq-7000 All Programmable SoC バス フ ァ ン ク シ ョ ン モデル v2.0 (DS897)
4.
『AXI BFM コ ア v5.0』 (PG129)
5.
『Zynq-7000 All Programmable SoC テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 (UG585 : 英語版、 日本語版)
6.
『LogiCORE IP AXI Interconnect 製品ガ イ ド 』 (PG059)
7.
『LogiCORE IP AXI Video Direct Memory Access 製品ガ イ ド 』 (PG020)
8.
『LogiCORE IP Processing System 7 製品ガ イ ド 』 (PG082)
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
12
改訂履歴
改訂履歴
次の表に、 こ の文書の改訂履歴を示 し ます。
日付
バージ ョ ン
2015 年 5 月 15 日
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 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 Xilinx’s limited warranty, please refer to Xilinx’s Terms of Sale which
can be viewed at http://www.xilinx.com/legal.htm#tos; 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 such critical applications, please refer to Xilinx’s Terms of Sale which can be viewed at
http://www.xilinx.com/legal.htm#tos.
© Copyright 2015 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.All other trademarks are the property of their respective owners.
こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected] ま で、 ま たは各ページの右下
にあ る [フ ィ ー ド バ ッ ク 送信] ボ タ ン を ク リ ッ ク す る と 表示 さ れ る フ ォームか ら お知 ら せ く だ さ い。いただ き ま し た ご意見を参考に早急に
対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受け付けてお り ません。 あ ら か じ めご了承 く だ さ い。
XAPP1250 (v1.0) 2015 年 5 月 15 日
japan.xilinx.com
13