all programmable - zynq-7000 ap soc と freertos …...programmable logic to memory interconnect mmu...

12
XAPP897 (v1.0) 2013 2 22 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. ARM, AMBA, and Cortex 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. 概要 このアプリケーション ノ ー ト では、 ザ イ リ ン ク ス の独自 IP Zynq™-7000 All Programmable (AP) SoC で使用し、 デジタル ビジュアル インターフェイス (DVI) 入力およびビデオ テスト パターン ジェ ネレーター (TPG) 入力に対応する ビデオ システムを作成する方法について説明します。 リファレンス デザインでは、 60Hz の処理フレーム レートと 1920 x 1080 の解像度でビデオ IP をコンフィギュレー ションし、 システム レベルの帯域幅使用率 と ビデオ レイテンシを測定基準として表示します。 このア プリケーションを用いることで、Zynq-7000 AP SoC DVI からの 1 つの入力 と TPG からの 1 つの入 力を持つ複雑で高性能なビデオ システムが作成できます。 デザインでは、 2 つの AXI Video Direct Memory Access (VDMA) コアを使用して、 4 つのス ト リ ーム (2 つの送信ビデオ ストリームと 2 つの受信ビデオ ス ト リ ーム) を、 それぞれ 1920 x 1080 のフレーム サイズ、 60f/s1 ピクセルあたり 24 データ ビット (RGB) で同時に送信し ます。 1 つの VDMA は、 ビ デオ タイミング コントローラー (VTC) ブロックを備える TPG から駆動されます。も う 1 つの VDMA は、 DVI-In からの入力ビデオによって駆動されます。 両ス ト リームから メモリ マップ (S2MM) への VDMA コアのデータ パスは DDR にバッファーされ、AXI VDMA MM2S チャネルによって読み戻 されて、 共通の On-Screen Display (OSD) コアに送信されます。 このコアでは、複数のビデオ ストリー ムが単一の出力ビデオ ス ト リームに多重化またはオーバーレイ処理されます。 OSD コ アの出力は、 色 空間コンバーターを介して、オンボード HDMI™ (High-Definition Multimedia Interface) ビデオ ディス プレイ インターフェイスを駆動します。 Zynq-7000 AP SoC に推奨されるオペレーティング システムは、 FreeRTOS および Linux です。 このア プリケーション ノ ー ト では、 FreeRTOS のアプリケーションを示します。 リファレンス デザインは、 ZC702 評価ボードをターゲッ トにしています。 FreeRTOS は、数個のフ ァ イルのみで構成された無償のオペレーテ ィ ング システムです。FreeRTOS は、 移植、 使用、 および管理が簡単です。 FreeRTOS では、マルチスレッドまたはマルチタスク、 ミ ューテッ クス、セマフォ、およびソフトウェア タイマーがサポート されています。 リファレンス デザインでは、 FreeRTOS のスレッドの 1 つでメイン アプ リ ケーシ ョ ンが実行される間に別のスレ ッ ドが作成され、オ プション 2 が選択された場合に、 OSD の透明度を徐々に変更してブレンディング効果を示します。 FreeRTOS は、ス レ ッ ド の tick メソッドをホスト プ ロ グ ラ ム か ら 短い間隔で定期的に呼び出す こ と に よ り 、 マルチ ス レ ッ ド を 実装 し ま す。 ス レ ッ ド の tick メソッド は、優先度またはラウンドロビン スケ ジュールによってタスクを切り替えます。この切り替えは、ザイリンクスのソフトウェア開発キット (SDK) のボード サポート パッケージ (BSP) オプシ ョ ンで設定でき ます。 詳細は、 http://www.freertos.org/ を参照してください。 含まれるシステム リファレンス デザインは、 Vivado™ System Edition 2012.4 に含まれる Xilinx Platform Studio (XPS) を使用して作成されています。 XPS によって、 IP ブロックをインスタンシエート、 コンフィギュレー シ ョ ン、 および接続して複雑なエンベデッ ド システムを構築する作業が簡略化されます。 デザインに は、ザイリンクスの SDK を使用して作成されたソフ ト ウェアも含まれています。 このソフ ト ウェアは、 ARM® プロセッサ上で実行され、 制御、 ステータス、 モニターの各機能をインプリ メン ト します。 こ のアプ リ ケーシ ョ ン ノ ー ト では、 XPS および SDK の完全なプロジェク ト ファイルが提供されており、 これらをこのデザインの検査および再構築に活用したり、 新規デザインのテンプレート と して使用する こ と が可能です。 アプリケーション ノート : Zynq-7000 All Programmable SoC XAPP897 (v1.0) 2013 2 22 Zynq-7000 AP SoC FreeRTOS を使用した ビデオ ストリーミング システムの設計 著者 : Dinesh Kumar

Upload: others

Post on 04-Mar-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

