使用ILA在线调试工具的指南

        ILA 的全称叫 Integrated Logic Analyzer,集成逻辑分析仪,主要用于上板调试时对内部
一些信号波形进行观察,可以帮助定位问题。和 Altera Quqartus 中的 SignalTap II 工具类似,
下面将以计数器工程 bin_counter 举例讲解如何使用在线调试工具 ILA。实现使用在线调试
工具 ILA 实现对信号 cnt 和 led 信号进行上板抓线调试。具体步骤如下。
1、在计数器工程下,在如下图所示窗口点击 IP Catalog

2、在右边 IP Catalog 窗口下面 Search 处输入 ILA, 如下图所示。在下面搜索的结果中
找到 ILA(Integrated Logic Analyzer), 双击鼠标或单击右键选择并点击“Customize IP…”。

 3、进入到如下图所示的 IP 设置窗口界面。

 

 窗口具体设置介绍如下。
(1) Documentation: IP 相关文档入口,点击后出现如下内容

○1 Product Guide 是 IP 手册查看入口,点击可自动跳转到 Xilinx 官方文档 DocNav 软
件该 IP 手册的界面(前提是有安装 DocNav);
○2 Change Log 是 IP 版本更新记录,点击可以看到如错误!未找到引用源。 所示的 ILA
IP 更新记录。
 

○3 Product Webpage 是 IP 相关介绍的网页版,点击可跳转到如下图所示的 Xilinx 官方有
关该 IP 介绍的网站。
 

○4 Answer Records 是与 IP 相关的 Xilinx 官方疑问解答记录网页,点击可跳转到如下图
所示的网页。
 

2) IP Location:设置 IP 的存放路径入口,点击出现如下图所示窗口,在窗口里可以通过
点击“…” 设置更换存放路径, 默认是存放在工程路径下的 bin_counter.srcs\ sources_1\ ip,
这里我们就保持默认
 

(3) Switch to Default:点击后所有的设置恢复到默认值。
(4) Component Name:设置生成 IP Core 的名称,这里保持默认设置。
(5)这里是一个提示,提示通过该界面设置最多可设置 64 个探针,如果想设置更多的探针
需要使用 Tcl 脚本命令去设置,这里就不做详细描述,想要知道具体用法的,可以查询 IP 手
册。
(6) ILA 探针接口类型设置
 Native:常规普通接口模式
 AXI: AXI 接口模式,用于调试 AXI 接口信号
(7) Number of Probes:探针数量设置,在 GUI 界面最大可设置 64 个,如果需要调试查看
的内部信号超过 64 个,可以通过 TCL 脚本去生成 IP Core(这个在(5)处有这个提示,这
里不做详细描述,具体读者可以查看 IP 使用手册),或着可以通过生成多个 ILA IP Core 去
调试更多信号。根据前面我们的需求是对信号 cnt 和 led 信号进行抓线调试,这里需要设置
探针数量为 2。
(8) Sample Data Depth:采样数据深度,设置的数值越大,采样的数据越多,看到的波形
数据越多,但是最终占用的资源也会越多,并不是设置的越大越好。 如下图所示,从下拉框
也能看出最大也只能设置为 131072,这个根据实际需求进行合适的设置即可,我们这里选
择设置 4096。
 

(9)Same Number of Comparators for All Probe Ports:这里是设置相同探针接口的 Comparators的个数,不勾选,下面的 Number of Comparators 就会消失。默认勾选,后面的参数也保持默认,我们使用其基本功能。
(10) Trigger Out Port:触发输出端口,可用于 ILA 模块的级联或一些高级功能,具体使用
参考 IP 手册,这里保持默认不勾选。
(11) Trigger In Port:触发输入端口,可用于手工设置添加触发信号或进行 ILA 模块的级联
或一些高级功能,具体使用参考 IP 手册,这里保持默认不勾选。
(12) Input Pipe Stages:设置待探测信号打拍次数, 如下图所示,可设置数值 0~6,一般情
况下,采样时钟和探测信号是一个时钟域下,这里可以默认设置为 0 即可。
 

 (13) Capture Control:这里勾选后可在调试查看波形窗口进行对 Capture mode 的设置,如

果不勾选后面有关 Capture mode 就不可修改,这里勾选,具体使用在后面讲解。
(14) Advanced Trigger:这里勾选后可在调试查看波形窗口进行对 Trigger mode 的设置,
如果不勾选后面有关 Trigger mode 就不可修改,这里勾选,具体使用在后面讲解。
(15) Probe Width:探针数据信号的位宽设置,我们需要对一个 25bit 和 1bit 信号进行在线
观察,这里将 Probe0 位宽设置为 25, Probe1 位宽设置为 1。
(16) Number of Comparators:如果已经勾选(9)处,这里就不可设置,如果没有勾选,这
里就可以设置。保持默认即可。
(17) Probe Trigger or Data:对探针设置触发器或数据,如错误!未找到引用源。 所示,有 3
种可选项。
 DATA AND TRIGGER:既是数据又可作为触发条件;
 DATA:仅作为数据,不可作为触发条件;
 TRIGGER:仅可作为触发条件。

这里将 Probe0 和 Probe1 均设置为 DATA AND TRIGGER。以上所有设置完后的两个界
面如下图所示。
 

 

设置完后,点击 OK,出现如下图所示弹窗。
 

点击 Generate,出现如下图所示生成 IP 过程弹窗。
 

生成完后,出现如下图所示弹窗,点击 OK。
 

到这里 ILA IP 就已经生成好了。可以在如下图所示的工程 Source 窗口点击 IP Sources
可以查看生成的 ILA Core 的一些文件。
 

