Vivado中DONT TOUCH该如何使用?

描述

问题

在FPGA编码中,经常会遇到一些信号、模块等被综合工具优化,而有些信号恰恰是我们需要的,或者需要观测的,针对这种情况,DONT TOUCH可以满足我们的需求,该属性的使用频率也较高。

属性说明

DONT TOUCH可以用于替代属性KEEP和KEEP HIERARCHY,与两者仅作用于综合阶段相比,DONT TOUCH可以作用范围包括布局和布线阶段,依旧可以保持不被优化。

当和其他属性冲突时,DONT TOUCH的优先级最高。

属性用法

DONT TOUCH作用对象包括信号、模块、网标,格式为(*DONT TOUCH=VALUE*),属性值VALUE可设置为TRUE/FALSE或者yes/no。

作用于信号:

(*DONT TOUCH= “YES“*)wire signal;

作用于模块:

(*DONT TOUCH= “YES“*)module module_test(in,out);

作用于例化单元:

(*DONT TOUCH= “YES“*)Inst Inst_example(.in(in),.out(out));

通常,DONT TOUCH属性不建议使用在XDC文件中,因为对于信号来说,通常优化是发生在读取XDC前,因此设置属性可能导致无效。

唯一一种推荐使用到XDC中的场景,是当RTL代码中使用了DONT TOUCH属性并设置为YES时,想让该属性不生效但又不想改变RTL设计时,可以在XDC文件中再次进行DONT TOUCH属性设置为NO的设置,此时后者设置生效,信号将会被优化。






审核编辑:刘清

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分