20
XAPP1178 (v1.0) 2013 9 13 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. All other trademarks are the property of their respective owners. 概要 このリファレンス デ ザ イ ン で は、 ポ リ シ ー メーカー機能と DisplayPort コントローラーを含む LogiCORE IP DisplayPort シ ス テ ム を イ ン プ リ メ ン ト し ま す。 テ ス ト 用の ト ラ フ ィ ッ ク は、 オーデ ィ オ / ビデオ パターン ジェネレーターで生成します。このリファレンス デザインは、 Vivado™ Design Suite 2013.2 を使用して作成および構築されています。 こ こでは、 ハード ウェアの構築および付属の C ソー コードを使用してボード上でデザインをテス トする手順も説明します。 リファレンス デザインと共 に、 Vivado Design Suite およびザイリンクス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) の完全なプロジェク ト ファイルが提供されており、 これらをデザインの詳しいテス トや再構築に活用したり、 新規デザインの リ フ ァ レ ン ス と し て使用す る こ と が可能です。 はじめに このアプリケーション ノ ー ト では、 DisplayPort 送信システムのインプリ メンテーション、 および各種 初期化手順 ( メイン リンクのトレーニング、 ソース コア レジスタの設定、 HPD アサートに対するモニ タリングと適切なアクションの実行など) によるソース コアの立ち上げ方法について説明し ます。また、 ザイリンクス DisplayPort 送信コアから DisplayPort 対応モニターへビデオ/ オーデ ィ オ データ を伝送す るシステムも紹介します。 ここでは、 MicroBlaze™ プロセッサ、 DisplayPort コア、 ビデオ/ オーデ ィ オ パターン ジェネレーターを含む KC705 評価ボードで DisplayPort ソース ポ リ シー メーカーをインプリ メ ン ト しています。 1 に、 このリファレンス デザインのブロック図を示します。 ソース ポ リ シー メーカーは、 MicroBlaze プロセッサ上で動作するアプリケーションとしてインプリ メ ント されています。 このリファレンス デザ イ ンの主な特長は、 次の と お り です。 VESA DisplayPort 規格 v1.2 に対応 レーン レー ト を動的に切 り 換え可能 : 1.622.7、 または 5.4Gbps 可変レーン数 : 12、 または 4 レーン アプリケーション ノート : Kintex-7 ファミリ XAPP1178 (v1.0) 2013 9 13 DisplayPort 送信システムのリファレンス デザイン 著者 : Vamsi KrishnaSaambhavi Baskaran X-Ref Target - Figure 1 1 : リファレンス デザインのブロック図

: Kintex-7 DisplayPort 送信システムのリファレンス...必要なハードウェアおよびソフトウェア XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 5シンク

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

XAPP1178 (v1.0) 2013 年 9 月 13 日 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. All other trademarks are the property of their respective owners.

概要 こ の リ フ ァ レン ス デザイ ンでは、 ポ リ シー メ ーカー機能と DisplayPort コ ン ト ローラーを含む

LogiCORE IP DisplayPort システムをインプ リ メン ト します。 テス ト用の ト ラフ ィ ッ クは、 オーディオ

/ビデオ パターン ジェネレーターで生成します。このリ ファレンス  デザインは、Vivado™ Design Suite2013.2 を使用して作成および構築されています。 こ こでは、 ハード ウェアの構築および付属の C ソー

ス コードを使用してボード上でデザインをテス トする手順も説明します。 リ ファレンス デザインと共

に、 Vivado Design Suite およびザイ リ ンク ス ソフ ト ウェア開発キッ ト (SDK) の完全なプロジェ ク ト

ファ イルが提供されており、 これらをデザインの詳しいテス トや再構築に活用したり、 新規デザインの

リ ファレンス と して使用するこ とが可能です。

はじめに このアプ リ ケーシ ョ ン ノートでは、 DisplayPort 送信システムのインプ リ メ ンテーシ ョ ン、 および各種

初期化手順 (メ イン リ ンクの ト レーニング、 ソース コア レジスタの設定、 HPD アサートに対するモニ

タ リ ングと適切なアクシ ョ ンの実行など) によるソース コアの立ち上げ方法について説明します。また、

ザイ リ ンクス DisplayPort 送信コアから DisplayPort 対応モニターへビデオ/オーディオ データを伝送す

るシステムも紹介します。 こ こでは、 MicroBlaze™ プロセッサ、 DisplayPort コア、 ビデオ/オーディオ

パターン ジェネレーターを含む KC705 評価ボードで DisplayPort ソース ポ リシー メーカーをインプ リ

メン ト しています。 図 1 に、 この リ ファレンス デザインのブロ ッ ク図を示します。

ソース ポ リ シー メーカーは、 MicroBlaze プロセッサ上で動作するアプリ ケーシ ョ ンと してインプ リ メ

ン ト されています。 このリ ファレンス デザインの主な特長は、 次のとおりです。

• VESA DisplayPort 規格 v1.2 に対応

• レーン レート を動的に切り換え可能 : 1.62、 2.7、 または 5.4Gbps

• 可変レーン数 : 1、 2、 または 4 レーン

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

XAPP1178 (v1.0) 2013 年 9 月 13 日

DisplayPort 送信システムのリファレンス デザイン著者 : Vamsi Krishna、 Saambhavi Baskaran

X-Ref Target - Figure 1

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

ハードウェアのインプリ メンテーシ ョ ン

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 2

• 幅広い解像度をサポート

• 動作中にセカンダ リ チャネル オーディオの有効/無効を変更可能

• レーンの動作中に色深度を変更可能

• 1/2/4 ピクセル幅のビデオ インターフェイスを選択可能

• デバッグに役立つ AUX ト ランザクシ ョ ンのログ機能

ハードウェアのインプリ メンテーシ ョ ン

図 2 に、 リ ファレンス デザインのハード ウェア アーキテクチャを示します。 デザインでは、 ブロ ッ ク

ベースのデザイン/アセンブリ ツールである Vivado Design Suite IP インテグレーター (IPI) を使用して

います。 Vivado IPI では、 デザインの主要ブロ ッ クの多く を統合してサブシステムを構築できます。

Vivado IPI サブシステムは、 MicroBlaze プロセッサ、 AXI Interconnect IP、 MIG 7 Series IP、 および

その他の AXI4-Lite ペリ フェラルで構成されます。 この IPI サブシステム、 DisplayPort IP、 およびビ

デオ パターン ジェネレーター、オーディオ パターン ジェネレーター、ビデオ ク ロ ッ ク ジェネレーター

の各カスタム デザイン ソースを最上位モジュールに統合します。 DisplayPort コアの設定は、 ユーザー

アプリ ケーシ ョ ンに応じて MicroBlaze プロセッサが AXI4-Lite インターフェイス経由で変更します。

クロッキング DisplayPort は、 次のクロ ッ ク ド メ インを使用します。

• プロセッサおよび AXI ド メ インは 50MHz で動作します。

• KC705 のジッター減衰クロ ッ ク ソース Si5326 が、 ト ランシーバー用の 135MHz 基準クロ ッ クを

供給します。Clocking Wizard で設定した周波数 135MHz のクロ ッ クが Si5326 の入力となり、ジッ

ター減衰を実行します。 そして、 このジッ ター減衰クロ ッ クが DisplayPort の ト ランシーバーへの

基準クロ ッ ク と して配線されます。

X-Ref Target - Figure 2

図 2 : ハードウェア アーキテクチャ

パターン ジェネレーター

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 3

• オーディオ ク ロ ッ クは、 プログラマブル ユーザー ク ロ ッ ク ソース Si570 から供給される 22.5792MHz (512 * 44.1KHz) で動作します。 この Si570 は、 AXI IIC インターフェイス経由でプ

ログラムできます。

• 送信ビデオ ク ロ ッ クは、MMCM を使用して リ ンク ク ロ ッ クから生成します。 これは、各種ビデオ

モードに合わせて DRP ポート経由でプログラムします。

パターン ジェネレーター

ビデオ パターン ジェネレーターには APB バス インターフェイスがあ り、プロセッサとの通信用に AXIAPB ブリ ッジに接続しています。 ビデオ パターン ジェネレーターで利用可能なレジスタは、 表 7 を参

照して ください。 ビデオのタイ ミ ング情報は、 これらのレジスタへの書き込みによってプログラムしま

す。 このモジュールは、 次に示す 8 つの標準ピクセル パターンを生成できます。

• VESA LLC パターン

• VESA パターン 3 バー

• VESA カラー スクエア

• 全画面赤色

• 全画面青色

• 全画面緑色

• 全画面黄色

• カラー バー

オーディオ パターン ジェネレーターは、サンプリ ング レート 44.1kHz で 2kHz の正弦波を生成します。

2 つのチャネルの間には、 数秒間の無音部が挿入されます。

DisplayPort 送信コアのカスタマイズ

MicroBlaze プロセッサは AXI4-Lite インターフェイス経由で DisplayPort コアに接続します。このイン

ターフ ェ イ スは IPI デザイ ンの外部イ ン ターフ ェ イ ス と な り、 最上位の RTL ソース フ ァ イルで

DisplayPort コアに接続されます。

DisplayPort と共に生成される S/PDIF コン ト ローラーは無効になっており、 DisplayPort ソースのオー

ディオ ス ト リー ミ ング信号がオーディオ パターン ジェネレーターに接続されています。 このアプ リ

ケーシ ョ ンのデフォル ト ではオーディオが無効であ り、 オーディオ送信の有効/無効はユーザー コン

ソールで選択できます。

DisplayPort PHY は、aux_tx_io_p と aux_tx_io_n の双方向 AUX チャネル インターフェイス信号

を使用するよ うにカスタマイズされています。 4 つの高速レーン用の ト ランシーバー 4 つは、 KC705ボード上の FMC HPC (MGT_BANK_118) にある 4 つの GTX ト ランシーバーにマップされています。

このソフ ト ウェア アプリ ケーシ ョ ンでは、使用するレーン数を少なく (1 または 2 レーンに) するこ とで

もできます。

ソフトウェア インプリメンテーション

この リ ファレンス デザインには、 MicroBlaze プロセッサ上で動作して DisplayPort リ ンクを初期化お

よび管理するソフ ト ウェア アプリ ケーシ ョ ンが含まれます。このアプリ ケーシ ョ ンは対話形式の UARTコンソールを備えて り、 異なる動作モードでシステムのテス トが可能です。 アプ リ ケーシ ョ ンはまた、

DisplayPort AUX レジスタの読み出し /書き込みによって柔軟にデバッグできます。

図 3 に、 このスタンドアロン アプリ ケーシ ョ ンのソフ ト ウェア フローを示します。

ソフ トウェア インプリ メンテーシ ョ ン

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 4

初期化

最初に、 IIC およびタ イマー ペリ フェ ラルを初期化します。 IIC インターフェイスを利用し、 KC705ボードに実装されたプログラム可能なオシレーター Si570 とジッ ター減衰器 Si5326 の 2 つのクロ ッ ク

ソースを初期化します。

DisplayPort ソース コアのセッ ト アップと初期化は、 次の手順に従います。

