跳至正文

如何提高Vivado编译速度06–禁用报告和抑制信息能否加快编译速度?

前言

书接上文,本文测试禁用报告和抑制信息能否加快编译速度?先说结论:

  1. 禁用报告能略微提升Vivado编译速度,但副作用很大(看不到资源利用率、时序等报告了),不推荐;

  2. 抑制信息不能提升Vivado编译速度。

具体测试详见正文。

一、实验条件说明

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

二、测试截图

2.1 Report策略-默认

CPU


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

MB


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

ZYNQU


实验编号 OOC 综合 实现 合计
Report策略-默认-ZYNQU-1 1m09s 29s 1m58s 3m36s
Report策略-默认-ZYNQU-2 1m09s 29s 1m58s 3m36s
Report策略-默认-ZYNQU-平均 1m09s 29s 1m58s 3m36s

2.2 Report策略-No Reports

参考:ug892-vivado-design-flows-overview-en-us-2024.2.pdf

如何设置No Reports,参考下图。


CPU


实验编号 OOC 综合 实现 合计
Report策略-No Reports-CPU-1 0 1m21s 1m35s 2m56s
Report策略-No Reports-CPU-2 0 1m20s 1m36s 2m56s
Report策略-No Reports-CPU-平均 0 1m20.5s 1m35.5s 2m56s

MB


实验编号 OOC 综合 实现 合计
Report策略-No Reports-MB-1 3m09s 26s 4m04s 7m39s
Report策略-No Reports-MB-2 3m05s 25s 4m03s 7m33s
Report策略-No Reports-MB-平均 3m07s 25.5s 4m03.5s 7m36s

ZYNQU


实验编号 OOC 综合 实现 合计
Report策略-No Reports-ZYNQU-1 1m11s 28s 1m51s 3m30s
Report策略-No Reports-ZYNQU-2 1m10s 28s 1m52s 3m30s
Report策略-No Reports-ZYNQU-平均 1m10.5s 28s 1m51.5s 3m30s

2.3 抑制所有消息

本章测试抑制所有消息是否能提升Vivado编译速度。

使用以下tcl命令可抑制Vivado所有输出的信息:

# 抑制所有 INFO 级别的消息
set_msg_config -suppress -severity {INFO}

# 抑制所有 WARNING 级别的消息
set_msg_config -suppress -severity {WARNING}

使用以下tcl命令可以取消抑制:

# 取消抑制所有 INFO 级别的消息
reset_msg_config -suppress -severity {INFO}

# 取消抑制所有 WARNING 级别的消息
reset_msg_config -suppress -severity {WARNING}

使用以下tcl命令可以查看目前有哪些信息被抑制:

# 查看所有消息配置
get_msg_config -rules

需要特别注意的是,抑制命令在关闭Vivado再重新打开以后仍然有效,所以,还是需要用上面介绍的命令来取消抑制。

CPU


实验编号 OOC 综合 实现 合计
无INFO无警告-CPU-1 0 1m21s 1m46s 3m07s
无INFO无警告-CPU-2 0 1m21s 1m46s 3m07s
无INFO无警告-CPU-平均 0 1m21s 1m46s 3m07s

MB


实验编号 OOC 综合 实现 合计
无INFO无警告-MB-1 3m09s 25s 4m30s 8m04s
无INFO无警告-MB-2 3m06s 25s 4m29s 8m00s
无INFO无警告-MB-平均 3m07.5s 25s 4m29.5s 8m02s

ZYNQU


实验编号 OOC 综合 实现 合计
无INFO无警告-ZYNQU-1 1m08s 28s 1m59s 3m35s
无INFO无警告-ZYNQU-2 1m08s 29s 2m01s 3m38s
无INFO无警告-ZYNQU-平均 1m08s 28.5s 2m00s 3m36.5s

三、实验数据统计与分析

实验条件/平均编译时间/示例工程 CPU MB ZYNQU
Report策略-默认 3m09s 8m01s 3m36s
Report策略-No Reports 2m56s(-6.9%) 7m36s(-5.2%) 3m30s(-2.8%)
Report策略-默认+无INFO无警告 3m07s 8m02s 3m36.5s

从编译时间对比来看,舍弃Reports对编译速度的提升比较微弱,且对比OOC/综合/实现各部分的时间可以发现舍弃Reports仅对实现阶段有提升,这也很容易理解,因为大部分Report就是在实现阶段生成的。

总结:

  1. 不建议使用No Reports的Report策略,对编译速度提升影响微弱,但有较大副作用,看不到资源消耗、功耗和时序信息了;
  2. 不要抑制任何信息,对提升编译速度无帮助。

四、测试工程分享

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

均通过网盘分享。

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

981520

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


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

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


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

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