前段时间有位中国科学技术大学(我梦寐以求却求而不得的学府)的研究生同学在我的博客下方留言咨询时序约束的一些问题:“如果设计的电路只是提供给NIOSII在FPGA内调用,没有外部器件的相关延时信息,该怎么约束输入输出呢”。
其实呢,从事IC设计或者FPGA开发这个行业,拥有聪明的大脑写好优秀的代码固然重要,然而学会对代码或者电路施加时序约束也是每个从业者应该掌握的技巧,这个技巧可以帮助你高效且合理且正确的定制SPEC或者划分模块,进而为后续项目的顺利进展打下良好的铺垫。正确合理的时序约束可以帮你实现快速综合出面积尽量小、频率尽量高的电路来。
通常情况下:
1、对系统的时钟频率约束的紧一些,余量可以根据情况定为10%-20%之间,比较紧的时钟约束会让综合工具尽最大的能力去综合电路。
2、输入和输出的延迟如果没有较为准确的参考,一般可以设置为周期的一半,而且应该为同步系统的约束,如果为异步系统的约束则没有实际的意义,另外要尤其注意纯组合电路的情况。
3、合理的约束时序性能的原则,60/40原则:
逻辑延迟低于timing budget 的60%,这个时候时序很容易满足;
逻辑延迟在60%-80%之间,软件综合的时间就会 变大很多;
逻辑延迟超过80%时,时序将很难满足。
4、对于FPGA综合及布局布线而言,您的电路所占的资源最好不要超过整个FPGA的85%,否则FPGA不能够很好的工作,电路性能可能也不会很好,所以选择FPGA资源时最好根据您项目的情况进行预估算。
5、虚假路径(false path)和多周期路径(multi-period)要特殊对待。
6、跨时钟域的地方要用跨时钟域的处理方法保证其正确性,也可以通过跨时钟域检查的工具检查其合理性。
用户1318772 2015-2-9 10:50
用户593939 2015-2-8 22:10
学习和参考了
用户593939 2015-2-8 22:09
学习和参考了
用户593939 2015-2-8 22:09
sunyzz 2015-1-29 21:09
风来 2015-1-29 19:41
用户1720514 2014-7-1 21:03
用户436037 2013-5-12 22:52
請各位多多指教!
用户862262 2013-2-26 10:08
不错
用户403664 2013-2-19 10:29