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

-
测试的Vivado版本为2018.3, 2019.2, 2020.2,2021.2,2022.2,2023.2,2024.2,2025.1 -
测试工程仍为前文三个示例工程:CPU、MB和ZYNQU -
最大线程和使用线程均固定为32 -
其余条件同前文实验
二、测试记录
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版本的编译时间,可以发现:
-
Vivado 2025.1和Vivado 2023.2都不行,与Vivado 2024.2相比均有较大差距,其中2023.2很差,可能是因为2023.2版本是AMD刚收购Xilinx而着急推出的软件,实际还没有打磨好; -
Vivado 2022.2、Vivado 2021.2和Vivado 2020.2还行,整体编译速度与Vivado 2024.2相当。但对于纯Verilog工程(CPU),2024.2还是遥遥领先; -
Vivado 2019.2和Vivado 2018.3也还行,整体速度与Vivado 2024.2相差不大,因ZYNQU工程与高版本有些区别,所以此工程编译时间参考意义不大。
具体选择哪个版本Vivado,其他需要考虑的因素:
-
Vivado 2018.3版本还有SDK( 2019.1是最后一个带SDK的版本),如果需要维护旧的SDK工程,建议选择Vivado 2018.3/2019.1; -
Vivado 2019.2首次推出Vitis替代SDK,直到Vivado 2023.2和2024.2,一直都保留了Vitis,在2023.2/2024.2中与旧版兼容的Vitis称为Classic Vitis; -
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与嵌入式知识,软件,工具等内容,欢迎大家关注。