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

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

3天内不再提示

Vivado Synthesis的各种流程

FPGA技术驿站 来源:TeacherGaoFPGAHub 作者:TeacherGaoFPGAHub 2022-07-15 11:39 次阅读

全局综合(Global Synthesis)

全局综合意味着整个设计在一个Synthesis Design Run流程中完成,这样会带来几个好处。一是使得综合工具能够最大化地进行设计优化,尤其是层次间的优化(这些优化是其他综合流程不能实现的)。二是对于综合后的设计分析带来了很大的便利。当然,其不足之处也是很明显的,那就是编译时间会很长。但这一不足之处可以借助增量综合得以缓解。需要注意的是因为是全局综合,所以XDC中描述的约束是以顶层为基准进行索引的。

IPI综合(Block Design Synthesis)

Vivado IPI (IP Integrator)提供了直观的模块化的设计方法。用户可以将Vivado IP Catalog中的IP、用户自己的RTL代码、或者用户已有的BD文件添加到IP Integrator中构成Block Design,设计更复杂的系统,如下图所示。

a0972958-03ef-11ed-ba43-dac502259ad0.png

IPI使得用户可以方便地将特定功能打包放入设计中,这样用户可以将焦点放在整个系统上,而非系统的某个部分。对于Block Design,Vivado提供了如下图所示的三种综合方式。其中Global为全局综合方式,其余两种均为OOC(Out-of-Context)综合方式,只是OOC的粒度不同而已。OOC可以有效缩短编译时间。

a0ad044e-03ef-11ed-ba43-dac502259ad0.png

OOC综合方式

OOC综合方式可以使用户单独对设计的某个层次进行综合,然后再对整个设计进行综合,此时,OOC综合的对象会被当作黑盒子对待。通常,对于Xilinx的IP,我们建议采用OOC综合方式。OOC可以缩短后续整个设计综合所需时间,同时,若设计发生改变,而OOC综合对象没有改变,那么整个设计的综合就不需要再对OOC对象进行综合。一旦采用OOC综合方式,在Design Runs窗口中就会看到相应的OOC Module Runs,如下图所示。

a0bbbbc4-03ef-11ed-ba43-dac502259ad0.png

增量综合(Incremental Synthesis)

增量综合可以使综合工具复用之前已有的综合结果,从而缩短编译时间。但增量综合是有前提条件的,即设计可以形成至少4个分割(Partitions),而每个分割至少包含25000个模块。这里的“模块”既包含设计层次也包含RTL原语。Vivado提供了四种增量综合模式,如下图所示。其中off表明关闭增量综合,quick模式不会进行边界优化。default模式会执行大部分逻辑优化包括边界优化,相对于非增量模式,能显著缩短编译时间。aggressive模式会执行所有的逻辑优化,编译时间缩短程度最为明显。对于低性能设计需求,可以使用quick模式,而对于高性能设计需求,建议采用其余三种模式。

a0d724b8-03ef-11ed-ba43-dac502259ad0.png

模块化综合(Block-level Synthesis)

本身Vivado提供了多种综合策略和各种综合设置选项,但其面向的对象是整个设计,换言之,这是一种全局设置。Block-level综合技术则打破了这一常规,可以对不同层次的设计设置不同的选项或应用不同的综合策略,从而达到更好的综合质量。

Block-level综合技术需要通过XDC约束来实现,如下图所示。

a0e406f6-03ef-11ed-ba43-dac502259ad0.png

我们来看一个例子:设计中有4个模块U1、U2、U3和inst1,而inst1又嵌入在U3里。现在我们需要对U1使能RETIMING,对U2和U3使用AREA_OPTIMIZED策略,对inst1使用DEFAULT综合策略,那么我们就可以通过下图所示约束实现。

a0f0a488-03ef-11ed-ba43-dac502259ad0.png

a1096ae0-03ef-11ed-ba43-dac502259ad0.png

审核编辑 :李倩

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

    关注

    0

    文章

    329

    浏览量

    21330
  • Vivado
    +关注

    关注

    19

    文章

    808

    浏览量

    66312