XAPP897 (v1.0) 2013 年 2 月 22 日 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. ARM, AMBA, and Cortex 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.

概要 このアプ リ ケーシ ョ ン ノー ト では、 ザイ リ ン ク スの独自 IP を Zynq™-7000 All Programmable (AP)SoC で使用し、 デジタル ビジュアル インターフェイス (DVI) 入力およびビデオ テス ト パターン ジェ

ネレーター (TPG) 入力に対応するビデオ システムを作成する方法について説明します。 リ ファレンス

デザインでは、 60Hz の処理フレーム レート と 1920 x 1080 の解像度でビデオ IP をコンフ ィギュレー

シ ョ ンし、 システム レベルの帯域幅使用率とビデオ レイテンシを測定基準と して表示します。 このア

プリ ケーシ ョ ンを用いるこ とで、Zynq-7000 AP SoC で DVI からの 1 つの入力と TPG からの 1 つの入

力を持つ複雑で高性能なビデオ システムが作成できます。

デザインでは、 2 つの AXI Video Direct Memory Access (VDMA) コアを使用して、 4 つのス ト リーム

(2 つの送信ビデオ ス ト リームと 2 つの受信ビデオ ス ト リーム) を、 それぞれ 1920 x 1080 のフレーム

サイズ、 60f/s、 1 ピクセルあたり 24 データ ビッ ト (RGB) で同時に送信します。 1 つの VDMA は、 ビ

デオ タイ ミ ング コン ト ローラー (VTC) ブロ ッ クを備える TPG から駆動されます。も う 1 つの VDMAは、 DVI-In からの入力ビデオによって駆動されます。 両ス ト リームから メモ リ マップ (S2MM) への

VDMA コアのデータ パスは DDR にバッファーされ、AXI VDMA の MM2S チャネルによって読み戻

されて、共通の On-Screen Display (OSD) コアに送信されます。 このコアでは、複数のビデオ ス ト リー

ムが単一の出力ビデオ ス ト リームに多重化またはオーバーレイ処理されます。 OSD コアの出力は、 色

空間コンバーターを介して、オンボード HDMI™ (High-Definition Multimedia Interface) ビデオ ディ ス

プレイ インターフェイスを駆動します。

Zynq-7000 AP SoC に推奨されるオペレーティング システムは、FreeRTOS および Linux です。 このア

プ リ ケーシ ョ ン ノー ト では、 FreeRTOS のアプ リ ケーシ ョ ンを示します。 リ フ ァレンス デザインは、

ZC702 評価ボードをターゲッ トにしています。

FreeRTOS は、数個のファイルのみで構成された無償のオペレーティング システムです。FreeRTOS は、

移植、使用、および管理が簡単です。FreeRTOS では、マルチスレッ ドまたはマルチタスク、 ミ ューテッ

クス、 セマフォ、 およびソフ ト ウェア タイマーがサポート されています。 リ ファレンス デザインでは、

FreeRTOS のスレッ ドの 1 つでメ イン アプリ ケーシ ョ ンが実行される間に別のスレッ ドが作成され、オ

プシ ョ ン 2 が選択された場合に、 OSD の透明度を徐々に変更してブレンディ ング効果を示します。

FreeRTOS は、スレッ ドの tick メ ソ ッ ドをホス ト プログラムから短い間隔で定期的に呼び出すこ とによ

り、 マルチ スレ ッ ドを実装します。 スレ ッ ドの tick メ ソ ッ ド は、 優先度またはラウン ド ロビン スケ

ジュールによってタス クを切り替えます。 この切り替えは、 ザイ リ ンク スのソフ ト ウェア開発キッ ト

(SDK) のボード サポー ト パッ ケージ (BSP) オプシ ョ ンで設定でき ます。 詳細は、

http://www.freertos.org/ を参照してください。

含まれるシステム

リ フ ァレンス デザインは、 Vivado™ System Edition 2012.4 に含まれる Xilinx Platform Studio (XPS)を使用して作成されています。 XPS によって、 IP ブロ ッ クをインスタンシエート、 コンフ ィギュレー

シ ョ ン、 および接続して複雑なエンベデッ ド システムを構築する作業が簡略化されます。 デザインに

は、ザイ リ ンクスの SDK を使用して作成されたソフ ト ウェアも含まれています。 このソフ ト ウェアは、

ARM® プロセッサ上で実行され、 制御、 ステータス、 モニターの各機能をインプ リ メ ン ト します。 こ

のアプリ ケーシ ョ ン ノートでは、 XPS および SDK の完全なプロジェク ト ファ イルが提供されており、

これらをこのデザインの検査および再構築に活用したり、 新規デザインのテンプレート と して使用する

こ とが可能です。

アプリケーシ ョ ン ノート : Zynq-7000 All Programmable SoC

XAPP897 (v1.0) 2013 年 2 月 22 日

