Vivado编译介绍

news2024/11/20 3:35:37

Vivado编译介绍

合成是将寄存器传输级别(RTL)指定的设计转换为门级表示。AMD Vivado™ 合成是定时驱动的,并针对内存进行优化使用和性能。Vivado合成支持以下的可合成子集:

•SystemVerilog:IEEE标准SystemVerilog统一硬件设计规范,以及验证语言(IEEE Std 1800-2012)

•Verilog:IEEE Verilog硬件描述语言标准(IEEE Std 1364-2005)

•VHDL:IEEE VHDL语言标准(IEEE Std 1076-2002)

•VHDL 2008

•混合语言:Vivado支持VHDL、Verilog和SystemVerilog的混合。在大多数情况下,Vivado工具还支持Xilinx设计约束(XDC),它基于基于行业标准Synopsys设计约束(SDC)。

重要!Vivado合成不支持UCF约束。将UCF约束迁移到XDC约束。有关更多信息,请参阅ISE到Vivado Design Suite迁移指南(UG911)。

有两种方法可以设置和运行合成:

•使用项目模式,从Vivado集成设计环境(IDE)中选择选项。

•使用非项目模式,应用工具命令语言(Tcl)命令或脚本,以及控制您自己的设计文件。有关更多信息,请参阅Vivado Design Suite用户指南:设计流程概述(UG892)关于操作模式。本章在单独的小节中介绍了这两种模式。

综合方法论

AMD Vivado™ IDE包括一个综合和实现环境,有助于按钮流与合成和实现运行。该工具管理运行数据自动地,允许使用不同的RTL源版本、目标设备进行重复运行尝试,合成或实现选项以及物理或时序约束。在Vivado IDE中,您可以执行以下操作:

•创建并保存策略。策略是命令选项的配置,您可以应用于综合或实现的设计运行。请参见创建跑步策略。

•对合成和实施运行进行排队,以便按顺序或同时启动多处理器机器。请参见运行合成。

•监控综合或实施进度,查看日志报告,并取消运行。看见监控合成运行。

使用合成

本节介绍使用AMD Vivado™ IDE来设置和运行Vivado合成。这个相应的Tcl控制台命令遵循大多数Vivado IDE过程和大多数Tcl命令直接链接到Vivado Design Suite Tcl命令参考指南(UG835)。此外,还有更多关于Tcl命令和在Vivado设计中使用Tcl的信息Suite用户指南:使用Tcl脚本(UG894)。视频:有关更多信息,请参阅以下内容:Vivado Design Suite QuickTake视频:合成选项和Vivado设计套件QuickTake视频:综合设计。

使用合成设置

1.从“流导航器”中,单击“设置”,选择“合成”,或选择“流>设置”>合成设置。将打开“设置”对话框,如下图所示:

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

•物理约束:这些约束定义了引脚位置和绝对或相对,单元的放置,如块RAM、LUT、触发器和设备配置设置。

•时间约束:这些约束定义了设计的频率要求。在没有时间限制的情况下,Vivado Design Suite仅针对线材进行优化设计长度和放置拥塞。有关更多信息,请参阅Vivado Design Suite用户指南:使用约束(UG903)组织约束。新管路使用选定的约束集,Vivado合成以该约束集为目标用于设计更改。

3.从选项区域:从下拉菜单中选择一个策略,您可以在其中查看和选择用于合成运行的预定义合成策略。有不同的预配置的策略,如下图所示。

你也可以定义自己的策略。当您选择综合策略时,可用的Vivado策略显示在对话框中。您可以通过覆盖合成策略设置更改“创建运行策略”中所述的选项值。有关所有策略及其各自设置的列表,请参阅中的指令选项下面的列表中,请参阅Vivado预配置策略以查看策略默认矩阵设置。

4.从显示的选项中选择:

•flatten_hierarchy:确定Vivado合成如何控制层次结构。

•none:指示合成工具永远不要压平层次结构。的输出合成具有与原始RTL相同的层次结构。

•full:指示工具完全展开层次结构,只保留顶层。

