Comments
Transcript
Zynq-7000 All Programmable SoC を使用した高性能ビデオ
ア プ リ ケーシ ョ ン ノ ー ト : Zynq-7000 All Programmable SoC Zynq-7000 All Programmable SoC を使用 し た高性能ビデオ シ ス テムの設計 XAPP792 (v1.0.1) 2012 年 10 月 16 日 概要 著者 : James Lucero、 Ygal Arbel ザ イ リ ン ク ス Zynq ™-7000 All Programmable SoC な ど のハ イ エ ン ド なプ ロ セ ッ シ ン グ シ ス テ ム を使 用す る 場合、 プ ロ セ ッ シ ン グ シ ス テ ム (PS) お よ びデバ イ ス内で PS に接続 さ れた カ ス タ ム ペ リ フ ェ ラ ルの性能を フルに引 き 出す こ と が求め ら れます。 その一例が複数の ビデオ パ イ プ ラ イ ンです。 こ のシ ス テ ムでは、 ラ イ ブのビデオ ス ト リ ームが メ モ リ に書 き込まれ (入力)、 プ ロ セ ッ サが こ の メ モ リ にア ク セ ス し て ラ イ ブ ビデオ ス ト リ ーム を読み出 し 、 送出 し ま す (出力)。 こ のア プ リ ケーシ ョ ン ノ ー ト では、 Zynq-7000 AP SoC メ モ リ イ ン タ ーフ ェ イ ス、 プ ロ グ ラ マブル ロ ジ ッ ク (PL) 内に イ ンプ リ メ ン ト さ れ た AXI マ ス タ ー イ ン タ ーフ ェ イ ス、 そ し て ARM® Cortex™-A9 プ ロ セ ッ サのそれぞれか ら 高い性能 を引 き 出す こ と を焦点 と し たデザ イ ンの基本原則を解説 し ます。 ビデオ シ ス テ ム では、 フ レーム落ちやフ レーム破損が発生 し ない よ う に、 ワ ース ト ケース におけ る レ イ テ ン シ を保証す る 必要があ り ます。 レ イ テ ン シが低 く 、 Zynq-7000 AP SoC メ モ リ イ ン タ ーフ ェ イ ス に直接ア ク セ スす る 高速の AXI マ ス タ ー イ ン タ ーフ ェ イ ス を PL 内で実現す る には、高性能 (HP) イ ン タ ーフ ェ イ ス への接続が必要です。 Zynq-7000 AP SoC は、 高 ス ループ ッ ト を得 る よ う 設計 さ れた 64 ビ ッ ト ま たは 32 ビ ッ ト の AXI3 ス レーブ イ ン タ ーフ ェ イ ス を 4 つ、 HP イ ン タ ーフ ェ イ ス と し て備え てい ます。 デザ イ ンでは 3 つの AXI ビデオ ダ イ レ ク ト メ モ リ ア ク セ ス (VDMA) エン ジ ン を用い、6 つの ス ト リ ー ム を同時に転送 し ます (3 つの送信ビデオ ス ト リ ーム と 3 つの受信ビデオ ス ト リ ーム )。各ス ト リ ームの フ ォーマ ッ ト は 1920 x 1080 ピ ク セルで、 リ フ レ ッ シ ュ レー ト は 60Hz、 ピ ク セルあ た り のデー タ ビ ッ ト は最大 32 ビ ッ ト です。 各 VDMA は、 ビデオ テ ス ト パ タ ーン ジ ェ ネ レー タ ー (TPG) に よ っ て駆動 さ れ、こ の と き 必要な ビデオ タ イ ミ ン グ信号は Video Timing Controller (VTC) コ アが設定 し ます。AXI VDMA に よ っ て読み出 さ れたデー タ は、 複数のビデオ ス ト リ ーム を単一の出力ビデオ ス ト リ ームに多 重化ま たはオーバーレ イ 処理す る、 共通の On-Screen Display (OSD) コ アに送信 さ れます。 そ し て、 こ の OSD コ アの出力が、 ボー ド 上の HDMI ビデオ デ ィ ス プ レ イ イ ン タ ーフ ェ イ ス を駆動 し ます。 性能デー タ を収集す る ために、 パフ ォーマ ン ス モニ タ ー コ アが追加 さ れてい ます。 3 つの AXI VDMA はいずれ も AXI イ ン タ ーフ ェ イ ス に よ っ て 3 つの個別の HP イ ン タ ーフ ェ イ ス に接続 さ れ、 Cortex-A9 プ ロ セ ッ サで制御 さ れます。 こ のデザ イ ンは、 メ モ リ コ ン ト ロ ー ラ ー帯域幅の 70% を使用 し ます。 リ フ ァ レ ン ス シ ス テ ムは、 Zynq-7000 ZC702 評価ボー ド を タ ーゲ ッ ト に し てい ます。 含まれる シ ス テム デザ イ ンは、 ISE® Design Suite System Edition に含まれ る Xilinx Platform Studio (XPS) PlanAhead™ ツ ールのバージ ョ ン 14.2 を使用 し て作成お よ び構築 さ れてい ま す。 XPS は、 IP コ ア を イ ン ス タ ン シ エー ト 、 コ ン フ ィ ギ ュ レーシ ョ ン、 お よ び接続 し て複雑なエンベデ ッ ド シ ス テ ム を構築す る作業を簡略 化 し ます。デザ イ ンには、 ザ イ リ ン ク ス の ソ フ ト ウ ェ ア開発キ ッ ト (SDK) を使用 し て構築 さ れた ソ フ ト ウ ェ ア も 含まれます。 こ の ソ フ ト ウ ェ アは Zynq-7000 AP SoC プ ロ セ ッ シ ン グ シ ス テ ム上で動作 し 、制 御機能を イ ン プ リ メ ン ト し ま す。 こ のアプ リ ケーシ ョ ン ノ ー ト は、 PlanAhead、 XPS、 SDK ツールの 完全なプ ロ ジ ェ ク ト フ ァ イ ルを提供 し てお り 、 こ れ ら をデザ イ ンの検討お よ び再構築に活用 し た り 、 新 規デザ イ ン着手時のテ ンプ レー ト と し て使用 し た り す る こ と がで き ます。 アプ リ ケーシ ョ ン ノ ー ト 付属の ZIP フ ァ イ ル xapp792.zip には、 リ フ ァ レ ン ス シ ス テ ム zc702_video_3x_pipeline/ が含まれます。 © Copyright 2012 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. ARM, AMBA, and CoreSight are trademarks of ARM in the EU and other countries. HDMI and High-Definition Multimedia Interface are trademarks of HDMI Licensing LLC. All other trademarks are the property of their respective owners. XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 1 は じ めに は じ めに ザ イ リ ン ク ス が提供す る AXI IP コ ア を活用 し て、 高性能のビデオ シ ス テ ム を作成で き ます。 AXI イ ン タ ー コ ネ ク ト 、 Zynq-7000 AP SoC 上の AXI3 ポー ト 、 AXI VDMA IP コ ア を使用す る こ と で、 複数の ビ デオ ス ト リ ー ム の処理や、 共通の DDR3 SDRAM メ モ リ を 共有す る 複数の ビ デオ フ レ ー ム バ ッ フ ァ ー に 対応 で き る ビ デ オ シ ス テ ム の 基盤 が 構築可能 で す。 AXI は ARM 社 の AMBA4 お よ び AMBA3 AXI 仕様に基づいて標準化 さ れた IP イ ン タ ーフ ェ イ ス プ ロ ト コ ルです。こ のサンプル デザ イ ン が使用す る AXI イ ン タ ー フ ェ イ ス は、 AMBA4 お よ び AMBA3 AXI 仕様 [ 参照 1] に記載 さ れ た AXI4、 AXI3、 AXI4-Lite、 AXI4 Stream の各 イ ン タ ーフ ェ イ ス で構成 さ れてい ます。 こ れ ら の イ ン タ ー フ ェ イ ス は、 デザ イ ン を構築す る ための共通 し た IP イ ン タ ーフ ェ イ ス プ ロ ト コ ルの フ レーム ワ ー ク を 提供 し ます。 Zynq-7000 AP SoC 上の AXI イ ン タ ー コ ネ ク ト と AXI HP ポー ト を組み合わせ る こ と で、 複数のデバ イ ス が共通の メ モ リ コ ン ト ロ ー ラ ーを共有す る アプ リ ケーシ ョ ン向けに、高帯域幅、高性能の メ モ リ シ ス テ ム を イ ン プ リ メ ン ト し ま す。 こ れは、 複数の ソ ー ス か ら のデー タ が共通の メ モ リ デバ イ ス (通常、 DDR3 SDRAM メ モ リ ) を介 し て移動する 、 ビデオ、 エンベデ ッ ド シ ス テ ム、 通信のアプ リ ケーシ ョ ン の多 く に見 ら れ る 要件です。 AXI VDMA は、 フ レーム バ ッ フ ァ ー機能、 ス キ ャ ッ タ ー ギ ャ ザー、 2 次元 (2D) DMA 機能を備えた、 ビデオに最適化 さ れた高性能 DMA エン ジ ン を イ ンプ リ メ ン ト し ます。 AXI VDMA は、 メ モ リ と の間 で ビデオ デー タ ス ト リ ーム を送受信 し 、動的 ソ フ ト ウ ェ ア制御モー ド ま たは静的 コ ン フ ィ ギ ュ レーシ ョ ン モー ド で動作 し ます。 Zynq-7000 AP SoC PS は、 PL を含むシ ス テ ム全体に ク ロ ッ ク と リ セ ッ ト 信号を供給 し ます。 シ ス テ ム の高度な制御は、Cortex-A9 プ ロ セ ッ サに よ っ て Zynq-7000 AP SoC の PS 内で提供 さ れ、I/O ペ リ フ ェ ラ ル (IOP)、 オンチ ッ プ メ モ リ (OCM)、 プ ロ セ ッ サ サポー ト IP コ アが使用 さ れます。 性能 と エ リ ア使 用率のバ ラ ン ス を と る よ う にシ ス テ ム を最適化す る には、複数の AXI イ ン タ ーフ ェ イ ス コ ア を使用 し 、 AXI イ ン タ ーフ ェ イ ス コ ア を個別に調整お よ び最適化 し て、セグ メ ン ト 化/階層化 さ れた AXI イ ン タ ー フ ェ イ ス ネ ッ ト ワー ク を イ ンプ リ メ ン ト し ます。 ハー ド ウ ェ ア要件 リ フ ァ レ ン ス シ ス テ ムのハー ド ウ ェ ア要件は次の と お り です。 • ザ イ リ ン ク ス ZC702 Rev 1 評価ボー ド (JTAG モー ド で使用) • Type-A/Mini-B の 5 ピ ン USB ケーブル 2 本 • HDMI™ ケーブル • 1080p 解像度 (60 フ レーム /秒で解像度 1920 x 1080) をサポー ト す るデ ィ ス プ レ イ モニ タ ー こ の リ フ ァ レ ン ス シ ス テ ム を構築 し 、 ダ ウ ン ロ ー ド す る には、 次の ソ フ ト ウ ェ ア ツールを イ ン ス ト ー ル し てお く 必要があ り ます。 リ フ ァ レ ンス シス テム仕様 • PlanAhead ツール、 バージ ョ ン 14.2 • Platform Studio 14.2 • ISE Design Suite 14.2 • SDK 14.2 リ フ ァ レ ン ス シ ス テ ム には、 Zynq-7000 AP SoC PS、 AXI_INTERCONNECT、 ク ロ ッ ク ジ ェ ネ レー タ ー、 AXI_VTC、 AXI_TPG、 AXI_VDMA、 AXI_PERF_MON、 AXI_OSD、 HDMI イ ン タ ーフ ェ イ ス の各コ アが含まれます。 Zynq-7000 AP SoC PS 内のプ ロ セ ッ サ ま たは DMA コ ン ト ロ ー ラ ー (DMAC) は、 32 ビ ッ ト の AXI3 マ ス タ ー イ ン タ ーフ ェ イ ス であ る AXI 汎用 (GP) イ ン タ ーフ ェ イ ス を介 し て、 PL 内の AXI ス レーブ イ ン タ ーフ ェ イ ス にア ク セ ス で き ます。 S_AXI_GPx イ ン タ ーフ ェ イ ス は S_AXI_HPx イ ン タ ーフ ェ イ ス に比べて性能が劣 る と さ れてお り 、 こ こ では使用 し ません。 こ のデザ イ ンでは、 デザ イ ン内の ス レーブ レ ジ ス タ 用に AXI GP イ ン タ ーフ ェ イ ス を 1 つ (M_AXI_GP0) だけ使用 し ます。 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 2 リ フ ァ レ ン ス シ ス テム仕様 図 1 に、 リ フ ァ レ ン ス シ ス テ ムのブ ロ ッ ク 図を示 し ます。 X-Ref Target - Figure 1 I/O Peripherals MIO USB Processing System Clock Generation USB 2x USB GigE GigE SD SDIO SD SDIO GPIO UART UART CAN CAN I2C I2C SPI SPI 2x GigE Reset Application Processor Unit SWDT FPU and NEON Engine TTC MMU System Level Control Registers 2x SD IRQ 32 KB I-Cache ARM Cortex-A9 CPU MMU 32 KB D-Cache 32 KB D-Cache 32 KB I-Cache Snoop Controller, AWDT, Timer GIC DMA 8 Channel 512 KB L2 Cache & Controller 256K SRAM OCM Interconnect Memory Interfaces Central Interconnect CoreSight Components Memory Interfaces SRAM/ NOR DDR2/3, LPDDR2 Controller DAP ONFI 1.0 NAND DevC Programmable Logic to Memory Interconnect Config AES/ SHA High-Performance Ports Q-SPI CTRL EMIO FPU and NEON Engine ARM Cortex-A9 CPU General-Purpose Ports XADC 12 bit ADC DMA Sync IRQ ACP Programmable Logic HP0 HP1 HP2 AXI AXI AXI VDMA VDMA VDMA AXI VTC AXI OSD FSYNC AXI TPG AXI PERF MON AXI TPG HDMI AXI TPG GP0 XAPP792_01_100912 図 1 : リ フ ァ レ ン ス シ ス テムのブ ロ ッ ク図 注記 : 図 1 のブ ロ ッ ク 図には、 VFBC か ら AXI Stream のブ ロ ッ ク は示 し てい ません。 表 1 に、 シ ス テ ムのア ド レ ス マ ッ プを示 し ます。 表 1 : リ フ ァ レ ン ス シ ス テムのア ド レ ス マ ッ プ ベース ア ド レ ス 上位ア ド レ ス processing_system7 ペ リ フ ェ ラル eps7_0 (M_AXI_GP0) 0x40000000 0x7FFFFFFF processing_system7 eps7_0 (S_AXI_HP0) 0x00000000 0x3FFFFFFF processing_system7 eps7_0 (S_AXI_HP1) 0x00000000 0x3FFFFFFF processing_system7 eps7_0 (S_AXI_HP2) 0x00000000 0x3FFFFFFF axi_vtc axi_vtc_0 0x53800000 0x5380FFFF axi_osd osd_0 0x43A00000 0x43A0FFFF XAPP792 (v1.0.1) 2012 年 10 月 16 日 イ ンス タ ンス japan.xilinx.com 3 ハー ド ウ ェ ア シ ス テム仕様 表 1 : リ フ ァ レ ン ス シ ス テムのア ド レ ス マ ッ プ (続き ) ペ リ フ ェ ラル ハー ド ウ ェ ア シ ス テム仕様 イ ンス タ ンス ベース ア ド レ ス 上位ア ド レ ス axi_tpg axi_tpg_0 0x5EE00000 0x5EE0FFFF axi_vdma axi_vdma_0 0x40000000 0x4000FFFF axi_tpg axi_tpg_1 0x5EE10000 0x5EE1FFFF axi_vdma axi_vdma_1 0x40010000 0x4001FFFF axi_tpg axi_tpg_2 0x5EE20000 0x5EE2FFFF axi_vdma axi_vdma_2 0x40020000 0x4002FFFF axi_perf_mon perf_axi_mon_0 0x41000000 0x4100FFFF こ のセ ク シ ョ ン では、 メ イ ン IP コ アお よ び Zynq-7000 AP SoC PS の設定方法な ど、 リ フ ァ レ ン ス デ ザ イ ンの高度な機能について説明 し ます。 IP の便利な機能、 性能 と エ リ アの ト レー ド オ フ、 その他の設 定な ど の情報について も 解説 し ます。 こ れ ら の情報はビデオ シ ス テ ム向けですが、 シ ス テ ム性能の最適 化に用い ら れてい る 原則は高性能 AXI イ ン タ ーフ ェ イ ス に基づ く デザ イ ンに幅広 く 適用で き ます。AXI シ ス テ ム の最適化お よ び設計上の ト レー ド オ フ に関す る 詳細は、 『AXI リ フ ァ レ ン ス ガ イ ド 』 (UG761) を参照 し て く だ さ い。 こ のアプ リ ケーシ ョ ン ノ ー ト は、 Zynq-7000 AP SoC プ ラ ッ ト フ ォーム、 AXI プ ロ ト コ ル、PlanAhead お よ び XPS ツールに関す る一般的知識を備え た設計者を前提 と し てい ます。XPS ツールの詳細は、 『EDK コ ン セプ ト 、 ツール、 テ ク ニ ッ ク : 効率的な エ ンベデ ッ ド シ ス テ ム構築を サ ポー ト す る ハンデ ィ ガ イ ド 』 (UG683) を参照 し て く だ さ い。 Zynq-7000 AP SoC PS Zynq-7000 AP SoC PS は、 Cortex A9 プ ロ セ ッ サを 1 つ、 IIC (MIO イ ン タ ーフ ェ イ ス ) を 1 つ、 UART (MIO イ ン タ ーフ ェ イ ス ) を 1 つ、 Zynq-7000 AP SoC メ モ リ イ ン タ ーフ ェ イ ス (AXI3 イ ン タ ーフ ェ イ ス ) を使用で き る よ う に設定 さ れてい ます。 こ れ ら は、 SDK ツールで作成 さ れ る FSBL ( フ ァ ース ト ス テージ ブー ト ロ ーダー ) に よ っ て有効化 さ れます。 Zynq-7000 AP SoC PS は、 PS と PL の両方に ク ロ ッ ク と リ セ ッ ト 信号を供給 し ます。 こ のデザ イ ン で 使用す る ク ロ ッ ク 信号の周波数は、 表 2 を参照 し て く だ さ い。 表 2 : リ フ ァ レ ン ス シ ス テムのク ロ ッ ク 周波数 エレ メ ン ト ク ロ ッ ク 周波数 (MHz) プロセッサ 666 32 ビ ッ ト DDR3 メ モ リ コ ン ト ロ ー ラ ー 533 高速 AXI イ ン タ ーフ ェ イ ス (S_AXI_HP0、 S_AXI_HP1、 S_AXI_HP2) 150 低速 AXI イ ン タ ーフ ェ イ ス (M_AXI_GP0) 75 64 ビ ッ ト メ モ リ イ ン タ ーコ ネ ク ト 355 32 ビ ッ ト マ ス タ ーお よ びス レーブ イ ン タ ーコ ネ ク ト 222 Zynq-7000 AP SoC PS 内 の ク ロ ッ ク 周波数 と イ ン タ ー コ ネ ク ト に 関す る 詳細 は 『Zynq-7000 All Programmable SoC テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 (UG585) を参照 し て く だ さ い。 ビデオ関連の IP コ ア こ の リ フ ァ レ ン ス デザ イ ンは、1080P60 (60 フ レーム /秒の 1920 x 1080 フ レーム ) で動作す る ビデオ パ イ プ ラ イ ン を 3 つ イ ン プ リ メ ン ト し ま す。 各 フ レ ー ム は、 RGBA や ア ル フ ァ チ ャ ネ ル情報 を 含む YUV 4 4 4 な ど のハ イ エン ド 高品位ビデオ ス ト リ ーム を表示す る、 4 バ イ ト / ピ ク セルで構成 さ れます。 ビデオ パ イ プ ラ イ ンは、 それぞれ約 4Gb/s に相当す る 497.6MB/s の帯域幅を必要 と し ます。 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 4 ハー ド ウ ェ ア シ ス テム仕様 ビ デオ ト ラ フ ィ ッ ク は TPG IP コ ア で生成 さ れ、 OSD コ ア に よ っ て表示 さ れ ま す。 生成 さ れ る ト ラ フ ィ ッ ク の読み出 し /書 き 込みの総帯域幅は 6 個のビデオ ス ト リ ームに相当 し 、 ほぼ 3GB/s (24Gb/s) を 必要 と し ます。 こ のアプ リ ケーシ ョ ン ノ ー ト では、 高精細度のビデオ ス ト リ ーム を 6 個用いた AXI シ ス テ ムの性能を 具体的に説明 し ま す。 ビデオ シ ス テ ム には最低限、 ソ ー ス、 何 ら かの内部処理、 お よ びデ ス テ ィ ネー シ ョ ン が含 ま れ ま す。 それ ら は、 さ ま ざ ま な IP モジ ュ ールを用いた複数の工程での内部処理を可能に し ます。 図 2 に示す よ う な標準的な ビデオ シ ス テ ムは、 多 く の場合、 入力、 前処理、 メ イ ン処理、 後処 理、 お よ び出力の工程で構成 さ れます。 図に示 さ れてい る ビデオ工程の多 く で、 ビデオ レー ト での メ モ リ ア ク セ ス が必要です。 ビデオ デー タ は、 内部処理工程の要求に従っ て、 メ モ リ と の間で転送 さ れ ま す。 こ のアプ リ ケーシ ョ ン ノ ー ト では、 内部ブ ロ ッ ク メ モ リ の ト ラ フ ィ ッ ク を、 一連のテ ス ト パ タ ー ン ジ ェ ネ レー タ ーに よ っ て生成 し 、 代表的な状態を シ ミ ュ レーシ ョ ン し ます。 X-Ref Target - Figure 2 Source I/O Interface Line Buffers Line Buffers Line Buffers Pre Processing Core Processing Post Processing Frame Buffers Frame Buffers Frame Buffers I/O Interface CPU/Controller External Memory X792_02_091312 図 2 : 標準的な ビデオ シ ス テム AXI イ ン タ ーコ ネ ク ト (AXI_INTERCONNECT_GP0_MASTER) のイ ンス タ ンス AXI_INTERCONNECT_GP0_MASTER の イ ン ス タ ン スは、Zynq-7000 AP SoC PS に よ る ス レーブ レ ジ ス タ へのア ク セ ス を可能にす る バ ス に共有バ ス ト ポ ロ ジ を適用す る こ と で、エ リ アに対 し て最適化 さ れてい ます。 Cortex-A9 プ ロ セ ッ サは制御お よ びス テー タ ス情報取得のために、 デザ イ ン内のすべての AXI4-Lite ス レーブ レ ジ ス タ に対 し て書 き込み と 読み出 し を実行 し ます。ま た、デザ イ ンの こ の部分は、 シ ス テ ムのほかの部分 よ り も 低速の 75MHz ク ロ ッ ク で駆動 し ます。 AXI イ ン タ ーフ ェ イ ス ス レーブは、 AXI_VDMA ス レーブ イ ン タ ーフ ェ イ ス の 3 つの イ ン ス タ ン ス、 AXI_VTC、 AXI_PERF_MON、 AXI_TPG の 3 つの イ ン ス タ ン ス、 AXI_OSD が使用 し ます。 AXI イ ン タ ー コ ネ ク ト (AXI_INTERCONNECT_HPx_SLAVE) のイ ン ス タ ン ス AXI_INTERCONNECT_HP0_SLAVE、 AXI_INTERCONNECT_HP1_SLAVE、 AXI_INTERCONNECT_HP2_SLAVE の各 イ ン ス タ ン ス は高速のマ ス タ ーお よ び ス レ ーブで使用 し 、 高スループ ッ ト 、 高 FMAX の最適化が適用 さ れます。 高スループ ッ ト に対応する ために、 接続モー ド は ク ロ ス バー モー ド に設定 し ます。こ れ ら の イ ン ス タ ン ス は、コ ア デー タ 幅 64 ビ ッ ト 、動作速度 150MHz を提供す る こ と で、 デザ イ ンが最高の FMAX と スループ ッ ト を実現で き る よ う に し ます。 各 イ ン ス タ ン ス は 1 つの AXI VDMA (AXI MM2S と AXI S2MM マ ス タ ー イ ン タ ーフ ェ イ ス ) を 1 つの HP イ ン タ ーフ ェ イ ス に接続 し ます。 マ ス タ ー と ス レーブで高い性能を得 る AXI イ ン タ ーフ ェ イ ス の設定方法 については、 「AXI VDMA イ ン ス タ ン ス」 と 6 ページの 「Zynq-7000 AP SoC メ モ リ コ ン ト ロ ー ラ ー」 を参照 し て く だ さ い。 AXI VDMA イ ン ス タ ン ス AXI VDMA コ アは、 メ モ リ マ ッ プ さ れた AXI4 ド メ イ ン か ら AXI4-Stream (お よ びその逆方向) への ビデオ読み出 し /書 き 込み転送機能を提供する よ う 設計 さ れてい ます。 AXI VDMA コ アに よ っ て、 シ ス テ ム メ モ リ と AXI4-Stream ベース の タ ーゲ ッ ト ビデオ IP 間の高速デー タ 転送が可能にな り ます。 メ XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 5 ハー ド ウ ェ ア シ ス テム仕様 モ リ マ ッ プ方式の AXI4 イ ン タ ーフ ェ イ ス は、AXI イ ン タ ーフ ェ イ ス間の高速デー タ 転送 と バ ッ フ ァ ー 記述子の フ ェ ッ チに使用 さ れます。 こ のデザ イ ン では、 シ ス テ ム内の SG イ ン タ ーフ ェ イ ス を不要 と す る バ ッ フ ァ ー記述子に対 し て、 レ ジ ス タ 直接操作モー ド を適用 し ます。 デザ イ ンは、完全同期フ レーム DMA 動作お よ び 2 次元 DMA 転送に対応す る よ う genlock やフ レーム 同期な ど のビデオ固有の機能を備えてい ます。 同期動作に加えて、 中央プ ロ セ ッ サに よ る制御を容易に す る ため、 フ レーム格納番号 と ス キ ャ ッ タ ー / ギ ャ ザー モー ド ま たは レ ジ ス タ 直接操作モー ド を利用で き ます。 こ のデザ イ ン では、 AXI4 MM2S、 AXI4 S2MM、 AXI4-Stream MM2S、 AXI4-Stream S2MM の各 イ ン タ ーフ ェ イ ス と 共に AXI VDMA の イ ン ス タ ン ス を 3 つ使用 し ます。 さ ら に、 各 イ ン ス タ ン ス の初期 化、 ス テー タ ス、 お よ び管理レ ジ ス タ には、 AXI4-Lite ス レーブ イ ン タ ーフ ェ イ ス を介 し てア ク セ ス し ます。 AXI VDMA イ ン ス タ ン ス の 32 ビ ッ ト 幅の AXI MM2S イ ン タ ーフ ェ イ スお よ び AXI S2MM イ ン タ ー フ ェ イ スは、AXI_INTERCONNECT_HPx_SLAVE イ ン ス タ ン スに接続 さ れます。AXI4-Stream イ ン ター フ ェ イ スは、 148.5MHz の ク ロ ッ ク で駆動し ます。 こ れには、 IP コ アの C_PRMRY_IS_ACLK_ASYNC パ ラ メ ーターを有効にする必要があ り ます。AXI VDMA マ ス ターは 150MHz の ク ロ ッ ク で駆動 さ れる た め、 AXI イ ン タ ーフ ェ イ ス コ アの周波数であ る 150MHz への ク ロ ッ ク コ ンバー タ ーは不要です。 ただ し、 32 ビ ッ ト の AXI4 プ ロ ト コ ルを 64 ビ ッ ト の AXI3 プ ロ ト コ ルに変換する ために、 AXI イ ン ターフ ェ イ ス内にプ ロ ト コ ル コ ンバーター と ア ッ プサ イ ザーが必要です。 AXI VDMA の イ ン ス タ ン ス は最大バース ト が 32 にな る よ う に設定 さ れてい ます。 AXI3 プ ロ ト コ ルが サポー ト す る 最大バース ト は 16 です。 し か し 、 Zynq-7000 デバ イ ス上で接続 さ れ る HP イ ン タ ーフ ェ イ ス は 64 ビ ッ ト であ る ため、 こ の イ ン タ ーフ ェ イ ス は 64 ビ ッ ト x 16 デー タ ビー ト (32 ビ ッ ト x 32 デー タ ビー ト ) の転送サ イ ズ を サポー ト し ます。 さ ら に、 AXI VDMA 内の読み出 し お よ び書 き 込み側 ラ イ ン バ ッ フ ァ ーは、 深 さ 8KB の ラ イ ン を 1 行格納で き る よ う に設定 さ れてい ます (1920 x 4 バ イ ト = 深 さ 7680 バ イ ト )。 AXI VDMA の AXI イ ン タ ーフ ェ イ ス では、 Zynq-7000 デバ イ ス に中程度の量の ト ラ ン ザ ク シ ョ ン を 提供で き る よ う にマ ス タ ー イ ン タ ーフ ェ イ ス の読み出 し お よ び書 き 込みの発行数が 2 に設定 さ れてい ます。 さ ら に、 マ ス タ ー イ ン タ ーフ ェ イ ス は深 さ 512 の読み出 し お よ び書き 込み FIFO を備え てお り 、 シ ス テ ム性能を向上 し 、 シ ス テ ム ス ロ ッ ト リ ン グの リ ス ク を軽減する ために、 格納お よ び転送が有効化 さ れてい ます。 ま た、 AXI マ ス タ ー イ ン タ ーフ ェ イ ス では 150MHz におけ る タ イ ミ ン グ要件を満たす よ う FULLY_REGISTERED モー ド を有効に し てい ます。こ れ ら の設定は、『AXI リ フ ァ レ ン ス ガ イ ド 』 (UG761) に記載 さ れてい る AXI エン ド ポ イ ン ト マ ス タ ーの性能に関する 推奨事項に も 従っ てい ます。 Zynq-7000 AP SoC メ モ リ コ ン ト ロー ラ ー 概要 ZC702 ボー ド 上の Zynq-7000 AP SoC メ モ リ コ ン ト ロ ー ラ ーは、533MHz の ク ロ ッ ク で駆動 さ れ る 32 ビ ッ ト の DDR3 コ ン ト ロ ー ラ ーです。 ア ド レ ス指定の方法は、 行、 バン ク 、 列です。 メ モ リ コ ン ト ロ ー ラ ーの レ ジ ス タ は FSBL に よ っ て自動的に設定 さ れます。 メ モ リ コ ン ト ロ ー ラ ーには、 AXI_HP か ら DDR イ ン タ ーフ ェ イ スへの接続 (2 つ)、 中央 イ ン タ ー コ ネ ク ト か ら の接続、 Zynq-7000 デバ イ ス内の L2 キ ャ ッ シ ュ イ ン タ ーフ ェ イ ス か ら の接続の計 4 つの直接 接続があ り ま す。 ま た、 こ れ ら 4 つの ソ ー ス と メ モ リ コ ン ト ロ ー ラ ー接続 と の間には、 サービ ス 品質 (QoS) 優先度モジ ュ ールが配置 さ れ、 要求を制限する こ と で ト ラ フ ィ ッ ク パ タ ーンの調整を可能に し て い ます。 HP0/HP1 お よ び HP2/HP3 ス レーブ イ ン タ ーフ ェ イ ス は、 AXI_HP - DDR イ ン タ ーフ ェ イ ス を使用 し 、 メ モ リ コ ン ト ロ ー ラ ーへの直接接続 を共有 し ま す。 こ のデザ イ ン では、 HP0/HP1/HP2 ス レ ーブ イ ン タ ーフ ェ イ ス を使用 し ま す。 こ れ ら の イ ン タ ーフ ェ イ ス に関す る 詳細は、 『Zynq-7000 All Programmable SoC テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 (UG585) を参照 し て く だ さ い。 各 HP ス レーブ イ ン タ ーフ ェ イ ス は 64 ビ ッ ト で、 読み出 し /書 き 込みの受け付け数は 8 です。 FIFO は HP イ ン タ ーフ ェ イ ス内に組み込み済みです。 イ ン タ ーフ ェ イ ス が 150MHz での タ イ ミ ン グ を確実に満 たす よ う に、FULLY_REGISTERED モー ド を有効に し てい ます。 こ れ ら の設定に よ り 、 ト ラ ンザ ク シ ョ ンのパ イ プ ラ イ ン処理が効率化 さ れ、 シ ス テ ム スループ ッ ト が向上 し ます。 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 6 ハー ド ウ ェ ア シ ス テム仕様 60% を上回る使用率の達成 メ モ リ コ ン ト ロ ー ラ ーの使用率を最適化す る には、 マ ス タ ー イ ン タ ーフ ェ イ ス か ら の ト ラ ンザ ク シ ョ ンが別々のバン ク で発生 し 、 KB/MB の境界に揃っ ていなければな り ません。 ビデオ デザ イ ンでは、 フ レーム バ ッ フ ァ ーへのア ク セ ス が別々のバン ク で生 じ る よ う に し 、動作中はバン ク の重複を最小限に抑 え る 必要があ り ます。 こ のデザ イ ンは、 ピ ク セルあ た り 4 バ イ ト を使用 し た 1080P60 (1920 x 1080) の動作をデモン ス ト レー シ ョ ン し ます。 水平 ラ イ ンはそれぞれ約 8KB (1920 x 4 = 7680) であ る こ と か ら 、 AXI VDMA の ラ イ ン ス ト ラ イ ド は 8KB 境界に設定 し ま す。 新 し い ラ イ ン の開始点は必ず 8KB 境界に揃え ら れ ます。 各 フ レームの垂直 ラ イ ン (1080 ラ イ ン / フ レーム ) は、フ レーム ご と に 2KB 境界に揃え ら れます。 し たがっ て、 デザ イ ン内の各フ レーム バ ッ フ ァ ーは 16MB (8KB x 2KB) 境界に揃え ら れ る こ と にな り ます。 複数のビデオ パ イ プ ラ イ ン では、 N 個のビデオ デバ イ ス が N 個の フ レーム バ ッ フ ァ ーに同 じ タ イ ミ ン グ でア ク セ ス し ま す。 こ れは、 フ レ ーム バ ッ フ ァ ーが 16MB の場合、 それぞれの ビデオ デバ イ ス が、 ほぼ同時にほぼ同 じ ア ド レ ス [23:0] に対す る ア ク セ ス を要求す る こ と を意味 し ます。 デフ ォ ル ト のア ド レ ス マ ッ プではバン ク 選択ア ド レ ス はビ ッ ト [14:12] に割 り 当て ら れてい る ため、 こ れ ら も 同 じ ア ド レ ス にな り ま す。 し たが っ て、 バン ク が同 じ でページが異な る ア ク セ ス要求では、 毎回フル ページ ミ ス と い う オーバーヘ ッ ド ( プ リ チ ャ ージ - ア ク テ ィ ブ化 - 読み出 し / 書 き 込み) が発生 し ま す。 こ れは、 DRAM の効率を著 し く 低下 さ せます (40 ~ 50% の範囲)。 ZC702 ボー ド の メ モ リ コ ン ト ロ ー ラ ーは、 こ の DDR ア ド レ ス構成を用いて行 (13 ビ ッ ト )、 バン ク (3 ビ ッ ト )、 列 (10 ビ ッ ト )、 お よ びワ ー ド 選択 (2 ビ ッ ト ) を使用する よ う に設定 さ れてい ます。 DDR_ADDR[27:15] 行 DDR_ADDR[14:12] バン ク DDR_ADDR[11:0] 列/ ワー ド AXI マ ス タ ーのア ド レ ス は、 各フ レーム バ ッ フ ァ ーがそれ自身のバン ク 内に確実に配置 さ れ る よ う に 並べ替え ら れ ます。 各フ レーム バ ッ フ ァ ーは 16MB 境界に位置合わせ さ れてい る ため、 ア ド レ ス空間 [23:0] を表すために 24 ビ ッ ト 、 バン ク [26:24] を表すために 3 ビ ッ ト を必要 と し ます。 AXI ア ド レ ス ビ ッ ト [26:24] は DDR ア ド レ ス では [14:12] に移 さ れます。 こ の よ う に並べ替え ら れた AXI マ ス タ ー ア ド レ ス は次の よ う にな り ます。 axi_addr[31:27] axi_addr[23:12] axi_addr[26:24] axi_addr[11:0] こ のアプ リ ケーシ ョ ン ノ ー ト では、 AXI イ ン タ ーフ ェ イ ス に対する AXI マ ス タ ー ア ド レ ス を並べ替え る ために追加の EDK IP コ ア を作成 し ま し た。 こ の並べ替えでは、 プ ロ セ ッ サ ま たは ソ フ ト ウ ェ アがア ド レ ス の並べ替え を処理す る必要があ り ます。 注記 : こ の IP コ アは、 こ のアプ リ ケーシ ョ ン ノ ー ト に一例 と し て挙げ る も のです。 フ レーム バ ッ フ ァ ー 通常の genlock モー ド で動作す る 各 AXI VDMA では、 一度に 2 つの フ レーム バ ッ フ ァ ーがア ク テ ィ ブにな り 、 通常は 1 フ レーム バ ッ フ ァ ー分の遅延が発生 し ます (つま り 、 読み出 し /書 き込み動作が同 じ フ レーム バ ッ フ ァ ー内で発生する こ と はない)。 こ のデザ イ ンの ト ラ フ ィ ッ ク パ タ ーン を確定的にす る ため、 すべての AXI VDMA イ ン タ ーフ ェ イ ス は同 じ FSYNC 信号を共有 し ま す。 こ のデザ イ ン は フ レーム バ ッ フ ァ ーを合計 9 個使用 し ますが、 メ モ リ コ ン ト ロ ー ラ ーにはバン ク が 8 個 し かあ り ません。 フ レーム バ ッ フ ァ ーは同時に 6 個 し かア ク テ ィ ブにな ら ないため、 バン ク の重複を制限す る か、 完全に 排除す る よ う フ レーム バ ッ フ ァ ーの配置は慎重に選択 し ます。 表 3 に フ レ ーム バ ッ フ ァ ーのベー ス ア ド レ ス を 示 し ま す。 BANK5 が AXI VDMA1 の FRAME2 と AXI VDMA2 の FRAME0 に割 り 当て ら れてい ます。 こ のデザ イ ンは同 じ FSYNC 信号を共有 し 、 かつ フ レーム ポ イ ン タ ーがシーケ ン シ ャ ルに イ ン ク リ メ ン ト する ため、共有バン ク を FRAME0 と FRAME2 ( フ レーム バ ッ フ ァ ーの反対側両端) に配置すれば、 バン ク 重複の可能性が最小限に抑え ら れます。 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 7 ハー ド ウ ェ ア シ ス テム仕様 表 3 : フ レーム バ ッ フ ァ ーのベース ア ド レ ス フ レーム バ ッ フ ァ ー ベース ア ド レ ス バン ク番号 AXI VDMA0 FRAME0 0x08000000 BANK0 FRAME1 0x09000000 BANK1 FRAME2 0x0A000000 BANK2 AXI VDMA1 FRAME0 0x0B000000 BANK3 FRAME1 0x0C000000 BANK4 FRAME2 0x0D000000 BANK5 AXI VDMA2 FRAME0 0x1D000000 BANK5 FRAME1 0x1E000000 BANK6 FRAME2 0x1F000000 BANK7 QoS 未処理 (Outstanding) ト ラ ンザ ク シ ョ ンの最大数、 ピー ク レー ト 、 平均レー ト 、 バース ト レベルを設定 し 、 QoS 制御 メ カ ニ ズ ム を使用す る こ と で イ ン タ ーフ ェ イ ス か ら メ モ リ コ ン ト ロ ー ラ ーへの要求を制 御で き ます。 こ れは、 ビデオ パ イ プ ラ イ ン を使用 し 、 ス ロ ッ ト ルが不可の場合に特に効果的です。 こ の デザ イ ンでは、 プ ロ セ ッ サ ト ラ フ ィ ッ ク が ビデオ パ イ プ ラ イ ン を ス ロ ッ ト ルす る こ と がないため、 QoS 機能は使用 し ません。 AXI VTC AXI VTC コ アは、汎用のビデオ タ イ ミ ン グ ジ ェ ネ レー タ ー兼デ ィ テ ク タ ーです。こ の コ アの入力側は、 水平同期パル ス と 垂直同期パル ス、 極性、 ブ ラ ン キ ン グ、 タ イ ミ ン グ、 お よ びア ク テ ィ ブ ビデオ ピ ク セルを自動検出 し ます。 出力側は、 標準的な ビデオ シ ス テ ム で使用 さ れ る水平ブ ラ ン キ ン グ と 垂直ブ ラ ン キ ン グお よ び同期の各パルス を生成 し 、 プ ロ グ ラ ム可能なパルス極性をサポー ト し ます。 AXI VTC には、 プ ロ セ ッ サか ら ス レーブ制御レ ジ ス タ にア ク セ スす る ための AXI4-Lite イ ン タ ーフ ェ イ ス が含まれます。 AXI VTC の詳細は、 『LogiCORE IP ビデオ タ イ ミ ン グ コ ン ト ロ ー ラ ー』 (DS857) を参照 し て く だ さ い。 こ のデザ イ ン では、 2 つの AXI VTC イ ン ス タ ン ス を、 検出機能を無効に し て使用 し ます。 1 つ目の イ ン ス タ ン ス はビデオ パ イ プ ラ イ ンのビデオ入力部分に対応 し 、2 つ目はビデオ パ イ プ ラ イ ンの読み出 し 部分を構成す る AXI OSD に対応 し ます。 VTC v3.0 コ アは ラ イ セ ン ス を必要 と し 、 CORE Generator™ ツールを使用 し て生成で き ます。 AXI TPG AXI TPG コ アには、 プ ロ セ ッ サか ら ス レーブ制御レ ジ ス タ にア ク セ スす る ための AXI4-Lite イ ン タ ー フ ェ イ ス が含まれます。 こ のデザ イ ンでは、 DRAM への ビデオ ト ラ フ ィ ッ ク が一連の TPG に よ っ て生成 さ れます。 各 TPG コ アは、 ビデオ業界で検証お よ びテ ス ト に広 く 使用 さ れてい る 複数の ビデオ テ ス ト パ タ ーン を生成で き ま す。 こ こ では、 シ ス テ ム性能を示すために、 生成 さ れ る ト ラ フ ィ ッ ク 量のみが重要であ る こ と か ら 、 TPG を ほかの ビデオ IP の代用 と し て使用 し ます。 制御 ソ フ ト ウ ェ アは、 カ ラ ー バー、 水平お よ び垂直 バー ス ト パ タ ーン、 ゾーン プ レー ト のパ タ ーン を生成 し ます。 ど のテ ス ト パ タ ーン を選択 し て も 、 生 成 さ れ る デー タ 量は同 じ 1080P60 HD ビデオです (60 フ レーム /秒の 1920 x 1080 フ レーム )。た と えば、 YUVA444 1080P60 パ タ ーンは、 ほぼ 4Gb/s のデー タ ス ト リ ームに相当する 497.7MB/s の ト ラ フ ィ ッ ク を生成 し ます。 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 8 ハー ド ウ ェ ア シ ス テム仕様 ソ フ ト ウ ェ ア制御に よ っ て複数の動作モー ド が使用可能にな り ます。 こ のアプ リ ケーシ ョ ン ノ ー ト の目 的か ら 、 TPG は常にカ ラ ー バーの 1 つ、 水平方向周波数ス イ ープ、 垂直方向周波数ス イ ープ、 ゾーン プ レー ト パ タ ーンのいずれかのテ ス ト パ タ ーン を生成 し ます。 こ れ ら のパ タ ーンはテ ス ト 用であ り 、放 送業界の規格向けにキ ャ リ ブ レー ト さ れてはい ません。 AXI OSD AXI OSD コ アは、 アルフ ァ ブ レ ンデ ィ ン グや最大 8 つの独立 し た レ イ ヤーの構成に対応す る柔軟な ビ デオ処理を提供 し ま す。 OSD コ アは、 簡単な テ キ ス ト と グ ラ フ ィ ッ ク も 生成 し 、 YUVA 4 4 4 ま たは RGBA 画像フ ォーマ ッ ト でカ ラ ー コ ン ポーネ ン ト あ た り 8、 10、 12 ビ ッ ト の最大 4K x 4K ピ ク セルの 画像を処理で き ます。 こ のアプ リ ケーシ ョ ン ノ ー ト では、 OSD コ アに よ っ て、 5 つの ビデオ ス ト リ ー ム を独立 し た表示用レ イ ヤー と し て合成 し ます。 TPG コ アが生成す る ビデオ ス ト リ ームは ソ フ ト ウ ェ ア制御で有効にな る ため、デ ィ ス プ レ イ には合成済みの レ イ ヤーが重な っ て表示 さ れます。図 3 に、OSD コ アの最上位ブ ロ ッ ク 図を示 し ます。 X-Ref Target - Figure 3 FIFO Input (Layer 0) FIFO Input (Layer 1) Graphics Controller (Layer 2) Host Control Control Registers Priority Select Priority 0 Multiplexer (Lowest) Priority 1 Multiplexer Priority 2 Multiplexer (Highest) Background Color Alpha Blend Element Alpha Blend Element Alpha Blend Element Video Data Out Alpha Blend Pipeline Position Screen Size Host Status Interrupt Status Alpha Blend Control Alpha Blend Control Alpha Blend Control H/V Counters X792_03_091312 図 3 : 3 レ イ ヤー OSD のブ ロ ッ ク 図 (例) AXI OSD コ アには、 プ ロ セ ッ サか ら ス レーブ制御レ ジ ス タ にア ク セ スする ための AXI4-Lite イ ン タ ー フ ェ イ ス が含ま れ ま す。 AXI OSD コ アの詳細は、 『LogiCORE IP Video On-Screen Display』 (DS837) を参照 し て く だ さ い。 ザ イ リ ン ク ス Video On-Screen Display コ ア は SignOnce IP サ イ ト ラ イ セ ン ス を 必要 と し 、 CORE Generator ツールを使用 し て生成で き ます。 コ アのシ ミ ュ レーシ ョ ン評価 ラ イ セ ン ス も 提供 し てい ます。 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 9 ソ フ ト ウ ェ ア ア プ リ ケーシ ョ ン FPGA のビ ッ ト ス ト リ ーム生成を含む コ アの完全な機能を使用する には、ザ イ リ ン ク ス か ら フル ラ イ セ ン ス を入手す る 必要があ り ます。 AXI_PERF_MON AXI_PERF_MON コ アは、 最大 8 つの AXI イ ン タ ーフ ェ イ ス において、 各種の指標に基づいたバ ス レ イ テ ン シの測定を可能に し ます。 こ のデザ イ ン では、 メ ト リ ッ ク カ ウ ン タ ー レ ジ ス タ に よ っ て読み出 し お よ び書 き 込みバ イ ト を計数す る カ ウ ン タ ーを 2 つ使用 し ます。 デザ イ ンには、 3 つのバ ス モニ タ ー イ ン タ ーフ ェ イ ス があ り ます。 AXI_S_HP0、 AXI_S_HP1、 AXI_S_HP2 ス レーブ イ ン タ ーフ ェ イ ス を個別にモニ タ ー し ます。 サンプル間隔レ ジ ス タ ( ク ロ ッ ク 数) は 2 秒間カ ウ ン ト す る よ う に設定 し ま す。 こ の 2 秒の間に、 AXI_PERF_MON コ アは AXI イ ン タ ー フ ェ イ ス 上の読み出 し バ イ ト と 書 き 込みバ イ ト を モニ タ ー し 、 サ ン プル間隔カ ウ ン タ ーがオーバーフ ロ ー し た時点で、 こ れ ら の値を メ ト リ ッ ク カ ウ ン タ ー レ ジ ス タ に書 き 込みます。 2 秒の間隔が経過 し た か ど う かは、 ソ フ ト ウ ェ ア ルーチンに よ っ てサンプル間隔カ ウ ン タ ー割 り 込みビ ッ ト を ポー リ ン グす る こ と で判断で き ます。 AXI_PERF_MON コ アの詳細は、 『LogiCORE IP AXI パフ ォーマ ン ス モニ タ ー』 (PG037) を参照 し て く だ さ い。 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン AXI VDMA デ ィ ス プ レ イ ア プ リ ケーシ ョ ン こ の ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンはビデオ パ イ プ ラ イ ン を起動 し 、 リ アル タ イ ム で帯域幅を調べな が ら 、 LCD 画面上に各レ イ ヤーを個別に表示す る か、 全レ イ ヤーを アルフ ァ ブ レ ンデ ィ ン グ し た も の を表示で き ます。 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンは、 Zynq-7000 AP SoC PS 内の OCM に よ っ て動作 し ます。 ザ イ リ ン ク ス ビデオ IP コ ア向けのアプ リ ケーシ ョ ン レベルの ソ フ ト ウ ェ アは、各 IP コ ア向けに提供 さ れ る ド ラ イ バーを使用 し て C 言語で作成 さ れてい ます。 各 コ アのプ ロ グ ラ マ モデルは、 ド ラ イ バーが 使用す る 特定の API を記述 し ます。 あ る いは、 アプ リ ケーシ ョ ン レベルで IP コ ア レ ジ ス タ を直接使用 し 、 割 り 込みを処理す る よ う にアプ リ ケーシ ョ ン ソ フ ト ウ ェ ア を記述す る こ と も で き ま すが、 ア プ リ ケーシ ョ ン レベルでは、 提供 さ れた ド ラ イ バー と 制御レ イ ヤーを使用す る方がは る かに便利です。 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンは次の手順を実行 し ます。 1. ZC702 ボー ド 上の 1080P60 出力用 HDMI ポー ト を、 IIC イ ン タ ーフ ェ イ ス を介 し て設定 し ます。 2. デフ ォ ル ト のグ レー パ タ ーン を書 き 込む よ う に TPG イ ン ス タ ン ス を設定 し ます。 動作は、 AXI VTC イ ン ス タ ン ス の起動後に開始 さ れます。 3. AXI VDMA イ ン ス タ ン ス が起動 し ます。 こ の イ ン ス タ ン ス には、AXI VDMA 内の レ ジ ス タ にバ ッ フ ァ ー記述子を書 き 込むプ ロ セ ッ サが含まれます。その後、読み出 し チ ャ ネル、続いて書 き 込みチ ャ ネルを起動 し 、 VDMA イ ン ス タ ン ス での転送を開始 し ます。 4. AXI VTC イ ン ス タ ン ス が 1080P60 の タ イ ミ ン グ設定で起動 し ます。 5. AXI OSD イ ン ス タ ン ス を 1080P 出力用に設定 し ます。 6. デザ イ ン内の 3 つの TPG イ ン ス タ ン スは、 カ ラ ー バー ( レ イ ヤー 0)、 ゾーンプ レー ト パ タ ーン ( レ イ ヤー 1)、 垂直方向ス イ ープ ( レ イ ヤー 2) を書き 込むよ う に設定 さ れます。 初期の設定シーケ ン ス 後、 番号に よ る オプシ ョ ン ( オプシ ョ ン 0 ~ 3) を選択す る こ と で、 特定の レ イ ヤーを表示で き ます。 特定の レ イ ヤーの番号を選択する と 、 その レ イ ヤーに対する アルフ ァ ブ レ ンデ ィ ン グ値が最大に、その他の レ イ ヤーの値が最小にな る よ う に OSD レ ジ ス タ が変更 さ れます。全レ イ ヤー のアルフ ァ ブ レ ンデ ィ ン グ (オプシ ョ ン 3) を選択 し た場合は、 アルフ ァ ブ レ ンデ ィ ン グ レ ジ ス タ に レ イ ヤーご と に異な る 値が設定 さ れ、 すべての レ イ ヤーが同時に LCD 画面上に表示 さ れます。 オプシ ョ ン 4 を選ぶ と 、 DDR3 メ モ リ に対す る 32 ビ ッ ト メ モ リ テ ス ト が実行 さ れます。 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 10 ハー ド ウ ェ ア上での リ フ ァ レ ン ス シ ス テムの実行 オプシ ョ ン 5 はパフ ォーマ ン ス モニ タ ー IP イ ン ス タ ン ス を設定 し 、一度に 1 つの AXI イ ン タ ーフ ェ イ ス で読み出 し バ イ ト 数 と 書 き 込みバ イ ト 数を測定 し ま す。 各 AXI VDMA イ ン ス タ ン ス の TX お よ び RX ス ループ ッ ト の数値お よ びシ ス テ ム ス ループ ッ ト の数値は、 ソ フ ト ウ ェ ア機能を使用 し て ホ ス ト PC の タ ー ミ ナル デ ィ ス プ レ イ 上に表示 さ れます。 ハー ド ウ ェ ア上で のリ フ ァ レンス シ ス テムの実行 ZC702 ボー ド を次の手順で準備 し ます。 1. USB ケーブルを ホ ス ト PC か ら ZC702 ボー ド の USB JTAG ポー ト に接続 し ます。適切なデバ イ ス ド ラ イ バーが イ ン ス ト ール さ れてい る こ と を確認 し ます。 2. 2 本目の USB ケーブルを ホ ス ト PC か ら ZC702 ボー ド の USB UART ポー ト に接続 し ます。 USB-UART ド ラ イ バーが イ ン ス ト ール さ れてい る こ と を確認 し ます。 3. ZC702 の HDMI コ ネ ク タ を、 1920 x 1080p、 60Hz のビデオ信号を表示で き る ビデオ モニ タ ーに 接続 し ます。 4. ZC702 ボー ド に電源ケーブルを接続 し ます。 5. ZC702 ボー ド の電源をオンに し ます。 6. ホ ス ト PC 上で、 次の設定でハ イ パー タ ー ミ ナルな ど の タ ー ミ ナル プ ロ グ ラ ム を起動 し ます。 • ボー レー ト : 115200 • デー タ ビ ッ ト : 8 • パリ テ ィ : なし • ス ト ップ ビ ッ ト : 1 • フ ロ ー制御 : な し 構築済みビ ッ ト ス ト リ ーム と コ ンパイル済みソ フ ト ウ ェ ア ア プ リ ケーシ ョ ン を 使用 し た リ フ ァ レ ン ス シ ス テムの実行 シ ス テ ム を 実 行 す る に は、 <unzip_dir>/zc702_video_3x_pipeline/ready_for_download デ ィ レ ク ト リ にあ る フ ァ イ ルを使用 し て、 次の手順を実行 し ます。 1. コ マ ン ド シ ェ ルま たは タ ー ミ ナル ウ ィ ン ド ウ で次の コ マ ン ド を実行 し 、 デ ィ レ ク ト リ を ready_for_download に変更 し ます。 % cd <unzip dir>/zc702_video_3x_pipeline/ready_for_download 2. Tcl ス ク リ プ ト を用い る次の XMD コ マ ン ド に よ っ てデザ イ ン を実行 し ます。 こ の Tcl ス ク リ プ ト の内容は、 ビ ッ ト ス ト リ ームのボー ド へのダ ウ ン ロ ー ド 、プ ロ セ ッ サへの接続、 FSBL のダ ウ ン ロ ー ド と 実行、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンのダ ウ ン ロ ー ド と 実行です。 % xmd –tcl xmd_top.tcl ハー ド ウ ェ ア と ソ フ ト ウ ェ アの実行 結果 デザ イ ン を実行す る と 、 ZC702 ボー ド に接続 さ れた LCD モニ タ ー上にカ ラ ー バー パ タ ーンが表示 さ れ、 ホ ス ト PC の タ ー ミ ナル プ ロ グ ラ ムには、 図 4 に示す出力が表示 さ れます。 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 11 性能 X-Ref Target - Figure 4 X792_04_091312 図 4 : ハイパー タ ー ミ ナルの出力 タ ー ミ ナル ス ク リ ーン上のアプ リ ケーシ ョ ン メ ニ ュ ーには次の 6 つのオプシ ョ ンがあ り ます。 性能 • 0 : LCD デ ィ ス プ レ イ 上にカ ラ ーバー レ イ ヤーを表示 し ます。 • 1 : ゾーンプ レー ト レ イ ヤーを表示 し ます。 • 2 : 垂直方向ス イ ープ レ イ ヤーを表示 し ます。 • 3 : 3 つの レ イ ヤーをすべてアルフ ァ ブ レ ンデ ィ ン グ し て同時に表示 し ます。 • 4 : DDR3 メ モ リ 内で 32 ビ ッ ト メ モ リ テ ス ト を実行 し ます。 • 5 : タ ー ミ ナルに リ アル タ イ ムのシ ス テ ム性能パ ラ メ ー タ ーを表示 し ます (転送 1 秒)。 DDR3 PHY は、 メ モ リ ク ロ ッ ク 周波数 533MHz の 32 ビ ッ ト に設定 さ れ て い ま す ( デー タ レ ー ト 1066MHz)。 DDR3 の理論上の スループ ッ ト は 4.2GB/s で、 こ れが こ のデザ イ ン で使用可能な総帯域幅 です。 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンのオプシ ョ ン 5 を選択す る と 、 次の よ う な出力が表示 さ れます。 AXI_VDMA0 Tx = 497.670340 MB/s AXI_VDMA0 Rx = 497.670372 MB/s AXI_VDMA1 Tx = 497.670888 MB/s AXI_VDMA1 Rx = 497.670836 MB/s AXI_VDMA2 Tx = 497.670400 MB/s AXI_VDMA2 Rx = 497.670384 MB/s System Total Bandwidth = 2986.023220 MB/s DDR3 Theoretical Bandwidth = 4266.666666 MB/s Percent of DDR3 Theoretical Bandwidth = 69.984919% 注記 : 表示 さ れ る 値は、 上記 と 若干異な る 場合があ り ます。 総帯域幅は約 2986MB/s で、 メ イ ン メ モ リ の総帯域幅 4267MB/s の約 70% にあ た り ます。 ハー ド ウ ェ アの 構築 こ のセ ク シ ョ ンでは、 ハー ド ウ ェ ア デザ イ ンの再構築について説明 し ます。 プ ロ ジ ェ ク ト を再構築す る 前に、 AXI OSD お よ び AXI VTC コ アの ラ イ セ ン ス が イ ン ス ト ール さ れてい る こ と を確認す る 必要が あ り ます。 AXI VTC ま たは AXI OSD コ アの評価用 ラ イ セ ン ス を入手する には、 次の ウ ェ ブ ページの evaluate を ク リ ッ ク し て く だ さ い。 http://japan.xilinx.com/products/intellectual-property/EF-DI-VID-TIMING.htm http://japan.xilinx.com/products/intellectual-property/EF-DI-OSD.htm XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 12 SDK ツールによ る ソ フ ト ウ ェ アの コ ンパイル と デザイ ンの実行 注記 : 生成済みビ ッ ト ス ト リ ームは次の場所にあ り ます。 <unzip dir>/zc702_video_3x_pipeline/PA/impl_1/system.bit 1. PlanAhead ツールで zc702_video_3x_pipeline/PA/pa_project.ppr フ ァ イ ルを開き ます。 2. [Design Runs] ビ ュ ーの [impl_1] を右 ク リ ッ ク し 、 [Generate Bitstream] を ク リ ッ ク し ます。 3. [No Implementation Results Available] ダ イ ア ロ グに対 し て [Yes] を ク リ ッ ク し ます。 2 つの制約が見つか ら ない こ と を知 ら せ る [Launch Run Critical Messages] ダ イ ア ロ グが表示 さ れ ます。 こ れは、 既知の問題です。 [OK] を ク リ ッ ク し ます。 4. [File] → [Export] → [Export Hardware for SDK] を ク リ ッ ク し て、 [Hardware for SDK] オプシ ョ ン に よ る エ ク ス ポー ト を実行 し ます。 5. エ ク ス ポー ト 先は <Local to Project> です。 [Include Bitstrem] と [Export Hardware] がオン であ る こ と を確認 し ます。 [OK] を ク リ ッ ク し ます。 SDK ツールに よ る ソ フ ト ウ ェ アの コ ンパイル と デザ イ ンの実行 SDK ツールで ソ フ ト ウ ェ ア を コ ンパイルする 1. SDK ツールを起動 し ます。 Linux で xsdk と 入力 し ます。 2. Workspace Launcher で、 次の ワ ー ク スペース を選択 し ます。 <unzip dir>/zc702_video_3x_pipeline/SW/SDK_Workspace 3. [OK] を ク リ ッ ク し ます。 4. リ ポジ ト リ を設定す る ために、 [Xilinx Tools] → [Repositories] を ク リ ッ ク し ます。 a. ロ ーカル リ ポジ ト リ の場合、 [New] を ク リ ッ ク し ます。 b. 次のデ ィ レ ク ト リ に移動 し ます。 <unzip dir>/zc702_video_3x_pipeline/SW/repository c. [OK] を ク リ ッ ク し ます。 5. ボー ド サポー ト パ ッ ケージ (BSP)、 ハー ド ウ ェ ア プ ラ ッ ト フ ォーム、 ソ フ ト ウ ェ ア アプ リ ケー シ ョ ン を イ ン ポー ト す る 必要があ り ます。 [File] → [Import] → [General] → [Existing Projects into Workspace] を ク リ ッ ク し ます。 6. [Next] を ク リ ッ ク し て、 <unzip dir>/zc702_video_3x_pipeline/SW デ ィ レ ク ト リ を参照 し ます。 [OK] を ク リ ッ ク し ます。 7. axi_vdma_display、 hw_platform_0、 standalone_bsp_0、 zynq_fsbl_0 を含むすべてのチ ェ ッ ク ボ ッ ク ス がオンであ る こ と を確認 し ます。 [Finish] を ク リ ッ ク し ます。 注記 : BSP お よ び ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンが コ ンパ イ ル さ れます。 こ れには、 2 ~ 5 分を要 し ま す。 axi_vdma_display ソ フ ト ウ ェ ア ア プ リ ケーシ ョ ン に ビ ル ド エ ラ ーが あ る 場合、 [Project Explorer] ビ ュ ー内の axi_vdma_display を右 ク リ ッ ク し て、 [Change Referenced BSP] の 選択後、 [standalone_bsp_0] を選択 し ます。 8. こ れで、 SDK ツールに よ る 既存 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンの変更や新規 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンの作成が可能にな り ます。 SDK ツールでハー ド ウ ェ アお よび ソ フ ト ウ ェ ア を実行する 1. [Xilinx Tools] → [Program FPGA] を ク リ ッ ク し ます。 2. [Program] を ク リ ッ ク し ます。 3. [Project Explorer] ビ ュ ーで、[axi_vdma_display] → [Run As] → [Launch on Hardware] を右 ク リ ッ ク し ます。 デフ ォ ル ト 設定の SDK ツールは Tcl ス ク リ プ ト を使用 し て FSBL を実行 し ます。 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 13 リ フ ァ レ ン ス デザイ ン リ フ ァ レ ン ス デザ イン リ フ ァ レ ン ス デザ イ ンは、 次の リ ン ク 先か ら ダ ウ ン ロ ー ド で き ます。 https://secure.xilinx.com/webreg/clickthrough.do?cid=192742 表 4 に、 リ フ ァ レ ン ス デザ イ ンの詳細を示 し ます。 表 4 : リ フ ァ レ ン ス デザイ ンの詳細 パラ メ ー タ ー 説明 全般 開発者 James Lucero、 Ygal Arbel タ ーゲ ッ ト デバ イ ス ( ス テ ッ ピ ン グ レベル、 ES、 プ Zynq-7000 AP SoC (ES) ロ ダ ク シ ョ ン、 ス ピー ド グ レー ド ) ソ ース コ ー ド の提供 あり ソ ース コ ー ド の形式 VHDL/Verilog (一部は暗号化済み) 既存 の ザ イ リ ン ク ス ア プ リ ケ ー シ ョ ン ノ ー ト / リ あ り フ ァ レ ン ス デザ イ ン、 CORE Generator ツール、 ま た は EDK 向け に提供 さ れた サー ド パーテ ィ の リ フ ァ レ ン ス デザ イ ン、CORE Generator ツールに よ っ て生 成 さ れた ビ デオ コ ア か ら デザ イ ン への コ ー ド /IP の 使用 シ ミ ュ レーシ ョ ン 論理シ ミ ュ レーシ ョ ンの実施 N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず) タ イ ミ ン グ シ ミ ュ レーシ ョ ンの実施 N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず) 論理シ ミ ュ レ ーシ ョ ンお よ び タ イ ミ ン グ シ ミ ュ レー N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず) シ ョ ンでのテ ス ト ベンチの利用 テ ス ト ベンチの形式 N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず) 使用 し た シ ミ ュ レー タ /バージ ョ ン N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず) SPICE/IBIS シ ミ ュ レーシ ョ ンの実施 N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず) イ ン プ リ メ ン テーシ ョ ン 使用 し た合成ツール/バージ ョ ン XST 14.2 使用 し た イ ンプ リ メ ン テーシ ョ ン ツール/バージ ョ ン ISE Design Suite 14.2 : System Edition ス タ テ ィ ッ ク タ イ ミ ン グ解析の実施 あ り (PAR/TRCE の タ イ ミ ン グにパス ) ハー ド ウ ェ ア検証 ハー ド ウ ェ ア検証の実施 実施済み 使用 し たハー ド ウ ェ ア プ ラ ッ ト フ ォーム ZC702 ボー ド 表 5 に、 こ の リ フ ァ レ ン ス デザ イ ンのデバ イ ス使用率を示 し ます。 表 5 : デバイ ス使用率 項目 値 デバ イ ス XC7Z020 デバ イ ス ス ピー ド -1 グ レー ド パ ッ ケージ CLG484 レジス タ 32,739 配置済みス ラ イ ス 10,452 ス ラ イ ス の LUT 数 22,686 I/O 22 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 14 参考資料 表 5 : デバイ ス使用率 (続き ) 項目 参考資料 値 RAMB36E1 24 RAMB18E1 12 1. 2. AMBA AXI4-Stream プ ロ ト コ ル仕様 UG683 : 『EDK コ ンセプ ト 、 ツール、 テ ク ニ ッ ク : 効率的なエンベデ ッ ド シ ス テ ム構築をサポー ト する ハンデ ィ ガ イ ド 』 3. 4. 5. 6. 7. 8. 9. 10. 改訂履歴 Notice of Disclaimer DS768 : UG111 : UG761 : DS799 : DS837 : DS857 : PG037 : UG585 : 『LogiCORE IP AXI イ ン タ ー コ ネ ク ト 』 『エンベデ ッ ド シ ス テ ム ツール リ フ ァ レ ン ス マニ ュ アル』 『AXI リ フ ァ レ ン ス ガ イ ド 』 『LogiCORE IP AXI Video Direct Memory Access』 『LogiCORE IP Video On-Screen Display』 『LogiCORE IP Video Timing Controller』 『LogiCORE IP AXI パフ ォーマ ン ス モニ タ ー』 『Zynq-7000 All Programmable SoC テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 2012 年 10 月 12 日 1.0 2012 年 10 月 16 日 1.0.1 内容 初版 条件付 き テ キ ス ト バナーを削除。 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 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. XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 15 Notice of Disclaimer 本資料は英語版 (v1.0.1) を翻訳 し た も ので、 内容に相違が生 じ る場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。 こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected] ま でお知 ら せ く だ さ い。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受け付けてお り ません。 あ ら か じ め ご了承 く だ さ い。 XAPP792 (v1.0.1) 2012 年 10 月 16 日 japan.xilinx.com 16