Zynq-7000 AP SoC と FreeRTOS を使用したビデオ スト リーミング システムの設計著者 : Dinesh Kumar

Page 2: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

はじめに

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 2

注記 : このアプリ ケーシ ョ ン ノートは、ユーザーが XPS、Vivado Design Suite、および Zynq-7000 アー

キテクチャに関する一般的知識を持っているこ とを前提にしています。

はじめに ザイ リ ンクスの独自 IP を使用して、 ビデオ システムのさまざまな機能を効率的に処理できます。 AXIInterconnect、 VDMA、および OSD の各 IP ブロ ッ クを活用して、 ビデオ システムの中核を構築できま

す。 このシステムでは、 複数のビデオ ス ト リーム と共通の DDR3 SDRAM を共有するフレーム バッ

ファーを介して、目的のフレーム レートおよび解像度を処理します。AXI は、AMBA® (ARM AdvancedMicrocontroller Bus Architecture) 仕様に基づいて標準化された IP インターフェイス プロ ト コルです。

リ ファレンス デザインでは、 AMBA AXI4 の資料 [参照 1] に記載されている AXI4、 AXI4-Lite、 およ

び AXI4-Stream の 各 AXI インターフェイスを使用しています。 これらのインターフェイスは、デザイ

ンを構築するための共通した IP インターフェイス プロ ト コルのフレームワークを提供します。

AXI Interconnect と DDR3 は、 複数のデバイスが共通のメモ リ コン ト ローラーを共有するアプリ ケー

シ ョ ンで使用される、高帯域幅のマルチポート メモ リ コン ト ローラー (MPMC) をインプリ メン ト しま

す。 これは、 複数のソースからのデータが共通のメモ リ デバイス (通常は、 処理システム上の DDR3SDRAM) を介して移動する、 ビデオ、 エンベデッ ド システム、 通信のアプリ ケーシ ョ ンの多くで求め

られる要件です。 Zynq-7000 AP SoC は、 図 1 に示すよ うに、 処理システム (PS) ブロ ッ ク とプログラ

マブル ロジッ ク (PL) ブロ ッ クを内蔵しています。

X-Ref Target - Figure 1

図 1 : Zynq-7000 AP SoC のブロック図

2x USB

2x GigE

2x SD

Zynq-7000 EPP

I/OPeripherals

IRQ

IRQ

EMIO

SelectIOResources

DMA 8Channel

CoreSight Components

Programmable Logic

DAP

DevC

SWDT

DMASync

Notes:1) Arrow direction shows control (master to slave)2) Data flows in both directions: AXI 32bit/64bit, AXI 64bit, AXI 32bit, AHB 32bit, APB 32bit, Custom

ACP

256K SRAM

Application Processor Unit

TTC

SystemLevel

ControlRegs

GigE

CAN

SDSDIO

UART

GPIO

UARTCAN

I2C

SRAM/NOR

ONFI 1.0NAND

Processing System

MemoryInterfaces

Q-SPICTRL

USB

GigE

I2C

USB

SDSDIO

SPISPI

Programmable Logic to MemoryInterconnect

MMU

FPU and NEON Engine

Snoop Controller, AWDT, TimerGIC

32 KBI-Cache

ARM Cortex-A9CPU

ARM Cortex-A9CPU MMU

FPU and NEON Engine

ConfigAES/SHA

XADC12 bit ADC

MemoryInterfaces

512 KB L2 Cache & Controller

OCM Interconnect

DDR2/3,LPDDR2

Controller

x897_01_011713

32 KBD-Cache

32 KBI-Cache

32 KBD-Cache

MIO

ClockGeneration

Reset

CentralInterconnect

General-PurposePorts

High-Performance Ports

Page 3: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

はじめに

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 3

PS はハード ブロ ッ クであ り、PL はコンフ ィギュレーシ ョ ン可能です。PS は、D キャ ッシュ と I キャ ッ

シュを備える 2 つの ARM Cortex™-A9 コアで構成されています。PS と PL 間には DDR にアクセスす

るための 4 つの高性能ポートが存在します。 PL のペリ フェラルを制御する 2 つの汎用インターコネク

トが存在します。 デザインでは、 2 つの HP ポート (HP0 と HP2) を使用し、 VDMA を介して DDR メモ リにアクセスします。GP0 ポートは、PL 上のさまざまな IP をコンフ ィギュレーシ ョ ンするために使

用されます。

図 2 に、 リ ファレンス デザインのブロッ ク図を示します。

• AXI2XSVI : AXI4-Stream から XSVI へのブリ ッジ

• RGB2YCC : 4:2:2 フォーマッ トでの RGB-YCbCr コンバーター

• VTC : Video Timing Controller コア

• TPG : Test Pattern Generator コア

• OSD : On-screen Display コア

表 1 に、 リ ファレンス デザインのアドレス マップを示します。

