Vivado综合参数设置

news2025/4/6 2:13:13

如果你正在使用Vivado开发套件进行设计,你会发现综合设置中提供了许多综合选项。这些选项对综合结果有着潜在的影响,而且能够提升设计效率。为了更好地利用这些资源,需要仔细研究每一个选项的功能。本文将要介绍一下Vivado的综合参数设置。

一、Vivado综合参数介绍

在Vivado中,默认情况下,综合器会根据指定的目标芯片和设定的优化策略来产生最优的电路实现方案。常用的选项都可以在下图菜单中设置。

1、flatten_hierarchy

这个参数决定了Vivado综合工具将如何控制层次结构,一般默认为rebuilt,主要有以下3个参数选项:

(1)full

表示采用完全展平层次结构,只留下顶层。只保留顶层层次,执行边界优化 。

(2)none

表示采用不展平层次结构, 综合后的输出具有与原始RTL相同的层次结构,且不执行边界优化 。

(3)rebuilt

表示允许综合工具展平层次结构,然后根据原始RTL重建层次结构。 此值允许跨边界优化的QoR优势,最终层次结构与RTL类似,便于分析。

2、gated_clock_conversion

控制综合工具的转换时钟逻辑能力,使用门控时钟转换还需要使用RTL属性才能工作。

3、fsm_extraction

控制状态机的编码方式综合方式,默认值为auto,此时vivado会自动推断最佳的编码方式,它有以下几个选项:关闭、sequential、独热码、自动等等,其设定的FSM编码方式优先于HDL代码中定义的方式。

4、fsm_encoding

     设置针对某个状态机设定编码方式,综合属性 -fsm_coding的优先级高于-fsm_extraction,但如果HDL代码中已经定义了编码方式,该设定将无效。

5、 Keep_equivalent_registers

     设置是否保留等效寄存器,equivalent registers也就是等效寄存器,共享输入数据的寄存器。勾选时,等效寄存器不会合并;不勾选时,等效寄存器会被合并。

6、resource_sharing

       设置算术运算通过资源共享来优化设计资源,默认值为auto。

7、control_set_opt_threshold

     设置是否开启控制集的优化,以减少控制集的个数,但会增加LUT资源消耗。触发器的控制集由时钟信号、复位/置位信号和使能信号构成,通常只有{clk,set/rst,ce}均相同的触发器才可以被放置在一个SLICE中,但开启这个参数后3个触发器会被放置到同一个SLICE中。

8、no_lc

    是否开不允许出现LUT整合。 通过LUT整合可以降低LUT的资源消耗,但也可能导致布线拥塞。因此,xilinx建议,当整合的LUT超过了LUT总量的15%时,应考虑勾选-no_lc,关掉LUT整合。

9、shreg_min_size

    影响移位寄存器的实现方式,默认值为3。当HDL代码描述的移位寄存器深度大于此设定值时,将采用“触发器+SRL+触发器”的方式实现,其中SRL由LUT实现。

10、bufg

     控制综合时推断出来的BUFG数量。 当综合过程中看不到设计网表中的其他BUFG时,Vivado设计工具会使用此选项,可以推断出指定的数量,并跟踪在RTL中实例化的BUFG数量。 例如,如果bufg选项设置为12并且在RTL中实例化了三个BUFG,则该工具最多可以推断出9个BUFG。

11、fanout_limit

      设置全局信号高扇出数目,但当HDL代码中有MAX_FANOUT时,该属性失效。

12、directive

      设置不同的优化策略,主要选项参数如下:

  •     Default,默认设置。

  •     RuntimeOptimized,执行最短时间的优化选项,会忽略一些RTL优化来减少综合运行时间。

  •     AreaOptimized_high/medium,执行一些通用的面积优化。

  •     AlternateRoutability,使用算法提高布线能力,减少MUXF和CARRY的使用。

  •     AreaMapLargeShiftRegToBRAM,将大型的移位寄存器用块RAM来实现。

  •     AreaMultThresholdDSP,会更多地使用DSP块资源。

  •     FewerCarryChains,位宽较大的操作数使用查找表(LUT)实现,而不用进位链。

13、max_bram

      设定当前工程的最大块RAM数量,通常在设计中有黑盒或第三方网表时使用,默认设置为-1时,表示使用当前芯片的最大块RAM数量。

  • max_uram:指定ultra ram最大使用个数。

  • max_bram_cascade_height:指定bram最大级联数。

  • max_uram_cascade_height:指定uram最大级联数。

14、max_dsp

     设定当前工程的胡最大块DSP的数量。与max_ram一样。

15、cascase_dsp

     控制sum DSP块输出中的加法器,默认为auto。 auto表示使用块内置加法器链计算DSP输出的总和。 tree强制在结构中(Fabric)实现总和。

16、tcl.pre和tcl.post

  在综合之前和之后立即运行的Tcl文件

二、重要选项介绍

1、Report Setting

     设置是否开启综合资源消耗报告,默认开启即可,如果不需要看,可以关闭。

2、Setting设置中的Strategy

     这里可选不同优化策略设计,使得设计满足相应的需求,如下图所示:

(1) “速度优化”:使时钟频率最快。面积和功耗可能更大。

(2) “平衡优化”:在速度和面积之间取得平衡。

(3) “面积优化”:使元素数量最少,但可能会影响时钟速度和功耗。

(4) “功耗优化”:降低功耗。

三、HDL代码设置综合属性

1、srl_style

srl_style可设定移位寄存器的不同实现方式,主要有以下几种方式:

(* srl_style = “srl_reg” *),实现移位寄存器为SRL + FF结构。

(* srl_style = “reg_srl” *),实现移位寄存器为FF + SRL结构。

(* srl_style = “reg_srl_reg” *),实现移位寄存器为FF + SRL + FF 结构。

(* srl_style = “register” *),实现移位寄存器为纯FF结构。

(* srl_style = “srl” *),实现移位寄存器为纯SRL结构。

其中SRL可以有效减小面积,相比级联寄存器的结构性能要更好,如果再加了FF,时序性能更好。

2、ram_style和rom_style  

定义存储器实现方式,主要有以下几种方式:

(*ram_style = "block" *),表示用Block RAM实现

(*ram_style = "reg" *),表示用寄存器实现

(*ram_style = "distributed" *),表示用分布式 RAM实现

(*ram_style = "uram" *),表示用uram实现

3、use_dsp48

   定义实现这部分算术运算使用dsp资源进行实现,常用形式为:(*use_dsp48=“yes”*)。

(*use_dsp48=“yes”*) reg test;

4、dont_touch

    dont_touch可以防止相关内容被逻辑优化,常用形势为:(*dont_touch =“yes”*)

(*dont_touch =“yes”*) reg test;

5、max_fanout

   设置当前信号的最大扇出数目,常用形式为:(* max_fanout = “20”*)

(*MAX_FANOUT = 50 *) reg test;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot解决用户重复提交订单(方式一:通过唯一索引实现)

文章目录 前言1、方案实现1.1、给数据库表增加唯一键约束1.2、编写获取请求唯一ID的接口1.3、业务提交的时候,检查唯一ID 2、小结 前言 对于投入运营的软件系统(商城、物流、工厂等),最近小编在巡检项目数据库的时候,发…

【场景生成与削减】基于蒙特卡洛法场景生成及启发式同步回带削减风电、光伏、负荷研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

学习笔记 -- C++性能评估工具Perf

Installation sudo apt update sudo apt install linux-tools-common查看你的内核: uname -r我的输出: $ uname -r 5.15.0-67-generic安装对应的 tools: sudo apt install linux-tools-5.15.0-67-genericImplementation 1、Perf List 状…

PyTorch 人工智能研讨会:1~5

原文:The Deep Learning with PyTorch Workshop 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心…

vmware 打开报错

Error: VMware Workstation failed? I downloaded ccleaner to free up my ram and to get rid of some junk files. I ran ccleaner, tried to start my vmware and I got the error message “VMware Workstation failed to start the VMware Authorization Service. You ca…

WPS两次变身:超级会员+超级表格,完美逆袭,这次再也不输office

WPS会员变“超级会员” WPS宣布会员服务升级,将原有的“WPS会员”、“稻壳会员”及“超级会员”进行合并,推出“WPS超级会员”,提供了Pro和基础两个版本套餐。 过去被吐槽的“套娃式”收费被整合,你可以根据日常办公和专业办公的…

数据结构——AVL树

AVL树 概念节点定义插入旋转左单旋与右单旋双旋转 验证AVL树删除(了解) 概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。 因此…

抛弃丑陋的try-catch,优雅处理异常