1. 物理層 (PHY) を リセッ ト状態に保持する

2. ト ランス ミ ッ ターを無効にする

3. ク ロ ッ ク分周器を設定する

4. DisplayPort ク ロ ッ ク速度を設定する

5. PHY のリセッ ト状態を終了する

6. PHY の準備が完了するのを待つ

7. ト ランス ミ ッ ターを有効にする

8. HPD の割り込みマスクを有効にする

HPD イベン ト ハンド リング

このソフ ト ウェアは、 ソース コアの割り込みステータス レジスタおよび割り込み信号ステート レジス

タを読み出して HPD イベン ト を識別します。HPD のステータスは、100ms ごとにプロセッサによって

ポーリ ングされます。 ホッ トプラグ イベン ト を検出する と、 ソフ ト ウェアはリ ンク ト レーニングを開

始します。 ホッ ト アンプラグ イベン ト を検出する と、 メ イン リ ンクが無効になり、 ソフ ト ウェアはレ

ジスタのポーリ ングを継続して HPD ステータスの変化を検出します。 HPD 割り込みが発生する と、 リ

ンク ステータスを確認し、 必要に応じて ト レーニングを再び実行します。 図 4 に、 HPD イベン ト ハン

ド リ ングのフロー図を示します。

X-Ref Target - Figure 3

図 3 : スタンドアロン アプリケーシ ョ ンのフロー

必要なハードウェアおよびソフ トウェア

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 5

シン ク デバイ スの接続または HPD 割 り 込みがあ る と、 ソース コアはシン ク レシーバーの性能

(Capability) フ ィールドの読み出しを開始し、 サポート可能な最大のレーン帯域幅とレーン数を取得し

ます。そして、これを リ ンク ト レーニングのデフォルト値と して設定します。ビデオ タイ ミ ング フォー

マッ トは、 EDID (Extended Display Identification Data) を読み出してシンク デバイスの性能を確認し

て決定します。 EDID が破損している場合、 ソフ ト ウェアはデフォルトの 640x480 (60Hz) のビデオ タイ ミ ング フォーマッ トにフォールバッ ク します。

リンク ト レーニング

ト レーニング手順の詳細は、 『LogiCORE IP DisplayPort 製品ガイ ド』 (PG064) [参照 3] および 『VESADisplayPort Standard Specification』 [参照 4] を参照してください。リ ンク ト レーニングは 2 つのタスク

で構成され、 ク ロ ッ ク リ カバリ ([参照 4] の 「 ト レーニング プロシージャ 1」 ) の後にチャネル等化 ([参照 4] の 「 ト レーニング プロシージャ 2」 ) が実行されます。 これら 2 つのタスクが完了する と ト レーニ

ングが終了し、 スク ランブルが有効になり ます。 ト レーニングが正常に終了しなかった場合は、 最大 5回まで同じ手順を繰り返します。 リ ンク ト レーニングが正し く完了する と、 メ イン リ ンクが有効にな

り ます。

必要なハードウェアおよびソフ トウェア

このリ ファレンス デザインには、 次のハードウェアが必要です。

• Kintex-7 KC705 ボードおよび電源

• 東京エレク ト ロン社製 FMCH-DP モジュール (最初のテス トに使用。 FMC アップデートについて

は東京エレク ト ロン社にお問い合わせください)http://solutions.inrevium.com/products/pdf/pdf_TB-FMCH-DP_HWUserManual_2.01e.pdf

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

X-Ref Target - Figure 4

図 4 : HPD イベン ト ハンド リング

DisplayPort ソース デザインの作成と実行

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 6

• DisplayPort ケーブル

• モニター

• 標準 A - ミ ニ B USB ケーブル (ホス ト コンピューターと KC705 ボードのシ リ アル通信用)

• ザイ リ ンクス Vivado Design Suite 2013.2

• ザイ リ ンクス ソフ ト ウェア開発キッ ト 2013.2

DisplayPort ソース デザインの作成と実行

このセクシ ョ ンでは、 リ ファレンス デザインを構築して KC705 ボード上で実行する手順について説明

します。

作業を始める前に、リ ファレンス デザインの zip ファ イルを解凍してローカル フォルダーに展開してく

ださい (下記の説明では、 このフォルダーを 「XAPP1178 フォルダー」 と呼ぶ)。

Vivado ツールの新規プロジェク トの開始

こ こでは、 Vivado Design Suite で新規プロジェク ト を開始する手順について説明します。

1. Vivado Design Suite 2013.2 をインス トールします。

2. Vivado Design Suite を起動します。

3. [Create New Project] をク リ ッ ク します。

4. [Create a New Vivado Project] ページで [Next] をク リ ッ ク します。

5. プロジェク ト名に 「dp_src_pm_v1_0」 と入力して、 プロジェク ト を保存するディ レク ト リ を選択

します。 以降の手順では、 こ こで選択したディ レク ト リ を <user_dir> と表記します。

6. [Project Type] ページで [RTL Project] をオンにします。

7. [Add Sources] ページで [Next] をク リ ッ ク し、 空のプロジェク ト を作成します。

8. [Add Existing IP] ページで [Next] をク リ ッ ク し、 空のプロジェク ト を作成します。

X-Ref Target - Figure 5

図 5 : [Add Sources] ページで空のプロジェク ト を作成

DisplayPort ソース デザインの作成と実行

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 7

9. [Add Constraints] ページで [Next] をク リ ッ ク します。

10. [Default Part] ページの [Specify] で [Boards] をク リ ッ ク し、[Kintex-7 KC705 Evaluation Platform]をク リ ッ ク します。

11. [Project Summary] ページを確認して [Finish] をク リ ッ ク します。

