摘要:根据官方说法,尝试改变策略,让工程时序尽量好一些以及保证功能正常
1.策略
根据ug904
2.策略选择
其实在文章解决Vivado implementation拥塞的策略方法(一)_Q_864486277的博客-CSDN博客_vivado 拥塞
这里介绍了策略里面一些可选项,但是经过验证下来,还是未能研究透彻策略的选择;不过看上述表格选择自己需要的,然后不建议去改动里面的选项,使用它们设定的默认值有时候得出来的结果反而更好。
比如在做项目的时候,我碰到过在时序差的情况下,使用不同的策略会导致时序不同或者直接导致功能不正确。而此时也无法确定是不是时序造成了功能不正常,只能够肯定 时序确实是差的。
比如,跑工程的时候经常会报拥塞的问题,选择了 Congestion_ SpreadLogic_high,常常会造成ptp unlock(当然ptp本来就是历史遗留问题,只是这种情况还是发生的频率多)、功能不正确、时序差(-0.4以上)。那换一种策略,比如使用performance_ExtraTimingOpt,时序就来到了-0.24,功能也正常了。
另外时序最好是在WNS在-0.1ns以内,或者TNS在两三千以内(我们认为是可控的);(当然有时候时序WNS在-0.4左右可能工程功能也正确,但是这样的版本并不可取)
策略在一定程度上还是能改善时序的,用好vivado这个工具还是很关键。
3.平常工程策略测试
比如在跑4天线版本时,
Congestion_ SpreadLogic_high策略下最终时序:WNS -0.11ns
performance_ExtraTimingOpt策略下最终时序:WNS -0.005ns
跑全版本的时候,
Congestion_ SpreadLogic_high策略下最终时序:WNS -0.44ns左右(会有功能问题)
performance_ExtraTimingOpt策略下最终时序:WNS -0.24ns 或者 -0.30ns左右(功能无问题)
有些策略确实会在大程度上减少跑版本的时间,例如AddRemap,这种选择下节约了本个小时:
当然,不同策略或者选择搭配可能会在时序或者拥塞的时候大有帮助,需要细细研究,我能力有限,虽然跑了很多版本但还是未能明白其中的精髓。
关于各种选项的含义请见参考文章。
参考文章:
ug904
【vivado UG学习】Implementation策略学习_lu-ming.xyz的博客-CSDN博客_vivado 实现策略
解决Vivado implementation拥塞的策略方法(一)_Q_864486277的博客-CSDN博客_vivado 拥塞