上期内容:本月回顾-2018.9
如何快速、高效地使时序收敛是很多FPGA工程师都要面临的一个问题。这时,大家可能都会想到ug949。这是Xilinx提供的一个很好的文档。作为工程经验的总结,这个文档也包含了时序收敛的方法。在这个文档的基础上,Xilinx最近又发布了一篇新文档ug1292(可直接在Xilinx官网搜索下载)。这个文档把ug949中时序收敛的相关内容单独提取出来,更系统、更直观地介绍了时序收敛的方法。ug1292可以视为时序收敛的一个快速参考手册,而ug949可以当作“字典“,用于查找更为具体的信息。
ug1292 时序收敛快速参考手册
这个手册只有十页内容,每一页都有流程图或表格,因此具有很强的可操作性。这十页内容如下表格所示。可以看到,该手册几乎涵盖了所有解决时序违例的基本方法。
如何使用这个手册
这个手册与ug949的理念是一致的即”尽可能地把所有问题放在设计初期解决“。宁可在设计初期花费更多的时间,也不要等到布局布线后才开始发现问题再解决问题。因为,在设计后期,往往会面临牵一发而动全身的被动局面。即使一个小的改动都有可能花费很多的时间和精力甚至造成返工。就时序收敛而言,在定义设计规格时就要有所考虑;写代码时要从代码风格角度考虑对时序的影响;综合之后就要查看时序报告,检查设计潜在问题。这也是ug1292为什么把初始设计检查放在第一页的主要原因。建议最好在开始设计之前通读一下该文档,了解一下对于时序违例路径:
- 逻辑延迟占总延迟多大百分比时需要优化
- 布线延迟占总延迟多大百分比时需要优化
- 时钟歪斜和时钟不确定性超过哪个界限时需要优化
- WHS在哪个阶段超过哪个界限时需要优化
如果能对这些数值做到心中有数,那么当面临相关问题时就可以有的放矢。更为关键的是充分理解第二页内容:时序收敛基线流程。
在设计综合之后,就开始按照手册第一页流程对设计进行初始检查。当检查都过关之后,才可以进行下一页的操作。在设计后期,根据上述数值判定造成时序违例的主要因素,然后回到相应页码查看解决方案。
如果文章对你有收获,欢迎转发~