0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈Vivado编译时间

FPGA技术驿站 来源:FPGA技术驿站 2024-09-18 10:43 次阅读

随着FPGA规模的增大,设计复杂度的增加,Vivado编译时间成为一个不可回避的话题。尤其是一些基于SSI芯片的设计,如VU9P/VU13P/VU19P等,布局布线时间更是显著增加。当然,对于一些设计而言,十几个小时是合理的。但我们依然试图分析设计存在的问题以期缩短编译时间。

通常,综合(Synthesis)所消耗的时间比布局布线要短,但从代码风格角度而言,我们也能找到一些端倪来缩短综合所用的时间。如下图所示代码,左右两侧功能是一致的,区别在于左侧采用了for generate语句,for循环里嵌套了always模块;右侧实际上不需要generate语句,always里直接使用了for循环(注意:实际上,这里不需要for循环,只是为了说明for循环对编译时间的影响)。单独对左侧模块采用OOC综合,耗时2分钟;而右侧耗时1分钟。因此,我们在用for循环时要谨慎一些。

wKgZombqPm-AQ__dAADm1cI9n3M572.jpg

Vivado还支持多线程可进一步缩短编译时间,这需要通过如下的Tcl脚本进行设置。综合阶段,Vivado可支持的最大线程数为4。布局布线阶段,可支持的最大线程数为8(Windows系统默认值为2,Linux系统默认值为8)。实际上,DRC检查、静态时序分析和物理优化也支持多线程,最大线程数为8。我们可以在log文件中查看到当前使用的线程数。

set_param general.maxThreads 4

wKgaombqPm-AJLjuAACBnNufF50988.jpg

在Vivado Design Run窗口,我们可以查看到整个设计综合和实现的耗时,如下图所示。对于实现各个子阶段的耗时就需要在log文件中查看。只需要搜索关键字Ending,如下图所示。可以看到opt_design耗时3分钟,place_design耗时1小时45分钟,phys_opt_design耗时20分钟,route_design耗时3小时27分钟。

wKgZombqPm-AS73sAAA0gVrkxEk690.jpg

wKgaombqPm-AAaIrAAEDX-Vqt2A384.jpg

Vivado还提供了报告策略,如下图所示。本身生成报告也是需要时间的,因此可根据设计需要选择报告策略,去除不必要的报告以节省时间。同时,对于已确定的报告策略仍然可以进一步编辑,增加期望的报告或者删除不需要的报告。这可通过Report窗口中的Add Report或Remove Report/Disable Report完成。

wKgaombqPm-AVqOuAADmEUGYxGc646.jpg

wKgaombqPm-Adx1CAACN8jen5lw135.jpg

通常,布线是耗时最长的部分,为此Vivado对route_design提供了选项-ultrathreads,其目的是使布线器更快的运行,但是以牺牲结果的一致性为代价的。

从策略角度看,如果仅仅是为了评估资源利用率,那么Implementation Strategy可以选择Flow_Quick。如果时序裕量比较大,那么也可以选择Flow_RuntimeOptimized,该策略是以牺牲性能为代价来缩短编译时间的。

wKgZombqPm-APza0AAB5hcL2bO4774.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21663

    浏览量

    601675
  • 芯片
    +关注

    关注

    453

    文章

    50360

    浏览量

    421646
  • 编译时间
    +关注

    关注

    0

    文章

    4

    浏览量

    5484
  • Vivado
    +关注

    关注

    19

    文章

    807

    浏览量

    66312

