• 検索結果がありません。

ザイリンクス XAPP Vivado IP インテグレーターへのカスタム AXI IP のパッケージング、アプリケーション ノート

N/A
N/A
Protected

Academic year: 2021

シェア "ザイリンクス XAPP Vivado IP インテグレーターへのカスタム AXI IP のパッケージング、アプリケーション ノート"

Copied!
35
0
0

読み込み中.... (全文を見る)

全文

(1)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 1 © Copyright 2013 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners.

概要

こ のアプ リ ケーシ ョ ン ノ ー ト では、Vivado™ デザ イ ンツールを十分に活用で き る よ う IP イ ン テ グ レー タ ーにカ ス タ ム AXI IP を組み込む方法について説明 し ます。 こ こ では、AXI ベース の 6 種類の IP コ アについて解説 し 、 実際に Vivado 対応 IP と し て こ れ ら を組み込む手順を示 し ます。 ま た、IP イ ン テ グ レー タ ーが備え る 自動化機能の利用方法について も 詳 し く 述べてい ます。 こ のアプ リ ケーシ ョ ン ノ ー ト に基づいて、AXI シ ス テ ム用のカ ス タ ム IP の作成を開始で き ます。 次の 6 種類の IP について説明 し ます。 • AXI4 マ ス タ ー • AXI4 ス レーブ • AXI4-Lite マ ス タ ー • AXI4-Lite ス レーブ • AXI4-Stream マ ス タ ー • AXI4-Stream ス レーブ

は じ めに

AXI は、AMBA (Advanced Microcontroller Bus Architecture) 4 仕様[参照2]に基づいて標準化 さ れた

IP イ ン タ ーフ ェ イ スプ ロ ト コ ルです。 リ フ ァ レ ン スデザ イ ン では、AXI4 仕様に記載 さ れてい る AXI4、 AXI4-Lite、 お よ び AXI4-Stream の各 イ ン タ ーフ ェ イ ス を使用 し てい ます。 こ れ ら の イ ン タ ーフ ェ イ ス は、 シ ス テ ム を構築す る ための共通 し た IP イ ン タ ーフ ェ イ スプ ロ ト コ ルの フ レーム ワ ー ク を提供 し ま す。 IP イ ン テ グ レー タ ー内でカ ス タ ム IP を使用す る には、 その IP を組み込む必要があ り ます。Vivado デ ザ イ ンツールチ ェ ーン の一部 と し て簡単に IP を組み込む こ と がで き る よ う に、Vivado はそのシ ン プ ルな方法を提供 し てい ます。 カ ス タ ム AXI IP の IP ポー ト 名が AXI4 仕様に従っ ていれば、Vivado は 自動的に AXI イ ン タ ーフ ェ イ ス を推論で き ます。 Vivado は複数の方法で IP を組み込む こ と がで き ますが、 こ のアプ リ ケーシ ョ ン ノ ー ト では次の手順に 従い ます。 1. 組み込む IP ご と に個別の Vivado プ ロ ジ ェ ク ト を作成 し ます。 2. 共通 し たポー ト 命名規則を使用す る 、 既存の RTL を イ ン ポー ト し ます。 3. Package IP Wizard を実行 し 、 追加の メ タ デー タ お よ びパ ラ メ ー タ ーを関連付け ます。 4. 組み込んだ IP を .zip フ ァ イ ルに圧縮 し 、 リ ポジ ト リ デ ィ レ ク ト リ に保存 し ます。 5. 組み込んだ IP を使用す る 、 シ ス テ ム レベルのプ ロ ジ ェ ク ト を作成 し ます。 6. リ ポジ ト リ デ ィ レ ク ト リ をプ ロ ジ ェ ク ト プ リ フ ァ レ ン ス に追加 し 、IP を リ ポジ ト リ に追加 し ます。 7. IP イ ン テ グ レー タ ーのブ ロ ッ ク 図を作成 し 、 組み込んだ IP のシ ス テ ムへの追加 と 接続を行い、 シ ス テ ムのシ ミ ュ レーシ ョ ン を実行 し ます。 XAPP1168 (v1.0) 2013 年 6 月 1 日

Vivado IP

イ ン テグ レー タ ーへのカ ス タ ム

AXI IP

の組み込み

(2)

リ フ ァ レ ン ス

デザイ ンの内容

付属の ZIP フ ァ イ ルには、 次が含まれます。 https://secure.xilinx.com/webreg/clickthrough.do?cid=338300 • プ ロ ジ ェ ク ト の Tcl : source.tcl こ の Vivado Tcl フ ァ イ ルは、 アプ リ ケーシ ョ ン ノ ー ト 通 し て使用 さ れ ます。 こ の フ ァ イ ルを使用 す る には、 次の手順に従い ます。 a. Vivado ツールを開 き ます。 b. Vivado Tcl コ ン ソ ールで、 こ の フ ァ イ ルを展開 し たデ ィ レ ク ト リ に移動 し ます。 例 : cd C:/designs/xapp1168

c. Vivado Tcl コ ン ソ ールで、 source source.tclと 入力 し ます。

