FPGA的MARK_DEBUG调试之波形抓取

一、描述

        在工作时发现FPGA向ARM传输的数据有问题,因此想抓取一下FPGA的波形。作为传统方式使用示波器抓取过于麻烦,因此使用VIVADO自带的DEBUG功能抓取输出的数据波形。

先上几个比较好的学习链接:

https://www.cnblogs.com/tubujia/p/9242895.html

二、实现步骤

2.1、添加(*MARK_DEBUG="true"*)

        在调试需要调试的信号前加入MARK标志点,要注意在添加MARK点

注意:一定要把该信号的触发信号也加入,MARK点不能加在input、output上,只能加在wire、reg信号上进行抓取。

如图所示:

当我想要查看input和output信号时,并不会在input和ouput前面加入MARK点,而是加载与之相连结的wire或者reg量上。

在想观测的信号上,添加好MARK_DEBUG后进行保存。

2.2、Set Up Debug

          添加好mark点后进行,RTL代码编译,然后进行Synthesis综合。使用Synthesis综合工具中的Set Up Debug进行信号的添加,添加时注意其时钟

添加调试设置:两个启动条件打上对(网上很多文档和教学视频上并没有管,后期会有影响

然后点击下一步进入Set up Debug Summary界面预览,点击完成就可以将MARK信号进行添加了。Ctrl+S进行保存,会自动在XDC文件中添加debug_core:ila调试IP核,同时会添加信号以及相应的时钟信息,增加probe探针连接检测信号。

以上DEBUG已经加入完成,是不是很简单,但是从不会到完成的时候还是挺曲折的。 

2.3、bit/bin流文件生成

        首先通过Implementayion进行代码的实现,实现完成后生成bit文件,这一步很简单就不细说了,下面以bit文件进行调试,(bit文件会烧录到FPGA的ram中,掉电会自动清除;bin文件会存储到flash中掉电不会清除

2.4、下载程序

在下载bit流文件时,需要同时下载debug_net.ltx约束文件

2.5、调试

下载好程序后会进入调试界面:

点击调试运行,可以看出出发信号在高低电平之间切换,但是对于所监控的信号来说低电平是并不想要监控到的,因此需要选择触发方式,若在2.2不设置启动条件,则是无法选择的。

选择出发条件,在触发信号为高电平时输出:

可以看到调试显示的波形一直是出发信号为高点评的状态,能更多的监控到波形数据。

同时可以设置查看方式,来查看其波形

### 回答1: (*mark_debug = true*)是一种在程序中设置调试标记的方法。它的作用是在程序运行时打开调试模式,以便开发人员可以更方便地调试程序。在调试模式下,程序会输出更多的调试信息,以帮助开发人员找出程序中的错误和问题。这个方法通常用于开发阶段,当程序发布时,应该将调试标记关闭,以避免泄露敏感信息和影响程序性能。 ### 回答2: "(*mark_debug =true*)"是一种常见的编程注释语句,可用于调试程序代码。在编写程序时,我们通常会遇到一些错误和bug。为了找到这些问题并修复它们,我们需要使用一些工具进行调试。而添加"(*mark_debug =true*)"注释语句则可以帮助我们更方便地进行程序调试。 具体来说,"(*mark_debug =true*)"可用于标记程序中的某个地方,表示该处是需要调试的地方。在程序运行时,当运行到该处时,程序会自动停止,等待我们进行调试。我们可以在这个位置添加一些断点,观察程序的执行情况,分析程序的问题,并修复代码。 除了在开发过程中进行调试之外,"(*mark_debug =true*)"注释语句还可以用于程序的测试和预测。通过在程序中添加这些注释语句,我们可以先模拟程序的执行流程,预测程序的输出结果,以及测试程序的健壮性和效率。 总的来说,"(*mark_debug =true*)"注释语句是一种非常有用的编程工具,可以帮助我们快速定位和解决程序中的问题,提高程序的稳定性和效率。当然,在使用这个注释语句时,我们需要根据具体的情况进行灵活运用,避免过度依赖它,以免影响程序的质量和性能。 ### 回答3: (*mark_debug = true*) 是一种编程中常用的标记标记,它通常被用来在代码中调试和查找错误。当设置为 true 时,它将启用 debug 模式,允许开发人员在代码中插入各种调试语句。 (*mark_debug = true*) 可以在程序的任何地方使用,但通常被放置在需要进行调试的代码段之前。例如,当程序出现错误时,可以在错误的代码处设置此标记,以便快速定位和修复问题。 除了标记错误代码之外,(*mark_debug = true*) 还可以用来帮助开发人员理解程序的执行状态。它可以在程序的各个阶段打印信息,从而帮助开发人员排除任何潜在的错误。 需要注意的是,如果在程序上线前忘记去掉 (*mark_debug = true*) 标记,会导致程序的安全问题和性能问题。因此,在发布代码之前,开发人员必须手动去除此标记。 总的来说,(*mark_debug = true*)是一种非常有用的编程工具,在开发过程中帮助开发人员定位和解决问题。但是,在程序发布和上线前,必须仔细检查并移除此标记,以确保程序的安全和高效运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

追逐者-桥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值