跳至正文

如何提高Vivado编译速度04–哪个版本的Vivado编译最快

前言

本文针对 Vivado 2018.3 ~ 2025.1 的 8 个主流版本,选取三类典型工程(纯 Verilog 逻辑的 CPU 工程、包含 MicroBlaze 的 MB 工程、基于 Zynq MPSoC 的 ZYNQU 工程),在统一硬件环境(固定 32 线程)和测试标准下,量化对比各版本的综合、实现及总编译时间,旨在找出 “编译速度最快” 的版本,并结合功能兼容性、工具链适配等需求,为不同场景下的 Vivado 版本选择提供客观依据。

一、实验条件说明

  1. 测试的Vivado版本为2018.3, 2019.2, 2020.2,2021.2,2022.2,2023.2,2024.2,2025.1
  2. 测试工程仍为前文三个示例工程:CPU、MB和ZYNQU
  3. 最大线程和使用线程均固定为32
  4. 其余条件同前文实验

二、测试记录

2025.1

CPU


实验编号 OOC 综合 实现 合计
2025.1-CPU-1 0 1m33s 1m38s 3m11s
2025.1-CPU-2 0 1m34s 1m38s 3m12s
2025.1-CPU-平均 0 1m33.5s 1m38s 3m11.5s

MB


实验编号 OOC 综合 实现 合计
2025.1-MB-1 3m54s 31s 4m19s 8m44s
2025.1-MB-2 3m50s 30s 4m20s 8m40s
2025.1-MB-平均 3m52s 30.5s 4m19.5s 8m42s

ZYNQU


实验编号 OOC 综合 实现 合计
2025.1-ZYNQU-1 1m15s 32s 1m50s 3m37s
2025.1-ZYNQU-2 1m12s 32s 1m50s 3m34s
2025.1-ZYNQU-平均 1m13.5s 32s 1m50s 3m35.5s

2024.2

CPU


实验编号 OOC 综合 实现 合计
2024.2-CPU-1 0 1m22s 1m46s 3m08s
2024.2-CPU-2 0 1m22s 1m48s 3m10s
2024.2-CPU-平均 0 1m22s 1m47s 3m09s

MB


实验编号 OOC 综合 实现 合计
2024.2-MB-1 3m07s 26s 4m28s 8m01s
2024.2-MB-2 3m08s 26s 4m27s 8m01s
2024.2-MB-平均 3m07.5s 26s 4m27.5s 8m01s

ZYNQU


实验编号 OOC 综合 实现 合计
2024.2-ZYNQU-1 1m09s 29s 1m58s 3m36s
2024.2-ZYNQU-2 1m09s 29s 1m58s 3m36s
2024.2-ZYNQU-平均 1m09s 29s 1m58s 3m36s

2023.2

CPU


实验编号 OOC 综合 实现 合计
2023.2-CPU-1 0 1m53s 2m10s 4m03s
2023.2-CPU-2 0 1m53s 2m10s 4m03s
2023.2-CPU-平均 0 1m53s 2m10s 4m03s

MB


实验编号 OOC 综合 实现 合计
2023.2-MB-1 2m59s 23s 5m04s 8m26s
2023.2-MB-2 3m07s 22s 5m05s 8m34s
2023.2-MB-平均 3m03s 22.5s 5m04.5s 8m30s

ZYNQU


实验编号 OOC 综合 实现 合计
2023.2-ZYNQU-1 1m15s 27s 2m09s 3m51s
2023.2-ZYNQU-2 1m15s 27s 2m10s 3m52s
2023.2-ZYNQU-平均 1m15s 27s 2m09.5s 3m51.5s

2022.2

CPU


实验编号 OOC 综合 实现 合计
2022.2-CPU-1 0 1m53s 1m59s 3m52s
2022.2-CPU-2 0 1m53s 1m57s 3m50s
2022.2-CPU-平均 0 1m53s 1m58s 3m51s

MB


实验编号 OOC 综合 实现 合计
2022.2-MB-1 3m03s 22s 4m47s 8m12s
2022.2-MB-2 3m02s 22s 4m48s 8m12s
2022.2-MB-平均 3m02.5s 22s 4m47.5s 8m12s

ZYNQU


实验编号 OOC 综合 实现 合计
2022.2-ZYNQU-1 1m14s 27s 1m38s 3m19s
2022.2-ZYNQU-2 1m14s 26s 1m39s 3m19s
2022.2-ZYNQU-平均 1m14s 26.5s 1m38.5s 3m19s

2021.2

CPU


实验编号 OOC 综合 实现 合计
2021.2-CPU-1 0 1m54s 2m03s 3m57s
2021.2-CPU-2 0 1m52s 2m03s 3m55s
2021.2-CPU-平均 0 1m53s 2m03s 3m56s

MB


实验编号 OOC 综合 实现 合计
2021.2-MB-1 3m05s 20s 5m00s 8m25s
2021.2-MB-2 2m58s 19s 5m00s 8m17s
2021.2-MB-平均 3m1.5s 19.5s 5m00s 8m21s

ZYNQU


实验编号 OOC 综合 实现 合计
2021.2-ZYNQU-1 1m05s 23s 1m34s 3m02s
2021.2-ZYNQU-2 1m06s 22s 1m35s 3m03s
2021.2-ZYNQU-平均 1m05.5s 22.5s 1m34.5s 3m03s

2020.2

Vivado 2020.2自带示例很少,这里实验用到的CPU是有的,而MB和ZYNQU需要在线下载,无需KX上网,流程如下:

示例设计右键Install,MB和ZYNQU。

还需要安装板卡,AC701和ZCU102。

CPU


实验编号 OOC 综合 实现 合计
2020.2-CPU-1 0 1m49s 1m53s 3m42s
2020.2-CPU-2 0 1m48s 1m54s 3m42s
2020.2-CPU-平均 0 1m48.5s 1m53.5s 3m42s

MB


实验编号 OOC 综合 实现 合计
2020.2-MB-1 2m53s 19s 4m50s 8m02s
2020.2-MB-2 2m53s 18s 4m47s 7m58s
2020.2-MB-平均 2m53s 18.5s 4m48.5s 8m00s

ZYNQU


实验编号 OOC 综合 实现 合计
2020.2-ZYNQU-1 1m03s 22s 1m34s 2m59s
2020.2-ZYNQU-2 1m04s 22s 1m33s 2m59s
2020.2-ZYNQU-平均 1m04.5s 22s 1m33.5s 2m59s

2019.2

示例工程CPU不需要更新,MB和ZYNQU还是需要更新一下(Update Example Project Repositories)。

示例工程MB选择MicroBlaze Application Preset (AC701)。

但此MB工程和高版本的MB工程还是有些区别,所以此处测试仅作参考。


示例工程ZYNQU选择Base Zynq UltraScale+MPSoC。

但此ZYNQU工程和高版本的ZYNQU工程还是略有区别,所以此处测试仅作参考。


CPU


实验编号 OOC 综合 实现 合计
2019.2-CPU-1 0 1m35s 1m52s 3m27s
2019.2-CPU-2 0 1m34s 1m51s 3m25s
2019.2-CPU-平均 0 1m34.5s 1m51.5s 3m26s

MB


实验编号 OOC 综合 实现 合计
2019.2-MB-1 2m45s 18s 4m51s 7m54s
2019.2-MB-2 2m46s 18s 4m51s 7m55s
2019.2-MB-平均 2m45.5s 18s 4m51s 7m54.5s

ZYNQU


实验编号 OOC 综合 实现 合计
2019.2-ZYNQU-1 50s 21s 2m07s 3m18s
2019.2-ZYNQU-2 48s 21s 2m07s 3m16s
2019.2-ZYNQU-平均 49s 22s 2m07s 3m17s

2018.3

示例工程CPU与高版本一致。

示例工程MB找不到类似的,故此版本不测试MB工程。

示例工程ZYNQU选择Base Zynq UltraScale+MPSoC。

但此ZYNQU工程和高版本的ZYNQU工程还是有些区别,所以此处测试仅作参考。


CPU


