如何在FPGA设计环境中加时序约束

如何在FPGA设计环境中加时序约束,第1张

在Altera的quartusII下,添加*.sdc文件,使用TQ时序约束器来进行时序验证,具体的语法可以参照altera网站的叙述以及例子工程,当然最简单的方法是买一本altera相关设计的书来看。

去这里把官方文档下下来:https://www.altera.com/en_US/pdfs/literature/manual/mnl_sdctmq.pdf

第167页的解释如图:

看懂了没?

就是如果说加了-expand,那么derive_clocks等等这一类执行源时钟关联 *** 作的宏指令将会在被写入SDC文件之前就已经得以预编译展开,而如果不勾选,则只是写入SDC文件,不预先执行预编译展开 *** 作。

从最近一段时间工作和学习的成果中,我总结了如下几种进行时序约束的方法。按照从易到难的顺序排列如下: 0. 核心频率约束 这是最基本的,所以标号为0。 1. 核心频率约束+时序例外约束 这还不是最完整的时序约束。设计者的思路还局限在FPGA芯片内部。 2. 核心频率约束+时序例外约束+I/O约束(包括位置、外部走线延时、上下拉电阻、驱动电流强度等等) 这才是最完整的时序约束。FPGA作为PCB上的一个器件,是整个PCB系统时序收敛的一部分。FPGA作为PCB设计的一部分,是需要PCB设计工程师像对待所有COTS器件一样,阅读并分析其I/O Timing Diagram的。FPGA不同于COTS器件之处在于,其I/O Timing是可以在设计后期在一定范围内调整的;虽然如此,最好还是在PCB设计前期给与充分的考虑并归入设计文档。 正因为FPGA的I/O Timing会在设计期间发生变化,所以准确地对其进行约束是保证设计稳定可控的重要因素。许多FPGA外部器件在FPGA重新编译后出现不稳定的问题都有可能是由此引起的。 3. 核心频率约束+时序例外约束+I/O约束+LogicLock LogicLock是FPGA器件内部的布局约束。从一次成功的时序收敛结果开始,把特定的一组逻辑在FPGA上实现的布局位置和范围固定下来。相应地,其布线结果和时序收敛结果也就得到了间接的保证。需要注意的是,LogicLock不同于DesignPartition中的Post-fit Netlist。LogicLock的约束是粗粒度的,并且其精度范围是可调整的;而引入Post-fit Netlist是精确到门级的细粒度约束。 4. 核心频率约束+时序例外约束+I/O约束+FloorPlan+LogicLock FloorPlan也是FPGA器件内部的布局约束,是LogicLock的一种特例。成功的FloorPlan需要设计者对可能的时序收敛目标作出预计,并可以参考上一次时序成功收敛的结果。FloorPlan给了设计者对布局位置和范围更多的控制,不能也不可能照搬上一次时序收敛后零散的布局结果,所以对设计者的要求比简单的LogicLock要高。由于获得了更多的自主的控制权,时序收敛结果的可重现性也就越高。 5. 核心频率约束+时序例外约束+I/O约束+寄存器布局约束 寄存器布局约束是精确到寄存器或LE一级的布局约束。设计者通过对设计施加更精准的控制来获得更可靠的时序收敛过程。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11561704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存