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
    +关注

    关注

    1629

    文章

    21729

    浏览量

    602986
  • Xilinx
    +关注

    关注

    71

    文章

    2167

    浏览量

    121303
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66470
收藏 人收藏

    评论

    相关推荐

    助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4

    Darknet 上训练的截图 四、 通过 Vivado HLS 为 FPGA 准备模型要将模型部署到 FPGA,需要将神经网络操作转换为硬件级描述。使用 Xilinx 的 Vitis
    发表于 12-06 17:18

    Xilinx_Vivado_SDK的安装教程

    首先是去官网下载安装包:https://www.xilinx.com/support/download.html。 下载这个最大的、支持所有的 OS 如 Windows/Linux 的安装包。 下载
    的头像 发表于 11-16 09:53 799次阅读
    <b class='flag-5'>Xilinx_Vivado</b>_SDK的安装教程

    正点原子fpga开发指南

    定制硬件加速的应用。 1. 开发环境搭建 1.1 安装Xilinx Vivado VivadoXilinx提供的综合设计环境,用于设计、仿
    的头像 发表于 11-13 09:35 369次阅读

    Vivado使用小技巧

    有时我们对时序约束进行了一些调整,希望能够快速看到对应的时序报告,而又不希望重新布局布线。这时,我们可以打开布线后的dcp,直接在Vivado Tcl Console里输入更新后的时序约束。如果调整
    的头像 发表于 10-24 15:08 305次阅读
    <b class='flag-5'>Vivado</b>使用小技巧

    深度解析FPGA中的时序约束

    建立时间和保持时间是FPGA时序约束中两个最基本的概念,同样在芯片电路时序分析中也存在。
    的头像 发表于 08-06 11:40 660次阅读
    深度解析<b class='flag-5'>FPGA</b>中的时序<b class='flag-5'>约束</b>

    FPGA 高级设计:时序分析和收敛

    FPGA/ASIC 时序定义的基础概念。后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。周期约束是一个基本时序和
    发表于 06-17 17:07

    FPGA | Xilinx ISE14.7 LVDS应用

    今天给大侠带来 Xilinx ISE14.7 LVDS应用,话不多说,上货。 最近项目需要用到差分信号传输,于是看了一下FPGA上差分信号的使用。Xilinx FPGA中,主要通过
    发表于 06-13 16:28

    一个更适合工程师和研究僧的FPGA提升课程

    各位编程精英er~ F学社打造的FPGA工程师培训班上线后,有不少同学后台私信询问:“能不能出个那种专门针对某个知识点的课程呢?我想针对自己的薄弱点深入学习。” 贴心如我,当然会满足大家的学习
    发表于 06-05 10:09

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

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

    Xilinx FPGA约束设置基础

    LOC约束FPGA设计中最基本的布局约束综合约束,能够定义基本设计单元在FPGA芯片中的位置,可实现绝对定位、范围定位以及区域定位。
    发表于 04-26 17:05 1185次阅读
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>的<b class='flag-5'>约束</b>设置基础

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

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

    Xilinx fpga芯片系列有哪些

    Xilinx FPGA芯片拥有多个系列和型号,以满足不同应用领域的需求。以下是一些主要的Xilinx FPGA芯片系列及其特点。
    的头像 发表于 03-14 16:24 3280次阅读

    FPGA设计高级技巧 Xilinx

    FPGA设计高级技巧 Xilinx
    发表于 01-08 22:15

    值得多看的FPGA 学习路线

    时序和面积的约束、各个阶段的仿真等等。我们至少应该知道,为什么需要这些步骤,每个步骤都完成了什么功能。 FPGA入门学习第三部分:开发工具 FPGA开发工具的使用也是入门
    发表于 01-02 23:03

    FPGA物理约束布局约束

    在进行布局约束前,通常会对现有设计进行设计实现(Implementation)编译。在完成第一次设计实现编译后,工程设计通常会不断更新迭代,此时对于设计中一些固定不变的逻辑,设计者希望它们的编译结果
    的头像 发表于 01-02 14:13 1498次阅读
    <b class='flag-5'>FPGA</b>物理<b class='flag-5'>约束</b><b class='flag-5'>之</b>布局<b class='flag-5'>约束</b>