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

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

3天内不再提示

Vivado提供的参数选项

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-07-03 10:38 次阅读

FPGA设计里,设计仿真完成RTL代码设计后便是交给设计套件进行综合及布局布线。在综合过程里,Vivado里提供的参数选项有点儿多,今天闲暇抽空梳理下。

-flatten_hierarchy

该参数提供三个可选项:

full:将我们整个设计层次打平,只保留顶层设计,对模块间进行边界优化(可以理解为我们整个设计被塞到一个Module里)。

none:完全保留设计原始层次,不执行任何边界优化。该选项工具进行的优化最少,消耗的资源最多,层次保留最完整。

rebuild:在进行综合时将原始设计打平,执行边界优化,但将网表文件按照原始设计层次显示。

对于在Verilog中使用的"keep_hierarchy"属性优先级高于flatten_hierarchy。

gated_clock_conversion

ASIC中门控时钟用的比较多,而在FPGA设计中,门控时钟并不是专用时钟模块生成,而且Vivado并不会对门控时钟插入BUFG,在设计中应极力避免。该选项可将门控时钟信号转换为使能信号,从而避免门控时钟的使用。该选项存在三个参数:

off:不允许门控时钟转换。

on:允许门控时钟转换,Verilog里添加“gated_clocked”的门控时钟将会自动转换。

auto:Verilog中添加“gated_clocked”的门控时钟或者工具检测到门控时钟而且有相应可用的时钟约束选项时将进行门控时钟转换。

当门控时钟负载较少且时钟频率并不高时可以适当使用门控时钟,但建议手动插入BUFG。

-fanout_limit

该选项用于设定信号所能承受的最大负载。该选项对于设计中的控制信号,如置位,复位和使能信号是无效的。

-fanout_limit只是一个宏观指导原则,并非强制命令。如果需要很明确的对某个信号降扇出,应使用MAX_FANOUT而不是-fanout_limit。

MAX_FANOUT可应用于RTL代码中,也可应用于XDC中,优先级高于-fanout_limit。当需要控制扇出的寄存器与负载不在同一层次时,flatten_hierarchy不要设置为none模式,否则将会无法生效。

-directive

Vivado提供的一些优化策略:

RuntimeOptimized:执行较少的时序优化及RTL优化以降低运行时间。

AreaOptimized_high:执行常规面积优化,包括强制执行三进制加法器,在比较器中使用新阈值以使用进位链以及实现面积优化的多路复用器

AreaOptimized_medium:执行常规面积优化,包括更改控制集优化的阈值,强制执行三进制加法器,将推理的乘法器阈值降低到DSP模块,将移位寄存器移入BRAM,在比较器中使用较低阈值以使用进位链,以及进行区域优化的MUX操作。

AlternateRoutability:通过算法提升路由能力(使用更少的MUXF和CARRYs)。

AreaMapLargeShiftRegToBRAM:检测大型移位寄存器,并使用专用的Block RAM实现它们。

AreaMultThresholdDSP:减少DSP的推断及使用。

FewerCarryChains:通过LUT使用降低进位链的使用。

-retiming

在不改变原始设计及功能时通过调整LUT和寄存器位置来进行时序优化调整。

-fsm_extraction

设定状态机编码方式,默认为auto,此时Vivado会自行决定最佳的编码方式。

-keep_equivalent_registers

当勾选时,对于输入的同源寄存器,综合时将会被合成一个。如下例所示:

always@(posedge clk)begin  rx<=a;  ry<=a;  r<=b;  resa<=rx & r;  resb<=ry^y;end

当该选项不勾选时,rx,ry将会被合并成一个寄存器。

-resource_shring

对算数运算符通过资源共享优化设计资源,有三个可选项:auto、on、off。设置为auto时,工具会根据时序要求进行调整。

-control_set_opt_threshold

触发器的控制集由时钟信号,复位/置位吸纳后和使能信号构成,通常只有{clk,set/rst,ce}均相同的触发器才可以被放在一个SLICE中。该选项将时钟使能优化的阈值设置为较少的控制集。默认值为自动,这意味着该工具将根据目标设备选择一个值。支持任何正整数值。

给定值是工具将控制集移入寄存器的D逻辑所需的扇出数量。如果扇出大于该值,则该工具尝试使该信号驱动该寄存器上的control_set_pin。

-no_lc

使能该选项时,工具将不会尝试LUT的整合。虽然LUT整合能够降低LUT的使用,但也有可能导致布局布线拥塞。当“LUT as Logic”超过15%时,建议勾选该选项。

-no_slrextract -shreg_min_size

移位寄存器可以被综合成LUT实现。-shreg_min_size用于管理移位寄存器是否映射为LUT,默认值为3.当移位寄存器的深度不超过-shereg_min_size时,最终采用移位寄存器实现,否则采用FF+LUT+FF形式实现。

-no_slrextract用于阻止工具将移位寄存器映射为LUT。优先级高于-shreg_min_size。

