0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Vivado调试ILA debug结果也许不对

汽车玩家 来源:科学计算technomania 作者:猫叔 2020-03-08 17:35 次阅读

FPGA的调试是个很蛋疼的事,即便Vivado已经比ISE好用了很多,但调试起来依旧蛋疼。即便是同一个程序,FPGA每次重新综合、实现后结果都多多少少会有所不同。而且加入到ila中的数据会占用RAM资源,影响布局布线的结果。

尤其是在时序紧张的情况下,ila占的资源越多,布线的难度就会越大。当时序不收敛时,就可能会导致一个问题,我们从ila中看到的信号可能不是真实的。

下面说一下今天在调试中碰到的现象:

场景还原:

1. 程序中有4个主时钟,而且一直处于在时序收敛的边缘状态,也就是说有时候Implementation后时序收敛,有时时序违规,但我没有去管,因为报时序违规的地方并不是我当时调试的代码处。

2. 数据的位宽较大,为256bit,要对该数据做一系列的处理,比如原始数据为A[255:0],在数据处理过程中需要将A赋值给B[255:0],再将B赋值给C[255:0]。

3. 数据C最后通过PCIe传给了上位机,在上位机中看到C波形有时会有毛刺,但不确定是哪一步出了问题,于是将A、B和C都引入到ila中,又多抓了几个相关的信号,加起来总共有800多bits。

4. 总的BARM占用率不超过40%,LUT RAM没超过10%,LUT和FF都没有超过30%,BUFG用了47%。

出现的问题:

1. 在没有加这么多的debug信号前,偶尔时序会报违规,但都是个别的一两处报的setup违规。但加了这些信号后,所有时钟的Intra-Clock Paths的Hold-up Time都违规。如果是建立时间不过,解决办法有很多,但保持时间不过,就有点麻烦了。但这肯定是增加了这么多的debug导致的,所以不用去理会。

2. 由于看到上位机中的波形有毛刺,首先确定C的数据是否有问题,排除PCIe传输中的错误。对比发现C和上位机的数据完全一样,因此毛刺肯定是出现在前面的逻辑中。

3. 发现A、B和C的数据都是不一致的,可能会出现下面的现象:

A的数据是xxxx10101010xxxx
B的数据是xxxx00101010xxxx
C的数据是xxxx10101011xxxx

也就是说,在B中发现数据出现了误码,1->0,但C中该bit依然是对的,跟原始数据的A是一样的,由于我们的 赋值过程是A->B->C。

说明可能有两种原因:

1. 从B到C的传输过程中,刚好在这个bit处产生了误码
2. 数据B的这个bit其实是正确的,只是抓出来的数据有问题

由于程序中在很多地方都会出现这种情况,所以认为第二种可能性更大一些。

总结:

在时序不收敛的情况下,我们通过ila抓出来的数据可能并不是真实的,在碰到这种问题时,可能需要我们先把时序调整后再进行后续调试。

最后,碰到这种问题怎么解决呢?最根本的解决办法当然是修改设计,使时序能够收敛。还有一种笨办法,由于程序Implementation后有时能收敛有时不能收敛,那我们就把时序收敛时的bit作Release即可,再对这个bit程序做详细测试。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21754

    浏览量

    604221
  • Vivado
    +关注

    关注

    19

    文章

    813

    浏览量

    66657
