AR# 56609

2013.2 Vivado IP インテグレーター、Zynq-7000 - IP インテグレーター外のカスタム AXI HDL を Zynq AXI インターフェイスに接続する方法

説明

カスタムの AXI マスターまたはスレーブを Zynq AXI インターフェイスに接続したいのですが、HDL は IP インテグレーター (IPI) 外で管理したいと思います。どうすればよいですか。

ソリューション

次の例では、Vivado を使用して IPI ブロック ダイアグラム外のカスタム AXI HDL を管理し、AXI4-Lite カスタム IP を ZC702 ボードの Zynq AXI_GP0 に追加しています。

注記: この Vivado 2013.2 プロジェクトは、このアンサーの最後に添付されています。これを使用するには、SDK ワークスペースで「hello world」アプリケーションを実行して ARM CPU からこのペリフェラルにアクセスします。

1) ZC702 ボードに基づく Vivado プロジェクトを作成します。

2) [IP Integrator]→ [Create Block Design] をクリックします。

3) ZYNQ7 Processing System および AXI Interconnect IP を追加します。AXI Interconnect には、プロトコル変換 (この場合は AXI3->AXI4LITE)、レジスタ スライス、FIFO、クロック変換といった自動サービスがあるので、こちらの IP が好まれます。

4) AXI Interconnect IP をダブルクリックし、[Number of Slave Interfaces] および [Number of Master Interfaces] を 1 に設定します。[OK] をクリックして変更を保存します。

5) IP 間を次のように接続します。


 

6) DDR および FIXED_IO インターフェイスを内部インターフェイスにするため、[Run Block Automation] をクリックし、[/Processing_system7_1] を選択します。


 

7) M_AXI ポートを右クリックし、[Make External] をクリックします。


 

8) FCLK0 ポートを右クリックして [Create Port] をクリックし、[Port name] を「ACLK」に変更します。これを実行するのは、クロックとリセットはバンドルされた AXI インターフェイスの一部ではないので、IPI 外の HDL に AXI CLK を供給するためです。

FCLK_RESET0_N に対して同じ操作を実行し、[Port name]を「ARESETN」に変更します。


 

9) M00_AXI ポートを右クリックし、[External Interface Properties] をクリックします。


 

10) [General] タブをクリックし、[Clock Port] で [ACLK] を選択します。これは、IPI で外部インターフェイスのクロック周波数を認識するために必要です。そうでないと、次のようなクリティカル警告メッセージが表示されます。

[BD 41-968] AXI interface port /M00_AXI is not associated to any clock port. It may not work correctly. Please update ASSOCIATED_BUSIF parameter of a clock port to include this interface port.


 

11) [Properties] タブをクリックし、[CONFIG] を展開して、[PROTOCOL] を「AXI4LITE」に変更します。これが外部インターフェイス ポートに設定されていると、AXI Interconnect でこの設定がクエリされ、自動的に protocol_converter ブロックが使用されて M_AXI_GP0 の AXI3 インターフェイスが変換されます。


 

12) [Address Editor] タブをクリックし、[M00_AXI] を右クリックして [Auto Assign Address] をクリックします。これは、外部 AXI4LITE ペリフェラルに配線されるアクセスのアドレス範囲です。必要に応じて変更します。


 

13) Vivado の [Sources] ビューに戻り、ブロック デザインを右クリックして [Generate Output Products] をクリックし、プロジェクトを保存します。


 

14) 注記: Vivado 2013.2 には既知の問題があります。ブロック デザイン (BD) を閉じて、もう一度開かない限り、AXI4Lite ポートは外部ラッパーではアップデートされません。

詳細は、(Xilinx Answer 56584) を参照してください。新しいバージョン (2013.3 など) を使用している場合は、手順 14 および 15 は省いてください。ブロック デザインを閉じて、それをまたダブルクリックして再度開きます。


 

 

15) ブロック デザインを右クリックして [Generate Output Products] をクリックし、出力ファイルを生成します。

16) ブロック デザインを右クリックして [Create HDL Wrapper] をクリックします。

17) 生成されたファイルを開き、AXI 外部マスター信号を確認します。


 

18) カスタム IP コード ソースを Vivado プロジェクトに追加または作成します。AXI コアのサンプル集は、(Xilinx Answer 37425) にあります。これらのコアに含まれている HDL ファイルを抽出して、開始点として使用できます。

19) 最上位 HDL を変更してカスタム AXI ペリフェラルをインスタンシエートし、IPI ブロック インスタンシエーションの外部コネクタ信号に接続します。

20) 最上位 HDL ファイルを保存し、ビットストリームの生成などデザイン フローを続けます。

デザインを検証しようとするときにエラーが発生した場合は、ACLK のプロパティを検証します。ASSOCIATED_BUSIF および ASSOCIATED_RESET が正しく設定されていることを確認します。このデザインでは、次の Tcl コマンドでこの 2 つのプロパティが設定されます。

set_property CONFIG.ASSOCIATED_BUSIF M01_AXI [get_bd_ports ACLK] 
set_property CONFIG.ASSOCIATED_RESET ARESETN [get_bd_ports ACLK]

注記: Vivado IP インテグレーター デザインについては、(Xilinx Answer 56612) - 「Vivado IP インテグレーター ソリューション センター」を参照してください。

添付ファイル

関連添付ファイル

タイトル サイズ ファイルタイプ
zc702_ipi_ext_axilite_update.rar 6 MB RAR

アンサー レコード リファレンス

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
64618 Missing address range for an external AXI interface in the system memory map of an SDK project. N/A N/A
AR# 56609
日付 05/22/2018
ステータス アクティブ
種類 一般
デバイス
ツール
IP
Boards & Kits