...

Vivado 7 FPGA AXI , (XAPP789)

by user

on
Category: Documents
30

views

Report

Comments

Transcript

Vivado 7 FPGA AXI , (XAPP789)
ア プ リ ケーシ ョ ン ノ ー ト : 7 シ リ ーズ FPGA
Vivado ツールを用いた 7 シ リ ーズ FPGA AXI
マルチポー ト メ モ リ コ ン ト ロー ラ ー
XAPP789 (v1.0) 2012 年 7 月 31 日
は じ めに
著者 : Khang Dao、 Sikta Pany、 Ricky Su
マルチポー ト メ モ リ コ ン ト ロ ー ラ ー (MPMC) は、 複数のデバ イ ス が 1 つの メ モ リ コ ン ト ロ ー ラ ーを
共用す る アプ リ ケーシ ョ ンに使用 さ れます。 こ れは、 複数の ソ ース か ら のデー タ が共通の メ モ リ デバ イ
ス (通常、 DDR3 SDRAM) を介 し て移動す る 、 ビデオ、 エンベデ ッ ド シ ス テ ム、 通信のアプ リ ケーシ ョ
ンの多 く で一般的に求め ら れ る 要件です。
こ のアプ リ ケーシ ョ ン ノ ー ト では、 7 シ リ ーズ FPGA と Vivado™ Design Suite [参照 1] を使用 し て基
本的な DDR3 MPMC デザ イ ン を作成す る 方法を示 し ます。 MPMC は、 Vivado ツールで提供 さ れ る メ
モ リ イ ン タ ーフ ェ イ ス ジ ェ ネ レー タ ー (MIG) コ ア と AXI イ ン タ ー コ ネ ク ト IP を組み合わせて構築 し
ます。
AXI は、AMBA® 4 (Advanced Microcontroller Bus Architecture) 仕様に基づいて標準化 さ れた IP イ ン
タ ーフ ェ イ ス プ ロ ト コ ルです [参照 2]。 こ の リ フ ァ レ ン ス デザ イ ンは、 AXI4 仕様で規定 さ れた方法に
従っ て、 AXI4、 AXI4-Lite、 AXI4-Stream の各 イ ン タ ーフ ェ イ ス を使用 し ます。 こ れ ら の イ ン タ ーフ ェ
イ ス は、 シ ス テ ム を構築す る ための共通 し た IP イ ン タ ーフ ェ イ ス プ ロ ト コ ルの フ レーム ワー ク を提供
し ます。
概要
こ のアプ リ ケーシ ョ ン ノ ー ト のサンプル デザ イ ンは、ザ イ リ ン ク ス Kintex™-7 FPGA KC705 評価キ ッ
ト [参照 3] の KC705 評価ボー ド 上で完全に動作する ハー ド ウ ェ ア シ ス テ ム です。
デザ イ ン は、 ビデオ テ ス ト パ タ ーン ジ ェ ネ レ ー タ ー (TPG) か ら 供給 さ れ る デー タ を メ モ リ に複数回
ループ入出力 し てか ら 、 ボー ド 上の高精細度マルチ メ デ ィ ア イ ン タ ーフ ェ イ ス (HDMI テ ク ノ ロ ジ ) コ
ネ ク タ に送信す る 、 基本的な ビデオ シ ス テ ム を イ ンプ リ メ ン ト し ます。 DDR3 メ モ リ は、 複数のビデオ
フ レーム バ ッ フ ァ ーが共用する マルチポー ト メ モ リ と し て機能 し ます。ビデオ フ レーム バ ッ フ ァ ーは、
2 つの AXI Video Direct Memory Access (AXI VDMA) コ アに よ っ て制御 さ れます。各 AXI VDMA コ
アは、 ビデオ情報を伝送す る AXI4Stream デー タ を取 り 込み、 AXI4 イ ン タ ーフ ェ イ ス を介 し て メ モ リ
と の間でデー タ をや り 取 り し ます。 AXI イ ン タ ーコ ネ ク ト は、共有 メ モ リ コ ン ト ロ ー ラ ーへの AXI4 ト
ラ ンザ ク シ ョ ン を多重化す る 、 アービ ト レーシ ョ ン機能を持っ た ス イ ッ チ と し て機能する こ と で、 AXI
MPMC シ ス テ ム を構成 し ます。 ク ロ ッ ク ジ ェ ネ レー タ ー ブ ロ ッ ク は、 シ ス テ ム全体に ク ロ ッ ク を供給
し ま す。 AXI4-Lite マ ス タ ー コ アは、 リ セ ッ ト 後に AXI VDMA の設定に必要 と な る 、 コ ン フ ィ ギ ュ
レーシ ョ ン コ マ ン ド を生成 し ま す。 図 1 に、 シ ス テ ム のブ ロ ッ ク 図 と 、 シ ス テ ム内の基本的なデー タ
フ ロ ーを示 し ます。
注記 : Vivado ツールの ロ ジ ッ ク デザ イ ン フ ロ ー プ ロ ジ ェ ク ト のほかに、 参照用 と し て同等の Xilinx
Platform Studio (XPS) プ ロ ジ ェ ク ト も 提供 し てい ます。Vivado Design Suite : System Edition (EDK) に
付属す る XPS ツールを使用 し た方が、 Vivado ツールの ロ ジ ッ ク デザ イ ン フ ロ ーで同等のシ ス テ ム を
構築す る よ り も 高度な自動化が可能 と な る 場合があ り ます。
© 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. All other trademarks are the property of their respective owners.
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
1
ク イ ッ ク スター ト
X-Ref Target - Figure 1
IP Blocks Comprising AXI MPMC Subsystem
AXI TPG
AXI VDMA 0
AXI4-Stream Master
AXI4-Stream Slave
AXI4-Stream Master
AXI4 Master (MM2S)
AXI4 Master (S2MM)
VDMA 0 Config
AXI Interconnect (4x1)
AXI4 Slave 0 (Read Only)
AXI4 Slave 1 (Write Only)
AXI4-Lite Slave
AXI4-Lite Master
HDMI Controller
HDMI
AXI4-Stream Slave
AXI MIG
AXI VDMA 1
AXI4 Master
AXI4
Slave
DDR3
Memory
AXI4-Stream Slave
AXI4-Stream Master
AXI4 Master (MM2S)
AXI4 Master (S2MM)
AXI4 Slave 2 (Read Only)
AXI4 Slave 3 (Write Only)
AXI4-Lite Slave
VDMA 1 Config
Clock
Generator
AXI4-Lite Master
x789_01_070212
図 1 : AXI MPMC シス テムの概要
ク イ ッ ク スター ト
こ こ では、 すべてが揃っ たプ ロ ジ ェ ク ト フ ァ イ ル一式か ら デザ イ ン を構築す る 手順を説明 し 、 KC705
ボー ド 上でデモ デザ イ ン を動作 さ せ る 方法を示 し ます。
注記 : Vivado ツールで新規プ ロ ジ ェ ク ト を作成 し てデザ イ ン を構築す る 方法は、 11 ページの 「Vivado
ツールの新規プ ロ ジ ェ ク ト か ら の AXI MPMC デザ イ ンの作成」 で説明 し ます。
デザイ ン を開き再構築する手順
次の手順に従っ てデザ イ ン を開 き 再構築 し ます。
1. Vivado Design Suite 2012.2 を イ ン ス ト ール し ます (Logic Edition 以上が必要)。
2. こ のアプ リ ケーシ ョ ン ノ ー ト に付属する リ フ ァ レ ン ス デザ イ ン フ ァ イ ルを ローカル フ ォルダー (以
降は <design_dir> と 表記) に解凍し ます。
デザ イ ン を再構築せずに、 生成済みの ビ ッ ト ス ト リ ーム をハー ド ウ ェ ア上で実行する 場合は、 手順 8 に
進みます。 それ以外の場合は、 次の手順に従っ てデザ イ ン を再構築 し ます。
3. Windows の [ ス タ ー ト ] → [すべてのプ ロ グ ラ ム ] → [Xilinx Design Tools] → [Vivado 2012.2] →
[Vivado] を ク リ ッ ク す る か、 ザ イ リ ン ク ス ツールのセ ッ ト ア ッ プ後に Linux か ら vivado コ マ ン
ド を入力 し て、 Vivado ツールを起動 し ます。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
2
ク イ ッ ク スター ト
4. Vivado ツールの Getting Started ページで [Open Project] を ク リ ッ ク し ます (図 2)。
X-Ref Target - Figure 2
XAPP789_02_072012
図 2 : Vivado ツールの Getting Started ページ ( プ ロ ジ ェ ク ト を開 く )
5. <design_dir>/vivado/project_1.xpr を選択 し 、 [OK] を ク リ ッ ク し ます (図 3)。
X-Ref Target - Figure 3
XAPP789_03_072012
図 3 : [Open Project] ウ ィ ン ド ウ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
3
ク イ ッ ク スター ト
6. [Flow] → [Generate Bitstream] を ク リ ッ ク す る か (図 4)、 Flow Navigator の [Program and Debug]
→ [Generate Bitstream] を ク リ ッ ク し ます (図 5)。
注記 : 合成お よ び イ ンプ リ メ ン テーシ ョ ン を実行す る か ど う か を尋ね る ダ イ ア ロ グが表示 さ れた場
合は、 [Yes] を ク リ ッ ク し ま す。 こ のデザ イ ン の合成お よ び イ ン プ リ メ ン テーシ ョ ン プ ロ セ ス は、
完了ま でに 1 時間以上を要する 場合があ り ます。
X-Ref Target - Figure 4
XAPP789_04_062912
図 4 : メ ニ ュ ー オプ シ ョ ンから のビ ッ ト ス ト リ ーム生成の開始
X-Ref Target - Figure 5
XAPP789_05_062912
図 5 : ア イ コ ンから のビ ッ ト ス ト リ ーム生成の開始
7. デザ イ ン の合成、 イ ン プ リ メ ン テーシ ョ ン、 ビ ッ ト ス ト リ ー ム 生成が実行 さ れ ま す。 「Bitstream
Generation Completed」 と い う メ ッ セージが表示 さ れた ら 、 [OK] を ク リ ッ ク し ます (図 6)。
X-Ref Target - Figure 6
XAPP789_06_072412
図 6 : [Bitstream Generation Completed] ダ イ ア ロ グ ボ ッ ク ス
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
4
ク イ ッ ク スター ト
KC705 ボー ド の設定
8. リ フ ァ レ ン ス デザ イ ンは、 図 7 に示す KC705 (Rev D) ボー ド 上で実行 さ れます。
X-Ref Target - Figure 7
4
3
1
2
x789_07_070212
図 7 : KC705 ボー ド の写真
9. USB ケーブル ( ボー ド に付属) でホ ス ト PC と KC705 ボー ド の USB JTAG ポー ト (図 7 の 1) を接続
し ます。 適切なデバ イ ス ド ラ イ バーが イ ン ス ト ール さ れてい る こ と を確認し て く だ さ い。
10. KC705 ボー ド の HDMI コ ネ ク タ に、 1280 x 720p、 60Hz のビデオ信号を表示で き る ビデオ モニ
タ ーを接続 し ます (図 7 の 2)。
11. KC705 ボー ド に電源ケーブルを接続 し ます (図 7 の 3)。
12. KC705 ボー ド の電源を オンに し ます (図 7 の 4)。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
5
ク イ ッ ク スター ト
ビ ッ ト ス ト リ ームのダウン ロー ド と 実行
デザ イ ン を再構築せずに、 ア プ リ ケーシ ョ ン ノ ー ト に付属す る 生成済みビ ッ ト ス ト リ ーム を使用 し て
KC705 ボー ド を プ ロ グ ラ ムす る 場合は、 手順 13 を実行 し ます。 デザ イ ン を Vivado ツールで再構築済
みで、 プ ロ ジ ェ ク ト を開いてい る 場合は、 手順 14 に進んで く だ さ い。
13. [ ス タ ー ト ] → [すべてのプ ロ グ ラ ム ] → [Xilinx Design Tools] → [ISE Design Suite 14.2] → [ISE
Design Tools] → [(32 ま たは 64)-bit Tools] → [iMPACT] を ク リ ッ ク する か、 Linux の コ マ ン ド ラ
イ ンに 「impact」 と 入力 し て、 iMPACT を直接起動 し ます。 手順 15 に進みます。
14. Vivado ツールの メ ニ ュ ー バーで [Flow] → [Launch iMPACT] を ク リ ッ ク する か (図 8)、 [Program
and Debug] → [Launch iMPACT] を ク リ ッ ク し て (図 9)、 iMPACT を実行 し ます。
X-Ref Target - Figure 8
XAPP789_08_062912
図 8 : メ ニ ュ ー オプ シ ョ ンか らの iMPACT の実行
X-Ref Target - Figure 9
XAPP789_09_062912
図 9 : ア イ コ ンからの iMPACT の実行
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
6
ク イ ッ ク スター ト
15. iMPACT ツールが起動 し た ら 、 [Edit] → [Launch Wizard] を ク リ ッ ク し ます (図 10)。
X-Ref Target - Figure 10
XAPP789_10_062912
図 10 : iMPACT Wizard の起動
16. [Welcome to iMPACT] ダ イ ア ロ グ ボ ッ ク ス で [Configure devices using Boundary-Scan (JTAG)] を
オンに し 、 [OK] を ク リ ッ ク し ます (図 11)。
X-Ref Target - Figure 11
XAPP789_11_062912
図 11 : [Welcome to iMPACT] ダ イ ア ロ グ ボ ッ ク ス
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
7
ク イ ッ ク スター ト
17. [Auto Assign Configuration Files Query Dialog] ダ イ ア ロ グ ボ ッ ク ス で [Yes] を ク リ ッ ク し ます
(図 12)。
X-Ref Target - Figure 12
XAPP789_12_062912
図 12 : [Auto Assign Configuration Files Query Dialog] ダ イ ア ログ ボ ッ ク ス
18. デザ イ ン を Vivado で再構築 し た場合は、 <design_dir>/vivado/project_1.runs/impl_1
に移動 し て system.bit を選択 し 、 [Open] を ク リ ッ ク し ます (図 13)。
注記 : デザ イ ン を Vivado ツールで再構築 し ていない場合は、
<design_dir>/ready_to_download/system.bit を開 き 、 生成済みビ ッ ト ス ト リ ーム フ ァ
イ ルを ダ ウ ン ロ ー ド し ます。
X-Ref Target - Figure 13
XAPP789_13_062912
図 13 : [Assign New Configuration File] ダ イ ア ログ ボ ッ ク ス
19. SPI ま たは BPI PROM の接続オプシ ョ ンに対 し ては、 [No] を ク リ ッ ク し ます (図 14)。
X-Ref Target - Figure 14
XAPP789_14_062912
図 14 : [Attach SPI or BPI PROM] ダ イ ア ログ ボ ッ ク ス
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
8
ク イ ッ ク スター ト
20. [Device Programming Properties] ダ イ ア ロ グ ボ ッ ク ス で [OK] を ク リ ッ ク し ます (図 15)。
X-Ref Target - Figure 15
XAPP789_15_062912
図 15 : [Device Programming Properties] ダ イ ア ログ ボ ッ ク ス
FPGA のプ ログ ラ ム
21. xc7k325t デバ イ ス を右 ク リ ッ ク し 、 [Program] を ク リ ッ ク し ます (図 16)。
X-Ref Target - Figure 16
XAPP789_16_072012
図 16 : FPGA のプ ログ ラ ム
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
9
ク イ ッ ク スター ト
プ ロ グ ラ ムが完了す る と 、 「Program Succeeded」 と い う メ ッ セージが表示 さ れます (図 17)。
X-Ref Target - Figure 17
XAPP789_17_062912
図 17 : 「Program Succeeded」 メ ッ セージ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
10
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
デザ イ ンのダ ウ ン ロ ー ド 後、 ビデオ モニ タ ーには外側に向か っ てゆ っ く り と 広が る 、 白色の円形波紋パ
タ ーンが複数個表示 さ れます (図 18)。 こ れは、 ハー ド ウ ェ ア内で実際に動作中の AXI MPMC シ ス テ ム
を表 し てい ます。 ビデオ デー タ の複数の フ レームが、 2 つの AXI VDMA IP ブ ロ ッ ク に よ っ て制御 さ れ
た DDR3 メ モ リ を介 し て移動 し てい ます。
X-Ref Target - Figure 18
XAPP789_18_062912
図 18 : プ ログ ラ ム済み KC705 ボー ド で モニ タ ーに表示 さ れる ビデオ画像
Vivado ツールの
新規プ ロ ジ ェ ク ト
からの AXI
MPMC デザイ ン
の作成
こ こ では、 Vivado ツールで新規プ ロ ジ ェ ク ト を作成 し てデザ イ ン を作成す る 手順を示 し ます。 Vivado
Design Suite を使用 し て IP ブ ロ ッ ク をプ ロ ジ ェ ク ト に追加ま たは コ ン フ ィ ギ ュ レーシ ョ ン し 、それ ら を
互いに接続 し てシ ス テ ム を構築 し た後、 デザ イ ン を イ ンプ リ メ ン ト し て ビ ッ ト ス ト リ ーム を生成す る 方
法を説明 し ます。
注記 : 図には、以降の手順では説明 し ていない コ ン フ ィ ギ ュ レーシ ョ ンや GUI オプシ ョ ンが示 さ れてい
る 場合があ り ます。 こ れ ら のオプシ ョ ンは、 特に設定を変更す る よ う に指示 さ れない限 り 、 デフ ォ ル ト
値の ま ま に し て く だ さ い。
Vivado の新規プ ロ ジ ェ ク ト の開始 と プ ロ ジ ェ ク ト オプ シ ョ ンの設定
1. Vivado Design Suite 2012.2 を イ ン ス ト ール し ます (Logic Edition 以上が必要)。
2. リ フ ァ レ ン ス デザ イ ン フ ァ イ ルを ロ ーカル フ ォ ルダー (以降は <design_dir> と 表記) に解凍 し
ます。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
11
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
3. Windows の [ ス タ ー ト ] → [すべてのプ ロ グ ラ ム ] → [Xilinx Design Tools] → [Vivado 2012.2] →
[Vivado] を ク リ ッ ク す る か、 ザ イ リ ン ク ス ツールのセ ッ ト ア ッ プ後に Linux か ら vivado コ マ ン
ド を入力 し て、 Vivado ツールを起動 し ます。
4. [Getting Started] → [Create New Project] を ク リ ッ ク し て新規プ ロ ジ ェ ク ト を作成 し ます (図 19)。
X-Ref Target - Figure 19
XAPP789_02_072012
図 19 : Vivado ツールの Getting Started ページ (新規プ ロ ジ ェ ク ト の作成)
5. [New Project] ウ ィ ン ド ウ で [Next] を ク リ ッ ク し ます (図 20)。
X-Ref Target - Figure 20
XAPP789_20_062912
図 20 : [New Project] ウ ィ ン ド ウ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
12
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
6. プ ロ ジ ェ ク ト 名に 「project_1」 と 入力 し 、 プ ロ ジ ェ ク ト 用のデ ィ レ ク ト リ を選択 し ます。 新規プ
ロ ジ ェ ク ト 用に選択 し た こ のデ ィ レ ク ト リ は、 <user_dir> と し ます (図 21)。
X-Ref Target - Figure 21
XAPP789_21_062912
図 21 : [New Project] ウ ィ ン ド ウ (Project Name)
7. [Project Type] ウ ィ ン ド ウ で [RTL Project] をオンに し ます (図 22)。
X-Ref Target - Figure 22
XAPP789_22_072012
図 22 : [New Project] ウ ィ ン ド ウ (Project Type)
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
13
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
8. [Add Sources] ウ ィ ン ド ウ で [Next] を ク リ ッ ク し 、 空のプ ロ ジ ェ ク ト を作成 し ます (図 23)。
X-Ref Target - Figure 23
XAPP789_23_062912
図 23 : [New Project] ウ ィ ン ド ウ (Add Sources)
9. [Add Existing IP] ウ ィ ン ド ウ で [Next] を ク リ ッ ク し 、 空のプ ロ ジ ェ ク ト を作成 し ます (図 24)。
X-Ref Target - Figure 24
XAPP789_24_062912
図 24 : [New Project] ウ ィ ン ド ウ (Add Existing IP)
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
14
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
10. [Add Constraints] ウ ィ ン ド ウ で [Next] を ク リ ッ ク し ます (図 25)。
X-Ref Target - Figure 25
XAPP789_25_072012
図 25 : [New Project] ウ ィ ン ド ウ (Add Constraints)
11. [Default Part] ウ ィ ン ド ウ の検索テ キ ス ト ボ ッ ク ス に製品番号を入力 し て xc7k325tffg900-2 を選択
し 、 [Next] を ク リ ッ ク し ま す ( 図 26)。 ま た は、 [Specify] → [Boards and Filter] → [Family] →
[Kintex-7] を ク リ ッ ク し て Kintex-7 KC705 評価プ ラ ッ ト フ ォーム を選択 し てか ら デバ イ ス を選択
す る 方法 も あ り ます。
X-Ref Target - Figure 26
XAPP789_26_062912
図 26 : [New Project] ウ ィ ン ド ウ (Default Part)
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
15
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
12. [New Project Summary] の表示内容を確認 し 、 [Finish] を ク リ ッ ク し ます (図 27)。
X-Ref Target - Figure 27
XAPP789_27_062912
図 27 : [New Project] ウ ィ ン ド ウ (New Project Summary)
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
16
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
デザイ ンへの メ モ リ コ ン ト ロー ラ ー (MIG IP コ ア ) の追加
13. [Project Manager] → [IP Catalog] を ク リ ッ ク す る か、 Flow Navigator の左側の [IP Catalog] を ク
リ ッ ク し て、 IP カ タ ロ グ機能を起動 し ます。
14. [IP Catalog] タ ブの [Memories & Storage Elements] → [Memory Interface Generators] → [MIG 7
Series (Version 1.6)] を ク リ ッ ク し ます。
15. 右 ク リ ッ ク し て [Customize IP] を ク リ ッ ク し 、 メ モ リ コ ン ト ロー ラ ーの コ ン フ ィ ギ ュ レーシ ョ ン を
開始 し ます (図 28)。 IP カ ス タ マ イ ズ GUI が起動する ま でに数分を要する場合があ り ます。
X-Ref Target - Figure 28
XAPP789_28_062912
図 28 : [IP Catalog] メ ニ ュ ー
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
17
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
16. Memory Interface Generator の最初の GUI で コ アのオプシ ョ ン を確認 し 、 [Next] を ク リ ッ ク し ま
す (図 29)。
X-Ref Target - Figure 29
XAPP789_29_062912
図 29 : Kintex-7 FPGA メ モ リ イ ン タ ー フ ェ イ ス ジ ェ ネ レー タ ー (MIG) の最初のページ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
18
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
17. [Create Design] を オンに し 、 [Component Name] に DDR3_SDRAM を指定 し ます。 AXI イ ン タ ー
フ ェ イ ス を有効にす る ために [AXI4 Interface] チ ェ ッ ク ボ ッ ク ス を オンに し て、[Next] を ク リ ッ ク
し ます (図 30)。
X-Ref Target - Figure 30
XAPP789_30_062912
図 30 : [MIG Output Options]
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
19
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
18. [Pin Compatible FPGAs] ページでは [Next] を ク リ ッ ク し ます (図 31)。 通常 こ のページは、 同一
パ ッ ケージの複数のデバ イ ス間で互換性を持たせ る 必要があ る 場合に、新たにボー ド ピ ン配置を定
義す る ために使用 し ます。
X-Ref Target - Figure 31
XAPP789_31_062912
図 31 : Kintex-7 FPGA MIG の [Pin Compatible FPGAs] ページ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
20
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
19. [Memory Selection] ページでは、 [DDR3 SDRAM] をオンに し て [Next] を ク リ ッ ク し ます (図 32)。
X-Ref Target - Figure 32
XAPP789_32_062912
図 32 : MIG [Memory Selection] ページ - メ モ リ タ イ プ と コ ン ト ロー ラ ーの選択
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
21
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
20. [Controller Options] ページでは、 ク ロ ッ ク 周期を 2500ps に設定 し て メ モ リ ク ロ ッ ク が 400MHz
に設定 さ れ る よ う に し ま す (図 33)。 こ れは、 KC705 ボー ド 上のデバ イ ス と FPGA の ス ピー ド グ
レー ド がサポー ト す る ク ロ ッ ク 周波数です。 KC705 ボー ド に適合する よ う に、 メ モ リ の情報を次の
と お り 設定 し ます。
•
[Memory Type] : SODIMMs
•
[Memory Part] : MT8JTF12864HZ-1G6
•
[Data Width] : 64
X-Ref Target - Figure 33
XAPP789_33_062912
図 33 : MIG [Controller Options] ページ
21. 必要に応 じ てページ を下に ス ク ロ ール し 、 [Data Mask] のオプシ ョ ンがオン (デフ ォ ル ト ) にな っ て
い る こ と 、 [Ordering] が [Normal] (デフ ォ ル ト ) に設定 さ れてい る こ と を確認 し ます。 [Next] を ク
リ ッ ク し ます (図 33)。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
22
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
22. [AXI Parameter] ページでは、 次の と お り 設定 し て [Next] を ク リ ッ ク し ます (図 34)。
•
[AXI Data Width] : 512
こ の設定に よ り 、AXI イ ン タ ーフ ェ イ ス のデー タ 幅が MIG デー タ パス のネ イ テ ィ ブ デー タ 幅
に一致 し ます。
•
[Narrow Burst Support] : 0
こ の設定に よ り 、 幅の狭い AXI ト ラ ン ザ ク シ ョ ン に対す る サポー ト が無効にな る ため、 エ リ
ア と レ イ テ ン シが削減 さ れます。 『ザ イ リ ン ク ス AXI リ フ ァ レ ン ス ガ イ ド 』 [参照 4] に記載 さ
れてい る と お り 、 通常ザ イ リ ン ク ス IP では幅の狭い ト ラ ンザ ク シ ョ ン を使用 し ません。
•
[AXI ID Width] : 4
こ の値は、 こ の メ モ リ コ ン ト ロ ー ラ ーに接続 さ れたマ ス タ ーのネ ッ ト ワー ク に応 じ て設定 し ま
す。 通常は、 ARM AXI4 の資料 [参照 4] に記載 さ れたシ ス テ ム レベルのパ ラ メ ー タ ーであ り 、
メ モ リ コ ン ト ロ ー ラ ーに接続 さ れた AXI イ ン タ ー コ ネ ク ト ま たは IP ブ ロ ッ ク に よ っ て決ま
り ます。 こ のデザ イ ンでは、 AXI イ ン タ ー コ ネ ク ト が使用す る デフ ォ ル ト の コ ン フ ィ ギ ュ レー
シ ョ ン に一致す る 値 と し て 4 を設定 し ます。 ただ し 、 カ ス タ ム ユーザー シ ス テ ム の場合、 接
続先の AXI シ ス テ ムの要件を満たす よ う に、 こ の値を調整す る 必要が生 じ る 場合があ り ます。
特に、 デバ イ ス数 ま たは AXI イ ン タ ー コ ネ ク ト の コ ン フ ィ ギ ュ レーシ ョ ン が大幅に変更 さ れ
る 場合です。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
23
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
X-Ref Target - Figure 34
XAPP789_34_062912
図 34 : MIG [AXI Parameter] ページ
23. [Memory Options] ページでは、 次の と お り 設定 し て [Next] を ク リ ッ ク し ます (図 35)。
•
[Input Clock Period] : 5000ps (200MHz)
こ れは、 KC705 ボー ド で使用可能な ク ロ ッ ク 周波数です。
•
[Read Burst Type] : Sequential
こ れは、 シ ス テ ム内のマ ス タ ーが通常シーケ ン シ ャ ル バース ト を使用す る ビデオ デバ イ ス で
あ る 場合に推奨 さ れ る 一般的な設定です。
•
[Output Driver Impedance Control] : RZQ/7
KC705 ボー ド のデザ イ ン要件に適合 さ せます。
•
[RTT (nominal) - On Die Termination (ODT)] : RZQ/6
KC705 ボー ド のデザ イ ン要件に適合 さ せます。
•
XAPP789 (v1.0) 2012 年 7 月 31 日
[Memory Address Mapping Selection] : Bank/Row/Column
japan.xilinx.com
24
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
バン ク 、 行、 列、 いずれの設定 も 可能です。 シ ス テ ム内のビデオ デバ イ ス は長いシーケ ン シ ャ
ル パ タ ーン でア ク セ スす る ため、 ど の設定を選んで も 同様の結果が得 ら れ る と 考え ら れ ます。
[Bank/Row/Column] マ ッ プ を選択 し てい る 理由は、 理論上複数のマ ス タ ーが異な る バン ク に
ア ク セ ス で き る よ う にな り 、 バン ク の空 き 時間が長 く な る 可能性があ る ためです。
X-Ref Target - Figure 35
XAPP789_35_062912
図 35 : MIG [Memory Options] ページ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
25
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
24. [FPGA Options] ページでは、 次の と お り 設定 し て [Next] を ク リ ッ ク し ます (図 36)。
•
[System Clock] : Differential
こ れはデフ ォ ル ト 設定です。
•
[Reference Clock] : Use System clock
こ の設定に よ り 、 基準 ク ロ ッ ク ソ ース と し てシ ス テ ム ク ロ ッ ク を共有で き る よ う にな り ます。
•
[Debug Signals for Memory Controlle] : OFF
こ れはデフ ォ ル ト 設定です。
•
[Internal Vref] : (チ ェ ッ ク ボ ッ ク ス をオ フ )
こ れはデフ ォ ル ト 設定です。
•
[IO Power Reduction] : ON
I/O 消費電力を削減する 新 し い機能で、 デフ ォ ル ト 設定はオンです。 こ の設定は KC705 ボー ド
の標準 コ ン フ ィ ギ ュ レーシ ョ ンに適合 さ せます。
X-Ref Target - Figure 36
XAPP789_36_062912
図 36 : MIG [FPGA Options] ページ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
26
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
25. [Extended FPGA Options] ページでは、 内部終端 イ ン ピーダ ン ス と し て 50Ω を設定 し て [DCI
Cascade] オプシ ョ ン を オンに し ます。 こ の設定は KC705 ボー ド の要件に適合 さ せます。 [Next] を
ク リ ッ ク し ます (図 37)。
X-Ref Target - Figure 37
XAPP789_37_062912
図 37 : MIG [Extended FPGA Options] ページ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
27
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
26. [Pin/Bank Selection Mode] では、 [Fixed Pin Out] をオンに し て [Next] を ク リ ッ ク し ます (図 38)。
こ れに よ っ て、 ユーザーが KC705 ボー ド の よ う な既存のボー ド の定義済みピ ン配置情報を入力で
き る よ う にな り ます。
注記 : その他のオプシ ョ ンは新 し いボー ド デザ イ ン用であ り 、 ピ ン配置を ツールに選択 さ せ る 場合
に使用 し ます。
X-Ref Target - Figure 38
XAPP789_38_062912
図 38 : MIG [I/O Planning Options] ページ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
28
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
27. [Pin Selection] ページでは、 通常ユーザーが GUI のプルダ ウ ン メ ニ ュ ーを使用 し て、 メ モ リ イ ン
タ ーフ ェ イ ス に必要な I/O ピ ン配置情報を入力 し ます。時間を節約す る ために、MIG GUI には UCF
フ ァ イ ル を 読み出 し て ピ ン 配置情報 を イ ン ポー ト す る オ プ シ ョ ン が あ り ま す。 こ の フ ァ イ ルの
フ ォ ーマ ッ ト については MIG の資料で解説 し てい ます。 こ のデザ イ ン では各ピ ン の配置を入力す
る 手間を省 く ため、 [ReadUCF] を ク リ ッ ク し て KC705 ボー ド 用に生成済みフ ァ イ ル名を入力 し ま
す。
<design_dir>/src/ip/DDR3_SDRAM/user_design/constraints/DDR3_SDRAM.ucf を 選
択 し て [Open] を ク リ ッ ク し 、 KC705 の ピ ン配置情報フ ァ イ ルが ロ ー ド さ れます。 ロ ー ド が完了す
る と 、 [Pin Selection] ページに戻 り ます。 [Validate] を ク リ ッ ク し て MIG ツールに ピ ン配置を確認
さ せ (図 39)、 [Next] を ク リ ッ ク し ます。 DRC 検証の メ ッ セージ ロ グで [OK] を ク リ ッ ク し ます。
こ れに よ り 、 選択 し たデバ イ スお よ び IP コ ン フ ィ ギ ュ レーシ ョ ン に対 し て ピ ン配置が有効であ る
こ と が確認 さ れます。
注記 : MIG ツールは、 メ モ リ イ ン タ ーフ ェ イ ス の ピ ン配置情報の保存お よ び読み出 し に UCF フ ァ
イ ルのみを使用 し ます。 こ のフ ァ イ ルは イ ンプ リ メ ン テーシ ョ ン ツールの I/O 制約には使用 し ませ
ん。Vivado ツールは、MIG ツールが生成 し た XDC フ ァ イ ルを用いて イ ンプ リ メ ン テーシ ョ ン ツー
ルの I/O 制約を指定 し ます。
X-Ref Target - Figure 39
XAPP789_39_062912
図 39 : MIG [Pin Selection] ページ - 既存のピ ン配置情報を使用
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
29
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
28. [System Signals Selection] ページでは、 [sys_clk_p/n] 信号を [AD12/AD11] に設定 し て [Next] を
ク リ ッ ク し ます (図 40)。
X-Ref Target - Figure 40
XAPP789_40_062912
図 40 : MIG [System Signals Selection] ページ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
30
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
29. [Summary] ページには、 IP コ ン フ ィ ギ ュ レーシ ョ ン全般の設定が表示 さ れます。 [Next] を ク リ ッ
ク し て次へ進みます (図 41)。
X-Ref Target - Figure 41
XAPP789_41_072012
図 41 : MIG [Summary] ページ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
31
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
30. 使用許諾契約を確認の う え [Accept] をオン し て [Next] を ク リ ッ ク す る と 、 シ ミ ュ レーシ ョ ン テ ス
ト ベン チの作成に使用す る メ モ リ シ ミ ュ レ ーシ ョ ン モデルが Vivado ツールに よ っ て生成 さ れ ま
す (図 42)。 使用許諾契約に同意 し ない場合は、 こ の IP コ ア でシ ミ ュ レ ーシ ョ ン を実行す る 際に、
別途モデルを入手す る 必要があ り ます。
注記 : こ のアプ リ ケーシ ョ ン ノ ー ト ではシ ミ ュ レーシ ョ ン フ ロ ーについて説明 し てい ません。
X-Ref Target - Figure 42
XAPP789_42_062912
図 42 : MIG Micron 社のモデル使用権許諾契約
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
32
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
31. こ の ウ ィ ン ド ウ は、ユーザー ガ イ ド に重要な PCB 情報が記載 さ れてい る こ と を知 ら せ る も のです。
画面の左下隅にあ る ボ タ ン を ク リ ッ ク す る と 、 ユーザー ガ イ ド にア ク セ ス で き ま す。 [Next] を ク
リ ッ ク し て次へ進みます (図 43)。
X-Ref Target - Figure 43
XAPP789_43_062912
図 43 : MIG [PCB Information] ページ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
33
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
32. [Design Notes] ページの内容を確認 し て [Generate] を ク リ ッ ク し ます (図 44)。 IP カ ス タ マ イ ズ
GUI に よ っ て下位の HDL と 制約フ ァ イ ルが作成 さ れ る と き に MIG IP フ ァ イ ルが生成 さ れ ます。
数秒 し て生成プ ロ セ ス が完了す る と 、 Vivado ツールに制御が戻 り ます。 こ れに よ っ て、 AXI イ ン
タ ー コ ネ ク ト IP に後に接続す る AXI イ ン タ ーフ ェ イ ス を備え た、 DDR3 メ モ リ 用 メ モ リ コ ン ト
ロ ー ラ ーが KC705 ボー ド 上に作成 さ れます。
X-Ref Target - Figure 44
XAPP789_44_072012
図 44 : MIG [Design Notes] ページ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
34
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
デザイ ンへの AXI イ ン タ ー コ ネ ク ト の追加
こ こ では、 プ ロ ジ ェ ク ト に AXI イ ン タ ー コ ネ ク ト IP ブ ロ ッ ク を追加す る 手順を説明 し ます。 AXI イ ン
タ ー コ ネ ク ト IP コ アの詳細は、『LogiCore IP AXI Interconnect デー タ シー ト 』 [参照 5] に記載 さ れてい
ま す。 AXI イ ン タ ー コ ネ ク ト の コ ン フ ィ ギ ュ レ ー シ ョ ン お よ び AXI シ ス テ ム の最適化プ ロ セ ス は、
『AXI リ フ ァ レ ン ス ガ イ ド 』 [参照 4] の 「AXI シ ス テ ムの最適化の検討事項 と ヒ ン ト 」 の章で解説 し て
い ます。
33. Vivado GUI の IP カ タ ロ グに戻 る か、 [Project Manager] → [IP Catalog] を ク リ ッ ク し て、 [IP
Catalog] ウ ィ ン ド ウ を開き ます。
34. IP デ ィ レ ク ト リ の [AXI Infrastructure] か ら [AXI Interconnect] IP を見つけ る か、 検索バーに名前
を入力 し ます。 IP 名を ダブル ク リ ッ ク し 、 こ の IP を コ ン フ ィ ギ ュ レーシ ョ ン し ます (図 45)。
X-Ref Target - Figure 45
XAPP789_45_072012
図 45 : IP カ タ ロ グの起動
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
35
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
35. AXI イ ン タ ー コ ネ ク ト IP コ ン フ ィ ギ ュ レーシ ョ ン GUI の [Global Settings] タ ブを使用 し て、 4 つ
のマ ス タ ー エン ド ポ イ ン ト IP コ アか ら 1 つの ス レーブへの接続をサポー ト で き る よ う に イ ン タ ー
コ ネ ク ト を コ ン フ ィ ギ ュ レーシ ョ ン し ます。各 AXI_VDMA には独立 し た読み出 し 専用お よ び書 き
込み専用 イ ン タ ーフ ェ イ ス が含 ま れ る ため、 両方の AXI_VDMA 間に合計 4 つのマ ス タ ーが存在
する こ と にな り ます。 こ の コ ン フ ィ ギ ュ レーシ ョ ンには、 次の と お り 設定 し ます (図 46)。
•
[Component name] : axi4
•
[Number of Slave Interfaces] : 4
こ の設定に よ り 、 4 つの AXI マ ス タ ー エ ン ド ポ イ ン ト が イ ン タ ー コ ネ ク ト に接続で き る よ う
にな り ます。
•
[Slave Interface Thread ID Width] : 0
AXI_VDMA マ ス タ ーは ID を生成 し ないため、 0 を選択 し ます。
•
[Address Width] : 32
MIG ツールのア ド レ ス幅の設定に一致する よ う に、 こ の値を選択 し ます。
•
[Interconnect Internal Data Width] : 512
MIG ツールの AXI イ ン タ ーフ ェ イ ス デー タ 幅に一致す る よ う に、 こ の値を選択 し ます。
注記 : こ の値を 512 ビ ッ ト よ り も 小 さ く す る と 、 MIG ツール と AXI イ ン タ ー コ ネ ク ト の間に
スループ ッ ト のボ ト ルネ ッ ク が生 じ ます。 こ の値を 512 ビ ッ ト よ り も 大き く す る と 、 不必要に
エ リ ア を増大 さ せます。
•
[Period of INTERCONNECT_ACLK in PS] : 10000
イ ン タ ー コ ネ ク ト が MIG ツールの AXI イ ン タ ーフ ェ イ ス と 同 じ ク ロ ッ ク 周波数 (100MHz)
で動作す る よ う に、 こ の値を選択 し ます。
AXI イ ン タ ー コ ネ ク ト は、 その接続先であ る AXI MIG の 512 ビ ッ ト × 100MHz の AXI イ ン タ ー
フ ェ イ ス に適合す る よ う に コ ン フ ィ ギ ュ レーシ ョ ン さ れます。 こ れに よ っ て、 シ ス テ ム性能が最適
化 さ れ、 必要な幅変換や ク ロ ッ ク 変換が少な く な り ます。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
36
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
X-Ref Target - Figure 46
XAPP789_46_062912
図 46 : AXI イ ン タ ー コ ネ ク ト のグローバル設定
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
37
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
36. AXI イ ン タ ー コ ネ ク ト IP コ ン フ ィ ギ ュ レーシ ョ ン GUI の [Interface Options - I] タ ブ を ク リ ッ ク
し 、 次の と お り 設定 し ます (図 47)。
•
[Master Interface] の [Data Width] : 512
MIG の ス レーブ AXI イ ン タ ーフ ェ イ ス幅に適合 さ せます。
•
[Slave Interface] 0 ~ 3 の [Data Width] : 32
各 AXI_VDMA マ ス タ ー AXI イ ン タ ーフ ェ イ ス の幅に適合 さ せます。
•
[Slave Interface] 0 ~ 3 の [Is Aclk Async] : (チ ェ ッ ク ボ ッ ク ス を オン )
AXI VDMA マ ス タ ーへの ス レーブ イ ン タ ーフ ェ イ ス には ク ロ ッ ク コ ンバー タ ーが必要です
(該当す る チ ェ ッ ク ボ ッ ク ス を オ ン )。 AXI VDMA マ ス タ ーが 75MHz で動作す る のに対 し 、
AXI イ ン タ ー コ ネ ク ト は 100MHz で動作す る ためです。
•
[Register Slices] : (チ ェ ッ ク ボ ッ ク ス を オ フ )
こ のシ ス テ ムは比較的シ ン プルであ る ため、 [Register Slices] はオ ン に し ま せん。 ただ し 、 タ
イ ミ ン グ要件を満たせない場合は、 レ ジ ス タ ス ラ イ ス のパ イ プ ラ イ ン化が必要にな る 場合があ
り ます。
X-Ref Target - Figure 47
XAPP789_47_062912
図 47 : AXI イ ン タ ー コ ネ ク ト の幅 と ク ロ ッ クの設定
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
38
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
37. AXI イ ン タ ーコ ネ ク ト IP コ ン フ ィ ギ ュ レーシ ョ ン GUI の [Interface Options – II] タ ブ を ク リ ッ ク
し 、 次の と お り 設定 し ます (図 48)。
•
[Slave Interface] 0 お よ び 2 : READ-ONLY
メ モ リ マ ッ プ を AXI_VDMA の ス レーブ (MM2S) AXI イ ン タ ーフ ェ イ ス に接続す る ために必
要な設定です。
•
[Slave Interface] 1 お よ び 3 : WRITE-ONLY
ス レーブ を AXI_VDMA の メ モ リ マ ッ プ (S2MM) AXI イ ン タ ーフ ェ イ ス に接続す る ために必
要な設定です。
•
[Slave Interface] の [Read/Write Acceptance] ( グ レ イ 表示 さ れていない部分) : 2
『AXI リ フ ァ レ ン ス ガ イ ド 』 [参照 4] の「AXI 最適化」の章で説明 し てい る と お り 、AXI_VDMA
は比較的長いバース ト を使用す る ため、 受け入れ数を 2 にす る こ と でパ イ プ ラ イ ン化 さ れた ト
ラ ンザ ク シ ョ ンのサポー ト を可能にす る と 同時にエ リ ア を最小化で き ます。
•
[Master Interface] の [Read/Write Acceptance] : 4
メ モ リ コ ン ト ロ ー ラ ーに対す る マ ス タ ー イ ン タ ーフ ェ イ ス に よ り 大 き な受け入れ数 4 を使用
す る と 、 メ モ リ コ ン ト ロ ー ラ ーに対す る 複数の ト ラ ン ザ ク シ ョ ン をパ イ プ ラ イ ン化で き る た
め、 ス ループ ッ ト が最大にな り ます。
X-Ref Target - Figure 48
XAPP789_48_062912
図 48 : AXI イ ン タ ー コ ネ ク ト のチ ャ ネル デー タ 設定
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
39
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
38. 『AXI リ フ ァ レ ン ス ガ イ ド 』 [参照 4] の 「AXI 最適化」 の章で説明 し てい る と お り 、 スループ ッ ト
を改善す る には ス レ ーブ イ ン タ ー フ ェ イ ス 上のブ ロ ッ ク RAM FIFO を有効にす る 必要が あ り ま
す。AXI イ ン タ ー コ ネ ク ト IP コ ン フ ィ ギ ュ レーシ ョ ン GUI の [Interface Options - III] タ ブを ク リ ッ
ク し 、 次の と お り 設定 し ます。 設定が完了 し た ら [OK] を ク リ ッ ク し て コ ア を生成 し ます (図 49)。
[OK] の ク リ ッ ク 後、 IP カ ス タ マ イ ズ GUI では IP 用の HDL お よ び制約フ ァ イ ルが生成 さ れあ ま
す。 数秒 し て生成プ ロ セ ス が完了す る と 、 Vivado GUI に制御が戻 り ます。
•
[Master interface] の [Read Data FIFO Depth] : 0 (none)
•
[Master interface] の [Write Data FIFO Depth] : 0 (none)
•
[Slave Interface] 0 お よ び 2 の [Read Data FIFO Depth] : 512 (BRAM)
•
[Slave Interface] 1 お よ び 3 の [Write Data FIFO Depth] : 512 (BRAM)
•
[Packet Read/Write] : (チ ェ ッ ク ボ ッ ク ス をオ フ )
こ のデザ イ ン はパケ ッ ト 読み出 し /書 き 込みを必要 と し ないため、 パケ ッ ト FIFO モー ド はデ
フ ォ ル ト 設定の無効の ま ま に し ます。
X-Ref Target - Figure 49
XAPP789_49_062912
図 49 : AXI イ ン タ ー コ ネ ク ト のパケ ッ ト 読み出 し /書き込み設定
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
40
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
デザイ ンへの Clocking Wizard の追加
AXI MIG コ アには内部に専用の ク ロ ッ ク 生成お よ び リ セ ッ ト ロ ジ ッ ク が含まれ る ため、Vivado ツール
の IP カ タ ロ グか ら Clocking Wizard に よ っ て生成す る 必要があ る ク ロ ッ ク は、75MHz のビデオ ク ロ ッ
ク のみです。 MIG ツールは、 ui_clk 信号に よ っ て 100MHz の ク ロ ッ ク 出力を提供 し 、 こ の ク ロ ッ ク は
Clocking Wizard への入力 と し て使用で き ます。
39. [FPGA Features and Design] → [Clocking] → [Clocking Wizard] を ク リ ッ ク し 、 Vivado ツールの
IP カ タ ロ グか ら Clocking Wizard カ ス タ マ イ ズ GUI を起動 し ます。
40. コ ン ポーネ ン ト に clock_generator と い う 名前を付け ます。
41. [Clocking Features/Input Clocks] タ ブを ク リ ッ ク し 、 次の と お り 設定 し ます (図 50)。
•
[Clocking Features] : Frequency synthesis、 Phase alignment (チ ェ ッ ク ボ ッ ク ス を オン )
•
[Jitter Optimization] : Balanced
•
[Input Clock information] ([primary] 入力 ク ロ ッ ク )
-
[Input Frequency (MHz)] : 100
-
[Input jitter] : 0.01
-
[Source] : No buffer
X-Ref Target - Figure 50
XAPP789_50_072012
図 50 : Clocking Wizard の [Clocking Features/Input Clocks] タ ブ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
41
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
42. [Output Clock Settings] タ ブ を ク リ ッ ク し 、 次の と お り 設定 し ます (図 51)。
•
[Output Clock] の [CLK_OUT1]
-
[Output Freq (MHz)] : 75
-
[Duty Cycle (%)] : 50
-
[Drives] : BUFG
X-Ref Target - Figure 51
XAPP789_51_072012
図 51 : Clocking Wizard の [Output Clock Settings] タ ブ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
42
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
43. [I/O and Feedback] タ ブを ク リ ッ ク し、 次の と お り 正し く 設定さ れてい る こ と を確認し ます (図 52)。
•
•
[Optional Inputs/Outputs]
-
RESET (チ ェ ッ ク ボ ッ ク ス をオン )
-
LOCKED (チ ェ ッ ク ボ ッ ク ス を オン )
-
INPUT_CLOCK_STOPPED (チ ェ ッ ク ボ ッ ク ス を オ フ )
-
POWER_DOWN (チ ェ ッ ク ボ ッ ク ス をオ フ )
-
CLKFBSTOPPED (チ ェ ッ ク ボ ッ ク ス をオ フ )
[Clock Feedback Source]
-
Automatic control on-chip ( ラ ジオ ボ タ ン をオン )
X-Ref Target - Figure 52
XAPP789_52_072012
図 52 : Clocking Wizard の [I/O and Feedback] タ ブ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
43
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
44. [MMCM_ADV Settings] タ ブ を ク リ ッ ク し 、 設定を確認 し ます (図 53)。
X-Ref Target - Figure 53
XAPP789_53_072012
図 53 : Clocking Wizard の [MMCM_ADV Settings] タ ブ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
44
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
45. [Clock Summary, Port Naming] タ ブ を ク リ ッ ク し 、 プ ラ イ マ リ 入力 ク ロ ッ ク ポー ト の名前が
CLK_IN1 であ る こ と を確認 し ます (図 54)。
X-Ref Target - Figure 54
XAPP789_54_072012
図 54 : Clocking Wizard の [Clock Summary, Port Naming] タ ブ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
45
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
46. [Core Summary] タ ブを ク リ ッ ク し 、 設定を確認 し ます。 ウ ィ ン ド ウ左側にあ る [Resource] タ ブ を
ク リ ッ ク し 、 こ の ク ロ ッ キ ン グ デザ イ ンに よ る リ ソ ース の使用率を確認 し ます (図 55)。
X-Ref Target - Figure 55
XAPP789_55_072012
図 55 : Clocking Wizard の [Core Summary] タ ブ
47. [OK] を ク リ ッ ク し て ウ ィ ザー ド を終了 し ます。
デザイ ンへの AXI VDMA の追加
こ こ では、デザ イ ンに 2 つの AXI_VDMA コ ア両方を生成する 方法について説明 し ます。VDMA_0 は、
master_example コ アか ら ビデオ デー タ を受信 し 、 DDR3 メ モ リ に格納 し ます。 VDMA_0 は、 ビデオ
デー タ を メ モ リ か ら 再び読み出 し 、 こ れを AXI4-Stream チ ャ ネルを介 し て VDMA_1 へ と ループ さ せ
ます。 VDMA_1 はデー タ を メ モ リ に書 き 込み、 再び こ れを読み出 し て表示のために slave_example に
供給 し ます。 こ のデザ イ ン では、 両方の AXI VDMA コ ア を ま っ た く 同 じ コ ン フ ィ ギ ュ レーシ ョ ンに設
定 し ます。
48. [IP Catalog] → [AXI Infrastructure] → [AXI Video Direct Memory Access] を ク リ ッ ク し 、 Vivado
ツールの IP カ タ ロ グか ら AXI_VDMA コ アの IP カ ス タ マ イ ズ GUI を起動 し ます。
VDMA は、 妥当なパフ ォーマ ン ス を引き 出せる 設定のビデオ フ レーム バ ッ フ ァ ー と し て機能す る
よ う に コ ン フ ィ ギ ュ レーシ ョ ン さ れます。 次の手順に従っ て AXI VDMA を コ ン フ ィ ギ ュ レーシ ョ
ン し ます (図 56)。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
46
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
49. VDMA の [Basic] タ ブで次の と お り 設定 し ます (図 56)。
•
[Component Name] : vdma
•
[Frame Stores] : 3
こ れに よ り 、 必要な フ レーム バ ッ フ ァ ー数が範囲内の最大数に設定 さ れ、 各バ ッ フ ァ ーに対応 し て
コ ン フ ィ ギ ュ レーシ ョ ン レ ジ ス タ が生成 さ れます。 こ のデザ イ ンの場合、 フ レーム バ ッ フ ァ ーが 3
つあればバ ッ フ ァ ー機能 と し ては十分であ り 、 チ ャ ネルの上書 き や古いデー タ の読み出 し を発生 さ
せずに、 MM2S チ ャ ネルに よ る データ 読み出 し お よ び S2MM チ ャ ネルに よ る デー タ 書 き 込みを実
行で き ます。
•
[Memory Map Data Width] お よ び [Stream Data Width] : 32
•
[Read Channel Options] と [Write Channel Options] 両方の [Line Buffer Depth] : 2048
VDMA の ラ イ ン バ ッ フ ァ ーが有効にな り 、 その深 さ が 2048 バ イ ト に設定 さ れます。 ラ イ ン バ ッ
フ ァ ーは、 AXI4-Stream と こ れに対応す る AXI4 イ ン タ ーフ ェ イ ス間にあ る 程度の柔軟性を与え、
VDMA か ら AXI4-Stream 上へのプ ッ シ ュ バ ッ ク を防止す る のに十分なバ ッ フ ァ ー機能が得 ら れ
ます。
X-Ref Target - Figure 56
XAPP789_56_072012
図 56 : AXI VDMA の [Basic] タ ブ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
47
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
50. VDMA の [Advanced] タ ブで次の と お り 設定 し 、 [OK] を ク リ ッ ク し て コ ア を生成 し ます (図 57)。
•
[Enable Scatter Gather Engine] : (チ ェ ッ ク ボ ッ ク ス を オ フ )
ス キ ャ ッ タ ー / ギ ャ ザー動作を有効にす る には、 通常、 バ ッ フ ァ ー記述子を提供お よ び維持す
る ためにプ ロ セ ッ サ ま たは追加の ス テー ト マシ ンが必要にな り ます。 こ のデザ イ ンでは、 簡素
な AXI4-Lite マ ス タ ーが、 AXI4-Lite ス レーブ イ ン タ ーフ ェ イ ス を介 し て VDMA を直接 コ ン
フ ィ ギ ュ レーシ ョ ン し ま す。 ビデオ転送パ ラ メ ー タ ーであ る hsize、 フ レ ーム遅延、 ス ト ラ イ
ド 、 開始ア ド レ ス の書 き 込み後、 vsize を書 き 込む と ビデオ転送が開始 さ れ ま す。 転送は、 フ
レーム同期信号に よ っ て、 各 イ ン タ ーフ ェ イ ス で上書 き や古いデー タ の読み出 し が発生 し ない
よ う に し なが ら 、 無期限に継続 し ます。
•
[Enable Asynchronous Mode] : (チ ェ ッ ク ボ ッ ク ス をオ フ )
こ のデザ イ ンの VDMA 機能は、 すべてが同 じ 75MHz ク ロ ッ ク に基づいて動作 し ます。 AXI
イ ン タ ー コ ネ ク ト では、 100MHz の DDR3 AXI イ ン タ ーフ ェ イ スへの非同期 ク ロ ッ ク ク ロ ッ
シ ン グが発生 し ま す。 VDMA を同期モー ド で動作 さ せ る こ と で、 VDMA の FPGA リ ソ ー ス
使用率を低減で き ます。
•
[Fsync Options] : Use Fsync for Read and Write Channels ( ド ロ ッ プダ ウ ン リ ス ト よ り 選択)
こ の機能に よ り 、 VDMA の フ レーム レー ト が、 接続先の ビデオ エン ド ポ イ ン ト IP に同期 し
ます。
•
[GenLock Mode]
-
[Read Channel Options] : Slave
-
[Write channel Options] : Master
読み出 し と 書 き 込みチ ャ ネル間の フ レーム レベルの同期を保ち、各 イ ン タ ーフ ェ イ ス でデー タ
の上書 き や古いデー タ の読み出 し が発生 し ない よ う に、 GenLock を使用 し ます。
•
[Read/Write Burst Size] : 128
VDMA 用に大 き な AXI4 バース ト サ イ ズ を設定 し ます。 128 と い う 設定に よ り 、 ビデオ デー
タ のオーバー ラ ンやア ン ダー ラ ン を防ぐ十分な帯域幅が確保 さ れます。バース ト サ イ ズ を大 き
く 設定す る こ と で DDR3 メ モ リ の使用率 も 改善 し ま す。 DDR3 メ モ リ には 512 ビ ッ ト 幅の
AXI4 ス レーブ イ ン タ ーフ ェ イ ス があ り 、効率を上げ る には長いバース ト が必要です。 ただ し 、
バース ト 長を大 き く す る と 、 シ ス テ ムのほかのマ ス タ ーの レ イ テ ン シが増加す る 可能性があ り
ます。 デザ イ ンにおけ る こ の よ う な ト レー ド オ フ については、 『AXI リ フ ァ レ ン ス ガ イ ド 』 [参
照 4] で検討 し てい ます。
•
[Allow Unaligned Transfers] : ([Read Channel Options]、 [Write Channel Options] 共にチ ェ ッ
ク ボ ッ ク ス を オ フ)
こ のデザ イ ンでは、 すべてのビデオ ラ イ ンお よ びフ レームが 32 ビ ッ ト の ワー ド 境界に揃え ら
れてい ます。 そのため、 VDMA 内のデー タ リ ア ラ イ ン メ ン ト エン ジ ンは不要です。 リ ア ラ イ
ン メ ン ト エン ジ ン を無効の ま ま に し てお く こ と で、 FPGA リ ソ ース の使用率を低減で き ます。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
48
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
X-Ref Target - Figure 57
XAPP789_57_072012
図 57 : AXI VDMA の [Advanced] タ ブ
プ ロ ジ ェ ク ト へのその他の既製モ ジ ュ ールの追加
設計目標を達成す る には、 Vivado ツールで生成 さ れ る 基本的な構築ブ ロ ッ ク 用の IP に加え て、 シ ス テ
ム内に次の機能を果たす、 カ ス タ マ イ ズ さ れた ロ ジ ッ ク が必要です。
•
DMA エン ジ ンの コ ン フ ィ ギ ュ レーシ ョ ン
•
テ ス ト ビデオ パ タ ーンの生成
•
HDMI/DVI デ ィ ス プ レ イ ポー ト へのパ タ ーン表示
次のセ ク シ ョ ンでは、 こ れ ら の追加モジ ュールの機能 と 、プ ロ ジ ェ ク ト への追加手順について説明し ます。
AXI VDMA の コ ン フ ィ ギ ュ レーシ ョ ン用 AXI4-Lite マス タ ー
各 AXI VDMA は、 起動時に 1280x720p ビデオ フ レーム用の循環フ レーム バ ッ フ ァ ー と し て動作す る
よ う に コ ン フ ィ ギ ュ レ ーシ ョ ンす る 必要が あ り ま す。 各 AXI VDMA には、 制御 レ ジ ス タ を コ ン フ ィ
ギ ュ レーシ ョ ンす る ための AXI4-Lite イ ン タ ーフ ェ イ ス があ り ます。 こ のシ ス テ ムでは、 2 つの簡単な
書 き 込み専用 AXI4-Lite マ ス タ ーを イ ン ス タ ン シエー ト し てい ま す。 各 AXI4-Lite マ ス タ ーの内部に
は、 AXI VDMA ブ ロ ッ ク を適切に コ ン フ ィ ギ ュ レーシ ョ ンす る ための、 固定 さ れた書き 込み コ マ ン ド
シーケ ン ス を実行す る Verilog ス テー ト マ シ ン があ り ま す。 AXI4-Lite マ ス タ ー IP ブ ロ ッ ク は、 AXI
VDMA 制御 イ ン タ ーフ ェ イ ス ご と に個別に直接接続 さ れます。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
49
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
AXI4-Stream テ ス ト パ タ ーン ジ ェ ネ レー タ ー
AXI VDMA 0 を駆動す る AXI4-Stream の ソ ース は、タ イ ムベース ジ ェ ネ レー タ ー ( ビデオ フ レーム同
期信号を生成) を備えた ビデオ テ ス ト パ タ ーン ジ ェ ネ レー タ ー (TPG) です。 TPG ブ ロ ッ ク は固定ネ ッ
ト リ ス ト と し て提供 さ れ ま す。 こ の固定ネ ッ ト リ ス ト は、 AXI4-Stream プ ロ ト コ ル を使用 し て、 AXI
VDMA 0 に 1280x720p、 60Hz の ビデオ パ タ ーン を送信す る よ う に コ ン フ ィ ギ ュ レーシ ョ ン さ れてい
ます。
AXI4-Stream DVI/HDMI デ ィ ス プ レ イ コ ン ト ロー ラ ー
AXI VDMA 1 は、 AXI4-Stream 出力を、 タ イ ムベース ジ ェ ネ レー タ ー ( ビデオ フ レーム同期信号を生
成) を備えた HDMI/DVI デ ィ ス プ レ イ コ ン ト ロ ー ラ ーに送信 し ます。DVI/HDMI デ ィ ス プ レ イ コ ン ト
ロ ー ラ ー ブ ロ ッ ク は固定ネ ッ ト リ ス ト と し て提供 さ れ、 KC705 ボー ド 上の ビデオ チ ッ プ を コ ン フ ィ
ギ ュ レーシ ョ ンす る ための IIC ド ラ イ バー も 含みます。 こ の固定ネ ッ ト リ ス ト は、 AXI VDMA 1 か ら
の 1280x720p、 60Hz の AXI4-Stream プ ロ ト コ ル ビデオ信号を、 KC705 ボー ド 上で表示で き る よ う に
コ ン フ ィ ギ ュ レーシ ョ ン さ れてい ます。
表 1 に、 こ れ ら のモジ ュ ールに関連す る フ ァ イ ルは、 <design_dir>/src デ ィ レ ク ト リ に格納 さ れて
い ます。 フ ァ イ ル名 と それ ら の機能の一覧を示 し ます。
表 1 : カ ス タ ム モ ジ ュ ールのフ ァ イル名
フ ァ イル名
モ ジ ュ ール
フ ァ イルの タ イ プ
axi_lite_master_vdma_0.v
AXI VDMA の コ ン フ ィ
Verilog イ ンプ リ メ ン テーシ ョ ン ソ ー
ギ ュ レーシ ョ ン用
AXI4-Lite マ ス タ ー
ス フ ァ イル
AXI VDMA の コ ン フ ィ
Verilog イ ンプ リ メ ン テーシ ョ ン ソ ー
ギ ュ レーシ ョ ン用
AXI4-Lite マ ス タ ー
ス フ ァ イル
AXI4-Stream テ ス ト パ
ネ ッ ト リ ス ト イ ンプ リ メ ン テーシ ョ ン
axi_lite_master_vdma_1.v
axis_master_example.ngc
タ ーン ジ ェ ネ レー タ ー
axis_master_example.v
AXI4-Stream テ ス ト パ
タ ーン ジ ェ ネ レー タ ー
axis_slave_example.ngc
ネ ッ ト リ ス ト ベース の HDL シ ミ ュ
レーシ ョ ン モデル と IP ブ ロ ッ ク の
HDL ブ ラ ッ ク ボ ッ ク ス定義
AXI4-Stream DVI デ ィ ス ネ ッ ト リ ス ト イ ンプ リ メ ン テーシ ョ ン
プレ イ コ ン ト ローラー
axis_slave_example.v
AXI4-Stream DVI デ ィ ス ネ ッ ト リ ス ト ベース の HDL シ ミ ュ
プレ イ コ ン ト ローラー
レーシ ョ ン モデル と IP ブ ロ ッ ク の
HDL ブ ラ ッ ク ボ ッ ク ス定義
表 1 に示 し た フ ァ イ ルを、 次の手順に従っ て Vivado ツールのプ ロ ジ ェ ク ト に追加 し ます。
51. [Project Manager] → [Add Source] → [Add or Create Design Sources] → [Add Files] を ク リ ッ ク し
ます。
52. [Add Source Files] ダ イ ア ロ グ ボ ッ ク ス で <design_dir>/src/ デ ィ レ ク ト リ を参照 し 、 表 1 に
示 し た フ ァ イ ルを追加 し ます (図 58)。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
50
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
X-Ref Target - Figure 58
XAPP789_58_072012
図 58 : [Add Source Files] ダ イ ア ログ ボ ッ ク ス
53. [OK] を ク リ ッ ク し ます。
54. 図 59 の と お り に こ れ ら のフ ァ イ ルを関連付け、 [Finish] を ク リ ッ ク し ます。
X-Ref Target - Figure 59
XAPP789_59_072012
図 59 : 新 し い ソ ース フ ァ イルの関連付けの選択
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
51
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
モ ジ ュ ールのイ ン ス タ ン シ エーシ ョ ン と シ ス テム接続
必要なシ ス テ ム モジ ュ ールをプ ロ ジ ェ ク ト に追加 し た ら 、 それ ら を イ ン ス タ ン シエー ト し て最上位で相
互に接続す る 必要があ り ます。
55. [Project Manager] の [Sources] ビ ュ ーにあ る [IP Sources] タ ブで [clock_generator IP] を右 ク リ ッ
ク し 、 [Generate] を ク リ ッ ク し ます (図 60)。
X-Ref Target - Figure 60
XAPP789_60_072012
図 60 : IP ブ ロ ッ ク イ ン ス タ ン シ エーシ ョ ン テ ン プ レー ト の生成
56. [Generate] ダ イ ア ロ グ ボ ッ ク ス の [Instantiation Template] を オンに し 、 [OK] を ク リ ッ ク し ます
(図 61)。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
52
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
X-Ref Target - Figure 61
XAPP789_61_072012
図 61 : [Generate] ダ イ ア ログ ボ ッ ク ス
57. [Sources] ビ ュ ーの [IP Sources] タ ブで [clock_generator] → [Instantiation Template]
→ [clock_generator.veo] フ ァ イ ルを開き 、 イ ン ス タ ン シエーシ ョ ン テ ンプ レー ト を表示 し
ます (図 62)。
X-Ref Target - Figure 62
XAPP789_62_072012
図 62 : イ ン ス タ ン シ エーシ ョ ン テ ン プ レー ト の表示
58. その他すべての IP コ アお よ びサブモジ ュ ールについて も 手順 55 ~ 手順 57 を繰 り 返 し 、 イ ン ス タ
ン シエーシ ョ ン テ ンプ レー ト を生成 し ます。
59. プ ロ ジ ェ ク ト の最上位モジ ュ ール と し て、 新たに system.v と い う フ ァ イ ルを作成 し ます。
60. 新規作成 し た IP イ ン ス タ ン シエーシ ョ ン テ ンプ レー ト を system.v に コ ピー ア ン ド ペース ト し 、
それ ら のポー ト を接続 し ます。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
53
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
注記 : 時間を節約す る ために、完成済みの最上位 sysytem.v フ ァ イ ルを追加 し てサブモジ ュ ール
すべて を統合 し ます。
61. [Project Manager] → [Add Source] → [Add or Create Design Sources] → [Add Files] を ク リ ッ ク し
ます。
62. [Add Source Files] ダ イ ア ロ グ ボ ッ ク ス で <design_dir>/src/ デ ィ レ ク ト リ を参照 し 、
system.v を追加 し て [OK] を ク リ ッ ク し ます。
63. system.v を work ラ イ ブ ラ リ に関連付け、 [HDL Source fro] を合成お よ びシ ミ ュ レーシ ョ ン用に
設定 し ます。
リセッ ト
MIG DDR3 コ ン ト ロ ー ラ ーは専用の ク ロ ッ ク 生成お よ び リ セ ッ ト ロ ジ ッ ク を備え、 ui_clk_sync_rst を
介 し て リ セ ッ ト 信号を出力 し ます。 こ の信号はシ ス テ ムのほかの部分を リ セ ッ ト す る ために使用で き ま
す。 ui_clk_sync_rst は clock_generator イ ン ス タ ン ス の リ セ ッ ト 入力に接続 し ます。 LOCKED 出力は、
動作前に ク ロ ッ ク が安定す る よ う に AXI イ ン タ ー コ ネ ク ト コ ア を リ セ ッ ト す る ために使用 し ます。 次
に AXI イ ン タ ー コ ネ ク ト は AXI4-Stream サンプル コ ア をは じ め と す る 75MHz 信号で ク ロ ッ ク 駆動 さ
れ る 、 ほかのすべての コ アに対 し て同期 リ セ ッ ト 信号を駆動 し ます。
注記 : 完成済みの <design_dir>/src/system.v フ ァ イ ルには、こ れ ら の リ セ ッ ト 接続がすでに イ ン
プ リ メ ン ト さ れてい ます。
ピ ン制約
こ こ では system.xdc フ ァ イ ルを作成お よ び編集 し 、 新たに追加 し た最上位の I/O ポー ト に対 し て必
要 と な る I/O 制約を追加 し ます。
64. [Layout] → [I/O Planning] を ク リ ッ ク し て [I/O Planning] ビ ュ ーに移動 し ます (図 63)。こ のビ ュ ー
は、カ ス タ ム ボー ド 内の非 DDR3 関連 I/O ピ ンに ロ ケーシ ョ ン制約を設定す る 際に使用 し ます。今
回は KC705 ボー ド を使用す る ため、 DDR I/O ピ ンの位置は MIG ツールであ ら か じ め設定 さ れて
い ます。 ただ し 、 時間を節約す る ために、 プ ロ ジ ェ ク ト に追加 さ れた制約フ ァ イ ルに XDC コ マ ン
ド を用いて情報を入力す る こ と も で き ます。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
54
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
X-Ref Target - Figure 63
XAPP789_63_072012
図 63 : [I/O Planning] レ イ アウ ト
注記 : KC705 ボー ド に必要な I/O 制約を含む、 完成済みの
<design_dir>/src/xdc/system.xdc フ ァ イ ル を 使用 し ま す。 Vivado ツ ールの [Add Sources] →
[Add or Create Constraints] → [Add Files] を ク リ ッ ク し 、 こ の system.xdc フ ァ イ ルを プ ロ ジ ェ ク ト
に追加 し ます (図 64)。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
55
Vivado ツールの新規プ ロ ジ ェ ク ト から の AXI MPMC デザイ ンの作成
X-Ref Target - Figure 64
XAPP789_64_072012
図 64 : system.xdc へのピ ン制約の追加
65. タ イ ミ ン グ制約を設定 し ます。
こ のデザ イ ン の入力 ク ロ ッ ク は 1 つのみです。 内部 ク ロ ッ ク はすべて、 こ の入力 ク ロ ッ ク か ら
MMCM を介 し て派生 さ れ ます。 入力 ク ロ ッ ク の タ イ ミ ン グ制約は MIG コ アで生成 さ れ、 生成 さ
れた ク ロ ッ ク ま たは伝搬 さ れ る ク ロ ッ ク は、 すべて MMCM に よ っ て処理 さ れます。 XDC コ マ ン
ド の set_false_path -through [get_nets DDRX_PHY_INIT_DONE] を除き 、手作業で追加
す る 必要があ る タ イ ミ ン グ制約はあ り ません。 こ の コ マ ン ド は、 KC705 ボー ド の GPIO[0] LED を
駆動す る ネ ッ ト に対 し て タ イ ミ ン グ チ ェ ッ ク を無効にす る ために使用 し ます。こ の LED は、DDR3
メ モ リ コ ン ト ロ ー ラ ーが正常に初期化 さ れた こ と を示す も のです。
66. 以上でデザ イ ンは完成です。 デザ イ ン を イ ンプ リ メ ン ト し て ビ ッ ト ス ト リ ーム を生成 し 、 ボー ド 上
で実行す る こ と がで き ます。ビ ッ ト ス ト リ ーム を生成 し てボー ド にダ ウ ン ロ ー ド す る 方法は、手順 6
を参照 し て く だ さ い。
シ ミ ュ レーシ ョ ン テ ス ト ベン チ
こ のデザ イ ンは、 シ ミ ュ レーシ ョ ン をサポー ト し てい ません。 長い フ レーム時間を伴 う ビデオ デザ イ ン
であ る ため、 複数のビデオ フ レームにわた る シ ミ ュ レーシ ョ ンは現実的ではない可能性があ り ます。
等価 XPS デザイ ン
リ フ ァ レ ン ス デザ イ ンの ZIP フ ァ イ ルには、参照用に Vivado ツールのエンベデ ッ ド ソ ース と し て同等
の Xilinx Platform Studio (XPS) デザ イ ンが含まれてい ます。XPS サブモジ ュ ール ツール フ ロ ーに よ る
Vivado ツール プ ロ ジ ェ ク ト は、 <design_dir>/vivado_xps にあ り ます。
こ れは、 Vivado ツールの HDL フ ロ ーに よ る デザ イ ン と 同 じ IP お よ び全体的な機能を備え てい ますが、
ビ ッ ト ス ト リ ーム を構築で き る 、XPS 用に完成 さ れたデザ イ ン と し て提供 さ れてい ます。図 65 に、XPS
デザ イ ンのブ ロ ッ ク 図を示 し ます。 こ のデザ イ ンが Vivado ツールの HDL デザ イ ン と 若干異な る のは、
XPS ネ イ テ ィ ブの proc_sys_reset ブ ロ ッ ク と clock_generator ブ ロ ッ ク を使用 し てい る 点、 お
よ び AXI4-Lite 接続用に よ り 多 く の AXI イ ン タ ー コ ネ ク ト ブ ロ ッ ク を使用 し てい る 点です。 AXI 接続
を XPS でモデル化す る 場合、 AXI4-Lite マ ス タ ーを各 VDMA に接続す る AXI イ ン タ ー コ ネ ク ト ブ
ロ ッ ク が必要ですが、 こ れ ら のブ ロ ッ ク の動作は基本的に受動的です。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
56
リ フ ァ レ ン ス デザイ ン
X-Ref Target - Figure 65
AXI VDMA 0
AXI TPG
AXI Interconnect (4x1)
AXI4-Stream Slave
AXI4-Stream Master
AXI4 Master (MM2S)
AXI4 Slave 0 (Read Only)
AXI4-Stream Master
AXI4 Master (S2MM)
AXI Interconnect (1x1)
VDMA 0 Config
AXI4 Slave
AXI4-Lite Master
AXI4 Slave 1 (Write Only)
AXI4-Lite Slave
AXI4 Master
AXI MIG
AXI VDMA 1
AXI4-Stream Slave
AXI4 Master (MM2S)
AXI4 Master (S2MM)
AXI4-Stream Master
HDMI Controller
AXI4-Stream Slave
HDMI
AXI4 Master
AXI4-Lite Master
DDR3
Memory
AXI4 Slave 2 (Read Only)
AXI4 Slave 3 (Write Only)
Clock
Generators
AXI4-Lite Slave
VDMA 1 Config
AXI4
Slave
AXI Interconnect (1x1)
AXI4 Slave
AXI4 Master
Proc_Sys_Reset
X789_65_072012
図 65 : AXI MPMC シ ス テムの概略ブ ロ ッ ク 図 (EDK)
Vivado ツールか ら 起動 し た XPS ツールを使用す る と 、 通常の構築フ ロ ーで XPS デザ イ ン を再構築で
き ます。 XPS ツールの詳細は、 『EDK コ ン セプ ト 、 ツール、 テ ク ニ ッ ク : 効率的なエンベデ ッ ド シ ス テ
ム構築を サポー ト す る ハ ンデ ィ ガ イ ド 』 [参照 6] を参照 し て く だ さ い。 参照用 と し て、 ISE ツール フ
ロ ー の XPS
ス タ ン ド ア ローン
フ ロ ー で 動作す る
EDK プ ロ ジ ェ ク ト
フ ァ イ ルが
<design_dir>/edk/system.xmp に格納 さ れてい ます。
リ フ ァ レ ン ス デザ
イン
こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン ス デザ イ ン フ ァ イ ルは、 次のサ イ ト か ら ダ ウ ン ロ ー ド で き
ます。
https://secure.xilinx.com/webreg/clickthrough.do?cid=191117
表 2 に、 リ フ ァ レ ン ス デザ イ ンの詳細を示 し ます。
表 2 : リ フ ァ レ ン ス デザイ ンの詳細
パラ メ ー タ ー
説明
全般
開発元
ザイ リ ン ク ス
タ ーゲ ッ ト デバ イ ス ( ス テ ッ ピ ン グ レベル、 ES、 製造、 Kintex-7 FPGA
ス ピー ド グ レー ド )
ソ ース コ ー ド の提供
あ り ( ネ ッ ト リ ス ト で提供 さ れ る 2 ブ ロ ッ
ク を除 く )
ソ ース コ ー ド の形式
Verilog
既存の リ フ ァ レ ン ス デザ イ ン、 ア プ リ ケーシ ョ ン ノ ー Vivado ツールに基づ く HDL フ ロ ーお よ び
ト 、 サー ド パーテ ィ 、 Vivado ツ ールか ら デザ イ ン への XPS フ ロ ー向け に提供 さ れ た リ フ ァ レ ン
コ ー ド /IP の使用
ス デザ イ ン
シ ミ ュ レーシ ョ ン
機能シ ミ ュ レーシ ョ ンの実施
N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず)
タ イ ミ ン グ シ ミ ュ レーシ ョ ンの実施
N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず)
機能お よ び タ イ ミ ン グ シ ミ ュ レーシ ョ ン向けに提供 さ れ N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず)
た テ ス ト ベンチ
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
57
リ フ ァ レ ン ス デザイ ン
表 2 : リ フ ァ レ ン ス デザイ ンの詳細 (続き )
パラ メ ー タ ー
説明
テ ス ト ベンチの形式
N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず)
シ ミ ュ レー タ の ツール と バージ ョ ン
N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず)
SPICE/IBIS シ ミ ュ レーシ ョ ンの実施
N/A ( シ ミ ュ レーシ ョ ンはサポー ト せず)
イ ン プ リ メ ン テーシ ョ ン
合成ツール と バージ ョ ン
Vivado Synthesis 2012.2
イ ンプ リ メ ン テーシ ョ ン ツール と バージ ョ ン
Vivado Design Suite 2012.2
ス タ テ ィ ッ ク タ イ ミ ン グ解析の実施
あり
ハー ド ウ ェ ア検証
ハー ド ウ ェ ア検証の実施
あり
検証に使用 し たハー ド ウ ェ ア プ ラ ッ ト フ ォーム
KC705 ボー ド Rev D
表 3 に、 シ ス テ ムの リ ソ ース使用率 と ク ロ ッ ク 周波数を ま と め ま し た。 シ ス テ ムは KC705 ボー ド 上の
XC7K325TFFG900-2 FPGA の リ ソ ースお よ びス ピー ド グ レー ド に合わせて設計 さ れてい ます。こ れ以
外の FPGA デバ イ ス ま たは ス ピー ド グ レー ド に対する 特性評価は実施 し てい ません。
表 3 : リ ソ ース使用率
パラ メ ー タ ー
仕様/詳細
最大周波数 ( ス ピー ド グ レー ド ご と )
-2
デバ イ ス使用率
ス ラ イ ス数
100MHz (AXI)、
400MHz ( メ モ リ ク ロ ッ ク )
11,281
LUT
27,553
レジス タ
31,085
GCLK
4
バ ッ フ ァ ー数
ブ ロ ッ ク RAM 数 44
HDL 言語のサポー ト
Verilog
DDR3 メ モ リ コ ン フ ィ ギ ュ レーシ ョ ン
ビデオ ク ロ ッ ク 周波数
64 ビ ッ ト 、 400MHz DDR3 SDRAM
75MHz
AXI イ ン タ ー コ ネ ク ト お よ び MIG の メ イ ン ク ロ ッ キ ン グ
100MHz
AXI MPMC イ ン タ ー コ ネ ク ト と MIG ツ ールは中程度~高い性能 を 引 き 出せ る よ う に コ ン フ ィ ギ ュ
レーシ ョ ン さ れてい ます。 シ ス テ ムはエ リ アではな く 、 スループ ッ ト に対 し て最適化 さ れてい ます。 シ
ス テ ムの AXI MPMC の部分は、 2 つの AXI VDMA マ ス タ ーでは消費 し 切れない スループ ッ ト を提供
し ます。 し たが っ て、 残 り の ス ループ ッ ト は、 AXI4 マ ス タ ーを増設す る な ど、 シ ス テ ム の拡張に使用
で き ます。 AXI MPMC を エ リ ア、 タ イ ミ ン グ、 ス ループ ッ ト 、 レ イ テ ン シ、 使用 し やす さ な ど、 さ ま
ざ ま な ト レー ド オ フ に対 し て最適化す る 方法の詳細は、 『AXI リ フ ァ レ ン ス ガ イ ド 』 [参照 4] を参照 し
て く だ さ い。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
58
リ フ ァ レ ン ス デザイ ン
図 1 の各 IP コ アのデバ イ ス リ ソ ース使用率の詳細を 表 4 に示 し ます。
注記 : 表 4 に示 し た内容は、 Vivado ツ ールで [Open Implemented Design] を ク リ ッ ク し 、 [Tools] →
[Report Utilization] を ク リ ッ ク する こ と で得 ら れた情報です (図 66)。
表 4 : モ ジ ュ ール レ ベルの リ ソ ース使用率
IP コ ア
イ ン ス タ ン ス名
スラ イス
LUT 数
スラ イス
レ ジス タ 数
ブロ ッ ク
RAM 数
MIG
DDR3_SDRAM
12,898
7,379
0
AXI Interconnect
axi4_0
10,790
15,493
34
VDMA 0 Config
axi_lite_master_vdma_0
38
12
0
VDMA 1 Config
axi_lite_master_vdma_1
30
12
0
AXI VDMA 0
axi_vdma_0
2,532
3,127
4
AXI VMDA 1
axi_vdma_1
2,475
3,099
4
AXI TPG
axis_master_example_0
1,097
1,221
2
DVI Controller
axis_slave_example_0
594
742
0
Clock Generator
clock_generator_1
0
0
0
X-Ref Target - Figure 66
XAPP789_66_072012
図 66 : リ ソ ース使用率レポー ト の生成
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
59
ま とめ
レ ポー ト では、 リ ソ ース の使用率が リ ソ ース タ イ プお よ びデザ イ ン階層ご と に表示 さ れます (図 67)。
X-Ref Target - Figure 67
XAPP789_67_072012
図 67 : モ ジ ュ ール レ ベルの リ ソ ース使用率の取得
使用率の情報は、 モジ ュ ール間の境界を越えた ロ ジ ッ ク 最適化 と ロ ジ ッ ク 共有のため、 概算値 と な っ て
い ます。
ま とめ
こ のアプ リ ケーシ ョ ン ノ ー ト では、Vivado ツールを用いて高性能 AXI MPMC ( メ モ リ コ ン ト ロ ー ラ ー
お よ び AXI イ ン タ ー コ ネ ク ト ) シ ス テ ム を構築す る 手順を解説 し ま し た。 ハー ド ウ ェ ア上で実際に動作
す る シ ス テ ム を作成す る ために必要な手順 と 設計上の検討事項を示 し ま し た。 AXI MPMC シ ス テ ムは、
ビ デオ フ レ ーム を DDR3 メ モ リ を介 し て、 テ ス ト パ タ ーン ジ ェ ネ レ ー タ ー IP ブ ロ ッ ク か ら HDMI
デ ィ ス プ レ イ IP ブ ロ ッ ク ま で転送す る AXI VDMA IP コ アに よ っ て動作 し ます。 こ のシ ス テ ムは新規
デザ イ ンのテ ンプ レー ト や ト レーニ ン グ用 と し て使用で き ます。
参考資料
こ の文書では、 次の参考資料を使用 し てい ます。
1.
2.
3.
Vivado Design Suite 2012.2 の資料 http://japan.xilinx.com/products/design-tools/vivado/index.htm
Advanced Microcontroller Bus Architecture (AMBA) ARM AXI4 仕様 http://www.amba.com
Kintex-7 FPGA KC705 評価キ ッ ト
http://japan.xilinx.com/products/boards-and-kits/EK-K7-KC705-G.htm
4.
5.
6.
UG761 : 『AXI リ フ ァ レ ン ス ガ イ ド 』
DS768 : 『LogiCORE IP AXI Interconnect デー タ シー ト 』
UG683 : 『EDK コ ンセプ ト 、 ツール、 テ ク ニ ッ ク : 効率的なエンベデ ッ ド シ ス テ ム構築をサポー
7.
UG586 : 『7 シ リ ーズ FPGA メ モ リ イ ン タ ーフ ェ イ ス ソ リ ュ ーシ ョ ン ユーザー ガ イ ド 』
ト す る ハンデ ィ ガ イ ド 』
改訂履歴
次の表に、 こ の文書の改訂履歴を示 し ます。
日付
バージ ョ ン
2012 年 7 月 31 日
1.0
XAPP789 (v1.0) 2012 年 7 月 31 日
内容
初版 リ リ ース
japan.xilinx.com
60
Notice of Disclaimer
Notice of
Disclaimer
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.
Automotive
Applications
Disclaimer
XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN
ANY APPLICATION REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS APPLICATIONS
RELATED TO: (I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESS
THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF
SOFTWARE IN THE XILINX DEVICE TO IMPLEMENT THE REDUNDANCY) AND A WARNING
SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD TO DEATH
OR PERSONAL INJURY. CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE
OF XILINX PRODUCTS IN SUCH APPLICATIONS.
本資料は英語版 (v1.0) を翻訳 し た も ので、 内容に相違が生 じ る 場合には原文を優先 し ます。
資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。
日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。
こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、
[email protected] ま でお知 ら せ く だ さ い。 いただ き ま し た ご意見を参考に早急に対応 さ
せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受け付けてお り ません。 あ ら か じ め
ご了承 く だ さ い。
XAPP789 (v1.0) 2012 年 7 月 31 日
japan.xilinx.com
61
Fly UP