Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

IP コア生成ワークフローを使用したザイリンクス Pure FPGA ボード上の DUT レジスタへのアクセス

この例では、 HDL Coder™ IP コア生成ワークフローを使用して、エンベデッド ARM® プロセッサーを使用せず、 HDL Coderによって生成された AXI インターフェイスを使用してテスト対象デザイン (DUT) を制御するザイリンクス パーツのリファレンス デザインを開発する方法を示します。 )。この例では、 HDL Verifier™ AXI Manager IP を使用して、 MATLAB®からHDL Coderで生成された DUT レジスタにアクセスします。あるいは、ザイリンクス JTAG AXI マスターを使用し、Tcl コマンドを記述して Vivado® Tcl コンソールを使用して DUT レジスタにアクセスすることもできます。ザイリンクス JTAG AXI マスターの場合は、カスタム リファレンス デザインを作成する必要があります。FPGA デザインは、Xilinx Kintex®-7 KC705 ボードに実装されています。

要件

ザイリンクス Kintex-7 KC705 開発ボード

この図は、Xilinx Kintex-7 KC705 開発ボードを示しています。

リファレンス設計例

エンベデッド ARM プロセッサーやEmbedded Coder ™ サポート パッケージを使用せずに、 HDL Coder IP コア生成ワークフローを使用することでメリットを享受でき、なおかつHDL Coderで生成された AXI4-Lite レジスターを利用できるデザインには、これらの IP セットの 1 つを含めることができます。

  • HDL Verifier AXI Manager + HDL Coder IP コア

  • ザイリンクス JTAG マスター + HDL CoderIP コア

  • MicroBlaze™ + HDL Coder IP コア

  • PCIe エンドポイント + HDL Coder IP コア

この例には 2 つのリファレンス デザインが含まれています。

  • Default System リファレンス デザインは、読み取りおよび書き込みコマンドを発行するためにMathWorks® IP とMATLABコマンド ライン インターフェイスを使用します。このデザインを使用するには、 HDL Verifier製品が必要です。

  • ザイリンクスの JTAG to AXI Master リファレンス デザインは、JTAG to AXI Master に Vivado IP を使用しており、読み出しおよび書き込みコマンドを発行するには Vivado Tcl コンソールを使用する必要があります。

この図に示すように、2 つのリファレンス デザインは、使用する JTAG マネージャー IP が異なるだけです。

HDL Verifier AXI Manager リファレンス デザイン

HDL ワークフロー アドバイザーの IP コア生成ワークフローの [ターゲット リファレンス デザインの設定] ステップで、ホスト マシンとターゲット ハードウェアの間で通信するインターフェイスに [AXI Manager の挿入 (HDL Verifierが必要)]パラメーターを設定します。このオプションは、インターフェイスの AXI マネージャー IP をリファレンス デザインに自動的に追加し、追加された IP を AXI4 スレーブ インターフェイスを使用して DUT IP に接続します。次のセクションでは、JTAG AXI Manager IP をリファレンス デザインに自動挿入する手順について詳しく説明します。

IPコアワークフローの実行

JTAG AXI Manager IP を使用するデフォルト システム リファレンス デザインの IP コア ワークフローを実行するには、次の手順に従います。このリファレンス デザインを使用すると、KC705 ボード上の LED を点滅させる HDL IP コアを生成できます。HDL IP コアを生成するには、次の手順に従います。

1. MATLABで次のコマンドを実行して、Xilinx Vivado ツール パスを設定します。コマンドを実行するときに独自の Xilinx Vivado インストール パスを使用します。

hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath', ...
                 'C:\Xilinx\Vivado\2020.2\bin\vivado.bat');

2.MATLABでこのコマンドを実行して、LED 点滅を実装するSimulinkモデルを開きます。

open_system('hdlcoder_led_blinking')

3.hdlcoder_led_blinking/led_counterサブシステムを右クリックし、HDL コード、続いて HDL ワークフロー アドバイザー を選択して、 led_counterサブシステムから HDL ワークフロー アドバイザーを起動します。

4.ステップ 1.1 で、ターゲット ワークフローIP Core Generationに設定し、ターゲット プラットフォームXilinx Kintex-7 KC705 development boardに設定します。「このタスクを実行」をクリックします。

