首页 > 其他分享 >【Synthesis】Vivado综合参数设置

【Synthesis】Vivado综合参数设置

时间:2023-07-16 16:33:12浏览次数:30  
标签:style LUT max srl Vivado 寄存器 优化 参数设置 Synthesis

一、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;

标签:style,LUT,max,srl,Vivado,寄存器,优化,参数设置,Synthesis
From: https://www.cnblogs.com/Ivan0506/p/17558058.html

相关文章

  • 【IP】vivado中IP核的Core Container特性
    一、XCI和XCIX格式文件在Vivado中生成IP核时,一般默认是对应的IP核文件夹会生成在工程目录的.srcs/sources_1/ip路径下。这个文件夹包含了所有与该IP核相关的文件,最主要的是XCI文件,其中包含了用户配置的相关信息。 Vivado还提供了CoreContainer特性,可以将所有与IP相关的文件......
  • 数据库参数设置
    数据库参数设置设置:数据库的帐套号,帐套名称,数据库类型,用户名,密码,数据库IP,数据库端口,数据库名称,数据库驱动的动态库 ......
  • 基于MPC的模型预测轨迹跟踪控制联合仿真simulink模型+carsim参数设置 效果如图 可选模
    基于MPC的模型预测轨迹跟踪控制联合仿真simulink模型+carsim参数设置效果如图可选模型说明文件和操作说明YID:13120652659026692......
  • 将 -Xms 参数设置和-Xmx 参数的相等,对比 -Xms参数 设置为-Xmx 参数的一半,有哪些优势?
    将-Xms参数设置为与-Xmx参数相等,相比于将-Xms参数设置为-Xmx参数的一半,具有以下优势:1.程序启动时间更短当将-Xms参数设置为与-Xmx参数相等时,JVM在启动时会分配最大内存空间,这样可以避免因为动态调整内存空间带来的时间开销。所以,相较于将-Xms参数设置为-Xmx参......
  • 三菱运动控制电子凸轮应用 三菱Q173系列的电子凸轮使用,包括凸轮参数设置,电子齿轮比等
    三菱运动控制电子凸轮应用三菱Q173系列的电子凸轮使用,包括凸轮参数设置,电子齿轮比等的理解,简单应用不是问题,原理才是关键ID:9930606510923534......
  • Java类属性第二个字母大写问题,请求参数设置不上,返回参数小写
     其实这个问题几年前就遇到过,也解决了,但是最近又看到项目中有人这么用,就想起来了,写在这里,给自己也给大家提个醒。在Java中,如果类的某个属性第二个字母是大写,比如:nToken,这样的属性一定要自己手动生成getter和setter方法。如果使用lombok的@Data注解,它默认生成的getter和setter......
  • Vivado全版本下载分享
    Vivado是由Xilinx公司开发的一款用于FPGA设计和开发的综合设计环境。它包括了高层次综合(HLS)、逻辑设计、约束管理、IP核管理、仿真、综合、实现和调试等功能,支持面向最新FPGA器件的设计。这里分享一下Vivado的电脑安装配置推荐,以及​各版本Vivado下载链接。​一、电脑配置推荐......
  • VC6.0编译器参数设置
    VC6.0编译器参数的设置主要通过VC的菜单项Project->Settings->C/C++页来完成。我们可以看到这一页的最下面ProjectOptions中的内容,一般如下:/nologo/MDd/W3/Gm/GX/ZI/Od/D"WIN32"/D"_DEBUG"/D"_WINDOWS"/D"_AFXDLL"/D"_MBCS"/Fp"Debug......
  • 传奇M2是什么意思?传奇M2参数设置
    M2server是游戏引擎,所以的游戏数据处理都要通过他来完成,其他程序为协调关系各负其责,他是中心枢纽,类似汽车的发动机。他可以在线查找人物、在线喊话以及各种复杂的调整,这里的参数建议GM不懂脚本等的不要乱改东西,小心出乱!在线喊话、城堡管理[添加攻城行会,不要交头像的]查找人物,这些......
  • 传奇功能设置在哪里?传奇怪物爆率修改、传奇参数设置
    一、传奇怪物爆率修改打开D:\Mirserver\Mir200\Envir\MonItems文件夹,如图我们打开一个黑野猪.txt文件这里详细的列出了黑野猪所爆的装备,前面的分数就是概率值比如1/188放大镜,就是说0.53%的概率曝出放大镜如果你想要黑野猪100%曝出裁决之杖,那么你在最后一行回车,另起一行,输入1/1裁......