AXI4-Lite マ ス タ ー : hdl/verilog/axi_lite_master.v こ のサンプル AXI4-Lite マ ス タ ーは、固定 さ れたデー タ 幅 (32 ビ ッ ト) と 固定 さ れた ア ド レ ス幅 (32 ビ ッ ト) を 持つ AXI4-Lite イ ン タ ー フ ェ イ ス を 1 つ備 え て い ま す。 こ の IP は、 パ ラ メ ー タ ー (C_TRANSACTIONS_NUM) で指定 さ れた数の ト ラ ンザ ク シ ョ ン を発行す る よ う に設計 さ れてい ます。 リ セ ッ ト 信号がデアサー ト さ れ る と 、IP はア ド レ ス 0x4000 か ら 書 き 込みを開始 し 、 順次ア ド レ ス への書 き 込み を C_TRANSACTIONS_NUM ビ ー ト 分続け ま す。 書 き 込みが完了す る と 、 WCOMPLETE 信号がアサー ト さ れます。 次に、 コ アはア ド レ ス 0x4000 か ら 始ま る 読み出 し を発 行 し 、 順次ア ド レ ス か ら の読み出 し を C_TRANSACTIONS_NUM ビー ト 分続け ます。 読み出 し 実 行中に、 同 じ ア ド レ ス に書 き 込まれた値を使用 し て読み出 さ れたデー タ を確認 し ます。 こ のプ ロ セ ス が完了す る と 、 RCOMPLETE信号がアサー ト さ れます。

AXI4-Lite マ ス タ ーイ ン タ ーフ ェ イ ス のポー ト 名は、 マ ス タ ー AXI ポー ト を示すM_AXI_で始ま り ます。 • AXI4-Lite ス レーブ : hdl/verilog/axi_lite_slave.v こ のサ ン プル AXI4-Lite ス レ ーブは、 固定 さ れたデー タ 幅 (32 ビ ッ ト) と 固定 さ れた ア ド レ ス 幅 (5 ビ ッ ト) を持つ AXI4-Lite イ ン タ ーフ ェ イ ス を 1 つ備え てい ます。 こ の IP は 32 バ イ ト のみの メ モ リ ア ド レ ス空間を持ち、 ほかのすべてのア ク セ ス はエ イ リ ア ス を使用 し て同 じ 32 バ イ ト を参照 し ます。32 バ イ ト の う ち、 下位 16 バ イ ト だけに メ モ リ エ レ メ ン ト が含まれ ます。 ア ド レ ス 0x10 ~ 0x1F へのア ク セ ス は無効です。 こ のサンプルス レーブは、AW チ ャ ネル と W チ ャ ネルの両方が適切な VALID 信号を示すま で、い ずれのチ ャ ネル も 受け入れ ません。 書 き 込みの実行後、 コ アは B チ ャ ネルハン ド シ ェ イ ク を発行 し ます。

AXI4-Lite ス レーブ イ ン タ ーフ ェ イ ス のポー ト 名は、 ス レーブ AXI ポー ト を示すS_AXI_で始ま り ます。

(3)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 3 • AXI4 ス レーブ : hdl/verilog/axi_slave.v こ のサンプル AXI4 ス レーブは、 固定 さ れた ア ド レ ス幅 (14 ビ ッ ト) と 64 ビ ッ ト ま たは 32 ビ ッ ト にプ ロ グ ラ ム可能なデー タ 幅を持つ AXI4 イ ン タ ーフ ェ イ ス を 1 つ備えてい ます。 こ の IP は 16K バ イ ト の メ モ リ ア ド レ ス空間を持ち、その う ち 2K バ イ ト (64 ビ ッ ト の場合) ま たは 1K バ イ ト (32 ビ ッ ト の場合) だけに メ モ リ エ レ メ ン ト が含まれます。IP のすべての メ モ リ ア ク セ ス はエ イ リ ア ス を使用 し て こ の メ モ リ エ レ メ ン ト を参照 し ます。 こ のサンプルス レーブは、AW チ ャ ネル と W チ ャ ネルの両方が適切なVALID信号を示すま で、 い ずれのチ ャ ネル も 受け入れ ません。 書 き 込みの実行後、 コ アは B チ ャ ネルハン ド シ ェ イ ク を発行 し ます。

AXI4 ス レーブイ ン タ ーフ ェ イ ス のポー ト 名は、ス レーブ AXI ポー ト を示すS_AXI_で始ま り ます。

AXI4-Stream マ ス タ ー : hdl/verilog/axi_stream_master.v こ のサンプル AXI4-Stream マ ス タ ーは、1 ~ 64 バ イ ト の範囲でプ ロ グ ラ ム可能なデー タ 幅を持つ AXI4-Stream イ ン タ ーフ ェ イ ス を 1 つ備えてい ます。IP は、 長 さ C_PACKET_LENGTH の ト ラ ン ザ ク シ ョ ン を続けて発行す る よ う に設計 さ れてい ます。 リ セ ッ ト 信号がデアサー ト さ れ る と 、IP は、 各 ト ラ ンザ ク シ ョ ンの長 さ が C_PACKET_LENGTH ビー ト の ト ラ ンザ ク シ ョ ン の発行を開始 し ま す。 ト ラ ンザ ク シ ョ ン が完了す る と 、IP は任意のサ イ ク ル数待機 し 、 長 さ C_PACKET_LENGTH の新 し い ト ラ ンザ ク シ ョ ン を発行 し ます。 AXI4-Stream マ ス タ ー イ ン タ ー フ ェ イ ス の ポ ー ト 名は、 マ ス タ ー AXI4-Stream ポ ー ト を 示す M_AXIS_で始ま り ます。 • AXI4-Stream ス レーブ : hdl/verilog/axi_stream_slave.v こ のサンプル AXI4-Stream ス レーブは、1 ~ 64 バ イ ト の範囲でプ ロ グ ラ ム可能なデー タ 幅を持つ AXI4-Stream イ ン タ ーフ ェ イ ス を 1 つ備え てい ます。 こ の IP は、S_AXIS_TREADY ポー ト に適 用 さ れ る 擬似 ラ ン ダ ムバ ッ ク オ フ を提供す る よ う に設計 さ れてい ます。 AXI4-Stream ス レ ーブ イ ン タ ー フ ェ イ ス の ポ ー ト 名は、 ス レ ーブ AXI4-Stream ポ ー ト を 示す S_AXIS_で始ま り ます。

