Hoki

增量编译之Design Partition

0
阅读(2661)

增量编译的概念很早就听说过,但一直没深入研究。在QuartusII中支持增量编译这一选项,如果使能这个选项,编译器会根据上一次的编译的编译结果进行优化,达到缩短编译时间的目的。

在QuartusII中默认的编译方式不是增量编译,而是一种固定式编译,每次重新编译会执行全编译,不会利用前次编译结果,这样花费的时间比较长;而如果需要使能增量编译,则首先需要对设计进行分区,通过Design Partitions工具将一个大的设计分成若干个分区,编译是针对分区分别进行Analysis&Synthesis、Fitter,每个分区可以的到各自的网表。下面以一个示例讲解一下实现增量编译的流程:

1. 首先在QuartusII中创建工程,加入代码,进行Analysis&Synthesis,可以得到设计代码的层次结构,如图1所示。

图1

2. 打开Design Partitions工具(Assignments àDesign Partitions Window),双击“new”创建新的设计分区,可以根据代码的层次结构创建对应的分区,如图2(a)所示,选择所有的层次结构,如图2(b)所示为创建完成的分区。

(a)

(b)

图2

3. 在Design Partition Window中有Netlist Type,这个选项指定增量编译使用前次编译结果的网表类型。如图3所示,双击可以得到下拉选项:Source File、Post-Synthesis(默认)、Post-Fit和Empty。

图3

Source File:在源代码未修改的情况下,不会重新Analysis,利用前次Analysis结果只进行Synthesis和Fitter;

Post-Synthesis:在源代码未修改的情况下,利用前次Synthesis结果只进行Fitter;

Post-Fit:在源代码未修改的情况下,保留前次Fitter结果进行编译,此选项最大程度上减少了编译时间;

Empty:如果只划分了分区,并未对改分区设计代码,可以将这个分区Netlist Type设置成Empty,编译时将忽略此分区。

对上诉几个选项分别进行了实验,图4是未设置Design Partions,即固定式编译的结果;图5是Source File的编译结果;图6是Post-Synthesis的编译结果;图7是Post-Fit的编译结果。

图4

图5

图6

图7

可以发现Post-Fit的编译时间最短,只需2分55秒,相比于固定式编译,编译时间减少了58%。

另外,固定式编译其实通过设置也可以实现增量编译,在Settings中Incremental Compilation中,使能Rapid Compilation选项,如图8所示,此选项类似于在Fitter时重用Netlist Type为Source File或者Post-Synthesis实现增量编译。

图8

Baidu
map