最小/最大延迟
您可以覆盖路径的最大延迟或最小延迟:
?使用“最大延迟”约束来覆盖上的默认设置(或恢复)要求一条路径。
?使用最小延迟约束来覆盖默认的保持(或移除)要求。
设置最大延迟和最小延迟约束
最大延迟约束和最小延迟约束由两个不同的XDC设置命令。这些命令接受类似的选项。
其他命令选项可用于微调路径规范。了解更多有关支持的命令行选项的信息,请参阅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命令的组合。请参见以下内容示例:
上面的示例为开始于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约束。请参见以下示例: