使用Intime软件优化FPGA时序
【时间:2015 年 10 月 11 日, 来源:本站原创, 作者:】
在数据业务的发展大潮中,应用场景变得复杂,流量日益增大。作为数据通信产品核心部件的FPGA芯片,必须能够应对来自大数据吞吐量的挑战。有时,这意味着设计复杂度提高,时序,成为了一个难题。如何快速收敛?如何提高相同收敛方法的成功率?无一不制约着产品上市周期。以色列RAD公司采用InTime优化时序,节省了大量开发时间。RAD公司是业界领先的数据通信设备制造商,为全球150个国家的用户提供数据通信服务。
InTime
业界第一款利用大数据分析和机器学习技术来优化FPGA设计的专家软件。在不修改代码和约束的前提下,根据用户设置的优化目标(时序、面积、功耗),自动探索最优结果,达成目标。Altera非常认可该工具的如下特性,邀请其加入EDA合作伙伴计划。
特性1:快速收敛时序,节省工程师大量开发时间。
特性2:内置数据库,确保设计经验有效继承。
特性3:提高设计的最大工作频率。
特性4:缩短部分设计编译时间。
下面,我们结合RAD公司案例,具体介绍该工具如何帮助工程师快速交付。
有效提高布局布线种子的成功率
部分设计者在优化时序时,会尝试运行编译工具自带的种子。由于种子具有随机性,且具有一定的变化幅度。因此对于编译时间长的设计,该方法效率极低,而且非常盲目。InTime自带的机器学习算法,可以压缩初始时序至种子的变化幅度之内,因而有效提高运行种子的成功概率。
RAD设计采用器件是Altera Cyclone V - 5CGXFC9,编译时间4h,资源利用率81%。工具版本Quartus II 14.0.2。初始TNS是-3.605ns。
InTime运行“机器学习模式”,运行5轮后,成功把原始时序压缩至-0.754ns。此时,切换至“种子探索模式”继续运行。
每轮探索包括100个种子,如图所示的三轮中,分别有14%、13%、10%的种子成功实现了时序收敛。
无需添加位置约束即可实现时序收敛
设计约束中,时钟约束和管脚约束是必不可少的两类基本约束。该设计已经具有这两类约束,此时,仍未达到时序收敛。工程师开始考虑在设计中采用位置约束来固化关键路径所在区域,以实现收敛。
这样的方式有两个弊端,首先是增加了对工程师经验的要求。根据Altera建议,分区输入输出端口需要寄存处理,以减小延时;分区后资源的管理利用也有特殊要求,处理不好容易造成BRAM、DSPBlock的过分或重复利用。诸如此类,如果处理不当,分区后的时序效果就得不到保证。其次,分区可能会加大器件资源开销。根据Altera建议,分区最好不小于2000个LE或者ALM,过小的话优化效果不理想。因此,实际应用时通常会浪费掉一些器件资源。是否有一种方法,可以尽量避免位置约束的使用呢?
利用InTime,可以基于现有的基本约束,在不添加位置约束的前提下优化。
设计采用器件是Altera Cyclone V - 5CGXFC9,编译时间4h,资源利用率81%。工具版本Quartus II 14.0.2。初始TNS是-4.258ns。
InTime机器学习模式,运行10轮后,设计TNS值减小为-0.056ns。
切换至种子探索模式继续运行。运行两轮后, InTime发现6个TNS=0结果,成功实现时序收敛。
如需进一步了解该工具,可直接和Plunify公司申请试用,Plunify中国区联系人:haichen@plunify.com