随着业务逻辑变得越来越复杂,我们在编写代码时会遇到各种异常情况,这时就需要使用try-catch语句来捕获异常并进行处理。但是,大量的try-catch语句会让代码变得臃肿,不易维护,因此,我们需要一种优雅的方式来…

UDS统一诊断服务【六】访问时序参数0X83服务

文章目录 前言一、访问时序参数服务介绍二、数据格式2.1 请求报文2.2 子功能2.3 响应 三、举例 前言 本文介绍UDS统一诊断服务的访问时序参数0X83服务,希望能对你有所帮助 一、访问时序参数服务介绍 这个服务我目前在项目中没怎么用到过,先来看看ISO14…

【三十天精通Vue 3】第十三天 Vue 3 的插件详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 三十天精通 Vue 3 文章目录 引言一、插件概述1.1 插件简介1.2 插件的使用1.3 插件的分类 二、…

五、vue基础-指令之v-bind

一、v-bind 前面要讲的一系列指令,主要是将值插入到模板内容中。 但是,除了内容需要动态来决定外,某些属性我们也希望动态来绑定。 比如动态绑定a元素的href属性;比如动态绑定img元素的src属性; 绑定属性我们使用v-…

智能电网中针对DOS和FDIA的弹性分布式EMA(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 ​智能电网是一种典型的信息物理融合系统,也是关系国民经济发展和国家安全的重大关键基础设施,其安全稳定运行至关重要。近年来…

java某百货店POS积分管理系统_积分点更新生成以及通票回收处理

百货店是生活中不可缺少的一部分,为了给顾客提供更方便的服务平台以及更好的服务质量,而设计了POS积分管理系统。百货店通过点积分的管理获得顾客更好的信誉,增加客户流量,获得更多的利益。在百货店经营的过程中,每天的…

软考 软件设计师上午题面向对象

面向过程和面向对象 省略面向对象可以省略过程,复杂事情简单化 类 类是对象的抽象,对象是类的实例 一般类是交通工具。特殊类是轮船飞机。因为他们是特殊的佳通工具,一个天上的一个海上的 对象 属性别名状态成员变量,方法也叫…

K_A31_002 基于STM32等单片机驱动315MHZ收发模块 串口显示

K_A31_002 基于STM32等单片机驱动315MHZ收发模块 串口显示 所有资源导航一、资源说明二、基本参数参数引脚说明 三、驱动说明原理:对应程序: 四、部分代码说明1、接线引脚定义1.1、STC89C52RC315MHZ收发模块1.2、STM32F103C8T6315MHZ收发模块 五、基础知识学习与相关…

通过Salesforce考试 (考证)后,如何在Trailhead上验证和维护证书?

随着Salesforce产品家族的不断壮大,学习者可以考的认证也在不断增多。从十几年前的几个认证,增长到现在的40多个认证。 在获得Salesforce认证之后,除了要将其放在LinkedIn和Trailblazer.me个人资料中,还有一种官方途径可以让其他…

靶机精讲之pwnOS1.0解法二

主机发现 基于前一解法 复现找到的漏洞文件利用文件 应该要想到如何利用ssh 构造利用语句 authorized_keys文件获取 访问免登录文件失败 敏感文件泄露库 发现敏感文件的经验(精) 按ctrlf搜索 .ssh 免密公钥 已经拿到公钥的数据 用公钥信息破解出私钥…

Redis入门介绍+linux安装

Redis是什么 Redis 是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value(键值对)数据库,并提供多种语言的…

【HTML5】HTML5 多媒体标签 ① ( audio 音频标签 | 音频标签常见属性值设置 | 音频标签默认代码设置 | 音频标签设置多种类型音频文件 )

文章目录 一、HTML5 多媒体标签二、音频标签三、音频标签代码示例 ( 默认操作 )四、音频标签代码示例 ( 插入 mp3 / ogg 两种格式的音频 ) 一、HTML5 多媒体标签 传统 HTML 开发中 , 如果想要向网页中嵌入音频和视频 , 需要 使用 Flash 浏览器插件才能实现 ; 在 HTML5 中 , 使…

“智慧金融”精细化客户服务+营销获客

在新兴金融产品与智能服务创新科技手段的不断推动下,我国金融行业的发展已经实现由“金融信息化”向“智慧金融”的阶级跨越。金融行业在客户服务、业务流程、业务开拓等方面已得到全方位的“数智化”提升,实现了“AI金融”客户服务、风控、营销获客的智…