Comments
Description
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