|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
前段时间,综合的时候,发现我们的项目有些时候很不稳定,有时候又运行的很好。我看了下我们的代码,时钟太多,都是门控时钟,时序很难满足,而且时序就算满足了,还是有些模块的寄存器写不进去,或者写进去的值不对。综合报告是bufg不够用,我用的synplify_pro综合的,然后ise来map,pr,最后,我把rtl改了改就都通过了。用synplify写约束,感觉约束不太管用,效果不大,我就算约束不要用全局时钟,可是synplify还是要用,特别是有些输出信号是时钟的引脚,我约束不要在这个引脚插入全局时钟,可综合的时候,还是要插入,有些引脚我约束了,确实不会插入,比如输入引脚,我约束不插入全局时钟,就不会插入,有些时钟频率低的时钟就可以不用插入全局时钟,不如jtag时钟,和iic都,都只有几百K,在这种时钟比较多的情况下,应该可以这样权衡吧。有高手知道怎么做么? 求指导哈。主要是把能同时用的门控时钟就尽量用一个时钟,避免太多同样的时钟,做验证嘛,和ASIC肯定没法比了,还好改了就通过了。
请问大家遇到这样的问题,一般怎么弄呢?
synplify中关闭自动插入bufg.
.sdc文件:
define_global_attribute syn_noclockbuf 1
源代码:
module my_test(data, clk) ;
output data;
input clk / synthesis syn_noclockbuf=1 /; 前面的斜杠后面和后面的斜杠前面 要记得加*。我如果加了这个发不出来。 |
|