X-Ref Target - Figure 2

図 2 : リファレンス デザインのブロック図

表 1 : リファレンス デザインのアドレス マップ

ペリフェラル バージ ョ ン インスタンス ベース アドレス 上位アドレス

processing_system7 4.02 processing_system7 N/A N/A

processing_system7-DDR 4.02 processing_system7 0x00000000 0x3FFFFFFF

axi_vtc 5.01 axi_vtc_0 0x7de11000 0x7de11fff

axi_vtc 5.01 axi_vtc_1 0x7de10000 0x7de10fff

axi_tpg 4.00 v_tpg_0 0x74220000 0x7422ffff

axi_osd 5.01 v_osd_0 0x74200000 0x7420ffff

axi_vdma 5.04 axi_vdma_0 0x7de13000 0x7de13fff

axi_vdma 5.04 axi_vdma_1 0x7de12000 0x7de12fff

axi_timer 1.03 axi_time_0 0x42800000 0x4280ffff

axi_iic 1.02 axi_iic_0 0x41600000 0x4160ffff

Page 4: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

ハードウェア要件

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 4

AXI VDMA は、フレーム バッファー機能と 2 次元 DMA 機能を備える高性能なビデオに 適化された

DMA エンジンをインプリ メン ト します。 AXI VDMA は、 ビデオ データ ス ト リームを メモ リ との間で

送受信し、 動的ソフ ト ウェア制御モードまたは静的コンフ ィギュレーシ ョ ン モードで動作します。

ク ロ ッ ク ジェネレーターとプロセッサ システムの リセッ トブロ ッ クは、 システム全体にク ロ ッ クおよ

びリセッ ト を供給します。 I/O ペリ フェラルおよびプロセッサ サポート IP を含むシステムの高度な制

御は、Zynq-7000 AP SoC 上のハード ブロ ッ ク と して利用可能なエンベデッ ド ARM プロセッサが担い

ます。

ハードウェア要件 図 3 に、 リ ファレンス デザインのハード ウェア接続を示します。 リ ファレンス デザインのハード ウェ

ア要件は次のとおりです。

• ザイ リ ンクスの ZC702 Rev 1.0 ボード

• 1 つの USB (タイプ A-タイプ B)

• JTAG プラ ッ ト フォーム USB ケーブル

• 2 つの HDMI-DVI コンバーター ケーブル

• 60f/s で 1920 x 1080 をサポートする表示モニター

• DVI-In に送信するための FMC DVI カード (AES-FMC-DVI-G)X-Ref Target - Figure 3

図 3 : ハードウェア接続

Page 5: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

ソフ トウェア要件

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 5

JTAG プラ ッ ト フォーム USB ケーブル を使用する場合、ボードの SW10 のスイ ッチは図 4 に示すよ う

に設定して ください。 オンボード USB JTAG ケーブルを使用する場合の SW10 の設定は、 図と逆にし

ます。

ソフ トウェア要件 リ ファレンス デザインのソフ ト ウェア要件は次のとおりです。

• Vivado Design Suite 14.4

• SDK14.4

リファレンス デザイン仕様

リ ファレンス デザインには、 Zynq-7000 AP SoC、 MDM、 LMB ブロ ッ ク RAM、

AXI_INTERCONNECT、 ク ロ ッ ク ジェネレーター、 PROC_SYS_RESET、 AXI_UARTLITE、 AXIIIC、 AXI_INTC、 AXI_VTC、 AXI_TPG、 AXI_VDMA AXI_OSD、 および HDMI_Interface の IP コアが含まれています。PS のハード メモ リ コン ト ローラーを介してアクセス可能なオンボード DDR は、

フレームの格納に使用されます。

X-Ref Target - Figure 4

図 4 : ボードのスイッチ設定

Page 6: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

ハードウェア システム仕様

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 6

ハードウェア システム仕様

このセクシ ョ ンでは、 メ イン IP ブロ ッ クの設定方法など、 リ ファレンス デザインの高度な機能につい

て説明します。 IP の便利な機能、 性能とエ リ アの ト レードオフ、およびコンフ ィギュレーシ ョ ンの情報

についても解説します。 この リ ファレンス デザインはビデオ システムですが、 システム性能の 適化

に用いられている原則は高性能な AXI システムに幅広く適用できます。 AXI システムの 適化および

設計上のト レードオフに関する詳細は、 『AXI リ ファレンス ガイ ド』 [参照 2] を参照してください。

AXI Interconnect

このデザインには 3 つの AXI Interconnect が含まれ、 それぞれは、 スループッ ト 、 エ リ ア、およびタイ

ミ ングの考慮事項間のバラ ンスを と る こ と を目的と しています ( 『LogiCORE IP AXI Interconnect(v1.06a) データシート 』 [参照 3] を参照)。