テ ス ト ベ ン チ

組み込んだ IP コ アの イ ン ス タ ン シエーシ ョ ンの実例を示すために、3 種類のサン プルブ ロ ッ ク 図が作 成 さ れてい ます。次のテ ス ト ベンチフ ァ イ ルは、 こ れ ら のデザ イ ンに対す る 簡単なシ ミ ュ レーシ ョ ン ス テ ィ ミ ュ ラ ス と し て機能 し ます。ZIP フ ァ イ ルには次のテ ス ト ベンチが含まれてい ます。 • tb/verilog/lite_system_wrapper.v • tb/verilog/axi_system_wrapper.v • tb/verilog/axi_stream_system_wrapper.v

AXI4 IP

の組み込

こ のセ ク シ ョ ンでは、6 種類の AXI4 IP (AXI4、AXI4-Lite、AXI4-Stream それぞれのマ ス タ ー と ス レー ブ) の組み込み手順を詳 し く 説明 し ます。シ ス テ ムで IP ブ ロ ッ ク を再利用で き る よ う に、Vivado Design Suite を使用 し て IP ブ ロ ッ ク を組み込む方法について解説 し ます。 注記 : 掲載 さ れてい る 図には、手順に記載 さ れてい る も の以外の コ ン フ ィ ギ ュ レーシ ョ ンや GUI のオプ シ ョ ンが示 さ れてい る こ と があ り ます。 こ の よ う な場合、 特に設定変更の指示がなければ、 デフ ォ ル ト 値の ま ま に し て く だ さ い。 各 タ イ プの AXI4 IP の組み込み手順はほぼ同 じ です。 手順が異な る 場合は、IP の タ イ プ ご と に変更点 が明記 さ れてい ます。

(4)

Vivado

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

オプ シ ョ ンの設定

こ のセ ク シ ョ ンでは、RTL IP を作成 し 、 組み込むために各 コ アの Vivado プ ロ ジ ェ ク ト 作成す る 手順を 詳 し く 説明 し ます。

1. Vivado Design Suite (Logic Edition 以上) を イ ン ス ト ール し ます (IP イ ン テ グ レー タ ーの ラ イ セ ン ス が必要)。

2. リ フ ァ レ ン スデザ イ ン フ ァ イ ルを ロ ーカル フ ォ ルダー (以降は<design_dir> と 表記) に解凍 し ます。

3. 次の手順に従っ て、Vivado ツールを開 き ます。

• Windows の場合 : [ス タ ー ト] → [Xilinx Design Tools] → [Vivado 2013.1] → [Vivado] を ク リ ッ ク し ます。

• Linux の場合 : ザ イ リ ン ク ス Vivado デザ イ ン ツールのセ ッ ト ア ッ プ後、Linux にvivadoコ マ ン ド を入力 し ます。

4. Getting Started セ ク シ ョ ンの [Create New Project] を ク リ ッ ク し て、 新規プ ロ ジ ェ ク ト を作成 し ま す。

5. [New Project] で [Next] を ク リ ッ ク し ます。

6. 各 IP に個別のプ ロ ジ ェ ク ト が必要です。[Project Name] に適切な名前を入力 し ます。 • AXI4-Lite ス レーブ : package_axi_lite_slave • AXI4-Lite マ ス タ ー : package_axi_lite_master • AXI4 マ ス タ ー : package_axi_master • AXI4 ス レーブ : package_axi_slave • AXI4-Stream マ ス タ ー : package_axi_stream_master • AXI4-Stream ス レーブ : package_axi_stream_slave 新規プ ロ ジ ェ ク ト 用に選択 し たデ ィ レ ク ト リ は<user_dir> と 表記 さ れ ます。[Next] を ク リ ッ ク し ます。図1では、 例 と し てpackage_axi_lite_slaveを使用 し てい ます。

(5)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 5

7. [Project Type] で [RTL Project] をオンに し ます。[Next] を ク リ ッ ク し ます。

8. [Add Files] を ク リ ッ ク し て、 プ ロ ジ ェ ク ト に ソ ース を追加 し ます。 9. <design_dir>/hdl/verilogデ ィ レ ク ト リ に 6 つの Verilog フ ァ イ ルがあ り ます。 • AXI4-Lite ス レーブ : axi_lite_slave.v • AXI4-Lite マ ス タ ー : axi_lite_master.v • AXI4 マ ス タ ー : axi_master.v • AXI4 ス レーブ : axi_slave.v • AXI4-Stream マ ス タ ー : axi_stream_master.v • AXI4-Stream ス レーブ : axi_stream_slave.v 組み込む IP の タ イ プに合っ た ソ ース フ ァ イ ルを選択 し ます。図2の例は AXI4-Lite ス レーブを組 み込む例を示 し てお り 、 axi_lite_slave.vフ ァ イ ルが選択 さ れてい ます。 フ ァ イ ル名の選択後、[OK] を ク リ ッ ク し ます。

X-Ref Target - Figure 1

(6)

フ ァ イ ルaxi_lite_slave.vが新規プ ロ ジ ェ ク ト の ソ ース と し て リ ス ト さ れます (図3)。

10. [Next] を ク リ ッ ク し ます。

注記 : フ ァ イ ル名は組み込む IP の タ イ プに対応 し てい る 必要があ り ます。

X-Ref Target - Figure 2

2 : [Add Source Files] : axi_lite_slave.v ソ ースフ ァ イルの追加

(7)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 7

[New Project Summary] ページが表示 さ れます。図5に AXI4-Lite ス レーブ IP のサマ リ ページ を 示 し ます。 ほかの IP のプ ロ ジ ェ ク ト 作成手順 と の違いは、 作成 さ れ る プ ロ ジ ェ ク ト 名だけです。

