Integrated Logic Analyzer (ILA) IP を使ってみた

FPGA

実際に動作している実機内部を監視してデバッグしたかったので,ILAを使ってみました.
使い方のメモ書きです.

Integrated Logic Analyzer (ILA)
The LogiCORE™ IP Integrated Logic Analyzer (ILA) core is a customizable logic analyzer core that can be used to monitor ...

確認環境

Ubuntu 18.04 LTS
Vivado 2022.1
Zynq Ultra Scale+

手順

まずは,適当にVivadoのデザインを用意します.
今回は,Direct Memory Access を用いて自作IPへ送ったデータを全加算するだけの簡単なデザインを用意しました.

今回は,axi_dma_0 の出力である M_AXIS_MM2S の信号をキャプチャしてみます.
デザインの何も無い所を”右クリック”→”Add IP” で ”ila” と検索しIPを追加します.

一番上の”ILA (Integrated Logic Analyzer) ”をクリックし追加します.

信号をキャプチャしたい線を右クリックし,Debug を押してもILAを設置することができます

ILA_IPを追加したらダブルクリックしてIPの設定を行います.
今回観測したい信号はAXI-StreamなのでMonitor Type を AXI にします.
次に,観測したいクロック数に応じで Sample Data Depth を選びます.

AXIプロトコルとしてバンドルされていない信号をキャプチャしたいときは,Native を選択すれば大丈夫です.
( Native を選ぶと Number of Slots にキャプチャしたい信号線の本数を入力できるようになります.また,信号線のデータ幅はMonitor Interface のタブで設定することができます. )

IPの設定が完了したら以下の様に配線をしてデザインの編集は終了です.

あとは Generate Bitstream をし,
[File] → [Export] → [Export Hardware]
からプラットフォームを作成します.

Vivadoでの作業は一旦終了ですが,まだ使うので開いておいてください.

ここから Vitis での作業になります.

先ほど生成したプラットフォームと,Vitisコードを用意します.
Vitisでは,生成したプラットフォームで従来使用していたVitisコードを動作させるのみなのでコードを変更する必要はありません.
Vitisではコードにブレイクポイントを設定し,デバッグモードでアプリケーションを実行するだけです.今回は,自作IPを動作させる248行目にブレイクポイントを設定しました.
(行数あたりをダブルクリックすることでブレイクポイントを追加できます)

ブレイクポイントを設定したら,ビルドした後,[トンカチ][再生マーク][虫]というアイコンの虫を押し,Launch Hardware を押しFPGAを実行させます.

ここではまだ何もせず,Vivadoへ戻ります.

Vivadoでは,[ Open Hardware Manager ] → [ Open Terget ] → [ Refresh Device ] の順で進めると “hw_ila” が表れるのでクリックすると以下の様な画面になります.
”>>”マークを押すと強制的にキャプチャすることができるので,現在の信号を確認することができます.
”>”マークは,トリガーをセットしてから押すことで,トリガーでキャプチャすることができます.
基本的には,トリガーを指定し”>”を押し,Vitisに戻りプログラムをResumeし波形を確認するという流れになります.

実際に,Vitisへ戻り Resume (F8)で進めVivadoへ戻ることで無事に信号をキャプチャすることができました.

お疲れさまでした.

コメント