其他选项我们基本就用不上了,若需使用可参照ug901手册。

原文标题:乱花渐欲迷人眼—Vivado之Synthesis

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静

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

    关注

    31

    文章

    5308

    浏览量

    119977
  • Vivado
    +关注

    关注

    19

    文章

    807

    浏览量

    66312
  • RTL代码
    +关注

    关注

    0

    文章

    4

    浏览量

    6816

原文标题:乱花渐欲迷人眼—Vivado之Synthesis

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何在Vitis中把设置信息传递到底层的Vivado

    析时序问题的原因, 并根据时序失败的原因调整Vivado各个步骤的选项。有时我们也需要调整Vivado各个步骤的选项做不同方向的优化。
    发表于 08-02 08:03 1315次阅读
    如何在Vitis中把设置信息传递到底层的<b class='flag-5'>Vivado</b>

    Vivado for ZYBO无法提供该怎么办?

    我试图跟随Zybo板的“开箱后”演示。我正在尝试在vivado 2015.1上生成比特流,并且我不断收到这两个错误[IP_Flow 19-395]读取IP文件时出现问题,未找到元素项目行3:C
    发表于 09-24 08:43

    Vivado参数propragation有什么不同吗?

    嗨,我在Vivado 16.2中重新创建了一个在Vivado 15.2中完美运行的固件。当我尝试在IPI中验证设计时,它会给出错误和严重警告。这个版本的Vivado参数proprag
    发表于 08-06 07:55

    Vivado 2017.1和Vivado 2016.4性能对比分析

    此篇文章里,我们将通过使用InTime来检验Vivado 2017.1和Vivado2016.4之间的性能对比。 概要:分别进行了3个Vivado 2017.1对Vivado2016.
    的头像 发表于 07-04 11:23 1w次阅读
    <b class='flag-5'>Vivado</b> 2017.1和<b class='flag-5'>Vivado</b> 2016.4性能对比分析

    深度解读Vivado之Synthesis

    在FPGA设计里,设计仿真完成RTL代码设计后便是交给设计套件进行综合及布局布线。在综合过程里,Vivado提供参数选项有点儿多,今天闲暇抽空梳理下。 -flatten_hiera
    的头像 发表于 06-01 11:20 7567次阅读

    关于Vivado non-project模式

    vivado有project模式和non-project模式,project模式就是我们常用的方式,在vivado里面新建工程,通过GUI界面去操作;non-project模式就是纯粹通过tcl来指定vivado的流程、
    的头像 发表于 10-17 10:09 3258次阅读

    Vivado中的Elaborate是做什么的?

    Vivado的界面中,有个RTL ANALYSIS->Open Elaborated Design的选项,可能很多工程师都没有使用过。因为大家基本都是从Run Synthesis开始的。
    的头像 发表于 10-24 10:05 1427次阅读

    简述Vivado中的Elaborate的作用

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

    Vivado布线和生成bit参数设置

    本文主要介绍Vivado布线参数设置,基本设置方式和vivado综合参数设置基本一致,将详细说明如何设置布线参数以优化FPGA设计的性能,以
    的头像 发表于 05-16 16:40 4480次阅读
    <b class='flag-5'>Vivado</b>布线和生成bit<b class='flag-5'>参数</b>设置

    Vivado综合参数设置

    如果你正在使用Vivado开发套件进行设计,你会发现综合设置中提供了许多综合选项。这些选项对综合结果有着潜在的影响,而且能够提升设计效率。为了更好地利用这些资源,需要仔细研究每一个
    的头像 发表于 05-16 16:45 3427次阅读
    <b class='flag-5'>Vivado</b>综合<b class='flag-5'>参数</b>设置

    Vivado IP核Shared Logic选项配置

    在给Vivado中的一些IP核进行配置的时候,发现有Shared Logic这一项,这里以Tri Mode Ethernet MAC IP核为例,如图1所示。
    的头像 发表于 09-06 17:05 1490次阅读
    <b class='flag-5'>Vivado</b> IP核Shared Logic<b class='flag-5'>选项</b>配置

    Vivado设计套件用户:使用Vivado IDE的指南

    电子发烧友网站提供Vivado设计套件用户:使用Vivado IDE的指南.pdf》资料免费下载
    发表于 09-13 15:25 14次下载
    <b class='flag-5'>Vivado</b>设计套件用户:使用<b class='flag-5'>Vivado</b> IDE的指南

    tcpdump常用的选项参数详细总结

    常用选项通过上述的实战案例,相信大家已经掌握的 tcpdump 基本用法,在这里来详细总结一下常用的选项参数。 (一)基础选项 -i:指定接口 -D:列出可用于抓包的接口 -s:指定数
    的头像 发表于 09-28 15:52 1767次阅读

    如何禁止vivado自动生成 bufg

    操作: 打开Vivado工程,并进入项目导航器窗口。 选择下方的"IP"选项卡,展开"Clocking"选项。在这
    的头像 发表于 01-05 14:31 1946次阅读

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

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