14.ソ ース フ ァ イ ルが 1 つ追加 さ れ る こ と を確認 し て、[Finish] を ク リ ッ ク し ます。

X-Ref Target - Figure 4

図 4 : [New Project] : [Default Part] ページ

X-Ref Target - Figure 5

(8)

Vivado

プ ロ ジ ェ ク ト の組み込み

Vivado Design Suite では、開いてい る Vivado プ ロ ジ ェ ク ト を組み込んだ IP に簡単に変換で き ます。次 の手順で こ のプ ロ セ ス を詳 し く 説明 し ます。

1. [Tools] → [Package IP Wizard] を ク リ ッ ク し ます (図6)。

2. [Package New IP] で [Next] を ク リ ッ ク し ます。

3. [Choose IP Source Location] ページで [Package your project] をオンに し 、[Next] を ク リ ッ ク し ま す (図7)。

X-Ref Target - Figure 6

(9)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 9

4. [Begin IP Creation] ページが表示 さ れます。[Finish] を ク リ ッ ク し ます。

5. ウ ィ ザー ド での処理が終了す る と 、[IP Packager Summary] が表示 さ れます。 こ こ には、HDL か ら イ ン ポー ト さ れた イ ン タ ーフ ェ イ ス、ポー ト 、お よ びパ ラ メ ー タ ーの数が詳 し く 表示 さ れます。[OK]

を ク リ ッ ク し ます。図8に AXI4-Lite ス レーブ IP の結果を示 し ます。 各フ ィ ール ド の値は IP ご と に異な り ます。

X-Ref Target - Figure 7

(10)

自動生成 さ れた

IP

定義の更新

プ ロ ジ ェ ク ト の RTL が イ ン ポー ト さ れ、 ウ ィ ザー ド に よ っ て IP の特性が判断 さ れます。 イ ン ポー ト が 成功 し た場合は、[Package IP - <IP_NAME>] と い う ビ ュ ーが [Project Summary] ビ ュ ーの横に表示 さ れます。図9に AXI4-Lite ス レーブ IP の結果を示 し ます。[Name]、[Display Name]、[Description] の 値は、 組み込んだ IP ご と に異な り ます。

X-Ref Target - Figure 8

(11)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 11

6. [IP Identification] ページで次の フ ィ ール ド を設定 し 、 必要に応 じ て値を置 き 換え ます。

• Vendor : 会社名.com

• Vendor Display Name : 会社名

• Company Url : ウ ェ ブサ イ ト の URL

図10に AXI4-Lite ス レーブの結果を示 し ます。

X-Ref Target - Figure 9

(12)

7. IP カ タ ロ グの特定のカ テ ゴ リ に IP が表示 さ れ る よ う にす る には、 それ ら のカ テ ゴ リ の一部にな る よ う に IP を構成す る 必要があ り ます。IP カ タ ロ グ内で IP が表示 さ れ る カ テ ゴ リ を変更す る には、

[Categories] の行にあ る [...] を ク リ ッ ク し ます。[Choose IP Categories] が表示 さ れます (図11)。

X-Ref Target - Figure 10

図 10 : ベン ダー カ ス タ マ イ ズ後の [Package IP] ビ ュ ー

(13)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 13

8. [IP Compatibility] を ク リ ッ ク し ます。

こ の IP がサポー ト す る ザ イ リ ン ク ス FPGA フ ァ ミ リ が表示 さ れます。 プ ロ ジ ェ ク ト で設定 さ れて い る フ ァ ミ リ が表示 さ れ ま す。 こ れ を 変更す る には、[Family Support] の表で右 ク リ ッ ク し 、 メ ニ ュ ーか ら [Add Family] を選択 し ます (図12)。IP コ アの [Family Support] リ ス ト に表示 さ れない デバ イ ス では、 その IP は利用で き ません。

X-Ref Target - Figure 12

(14)

9. [Choose Family Support] で [kintex7] を オンに し 、[OK] を ク リ ッ ク し ます (図13)。

10. [IP Ports] を ク リ ッ ク し ます。 イ ン ポー ト さ れた Verilog のすべてのポー ト に使用 さ れ る 命名規則に 注意 し て く だ さ い。「S_AXI」 な ど の イ ン タ ーフ ェ イ ス ラ ベルの後に、標準 AXI 信号名お よ び [Size Left] 列のベ ク タ ー幅が続 き ます。

X-Ref Target - Figure 13

13 : [Choose Family Support]

(15)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 15 組み込みプ ロ セ ス の こ の段階では、IP ご と にカ ス タ マ イ ズの手順が異な り ます。 次のいずれか を選択 し て カ ス タ マ イ ズ を行い、 同 じ 手順を繰 り 返 し て、 その他の タ イ プの IP を カ ス タ マ イ ズ し て く だ さ い。 • AXI4-Lite ス レーブ IP のカ ス タ マ イ ズ • AXI4-Lite マ ス タ ー IP のカ ス タ マ イ ズ • AXI4 マ ス タ ー IP のカ ス タ マ イ ズ • AXI4 ス レーブ IP のカ ス タ マ イ ズ • AXI4-Stream マ ス タ ー IP のカ ス タ マ イ ズ • AXI4-Stream ス レーブ IP のカ ス タ マ イ ズ

AXI4-Lite

ス レーブ

IP

のカ ス タ マ イ ズ

AXI4-Lite ス レ ーブ IP は、S_AXI イ ン タ ー フ ェ イ ス 上に 5 ビ ッ ト の固定 さ れ た ア ド レ ス 幅 を 持つ AxADDR ポー ト を備え てい ます。

