CDC 豁免的定义较为简单,因为每个 CDC 违例都仅引用源和目标元素的 2 个管脚或端口对象。请使用命令行选项 -from
/-to
来指定源和目标管脚或端口。CDC 豁免无法通过 -string
/-objects
来定义。
重要: CDC 豁免不受源和目标时钟影响,仅受源和目标管脚影响。因此,从 GUI 或者从某些 CDC 违例对象创建豁免时,如果这些对象引用不同时钟对的相同源和目标管脚,则可能会导致生成如下警告:WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-7' is a duplicate and will not be added again。
以下命令用于在源管脚 U_CORE/U00_TOP/sr_reg[3]/C
与目标管脚 U_CORE/U10/ar_reg[3]/CE
之间创建 CDC-1 豁免。
create_waiver -id {CDC-1} -description "CDC violations" \
-from [get_pins {U_CORE/U00_TOP/sr_reg[3]/C}] \
-to [get_pins {U_CORE/U10/ar_reg[3]/CE}]
如果省略命令行选项 -from
或 -to
,则豁免引擎会将缺失的选项作为通配符来处理。
以下 2 条命令效果相同,用于豁免端点管脚 U_CORE/U10/ar_reg[3]/CE
的所有 CDC-1,与起点无关:
create_waiver -id {CDC-1} -description "CDC violations" \
-from {*PIN} \
-to [get_pins {U_CORE/U10/ar_reg[3]/CE}]
create_waiver -id {CDC-1} -description "CDC violations" \
-to [get_pins {U_CORE/U10/ar_reg[3]/CE}]