デザインへの DisplayPort コアの追加

1. Flow Navigator の左側で [IP Catalog] をク リ ッ ク して IP カタログを表示します。

2. IP カタログで [Standard Bus Interfaces] → [DisplayPort] → [DisplayPort (version 4.0)] をク リ ッ ク

します。 右ク リ ッ ク して [Customize IP] をク リ ッ ク します。

DisplayPort IDE で、 次のとおり設定します。

• [Protocol Selection] : DisplayPort 1.2 Version

• [Link Configuration] の [Max Link Rate] : 5.4

• [Video Interface Configuration] の [Max Bits per Color] : 16

• [Enable Audio Option] : オン

• [Y Only Enable] : オン

これらの設定が完了した画面を図 7 に示します。 DisplayPort IP のライセンスを購入したら [OK]をク リ ッ ク して出力ファイルを生成します。

X-Ref Target - Figure 6

図 6 : [Default Part] ページの設定

DisplayPort ソース デザインの作成と実行

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 8

3. [Generate Output Products] ダイアログ ボッ クスで [Generate] をク リ ッ ク します。 [Generate Synthesized Design Checkpoint] はオンにしないでください。

Vivado IP インテグレーター (IPI) での MicroBlaze プロセッサ システムの作成

1. DisplayPort コアの出力ファイルが生成されたら、 Flow Navigator の [IP Integrator] の下にある

[Create Block Design] をク リ ッ ク します。 デザイン名を 「design_1」 と して、 [OK] をク リ ッ ク し

ます。

2. 表 1 に記載されている IP を右ク リ ッ ク して [Add IP] をク リ ッ ク し、ブロ ッ ク デザインに追加しま

す。 インスタンスをダブルク リ ッ クする と、 IP をカスタマイズできます。 表 1 では、 これらの IPをわか り やす く い く つかのブロ ッ ク (Processor Local Memory、 AXI4-Lite Peripherals、 AXI4Peripherals) にグループ化しています。

X-Ref Target - Figure 7

図 7 : [Customize IP]

表 1 : IP コアの追加

IP 名 (インスタンス名) ◆設定

Clocking Wizard (clk_wiz_1) • clk_out1 周波数 : 200

• [clk_out2] をオンにして、 周波数を 135 に設定

• [clk_out3] をオンにして、 周波数を 50 に設定

MicroBlaze (microblaze_1) • [Use Instruction and Data Caches] をオン

• [Enable Barrel Shifter] をオン

• [Enable Integer Multiplier] を変更 : MUL32• [Enable Additional Machine Status Register

Instructions] をオン

• [Enable Pattern Comparator] をオン

• [Instruction Cache Feature] および [Data Cache Feature] の [Size in Bytes] を変更 : 16kB

• [Base Address] : 0x80000000

• [High Address] : 0xFFFFFFFF

• [Enable Peripheral AXI Data Interface] をオン

DisplayPort ソース デザインの作成と実行

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 9

1. 表 1 に記載した IP を図 8 ~図 10 のよ うに接続します。 これらの IP は、 local_memory (表 2)、axi4_mm_peripherals (表 3)、axi4_lite_peripherals (表 4) という名前の階層にグループ化されていま

す。 図 10 に、 IPI デザインの全体を示します。 Vivado IP インテグレーターでプロセッサ システム

を構築する手順は、 『Vivado Design Suite チュート リ アル』 (UG940) [参照 2] を参照してください。

2. 図 8 に、 local_memory グループのブロ ッ ク接続を示します。 表 2 のよ うに IP を接続します。

Processor Local Memory (local_memory)

LMB BRAM Controller (lmb_bram_if_cntlr_1) デフォルト

Local Memory Bus (lmb_v10_1) デフォルト

Block Memory Generator (blk_mem_gen_1) [Memory Type] を変更 : True Dual Port RAM

LMB BRAM Controller (lmb_bram_if_cntlr_2) デフォルト

Local Memory Bus (lmb_v10_2) デフォルト

AXI4-Lite Peripherals (axi4_lite_peripherals)

AXI Interconnect (axi_interconnect_1) [Number of Master Interfaces] を変更 : 7

MicroBlaze Debug Module (mdm_1) [Enable JTAG Uart] をオン

Proc Sys Reset (proc_sys_reset_1) デフォルト

AXI Interrupt Controller (axi_intc_1) デフォルト

Concat (xlconcat_1) [Number of Ports] を変更 : 5

AXI Uartlite (axi_uartlite_1) デフォルト

AXI Timer 1 (axi_timer_1) デフォルト

AXI IIC (axi_iic_1) [General Purpose Output Width] を変更 : 2

AXI APB Bridge (axi_apb_bridge_1) [Number of Slaves] を変更 : 1

AXI4 Peripherals (axi4_mm_peripherals)

AXI Interconnect (axi_interconnect_2) [Number of Slave Interfaces] を変更 : 2

[Number of Master Interfaces] を変更 : 1

MIG 7 Series (mig_1) • MIG のカスタマイズ IDE で Vivado プロジェ

ク トのオプシ ョ ンを確認して [Next] をク リ ッ

ク します。

• [MIG Output Options] で [Verify Pin Changes and Update Design] をク リ ッ ク し、 [Next] をク

リ ッ ク します。

• [Load mig.prj and XDC File] でダウンロード し

た XAPP1178/DP_Tx_Xapp/mig_files/ フォルダーにある design_1_mig_1_0_mig_a.prj と dp_ipi_mig_1_0.xdc を選択し、 [Next] をク リ ッ ク します。 次に表示されるページで [Validate] をク リ ッ ク します。

• 以降のページに表示される情報を確認し、 IP を生成します。

• 別の方法でカスタム MIG インスタンスを作成

するには、 『Vivado を利用した KC705 MIG デザイン作成』 (XTP196) [参照 1] を参照してく

ださい。

表 1 : IP コアの追加 (続き)

IP 名 (インスタンス名) ◆設定

DisplayPort ソース デザインの作成と実行

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 10

a. 接続が完了したら、 すべてのブロ ッ ク (lmb_v10_1/2、 lmb_bram_if_cntlr_1/2、blk_mem_gen_1) を選択して 「local_memory」 とい う名前の階層を作成します。

注記 : Ctrl キーを押しながら複数の IP を選択した後、右ク リ ッ ク して [Create Hierarchy] をク

リ ッ クする と、 これらの IP を 1 つの階層にグループ化できます。

3. AXI4 ペリ フェラルのブロッ クを表 3 のよ うに接続します。

表 2 : ローカル メモリ ブロックの接続

ポイン ト A ポイン ト B

インスタンス名インターフェイス/ブロック ピン名

インスタンス名インターフェイス/ ブロック ピン名

lmb_v10_1 LMB_SI_0 lmb_bram_if_cntlr_1 SLMB

lmb_v10_2 LMB_SI_0 lmb_bram_if_cntlr_2 SLMB

lmb_bram_if_cntlr_1 BRAM_PORT blk_mem_gen_1 BRAM_PORTA

lmb_bram_if_cntlr_2 BRAM_PORT blk_mem_gen_1 BRAM_PORTB

microblaze_1 DLMB lmb_v10_1 LMB_M

microblaze_1 ILMB lmb_v10_2 LMB_M

clk_wiz_1 clk_out3 lmb_v10_1 LMB_Clk

lmb_v10_2

lmb_bram_if_cntlr_1

lmb_bram_if_cntlr_2

proc_sys_reset_1 bus_struct_reset lmb_v10_1 SYS_Rst

lmb_v10_2

lmb_bram_if_cntlr_1 LMB_Rst

lmb_bram_if_cntlr_2

X-Ref Target - Figure 8

図 8 : IP インテグレーターでのローカル メモリの接続

DisplayPort ソース デザインの作成と実行

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 11

a. mig_7series_1 インスタンスを選択して右ク リ ッ ク し、 [Create Hierarchy] をク リ ッ ク して

「axi4_mm_peripheral」 とい う名前のグループを作成します。

4. 表 4 に、 AXI4-Lite ペリ フェラルの接続を示します。 接続が完了したら、 IP (Proc Sys Reset、 AXITimer、 Concat、 AXI APB Bridge、 AXI Interrupt Controller、 AXI IIC、 MDM、 AXI UART Lite)を選択して 「axi4_lite_peripherals」 とい う名前の階層を作成します。図 9 に、 この階層内の接続を

示します。

表 3 : AXI4 ブロックの接続

ポイン ト A ポイン ト B

インスタンス名インターフェイス/ブロック ピン名

インスタンス名インターフェイス/ ブロック ピン名

microblaze_1 M_AXI_DC axi_interconnect_2 S00_AXI

M_AXI_IC S01_AXI

axi_interconnect_2 M00_AXI mig_7series_1 S_AXI

外部ポート sys_clk_p sys_clk_p

sys_clk_n sys_clk_n

sys_rst sys_rst

DDR3 DDR3

proc_sys_reset_1 peripheral_aresetn mig_7series_1 aresetn

clk_wiz_1 clk_out3 axi_interconnect_2 S00_ACLK、 S01_ACLK

mig_7series_1 ui_clk axi_interconnect_2 ACLK、 M00_ACLK

clk_wiz_1 clk_in1

ui_clk_sync_rst proc_sys_reset_1 ext_reset_in

clk_wiz_1 reset

proc_sys_reset_1 interconnect_aresetn axi_interconnect_2 ARESETN

peripheral_aresetn S00、 S01、 M00_ARESETN

表 4 : AXI4-Lite の接続

ポイン ト A ポイン ト B

インスタンス名インターフェイス/ ブロック ピン名

インスタンス名/ 外部ポート名

インターフェイス/ ブロック ピン名

proc_sys_reset_1

interconnect_aresetn

axi_interconnect_1

ARESETN

peripheral_aresetn

S00、 M00、 M01、 M02、 M03、M04、 M05、 M06_ARESETN

axi_intc_1 s_axi_aresetn

mdm_1 s_axi_aresetn

microblaze_1 s_axi_aresetn

axi_timer_1 s_axi_aresetn

axi_uartlite_1 s_axi_aresetn

axi_iic_1 s_axi_aresetn

axi_apb_bridge_1 s_axi_aresetn

DisplayPort ソース デザインの作成と実行

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 12

clk_wiz_1 clk_out3

axi_interconnect_1 すべての Clk ピン

axi_intc_1 s_axi_aclk、 processor_clk

mdm_1 s_axi_aclk

microblaze_1 Clk

axi_timer_1 s_axi_aclk

axi_uartlite_1 s_axi_aclk

axi_iic_1 s_axi_aclk

proc_sys_reset_1 slowest_sync_clk

axi_apb_bridge_1 s_axi_aclk

proc_sys_reset_1 mb_resetaxi_intc_1 processor_rst

microblaze_1 Reset

clk_wiz_1 locked proc_sys_reset_1 dcm_locked

mdm_1 Debug_SYS_Rst proc_sys_reset_1 mb_debug_sys_rst

xlconcat

In0 axi_uartlite_1 interrupt

In1 外部ポート Dp_Int

In2 axi_timer_1 interrupt

In3 mdm_1 interrupt

