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

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

3天内不再提示

深度解读Vivado之Synthesis

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-06-01 11:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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手册。

编辑:jq

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

    关注

    3

    文章

    336

    浏览量

    23167
  • 触发器
    +关注

    关注

    14

    文章

    2050

    浏览量

    63033
  • LUT
    LUT
    +关注

    关注

    0

    文章

    52

    浏览量

    13065
  • 代码
    +关注

    关注

    30

    文章

    4940

    浏览量

    73116
  • xdc
    xdc
    +关注

    关注

    1

    文章

    24

    浏览量

    6137

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    vcs和vivado联合仿真

    我们在做参赛课题的过程中发现,上FPGA开发板跑系统时,有时需要添加vivado的ip核。但是vivado仿真比较慢,vcs也不能直接对添加了vivado ip核的soc系统进行仿真。在这种情况下
    发表于 10-24 07:28

    Vivado中向FPGA的Flash烧录e203的方法

    首先导入、并配置好项目,完成项目的综合(SYNTHESIS)与实现(IMPLEMENTATION),查看有无错误与或警告信息,调整完成后,右键比特流生成(Generate Bitstream),选择
    发表于 10-23 08:28

    vivado仿真时GSR信号的影响

    利用vivado进行设计xilinx FPGA时,写完设计代码和仿真代码后,点击run simulation(启动modelsim进行仿真)。
    的头像 发表于 08-30 14:22 1011次阅读
    <b class='flag-5'>vivado</b>仿真时GSR信号的影响

    Vivado无法选中开发板的常见原因及解决方法

    在使用 AMD Vivado Design Suite 对开发板(Evaluation Board)进行 FPGA 开发时,我们通常希望在创建工程时直接选择开发板,这样 Vivado 能够自动配置
    的头像 发表于 07-15 10:19 1384次阅读
    <b class='flag-5'>Vivado</b>无法选中开发板的常见原因及解决方法

    直播 | GB/T 45086与ISO11451标准深度解读研讨会笔记请查收!

    6月12日,《德思特GB/T 45086与ISO11451标准深度解读》线上研讨会圆满结束。感谢大家的观看与支持!在直播间收到一些观众的技术问题,我们汇总了热点问题并请讲师详细解答,在此整理分享给大家,请查收!
    的头像 发表于 06-18 11:06 823次阅读
    直播 | GB/T 45086与ISO11451标准<b class='flag-5'>深度</b><b class='flag-5'>解读</b>研讨会笔记请查收!

    瑞萨365 深度解读

    技术架构、核心功能、行业影响及未来展望四个维度进行深度解读: 一、技术架构:融合硬件与设计软件的跨领域协作平台 瑞萨365基于Altium 365云平台构建,整合了瑞萨的半导体产品组合与Altium的设计工具链,形成从芯片选型到系统部署的全流程数字环境。其核心架构围绕 五
    的头像 发表于 06-06 09:58 1800次阅读
    瑞萨365 <b class='flag-5'>深度</b><b class='flag-5'>解读</b>

    苹果A20芯片的深度解读

    以下是基于最新行业爆料对苹果A20芯片的深度解读,综合技术革新、性能提升及行业影响三大维度分析: 一、核心技术创新 ​ ​ 制程工艺突破 ​ ​ 全球首款2nm芯片 ​:采用台积电N2(第一代2纳米
    的头像 发表于 06-06 09:32 2601次阅读

    ARM Mali GPU 深度解读

    ARM Mali GPU 深度解读 ARM Mali 是 Arm 公司面向移动设备、嵌入式系统和基础设施市场设计的图形处理器(GPU)IP 核,凭借其异构计算架构、能效优化和生态协同,成为全球移动
    的头像 发表于 05-29 10:12 2963次阅读

    Arm 公司面向 PC 市场的 ​Arm Niva​ 深度解读

    面向 PC 市场的 ​ Arm Niva ​ 深度解读 ​ Arm Niva ​ 是 Arm 公司为 PC 市场推出的核心计算平台,属于其“平台优先”战略的关键布局。作为 ​ Arm 计算
    的头像 发表于 05-29 09:56 1301次阅读

    Arm 公司面向移动端市场的 ​Arm Lumex​ 深度解读

    面向移动端市场的 ​ Arm Lumex ​ 深度解读 ​ Arm Lumex ​ 是 Arm 公司面向移动设备市场推出的新一代计算平台,隶属于其“平台优先”战略的核心布局。作为 ​ Arm 计算
    的头像 发表于 05-29 09:54 4045次阅读

    如何使用One Spin检查AMD Vivado Design Suite Synth的结果

    本文讲述了如何使用 One Spin 检查 AMD Vivado Design Suite Synth 的结果(以 Vivado 2024.2 为例)。
    的头像 发表于 05-19 14:22 990次阅读
    如何使用One Spin检查AMD <b class='flag-5'>Vivado</b> Design Suite Synth的结果

    英伟达Cosmos-Reason1 模型深度解读

    。以下从技术架构、训练策略、核心能力及行业影响四方面展开深度解读: Cosmos-Reason 1:从物理 AI 常识到具体决策 物理 AI 系统需要感知、理解和执行物理世界中的复杂作。在本文中,我们提出了 Cosmos-Reason1 模型,该模型可以理解物理世界并通过
    的头像 发表于 03-29 23:29 2613次阅读

    深度解读 30KPA64A 单向 TVS:64V 击穿机制与高效防护策略

    深度解读 30KPA64A 单向 TVS:64V 击穿机制与高效防护策略
    的头像 发表于 02-24 13:52 601次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>解读</b> 30KPA64A 单向 TVS:64V 击穿机制与高效防护策略

    AMD Vivado Design Suite IDE中的设计分析简介

    本文档涵盖了如何驱动 AMD Vivado Design Suite 来分析和改善您的设计。
    的头像 发表于 02-19 11:22 903次阅读
    AMD <b class='flag-5'>Vivado</b> Design Suite IDE中的设计分析简介

    Vivado Design Suite用户指南:逻辑仿真

    电子发烧友网站提供《Vivado Design Suite用户指南:逻辑仿真.pdf》资料免费下载
    发表于 01-15 15:25 0次下载
    <b class='flag-5'>Vivado</b> Design Suite用户指南:逻辑仿真