1. [IP Addressing and Memory] を ク リ ッ ク し ます。[Range] フ ィ ール ド の 32 は、IP 内のア ド レ ス指 定可能なバ イ ト 数です (図16)。 こ れはペ リ フ ェ ラ ルが割 り 当て ら れ る 最小ア ド レ ス空間です。

X-Ref Target - Figure 15

(16)

2. 「確認 と 組み込み」 の手順1に進みます。

AXI4-Lite

マ ス タ ー

IP

のカ ス タ マ イ ズ

AXI4-Lite マ ス タ ー IP を カ ス タ マ イ ズす る と 、 こ の HDL パ ラ メ ー タ ーを示す IP の コ ン フ ィ ギ ュ レー シ ョ ン GUI の見た目が変わ り ます。 こ の IP を使用す る 場合は、 ユーザーが入力で き る 値の範囲に制限 が加え ら れます。

1. [IP Customization Parameters] を ク リ ッ ク し ます。[User Parameters] 表で、

C_TRANSACTIONS_NUM の次の よ う に各フ ィ ール ド を更新 し ます (図17)。

• [Description] : Number of Transactions • [Display Name] : Number of Transactions • [Maximum] : 64

• [Minimum] : 1 X-Ref Target - Figure 16

(17)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 17

2. [IP Addressing and Memory] を ク リ ッ ク し ます。AXI4-Lite マ ス タ ー IP は最大 4G バ イ ト のア ド レ ス にア ク セ ス で き ます。 こ の値は図18の [Range] フ ィ ール ド に表示 さ れます。

3. 「確認 と 組み込み」 の手順1に進みます。

AXI4

マ ス タ ー

IP

のカ ス タ マ イ ズ

1. [IP Customization Parameters] を ク リ ッ ク し ます。

2. 表内で C_M_AXI_DATA_WIDTH の値を ク リ ッ ク し ます。右 ク リ ッ ク し て [Edit Parameter] を選択 し ます (図19)。

X-Ref Target - Figure 17

図 17 : AXI4-Lite マス タ ーの [IP Customization Parameters] ページ

X-Ref Target - Figure 18

(18)

3. [Edit Parameter] で次の よ う に各フ ィ ール ド を更新 し (図20)、[OK] を ク リ ッ ク し ます。 こ れ ら の フ ィ ール ド に よ っ て GUI が更新 さ れ、AXI デー タ 幅のパ ラ メ ー タ ーの選択肢が 2 つに限 ら れます。

• [Display name] : Data Width

• [Should the value be restricted to a list or range?] : Yes

• [Simple list] をオンに し 、Instructions の説明に従っ て 32 と 64 を入力 し ます。

X-Ref Target - Figure 19

図 19 : AXI4 マス タ ー IP の [IP Customization Parameters] ページ、C_M_AXI_DATA_WIDTH

(19)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 19

• [Description] : Burst Length • [Display Name] : Burst Length • [Maximum] : 256

• [Minimum] : 1

5. C_TRANSACTIONS_NUM ユーザーパ ラ メ ー タ ーを ク リ ッ ク し 、 次の よ う に値を変更 し ます。

• [Description] : Number of Transactions • [Display Name] : Number of Transactions • [Maximum] : 64

• [Minimum] : 1

6. [IP Addressing and Memory] を ク リ ッ ク し ます。AXI4 マ ス タ ーは、M_AXI イ ン タ ーフ ェ イ ス上 に 40 ビ ッ ト の AxADDR ポー ト を備えてい ます (図21)。

7. 「確認 と 組み込み」 の手順1に進みます。

AXI4

ス レ ーブ

IP

のカ ス タ マ イ ズ

1. [IP Customization Parameters] を ク リ ッ ク し ます。

2. 表内で C_S_AXI_DATA_WIDTH の値を ク リ ッ ク し ます。右 ク リ ッ ク し て [Edit Parameter] を選択 し ます (図22)。

X-Ref Target - Figure 21

(20)

3. [Edit Parameter] で次の よ う に各フ ィ ール ド を更新 し (図23)、[OK] を ク リ ッ ク し ます。 こ れ ら の フ ィ ール ド に よ っ て GUI が更新 さ れ、AXI データ 幅のパ ラ メ ー ターの選択肢が 2 つに限 ら れます。

• [Display name] : Data Width

• [Should the value be restricted to a list or range?] : Yes

• [Simple list] をオンに し 、Instructions の説明に従っ て 32 と 64 を入力 し ます。

X-Ref Target - Figure 22

図 22 : AXI4 ス レーブ IP の [IP Customization Parameters] ページ、C_S_AXI_DATA_WIDTH

(21)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 21

• [Maximum] : 32 • [Minimum] : 1

5. [IP Addressing and Memory] を ク リ ッ ク し ます。AXI4 ス レーブは、S_AXI イ ン タ ーフ ェ イ ス上に

14 ビ ッ ト の AxADDR ポー ト を備え てい ます (図24)。

6. 「確認 と 組み込み」 の手順1に進みます。

AXI4-Stream

マス タ ー

IP

のカ ス タ マ イ ズ

1. [IP Customization Parameters] を ク リ ッ ク し ます。

2. C_PACKET_LENGTH ユーザーパ ラ メ ー タ ーを ク リ ッ ク し 、 次の よ う に値を変更 し ます。

• [Description] : Packet Length • [Display Name] : Packet Length • [Maximum] : 64

• [Minimum] : 1

3. C_M_AXIS_TDATA_NUM_BYTES ユーザーパ ラ メ ー タ ーを ク リ ッ ク し 、 次の よ う に値を変更 し ます。

• [Description] : Data Width in bytes • [Display Name] : Data Width in bytes • [Maximum] : 512

• [Minimum] : 1

図25に最終的な結果を示 し ます。

X-Ref Target - Figure 24

(22)

4. 「確認 と 組み込み」 の手順1に進みます。

AXI4-Stream

ス レーブ

IP

のカ ス タ マ イ ズ

1. [IP Customization Parameters] を ク リ ッ ク し ます。

2. C_S_AXIS_TDATA_NUM_BYTES ユーザーパ ラ メ ー タ ーを ク リ ッ ク し 、 次の よ う に値を変更 し ます。

• [Description] : Data Width in bytes • [Display Name] : Data Width in bytes • [Maximum] : 512

• [Minimum] : 1

図26に最終的な結果を示 し ます。

X-Ref Target - Figure 25

25 : AXI4-Stream マス タ ーの [IP Customization Parameters] ページ

(23)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 23

2. [Package IP] ビ ュ ーで、 アーカ イ ブの位置を次の よ う に設定 し ます。 <design_dir>/ip_repo 図には、AXI4-Lite ス レーブ IP の例を示 し てい ます。[OK] を ク リ ッ ク し ます (図28)。

3. IP は正常に組み込まれま し た。[File] → [Close Project] を ク リ ッ ク し ます。 組み込むその他の コ アに対 し て も 「AXI4 IP の組み込み」 の手順を繰 り 返 し ます。

X-Ref Target - Figure 27

図 27 : AXI4-Lite ス レーブの [Package IP] ビ ュ ー ([Review and Package] ページ)

X-Ref Target - Figure 28

(24)

IP

イ ン テグ レー

タ ー

プ ロ ジ ェ ク ト

への生成済み

IP

の統合

AXI4-Lite

シ ス テム

こ のセ ク シ ョ ンでは、( 「AXI4 IP の組み込み」で作成 し た) Vivado で組み込んだ IP をプ ロ ジ ェ ク ト に 統合す る 手順について説明 し ます。 こ の フ ロ ーは、 複数のチーム、 プ ロ ジ ェ ク ト 、 ま たは IP カ ス タ マー の間で IP を共有す る 手順 と 類似 し てい ます。

Vivado

ツールの新規プ ロ ジ ェ ク ト の開始 1. 前のセ ク シ ョ ンで IP の生成が完了 し ていない場合は、 リ フ ァ レ ン スデザ イ ン フ ァ イ ルを ロ ーカル フ ォ ルダー (<design_dir>) に解凍 し 、 <design_dir>/ip_repo_completeデ ィ レ ク ト リ の名 前を<design_dir>/ip_repoに変更 し ます。

2. Vivado デザ イ ン ツールのセ ッ ト ア ッ プ後、Windows で [ス タ ー ト] → [Xilinx Design Tools] →

[Vivado] を ク リ ッ ク す る か、ま たは Linux にvivadoコ マ ン ド を入力 し 、Vivado ツールを開 き ます。

3. [Getting Started] → [Create New Project] を ク リ ッ ク し 、 新規プ ロ ジ ェ ク ト を作成 し ます。

4. [New Project] で [Next] を ク リ ッ ク し ます。

5. プ ロ ジ ェ ク ト 名を ipi_lite_project と し 、[Next] を ク リ ッ ク し ます。

6. [Project Type] で [RTL Project] を ク リ ッ ク し 、[Next] を ク リ ッ ク し ます。

7. [Add Sources] で [Add Files] を ク リ ッ ク し 、 <design_dir>/tb/verilog デ ィ レ ク ト リ か ら lite_system_wrapper_tb.v を選択 し ま す。 こ の フ ァ イ ルはテ ス ト ベンチのシ ミ ュ レーシ ョ ン フ ァ イ ルです。 デザ イ ンの残 り の部分は、 こ のセ ク シ ョ ンの後半で作成 さ れます。

8. [HDL Source for:Simulation only] を オンに し 、[Next] を ク リ ッ ク し ます。

9. [Add Existing IP] で [Next] を ク リ ッ ク し ます。

10. [Add Constraints] で [Next] を ク リ ッ ク し ます。

11. Vivado Design Suite に よ っ て選択 さ れたデバ イ ス の ま ま、[Default Part] ページで [Next] を ク リ ッ ク し ます。

12. [New Project Summary] ページで [Finish] を ク リ ッ ク し ます。

IP

リ ポジ ト リ の追加

1. [Window] → [IP Catalog] を ク リ ッ ク し ます。

2. [IP Catalog] ビ ュ ーで を ク リ ッ ク し ます。

(25)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 25

4. <design_dir>/ip_repoデ ィ レ ク ト リ 内の IP が [IP Repositories] に既に表示 さ れてい る 場合は、

[OK] を ク リ ッ ク し て手順1に進みます。

5. <design_dir>/ip_repoデ ィ レ ク ト リ を探 し て選択 し 、[Select] を ク リ ッ ク し ます。 こ れで こ の デ ィ レ ク ト リ が [IP Catalog] ビ ュ ーに表示 さ れます。

6. [Project Settings] で [Add IP] を ク リ ッ ク し ます。

7. [Select IP To Add To Repository] で

YourCompanyName.com_user_axi_lite_master_1.0.zip を選択 し 、[OK] を ク リ ッ ク し ま す (図30)。こ れで、圧縮 さ れた ZIP フ ァ イ ルは使用に適 し た形式で<design_dir>/ip_repoデ ィ

レ ク ト リ に展開 さ れます。

X-Ref Target - Figure 29

(26)

こ の手順を繰 り 返 し て、 次の フ ァ イ ルを追加 し ます。 • YourCompanyName.com_user_axi_lite_slave_1.0.zip • YourCompanyName.com_user_axi_master_1.0.zip • YourCompanyName.com_user_axi_slave_1.0.zip • YourCompanyName.com_user_axi_stream_master_1.0.zip • YourCompanyName.com_user_axi_stream_slave_1.0.zip