In4 axi_iic_1 iic2inctc_irpt

dout axi_intc_1 intr

axi_interconnect_1

M00_AXI axi_intc_1 s_axi

M01_AXI axi_uartlite_1 s_axi

M02_AXI axi_apb_bridge_1 s_axi

M03_AXI axi_timer_1 s_axi

M04_AXI mdm_1 s_axi

M05_AXI 外部ポート M05_AXI

M06_AXI axi_iic_1 s_axi

axi_intc_1 interrupt microblaze_1 INTERRUPT

mdm_1 MBDEBUG_0 microblaze_1 DEBUG

axi_apb_bridge_1 apb_m 外部ポート apb_m

axi_uartlite_1 uart 外部ポート uart

axi_iic_1iic 外部ポート iic2inctc_irpt

gpo[1:0] 外部ポート gpo[1:0]

表 4 : AXI4-Lite の接続 (続き)

ポイン ト A ポイン ト B

インスタンス名インターフェイス/ ブロック ピン名

インスタンス名/ 外部ポート名

インターフェイス/ ブロック ピン名

DisplayPort ソース デザインの作成と実行

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 13

図 10 に完成したデザインを示します。

5. 現在のブロ ッ ク デザインを保存します。

X-Ref Target - Figure 9

図 9 : IP インテグレーターでの AXI4-Lite の接続

X-Ref Target - Figure 10

図 10 : IP インテグレーターでのすべてのブロックの接続

DisplayPort ソース デザインの作成と実行

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 14

6. [Address Editor] タブをク リ ッ ク して、IP のベース アドレス と上位アドレスを表 5 のよ うに変更し

ます。

7. ブロ ッ ク デザインの変更を保存します。

その他の HDL ファイルのプロジェク トへのインポート

1. Flow Navigator で [Add Sources] をク リ ッ ク し、XAPP1178/DP_Tx_Xapp/design_files/ 直下

の patgen、 vid_clk_drp、 wrappers ディ レク ト リにあるすべての HDL ファ イルをインポート

します。 Flow Navigator が表示されていない場合は、 Ctrl + Q キーを押すと表示されます。

2. DisplayPort IP には、カスタマイズ可能な RTL ファ イルがいくつかあ り ます。 このプロジェク トで

は、 displayport_0.v、 displayport_v4_0.v、 displayport_v4_0_tx_phy.v を編集する

必要があ り ます。 これらのファイルを、XAPP1178/DP_Tx_Xapp/design_files/displayport

ディ レク ト リ内のファイルで置き換えるこ と もできます。

3. DisplayPort のソース ファ イルを編集したら、 [Sources] ビューの内側を右ク リ ッ ク して [RefreshHierarchy] をク リ ッ ク します。

XDC 制約ファイル

1. Flow Navigator で [Add Sources] をク リ ッ ク し、

XAPP1178/DP_Tx_Xapp/design_files/constraint/dp_src_pm_v1_0.xdc の制約ファイ

ルをク リ ッ ク します。

2. デザインを保存します。

ビッ トス ト リームの生成

1. Flow Navigator で [Generate Bitstream] をク リ ッ ク します。

2. ビッ ト ス ト リームの生成が完了したら、 ハード ウェア プラ ッ ト フォームが SDK にエクスポート さ

れます。

a. [Sources] ビューでブロ ッ ク デザイン design_1 をダブルク リ ッ ク して開きます。

b. このブロ ッ ク デザイン (design_1) を右ク リ ッ ク して [Export Hardware for SDK] をク リ ッ ク し

ます。 [Export Hardware for SDK] ダイアログ ボッ クスで SDK ワークプレースのディレク ト

リ (例 : <user_sdk_workspace>) を指定して [Launch SDK] をク リ ッ ク します。

表 5 : ベースおよび上位アドレス

/microblaze_1 のインスタンス名

オフセッ ト アドレス 範囲 上位アドレス

データ

lmb_bram_if_cntlr_1 0x00000000 64K 0x0000FFFF

axi_intc_1 0x41200000 64K 0x4120FFFF

axi_timer_1 0x41C00000 64K 0x41C0FFFF

axi_uartlite_1 0x40600000 64K 0x4060FFFF

mdm_1 0x41400000 64K 0x4140FFFF

mig_1 0x80000000 1G 0xBFFFFFFF

axi_iic_1 0x40800000 64K 0x4080FFFF

M05_AXI 0x44A00000 64K 0x44A0FFFF

axi_apb_bridge_1 0x42000000 64K 0x4200FFFF

命令

lmb_bram_if_cntlr_2 0x00000000 64K 0x0000FFFF

mig_1 0x80000000 1G 0xBFFFFFFF

DisplayPort ソース デザインの作成と実行

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 15

c. SDK で [File] → [New] → [Application Project] をク リ ッ ク し、 新規アプリ ケーシ ョ ン プロ

ジェク ト を作成します。 プロジェク ト名を 「dp_app」 と し、 [Next] をク リ ッ ク します。

d. 次に表示されるページで [Empty Application] をク リ ッ ク し、 新規プロジェク ト を作成します。

e. XAPP1178/DP_Tx_Xapp/sdk_workspace/dp_app/src にあるソース コードを <user_sdk_workspace>/dp_app/src へコピーした後、 [File] → [Refresh] をク リ ッ ク し

て SDK アプリ ケーシ ョ ンを更新します。

f. [Xilinx Tools] → [Generate linker script] をク リ ッ ク して リ ンカー スク リプ ト を編集し、 コー

ド、 データ、 ヒープ セクシ ョ ンを mig_1 に配置し、 ヒープとスタ ッ クのサイズをどちらも 3.54KB に変更します。

