先简单介绍一下ILA(Integrated Logic Analyzer)生成方法。这里有两种办法完成Debug Core的配置和实现。

方法一、mark_debug综合选项+Set Up Debug设定ILA参数。

1、在信号(reg或者wire)声明处加mark_debug选项,方法如下:

// spi_mosi信号标记为需要ILA观测的信号
(* MARK_DEBUG = “TRUE” *) wire spi_mosi;

mark_debug用法的详细说明请看Xilinx文档UG901_Synthesis

2、综合,进行Run Synthesis

3、Open Synthesized Design,打开Set Up Debug,如图:

4、为ILA Debug Core添加需要观测的信号,结果如图:

每一个信号都要指定一个采样时钟域(Clock Domain)。

关于添加方法,还可以在Netlist窗口拖动信号到这个列表内。

注意到Netlist中有些信号名称前面有了绿色的小蜘蛛(小星星) ,正是Verilog程序中进行mark_debug的信号:

5、在Set Up Debug中设定信号采样收集的深度(Sample of data depth),输入流水级别数(Input pipe stages),Capture control和Advanced trigger选项。

6、完成ILA配置,保存Debug Setup,Run Implementation

说明:

完成了Debug Setup以后重新进行Implementation,XDC文件中被附加上了配置debug Core的XDC语句,例如:

# 下面这句创建一个新的调试核,名称u_ila_0
create_debug_core u_ila_0 ila
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
set_property ALL_PROBE_SAME_MU_CNT 4 [get_debug_cores u_ila_0]
set_property C_ADV_TRIGGER true [get_debug_cores u_ila_0]
set_property C_DATA_DEPTH 8192 [get_debug_cores u_ila_0]
set_property C_EN_STRG_QUAL true [get_debug_cores u_ila_0]
set_property C_INPUT_PIPE_STAGES 3 [get_debug_cores u_ila_0]
set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
# 下面这句为u_ila_0调试核设定端口clk的宽度为1
set_property port_width 1 [get_debug_ports u_ila_0/clk]
# 下面这句为u_ila_0调试核设定采样时钟信号(clk)为sys_sam_clk
connect_debug_port u_ila_0/clk [get_nets [list sys_pll_01/inst/sys_sam_clk]]
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe0]
set_property port_width 21 [get_debug_ports u_ila_0/probe0]
# 下面这句为u_ila_0调试核连接待观测信号corr_i_quant
connect_debug_port u_ila_0/probe0 [get_nets [list {corr_i_quant[0]} {corr_i_quant[1]} {corr_i_quant[2]} {corr_i_quant[3]} {corr_i_quant[4]} {corr_i_quant[5]} {corr_i_quant[6]} {corr_i_quant[7]} {corr_i_quant[8]} {corr_i_quant[9]} {corr_i_quant[10]} {corr_i_quant[11]} {corr_i_quant[12]} {corr_i_quant[13]} {corr_i_quant[14]} {corr_i_quant[15]} {corr_i_quant[16]} {corr_i_quant[17]} {corr_i_quant[18]} {corr_i_quant[19]} {corr_i_quant[20]}]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe1]
set_property port_width 12 [get_debug_ports u_ila_0/probe1]
connect_debug_port u_ila_0/probe1 [get_nets [list {rdq[0]} {rdq[1]} {rdq[2]} {rdq[3]} {rdq[4]} {rdq[5]} {rdq[6]} {rdq[7]} {rdq[8]} {rdq[9]} {rdq[10]} {rdq[11]}]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe2]
set_property port_width 12 [get_debug_ports u_ila_0/probe2]
connect_debug_port u_ila_0/probe2 [get_nets [list {rdi[0]} {rdi[1]} {rdi[2]} {rdi[3]} {rdi[4]} {rdi[5]} {rdi[6]} {rdi[7]} {rdi[8]} {rdi[9]} {rdi[10]} {rdi[11]}]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe3]
set_property port_width 12 [get_debug_ports u_ila_0/probe3]
connect_debug_port u_ila_0/probe3 [get_nets [list {tdi[0]} {tdi[1]} {tdi[2]} {tdi[3]} {tdi[4]} {tdi[5]} {tdi[6]} {tdi[7]} {tdi[8]} {tdi[9]} {tdi[10]} {tdi[11]}]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe4]
set_property port_width 12 [get_debug_ports u_ila_0/probe4]
connect_debug_port u_ila_0/probe4 [get_nets [list {tdq[0]} {tdq[1]} {tdq[2]} {tdq[3]} {tdq[4]} {tdq[5]} {tdq[6]} {tdq[7]} {tdq[8]} {tdq[9]} {tdq[10]} {tdq[11]}]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe5]
set_property port_width 1 [get_debug_ports u_ila_0/probe5]
connect_debug_port u_ila_0/probe5 [get_nets [list bb_sam_clk_5]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe6]
set_property port_width 1 [get_debug_ports u_ila_0/probe6]
connect_debug_port u_ila_0/probe6 [get_nets [list AD_SPI_MOSI_OBUF]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe7]
set_property port_width 1 [get_debug_ports u_ila_0/probe7]
connect_debug_port u_ila_0/probe7 [get_nets [list AD_SPI_CLK_OBUF]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe8]
set_property port_width 1 [get_debug_ports u_ila_0/probe8]
connect_debug_port u_ila_0/probe8 [get_nets [list AD_SPI_EN_B_OBUF]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe9]
set_property port_width 1 [get_debug_ports u_ila_0/probe9]
connect_debug_port u_ila_0/probe9 [get_nets [list AD_SPI_MISO_IBUF]]
set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
connect_debug_port dbg_hub/clk [get_nets sys_ref_clk_BUFG]

方法二、HDL文件中例化ILA IP Core。

在IP Catalog中添加ILA核,基本的参数有:需要观测的信号个数(Number of Probes),采集深度(Sample data depth)和各个信号探头(Probe)的位宽。

调试时需要在Debug Probes 里面增加信号到波形窗口中!

Vivado ILA观察信号和调试过程的更多相关文章

  1. 关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态

    关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态 由于火狐浏览器没有安装 Adobe Flash Player 19 NPAPI这个插件 安装好了之后就可以直接运行了

  2. S3C6410裸奔之旅——RVDS2.2编译、仿真、调试过程 LED流水灯---转的

    S3C6410裸奔之旅——RVDS2.2编译.仿真.调试过程 LED流水灯 (2012-10-13 23:56:30) 转载▼ 标签: s3c6410裸奔 ok6410 rvds2.2 rvds2.2 ...

  3. MYSQL存储过程调试过程

     mysql不像oracle有plsqldevelper工具用来调试存储过程,所以有几种简单的方式追踪执行过程: 1.用一张临时表,记录调试过程: 2.直接在存储过程中,增加select xxx,在控 ...

  4. stm32--FatFs调试过程(SPIFlash)

    移植方法参见我的另一篇博客:<stm32--FatFs移植(SPIFlash)>. 本文仅记录在初次移植完成后,遇到的问题,和解决的过程. 调试记录: 问题1:f_open返回3,即磁盘没 ...

  5. Android APP 调试过程中遇到的问题。

    调试过过程中APP安装完启动后有的时候会异常退出,报这个错误.有的时候可以直接启动.查找不到原因.网上说把commit方法替换成commitAllowingStateLoss() 也无效. Andro ...

  6. 调试过程中发现按f5无法走进jdk源码

    debug 模式 ,在fis=new FileInputStream(file); 行打断点 调试过程中发现按f5无法走进jdk源码 package com.lzl.spring.test; impo ...

  7. 0xe7f001f0!?NDK调试过程,无故抛出SIGSEGV。

    arm调试过程,如果抛一个SIGSEGV,地址在 0xe7f001f0 附近,原因居然是因为我在调试.当我使用n指令跳到下一行代码时,往往变成了continue指令一样地执行.还不确定地抛出SIGSE ...

  8. VS·调试过程中某个操作导致调试突然退出之解决方案

    阅文时长 | 0.11分钟 字数统计 | 232字符 主要内容 | 1.引言&背景 2.声明与参考资料 『VS·调试过程中某个操作导致调试突然退出之解决方案』 编写人 | SCscHero 编 ...

  9. Vivado与SDK的联合调试方法-使用ILA

    首先介绍一下我的硬件平台:使用的开发板为米联客出的MIZ702,这个开发板与ZedBoard是兼容的. Vivado硬件调试有几种手段:ILA(集成逻辑分析器Integrated Logic Anal ...

随机推荐

  1. 【剑指Offer面试编程题】题目1509:树中两个结点的最低公共祖先--九度OJ

    题目描述: 给定一棵树,同时给出树中的两个结点,求它们的最低公共祖先. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行为一个数n(0<n<1000),代表测试样例的个数 ...

  2. 【PAT甲级】1055 The World's Richest (25 分)

    题意: 输入两个正整数N和K(N<=1e5,K<=1000),接着输入N行,每行包括一位老板的名字,年龄和财富.K次询问,每次输入三个正整数M,L,R(M<=100,L,R<= ...

  3. 笔记-pymysq-exception

    笔记-pymysq-exception 1.  exception DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常: 基本上是继承了Exception基类,没有添加额外功能. ...

  4. 吴裕雄--天生自然 JAVA开发学习:java使用Eclipel连接数据库

    1:jar可到Mysql官网下载:地址Mysql 连接jar包.:https://dev.mysql.com/downloads/connector/j/如图,在下拉列表框中选择Platform In ...

  5. vue-cli 手脚架mock虚拟数据的运用,特别是坑!!!

    1.现在基本的趋势就是前后分离,前后分离就意味着当后台接口还没完成之前,前端是没有接口可以拿来调用的 ,那么mock虚拟数据就很好的解决了这一问题,前端可以直接模拟真实的数据AJAX请求! 运用 步骤 ...

  6. Mysql ,用户管理命令

    添加用户.删除用户与授权以下对数据库的操作完全可以利用管理软件完成,比如在Navicat上进行操作,对数据库进行用户和权限管理. 1.创建用户:以root用户登录到数据库进行用户创建 命令: CREA ...

  7. RHEL6配置CentOS yum源

    RHEL6配置CentOS yum源

  8. core版本使用ef连接数据库(一)

    参考 参考代码 sqlserver数据库:①Nuget: Microsoft.EntityFrameworkCore.SqlServer ORACLE数据库:①Nuget: Oracle.Entity ...

  9. zabbix通过ipmi传感器监控浪潮服务器的硬件信息

    一:实验对象 操作系统版本:centos7.6 监控对象:通过服务器传感器获取到的所有在使用的硬件信息 zabbix版本: 4.0.14二:zabbix介绍 zabbix适合中小型企业.大型企业的用户 ...

  10. Java 后端压缩图片

    import java.io.*;import java.util.Date;import java.awt.*;import java.awt.image.*;import javax.imagei ...