Vivado编译加速验证
1)Vivado软件版本:2018.3
该版本生成bit文件后,无法找到dcp文件,可以手动生成dcp文件或在增量编译选项中选择automatically use the checkpoint from the previous run;
2)程序1:
FPGA器件:XC7K325T
该程序主时钟速率较低,资源占用也不高,几乎不存在时序违例的情况;程序资源消耗如下:
|
Resource |
Utilization |
Available |
Utilization% |
|
LUT |
68203 |
203800 |
33.47 |
|
LUTRAM |
29596 |
64000 |
46.24 |
|
FF |
51573 |
407600 |
12.65 |
|
BRAM |
168 |
445 |
37.75 |
|
DSP |
2 |
840 |
0.24 |
|
IO |
78 |
500 |
15.6 |
|
GT |
2 |
16 |
12.5 |
|
BUFG |
12 |
32 |
37.5 |
|
MMCM |
2 |
10 |
20 |
|
PCIe |
1 |
1 |
100 |
3)程序1验证过程及结果如下:
|
序号 |
综合时间 |
布线时间 |
备注 |
|
1 |
2:18 |
23:44 |
原始程序 |
|
2 |
2:20 |
20:05 |
修改1bit逻辑,设置增量编译 |
|
3 |
2:21 |
17:39 |
不修改代码,在1基础上设置增量编译,设置编译线程为8: set_param general.maxThreads 8 |
|
4 |
2:25 |
18:10 |
修改1bit逻辑,设置增量编译,设置编译线程为8 |
|
5 |
2:19 |
12:15 |
不修改代码,在4基础上,增加input时序约束,设置增量编译,设置编译线程为8,观察对编译时间的影响 |
|
6 |
2:23 |
12:13 |
不修改代码,在5基础上仅增加output delay约束,设置增量编译,设置编译线程为8 |
|
7 |
2:19 |
17:55 |
修改1bit逻辑,修改input时序约束,设置增量编译,设置编译线程为8 |
|
|
|
|
|
4)程序2
FPGA器件:XC7V690T
该程序主时钟速率较高,资源占用也较高,存在时序违例的几率较大;程序资源消耗如下资源消耗如下:
|
Resource |
Utilization |
Available |
Utilization% |
|
LUT |
334375 |
433200 |
77.19 |
|
LUTRAM |
58501 |
174200 |
33.58 |
|
FF |
495241 |
866400 |
57.16 |
|
BRAM |
712.5 |
1470 |
48.47 |
|
DSP |
2694 |
3600 |
74.83 |
|
IO |
268 |
850 |
31.53 |
|
GT |
4 |
36 |
11.11 |
|
BUFG |
30 |
32 |
93.75 |
|
MMCM |
7 |
20 |
35 |
|
PCIe |
1 |
3 |
33.33 |
5)程序2验证过程及结果如下:
|
序号 |
综合时间 |
布线时间 |
备注 |
|
1 |
19:46 |
2:11:07 |
在原始程序上修改部分逻辑,直接编译;完成后时序存在部分违例; |
|
2 |
20:48 |
3:13:11 |
在原始程序上修改部分逻辑,修改内容与1相同,设置增量编译,设置编译线程为8; 编译完成后时序存在违例 |
6)总结:
1)逻辑修改较少的情况下,设置编译线程为8,设置增量编译均可增加编译速度,提速约20%;(参考程序1验证结果)
2)若不修改代码,仅修改对全局时序影响不大的时序约束,如增加对外部输入的状态信号的input delay或输出信号的output delay约束,此时可提速约40%;(参考程序1验证结果)
3)如果程序时序或资源比较紧张时,不建议采用增量编译,可能导致更差的结果;增加编译线程不会影响编译结果,可只使用该设置。
4)根据以上验证,想要提高编译速度,还是要从代码上进行优化,

3268

被折叠的 条评论
为什么被折叠?



