(三)vivado硬件调试ILA的使用

 一、介绍

ILA:integrated logic analyzer 集成逻辑分析仪

可定制的集成逻辑分析仪 (ILA) IP 内核是一种逻辑分析仪内核,可用于监控设计的内部信号。ILA 内核包含现代逻辑分析仪的许多高级功能,包括布尔触发方程和边沿转换触发。因为 ILA 内核与被监控的设计同步,所以应用于您的设计的所有设计时钟约束也应用于 ILA 内核内部的组件。

主要特点和优势

  • 用户可选择的触发宽度、数据宽度和数据深度
  • 多个探头端口,可以组合成一个触发条件
  • ILA IP 内核上的 AXI 接口,用于调试系统中的 AXI IP 内核
  • 有关 ILA 内核的更多信息,请参阅 Vivado Design Suite 用户指南:编程和调试

(上述介绍部分摘自xlink官网:Integrated Logic Analyzer (ILA))

添加ILA核的几种方法

(三)vivado硬件调试ILA的使用_第1张图片

二、ILA的两种使用方式:

1、ILA ip 调试

  • 首先打开 IP Catalog

(三)vivado硬件调试ILA的使用_第2张图片

  • 搜索框输入 ila 并选择

(三)vivado硬件调试ILA的使用_第3张图片

  • 根据程序选择,下面程序为例 三个信号分别为 1 2  26 位(例程摘自正点原子)
module led_twinkle(
    input          sys_clk  ,  //系统时钟
    input          sys_rst_n,  //系统复位,低电平有效

    output  [1:0]  led         //LED灯
);

reg  [25:0]  cnt ;

(三)vivado硬件调试ILA的使用_第4张图片

(三)vivado硬件调试ILA的使用_第5张图片

 (三)vivado硬件调试ILA的使用_第6张图片

 (三)vivado硬件调试ILA的使用_第7张图片

 (三)vivado硬件调试ILA的使用_第8张图片

module led_twinkle(
    input          sys_clk  ,  //系统时钟
    input          sys_rst_n,  //系统复位,低电平有效

    output  [1:0]  led         //LED灯
);

//reg define
reg  [25:0]  cnt ;

//*****************************************************
//**                    main code
//*****************************************************

//对计数器的值进行判断,以输出LED的状态
assign led = (cnt < 26'd2500_0000) ? 2'b01 : 2'b10 ;
//assign led = (cnt < 26'd5)         ? 2'b01 : 2'b10 ;  //仅用于仿真

//计数器在0~5000_000之间进行计数
always @ (posedge sys_clk or negedge sys_rst_n) begin
    if(!sys_rst_n)
        cnt <= 26'd0;
    else if(cnt < 26'd5000_0000)
//  else if(cnt < 26'd10)  //仅用于仿真
        cnt <= cnt + 1'b1;
    else
        cnt <= 26'd0;
end

ila_0 your_instance_name (
    .clk(sys_clk), // input wire clk


	.probe0(sys_rst_n), // input wire [0:0]  probe0  
	.probe1(led), // input wire [1:0]  probe1 
	.probe2(cnt) // input wire [25:0]  probe2
);
endmodule

(三)vivado硬件调试ILA的使用_第9张图片

(三)vivado硬件调试ILA的使用_第10张图片

 调试完按可以删除

(三)vivado硬件调试ILA的使用_第11张图片

二、网表添加探针方式调试

(三)vivado硬件调试ILA的使用_第12张图片

  • 端口信号经过ibuf

(三)vivado硬件调试ILA的使用_第13张图片

 

  •  (*mark_debug="true"*) 加入
(*mark_debug="true"*) reg  [25:0]  cnt ;
  • 关掉SYNTHESIS 重新分析打开

(三)vivado硬件调试ILA的使用_第14张图片

(三)vivado硬件调试ILA的使用_第15张图片

(三)vivado硬件调试ILA的使用_第16张图片

(三)vivado硬件调试ILA的使用_第17张图片

(三)vivado硬件调试ILA的使用_第18张图片

  • 保存后关闭

 

(三)vivado硬件调试ILA的使用_第19张图片

你可能感兴趣的:(FPGA,fpga开发)