查看: 69|回复: 0

[经验] 经验之谈:关于FPGA的设计技巧

[复制链接]

该用户从未签到

发表于 2020-10-16 11:40:54 | 显示全部楼层 |阅读模式
分享到:
当你的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之后的时序结果,具体是在时序关键路径上给定起点和终点的边界。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /3 下一条



手机版|小黑屋|电路城

GMT+8, 2020-10-29 22:12 , Processed in 0.061269 second(s), 13 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.