Path segmentation can result in the perception that the priority between the timing exceptions is altered, which is actually not the case.
There can be a difference on whether a set_max_delay
constraint is
superseded by a set_clock_groups
constraint. Consider the following
two scenarios.
Scenario 1
set_max_delay <ns> -datapath_only -from <instance> -to <instance>
In this scenario, instance names are provided for
-from
/-to
. The set_max_delay
constraint is always overridden by set_clock_groups -asynchronous
,
because Vivado always selects valid startpoints when an instance
is provided.
Scenario 2
set_max_delay <ns> -datapath_only -from <pin> -to <pin | instance>
In this scenario, if the pin name provided with -from
results in
path segmentation, then that particular set_max_delay
constraint is
not overriden by set_clock_groups -asynchronous
. The reason behind
is that the path segmentation forces the path starting on the pin name to no longer
being considered launched by the first clock domain. As a result, this path is no
longer covered by the set_clock_groups
constraints and the
set_max_delay
constraint get applied.