« Amazonフルフィルメントに委託 | トップページ | Cosmo-Z Miniのファームウェアアップデート・スクリプトを作った »

2018.11.24

XILINXのJTAG to AXI masterの使い方

本日、RTLを語る会に参加して、JTAG to AXI masterというものを紹介していただきました。

JTAGからAXIのトランザクションを発行するというもののようですが、気になったので、早速試してみました。

テストに使ったボードは、Ultra96ボードです。

まず、下の図のようなブロックデザインを作ります。

Axi_jtag_sample

jtag_axi_0というのがそのコンポーネントで、M_AXIの出力をBlockRAMにつなぐと同時にsystem_ilaに入れて波形を見ることができるようにしました。

つまり、JTAGから操作したAXIの波形を、ILAで見ようというわけです。

これを論理合成して、Bitstreamをダウンロードしたら、HardwareManagerを開きます。

Axi_jtag_setting

そして、AWREADY==1でトリガがかかるように設定します。

JTAGコマンドの発行はTclのコンソールで行います。

上の図では画面下の細長いところです。

create_hw_axi_txn wr [get_hw_axis hw_axi_1] -len 4 -address c0000003 -data 0000000F_00000001_0200000F_0005000F -type write
run_hw_axi wr
delete_hw_axi_txn wr

このように、createでコマンドを作って、runで実行して、deleteで消すという、大変面倒くさいコマンド体系になっています。コマンドの詳細はUG908の205ページあたりを見ると書いてあります。

バーストライトも発行できるのはありがたいですね。

実際にキャプチャされた波形を示します。

Axi_jtag_waveform

ご覧のとおり、ちゃんと長さ4のバーストライトの波形が出て、それをILAでキャプチャできました。

このコマンドの面倒臭さが解消できれば使えるようになると思います。

では、プロトコルを解析してみましょう!(続く)

|

« Amazonフルフィルメントに委託 | トップページ | Cosmo-Z Miniのファームウェアアップデート・スクリプトを作った »

コメント

コメントを書く



(ウェブ上には掲載しません)




« Amazonフルフィルメントに委託 | トップページ | Cosmo-Z Miniのファームウェアアップデート・スクリプトを作った »