vivado 最小/最大延迟

2023-12-28 21:31:26

最小/最大延迟

您可以覆盖路径的最大延迟或最小延迟:

?使用“最大延迟”约束来覆盖上的默认设置(或恢复)要求一条路径。

?使用最小延迟约束来覆盖默认的保持(或移除)要求。

设置最大延迟和最小延迟约束

最大延迟约束和最小延迟约束由两个不同的XDC设置命令。这些命令接受类似的选项。

Maximum Delay Constraint Syntax
set_max_delay <delay> [-datapath_only] [-from <node_list>]
[-to <node_list>] [-through <node_list>]
Minimum Delay Constraint Syntax
set_min_delay <delay> [-from <node_list>]
[-to <node_list>] [-through <node_list>]

其他命令选项可用于微调路径规范。了解更多有关支持的命令行选项的信息,请参阅Vivado Design Suite Tcl命令参考指南(UG835)。

-from选项的节点列表

?-from选项的节点列表最好是有效起点的列表。一个有效的startpoint是时钟、输入(或输出)端口或顺序元件的时钟引脚,例如寄存器或RAM。使用不是有效起点的节点会导致路径分段。这个下一节将介绍路径分割。

?可以提供多个元件。

-to选项的节点列表

?-to选项的节点列表最好是有效端点的列表。一个有效的端点是时钟、输出(或inout)端口或顺序单元的数据引脚。

?使用不是有效端点的节点会导致路径分割。欲了解更多信息,请参见路径分段。

?可以提供多个元件。

直通选项的节点列表

?直通选项的节点列表应该是有效引脚、端口或网络的列表。

?可以提供多个元件。

默认情况下,计时引擎将时钟偏斜包含在松弛计算中。

-datapath_only选项可用于消除松弛中的时钟偏移计算-datapath_only选项仅受set_max_delay支持

命令,并且需要-from选项。下表总结了-datapath_only对的行为的影响set_max_延迟约束。带或不带set_max_delay的路径延迟计算的常见行为-datapath_only为:

?当路径从输入端口开始时,输入延迟包含在路径延迟计算中,并且已经在端口上指定了set_input_delay。

?当路径在输出端口上结束时,输出延迟包含在路径延迟计算中并且已经在端口上指定了set_output_delay。

?当路径在顺序元件的数据引脚。

设置最大延迟或最小延迟的后果路径上的约束

如果未使用-datapath_only选项,则在路径上设置“最大延迟”约束,不会修改该路径上的最低要求。对其进行保留(或移除)检查路径仍然是默认路径。类似地,在路径上设置“最小延迟”约束不会修改默认设置(或恢复)检查。例如,如果路径只有最大延迟要求,则可以使用set_max_delay和set_false_path命令的组合。请参见以下内容示例:

set_max_delay 5 -from [get_pins FD1/C] -to [get_pins FD2/D] set_false_path -
hold -from [get_pins FD1/C] -to [get_pins FD2/D]

上面的示例为开始于FD1/C并结束于的路径设置了5 ns的设置要求FD2/D。由于使用了set_false_path命令,因此没有最低要求。

约束输入或输出逻辑

set_max_delay命令和set_min_delay命令通常不用于约束输入或输出逻辑。输入端口和的第一级之间的输入逻辑寄存器通常受到set_input_delay命令的约束。此命令提供了将时钟与输入端口相关联的选项。

出于同样的原因,最后一级寄存器和输出端口之间的输出逻辑为通常受set_output_delay命令约束。但是,set_max_delay命令和setmin_delay命令通常用于约束纯主输入端口和主输出端口之间的组合路径(输入到输出I/O路径)。

约束异步信号

set_max_delay命令也可用于约束不具有时钟关系,但需要最大延迟。例如,可以使用禁用两个异步时钟域之间的定时路径set_clock_groups命令(推荐)或set_false_path命令(不推荐推荐)。这假设您已经使用正确地设计了内部时钟域,用于例如双寄存器同步器或FIFO。但是,您仍然必须确保两个时钟域之间的延迟不是不必要的高。

在一些多位CDC场景中,位之间的偏斜必须在某些要求内。即使可以通过总线倾斜约束(set_Bus_skew)来约束倾斜必须确保两个时钟域之间的路径延迟不是不必要的高。这可以通过替换内部的set_false_path或set_clock_groups约束来完成具有set_max_delay–datapath_only的相关路径上的源XDC文件。提到第6章:疾病控制与预防约束,以获取有关约束疾病控制与控制路径的更多信息。如果必须为两个时钟域之间的一些或所有路径指定最大延迟,那么您必须使用命令set_max_delay-datapath_only来约束那些路径。在这种情况下,set_clock_groups不能用于将两个时钟域定义为异步,因为它在约束优先级方面取代了set_max_delay约束。其他跨时钟域路径必须通过以下组合进行约束set_false_path或set_max_delay约束。请参见以下示例:

set_max_delay <delay> -datapath_only -from
<startpoints_source_clock_domain> \
-to <endpoints_destination_clock_domain>

文章来源:https://blog.csdn.net/cckkppll/article/details/135277719
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。