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

    文章

    296

    浏览量

    21145
  • Vivado
    +关注

    关注

    18

    文章

    781

    浏览量

    65011
收藏 人收藏

    评论

    相关推荐

    SMT组装的各种生产流程

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

    什么是Logic SynthesisSynthesis流程

    什么是Logic Synthesis?Logic Synthesis用于将输入的高级语言描述(如HDL、verilog)转换为门级电路的网络表示。
    的头像 发表于 10-24 15:56 513次阅读
    什么是Logic <b class='flag-5'>Synthesis</b>?<b class='flag-5'>Synthesis</b>的<b class='flag-5'>流程</b>

    Vivado设计流程指导手册

    Vivado 设计分为 Project Mode 和 Non-project Mode 两种模式,一般简单设计中,我们常用的是 Project Mode。在本手册中,我们将以一个简单的实验案例,一步一步的完成 Vivado的整个设计流程
    发表于 09-20 07:37

    vivado主界面及设计流程

    Vivado设计主界面,它的左边是设计流程导航窗口,是按照FPGA的设计流程设置的,只要按照导航窗口一项一项往下进行,就会完成从设计输入到最后下载到开发板上的整个设计流程
    的头像 发表于 09-17 15:40 1523次阅读
    <b class='flag-5'>vivado</b>主界面及设计<b class='flag-5'>流程</b>

    Vivado设计套件用户指南(设计流程概述)

    电子发烧友网站提供《Vivado设计套件用户指南(设计流程概述).pdf》资料免费下载
    发表于 09-15 09:55 1次下载
    <b class='flag-5'>Vivado</b>设计套件用户指南(设计<b class='flag-5'>流程</b>概述)

    vivado仿真流程

    vivado开发软件自带了仿真工具,下面将介绍vivado的仿真流程,方便初学者进行仿真实验。
    的头像 发表于 07-18 09:06 2173次阅读
    <b class='flag-5'>vivado</b>仿真<b class='flag-5'>流程</b>

    vivado创建工程流程

    vivado的工程创建流程对于大部分初学者而言比较复杂,下面将通过这篇博客来讲解详细的vivado工程创建流程。帮助自己进行学习回顾,同时希望可以对有需要的初学者产生帮助。
    的头像 发表于 07-12 09:26 1152次阅读
    <b class='flag-5'>vivado</b>创建工程<b class='flag-5'>流程</b>

    用 TCL 定制 Vivado 设计实现流程

    今天推出Xilinx已发布的《Vivado使用误区与进阶》系列:用TCL定制Vivado设计实现流程。 上一篇《Tcl 在 Vivado 中的应用》介绍了 Tcl 的基本语法以及如何利
    发表于 06-28 19:34

    如何在Post Synthesis工程中加入XCI文件

    是创建并定制 IP,生成这些 IP 的 output product (包括 IP 的 dcp);然后把第三方生成的网表文件和 IP XCI 的相关文件都加到 Vivado 的 post-synthesis 工程中。
    的头像 发表于 06-08 15:43 723次阅读
    如何在Post <b class='flag-5'>Synthesis</b>工程中加入XCI文件

    Vivado Design Suite 用户指南介绍

    DFX 是由多个部分组成的综合性解决方案。这些要素包括:AMD 芯片能进行动态重配置,Vivado 软件流程支持编译设计(从 RTL 到比特流),以及各种补充性功能特性(如 IP)。
    发表于 05-18 09:47 490次阅读
    <b class='flag-5'>Vivado</b> Design Suite 用户指南介绍

    简述Vivado中的Elaborate的作用

    Vivado的界面中,有个RTL ANALYSIS->Open Elaborated Design的选项,可能很多工程师都没有使用过。因为大家基本都是从Run Synthesis开始的。
    的头像 发表于 05-05 16:00 822次阅读
    简述<b class='flag-5'>Vivado</b>中的Elaborate的作用

    Vivado中实现ECO功能

    关于 Tcl 在 Vivado中的应用文章从 Tcl 的基本语法和在 Vivado 中的 应用展开,继上篇《用 Tcl 定制 Vivado 设计实现流程》介绍了如何扩展甚 至是定制 F
    的头像 发表于 05-05 15:34 1636次阅读
    在<b class='flag-5'>Vivado</b>中实现ECO功能

    用TCL定制Vivado设计实现流程

    今天推出Xilinx已发布的《Vivado使用误区与进阶》系列:用TCL定制Vivado设计实现流程
    的头像 发表于 05-05 09:44 684次阅读
    用TCL定制<b class='flag-5'>Vivado</b>设计实现<b class='flag-5'>流程</b>

    Xilinx FPGA Vivado 开发流程

    开发设计流程。话不多说,上货。Xilinx FPGA Vivado 开发流程在做任何设计之前,我们都少不了一个工作,那就是新建工程,我们设计的一些操作,必须在工程下完成,那么接下来就向大家介绍一下新建工程的步骤
    发表于 04-13 15:18

    使用Vivado点量led灯-Vivado基本开发流程

    1,创建工程打开Vivado软件,点击新建工程。根据向导创建工程,以下以Xilin 7020开发板为例,进行介绍。注意:I,设置工程的名称,在这个步骤中可以勾选“Create project
    发表于 04-05 23:21