越了解自己PCB设计的实现方法,越了解自己PCB设计的时序要求,越了解目标PCB器件的资源分布和结构,越了解EDA的效果 工具执行约束,PCB设计的时序约束目标越明确,相应的,设计的时序收敛过程就越可控。
下面总结了几种时序约束的方法。 由易到难的顺序如下:
0.核心频率约束
这是最基本的,所以标签是0
1、核心频率约束+时序异常约束
时序异常约束包括 FalsePath、MultICyclePath、MaxDelay 和 MinDelay,但这还不是最完整的时序约束。 如果只有这些约束,说明设计者的思路还局限在FPGA芯片上。
2.核心频率约束+时序异常约束+I/O约束
I/O约束包括管脚分配位置、空闲管脚驱动方式、外部布线延时(InputDelay、OutputDelay)、上拉和下拉电阻、驱动电流强度等。加入I/O约束后的时序约束为 完整的时序约束。 FPGA作为PCB上的一个元件,是整个PCB系统时序收敛的一部分。 FPGA作为PCB设计的一部分,就像所有COTS器件一样,需要PCB设计工程师阅读和分析其I/O时序图。 FPGA与COTS器件的区别在于其I/O时序可以在设计后期在一定范围内进行调整; 尽管如此,最好在PCB设计的早期阶段就充分考虑,并将其包含在设计文档中。
正因为FPGA的I/O时序在设计过程中会发生变化,准确约束它是保证设计稳定性和可控性的重要因素。 FPGA重新编译后,很多FPGA外部设备运行不稳定的问题可能就是由此造成的。
3.核心频率约束+时序异常约束+I/O约束+Post fit Netlist
引入Post fit Netlist的过程是从一个成功的时序收敛结果开始,固定FPGA上实现的一组特定逻辑(design Partition)的版图位置和布线结果(Netlist),以保证这个版图和布线结果可以复现 在新的汇编中。 相应地,也保证了这套逻辑的时序收敛结果。 这部分保留上次编译结果的过程就是增量编译。 可以设置保留的网表类型和保留程度,而不仅仅局限于Post fit Netlist,从而获得相应的保留强度和优化效果。 得益于EDA工具的强大支持,虽然是精确到门级的细粒度约束,但设计人员只需要进行一系列的设置操作,无需关心版图布线的具体信息。 由于精确到门级的约束太多,无法保存在qsf文件中,可以将保留的网表以partial Netlist的形式输出到单独的文件qxp中,与粗略配置一起完成增量编译 qsf 文件中的信息。
4.核心频率约束+时序异常约束+I/O约束+LogicLock
LogicLock是对FPGA器件底层的布局约束。 LogicLock constraints是粗粒度的,它只指定了顶层模块或子模块可以调整的布局位置和大小(LogicLock Regions)。 一个成功的LogicLock需要设计者预测可能的时序收敛目标,考虑具体逻辑资源(管脚、内存、DSP)与LogicLock Region的位置关系对时序的影响,参考上次时序收敛成功的结果 . 平衡和规划FPGA底层物理布局的过程就是FloorPlanNing LogicLock,让设计人员对布局位置和范围有更多的控制,可以有效地将设计人员的设计意图传递给EDA工具,避免EDA工具盲目优化非关键路径,因为 缺少布局优先级信息。 由于每次编译时模块布局位置的变化被限制在最优的固定范围内,时序收敛结果的复现性更高。 LogicLock由于粒度较粗,所以约束信息不多,可以保留在qsf文件中。
5.核心频率约束+时序异常约束+I/O约束+寄存器布局约束
寄存器布局约束是精确到寄存器或 LE 级别的细粒度布局约束。 PCB 设计人员可以通过对设计进行精确控制来获得可靠的时序收敛结果。 手动约束设计中每个寄存器的布局并保证时序收敛是一项巨大的工程,这表明设计人员可以完全控制设计的物理实现。 这是一个理想的目标,无法在有限的时间内完成。 通常的做法是设计人员通过实际运行版图布线工具来限制设计部分的寄存器布局并获取时序收敛信息,并通过多次迭代来逼近预期的时序目标。
我见过这样的设计:子模块的每个寄存器都有特定的布局位置约束。 每次重新编译都保证了模块的时序收敛。 经过分析,初步在原理图中进行了该子模块的设计和约束。 实现时序收敛的目标后,将设计转化为HDL语言描述,相应的约束也保存在配置文件中。
6.核心频率约束+时序异常约束+I/O约束+特定路径延迟约束
好的时序约束应该是“引导”的,而不是“强制的”。 通过在设计中给出关键路径的时延范围,将具体而细微的工作交由EDA工具在约束的有限范围内自由实现。 这也是一个理想的目标。 设计者需要熟知每条时序路径。 设计者需要区分哪些路径可以通过核心频率和简单的时序异常约束收敛,哪些路径必须用MaxDelay和MinDelay来制定。 二者缺一不可,还需要EDA工具“懂”的大力支持。 设置路径延迟约束是间接设置布局布线约束,但比上述3、4、5中的方法更灵活、更准确。 时间约束的本质是通过时间约束而不是显式布局和网表约束来实现时间收敛。
我记得有人说过,“好的时机是设计出来的,而不是被约束的”。 我总是用这句话作为我自己的逻辑设计和时序约束的指南。 好的约束必须基于好的设计。 没有好的设计,在约束上花大力气是没有意义的。 但是,也可以通过正确的约束来检查设计的优缺点。 PCB时序分析报告可用于检查设计中无意的时序考虑并进行修改。 改进设计的目标也可以通过几次“分析-修改-分析”的迭代来实现。 应该说,设计是约束的基础,约束是设计的保证。 两者是互补的
然后
联系
电话热线
13410863085Q Q
微信
- 邮箱