• AXI_MM0 インスタンスは、VDMA0 と Zynq-7000 AP SoC の HP0 との間のブリ ッジと して使用

されます。 Zynq-7000 AP SoC の HP0 は、 DDR に接続されます。 このブリ ッジは、 TPG からの入

力を受け取る VDMA0 からデータを受け取って DDR に格納し、次に同じデータを受け取って、そ

れを VDMA0 MM2S チャネルを介して OSD に送り ます。インターコネク トはデータ幅が 64 ビッ

トであ り、 150MHz で動作します。

• AXI_MM1 インスタンスは、VDMA1 と Zynq-7000 AP SoC の HP1 との間のブリ ッジと して使用

されます。 Zynq-7000 AP SoC の HP1 は、 DDR に接続されます。 このブリ ッジは、 DVI からの入

力を受け取る VDMA1 からデータを受け取って DDR に格納し、次に同じデータを受け取って、そ

れを VDMA1 MM2S チャネルを介して OSD に送り ます。インターコネク トはデータ幅が 64 ビッ

トであ り、 150MHz で動作します。

• AXI4_Lite は、通常はエリ アに対して 適化され、プロセッサがスレーブ レジスタにアクセスする

ために使用されます。 AXI4-Lite は、 Zynq-7000 AP SoC デバイスの GP0 に接続され、 レジスタ

マップを介したさまざまな IP の制御に使用されます。

AXI VDMA インスタンス

AXI VDMA コアは、AXI4 ド メ インから AXI4-Stream ド メ イン (およびその逆方向) へのビデオ読み出

し /書き込み転送を提供します。 AXI VDMA コアによって、 システム メモ リ と AXI4-Stream ベースの

対象ビデオ IP 間の高速データ移動が可能にな り ます。 AXI VDMA コアは、 完全に同期したフレーム

DMA 操作と 2D DMA 転送のためのビデオ特有の機能 (Gen-Lock および Frame Sync) を備えていま

す。同期動作に加えて、中央プロセッサによる制御を容易にするため、フレーム格納番号とスキャ ッ ター

ギャザーモードまたはレジスタ直接操作モードが利用できます。

AXI VDMA コアの初期化レジスタ、 ステータス レジスタ、 および管理レジスタには、 AXI4-Lite スレーブ インターフェイスを介してアクセスします。

リ ファレンス デザインでは AXI VDMA の 2 つのインスタンスを用い、 AXI4 MM2S、 AXI4 S2MM、

AXI4-Stream MM2S、 および AXI4-Stream S2MM の各インターフェイスを使用しています。

AXI VDMA インスタンスの 64 ビッ ト幅の MM2S インターフェイスおよび S2MM インターフェイス

は、 AXI Interconnect の AXI_MM0 インスタンスおよび AXI_MM1 インスタンスに接続されます。

AXI VDMA インスタンスのスループッ ト を 大にするには、 大バース ト長を 256 に設定します。 さ

らに、 マスター インターフェイスの読み出しおよび書き込みの発行数を 4 に設定し、 読み出し /書き込

み FIFO の深さを 512 にしてスループッ ト を 大にします。 これらは保守的な設定です。 その他のアプ

リ ケーシ ョ ンや使用例については、 『AXI リ ファレンス ガイ ド』 [参照 2] のガイ ド ラ インを参照して く

ださい。

Page 7: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

ハードウェア システム仕様

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 7

AXI Video Timing Controller

AXI Video Timing Controller (VTC) コアは、汎用のビデオ タイ ミ ング ジェネレーター兼ディテクター

です。 このコアの入力側は、 水平同期パルスと垂直同期パルス、 極性、 ブランキング、 タイ ミ ング、 お

よびアクティブ ビデオ ピクセルを自動検出します。 出力側は、 標準的なビデオ システムで使用される

水平ブランキングと垂直ブランキングおよび同期の各パルスを生成し、 プログラム可能なパルス極性を

サポート します。

AXI VTC コアには、 プロセッサからスレーブ制御レジスタにアクセスするための AXI4-Lite インター

フェイスが含まれます。AXI VTC コアの詳細は、『LogiCORE IP Video Timing Controller 製品ガイ ド 』[参照 4] を参照して ください。 このデザインでは、 2 つの AXI VTC インスタンスを検出機能なしで使

用しています。 1 つ目のインスタンスはビデオ パイプラインのビデオ入力部で使用され、 2 つ目はその

読み出し部である AXI OSD で使用されます。

AXI VTC v5.01 コアはライセンスを必要と し、CORE Generator™ ツールの v14.4 以上を使用して生成

できます。

AXI Test Pattern Generator

AXI Test Pattern Generator (TPG) コアには、 プロセッサからスレーブ制御レジスタにアクセスするた

めの AXI4-Lite インターフェイスが含まれます。 リ ファレンス デザインでは、 DDR3 メモ リへのビデ

