Vivado中Debug操作方式总结(ILA)

Vivado中提供了多种Debug的操作方式,下面就来总结一下:

方式一:代码中例化ILA IP核

在这里插入图片描述
需要探测多少个信号,信号的位宽是多少,直接选择即可:
在这里插入图片描述
下面界面可以选择探测信号宽度以及触发方式:
在这里插入图片描述

方式二:通过网表标记

综合后生成网表,在网表中设置Debug:Mark Debug
在这里插入图片描述
或者在综合后的原理图中Mark Debug,这和网表debug是一致的:
在这里插入图片描述
在标记Debug后,就等于选择了需要debug的信号,之后在综合设置里设置Debug参数即可:
在这里插入图片描述
选择需要Debug的信号,设置时钟域以及触发方式等:
在这里插入图片描述
选择采样深度:
在这里插入图片描述
之后,重新综合,实现生成bit流文件即可完成debug,准备上板子吧。

注意:有些信号能够Mark Debug,有些则不能,例如模块直接的输入信号不能:
在这里插入图片描述
它经过一个Buf之后就可以:
在这里插入图片描述
最后的输出也不能?
在这里插入图片描述

哎呀, 具体什么个原则我也不知道了,不如就直接在网表中试试吧,如果不行,就找类似的代替呗。

综合后,也许你说自己找不到原理图在哪里,那就看这里:
在这里插入图片描述
方式二已经很实用了吧,不用修改代码!

方式三:代码中Mark_debug

在这里插入图片描述
之后综合,再set up debug,之后的操作同方式二。

最后说一下,set up debug只会对通过在网表中添加的信号起作用,也即如果你之前通过例化ILA IP核已经添加了一些debug信号,那么在set up debug窗口中是不显示的。

通过ILA添加的debug信号和通过在网表中添加的debug信号属于不同的debug core,在调试窗口可以切换。即使都是通过网表添加的debug信号,由于是不同时间添加的以及设置问题也可能属于不同的debug core。

如果一些信号在网表中找不到,可能是被优化掉了,那么可以在代码里的信号前面加上keep标记以使信号避免被优化,如下所示:

(* KEEP="TRUE" *)     wire                     clk_125M;
posted @ 2021-04-21 11:35  耐心的小黑  阅读(859)  评论(0编辑  收藏  举报