原文标题:再谈Vivado编译时间

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何缩短Vivado的运行时间

    Vivado Implementation阶段,有时是有必要分析一下什么原因导致运行时间(runtime)过长,从而找到一些方法来缩短运行时间
    的头像 发表于 05-29 14:37 1.4w次阅读
    如何缩短<b class='flag-5'>Vivado</b>的运行<b class='flag-5'>时间</b>

    浅析可提升Vivado编译效率的增量编译方法

    增量编译:使用增量编译满足最后时刻 HDL 变动需求,仅针对已变动逻辑进行布局布线,从而可节省时间
    的头像 发表于 12-13 10:14 5319次阅读

    谁能缩短大容量FPGA的编译时间?增量式编译QIC!

    增量式编译(Incremental Compilation)是ALTERA为解决大容量FPGA设计编译时间太长的问题给出的一个新式工具!在本文中我们将阐述QIC在缩短编译
    发表于 12-25 11:26 4926次阅读

    Vivado中的Incremental Compile增量编译技术详解

    Incremental Compile增量编译Vivado提供的一项高阶功能。目的旨在当设计微小的改变时,重用综合和布局布线的结果,缩短编译时间
    的头像 发表于 07-05 06:06 1.1w次阅读

    浅谈 Atmel Studio 6和IAR C编译器之间的链接问题

    浅谈 Atmel Studio 6和IAR C编译器之间的链接问题
    的头像 发表于 07-04 09:50 3508次阅读

    Vivado Design Suite 2015.3新增量编译功能介绍

    了解Vivado实现中2015.3中的新增量编译功能,包括更好地处理物理优化和自动增量编译流程。
    的头像 发表于 11-20 06:56 2815次阅读

    Vivado 2015.3中的新增量编译功能介绍

    了解Vivado实现中2015.3中的新增量编译功能,包括更好地处理物理优化和自动增量编译流程。
    的头像 发表于 11-29 06:32 3617次阅读

    Vivado 2015.3的新增量编译功能

    了解Vivado实现中2015.3中的新增量编译功能,包括更好地处理物理优化和自动增量编译流程。
    的头像 发表于 11-30 19:24 4485次阅读

    讲述增量编译方法,提高Vivado编译效率

    当RTL代码修改较少时,使用增量编译功能可以提高工程的编译速度,Incremental Compile增量编译Vivado提供的一项高阶功能。目的旨在当设计微小的改变时,重用综合和布
    的头像 发表于 01-22 17:27 1w次阅读
    讲述增量<b class='flag-5'>编译</b>方法,提高<b class='flag-5'>Vivado</b><b class='flag-5'>编译</b>效率

    赛灵思Vivado ML版优化应用设计

    Vivado HLx 版本相比,Vivado ML 版将复杂设计的编译时间缩短了 5 倍,同时还提供了突破性的平均达 10% 的结果质量( QoR )提升。
    的头像 发表于 07-02 16:40 2722次阅读
    赛灵思<b class='flag-5'>Vivado</b> ML版优化应用设计

    Vivado里如何手动调整编译顺序

    通常情况下,一旦创建好Vivado工程,添加了相应的RTL文件,Vivado会自动找到设计的顶层文件,正确地显示设计层次。在这个过程中,Vivado会自动分析文件的编译顺序。那么是否可
    的头像 发表于 01-06 09:27 3923次阅读

    Vivado增量编译的基本概念、优点、使用方法以及注意事项

    随着FPGA设计的复杂度不断提高,设计人员需要选择更为高效的设计流程来保证开发效率和减少开发成本。其中,Vivado增量编译是一种非常重要的设计流程。本文将介绍Vivado增量编译的基
    的头像 发表于 05-25 18:25 4591次阅读
    <b class='flag-5'>Vivado</b>增量<b class='flag-5'>编译</b>的基本概念、优点、使用方法以及注意事项

    Vivado那些事儿:节省编译时间系列文章

    虽然想必您知道,在综合或实现阶段,增量运行可以从参考文件中读取和复制信息,但仅在某些阶段中能节省时间,如果网表发生大量更改,其中引用的内容就会减少,编译时间也会受到相应影响。
    的头像 发表于 10-09 16:48 2625次阅读
    <b class='flag-5'>Vivado</b>那些事儿:节省<b class='flag-5'>编译</b><b class='flag-5'>时间</b>系列文章

    Vivado编译常见错误与关键警告梳理与解析

    Xilinx Vivado开发环境编译HDL时,对时钟信号设置了编译规则,如果时钟由于硬件设计原因分配到了普通IO上,而非_SRCC或者_MRCC专用时钟管脚上时,编译器就会提示错误。
    的头像 发表于 04-15 11:38 4718次阅读

    每次Vivado编译的结果都一样吗

    很多FPGA工程师都有这种困惑,Vivado每次编译的结果都一样吗? 在AMD官网上,有这样一个帖子: Are Vivado results repeatable for identical
    的头像 发表于 11-11 11:23 173次阅读
    每次<b class='flag-5'>Vivado</b><b class='flag-5'>编译</b>的结果都一样吗