オ ト ラフ ィ ッ クは、 TPG コアによって生成されます。 TPG ブロ ッ クは、 ビデオ業界で検証およびテス

トに広く使用されている複数のビデオ テス ト パターンを生成できます。 また、 デザインではシステム

性能を示すために生成される ト ラフ ィ ッ ク量のみが重要なため、 TPG コアはほかのビデオ IP の代用と

して使用されます。 制御ソフ ト ウェアは、 カラー バー、 水平および垂直バース ト パターン、 全画面カ

ラー、 ゾーン プレート など 11 種類のビデオ パターンを生成します。 どのテス ト パターンを選択して

も、 特定の解像度とフレーム レートに対して生成されるデータ量は同じです。

ソフ ト ウェア制御によって複数の動作モードが使用可能にな り ます。 このアプ リ ケーシ ョ ン ノー ト で

は、AXI TPG コアは常に、ユーザー入力によって 11 種類のテス ト パターンのうちのいずれかを生成し

ます。 これらのパターンはテス ト用であ り、 放送業界の規格向けにキャ リブレート されてはいません。

AXI On-Screen Display

AXI On-Screen Display (OSD) コアは、アルファ ブレンディング用の柔軟なビデオ処理ブロ ッ クを提供

します。 このコアは 大 8 つの独立したレイヤーで構成され、 単純なテキス ト とグラフ ィ ッ クスを生成

し、 大 4K x 4K の画像をさまざまなフォーマッ ト とビッ ト幅で処理できます。 詳細は、 『LogiCOREIP Video On-Screen Display 製品ガイ ド』 [参照 5] を参照してください。 このアプリ ケーシ ョ ン ノート

では、 OSD コアは 2 つのビデオ レイヤーのみを表示するよ うに設定されますが、 複数のビデオ ス ト

リームを別々の表示レイヤーと して設定するこ と もできます。

AXI OSD コアには、 プロセッサからスレーブ制御レジスタにアクセスするための AXI4-Lite インター

フェイスが含まれます。 AXI OSD コアの詳細は、 『LogiCORE IP Video On-Screen Display 製品ガイ

ド』 [参照 5] を参照してください。 AXI OSD v5.01 コアは SignOnce IP サイ ト ライセンスを必要と し、

CORE Generator ツールを使用して生成できます。 このコアのシ ミ ュレーシ ョ ン評価ラ イセンスは、

COREGenerator ツールに付属しています。 FPGA のビッ ト ス ト リーム生成を含むコアの完全な機能を

使用するには、 ザイ リ ンクスからフル ライセンスを入手する必要があ り ます。

Page 8: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

ソフ トウェア アプリケーシ ョ ン

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 8

ソフ トウェア アプリケーシ ョ ン

アプリ ケーシ ョ ンは、FreeRTOS に移植され、 さまざまな設定に対応する子スレッ ド と して動作します。

ソフ ト ウェア アプリ ケーシ ョ ンは、ビデオ パイプラインを開始し、DVI 入力または TPG 入力のいずれ

かを選択できるよ うにします。 デザインには OSD が含まれるため、 ユーザーは、 このアプリ ケーシ ョ

ン ノート を応用してビデオ パイプラインを多重化し、 LCD 画面上にパターンをレイヤー別に表示した

り、 全レイヤーをアルファ ブレンディングしたものを表示したりできます。

システムを制御するためのアプリ ケーシ ョ ン レベルのソフ ト ウェアは、 各 IP に対して提供されたド ラ

イバーを使用して C 言語で記述されています。 各 IP のプログラマ モデルは、 ド ライバーが使用する特

定の API を記述します。 あるいは、 アプリ ケーシ ョ ン レベルで IP 制御レジスタを直接使用し、 割り込

みを処理するよ うにアプリ ケーシ ョ ン ソフ ト ウェアを記述するこ と もできますが、アプリ ケーシ ョ ン レベルでは、 提供されたド ライバーと制御レイヤーを使用する方が便利です。

リ ファレンス デザインのアプリ ケーシ ョ ン ソフ ト ウェアは、 次をこ こに示す順序で実行します。

• ソフ ト ウェア アプリ ケーシ ョ ンがシステム、 キャ ッシュ、 UART、 および VDMA を初期化

• IIC インターフェイスを介した HDMI ポート

• さまざまなパターンを生成するよ うに TPG インスタンスを設定

• VDMA の読み出しチャネルと書き込みチャネルを設定して AXI VDMA インスタンスを開始し、

VDMA インスタンスでの転送を開始。

• 1080p60 のタイ ミ ング設定で VTC インスタンスを開始

• AXI OSD を前記の解像度に設定

• このデザインでは、 タータン バー テス ト パターンを書き込むよ うに TPG インスタンスを設定

