新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 增量式编译QIC大幅缩短FPGA编译时间

增量式编译QIC大幅缩短FPGA编译时间

作者:时间:2013-03-05来源:网络收藏

实践

的效果评估

在讨论具体如何使用之前,先考虑一个问题:如果读者在您的工作中使用了QIC,怎么评估它的效能呢?

您需要至少做3轮实验,才能看到QIC节约时间的效果。首先,需要把您的设计用传统流程Flat Compilation进行编译,记录下各阶段所花费的时间。然后,创建合理的设计分区,指定分区网表性质,进行第二次编译,得到QIC各个分区的初始网表,并请记录下操作时间。第三次编译,您可以选择修改设计中的某一个分区,然后再编译一次,记录下操作花费的时间。将第三次的编译时间和第一次相比,正常的话应当看到非常明显的时间节约,这才是QIC编译在编译时间节约方面的体现。

值得注意的是,第二次编译中已经使用了QIC,但往往花费时间和第一次编译差不多,有时还有增长。许多人为此怀疑QIC的性能,认为QIC没有效果甚至恶化了编译时间。这其实是一种误解!为什么呢?回到图2,我们可以看到,QIC流程在AnalysisSynthesis和fitter之间增加了一个新的处理阶段——分区合并,它是需要额外花费在第一次Flat Compilation中不存在的时间。而且,由于这是创建分区后的第一次编译,所有分区的网表都是空白的,也就是说整个设计都需要被编译、分析、综合、布局布线等的工作量和第一次编译是类似的,因此这部分花费的时间也是差不多。把这两部分时间加起来,自然第2次编译时间有可能会比第一次长了。只有当进行第3次编译的时候,各个分区都有可重用的网表了,才有可能将那些没有设计改变的分区的网表重用,从而节约综合和布局布线阶段的时间,达到整体编译时间的节约。

图3是笔者支持的一个客户所进行的QIC编译性能评估的结果总结。客户的设计是高端路由器中的包处理应用,使用了ALTERA公司的Stratix4GX530器件,逻辑利用率大约是60%。客户的编译硬件是一台高性能服务器:

增量式编译QIC大幅缩短FPGA编译时间

图3 Z客户增量式编译评估实验效果

CPU:16core Intel(R) Xeon(R) CPU E7420 @2.13GHz

Memory:64GB

即使是如此,在不使用QIC的情况下,客户的每次编译都需要12到13个小时。而在使用QIC并根据QIC指导原则进行了必要的设计优化后,最好的实验结果是可以在6个小时左右(大约350分钟)完成一次编译,节约了接近55%的总编译时间!从图3中很容易看出前面文字描述的几个特点:

第一次编译和第二次编译的总时间差不多(750 VS 730)

第三次编译中,AnalysisSynthesis操作的时间,fitter操作得时间都比第一次编译有非常明显的降低;

从原理上看,QIC的网表重用对Assembly和时序分析没有直接影响。因此三次编译中,Assembler和时序分析所花费的时间是差不多的。

QIC指导原则

合理创建分区

Quartus中的“分区”是和设计层次紧密关联的。任何设计,无论简单还是复杂,都会有一个顶层模块(top-level module),Quartus自动将它设置为一个默认分区(命名为top),不需要用户设定。而别的分区,需要用户手动创建。创建分区的方法很简单,在Quartus GUI界面左上角的Hierarchy窗口,选择想创建分区的实体,右键唤出的菜单中选择“Design Partition”,然后在下一级菜单中选择”Setting as Design Partition”,分区就创建成功了。

从图2可以看出,分区(Partition)是增量式编译中的一个关键概念。Altera规定:只要是有完整设计边界的设计实体,无论它在设计的哪一层次,都可以用它来创建设计分区。也就是说,Quartus II中,设计中任何层次中的任何一个设计模块,可以作为一个设计分区;一个设计中也可以包含不止一个设计分区;即使是在设计的同一层次,也可有多个分区。同时,请注意:分区之间没有层次关系,任何逻辑只能归属于某一个分区。以图5为例,A模块由A1、B1、C1三个子模块组成。如果A模块被设置为分区,Quartus会用模块名来为此分区命名:A分区。那么,A分区中就会包含A1、B1、C1三个子模块的所有逻辑。但如果把B1子模块也创建为分区,那么,A分区中就只包含A1、C1两个子模块的逻辑,B1子模块的逻辑只属于新的B1分区了。

6.jpg

图4 在Quartus GUI中创建分区示意

5.jpg

图5 分区与逻辑归属变化

4.jpg

图6 分区合并报告

3.jpg

图7 分区综合后资源使用统计

2.jpg

图8 Design partition window

1.jpg

图9 Design partition window



关键词: FPGA QIC 增量式 编译

评论


相关推荐

技术专区

关闭