•重建:设置后,重建允许合成工具展平层次结构,执行合成并基于原始RTL重建层次结构。此值允许通过类似于RTL便于分析。

•gated_clock_conversion:打开和关闭合成工具转换带使能的时钟逻辑。门控时钟转换的使用还需要使用RTL属性才能工作。看见GATED_CLOCK,了解更多信息。

•bufg:控制工具在设计中推断出的bufg数量。Vivado设计工具使用当设计网表中的其他BUFG对合成不可见时,此选项过程

该工具推断出指定的数量,并跟踪实例化了多少BUFG在RTL中。例如,如果-bufg选项设置为12,并且有三个bufg在RTL中实例化,Vivado合成工具推断出最多九个BUFG。

•指令:替换-effert_level选项。指定后,此选项将运行Vivado具有不同优化的合成。有关所有策略的列表,请参阅Vivado预配置策略战略和环境。值为:

•默认值:默认设置。请参阅Vivado预配置策略。

•运行时间优化:执行较少的时间优化,并消除了一些RTL优化以减少合成运行时间。

•AreaOptimized_high:执行常规区域优化,包括强制三元加法器实现,应用新阈值以使用进位链I比较器,以及实现区域优化复用器。

•AreaOptimized_media:执行常规区域优化,包括更改控制集优化阈值,强制三进制加法器实现,降低将推理阈值相乘到DSP块中、将移位寄存器移动到块RAM中,应用较低阈值在比较器中使用CARRY链,以及区域优化的MUX操作。

•AlternateRoutable:一组算法,以提高路由能力(较少使用MUXFs和CARRYs)

•AreaMapLargeShiftRegToBRAM:检测大型移位寄存器并实现它们使用专用块RAM。

•AreaMultThresholdDSP:专用DSP块推理的较低阈值。

•FewerCarryChains:使用LUT而不是进位的操作数大小阈值更高链条

•LogicCompact:排列CARRY链和LUT,使使用更少的SLICES使逻辑更加紧凑。这可能会对时机产生负面影响QoR。

•性能优化:执行常规时序优化,包括逻辑级别以牺牲面积为代价的减少。

•PowerOptimized_high:执行一般时序优化,包括逻辑级别以牺牲面积为代价增加。

•PowerOptimized_medium:通过降低逻辑来执行一般时序优化以牺牲面积为代价的水平降低。

•重新定时:适用于非AMD Versal™ 仅限设备。要控制Versal中的重定时,请选择-no_retimeing选项。此布尔选项<on|off>提供了一个执行的选项通过在组合门或LUT。它保持了电路的原始行为和延迟并且不需要对RTL源进行改变。默认设置为禁用。

注意:在OOC模式下重新定时时,由或作为驱动端口的寄存器不会重新定时。

•no_retimeing:这仅适用于Versal设备。在Versal中,重定时在默认情况下处于启用状态。使用此布尔选项<on|off>可关闭重定时。这对非Versal设备没有影响。

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

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

•resource_sharing:设置不同信号之间算术运算符的共享。这个值为auto、on和off。执行资源共享的自动值集取决于设计的时机。

•control_set_opt_threshold:设置时钟的阈值,以便对较少数量的控制集。默认为自动,这意味着工具选择一个值基于作为目标的设备。支持任何正整数值。

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

•no_lc:选中时,此选项将关闭LUT组合。

•no_slextract:选中时,此选项将关闭完整设计的SRL提取,因此它们被实现为简单的寄存器。

•shreg_min_size:是SRL推断的阈值。默认设置为3。这套将导致对固定的SRL进行推断的顺序元素的数量延迟链(静态SRL)。策略也将此设置定义为5和10。参见Vivado所有策略和设置列表的预配置策略。

•max_bram:描述设计中允许的块RAM的最大数量。经常当设计中存在黑盒或第三方网表,并且允许设计师为这些网表节省空间。

注意:默认设置-1表示工具选择允许的最大数量指定的部分。

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

•max_dsp:描述设计中允许的块dsp的最大数量。通常情况下当设计中存在黑盒或第三方网表时使用,并为这些网表。默认设置-1表示工具选择最大值指定零件允许的编号。

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

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

•级联_dsp:控制加法器在和dsp块输出中的实现方式。默认情况下,使用块内置加法器链来计算DSP输出的总和。价值树强制求和在结构中实现。值为auto、tree和force。默认为自动。

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

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

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

•debug_log:打印合成日志文件中的额外信息,用于调试。-debug _log应添加到“更多选项”字段中。

•tcl.pre和tcl.post选项是紧接在和之前运行的tcl文件的挂钩合成后。

注意:tcl.pre和tcl.post脚本中的路径相对于的关联运行目录当前项目:<project>/<project.runs>/<runname>。有关更多信息,请参阅Vivado Design Suite用户指南:使用Tcl脚本(UG894)Tcl脚本。使用当前项目或当前运行的DIRECTORY属性来定义相对脚本中的路径。

5.单击“完成”。

Tcl用于获取属性的命令

get_property DIRECTORY [current_project]
get_property DIRECTORY [current_run]

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

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

相关文章

UniMSE: Towards Unified Multimodal Sentiment Analysis and Emotion Recognition

文章目录 UniMSE&#xff1a;实现统一的多模态情感分析和情绪识别文章信息研究目的研究内容研究方法1.总体架构2.Task Formalization3.Pre-trained Modality Fusion (PMF)4.Inter-modality Contrastive Learning5.总体损失函数6.Decoding Algorithm 结果与讨论代码和数据集符号…

博客网站系统测试报告

一、项目背景 博客网站系统采用前后端分离的方法来实现&#xff0c;同时使用了数据库来存储相关的数据&#xff0c;同时将其部署到云服务器上。前端主要有个页面构成&#xff1a;注册页、登录页、个人博客列表页、博客详情页、编辑博客页、修改博客页以及博客系统主页&#xf…

【项目实践02】【优先级阻塞队列】

文章目录 一、前言二、项目背景三、实现方案四、思路延伸1. 优先级队列1.1 concurrent 包下的 PriorityBlockingQueue1.2 Redisson 的优先级阻塞队列 2. jvisualvm 远程连接3. Jstack 高 CPU 排查 五、参考内容 一、前言 本系列用来记录一些在实际项目中的小东西&#xff0c;并…

【算法分析与设计】交换两个节点

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本…

实习日志11

1.文件上传报错 1.1.报错信息Invalid typed array length: -2 1.2.查看源码找出错误 定位到检查代码上传是否成功的代码出错&#xff0c;rDataArr[3] 0x03 var pData new Uint8Array(pDataLen);的pDataLen4 说明rDataArr只有0-3&#xff0c;其他数据都没有上传上来 说明…

DoubleEnsemble:基于样本重加权和特征选择的金融数据分析方法

现代机器学习模型&#xff08;如深度神经网络和梯度提升决策树&#xff09;由于其提取复杂非线性模式的优越能力&#xff0c;在金融市场预测中越来越受欢迎。然而&#xff0c;由于金融数据集的信噪比非常低&#xff0c;并且是非平稳的&#xff0c;复杂的模型往往很容易过拟合。…

leetcode189.轮转数组|超简单易于理解方法

题目 https://leetcode.cn/problems/rotate-array/description/https://leetcode.cn/problems/rotate-array/description/ 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输…

基于uniapp+vue酒店宾馆客房民宿管理系统设计 微信小程序_54ybz

APP性能需求 &#xff08;1&#xff09;顾客在安卓APP页面各种操作可及时得到反馈。 &#xff08;2&#xff09;该平台是提供给多个用户使用的平台&#xff0c;用户使用之前需要注册登录。登录验证后&#xff0c;用户才可进行各种操作[10]。 &#xff08;3&#xff09;管理员、…

Java 集合 04 综合练习-查找用户是否存在

练习、 代码&#xff1a; public class User{private String id;private String username;private int password;public User() {}public User(String id, String username, int password) {this.id id;this.username username;this.password password;}public String getI…

舟山长寿医学中心:引领生命科技前沿

在浩瀚的东海之滨&#xff0c;舟山群岛如一颗璀璨的明珠&#xff0c;镶嵌在碧波荡漾的大海之中。这里不仅拥有得天独厚的自然美景&#xff0c;更是一块充满生机与活力的健康宝地。舟山长寿医学中心&#xff0c;正是这片神奇的土地上的一颗璀璨明珠&#xff0c;致力于为全球人士…

Linux权限【上篇】

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 扩展知识&#xff1a…

react 之 UseReducer

UseReducer作用: 让 React 管理多个相对关联的状态数据 import { useReducer } from react// 1. 定义reducer函数&#xff0c;根据不同的action返回不同的新状态 function reducer(state, action) {switch (action.type) {case INC:return state 1case DEC:return state - 1de…

系统移植--无法启动Linux内核--报错VFS--挂载nfs失败

问题 找信息&#xff1a;VFS 可能的原因 1、开发板上内核启动参数中的虚拟机ubuntu IP和真实的 虚拟机的IP不一致 2、开发板上内核启动参数中虚拟机的共享目录和虚拟机 ubuntu上配置的nfs服务器上的共享目录不一致 3、nfs配置文件(/etc/exports)路径错误 与自己的共享文件…

Galah:一款功能强大的LLM驱动型OpenAI Web蜜罐系统

关于Galah Galah是一款功能强大的Web蜜罐&#xff0c;该工具由LLM大语言模型驱动&#xff0c;基于OpenAI API实现其功能。 很多传统的蜜罐系统会模拟一种包含了大量网络应用程序的网络系统&#xff0c;但这种方法非常繁琐&#xff0c;而且有其固有的局限性。Galah则不同&…

Transformer 自然语言处理(四)

原文&#xff1a;Natural Language Processing with Transformers 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十章&#xff1a;从头开始训练变换器 在本书的开头段落中&#xff0c;我们提到了一个名为 GitHub Copilot 的复杂应用&#xff0c;它使用类似 GPT 的…

C语言:详解操作符(上)

摘要&#xff1a; 本篇&#xff0c;我们将学习C语言中操作符的相关内容&#xff0c;操作符是C语言中重要的元素之一&#xff0c;在我们的代码中处处都有&#xff0c;下面我们将详细介绍操作符的相关内容&#xff0c;并结合一些代码例题加深印象。 目录 一、操作符的分类及介绍 …

当无法在Windows 10上更改分辨率时怎么办?这里提供几个方法

一般来说,如果你愿意,你可以很容易地更改Windows 10计算机的屏幕分辨率。如果你发现无法在Windows 10中更改分辨率,可以查看下面的解决方案来解决此问题。 无法在Windows 10上更改分辨率? 要在Windows 10上检查和更改屏幕分辨率,通常有两种简单的方法。 方法一:你可以…

Vue3+vite搭建基础架构(5)--- 使用vue-i18n

Vue3vite搭建基础架构&#xff08;5&#xff09;--- 使用vue-i18n 说明官方文档安装vue-i18n使用vue-i18n测试vue-i18n的国际化配置 说明 这里记录下自己在Vue3vite的项目使用vue-i18n做国际化语言的过程&#xff0c;不使用ts语法&#xff0c;方便以后直接使用。这里承接自己的…

工作七年,对消息推送使用的一些经验和总结

前言&#xff1a;不管是APP还是WEB端都离不开消息推送&#xff0c;尤其是APP端&#xff0c;push消息&#xff0c;小信箱消息&#xff1b;WEB端的代办消息等。因在项目中多次使用消息推送且也是很多项目必不可少的组成部分&#xff0c;故此总结下供自己参考。 一、什么是消息推…

VS2019项目的图标问题

图标问题搞的我很困惑。。。 最开始&#xff1a; 添加图标1&#xff1a; 然后问题出现了&#xff0c;我想给它换个图标&#xff0c;死活成功不了。。。 。。。 替换成功了。。。 但不完全成功。。。 这是怎么回事啊&#xff1f; vs 2019更改exe程序图标简易教程_哔哩哔哩_…