问题
在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的设置,此时后者设置生效,信号将会被优化。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !