vivado XDC优先级

2024-01-02 20:44
文章标签 优先级 vivado xdc

本文主要是介绍vivado XDC优先级,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

XDC优先级

关于XDC优先级

Xilinx Design Constraints(XDC)的优先级规则继承自Synopsys Design限制(SDC)。本章讨论如何解决约束冲突或重叠。

XDC约束顺序

XDC约束是按顺序解释的命令。对于等效约束,最后一个约束优先。

约束顺序示例:

> create_clock -name clk1 -period 10 [get_ports clk_in1]
> create_clock -name clk2 -period 11 [get_ports clk_in1]

在该示例中,第二时钟定义覆盖第一时钟定义,因为:

•它们都连接到同一个输入端口。

•未使用create_clock-add选项。

例外优先级

如果约束重叠(例如,如果多个定时异常应用于同一路径)从最高到最低的优先级为:

1.时钟组(set_Clock_Groups)

2.错误路径(set_False_Path)

3.最大延迟路径(set_max_Delay)和最小延迟路径(set _min_Delay)

4.多循环路径(set_multycle_path)

注意:set_bus_skew约束不影响上述约束的优先级。这个set_bus_skew约束不覆盖,也不被时钟组、最大延迟、false覆盖路径和多循环路径。原因是总线偏斜不是对特定路径的约束,而是路径之间的约束。

注意:错误路径、最大/最小延迟和多周期路径之间的优先级可以更改使用选项-reset_path。时钟组约束不能被覆盖。A最大值/最小值延迟或多周期路径约束只能覆盖先前定义的错误路径或最大值/当两个约束都使用完全相同的参数定义时的最小延迟约束/-到/-through,并且最新的约束使用-reset_path。

此外,对于相同类型的异常,约束越具体,则越高优先根据过滤选项和约束中使用的对象类型,您可以修改约束的特定性。对象的优先级规则为:

1.端口、引脚和单元

使用单元的引脚而不是单元本身。

2.时钟

时钟的优先级总是低于端口、引脚和单元。使用的定时异常时钟对象总是具有比用端口定义的另一个定时例外更低的优先级,引脚和单元。

过滤器的优先级规则(从高到低)为:

1. -from -through -to
2. -from -to
3. -from -through
4. -from
5. -through -to
6. -to
7. -through
例外优先级示例
> set_max_delay 12 -from [get_clocks clk1] -to [get_clocks clk2]
> set_max_delay 15 -from [get_clocks clk1]

在本例中,对于从clk1到clk1的路径,第一个约束覆盖第二个约束clk2.异常中使用的through选项的数量不会影响优先级。这个正时发动机使用最严格的约束。

> set_max_delay 12 -from [get_cells inst0] -to [get_cells inst1]
> set_max_delay 15 -from [get_clocks clk1] -through [get_pins hier0/p0] -
to [get_cells inst1]

在本例中,第一个约束仅使用单元对象,第二个约束使用时钟对象尽管inst0由clk1计时,但第一个约束会覆盖第二个约束用于从单元inst0到单元inst1的路径。

具有多个直通选项的异常优先级实例

> set_max_delay 4 -through [get_pins inst0/I0]
> set_max_delay 5 -through [get_pins inst0/I0] -through [get_pins inst1/I3]

这两个例外都由正时发动机保持。更具挑战性的约束用于计时分析在本例中,4 ns最大延迟约束将用于通过的路径引脚inst1/I3。

带有-reset_path的异常优先级示例

> set_false_path -from [get_clocks clkA] -to [get_clocks clkB]
> set_max_delay 1 -from [get_clocks clkA] -to [get_clocks clkB] -
reset_path

时钟clkA和clkB之间的路径由具有路径的最大延迟覆盖1ns的要求。“最大延迟”是用-from/-到和的相同参数定义的指定-reset_path,它将覆盖False path。

> set_false_path -from [get_clocks clkA] -to [get_clocks clkB]
> set_max_delay 1 -from [get_pins reg0/CLK] -to [get_pins reg1/D] -
reset_path

reg0/CLK和reg1/D之间的路径由False Path覆盖,因为该约束具有比最大延迟更高的优先级。最大延迟不会覆盖错误路径尽管有-reset_path,因为它不是用-from/-to的相同参数定义的。

建议:您必须避免在同一路径上使用多个定时异常,以便定时分析结果不依赖于优先级规则,而且更容易验证约束。建议您使用report_exceptions验证计时异常命令此命令提供了有关哪些定时异常被覆盖或忽略的详细信息。对于更多信息,请参阅Vivado Design Suite用户指南:设计分析和闭合技术(UG906)。

如果将字符串而不是对象传递给约束,Tcl解释器将使用以下内容序列以确定哪个对象与字符串匹配:

1.端口

2.销

3.细胞

4.净

搜索并不详尽。一旦某个类型的对象与字符串模式匹配,它们返回,即使列表中其他类型的对象也可能匹配相同的对象图案。

这篇关于vivado XDC优先级的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/563599

相关文章

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

【Linux】探索进程优先级的奥秘,解锁进程的调度与切换

目录 进程优先级: 是什么? 为什么存在进程优先级的概念呢? Linux为什么调整优先级是要受限制的? PRI vs NICE Linux的调度与切换 概念准备: 那我们到底怎样完成进程的调度和切换呢? 区分:寄存器VS寄存器的内容 Linux实现进程调度的算法,需要考虑优先级,考虑进程饥饿问题,考虑效率问题。 解决优先级问题: 解决进程饥饿问题: 解决效率的问题:

【MATLAB】运算符及其优先级

在MATLAB语言中,运算符可以灵活组合以构建更复杂的运算表达式。需要注意的是,与其他高级编程语言类似,MATLAB中的运算符也有优先级。掌握运算优先级有助于我们正确地执行复杂的计算。以下是按照从高到低顺序排列的MATLAB运算符及其优先级列表。 括号 ()。数组的转秩 ( .’ ),数组幂 ( .^ ) ,复转秩 ( ’ ),矩阵幂 ( ^ )。代数正 ( + ),代数负 ( - ),逻辑非

【Java编程的逻辑】堆与优先级队列PriorityQueue

完全二叉树 & 满二叉树 & 堆 基本概念 满二叉树是指除了最后一层外,每个节点都有两个孩子,而最后一层都是叶子节点,都没有孩子。 满二叉树一定是完全二叉树,但完全二叉树不要求最后一层是满的,但如果不满,则要求所有节点必须集中在最左边,从左到右是连续的,中间不能有空的。 特点 在完全二叉树中,可以给每个节点一个编号,编号从1开始连续递增,从上到下,从左到右 完全二叉树有一

vivado 添加多循环路径

添加多循环路径 接下来,您将使用约束编辑器添加一个多循环路径。 1.双击树的“异常”类别下的“设置多周期路径”。 2.在“设置多周期路径”对话框中,将路径乘数设置为2。 3.在“通过”输入框中,键入以下字符串(或者,您可以复制和粘贴它 从这里): [get_pins cpuEngine/or1200_cpu/or1200_alu/*] 请注意,Tcl命令显示在command字段中。

vivado error:Combinatorial Loop Alert:1 LUT cells form a combinatorial loop

VIVADO ERROR :Combinatorial Loop Alert:1 LUT cells form a combinatorial loop vivao生成bit流时发生报错,如下图所示定位原因解决 vivao生成bit流时发生报错,如下图所示 定位原因 在三段式状态机中,组合逻辑代码if else 语句未写全只写了if…elsif…,没有写else,导致错误

C++---由优先级队列认识仿函数

文章目录 一、优先级队列是什么? 二、如何使用优先级队列 1、优先级队列容器用法 2、为什么容器本身无序? 三、什么是仿函数? 1. 什么是仿函数? 2. 仿函数的优势 四、仿函数如何使用? 1、重载operator()函数 2、运用第三个参数模板 3、大小堆切换  大堆测试代码: 小堆测试代码: 4、头文件总代码  五、什么是容器适配器? 前言   本文主要介绍了优先级队列是什

vivado 创建时间约束3

下图显示了完成的输入延迟页面。请注意,四个约束是 跳过。 12.成功输入所有输入约束值后,单击下一步。 向导的“输出延迟”页面显示了中不受约束的所有输出 设计。页面布局与输入页面非常相似。 13.在“输出延迟”页面中,单击“时钟”标题,按时钟的字母顺序对表格进行排序 名字。 14.使用下表约束所有输出,就像您对输入约束值所做的那样。 您可以在向导中一次选择多行,同时编辑多个条目。

vivado 创建时间约束1

步骤3:创建时间约束 在此步骤中,您打开合成的设计并使用AMD Vivado™定时约束 男巫定时约束向导分析门级网表并发现缺失 约束。使用“定时约束”向导为此设计生成约束。 1.在“流导航器”中,单击“打开综合设计”。 2.当综合设计打开时,单击综合设计下的约束向导 部分。 此时会出现“定时约束”向导的介绍页面。本页介绍 向导创建的约束类型:时钟、输入和输出端口以及时钟 域交叉。 3.阅读页面后,

「OC」剪不断,理还乱——UIResponder、UIGestureRecognizer、UIControl的响应优先级探究

「OC」剪不断,理还乱——UIResponder、UIGestureRecognizer、UIControl的响应优先级探究 文章目录 「OC」剪不断,理还乱——UIResponder、UIGestureRecognizer、UIControl的响应优先级探究前言介绍UIResponderUIGestureRecognizerUIControl 正文UIGestureRecognizer和