本文摘要:
从最近一段时间工作和自学的成果中,我总结了如下几种展开时序约束的方法。按照从易到无以的顺序排列如下: 1.核心频率约束 这是最基本的,所以标号为0。 2.核心频率约束+时序值得注意约束 时序值得注意约束还包括FalsePath、MulticyclePath、MaxDelay、MinDelay。 但这还不是最原始的时序约束。如果仅有这些约束的话,解释设计者的思路还局限在FPGA芯片内部。
从最近一段时间工作和自学的成果中,我总结了如下几种展开时序约束的方法。按照从易到无以的顺序排列如下: 1.核心频率约束 这是最基本的,所以标号为0。 2.核心频率约束+时序值得注意约束 时序值得注意约束还包括FalsePath、MulticyclePath、MaxDelay、MinDelay。
但这还不是最原始的时序约束。如果仅有这些约束的话,解释设计者的思路还局限在FPGA芯片内部。
3.核心频率约束+时序值得注意约束+I/O约束 I/O约束还包括插槽分配方位、空闲插槽驱动方式、外部回头线延时(InputDelay、OutputDelay)、上下纳电阻、驱动电流强度等。重新加入I/O约束后的时序约束,才是原始的时序约束。
FPGA作为PCB上的一个器件,是整个PCB系统时序发散的一部分。FPGA作为PCB设计的一部分,是必须PCB设计工程师像对待所有COTS器件一样,读者并分析其I/OTimingDiagram的。FPGA不同于COTS器件之处在于,其I/OTiming是可以在设计后期在一定范围内调整的;虽然如此,最差还是在PCB设计前期给予充份的考虑到并归属于设计文档。
riple 于是以因为FPGA的I/OTiming不会在设计期间发生变化,所以精确地对其展开约束是确保设计平稳高效率的最重要因素。许多在FPGA新的编译器后,FPGA对外部器件的操作者经常出现不稳定的问题都有可能是由此引发的。 4.核心频率约束+时序值得注意约束+I/O约束+Post-fitNetlist 引进Post-fitNetlist的过程就是指一次顺利的时序发散结果开始,把特定的一组逻辑(DesignPartition)在FPGA上构建的布局方位和布线结果(Netlist)相同下来,确保这一布局布线结果可以在新的编译器中再现,适当地,这一组逻辑的时序发散结果也就获得了确保。
这个部分保有上一次编译器结果的过程就是IncrementalCompilation,保有的网表类型和保有的程度都可以设置,而某种程度局限于Post-fitNetlist,从而取得适当的保有力度和优化效果。由于有了EDA工具的有力反对,虽然是准确到门级的细粒度约束,设计者只须展开一系列设置操作者才可,不必须关心布局和布线的明确信息。由于准确到门级的约束内容过分多样,在qsf文件中留存不出,获得保有的网表可以以PartialNetlist的形式输入到一个分开的文件qxp中,配上和qsf文件中的粗略配备信息一起已完成增量编译器。

5.核心频率约束+时序值得注意约束+I/O约束+LogicLock LogicLock是在FPGA器件底层展开的布局约束。LogicLock的约束是粗粒度的,只规定设计顶层模块或子模块可以调整的布局方位和大小(LogicLockRegions)。顺利的LogicLock必须设计者对有可能的时序发散目标做出预计,考虑到特定逻辑资源(插槽、存储器、DSP)与LogicLockRegion的方位关系对时序的影响,并可以参照上一次时序顺利发散的结果。
这一权衡和规划FPGA底层物理布局的过程就是FloorPlanning。LogicLock给了设计者对布局方位和范围更好的控制权,可以有效地向EDA工具传送设计者的设计意图,防止EDA工具由于缺少布局优先级信息而盲目优化非关键路径。由于模块在每一次编译器中的布局方位变化被限定版在了拟合的相同范围内,时序发散结果的可再现性也就更高。
由于其粗粒度特性,LogicLock的约束信息并不很多,可以在qsf文件中获得保有。 必须留意的是,方法3和4常常可以混合用于,即针对FloorPlanning登录的LogicLockRegion,把它作为一个DesignPartition展开IncrementalCompilation。这是导致上述两种方法更容易误解的原因。
6.核心频率约束+时序值得注意约束+I/O约束+寄存器布局约束 寄存器布局约束是准确到寄存器或LE一级的细粒度布局约束。设计者通过对设计产生精准的掌控来取得可信的时序发散结果。对设计中的每一个寄存器手工展开布局方位约束并确保时序发散是一项庞大的工程,这标志着设计者需要几乎掌控设计的物理构建。

这是一个理想目标,是不有可能在受限的时间内已完成的。一般来说的作法是设计者对设计的局部展开寄存器布局约束并通过实际运营布局布线工具来取得时序发散的信息,通过数次递归迫近预期的时序目标。riple 不久前我看见过一个这样的设计:一个子模块的每一个寄存器都获得了明确的布局方位约束。该模块的时序发散也就适当地在每一次新的编译器的过程中获得了确保。
经过分析,这一子模块的设计和约束最初是在原理图中展开的,在超过时序发散目标后该设计被切换为HDL语言叙述,适当的约束也留存到了配置文件中。 7.核心频率约束+时序值得注意约束+I/O约束+特定路径延时约束 好的时序约束应当是引领型的,而不应当是强迫型的。通过得出设计中关键路径的时序延后范围,把具体而微的工作留下EDA工具在该约束的限定版范围内权利构建。
这也是一个理想目标,必须设计者对每一条时序路径都做心中有数,必须设计者认清哪些路径是可以通过核心频率和非常简单的时序值得注意约束就可以发散的,哪些路径是必需制订MaxDelay和MinDelay的,一条也无法遗漏,并且还必须EDA工具善解人意的有力反对。原作路径延时约束就是间接地原作布局布线约束,但是比上述3、4、5的方法更加灵活性,而且朴实其准确性。
通过时序约束而不是显式的布局和网表约束来超过时序发散才是时序约束的真谛。 忘记有网友说道过好的时序是设计出来的,不是约束出来的,我仍然把这句话作为自己展开逻辑设计和时序约束的指导。
好的约束必需以好的设计为前提。没好的设计,在约束上下再行大的功夫也是没意义的。不过,通过准确的约束也可以检查设计的好坏,通过时序分析报告可以检查出有设计上时序考虑不周的地方,从而加以改动。
通过几次分析改动分析的递归也可以超过完备设计的目标。应当说道,设计是约束的显然,约束是设计的确保,二者是相辅相成的关系。
本文关键词:工程师,谈,FPGA,时序,hth华体会最新网站,约束,七,步法,从,最近
本文来源:hth华体会最新网站-www.btyjy.com