当前位置:   article > 正文

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

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核的几种方法

二、ILA的两种使用方式:

1、ILA ip 调试

  • 首先打开 IP Catalog

  • 搜索框输入 ila 并选择

  • 根据程序选择,下面程序为例 三个信号分别为 1 2  26 位(例程摘自正点原子)
  1. module led_twinkle(
  2. input sys_clk , //系统时钟
  3. input sys_rst_n, //系统复位,低电平有效
  4. output [1:0] led //LED灯
  5. );
  6. reg [25:0] cnt ;

 

 

 

  1. module led_twinkle(
  2. input sys_clk , //系统时钟
  3. input sys_rst_n, //系统复位,低电平有效
  4. output [1:0] led //LED灯
  5. );
  6. //reg define
  7. reg [25:0] cnt ;
  8. //*****************************************************
  9. //** main code
  10. //*****************************************************
  11. //对计数器的值进行判断,以输出LED的状态
  12. assign led = (cnt < 26'd2500_0000) ? 2'b01 : 2'b10 ;
  13. //assign led = (cnt < 26'd5) ? 2'b01 : 2'b10 ; //仅用于仿真
  14. //计数器在0~5000_000之间进行计数
  15. always @ (posedge sys_clk or negedge sys_rst_n) begin
  16. if(!sys_rst_n)
  17. cnt <= 26'd0;
  18. else if(cnt < 26'd5000_0000)
  19. // else if(cnt < 26'd10) //仅用于仿真
  20. cnt <= cnt + 1'b1;
  21. else
  22. cnt <= 26'd0;
  23. end
  24. ila_0 your_instance_name (
  25. .clk(sys_clk), // input wire clk
  26. .probe0(sys_rst_n), // input wire [0:0] probe0
  27. .probe1(led), // input wire [1:0] probe1
  28. .probe2(cnt) // input wire [25:0] probe2
  29. );
  30. endmodule

 调试完按可以删除

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

  • 端口信号经过ibuf

 

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

  • 保存后关闭

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/484447
推荐阅读
相关标签
  

闽ICP备14008679号