前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vivado综合属性:MARK_DEBUG

Vivado综合属性:MARK_DEBUG

作者头像
Lauren的FPGA
发布2019-10-31 00:37:38
2K0
发布2019-10-31 00:37:38
举报
文章被收录于专栏:Lauren的FPGALauren的FPGA

在使用Vivado Logic Analyzer(类似于ISE时代的ChipScope)时,常常会碰到的一个情形是想要观测的信号在综合后的网表中名字发生了变化而无法找到,这时可利用综合属性MARK_DEBUG解决(实际上,对于RTL代码描述的寄存器,Vivado综合后的名字是在其原始名后添加了_reg)。

第一步:打开elaborated design,不是综合后的设计,这一步是在综合之前完成的。在相应的Netlist窗口中找到待观测net。可采用如下方法寻找待观测的net:

-如果待观测的net与寄存器的输出端口相连,可利用RTL代码本身的层次结构先找到该寄存器

-借助Tcl脚本,直接在Tcl console中输入Tcl命令查找

第二步:选中该net,在属性窗口中找到MARK_DEBUG,并将其勾选。如下图所示。

此时,在Netlist窗口中,该net前会有一个bug标记,如下图所示。

第三步:保存当前设计。这样相应的MARK_DEBUG设置会作为约束写入Target约束文件中。

第四步:综合。打开综合后的设计,将Vivado切换到Debug模式,可弹出Debug窗口,并在该窗口内显示Unassigned Debug Nets,如下图所示。

之所以在综合之前的elaborated design中使用MARK_DEBUG,是因为这可保证该属性在综合过程中依然有效,这样即使相应的net名称发生了变化,但依然是最初设定的待观测信号。

此外,如果是直接使用Tcl脚本设定MARK_DEBUG,建议采用如下方式:

set_property MARK_DEBUG true [get_nets -of[get_pins pin_name]]

即先获取pin,在通过pin获取net。这保证了待观测信号是连接到该pin上的net,而不用担心这个net名称如何变化。

尽管MARK_DEBUG可以写在RTL代码中,但不建议这么去做。最好是写在单独的XDC文件中(与时序约束和管脚分配隔离开来),这样的好处是便于代码管理和维护,一旦工程调试完毕,可直接将此文件从工程中删除或者将其设置为无效。

结论

-MARK_DEBUG可用于快速定位待观测信号,建议在elaborateddesign时就开始使用

-MARK_DEBUG作用对象是net而不是cell

上期内容:

本周回顾--2018/03/16

下期内容:

Vivado综合属性:EXTRACT_ENABLE和EXTRACT_RESET

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lauren的FPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档