g. リ ンカー スク リプ ト を生成したら、 <user_sdk_workspace>/dp_app/Debug ディ レク ト

リにある dp_app.elf をダウンロードできます。

ハードウェアのセッ トアップ

1. 東京エレク ト ロン (TED) 社製 TB-FMCH-DP モジュールを KC705 ボードの HPC FMC コネクタ

に接続します。

2. ホス ト PC と KC705 ボードのシ リ アル通信用 USB UART ポート を USB ケーブルで接続します。

3. TED TB-FMCH-DP モジュールの TX ポート とモニターを DP ケーブルで接続します (図 11)。

4. 電源ケーブルを接続し、 KC705 ボードの電源を投入します。

5. ホス ト PC 上でハイパーターミナル プログラムを、 次の設定で起動します。

• ボー レート : 9600

• データ ビッ ト : 8

• パリティ : なし

• ス ト ップ ビッ ト : 1

• フロー制御 : なし

X-Ref Target - Figure 11

図 11 : ハードウェアのセッ トアップ

ユーザー コンソールの表示

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 16

6. JTAG ケーブルをボードに接続します。

7. コマンド シェルで次のディ レク ト リ (ビッ ト ファ イルのある場所) へ移動します。

<user_dir>/dp_src_pm_v1_0/dp_src_pm_v1_0.runs/impl_1

または XAPP1178/DP_Tx_Xapp/ready_for_download

8. コマンド プロンプ トで xmd と入力し、ザイ リ ンクス マイクロプロセッサ デバッガー (XMD) を起

動します。 ビッ ト ス ト リームをボードにダウンロード します。

%xmd%fpga -f dp_src_pm_v1_0.bitExit

9. ソフ ト ウェアをボードにダウンロード して実行します。 ELF ファ イルは <user_sdk_workspace>/dp_app/Debug または XAPP1178/DP_Tx_Xapp/ready_for_download にあ り ます。

%cd <user_sdk_workspace>/dp_app/Debug%xmd%connect mb mdm%rst%stop%dow dp_app.elf%run

10. これで、 DisplayPort ソース ポ リシー メーカー ソフ ト ウェアの実行されます。

ユーザー コンソールの表示

ソフ ト ウェアの初期化/実行後、 ホッ トプラグ検出およびリ ンク ト レーニングが行われます。 リ ンク トレーニングの後、 UART ターミナル入力コマンド プロセッサがアクテ ィブにな り ます。 h キーを押す

と、 ユーザー コンソールのオプシ ョ ンが表示されます。 こ こで、 コンソールの各コマンドの機能につい

て説明します。

• ; - DisplayPort シンク デバイスから EDID を読み出す

AUX チャネル経由で DPCD (DisplayPort Configuration Data) および EDID (Extended DisplayIdentification Data) を読み出し、 関連情報を含めて表示します。

• b - AUX ト ランザクシ ョ ンのログを有効にする

AUX ログの有効/無効を設定します。有効にする と、ポ リ シー メーカー ソフ ト ウェアによって AUXト ランザクシ ョ ンがコンソールに表示されます。

• c - コンプライアンス テス ト ルーチンを実行する

リ ンク ト レーニングのレーン レート /レーン数、 パターン タイプ、 色深度などを選択してコンプラ

イアンス テス ト を実行できます。このコマンドを実行する と、表 6 に示すオプシ ョ ン サブメニュー

が表示されます。

表 6 : コンソール コマンド

キーストローク コマンド

1 1.62G、 1 レーンでリ ンク ト レーニングを実行

2 1.62G、 2 レーンでリ ンク ト レーニングを実行

3 1.62G、 4 レーンでリ ンク ト レーニングを実行

4 2.7G、 1 レーンでリ ンク ト レーニングを実行

5 2.7G、 2 レーンでリ ンク ト レーニングを実行

6 2.7G、 4 レーンでリ ンク ト レーニングを実行

ユーザー コンソールの表示

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 17

• d = TX の MSA を表示する

解像度、 ユーザー ピクセル幅など、 メ イン ス ト リームの属性を表示します。

• g = 標準の適応ト レーニング シーケンスを実行する

デフォルトの設定でリ ンク ト レーニングを実行します。

• h = ヘルプ メニューの表示

ヘルプ メニューを表示します。

• s = DPCD ステータスおよびト レーニング設定を表示する

ソース ポートに接続された DisplayPort モニターの ト レーニング情報と設定データを表示します。

• 1 - TX 電圧幅を調整する

PHY モジュールの電圧幅の設定を変更します。

• 2 - TX プリエンファシスを調整する

PHY モジュールのプリエンファシス設定を変更します。

• A - SRC レジスタを読み出す

DisplayPort ソース コアのレジスタを読み出します。

• B = SRC レジスタへ書き込む

DisplayPort ソース コアのレジスタへ書き込みます。

• C - ビデオ パターン ジェネレーターのレジスタを読み出す

7 5.4G、 1 レーンでリ ンク ト レーニングを実行

8 5.4G、 2 レーンでリ ンク ト レーニングを実行

9 5.4G、 4 レーンでリ ンク ト レーニングを実行

b 色深度 (bpc : bits per color) を設定する

• 0 - 6bpc に設定

• 1 - 8bpc に設定

• 2 - 10bpc に設定

• 3 - 12bpc に設定

• 4 - 16bpc に設定

m ビデオ解像度を設定する。 解像度を選択するサブメニューが表示されます。 解像度

を選択するには、 サブメニューに表示された 2 桁の 16 進数をキーボードから入力

します。

p ビデオ パターンを設定する。

• 0 = カラー バー

• 1 = VESA LLC パターン