図31に結果の [Project Settings] を示 し ます。[OK] を ク リ ッ ク し ます。

X-Ref Target - Figure 30

図 30 : AXI4-Lite マス タ ーが選択 さ れている [Select IP To Add To Repository]

(27)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 27

シ ス テム

ブ ロ ッ ク 図の作成

1. [Flow] → [Create Block Design] を ク リ ッ ク し ます。

2. [Create Block Design] で、 次の よ う に設定 し ます。

• [Design name] : lite_system

3. [Add IP] を右 ク リ ッ ク し て IP を キ ャ ンバ ス に追加 し ます。

4. [Search] に 「axi_lite_master」 と 入力 し 、Enter キーを押 し ます (図32)。

5. axi_lite_slave に対 し て手順4を繰 り 返 し ます。

6. キ ャ ンバス を右 ク リ ッ ク し て [Create Port] を選択 し ます。

7. [Create Port] ビ ュ ーに次の よ う に入力 し 、[OK] を ク リ ッ ク し ます (図34)。

• [Port name] : ACLK • [Type] : Clock • [Frequency] : 100 X-Ref Target - Figure 32

図 32 : IP イ ン テグ レー タ ーの IP 検索ボ ッ ク ス

X-Ref Target - Figure 33

(28)

8. キ ャ ンバス を右 ク リ ッ ク し て [Create Port] を選択 し ます。

9. [Create Port] で次の よ う に入力 し 、[OK] を ク リ ッ ク し ます (図35)。

• [Port name] : ARESETN • [Direction] : Input • [Type] : Reset X-Ref Target - Figure 34

34 : [Create Port] : ACLK ポー ト の追加

(29)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 29

12. axi_lite_master_1 の M_AXI イ ン タ ーフ ェ イ ス を axi_lite_slave_1 の S_AXI イ ン タ ーフ ェ イ ス に 接続 し ます。

図36に完成 し た回路図を示 し ます。

13.キ ャ ンバス の [Address Editor] ビ ュ ーを ク リ ッ ク し ます。

14. M_AXI を ク リ ッ ク し 、右 ク リ ッ ク し て [Auto Assign Address] を選択 し ます (図37)。axi_lite_slave

の AXI ア ド レ ス が選択 さ れます。

15. [Tools] → [Validate Design] を ク リ ッ ク し 、[OK] を ク リ ッ ク し ます (図38)。

16. [File] → [Save Block Design] を ク リ ッ ク し ます。

シ ス テムの統合 と シ ミ ュ レーシ ョ ン

1. [Window] → [Sources] を ク リ ッ ク し ます。

X-Ref Target - Figure 36

図 36 : IP イ ン テグレー タ ーのキ ャ ンバス上の接続 さ れた AXI4-Lite シス テム

X-Ref Target - Figure 37

図 37 : Address Editor で axi_lite_master の [Auto Assign Address] を選択

X-Ref Target - Figure 38

(30)

2. [Sources] ビ ュ ーで [lite_system] を選択 し て右 ク リ ッ ク し 、[Create HDL Wrapper] を選択 し ます

(図39)。ブ ロ ッ ク 図はデザ イ ンの最上位オブジ ェ ク ト にな る こ と はで き ないため、こ の手順で HDL

ラ ッ パーが生成 さ れ ま す。 生成 さ れた フ ァ イ ルは、 既存のテ ス ト ベン チ ラ ッ パーで置 き 換え ら れ ます。

3. [Flow Navigator] → [Simulation] → [Simulation Settings] を ク リ ッ ク し ます。

X-Ref Target - Figure 39

(31)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 31

4. [Simulation] ビ ュ ーで次の値を変更 し 、[OK] を ク リ ッ ク し ます (図40)。

• [Simulation Run Time] :

5. [Flow Navigator] → [Simulation] → [Run Simulation] を ク リ ッ ク し 、[Run Behavioral Simulation]

を ク リ ッ ク し ます。

6. [Scopes] ビ ュ ーで [lite_system_wrapper] を展開 し 、[lite_system_wrapper_tb] →

[lite_system_wrapper_i] → [lite_system_i instance] を [Untitled 1] 波形ビ ュ ーに ド ラ ッ グ し て、 シ ミ ュ レーシ ョ ンに よ っ て AXI イ ン タ ーフ ェ イ ス をブ ロ ッ ク 図か ら キ ャ プチ ャ で き る よ う に し ます。

7. [Run] → [Run All] を ク リ ッ ク し ます。

8. [View] → [Zoom Fit] を ク リ ッ ク し ます。図41に得 ら れ る 波形を示 し ます。4 回の書 き 込みに続い て 4 回の読み出 し が実行 さ れてい る こ と がわか り ます。

9. 準備がで き た ら [File] → [Close Design] を ク リ ッ ク し 、 次のセ ク シ ョ ンに進む用意を し ます。

X-Ref Target - Figure 40

40 : [Project Settings] [Simulation] ビ ュ ー : ラ ン タ イ ムオプ シ ョ ン

X-Ref Target - Figure 41

(32)

AXI4

シ ス テム

AXI4 マ ス タ ー と AXI4 ス レーブ を含む AXI4 シ ス テ ム を構築す る 場合は、「AXI4-Lite シ ス テ ム」の構 築 と 同 じ 手順に従い ますが、 次の点を変更す る 必要があ り ます。

Vivado

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

• 手順5では、 プ ロ ジ ェ ク ト 名を ipi_axi_project と し ます。

• 手順7では、[Add Sources] でaxi_system_wrapper_tb.vを選択 し ます。