5.ステップ 1.2 で、リファレンス デザインDefault Systemに設定します。「リファレンス デザインパラメーター」で、「Insert AXI Manager (HDL Verifier required)」をJTAGに設定します。「このタスクを実行」をクリックします。

6.ステップ 1.3 で、Blink_frequencyBlink_direction、および Read_back ポートのインターフェイスをAXI4-Liteに設定します。LED ポートのインターフェースをLEDs General Purpose [0:7]に設定します。

7.ワークフローの残りの手順を実行して、ビットストリームを生成し、ターゲット デバイスをプログラムします。

Zynq ベースのリファレンス デザインとは異なり、この図に示すように、Generate Software Interface Model タスクは存在しません。

IPコアレポートからアドレスを決定する

HDL Coder IP コアのベース アドレスは、AXI Manager IP を使用する Default System リファレンス デザインの0x40000000として定義されます。この図に示すように、生成された IP コア レポートでアドレス設定を確認できます。

IP コア レポートのレジスタ アドレス マッピング テーブルにオフセットが示されています。

HDL Verifierコマンド ライン インターフェイス

ザイリンクス FPGA ボード用のHDL Verifierサポート パッケージをお持ちの場合は、AXI Manager リファレンス デザインを選択すると、 MATLABコマンド ライン インターフェイスを使用して、 HDL Coder製品によって生成された IP コアにアクセスできます。

DDR メモリへの書き込みと読み取りを行うには、次の手順に従います。

1. AXI マネージャー オブジェクトを作成します。

h = aximanager('Xilinx')

2.書き込みコマンドを発行します。たとえば、DUT を無効にします。

h.writememory('40000004',0)

3.DUTを再度有効にします。

h.writememory('40000004',1)

4.読み取りコマンドを発行します。たとえば、現在のカウンタ値を読み取ります。

h.readmemory('40000108',1)

5.オブジェクトを削除して JTAG リソースを解放します。オブジェクトを削除しないと、FPGA のプログラミングなどの他の JTAG 操作が失敗します。

delete(h)

ザイリンクス JTAG から AXI マスターへのリファレンス デザイン

リファレンス デザインでザイリンクス JTAG to AXI Master IP を使用するカスタム リファレンス デザインを作成し、 addpathコマンドを使用してリファレンス デザイン ファイルをMATLABパスに追加します。

リファレンス デザイン プラグイン ファイルで定義されているベース アドレスを使用して、Xilinx JTAG to AXI Master IP を使用してHDL Coder IP コア レジスタにアクセスします。

AXI 読み取りおよび書き込み用の Vivado Tcl コマンド

この例では、スタンドアロン Vivado Tcl コンソールを使用して基本的なコマンドを実行し、読み取りと書き込みを実行します。これらのコマンドを使用して JTAG デバイスを開き、DUT への書き込みを「有効」および「無効」に設定できます。これらのコマンドを Vivado Tcl コンソールに直接入力することも、Tcl ファイルに保存して後で実行することもできます。簡単にするために、これらの Tcl コマンドをファイルopen_jtag.tclにコピーします。

# Open connection to the JTAG Master
open_hw
connect_hw_server
open_hw_target
refresh_hw_device [lindex [get_hw_devices] 0]
# Create some reads/writes
create_hw_axi_txn wr_enable [get_hw_axis hw_axi_1] ...
 -address 44a0_0004 -data 0000_0001 -type write
create_hw_axi_txn wr_disable [get_hw_axis hw_axi_1] ...
 -address 44a0_0004 -data 0000_0000 -type write

Vivado Tcl コンソールを起動し、作成したファイルを読み込みます。

system('vivado -mode tcl -source open_jtag.tcl&')

JTAG マスターの使用が完了したら、次の Tcl コマンドを使用して接続を閉じます。

# Close and disconnect from the JTAG Master
close_hw_target;
disconnect_hw_server;

概要

JTAG AXI Manager IP を使用すると、Kintex-7 などの ARM プロセッサが組み込まれていないシステムでHDL Coder IP コア レジスタとインターフェイスすることができます。この IP は、ソフト プロセッサ (MicroBlaze など) 用のソフトウェアをハンド コーディングする前に、スタンドアロンHDL Coder IP コアをデバッグする最初のステップとして、または実行中のシステムのパラメーターを調整する方法として使用できます。

参考

| |

関連するトピック