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

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

3天内不再提示

Xilinx FPGA案例学习之Vivado设计综合约束

电子设计 来源:FPGA开源工作室 作者:FPGA开源工作室 2020-11-23 14:16 次阅读

在 Flow Navigator 中点击设置, 然后选择Synthesis,或者 selectFlow > Settings > Synthesis Settings。

如图1所示:


1、综合约束

在“设置”对话框的“约束”部分下,选择“默认约束设置”作为活动约束设置;包含在Xilinx设计约束(XDC)文件中捕获的设计约束的一组文件,可以将其应用于设计中。两种类型的设计约束是:

1) 物理约束:这些约束定义引脚的位置以及单元(例如Block RAM,LUT,触发器和设备配置设置)的绝对或相对位置。

2) 时序约束:这些约束定义了设计的频率要求。由于没有时序限制,Vivado设计套件仅针对线长度和布局拥堵来优化设计。

2、综合策略


1) Defaults(默认设置)


2) RuntimeOptimized

执行较少的时序优化,并消除一些RTL优化以减少综合运行时间。

3) AreaOptimized_high

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

4) AreaOptimized_medium

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

5) AlternateRoutability

一组提高路由能力的算法(较少使用MUXF和CARRY)。

6) AreaMapLargeShiftRegToBRAM

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

7) AreaMultThresholdDSP

专用DSP块推断的下限阈值。

8) FewerCarryChains

较高的操作数大小阈值以使用LUT代替进位链。

3、其他选项

-flatten_hierarchy:确定Vivado综合如何控制层次结构。

- none:指示综合工具不要展平层次结构。综合的输出与原始RTL具有相同的层次结构。

-full :指示工具完全展平层次结构,仅保留顶层。

-rebuilt:设置后,重新构建允许综合工具展平层次结构,执行综合,然后基于原始RTL重建层次结构。该值使QoR受益于跨边界优化,其最终层次类似于RTL,以便于分析。

-gated_clock_conversion:启用和禁用综合工具转换时钟逻辑的功能。

-bufg: 控制工具在设计中推断出多少BUFG。当设计网表中的其他BUFG对合成过程不可见时,Vivado设计工具将使用此选项。该工具可以推断出指定的数量,并跟踪RTL中实例化的BUFG数量。例如,如果-bufg选项设置为12,并且在RTL中实例化了三个BUFG,则Vivado综合工具最多可以推断出另外九个BUFG。

-fanout_limit:指定信号在开始复制逻辑之前必须驱动的负载数。此全局限制是一般指南,当工具确定有必要时,可以忽略该选项。

-retiming :布尔选项通过跨组合门或LUT自动移动寄存器(寄存器平衡)来提供选项,以提高时钟内顺序路径的电路性能。它保持了电路的原始行为和等待时间,并且不需要更改RTL源。默认为关闭。

-fsm_extraction : 控制综合如何提取和映射有限状态机。 FSM_ENCODING更详细地描述了这些选项。

FSM_ENCODING可以放在状态机寄存器上。合法的值是“ one_hot”,“ sequential”,“johnson”,“ gray”,“ auto”和“ none”。“ auto”值是默认值,并允许该工具确定最佳编码。可以在RTL或XDC中设置此属性。

-keep_equivalent_registers :防止合并具有相同输入逻辑的寄存器。

-resource_sharing:设置不同信号之间的算术运算符共享。这些值是自动的,打开的和关闭的。自动值集执行资源共享以取决于设计时间。

-control_set_opt_threshold: 将时钟使能优化的阈值设置为较少的控制集。默认值为自动,这意味着该工具将根据目标设备选择一个值。支持任何正整数值。

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

-no_lc:选中后,此选项将关闭LUT合并。

-no_srlextract:选中后,此选项将关闭完整设计的SRL提取,以便将其实现为简单寄存器。

-shreg_min_size:推断SRL的阈值。默认设置为3。这将设置顺序元素的数量,这些元素将导致推断固定延迟链的SRL(静态SRL)。策略也将此设置定义为5和10。

-max_bram:描述设计中允许的最大块RAM数量。通常在设计中有黑匣子或第三方网表时使用此选项,并允许设计人员为这些网表节省空间。

-max_uram:设置设计中允许的最大UltraRAM(UltraScale+™设备块RAM)块。默认设置为-1表示该工具选择指定零件允许的最大数量。

-max_dsp:描述设计中允许的最大块DSP数量。通常在设计中有黑匣子或第三方网表时使用,并为这些网表留出空间。默认设置为-1表示该工具选择指定零件允许的最大数量。

-max_bram_cascade_height:控制该工具可以级联的BRAM的最大数量。默认设置为-1表示该工具选择指定零件允许的最大数量。

-max_uram_cascade_height:控制该工具可以级联的UltraScale+设备UltraRAM块的最大数量。默认设置为-1表示该工具选择指定零件允许的最大数量。

-cascade_dsp: 控制如何实现总和DSP模块输出中的加法器。默认情况下,使用块内置加法器链计算DSP输出的总和。价值树迫使总和在结构中实现。值是:auto,tree和force。默认为自动。

-no_timing_driven: (可选)禁用默认的时序驱动综合算法。这导致减少了综合运行时间,但忽略了时序对综合的影响。