• 2 = VESA パターン 3 バー

• 3 = VESA カラー スクエア

• 4 = 全画面赤色

• 5 = 全画面緑色

• 6 = 全画面青色

• 7 = 全画面黄色

V DPCD レジスタ空間を読み出す。

X フレーム CRC の値を印刷する。

表 6 : コンソール コマンド (続き)

キーストローク コマンド

ユーザー コンソールの表示

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 18

ビデオ パターン ジェネレーターのレジスタ空間を読み出します。 ビデオ パターン ジェネレーター

のレジスタ空間は、 表 7 を参照してください。

• D - ビデオ パターン ジェネレーターのレジスタへ書き込む

ビデオ パターン ジェネレーターのレジスタ空間へ書き込みます。 ビデオ パターン ジェネレーター

のレジスタ空間は、 表 7 を参照してください。

• S - オーディオを有効にする

ソース オーディオ レジスタを再プログラムします。

• T - オーディオを無効にする

オーディオ出力を無効にします。

• R - AUX レジスタを読み出す

AUX チャネルを経由してシンクのレジスタ空間を読み出します。 レジスタの 16 ビッ ト アドレス

を 4 桁の 16 進数と して入力します。

• W - AUX レジスタに書き込む

AUX チャネルを経由してシンクのレジスタ空間に書き込みます。 レジスタの 16 ビッ ト アドレス

を 4 桁の 16 進数と して入力します。

• x - アプリ ケーシ ョ ンを終了する

アプリ ケーシ ョ ン ループを終了し、 メ イン ループに戻り ます。プロセッサは main 関数の無限ルー

プを実行し、 それ以外の動作は行いません。

• / - 画面を消去する

表 7 : パターン ジェネレーターのレジスタ

アドレス 読み出し /書き込み

説明

0x000 R/W ビッ ト 0 = ビデオ出力を有効にする

ビッ ト 1 = パターン ジェネレーターをソフ ト ウェア リセッ トする

0x004 R/W ビッ ト 0 = VSYNC 極性

0x008 R/W ビッ ト 0 = HSYNC 極性

0x00C R/W ビッ ト 0 = DE 極性

0x010 R/W ビッ ト 8:0 = VSYNC 幅

0x014 R/W ビッ ト 8:0 = 垂直バッ ク ポーチ

0x018 R/W ビッ ト 8:0 = 垂直フロン ト ポーチ

0x01C R/W ビッ ト 10:0 = 垂直解像度

0x020 R/W ビッ ト 8:0 = HSYNC 幅

0x024 R/W ビッ ト 8:0 = 水平バッ ク ポーチ

0x028 R/W ビッ ト 8:0 = 水平フロン ト ポーチ

0x02C R/W ビッ ト 10:0 = 水平解像度

0x104 R/W ビッ ト 7:0 = TX ビデオ ク ロ ッ クの M 値。 ビデオ ク ロ ッ ク合成に使用Video_clock = lnk_clk * M/D

0x108 R/W ビッ ト 7:0 = TX ビデオ ク ロ ッ クの D 値。 ビデオ ク ロ ッ ク合成に使用Video_clock = lnk_clk * M/D

0x200 R ビッ ト 11:0 = VSYNC カウンターの現在の値

0x204 R ビッ ト 11:0 = HSYNC カウンターの現在の値

0x208 R ビッ ト 11:0 = データ イネーブル カウンターの現在の値

ディレク ト リ構造

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 19

ディ レク ト リ構造 このアプ リ ケーシ ョ ン ノートに付属するデザイン ファ イルのディ レク ト リ構造を次に示します。 すべ

てのファイルは DP_Tx_Xapp フォルダーにあ り ます。

• design_files

• constraint : プロジェク トで必要な XDC ファ イル

• displayport : DisplayPort IP 用のカスタマイズ済みラ ッパー ファ イル

• patgen : プロジェク トで必要な Verilog ファ イル

• vid_clk_drp : プロジェク トで必要な Verilog ファ イル

• wrappers : プロジェク トで必要な Verilog ファ イル

• dp_src_pm_v1_0 : Vivado プロジェク ト ディ レク ト リ

• ready_for_download : ボードにダウンロードする BIT および ELF ファ イル

• sdk_workspace : ポ リシー メーカー ソフ ト ウェアのソース ファ イル

• mig_files : MIG-7 シ リーズ IP のコンフ ィギュレーシ ョ ンに必要な PRJ および XDC ファ イル

ト ラブルシューティング

こ こでは、 ポ リ シー メーカー ソフ ト ウェアで問題が発生した場合のデバッグ手順について説明します。

リ ンクの現在のステータスを確認するには、 ヘルプ メニューで s キーを押して DPCD ステータスを読

み出します。 リ ンク ト レーニングが実行されない場合は、 各ト レーニング プロシージャのステータス

をログで調べます。よ り詳細なデバッグ用と して、このログには DisplayPort レジスタ 0x0100 ~ 0x0107および 0x0204 ~ 0x0207 の値が記録されます。

参考資料 1. 『Vivado を利用した KC705 MIG デザイン作成』 (XTP196)

2. 『Vivado Design Suite チュート リ アル : エンベデッ ド プロセッサ ハードウェア デザイン』 (UG940)

3. 『LogiCORE IP DisplayPort 製品ガイ ド』 (PG064)

4. 『VESA DisplayPort Standard Specification』

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

日付 バージョ ン 内容

2013 年 9 月 13 日 1.0 初版

Notice of Disclaimer

XAPP1178 (v1.0) 2013 年 9 月 13 日 japan.xilinx.com 20

Notice of Disclaimer

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

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

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

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

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

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

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

ご了承ください。