删除特殊路径时序约束
语法:
intset_false_path
[-rise| -fall] [-setup | -hold]
[-fromfrom_list
|-rise_from rise_from_list
|fall_fromfall_from_list]
[-throughthrough_list]
[-rise_throughrise_through_list]
[-fall_throughfall_through_list]
[-toto_list
|-rise_to rise_to_list
|-fall_to fall_to_list]
[-reset_path]
数据类型:
from_list 列表
rise_from_list 列表
fall_from_list 列表
through_list 列表
rise_through_list 列表
fall_through_list 列表
to_list 列表
rise_to_list 列表
fall_to_list 列表
参数:
-rise
标识上升延迟禁止,以路径的终点作为衡量依据。如果你没有指定-rise或-fall,上升或下降时序都标识为禁止。
-fall
标识下降延迟禁止,以路径的终点作为衡量依据。如果你没有指定-rise或-fall,上升或下降时序都标识为禁止。
-setup
标识建立(最大)路径为禁止。-setup取消指定路径的建立检查。如果你没有指定-setup或-hold,建立和保持都标识为禁止。
-hold
标识保持(最小)路径为禁止。-hold取消指定路径的保持检查。如果你没有指定-setup或-hold,建立和保持都标识为禁止。
-fromfrom_lis
指定禁止路径的起点(时钟、端口、接脚或单元)。如果你没有指定一个from_list,所有终点在to_list的路径都被设为禁止。from_list可以包含时钟、接脚或端口。如果你指定一个时钟,所有起点与指定时钟相关的路径都会有影响。如果你指定一个内部接脚,接脚必须是一个路径的起点(比如一个触发器的时钟接脚)。如果一个单元被指定,起点在单元上的路径也会被影响到。
-rise_fromrise_from_list
与-from选项相同,除了通过路径上指定的对象时,必须是上升状态。如果一个时钟对象被指定,这个选项选择由相同时钟驱动的起点,但仅在时钟源由时钟上升沿启动的路径考虑沿时钟路径的任意逻辑反转。你仅能使用-from,-rise_from和-fall_from中的一个选项。
-fall_fromfall_from_list
与-from选项相同,除了通过路径上指定的对象时,必须是下降状态。如果一个时钟对象被指定,这个选项选择由相同时钟驱动的起点,但仅在时钟源由时钟下降沿启动的路径考虑沿时钟路径的任意逻辑反转。你仅能使用-from,-rise_from和-fall_from中的一个选项。
-throughthrough_list
当前设计路径通过点(端口、接脚或子单元名称)的列表。禁止路径仅为通过路径的点在throught_list列表中。如果不止一个对象,你必须使用引号或花括号。如果你多次使用-through选项,禁止路径设定应用给那些路径通过在每个给定的按顺序排列的through_list列表中的一个成员。也就是说,路径必须首先通过第一个through_list中的一个成员,接着通过第二个列表的一个成员,像这样依次通过每个指定列表。如果你使用了-through选项组合-from或-to选项,禁止路径仅当-from或-to条件被满足,并且-through条件也被满足时有效。
-rise_throughrise_through_list
与-through选项相同,但,仅作用于上升转变发生在指定对象的路径。你可以在一条命令中多次使用-rise_through选项,就你-through选项一样。
-fall_throughfall_through_list
与-through选项相同,但,仅作用于下降转变发生在指定对象的路径。你可以在一条命令中多次使用-fall_through选项,就你-through选项一样。
-toto_list
指定禁止路径的结束点(时钟、端口、接脚或单元)。如果你没有指定一个列表,所有起点设定在from_list中的路径都被设定为禁止。to_list可以包含时钟、接脚或端口。如果你设定一个时钟,所有与时钟相关的终点都会被考虑。如果你设定一个内部接脚,接脚必须是一个路径的终点(比如一个触发器的数据接脚)。如果你指定一个单元,终点在单元上的路径会有影响。
-rise_torise_to_list
与-to选项相同,但仅应用于终点为上升状态的路径。如果指定的是一个时钟对象,该选项选择由相同时钟驱动的终点,但只有被时钟源上升沿截取的路径,考虑沿时钟路径的任意逻辑反转。你仅能使用-to、-rise_to和-fall_to中的一个选项。
-fall_tofall_to_list
与-to选项相同,但仅应用于终点为下降状态的路径。如果指定的是一个时钟对象,该选项选择由相同时钟驱动的终点,但只有被时钟源下降沿截取的路径,考虑沿时钟路径的任意逻辑反转。你仅能使用-to、-rise_to和-fall_to中的一个选项。
-reset_path
删除已存在的点到点,除了指定路径上的信息。仅相同上升/下降或建立/保持的信息被复位。这与在set_false_path出现之前,使用reset_path 命令带类似参数的效果一样。
描述:
如你所知,删除特定路径的时序约束不影响电路控制。set_false_path可以禁止最大延迟(建立)检查和最小延迟(保持)检查。
set_false_path命令禁止从路径起点、途径点到终点的时序。路径起点是输入端口或寄存器时钟接脚。路径途径点可以是单元、接脚或端口。路径终点是寄存器的数据接脚或输出端口。
要禁止当前设计中一个特定单元的时序,使用set_disable_timing。这会从单元时序图上删除特定的时序弧。如此,路径上经过这些弧的路径就无法通过了。set_false_path命令仍然允许通过这些路径,只不过它们的时序约束被删除了。
set_false_path是一个点到点的时序排除命令。这就意味着对于一个或更多时序路径,它帮助重写了默认单周期时序关系。其他点到点时序排除命令包括set_max_delay、set_min_delay和set_multicycle_path。
如果一个路径满足多时序排除,以下规则协助决定哪个排除产生作用。与-from相关的规则与-rise_from和-fall_from有相同的应用,与-through和-to上升和下降选项类似。
1.两个group_path命令可能彼此冲突。但一个group_path自身排除不会与另一个类型的排除相冲突。所剩下的规则应用到两个group_path排除或两个非group_path排除。
2.如果两个排除都是set_false_path。它们没有冲突。
3.如果一个排除是set_max_delay,另一个是set_min_delay,它们没有冲突。
4.如果一个排除是set_multicycle_path –hold,另一个是set_multicycle_path –setup,它们没有冲突。
5.如果一个排除是set_false_path,其他的不是,那么,set_false_path优先。
6.如果一个排除是set_max_delay,其他的不是,那么,set_max_delay优先。
7.如果一个排除是set_min_delay,其他的不是,那么,set_min_delay优先。
8.如果一个排除有-from pin或-from cell,其他的不是,那么,前者优先。
9.如果一个排除有-to pin或-to cell,其他的不是,那么,前者优先。
10.如果一个排除有-through points,其他的不是,那么,前者优先。
11.如果一个排除有-from clock,其他的不是,那么,前者优先。
12.如果一个排除有-to clock,其他的不是,那么,前者优先。
13.排除附加限制性约束则优先。对于set_max_delay和set_multicycle_path –setup,有更低值的约束。对于set_min_delay和set_multicycle_path –load有更高值的约束。
取消set_false_path的影响,使用reset_path或reset_design。
使用report_timing_requirements列出设计中点到时点排除路径。
多条件多模式支持:
该命令仅使用当前方案的信息
范例:
删除从ff12到ff34的时序约束
set_false_path–from {ff12} –to {ff34}
删除通过u14/z到ff29/Reset,并且在终点为上升状态路径的时序约束
set_false_path–rise –through {u14/Z} –to {ff29/Reset}
取消终点由时钟PHI1驱动的保持检查(最小延迟时序)。触发器和锁存器由时钟PHI1驱动的都要考虑建立时间冲突,但不考虑保持时间冲突。
set_false_path–hold –to [get_clocks PHI1]
删除首次通过u1/Z或u2/Z,又通u5/Z或u6/Z所有路径的时序约束
set_false_path -through {u1/Z u2/Z} –through {u5/Z u6/Z}
取消通过u14/Z到达ff29/Reset上升时序路径
set_false_path–rise_through {u14/Z} –to {ff29/Reset}
更多:
current_design,reset_design, reset_path, set_disable_timing, set_max_delay, set_min_delay,set_multicycle_path
Q1 哪些端口不需要约束?
静态信号可以set_false_path,比如reset,test_mode,function_mode_select, 不能真的什么约束都不加
Q2 什么样的reset信号可以set_false_path?
如果在工作时,reset信号有效时,时钟信号不翻转,就可以set_false_path
如果reset信号动作时,时钟也有动作的话,就不能set_false_path
Q3 什么情况下需要set_false_path?
异步时钟之间,
到meta-stability 的第一个FF路径,
静态信号
原文链接:https://www.eda365.com/article-167876-1.html