初期設定シーケンスの完了後、 ユーザーは、 ハイパーターミナルを使用してオプシ ョ ンを入力し、 入力

ソースを選択できます。 ソース と して TPG を選択する と、 画面上に格子バーが表示されます。 ビデオ

パターン入力と DVI 入力は、(RGB から YCbCr への) 色空間コンバーターを介して HDMI ポートに配

線されます。 ビデオ パイプラインが複数の場合は、入力チャネルを必要なレベルにブレンドするよ うに

OSD レジスタを設定できます。 アルファ ブレンディング レジスタに対して、 レイヤーごとに異なる値

を指定し、 すべてのレイヤーを同時に LCD 画面上に表示させるこ とができます。

次の手順に従って、 ハード ウェアのセッ ト アップと設定を行います。

1. USB ケーブルをホス ト PC から USB JTAG ポートに接続します。適切なデバイス ド ラ イバーがイ

ンス トールされているこ とを確認します。

2. 別の USB ケーブルをホス ト PC から USB UART ポートに接続します。前述の USB-UART ド ラ イ

バーがインス トールされているこ とを確認します。

3. ZC702 HDMI コネクタを、 大 120Hz のフレーム レートのビデオ信号を表示できるビデオ モニ

ターに接続します。

4. 電源ケーブルを接続します。

5. 電源をオンにします。

6. ホス ト PC 上で、 次の設定でハイパーターミナルなどのターミナル プログラムを開始します。

a. ボー レート : 115200

b. データ ビッ ト : 8

c. パリティ : なし

d. ス ト ップ ビッ ト : 1

e. フロー制御 : なし

Page 9: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

リファレンス デザインの実行

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 9

リファレンス デザインの実行

このセクシ ョ ンでは、作成済みのビッ ト ス ト リームと コンパイル済みのソフ ト ウェア アプリ ケーシ ョ ン

を使用した リ ファレンス デザインの実行について説明します。

次の手順に従ってデザインを実行します。

1. コマンド シェルまたはターミナル ウ ィンド ウで次のコマンドを実行し、 ready_for_download

ディ レク ト リに移動します。

cd <unzip dir>/ video_streaming_xapp/ready_for_download

2. xmd コマンドを入力して、 ザイ リ ンクス マイクロプロセッサ デバッガー (XMD) を実行します。

3. 「source xmd.tcl」 と入力します。

ハードウェアとソフ トウェアの実行結果

ZC702 ボードに接続された LCD モニターにはカラー バー パターンが表示され、 ハイパーターミナル

画面には、 図 5 に示すよ うな出力が表示されます。

入力ソースには 「0」 を入力して TPG を選択するか、 「1」 を入力して DVI を選択できます。 「2」 を選

択する と、 2 つのレイヤーが緩やかにブレンド されてモニターに表示されます。

注記 : デザインは、 Dell P2210T モニターでのみテス ト されています。

ハードウェアの構築

このセクシ ョ ンでは、 ハード ウェア デザインの構築について説明します。

1. 提供されている video_streaming_xapp ディ レク ト リ を解凍し、 init.tcl ファ イルを

.Xilinx\Vivado フォルダーのホーム ディ レク ト リにコピーします。 init.tcl ファ イルには、

Vivado ツールで Zynq-7000 AP SoC を有効にするコマンドが含まれています。

2. Vivado Design Suite で、 video_streaming_xapp/xapp.xpr を開きます。

3. 左側のパネルで [Generate Bitstream] をク リ ッ ク します。

注記 : system_stub.bit ファ イルが video_streaming_xapp/xapp.runs/impl_1 ディ レク ト リ

に生成されます。

X-Ref Target - Figure 5

図 5 : 入力選択用のハイパーターミナル メニュー

Page 10: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

ソフ トウェアのコンパイルとデザインの実行

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 10

ソフ トウェアのコンパイルとデザインの実行

1. SDK を起動します。 Linux の場合は 「xsdk 」 と入力します。

2. Workspace Launcher で、 次のワークスペースを解凍して選択します。

video_streaming_xapp/xapp.sdk/app

3. SDK で [Xilinx Tools] → [Repository] をク リ ッ ク します。次のパスを解凍し、 リポジ ト リ と して追

加します。

video_streaming_xapp/xapp.sdk/app/repository

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

5. [Project] → [Clean] をク リ ッ ク し、 プロジェク ト全体を構築します。

注記 : システム環境で armgcc コンパイラのパスが設定されているこ とを確認して ください。 この

段階で、 BSP およびソフ ト ウェア アプ リ ケーシ ョ ンがコンパイルされますが、 コンパイル処理に

は数分かかり ます。

6. これで、 SDK で既存のソフ ト ウェア アプリ ケーシ ョ ンの変更やソフ ト ウェア アプリ ケーシ ョ ンの

新規作成が可能になり ました。

7. ELF ファ イルが次の場所に生成されます。