收藏 人收藏

    评论

    相关推荐

    Xilinx_Vivado_SDK的安装教程

    I Agree,然后点击 Next: 选择 Vivado HL System Edition(一般选择这个设计套件比较完整,它比 Vivado HL Design Edition 多了一个 System Generator for DSP with Mat
    的头像 发表于 11-16 09:53 305次阅读
    Xilinx_<b class='flag-5'>Vivado</b>_SDK的安装教程

    U50的AMD Vivado Design Tool flow设置

    AMD Alveo 加速卡使用有两种流程,AMD Vitis Software Platform flow 和 AMD Vivado Design Tool flow。比较常见的是 Vitis
    的头像 发表于 11-13 10:14 99次阅读
    U50的AMD <b class='flag-5'>Vivado</b> Design Tool flow设置

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

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

    Vivado使用小技巧

    有时我们对时序约束进行了一些调整,希望能够快速看到对应的时序报告,而又不希望重新布局布线。这时,我们可以打开布线后的dcp,直接在Vivado Tcl Console里输入更新后的时序约束。如果调整
    的头像 发表于 10-24 15:08 202次阅读
    <b class='flag-5'>Vivado</b>使用小技巧

    Vivado 2024.1版本的新特性(2)

    从综合角度看,Vivado 2024.1对SystemVerilog和VHDL-2019的一些特性开始支持。先看SystemVerilog。
    的头像 发表于 09-18 10:34 632次阅读
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(2)

    Vivado 2024.1版本的新特性(1)

    Vivado 2024.1已正式发布,今天我们就来看看新版本带来了哪些新特性。
    的头像 发表于 09-18 10:30 914次阅读
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(1)

    如何在AMD Vivado™ Design Tool中用工程模式使用DFX流程

    本文介绍了在 AMD Vivado™ Design Tool 中用工程模式使用 DFX 流程以及需要注意的地方。在使用 DFX 工程模式的过程中要把具体步骤映射到相应的 DFX 非工程模式的步骤,这样才能更好地理解整个流程的运行
    的头像 发表于 04-17 09:28 751次阅读
    如何在AMD <b class='flag-5'>Vivado</b>™ Design Tool中用工程模式使用DFX<b class='flag-5'>流程</b>?

    深入探索Vivado非工程模式FPGA设计流程

    在设计过程的每个阶段,设计者均可以打开Vivado集成开发环境,对存储器中保存的当前设计进行分析和操作。
    发表于 04-03 09:36 861次阅读
    深入探索<b class='flag-5'>Vivado</b>非工程模式FPGA设计<b class='flag-5'>流程</b>

    Vivado Synthesis中怎么使用SystemVerilog接口连接逻辑呢?

    SystemVerilog 接口的开发旨在让设计中层级之间的连接变得更加轻松容易。 您可以把这类接口看作是多个模块共有的引脚集合。
    的头像 发表于 03-04 15:25 875次阅读
    在<b class='flag-5'>Vivado</b> <b class='flag-5'>Synthesis</b>中怎么使用SystemVerilog接口连接逻辑呢?

    如何禁止vivado自动生成 bufg

    Vivado中禁止自动生成BUFG(Buffered Clock Gate)可以通过以下步骤实现。 首先,让我们简要了解一下什么是BUFG。BUFG是一个时钟缓冲器,用于缓冲输入时钟信号,使其更稳
    的头像 发表于 01-05 14:31 1946次阅读

    Vivado时序问题分析

    有些时候在写完代码之后呢,Vivado时序报红,Timing一栏有很多时序问题。
    的头像 发表于 01-05 10:18 1891次阅读

    SMT组装的各种生产流程

    SMT组装的各种生产流程
    的头像 发表于 12-28 09:23 760次阅读
    SMT组装的<b class='flag-5'>各种</b>生产<b class='flag-5'>流程</b>

    VIVADO安装问题解决

    vivado出现安装问题刚开始还以为是安装路径包含中文空格了,重装的注意了一下,发现还是这个问题。。。。后来又一顿操作猛如虎,终于发现了问题。出这个问题的原因是vivado压缩包解压的路径包含中文了把解压文件放到不含中文的地方,再重新安装,安装路径也不能含中文。然后。。。
    发表于 12-22 10:56 0次下载

    VIVADO软件使用问题总结

    【关键问题!!!!重要!!!】VIVADO会在MESSAGE窗口出提示很多错误和警告信息!
    的头像 发表于 12-15 10:11 1780次阅读
    <b class='flag-5'>VIVADO</b>软件使用问题总结

    FPGA实现基于Vivado的BRAM IP核的使用

    定制的RAM资源,有着较大的存储空间,且在日常的工程中使用较为频繁。BRAM以阵列的方式排布于FPGA的内部,是FPGA实现各种存储功能的主要部分,是真正的双读/写端口的同步的RAM。 本片
    的头像 发表于 12-05 15:05 1547次阅读