如下图所示,通过点开左侧的扩展,可以在 Instantition Template 下找到.veo 的文件,该
文件是这个 IP Core 的例化模板,可通过双击查看该模板的代码。
 

双击 ila.veo 文件,可以看到如下图所示的例化模板代码。
 

该 ILA 模块有 3 个信号,一个时钟信号 clk,两个探测信号,时钟信号就是采样时钟,
探测信号就是前面通过 IP 生成界面设置的探测信号,分别是 25bit 和 1bit 信号。将其复制粘
贴到我们的工程文件的顶层进行例化,具体代码如下。
 

module bin_counter
(
clk,
reset_n,
led
);
input clk;
input reset_n;
output led;
reg led;
assign reset=~reset_n;
parameter MCNT = 24_999_999;
reg [24:0]cnt; //定义计数器寄存器
//计数器计数进程
always@(posedge clk or posedge reset)
if(reset)
cnt <= 25'd0;
else if(cnt == MCNT)
cnt <= 25'd0;
else
cnt <= cnt + 1'b1;
//led输出控制进程
always@(posedge clk or posedge reset)
if(reset)
led <= 1'b1;
else if(cnt == MCNT)
led <= ~led;
else
led <= led;
ila_0 ila_0 (
.clk(clk), // input wire clk
.probe0(cnt), // input wire [24:0] probe0
.probe1(led) // input wire [0:0] probe1
);
endmodule

对工程进行分析综合、编译直到没有错误,然后生成 bit 文件。在如下图所示 Bit 下载
窗口将 bit 文件下载到开发板。

在下载程序窗口可以看到,除了下载 bit 文件,还同时需要下载 ltx 文件,这个文件生成
位置和 bit 文件是在同一个目录下,下载的时候,软件会自动关联到 ltx 文件和 bit 文件一起
下载到板子。程序下载完成后出现如下图所示界面。
 

如下图所示,是在线调试的波形窗口
 

 

上图中的各个子窗口的的功能作用如下。
 窗口 1:波形显示窗口,可以通过该点击➕添加想查看的波形的信号。因为在 IP
设置中对探针设置的时候, cnt 和 led 信号的 Probe Trigger or Data 属性设置为了
“DATA AND TRIGGER”,所以这里可查看的信号有 cnt 和 led。
 

窗口 2: ILA Croe 的状态显示窗口。
 窗口 3:添加触发信号窗口, 如下图所示,点击窗口内➕ 添加产生触发条件的信
号(两个地方的➕ 都可以进行信号的添加),点击后,在弹出的 Add Probes 窗口
选择需要添加的信号。 因为在 IP 设置中对探针设置的时候, cnt 和 led 信号的 Probe
Trigger or Data 属性设置为了“DATA AND TRIGGER”,所以这里可查看的信号有
cnt 和 led。
 添加触发信号后的窗口如下图所示。

 

添加好触发信号后,需要设置触发条件,触发条件有多个地方可进行设置。假设现在我们想
设置在满足 cnt == 24999999 并且 led == 0 时触发进行一次信号的抓取,设置如下:
○1 设置触发情况,下面是设置多个信号产生触发信号时的条件,与、或、同或、异或,
这里根据需求设置“Set Trigger Condition to‘Global AND’”表示。
 (1)设置操作类型,
 

(2)设置信号数值的进制,可以选择无符号的十进制数,

(3)设置数值 24999999
 

(4)同样的方式对信号 led 进行设置。
触发条件设置完后,点击 Run。
 可以看到满足触发条件后的波形窗口。

点击波形放大,可以清楚的看到触发处的波形。
 波形信号的数值采用的是 16 进制显示,可以更改设置让其采用 10 进制显示,具体设置如
下。

更改数值显示为十进制后的波形显示如下:
 窗口 4:设置触发显示窗口,点击窗口右上角的方框放大这个窗口,可以看到这个窗口全部
的设置参数。

(1)Trigger mode:触发模式设置,选择默认的 BASIC_ONLY 即可,有关 ADVANCED_ONLY
模式的具体使用,可查看 IP 手册。
 (2) Capture mode:捕获模式设置,选择默认的 BASIC 即可,有关 ALWAYS 模式的具体使
用,可查看 IP 手册。

 

注:有关上述(1)(2),如果在前面的 IP 创建的时候不勾选 13、 14 处的选项,上述(1)
(2)是不可设置的。
 3) Number of windows:显示窗口个数,默认为 1,更改这里为 2,这里更改后下面 Windows
data depth 的最大值会自动变为 2048(4096=2*2048=4*1024=……)
(4) Windows data depth:窗口显示数据深度,上面设置为 2 后,这里最大可设置为 2048,
设置 2048 即可。
(5) Trigger position in windows:设置触发位置在窗口波形中显示的位置,一般根据需求设
置,这里设置波形窗口的中间位置,即设置为 1023
(6) Refresh rate:连续触发模式下,相邻触发之间的刷新时间,这里保持默认即可。
设置完这些参数后的如下图所示:

 

         从触发的波形可以看出,与之前波形相比,现在是出现两次触发波形,与我们上面设置
的窗口个数是对应的。
        整个在线调试工具ILA Croe的使用基本就讲完了,如果需要了解更多有关ILA 的使用,
可以进行更多的尝试和查看 IP 手册。
        本章以计数器为例学习了简单的时序逻辑设计,并学习了在线调试工具 ILA 的用法。

物联沃分享整理
物联沃-IOTWORD物联网 » 使用ILA在线调试工具的指南

发表评论