实验编号 OOC 综合 实现 合计
2018.3-CPU-1 0 1m31s 1m47s 3m28s
2018.3-CPU-2 0 1m27s 1m46s 3m23s
2018.3-CPU-平均 0 1m29s 1m46.5s 3m25.5s

MB

没有与高版本一样的MB示例工程,故无法进行对比。

ZYNQU


实验编号 OOC 综合 实现 合计
2018.3-ZYNQU-1 56s 16s 1m45s 2m57s
2018.3-ZYNQU-2 55s 17s 1m44s 2m56s
2018.3-ZYNQU-平均 55.5s 16.5s 1m44.5s 2m56.5s

三、实验结果统计与分析

Vivado版本/平均编译时间/示例工程 CPU MB ZYNQU
Vivado 2025.1 3m11.5s (+1.3%) 8m42s (+8.5%) 3m35.5s (+3.6%)
Vivado 2024.2 3m09s 8m01s 3m28s
Vivado 2023.2 4m03s (+28.6%) 8m30s (+6.0%) 3m51.5s (+11.3%)
Vivado 2022.2 3m51s (+22.2%) 8m12s (+2.3%) 3m19s (-4.3%)
Vivado 2021.2 3m56s (+24.9%) 8m21s (+4.2%) 3m03s (-12.0%)
Vivado 2020.2 3m42s (+17.5%) 8m00s (-0.2%) 2m59s (-13.9%)
Vivado 2019.2 3m26s (+9.0%) 7m54.5s (-1.4%) 3m17s (-5.3%)
Vivado 2018.3 3m25.5s (+8.7%) 2m56.5s (-15.1%)

通过对比各Vivado版本的编译时间,可以发现:

  1. Vivado 2025.1和Vivado 2023.2都不行,与Vivado 2024.2相比均有较大差距,其中2023.2很差,可能是因为2023.2版本是AMD刚收购Xilinx而着急推出的软件,实际还没有打磨好;
  2. Vivado 2022.2、Vivado 2021.2和Vivado 2020.2还行,整体编译速度与Vivado 2024.2相当。但对于纯Verilog工程(CPU),2024.2还是遥遥领先;
  3. Vivado 2019.2和Vivado 2018.3也还行,整体速度与Vivado 2024.2相差不大,因ZYNQU工程与高版本有些区别,所以此工程编译时间参考意义不大。

具体选择哪个版本Vivado,其他需要考虑的因素:

  1. Vivado 2018.3版本还有SDK(2019.1是最后一个带SDK的版本),如果需要维护旧的SDK工程,建议选择Vivado 2018.3/2019.1;
  2. Vivado 2019.2首次推出Vitis替代SDK,直到Vivado 2023.2和2024.2,一直都保留了Vitis,在2023.2/2024.2中与旧版兼容的Vitis称为Classic Vitis;
  3. Vivado 2023.2最先推出类Vscode的新版Vitis工具,但几乎没法用,2024.2对此工具进行了改进,才勉强能用,想体验新版Vitis,建议选择Vivado 2024.2。

当然,各位同学可以同时安装多个版本的Vivado,根据需要选用。

综合来说,建议选择Vivado 2024.2作为主力FPGA开发工具,编译速度可以说是所有版本中最快的,同时作为次新版本也支持各种新特性和新版Vitis。

但是,需要注意Vivado 2024.2稳定性可能稍差,因为本系列文章绝大部分实验都用的是2024.2,对于复杂的包含Block Design的工程,2024.2可能在实现的最终阶段报错,并且没有错误信息,此问题难以定位,但大概率还是Vivado 2024.2的问题,此处指出,作为提醒。

本文测试结果仅供参考。

四、测试工程分享

本系列文章的所有测试工程,如下图所示。

均通过网盘分享。

欢迎大家关注我的微信公众号:徐晓康的博客,回复以下6位数字获取网盘链接。

981520

建议复制过去不会码错字!


如果本文对你有所帮助,欢迎点赞、转发、收藏、评论让更多人看到,赞赏支持就更好了。

如果对文章内容有疑问,请务必清楚描述问题,留言评论或私信告知我,我看到会回复。


徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
目录
0
希望看到您的想法,请您发表评论x