シ ス テム ブ ロ ッ ク図の作成 • 手順2では、 デザ イ ン名を axi_system と し ます。 • 手順4では、axi_master と 入力 し ます。 • 手順5では、axi_slave と 入力 し ます。 • 手順10では、ACLK ポー ト を次の イ ン タ ーフ ェ イ ス に接続 し ます。 • axi_master_1 の M_AXI_ACLK • axi_slave_1 の S_AXI_ACLK • 手順11では、ARESETN ポー ト を次の イ ン タ ーフ ェ イ ス に接続 し ます。 • axi_master_1 の M_AXI_ARESETN • axi_slave_1 の S_AXI_ACLK

• 手順12では、axi_master_1 の M_AXI イ ン タ ーフ ェ イ ス を axi_slave_1 の S_AXI イ ン タ ーフ ェ イ ス に接続 し ます。

図42に完成 し た回路図を示 し ます。

43 16 AXI4 AXI4 ID

X-Ref Target - Figure 42

(33)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 33

シ ス テムの統合 と シ ミ ュ レーシ ョ ン

• 手順2では、[Sources] ビ ュ ーで [axi_system] を選択 し て右 ク リ ッ ク し 、[Create HDL Wrapper] を 選択 し ます。

• 手順6では、[Scopes] ビ ュ ーで [axi_system_wrapper] を展開 し 、[axi_system_wrapper_tb] →

[axi_system_wrapper_i] → [axi_system_i] イ ン ス タ ン ス を [Untitled] 波形ビ ュ ーに ド ラ ッ グ し ます。

図44に波形を示 し ます。

AXI4-Stream

シ ス テム

AXI4-Stream マ ス タ ー と AXI4-Stream ス レ ー ブ を 含む AXI4-Stream シ ス テ ム を 構築す る 場合 は、

「AXI4-Lite シ ス テ ム」 の構築 と 同 じ 手順に従い ますが、 次の点を変更す る 必要があ り ます。

Vivado

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

• 手順5では、 プ ロ ジ ェ ク ト 名を ipi_stream_project と し ます。

• 手順7では、[Add Sources] でaxi_stream_system_wrapper_tb.vを選択 し ます。

シ ス テム ブ ロ ッ ク図の作成 • 手順2では、 デザ イ ン名を axi_stream_system と し ます。 • 手順4では、axi__stream_master と 入力 し ます。 • 手順5では、axi__stream_slave と 入力 し ます。 • 手順10では、ACLK ポー ト を次の イ ン タ ーフ ェ イ ス に接続 し ます。 • axi_stream_master_1 の AXIS_ACLK • axi_ stream_slave_1 の AXIS_ACLK

• 手順11では、ARESETN ポー ト を次の イ ン タ ーフ ェ イ ス に接続 し ます。

• axi_stream_master_1 の AXIS_ARESETN • axi_stream_slave_1 の AXIS_ACLK

• 手順12 では、axi_stream_master_1 の M_AXIS イ ン タ ーフ ェ イ ス を axi_stream_slave_1 の

S_AXIS イ ン タ ーフ ェ イ ス に接続 し ます。

図45に完成 し た回路図を示 し ます。

X-Ref Target - Figure 44

(34)

• AXI4-Stream はア ド レ ス を使用 し ないため、手順14は省略 し ます。

シ ス テムの統合 と シ ミ ュ レーシ ョ ン

• 手順2では、[Sources] ビ ュ ーで [axi_stream_system] を選択 し て右 ク リ ッ ク し 、[Create HDL Wrapper] を選択 し ます。

• 手順6では、[Scopes] ビ ュ ーで [axi_stream_system_wrapper_tb] を展開 し て、

[axi_stream_system_wrapper_tb] → [axi_stream_system_wrapper_i] → [axi_stream_system_i] イ ン ス タ ン ス を [Untitled] 波形ビ ュ ーに ド ラ ッ グ し ます。 図46に波形を示 し ます。

リ フ ァ レ ン ス

デザイ ン

こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン スデザ イ ン フ ァ イ ルは、 次のサ イ ト か ら ダ ウ ン ロ ー ド で き ます。 https://secure.xilinx.com/webreg/clickthrough.do?cid=338300

参考資料

こ の文書では、 次の参考資料を使用 し てい ます。

1. Vivado Design Suite のマニ ュ アル

X-Ref Target - Figure 45

図 45 : IP イ ン テグ レー タ ーのキ ャ ンバス上の完成 し た AXI4-Stream シ ス テム

X-Ref Target - Figure 46

(35)

XAPP1168 (v1.0) 2013 年 6 月 1 日 japan.xilinx.com 35

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. 本資料は英語版 (v1.0) を翻訳 し た も ので、 内容に相違が生 じ る 場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。 こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected]ま でお知 ら せ く だ さ い。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ールア ド レ スへのお問い合わせは受け付けてお り ません。 あ ら か じ め ご了承 く だ さ い。

参照

関連したドキュメント

In this work we give definitions of the notions of superior limit and inferior limit of a real distribution of n variables at a point of its domain and study some properties of

[r]

The orthogonality test using S t−1 (Table 14), M ER t−2 (Table 15), P P I t−1 (Table 16), IP I t−2 (Table 17) and all the variables (Table 18) shows that we cannot reject the

But in fact we can very quickly bound the axial elbows by the simple center-line method and so, in the vanilla algorithm, we will work only with upper bounds on the axial elbows..

The undersigned hereby certifies that the above details and statements are correct and that the goods specified in this Declaration of Origin meet all the

Touchdown Total may be applied as a spot spray in peppermint and spearmint. Apply spray-to-wet with hand-held equipment, such as backpack and knapsack sprayers, pump-up

Direct materials suppliers to onsemi must ensure that all materials used in part manufacture and in facility operations satisfy all applicable environmental, health and

Figure 2-10 Composition ratios in final energy consumption by fuel type in the industrial sector ... Figure 2-11 IIP increases in manufacturing in