从最近一段时间作业和学习的作用中,我总结了如下几种进行时序束缚的办法。依照从易到难的顺序排列如下:
0. 中心频率束缚
这是最基本的,所以标号为0。
1. 中心频率束缚+时序破例束缚
时序破例束缚包含FalsePath、MulticyclePath、MaxDelay、MinDelay。但这还不是最完好的时序束缚。假如仅有这些束缚的话,阐明规划者的思路还限制在FPGA芯片内部。
2. 中心频率束缚+时序破例束缚+I/O束缚
I/O束缚包含引脚分配方位、闲暇引脚驱动办法、外部走线延时(InputDelay、OutputDelay)、上下拉电阻、驱动电流强度等。参加I/O束缚后的时序束缚,才是完好的时序束缚。FPGA作为PCB上的一个器材,是整个PCB体系时序收敛的一部分。FPGA作为PCB规划的一部分,是需求PCB规划工程师像对待一切COTS器材相同,阅览并剖析其I/O Timing Diagram的。FPGA不同于COTS器材之处在于,其I/O Timing是能够在规划后期在必定规模内调整的;尽管如此,最好仍是在PCB规划前期给与充沛的考虑并归入规划文档。 riple
正因为FPGA的I/O Timing会在规划期间发生改变,所以准确地对其进行束缚是确保规划安稳可控的重要因素。许多在FPGA从头编译后,FPGA对外部器材的操作呈现不安稳的问题都有或许是由此引起的。
3. 中心频率束缚+时序破例束缚+I/O束缚+Post-fit Netlist
引进Post-fit Netlist的进程是从一次成功的时序收敛成果开端,把特定的一组逻辑(Design Partition)在FPGA上完结的布局方位和布线成果(Netlist)固定下来,确保这一布局布线成果能够在新的编译中重现,相应地,这一组逻辑的时序收敛成果也就得到了确保。这个部分保存上一次编译成果的进程便是Incremental Compilation,保存的网表类型和保存的程度都能够设置,而不仅仅限制于Post-fit Netlist,然后取得相应的保存力度和优化作用。因为有了EDA东西的有力支撑,尽管是准确到门级的细粒度束缚,规划者只须进行一系列设置操作即可,不需求关怀布局和布线的详细信息。因为准确到门级的束缚内容过于繁复,在qsf文件中保存不下,得到保存的网表能够以Partial Netlist的方式输出到一个独自的文件qxp中,配和qsf文件中的大略装备信息一同完结增量编译。
4. 中心频率束缚+时序破例束缚+I/O束缚+LogicLock
LogicLock是在FPGA器材底层进行的布局束缚。LogicLock的束缚是粗粒度的,只规则规划顶层模块或子模块能够调整的布局方位和巨细(LogicLock Regions)。成功的LogicLock需求规划者对或许的时序收敛方针作出估计,考虑特定逻辑资源(引脚、存储器、DSP)与LogicLock Region的方位联系对时序的影响,并能够参考上一次时序成功收敛的成果。这一权衡和规划FPGA底层物理布局的进程便是FloorPlanning。LogicLock给了规划者对布局方位和规模更多的操控权,能够有效地向EDA东西传递规划者的规划目的,防止EDA东西因为缺少布局优先级信息而盲目优化非要害途径。因为模块在每一次编译中的布局方位改变被限制在了最优的固定规模内,时序收敛成果的可重现性也就更高。因为其粗粒度特性,LogicLock的束缚信息并不许多,能够在qsf文件中得到保存。
需求留意的是,办法3和4常常能够混合运用,即针对FloorPlanning指定的LogicLock Region,把它作为一个Design Partition进行Incremental Compilation。这是形成上述两种办法简略混杂的原因。
5. 中心频率束缚+时序破例束缚+I/O束缚+寄存器布局束缚
寄存器布局束缚是准确到寄存器或LE一级的细粒度布局束缚。规划者经过对规划施加精准的操控来取得牢靠的时序收敛成果。对规划中的每一个寄存器手艺进行布局方位束缚并确保时序收敛是一项浩大的工程,这标志着规划者能够彻底操控规划的物理完结。这是一个抱负方针,是不或许在有限的时间内完结的。一般的做法是规划者对规划的部分进行寄存器布局束缚并经过实践运转布局布线东西来取得时序收敛的信息,经过数次迭代迫临预期的时序方针。 riple
不久前我看到过一个这样的规划:一个子模块的每一个寄存器都得到了详细的布局方位束缚。该模块的时序收敛也就相应地在每一次从头编译的进程中得到了确保。经过剖析,这一子模块的规划和束缚开始是在原理图中进行的,在到达时序收敛方针后该规划被转换为HDL言语描绘,相应的束缚也保存到了装备文件中。
6. 中心频率束缚+时序破例束缚+I/O束缚+特定途径延时束缚
好的时序束缚应该是“引导型”的,而不该该是“强制型”的。经过给出规划中要害途径的时序推迟规模,把详细而微的作业留给EDA东西在该束缚的限制规模内自在完结。这也是一个抱负方针,需求规划者对每一条时序途径都做到心中有数,需求规划者辨明哪些途径是能够经过中心频率和简略的时序破例束缚就能够收敛的,哪些途径是有必要拟定MaxDelay和MinDelay的,一条也不能遗失,并且还需求EDA东西“善解人意”的有力支撑。设定途径延时束缚便是间接地设定布局布线束缚,可是比上述3、4、5的办法更灵敏,并且不失其准确性。经过时序束缚而不是显式的布局和网表束缚来到达时序收敛才是时序束缚的真理。
记住有网友说过“好的时序是规划出来的,不是束缚出来的”,我一直把这句话作为自己进行逻辑规划和时序束缚的辅导。好的束缚有必要以好的规划为条件。没有好的规划,在束缚上下再大的功夫也是没有意义的。不过,经过正确的束缚也能够查看规划的好坏,经过时序剖析陈述能够查看出规划上时序考虑不周的当地,然后加以修正。经过几回“剖析—修正—剖析”的迭代也能够到达完善规划的方针。应该说,规划是束缚的底子,束缚是规划的确保,二者是相得益彰的联系。