收藏 人收藏

    评论

    相关推荐

    keil在Debug的高级用法

    ,不建议安装网上的一些汉化包之类的。另外建立的工程文件路径也尽量不要存在中文,否则可能会出现一些异常。第二节基本调试方法1,基本调试操作:首先点击"Debug->
    的头像 发表于 12-26 21:01 174次阅读
    keil在<b class='flag-5'>Debug</b>的高级用法

    单片机Debug工具性能对比 单片机调试常用命令

    。以下是对单片机调试工具性能的简要对比以及一些常用的调试命令。 单片机Debug工具性能对比 Keil uVision 性能 :Keil uVision 是一款功能强大的集成开发环境(IDE),支持多种单片机,特别是ARM Co
    的头像 发表于 12-19 09:56 325次阅读

    单片机Debug与仿真区别

    单片机的开发是一个复杂的过程,涉及到硬件设计、软件开发和测试等多个环节。为了确保单片机能够按照预期工作,开发者需要使用Debug和仿真威廉希尔官方网站 来检测和修正代码中的错误。 Debug调试Deb
    的头像 发表于 12-19 09:47 217次阅读

    每次Vivado编译的结果都一样吗

    很多FPGA工程师都有这种困惑,Vivado每次编译的结果都一样吗? 在AMD官网上,有这样一个帖子: Are Vivado results repeatable for identical
    的头像 发表于 11-11 11:23 434次阅读
    每次<b class='flag-5'>Vivado</b>编译的<b class='flag-5'>结果</b>都一样吗

    GD32用Embedded软件debug在线调试失败的原因?

    请问GD32用Embedded软件debug在线调试失败可能是什么原因?
    发表于 09-27 07:13

    Multi-Scaler IP的Linux示例以及Debug(上)

    本篇文章介绍了在 ZCU106 上创建 Video Multi-Scaler IP 的 AMD Vivado™ Design Tool 和 Petalinux 工程;在 ZCU106 上 Run 生成的 Image,并测试生成的图像文件,以及常见问题的 Debug
    的头像 发表于 09-18 10:03 417次阅读
    Multi-Scaler IP的Linux示例以及<b class='flag-5'>Debug</b>(上)

    vca821的tina仿真,vg端电压为0,增益感觉结果不对,是哪里出了问题?

    vg端电压为0,增益感觉结果不对
    发表于 08-23 07:53

    AGC VAC821仿真结果不对是什么原因导致的?

    AGC VAC821仿真结果不对
    发表于 08-14 06:18

    如何在服务器上调试本地FPGA板卡

    该板卡,直接使用Recent Targets,之前的配置应该保存在列表中。如下图所示。 如下图所示连接后,即可正常使用 Vivado。FPGA 器件可以使用 ILA 内核进行编程和调试,就像在本地PC上操作一样,同
    发表于 07-31 17:36

    为什么我的项目Debug运行没问题,编译成Release包就报错?

    ,以提高应用性能和减少最终包的大小。相比之下,Debug模式优化级别较低,侧重于缩短编译时间和提高调试效率,
    的头像 发表于 06-12 11:18 1025次阅读
    为什么我的项目<b class='flag-5'>Debug</b>运行没问题,编译成Release包就报错?

    使用Python提取ILA数据的流程

    ILA应该是调试AMD-Xilinx FPGA最常用的IP。
    的头像 发表于 05-01 10:43 815次阅读
    使用Python提取<b class='flag-5'>ILA</b>数据的流程

    单片机开发环境中Release与Debug模式的对比分析

    Debug通常称为调试版本。通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不希望做优化,便于程序员调试程序。
    发表于 04-30 11:22 1376次阅读
    单片机开发环境中Release与<b class='flag-5'>Debug</b>模式的对比分析

    程序使用IAR软件在线调试debug时提示报错,用stvp下载程序,仿真不了的原因?

    程序使用IAR软件在线调试debug时提示“the debugging session could not be started,eiither the debugger
    发表于 04-26 06:41

    STM32F769无法debug的原因?

    我最近在调试 STM32F769 使用RT Thread 系统 开始移植已经成功 结果前几天出了问题 现在无法debugdebug 连接 提示 端口号无效GDB 端口当时是
    发表于 04-08 07:31

    如何在下载Bitstream后自动触发ILA采集

    在硬件调试时,经常需要用 ILA 采集一些 FPGA 内部或者对外的初始化信号,然而在下载完 Bitstream 后立即采集这些变化稍纵即逝的信号,比如在 1uS 内手动触发 ILA 采集信号,以
    的头像 发表于 02-23 09:45 877次阅读
    如何在下载Bitstream后自动触发<b class='flag-5'>ILA</b>采集