-sfcu:在单文件编译单元模式下运行综合。

-assert: 启用要评估的VHDL断言语句。故障或错误的严重性级别会停止综合流程并产生错误。警告的严重性级别会生成警告。

tcl.pre和tcl.post选项是在合成之前和之后立即运行的Tcl文件的挂钩。

4、Tcl Commands to Get Property

get_property DIRECTORY [current_project]
get_property DIRECTORY [current_run]

编辑:hfy


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

    关注

    1602

    文章

    21317

    浏览量

    593153
  • Xilinx
    +关注

    关注

    70

    文章

    2120

    浏览量

    119372
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65092
收藏 人收藏

    评论

    相关推荐

    Xilinx FPGA编程技巧常用时序约束详解

    今天给大侠带来Xilinx FPGA编程技巧常用时序约束详解,话不多说,上货。 基本的约束方法为了保证成功的设计,所有路径的时序要求
    发表于 04-12 17:39

    FPGA实现基于Vivado的BRAM IP核的使用

    Xilinx公司的FPGA中有着很多的有用且对整个工程很有益处的IP核,比如数学类的IP核,数字信号处理使用的IP核,以及存储类的IP核,本篇文章主要介绍BRAM IP核的使用。 BRAM是FPGA
    的头像 发表于 12-05 15:05 516次阅读

    使用Vivado高层次综合(HLS)进行FPGA设计的简介

    电子发烧友网站提供《使用Vivado高层次综合(HLS)进行FPGA设计的简介.pdf》资料免费下载
    发表于 11-16 09:33 0次下载
    使用<b class='flag-5'>Vivado</b>高层次<b class='flag-5'>综合</b>(HLS)进行<b class='flag-5'>FPGA</b>设计的简介

    FPGA时序约束--基础理论篇

    。 时序约束可以让VIvado和Quartus等FPGA开发软件,在布线时检测综合出来的逻辑电路是否满足这个时序要求,并生成时序报告。 一、建立/保持时间 1、基本概念 设定时
    发表于 11-15 17:41

    FPGA约束设计和时序分析

    FPGA/CPLD的综合、实现过程中指导逻辑的映射和布局布线。下面主要总结一下Xilinx FPGA时序约束设计和分析。
    发表于 09-21 07:45

    Vivado Design Suite用户指南:使用约束

    电子发烧友网站提供《Vivado Design Suite用户指南:使用约束.pdf》资料免费下载
    发表于 09-13 15:48 0次下载
    <b class='flag-5'>Vivado</b> Design Suite用户指南:使用<b class='flag-5'>约束</b>

    Vivado使用指南

    Vivado设计套件,是FPGA厂商赛灵思公司2012年发布的集成设计环境。包括高度集成的设计环境和新一代从系统到IC级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。这也是一个基于AMBA
    发表于 09-06 17:55

    Vivado的Implementation阶段约束报警告?

    帮到不经常看群消息的小伙伴,另一方面也算是我们的技术积累。 Q:Vivado的Implementation阶段约束报警告?   [Vivado 12-627] No clocks matched
    的头像 发表于 08-08 14:10 767次阅读

    Vivado综合阶段什么约束生效?

    Vivado综合默认是timing driven模式,除了IO管脚等物理约束,建议添加必要的时序约束,有利于综合逻辑的优化,同时
    的头像 发表于 07-03 09:03 440次阅读

    如何在Vivado中添加时序约束呢?

    今天介绍一下,如何在Vivado中添加时序约束Vivado添加约束的方法有3种:xdc文件、时序约束向导(Constraints Wiza
    的头像 发表于 06-26 15:21 2223次阅读
    如何在<b class='flag-5'>Vivado</b>中添加时序<b class='flag-5'>约束</b>呢?

    Vivado中如何写入FPGA设计主时钟约束

    FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。
    发表于 06-26 14:47 1005次阅读
    在<b class='flag-5'>Vivado</b>中如何写入<b class='flag-5'>FPGA</b>设计主时钟<b class='flag-5'>约束</b>?

    如何在Vivado中添加时序约束

    前面几篇文章已经详细介绍了FPGA时序约束基础知识以及常用的时序约束命令,相信大家已经基本掌握了时序约束的方法。
    的头像 发表于 06-23 17:44 1381次阅读
    如何在<b class='flag-5'>Vivado</b>中添加时序<b class='flag-5'>约束</b>

    FPGA时序约束之衍生时钟约束和时钟分组约束

    FPGA设计中,时序约束对于电路性能和可靠性非常重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的主时钟约束
    发表于 06-12 17:29 1435次阅读

    FPGA主时钟约束详解 Vivado添加时序约束方法

    FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。
    发表于 06-06 18:27 7029次阅读
    <b class='flag-5'>FPGA</b>主时钟<b class='flag-5'>约束</b>详解 <b class='flag-5'>Vivado</b>添加时序<b class='flag-5'>约束</b>方法

    Xilinx FPGA时序约束设计和分析

    FPGA/CPLD的综合、实现过程中指导逻辑的映射和布局布线。下面主要总结一下Xilinx FPGA时序约束设计和分析。
    的头像 发表于 04-27 10:08 858次阅读