1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vivado----fpga硬件调试 (四)----mark_debug

vivado----fpga硬件调试 (四)----mark_debug

时间:2021-10-23 16:58:56

相关推荐

vivado----fpga硬件调试 (四)----mark_debug

在vivado中fpga功能验证比ise中方便了很多,主要体现在debug的ip核生成以及最后的波形观察和调试上,下面我就从这两个方面说一下vivado的fpga验证调试。

fpga验证的步骤一般是:

× 在代码中加入关键字,表示信号要被调试.

× 进行elaboration和synthesis.

× 打开synthesis, 设置debug核.

× 重新进行synthesis和implement以及write bitstream.

1,vivado中debug核的生成:

原来在ise中,要进行fpga的验证,必须生成两个debug核,一个是ICon,另外一个就是ILA,分别对应是控制和收集波形。但是在vivado中,我们只需生成ILA即可,不需生成ICon。

在生成ILA之前,我们要指定哪些信号应该被调试,原来在ise中,如果不用例化的方式的话,我们就必须一点点去net中找哪些信号应该被调试,很不方便,但是在vivado中,我们可以事先在源代码中加入关键字mark_debug="true"来告诉软件这个信号是要被调试的,从而在生成debug核的过程中,这些被调试的信号就直接显示出来了。如下所示:

[plain]view plaincopyprint? (*mark_debug="true"*)outputreg[17:0]wr_addr,//MemoryWriteAddress(*mark_debug="true"*)outputreg[7:0]wr_be,//MemoryWriteByteEnable(*mark_debug="true"*)outputreg[31:0]wr_data,//MemoryWriteData(*mark_debug="true"*)outputregwr_en,//MemoryWriteEnable(*mark_debug="true"*)inputwr_busy//MemoryWriteBusy 接着我们对加入关键字的代码进行elaborate和synthesis。等到综合完成之后,我们就要生成debug核了,生成debug核的方式有好几种,这里只说我感觉比较方便的一种,及Open Implemention Design下的Set Up Debug选项,如下所示:

上图中的信号就是我们在verilog源码中标记的要debug的信号,在生成debug核之前,首先要为debug核生成时钟信号,即上图蓝色圆圈标记的部分。这里Set UpDebug是自动为所选信号生成debug核,也就是说我们可以全选上面的信号,然后点击Next就自动生成所需要的debug核。

2,观察调试信号

在debug核生成之后,我们要对设计重新synthesis和implementation,然后生成比特流下载到fpga上进行验证。在配置好bit流和debug文件之后,就会自动出现调试波形接口,如下所示:

在调试窗口中,可以设置Tigger Setup,这里要说一个对实际观察波形非常方便的一个功能,就是在Trigger Setup窗口中可以选择一个信号,然后编辑enumeration,就是现实信号所代表的含义,而不是只现实数值,这在状态机观察中非常方便,如下图所示:

然后在点击Trigger程序就可观察实时的波形了,如下图所示:

如何保存vivado中ila采集到的数据

最后可以选择保存收集到的波形,可以看出上图中的Enumeration的作用(例如PIO_RX_WAIT_STATE不是数值而是名称),这个比chipscope方便多了,因为在chipscope里面好像就无法保存收集到的波形(至少我现在还没有找到),保存(上图蓝色圆圈标记的部分),可以选择不同的格式,Native(vivado本身波形的格式),CSV和VCD,保存成VCD格式,其他软件就能打开了。

导出csv或者vcd文件,vcd文件为通用波形文件,只能用来查看;所以只能通过csv文件解析数据。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。