当你的FPGA设计不能满足时序要求时,原因也许并不明显。解决方案不仅仅依赖于使用FPGA的实现工具来优化设计从而满足时序要求,也需要设计者具有明确目标和诊断/隔离时序问题的能力。设计者现在有一些小技巧和帮助来设置时钟;使用像Synopsys Synplify Premier一样的工具正确地设置时序约束;然后调整参数使之满足赛灵思FPGA设计性能的目标。
会有来自不同角度的挑战,包括:
更好的设计计划,例如完整的和精确的时序约束和时钟规范 节约时间的设计技术,例如为更好的性能结果,整合设计的各个部分而编写严谨的RTL代码,提出最高性能挑战,当你之后调整设计时减少迭代运行时间 综合和摆放以及路由时序的相关性,带来更好的时序质量的结果(QoR)和时序收敛
让我们更进一步地观察这三类中的技术,检验如何使用它们来达到时序目的。
第一步:更好的设计计划
最重要的就是确定正确且完整的设计约束。这些约束用于设计意图以及性能的目标和综合工具之间的通信。设计一旦综合完毕,这些约束和关键路径信息将被自动注释到Vivado设计套件的摆放和路由(P&R)工具中,进一步确保满足时序。
第二步:RTL代码风格和关键路径调整
为了获得更好的时序,我们建议使用特定的代码风格来描述有限状态机、RAM、数学/DSP功能、时钟树和移位寄存器。结果会提高时序QoR,因为综合工具能够推断一个实现使用了FPGA原语的构件。
此外,这些代码风格让你免于创建不必要的逻辑,例如可推测的锁存器、RAM的读/写检查逻辑和打包进入DSP原语的逻辑。当需要更多这方面主题时,使用综合工具中的核生成器就成为值得考虑的关键点了。
第三步:获得最终的时序收敛
在综合、摆放和路由之后能够报告总体的时序信息。例如,Synplify软件允许你使用TCL命令(report_timing)报告设计的具体部分。为了进一步提高时序QoR,我们建议你关联综合之后和P&R之后的时序结果,具体是在时序关键路径上给定起点和终点的边界。
|