VIVADO下ILA使用指南

      ILA是VIVADO下的一个DEBUG- IP,类似于片上逻辑分析仪,通过在RTL设计中嵌入ILA核,可以抓取信号的实时波形,帮助我们定位问题。本文档以一个简单的COUNTER设计为例,对VIVADO(2014.1)下ILA核的使用进行说明。

第一部分   RTL设计

    module counter

    (

    input            clk,

    output   [3:0]  q

    );

 

    wire       clk;

     

    //想抓取cnt信号进行观察

    (* keep ="TRUE" *)reg [3:0]  cnt = 4'd0;

 

    assign   q = cnt;

 

 

    [email protected](posedge clk)

    begin

       cnt <= cnt +4'd1;

    end

 

    endmodule

 

第二部分   加入LIA核

在vivado工程中,打开IP Catalog选项,找到ILA核

【Vivado——调试之方法二】 例化ila核

进入ILA核的配置界面(2页)

第一页

【Vivado——调试之方法二】 例化ila核

 

在“component Name”可以修改例化名, 在“Number of Prober”可以修改想抓取信号的分组个数,在本例中仅观察1组信号cnt,在“sample Data Depth”可以修改抓取信号的深度,本例选择默认值1024。其他选项保持默认值。

 

第二页

 

 【Vivado——调试之方法二】 例化ila核

在“Probe Width”选择各分组信号的位宽,我们需要观察的cnt信号为4bit,这里选择4。

点击OK,到此为止,ILA的配置完成

 

第三部分  在RTL中嵌入ILA核

在vivado工程的sources窗口找到刚生成的ILA核的例化代码

【Vivado——调试之方法二】 例化ila核

将其复制到RTL设计中,并连接好信号

    module counter

    (

    input            clk,

    output   [3:0]  q

    );

 

    wire       clk;

     

    //想抓取cnt信号进行观察

    (* keep ="TRUE" *)reg [3:0]  cnt = 4'd0;

 

    assign   q = cnt;

 

 

    [email protected](posedge clk)

    begin

       cnt <= cnt +4'd1;

    end

 

    ila_0  u_ila

    (

    .clk     (clk),

    .probe0  (cnt)

    );

 

    endmodule

 

ps:ILA的clk需要连接到需要观察信号的相应时钟域,在一个RTL中可以嵌入多个ILA,方便观察不同时钟域 的信号

 

 

第四部分  使用vivado在线抓取信号波形

1)修改完RTL后,点击Generate Bitstream生成bit文件

2)开发板上电,接上JTAG下载器,然后打开open Target

【Vivado——调试之方法二】 例化ila核

打开Open New Target..

【Vivado——调试之方法二】 例化ila核

点击Next

【Vivado——调试之方法二】 例化ila核

点击Next

【Vivado——调试之方法二】 例化ila核

点击Next

 【Vivado——调试之方法二】 例化ila核

 

点击Finish

 

 

发现vivado界面的左下角的Program Device选项变亮,点击该选项,下载bit文件

【Vivado——调试之方法二】 例化ila核

【Vivado——调试之方法二】 例化ila核

 

点击Pro...

开始下载

 

 【Vivado——调试之方法二】 例化ila核

 

 

 

 

下载完成,vivado界面发生变化

 

【Vivado——调试之方法二】 例化ila核

打开window菜单栏,选择Debug Probes选项,界面会多出一个Debug Probes窗口

【Vivado——调试之方法二】 例化ila核

 

 

将需要观察的信号cnt 信号“拖入”右侧的Basic Trigger Setup窗口

【Vivado——调试之方法二】 例化ila核

 

在这个界面中可以修改触发条件(cnt=2),触发深度(1024),触发位置(500)等参数(类似于chipscope)

【Vivado——调试之方法二】 例化ila核

 

点击左侧的触发开关,vivado会自动打开一个wave窗口

 【Vivado——调试之方法二】 例化ila核

 

 

通过放大波形,可以观察波形细节

【Vivado——调试之方法二】 例化ila核

 

 

相关文章: