vivado调试核ILA使用技巧

  ILA(Integrated Logic Analyzer)IP Core 是 vivado 的调试核,具体如何创建、调用就不详说了。这里主要记录一个 ILA 的使用技巧,可以大大提高调试效率。

  在 Program Device 后,如果添加了 ILA 核,则会出现以下的调试界面

在这里插入图片描述

在界面右下方的 Trigger 界面,可以设置触发点,‘+’、‘-’ 分别可以增加、删除触发信号,当满足触发条件时,ILA 会将触发点前后一段的数据抓取并显示。

  默认情况下,对于深度为 Length 的 ILA 核,触发点会在 Length/2 处,前后分别抓取 Length/2 个数据,这对于大部分的时序分析已经足够了。

  然而对于一些变化缓慢的信号,Quartus 中的 Signal Tap 可以使用对应的缓慢时钟取抓取,但在 vivado 中 ILA 时钟必须是自由时钟(即外接晶振的时钟)或者由 PLL IP 输出的时钟(PLL 最低可以输出 5M),而不能使用用户计数分频产生的衍生时钟。这样一来,如何抓取缓变信号(例如以 UART 传输的数据报的内容),就成为一个问题。

  所以重点来了(敲黑板),在 ILA 调试界面的左下 Settings 窗口中,如下图

在这里插入图片描述

可以看到几个设置项,Number of windows 项是设置采样窗口的数量(比如这里设为 10 个窗口),Window data depth 设置每个采样窗口的长度(我这里设为了 512),Trigger position in window 是设置在每个窗口中触发点的位置(比如我这里设为 255,对应第 256 个采样点(这个值是从 0 开始的)),则在运行一次 ILA 抓取后,可以看到生成了 10 个黑灰相间的窗口,每个窗口长 512,每个窗口中的触发点(T 红色竖线)都位于当前窗口的第 256 个采样点处。

  如此,抓取缓变信号就很简单了,比如要抓取 UART 传输的数据报内容,就可以把 UART_rx_done 信号作为触发信号,然后设置合适的采样窗口数和窗长,监控 UART_rddat[7:0],这样在执行一次 ILA 后,就可以获得整个报文的字节内容了。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今朝无言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值