video_streaming_xapp/xapp.sdk/app/xapp/Debug/xapp.elf

ハードウェアとソフ トウェアの実行

1. XMD ターミナルを開きます。

2. xmd.tcl 内のパスを、 xapp.elf および system_stub.bit のユーザー パスに変更します。

3. ps7_init.tcl のパスを、 PC 上のユーザー パスに変更します。 通常このファイルは、

video_streaming_xapp/xapp.sdk/app/xapp_hw_platform にあ り ます。

4. xmd.tcl があるフォルダーに移動します。

5. source xmd.tcl を実行します。

注記 : ハイパーターミナルのボー レート を 115200 に設定し、 FMC DVI カードを 4 ページの図 3 に示

すよ うにスロ ッ トに挿入する必要があ り ます。

リファレンス デザイン

リ フ ァレンス デザインは、 ハード ウェア上で完全に検証され、 テス ト されています。 このデザインに

は、各種モジュールの多様な機能についての詳細が含まれています。 インターフェイスは、 Vivado ツー

ルによ り、 メモ リ コン ト ローラーに対する メ イン AXI インターフェイスに 150MHz で適切に配置配線

されています。

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

ます。

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

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

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

パラメーター 説明

全般

開発者 Dinesh Kumar

ターゲッ ト デバイ ス (ステ ッ ピング レベル、

ES、 プロダクシ ョ ン、 スピード グレード )Zynq-7000 (ZC702) AP SoC

ソース コードの提供 あ り

ソース コードの形式 VHDL/Verilog (ソース コードの一部は暗号化済み)

Page 11: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

使用率とパフォーマンス

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 11

使用率とパフォーマンス

表 3 に、 Vivado ツールの [Design Summary] タブに表示されるデバイス リ ソース使用率の情報を示し

ます。 使用率の情報は、 モジュールの境界を越えたロジッ ク 適化とモジュール間のロジッ ク共有のた

め、 概算値となっています。

参考資料 1. Advanced Microcontroller Bus Architecture (AMBA) ARM AXI4 仕様http://www.amba.com

2. UG761、 『AXI リ ファレンス ガイ ド』

3. DS768、 『LogiCORE IP AXI Interconnect (v1.06a) データシート 』

4. PG016、 『LogiCORE IP Video Timing Controller 製品ガイ ド』

5. PG010、 『LogiCORE IP Video On-Screen Display 製品ガイ ド』

6. XAPP741、 『AXI Interconnect を使用した 7 シ リーズによる高性能ビデオ システムの設計』

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

このデザインは、 次を使用します。

• コード

• 既存のザイ リ ンクス アプリ ケーシ ョ ン ノー

トの IP

• リ ファレンス デザイン

• CORE Generator (またはサードパーティの

ソフ ト ウェア)

リ フ ァ レ ン ス デザイ ンでは、 EDK/XPS (VivadoDesign Suite v2012.4 に含まれる) で生成されたコ

アが使用されます。

インプリ メンテーシ ョ ン

使用した合成ソフ ト ウェア ツール/バージ ョ ン Vivado Design Suite 2012.4

使用したインプ リ メンテーシ ョ ン ソフ ト ウェア

ツール/バージ ョ ン

Vivado Design Suite 2012.4

スタティ ッ ク タイ ミ ング解析の実施 あ り (PAR/TRCE のタイ ミ ングにパス)

ハードウェア検証

ハードウェア検証の実施 実施済み

検証に使用したハード ウェア プラ ッ ト フォーム ZC702 ボード

表 2 : リファレンス デザインの詳細 (続き)

パラメーター 説明

表 3 : デバイス使用率

デバイス パッケージ スライス レジスタ スライスの LUT 数ボンディング

された IOBRAMB36E1 RAMB18E1

xc7z020 clg484-1 20,726 (19.47%) 17,356 (32.62%) 54 (27%) 33 (23.57%) 13 (4.64%)

日付 バージョ ン 内容

2013 年 2 月 22 日 1.0 初版

Page 12: All Programmable - Zynq-7000 AP SoC と FreeRTOS …...Programmable Logic to Memory Interconnect MMU FPU and NEON Engine GIC Snoop Controller, AWDT, Timer 32 KB I-Cache ARM Cortex-A9

Notice of Disclaimer

XAPP897 (v1.0) 2013 年 2 月 22 日 japan.xilinx.com 12

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.

Automotive Applications Disclaimer

XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE INANY APPLICATION REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS APPLICATIONSRELATED TO: (I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESSTHERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OFSOFTWARE IN THE XILINX DEVICE TO IMPLEMENT THE REDUNDANCY) AND A WARNINGSIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD TO DEATHOR PERSONAL INJURY. CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USEOF XILINX PRODUCTS IN SUCH APPLICATIONS.

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

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

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

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

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

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

ご了承ください。