ILA(Integrated Logic Analyzer),集成逻辑分析仪,允许用户在FPGA设备上执行系统内的调试。作为一名FPGA工程师,掌握在线调试工具进行时序分析是必备的职业技能之一。
ILA通过一个或者多个探针(Probe)来实时抓取FPGA内部数字信号的波形,分析逻辑错误的原因,帮助debug。
下面我将介绍Vivado中ILA的两种使用方式:
一、IP核方式调用
在vivado中,打开IP核目录(IP Catalog),在搜索框中输入ILA(不区分大小写),按图示方式进行选择即可。
在等待一段加载时间后,我们会看到下图所示的打开界面:
- 探针数根据我们要测量的信号数进行选择,选择后会在左边的模块框内看到对应的端口(若无法正常显示,取消左上角Show disabled ports的√即可);
- 采样数据深度可根据计算机资源进行设置,可以偏大,一般情况下选择默认的1024即可;
- 其他按默认设置。
下一步对测量信号的位宽进行设置:
由于我们要检测的信号为“reg[31:0] timer_cnt”和“output reg[3:0] led”,因此位宽选择32和4。
至此,ILA已经生成,我们可在Source区看到我们已经命名的ILA,点击其下的.v文件,找到如下例化模板,将其添加到需要测量的模块中。
将其加入到模块中后,我们需要进行修改,如下图所示,具体的verilog语法请参考夏宇闻老师的《Verilog经典教程第三版》。
然后生成比特流文件(Generate Bitstream)并将打开硬件调试(Open Hardware Manager)。
二、直接添加调试语句 (*MARK_DEBUG=“true” *)
将此语句添加到我们要测量的信号前,如(* MARK_DEBUG=“true” *)output reg [3:0] led 。
而后进行综合(Run synthesis),在综合完成后,点击“Set Up Debug”,打开后逐步点击next即可。
硬件调试部分在此就不进行演示了。
至此就是ILA部分的全部介绍啦!