vivado约束方法2

news2024/12/23 11:08:22

排序约束条件

因为XDC约束是按顺序应用的,并且是基于明确的优先级排列的规则,您必须仔细检查约束的顺序。

Vivado IDE为您的设计提供了全面的可视性。要逐步验证约束,请执行以下操作:

1.运行相应的报告命令。

2.查看Tcl控制台或消息窗口中的消息

推荐的约束序列

无论您在设计中使用一个或多个XDC文件,都可以在中组织约束以下顺序。

## Timing Assertions Section # Primary clocks
# Virtual clocks
# Generated clocks # Clock Groups
# Bus Skew constraints
# Input and output delay constraints
## Timing Exceptions Section # False Paths
# Max Delay / Min Delay # Multicycle Paths
# Case Analysis # Disable Timing
## Physical Constraints Section
# located anywhere in the file, preferably before or after the timing
constraints # or stored in a separate constraint file

从时钟定义开始。任何人都必须先创建时钟,然后才能使用它们随后的约束。在声明时钟之前对时钟的任何引用都会导致错误并且忽略相应的约束。在单个约束文件中也是如此,因为以及设计中的所有XDC文件(或Tcl脚本)。约束文件的顺序很重要。您必须确保每个文件中的约束不会依赖于另一个文件的约束。如果是这种情况,则必须读取包含约束依赖关系最后。如果两个约束文件具有相互依存关系,则必须手动将它们合并到一个包含正确序列的文件中,或者将文件划分为几个单独的文件并正确排序。

约束序列编辑

Vivado IDE约束管理器将任何编辑后的约束保存回中的原始位置XDC文件,但不在Tcl脚本中。任何新的约束都保存在XDC文件的末尾标记为目标。在许多情况下,当约束集包含多个XDC文件时,目标约束文件不是列表中的最后一个文件,并且在打开或重新加载时不会最后加载您的设计。因此,保存到约束源文件的约束序列可以与你之前记忆中的不同。

约束文件顺序

在没有任何IP的项目流中,所有约束都位于约束集中。默认情况下Vivado IDE中显示的XDC文件(或Tcl脚本)的顺序定义了所使用的读取顺序当将精心设计或合成的设计加载到内存中时,由该工具执行。的顶部的文件列表先读入,最下面的一个最后读入。您可以简单地更改订单在IDE中选择文件,然后将其移动到列表中所需的位置。例如,在下图中,文件wave_gen_pin.xdc被移动到文件之前使用拖放的wave_gen_timing.xdc

The equivalent Tcl command is:
reorder_files -fileset constrs_1 -before [get_files wave_gen_timing.xdc] \
[get_files wave_gen_pins.xdc]

在非项目模式下,read_xdc调用的顺序决定了将评估约束文件。

IP核的约束文件顺序许多IP核心与一个或多个XDC文件一起交付。当生成这样的IP核时在RTL项目中,它们的XDC文件也在各种设计编译过程中使用步骤。例如,下图显示项目中的一个IP核心附带XDC文件。

默认情况下,在用户XDC文件之前读取IP XDC文件。以这种方式处理它允许IP来创建一个可以在XDC中引用的时钟对象。它还允许您覆盖由IP核心设置的物理约束,因为在IP之后评估用户约束。对于依赖于时钟对象的IP核,此顺序有一个例外由用户或另一个IP创建(例如,get_clocks-of_objects[get_ports-clka])。在这种情况下,在用户文件之后读取IP XDC。此行为由PROCESSING_ORDER属性控制,该属性为每个XDC文件设置:

•早期:必须首先读取的文件

•正常:默认

•LATE:必须最后读取的文件

IP XDC将其PROCESSING_ORDER属性设置为EARLY或LATE。无IP传递属于NORMAL约束组的XDC文件。对于用户XDC(或Tcl)文件属于同一PROCESSING_ORDER组,它们的相对顺序显示在Vivado IDE中确定它们的读取顺序。可以通过移动文件来修改组内的顺序在Vivado IDE约束集中,或使用reorder_files命令。对于属于同一PROCESSING_ORDER组的IP XDC文件,确定顺序通过IP核的导入或创建顺序。项目结束后不能更改此顺序已创建。最后,用户组和IP XDC PROCESSING_order组之间的相对顺序如下如下所示:

1.标记为EARLY的用户约束

2.IP约束标记为EARLY(默认)

3.标记为NORMAL的用户约束

4.标记为LATE的IP约束(包含时钟依赖项)

5.标记为LATE的用户约束

The equivalent Tcl command is:
set_property PROCESSING_ORDER EARLY [get_files wave_gen_pins.xdc]

更改读取顺序

要更改约束集中XDC文件或非托管Tcl脚本的读取顺序,请执行以下操作:

1.在“源”窗口中,选择要移动的XDC文件或Tcl脚本。

2.将文件拖放到约束集中所需的位置。

reorder_files -fileset constrs_1 -before [get_files wave_gen_timing.xdc] \
[get_files wave_gen_pins.xdc]

在非项目模式下,read_xdc或source命令的顺序决定了顺序将读取约束文件。如果使用带有约束的IP核心,将处理两组约束自动如下:

•不依赖于时钟的约束被分组在XDC文件中PROCESSING_ORDER设置为EARLY,

•依赖于时钟的约束被分组在设置了PROCESSING_ORDER的XDC文件中迟到。

默认情况下,用户XDC文件属于PROCESSING_ORDER NORMAL组。它们已加载在EARLY XDC文件之后和在LATE XDC文件之前。对于每个PROCESSING_ORDER组,IPXDC文件的加载顺序与IP核心在IP源中列出的顺序相同窗例如,下图显示了随XDC文件。

When you open your design, the log file shows that the IP XDC file was loaded last:
Parsing XDC File [C:/project_wave_gen_hdl.srcs/sources_1/ip/clk_core/
clk_core.xdc] for cell 'clk_gen_i0/clk_core_i0/inst'
Finished Parsing XDC File [C:/project_wave_gen_hdl.srcs/sources_1/ip/
clk_core/clk_core.xdc] for cell 'clk_gen_i0/clk_core_i0/inst'
Parsing XDC File [C:/project_wave_gen_hdl.srcs/sources_1/ip/char_fifo/
char_fifo/char_fifo.xdc] for cell 'char_fifo_i0/U0'
Finished Parsing XDC File [C:/project_wave_gen_hdl.srcs/sources_1/ip/
char_fifo/char_fifo/char_fifo.xdc] for cell 'char_fifo_i0/U0'
Parsing XDC File [C:/project_wave_gen_hdl.srcs/constrs_1/imports/verilog/
wave_gen_timing.xdc] Finished Parsing XDC File [C:/
project_wave_gen_hdl.srcs/constrs_1/imports/verilog/wave_gen_timing.xdc]
Parsing XDC File [C:/project_wave_gen_hdl.srcs/sources_1/ip/char_fifo/
char_fifo/char_fifo_clocks.xdc
] for cell 'char_fifo_i0/U0'
Finished Parsing XDC File [C:/project_wave_gen_hdl.srcs/sources_1/ip/
char_fifo/char_fifo/char_fifo_clocks.xdc
] for cell 'char_fifo_i0/U0' Completed Processing XDC Constraints

与用户XDC文件不同,您不能直接更改IP XDC文件的读取顺序属于同一PROCESSING_ORDER组。如果必须修改订单,请执行以下操作:

1.禁用相应的IP XDC文件(IS_ENABLED设置为false)。

2.复制它们的内容。

3.将内容粘贴到约束集中包含的一个XDC文件中。

4.使用完整的分层网表对象路径名称更新复制的IP XDC命令在任何需要的地方。这样做是必需的,因为IP XDC约束是以这样的方式编写的可以将它们的作用域设置为IP实例的方式。

5.查看以特殊方式处理的get_ports查询的作用域约束。对于有关XDC作用域的更多信息,请参阅约束作用域。

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

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

相关文章

微信小程序自定义提示框组件并使用插槽 tooltip

创建tooltip组件引用 创建一个自定义组件&#xff0c;例如命名为 tooltip tooltip.wxml&#xff1a;用于定义组件的结构&#xff1b; <!--components/tooltip/tooltip.wxml--> <view class"tooltip-wrapper" hidden"{{hidden}}" style"lef…

spingboot项目实战之若依框架创建新模块

前言 目前的脚手架系统很多&#xff0c;比较早接触诺依框架&#xff0c;以若依框架为参考如何创建新模块 步骤 1. 下载诺依框架&#xff0c;依照参考说明一步步&#xff0c;能做到系统运行起来。 2. 准备好mysql文件&#xff0c;创建新数据库表 3. 数据库管理工具navicat…

如何退回chrome旧版ui界面?关闭Chrome浏览器新 UI 界面

之前启用新UI的方式 Chrome 已经很久没有进行过大的样式修改&#xff0c;但近期在稳定分支中添加了新的 flags 实验性标志&#xff0c;带来了全新的设计与外观&#xff0c;启用方式如下&#xff1a; 在 Chrome 浏览器的搜索栏中输入并访问 chrome://flags 搜索“refresh 2023…

Leetcode 46 全排列

题意理解&#xff1a; 首先明确全排列是什么&#xff1f; 使用集合里所有的元素&#xff0c;使用不同的顺序进行排列&#xff0c;所有的排列集合即为全排列。 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 这里的元素不会…

《YOLOv8改进系列》专栏目录介绍

YOLOv8改进系列 &#x1f680; 专栏目录介绍 本专栏内容是紧跟最新、最前沿的改进方法&#xff0c;不仅适用检测任务&#xff0c;分类任务&#xff0c;分割任务&#xff0c;关键点任务同样适用。文章适用于多种场景&#xff0c;包括但不限于小目标、工业缺陷、轻量化等领域。 …

猫粮哪个牌子质量好性价比高?口碑比较好的主食冻干猫粮牌子推荐

猫咪生骨肉主食冻干猫粮喂养方式是越来越火了&#xff0c;作为一个离职的十年经验宠物护理师&#xff0c;对宠物健康营养方面的知识一直在研究&#xff0c;不光是为了我自己养的猫咪身体健康&#xff0c;也要为客户的猫咪健康负责&#xff01;现在很多养猫人士对主食冻干猫粮喂…

AE (3)_主观亮度和对比度调试

#灵感# 画面的亮度、对比度是最直接&#xff0c;观看者最先获得的感受。所以有必要花时间认真调整。 ------哈哈&#xff0c;虽然调试的时间其实不如磨清晰度多。 目录 举个图例&#xff1a; 三个参数AE、gamma、LTM&#xff1a; 调试顺序&#xff1a; 举个图例&#xff1…

beebox靶场A2 low级别身份验证通关教程

1. 断开的身份验证 - 验证码绕过 Broken Auth. - CAPTCHA Bypassing 打开burp抓包在页面上输入账号为bee 密码随便输&#xff0c;输入验证码开始抓包拦截&#xff0c; 发到重放器进行重放&#xff0c;发现只是一直提示密码错误&#xff0c;那证明只要不刷新页面验证码应该就不…

2023年第三届产业数字化【金铲奖】重磅来袭!

做具备产业数字化价值的企业、案例标杆、资本机构的见证者、发现者、陪伴者。 出品|产业家 一年一度的金铲奖来了&#xff01; 在过去的一年时间里&#xff0c;我们清晰地看到&#xff0c;产业数字化的潮水更加汹涌澎湃且势不可挡&#xff0c;越来越多的企业开始寻求数字化…

照片如何抠图换背景?分享三个一键抠图的方法

照片如何抠图换背景&#xff1f;通过使用一键抠图工具&#xff0c;您可以将图片中的主体从原始背景中分离出来&#xff0c;并将其放置在新的背景中。这种技术可以用于各种情况&#xff0c;例如在照片编辑中增加创意效果、改变照片的氛围或者为产品展示添加专业外观。通过抠图并…

LeetCode刷题--- 验证二叉搜索树

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 http://t.csdnimg.cn/ZxuNL个人专栏&#xff1a;力扣递归算法题 http://t.csdnimg.cn/ZxuNL 【C】 http://t.csdnimg.cn/c9twt 前言&#xff1a;这个专栏主要讲述递归递归、搜索与回溯算法&#x…

redis:一、面试题常见分类+缓存穿透的定义、解决方案、布隆过滤器的原理和误判现象、面试回答模板

redis面试题常见分类 缓存穿透 定义 缓存穿透是一种现象&#xff0c;引发这种现象的原因大概率是遭到了恶意攻击。具体就是查询一个一定不存在的数据&#xff0c;mysql查询不到数据也不会直接写入缓存&#xff0c;就会导致这个数据的每次请求都需要查DB&#xff0c;数据库压力…

ChatGLM3:打造更智能、更安全的代码解释器和工具使用体验

ChatGLM3 是由智谱AI训练的第三代大型语言模型&#xff0c;它不仅能理解和生成人类语言&#xff0c;还能执行代码、调用工具&#xff0c;并以 markdown 格式进行响应。为了提高用户体验&#xff0c;同时避免用户输入的注入攻击&#xff0c;ChatGLM3 采用了全新的对话格式。下载…

免费!视频下方人物(照片)介绍字幕制作pr字幕条模板素材

Premiere Pro模板&#xff0c;具有15个视频下方三分之一处添加人物介绍(图像)字幕pr字幕条模板素材下载。 适用于Premiere Pro 2019及以上版本。可以更改颜色更改样式。在视频的开头、中间和结尾使用。包括视频教程。不包括音乐。来自PR模板网&#xff1a;https://prmuban.com/…

el-table/avue-curd 相同列内容合并

1.效果 2.html 3.js spanMethod({ row, column, rowIndex }) {if (column.property deviceName) {if (rowIndex > 0 && row.deviceName this.data[rowIndex - 1].deviceName) {return {rowspan: 0,colspan: 1,};}let rowspan 1;for (let i rowIndex 1; i < …

conda的安装及使用 以pycharm 为例

下载 https://docs.conda.io/en/latest/miniconda.html 下载 window版本 74M且下着吧。 安装 一路next或agree &#xff0c;不同意人家也不会按装 。重要的是安装目录 让andconda当老大 pycharm的使用 创建项目时如下图选择 成功后进入项目的Terminal则如下图表示成功

macOS Sonoma 14.2RC(23C63)发布

系统介绍 黑果魏叔12 月 6 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 14.2 RC更新&#xff08;内部版本号&#xff1a;2323C633&#xff09;&#xff0c;本次更新距离上次发布隔了 49 天。 预计正式版会在下周到来。届时用户可以打开“设置”->“通用”->…

ATFX汇市:美联储12月利率决议来袭,或将连续第三次暂停加息

ATFX汇市&#xff1a;明日3:00&#xff0c;美联储将公布12月份利率决议结果&#xff0c;市场普遍预期联邦基金利率上限将维持在5.5%不变&#xff0c;美联储将连续第三次暂停加息。上周五公布的11月非农就业报告显示&#xff0c;新增非农就业人口19.9万人&#xff0c;远高于前值…

光栅化渲染:光栅化算法实现

光栅化是将图元转换为二维图像的过程。 该图像的每个点都包含颜色和深度等信息。 因此&#xff0c;对图元进行光栅化由两部分组成。 第一个是确定窗口坐标中整数网格的哪些方格被图元占据。 第二个是为每个这样的方块分配颜色和深度值。 &#xff08;OpenGL 规范&#xff09; N…

做数据分析为何要学统计学(7)——什么问题适合使用方差分析?

方差分析&#xff08;ANOVA&#xff0c;也称变异数分析&#xff09;是英国统计学家Fisher&#xff08;1890.2.17&#xff0d;1962.7.29&#xff09;提出的对两个或以上样本总体均值进行差异显著性检验的方法。 它的基本思想是将测量数据的总变异&#xff08;即总方差&#xff…