本文主要是介绍altera 防止reg/wire 优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转载:# 关于SignalTap中的节点查找不到的问题_signaltap找不到信号-CSDN博客
关于SignalTap中的节点查找不到的问题
在选择需要查看的信号节点时,有一个信号节点,我翻遍了所有的模块,始终未能看到它的影子,然后上网查了一下,找到了问题所在。
因为在使用quartus编译综合时,某些信号会被优化掉,就会导致在查找此信号节点时,会发现找不见。
解决方法:
1.对于 wire 型
有两种方法:
a:wire [31:0] chan_ctrl_data /* synthesis keep* / ;
在定义的时候加上 /* synthesis keep */,需要注意的是该语句必须放在分号前面。
b:(* keep *) wire <net_name>;
都是为了防止相关wire型变量在综合时被优化或者是被省略。
2.对于 reg 型
跟reg相关的synthesis attribute,共有两种,分别是/* synthesis noprune*/和 /* synthesis preserve*/,两者的差别如下:
(a)reg r_name/* synthesis noprune*/; 避免 Quartus II 优化掉没output的reg。
(b)reg r_name/* synthesis preserve */;避免 Quartus II 將reg优化为常数,或者合并重复的reg
lattice防止优化: /* syn_preserve=1*/
这篇关于altera 防止reg/wire 优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!