原标题:set_clock_group -async、-logically_exclusive、-physically_exclusive 和set_false_path 四种约束的区别
在数字后端STA与时序签核、串扰SI分析中, set_clock_group -asynchronous/logically_exclusive/physically_exclusive 与 set_false_path 是极易混淆的时序约束,四类指令看似都能切断跨时钟路径的Setup/Hold时序检查,但在时钟定义、时序计算、串扰Delta Delay、噪声Noise、攻击线筛选上规则截然不同,也是芯片时序笔试与项目落地高频考点。区分核心在于:前三者从时钟域全局属性定义时钟共存关系,false_path从单条路径粒度屏蔽时序,二者对SI串扰的生效范围差异是项目时序收敛的关键。
set_false_path 属于路径级约束,仅针对指定起止点屏蔽时序,不会修改时钟本身的运行属性。书写 set_false_path -from CLKA -to CLKB 时,工具仅关闭CLK_A发起、CLK_B捕获的跨域时序,芯片仿真视角下两个时钟依旧可以同时正常跳变、同时存在于物理布线。这就造成最常见工程隐患:false_path只切时序、不切断SI串扰分析。即便跨域时序被豁免,CLK_A与CLK_B的时钟走线仍互为Aggressor与Victim,PT-SI会正常计算线间耦合带来的延迟增量与噪声毛刺,大量异步跨域只用false_path约束,会衍生大批量无意义串扰违例,增加SI修复工作量。正因路径约束的局部性,当仅个别冗余通路无需时序检查、其余跨时钟路径需要正常分析时,才适合选用false_path,大批量跨时钟域禁用时序不推荐该指令。
set_clock_group -asynchronous 用于定义跨晶振、跨独立PLL的真实异步时钟,两个时钟无固定相位、频率无绑定关系,从时钟根源上宣告无法建立有效时序。时序层面等价双向全域false_path,全跨域Setup、Hold全部豁免,但和单纯false_path最大区别体现在SI:PT识别时钟完全异步后,因无法锁定时钟跳变对齐的最坏工况,会大幅剔除跨时钟之间的有效攻击线,不再完整计算跨域耦合带来的Delta Delay,串扰分析力度远强于false_path。但异步时钟的物理布线客观存在,时钟树RC寄生保留,工具仍会做最大延迟、毛刺等DRC检查。常规SOC里内核系统时钟、UART独立晶振时钟、RTC低速时钟均采用该约束,是标准CDC异步跨域配置方案。
set_clock_group -logically_exclusive 适配多路时钟经MUX选择输出的场景,同源时钟依靠选择器电平切换,逻辑上任意时刻只有一路时钟向后端寄存器传输,两路时钟永远不会同时触发触发器。时序上全跨时钟路径时序豁免,核心SI规则是时序互斥≠物理互斥:CLK_A、CLK_B两套时钟树完整布局在芯片内部,布线物理共存,工具判定两路时钟不会同步跳变,因此互相不再作为有效Aggressor、取消耦合延迟计算;但因为物理走线真实相邻,线间耦合电容客观存在,PT依旧会保留耦合噪声Noise的计算。典型应用为同一PLL分频得到的二分频、四分频时钟多路选择电路,只能用逻辑互斥,不能套用物理互斥或异步约束。
set_clock_group -physically_exclusive 针对功能模式与测试模式互斥的时钟,最典型就是Func工作时钟与Scan扫描时钟,二者共用同一输入引脚,功能上电时扫描时钟悬空无效,ATPG测试模式下功能时钟停止工作,两种时钟在芯片任意工作阶段都无法物理共存。时序规则和另外两类时钟分组一致,全跨域时序全部关闭,但SI层面是四类约束中筛选攻击线最彻底的:工具判定任意时刻只有一组时钟实体存在,另一组时钟网络实际不工作,直接彻底移除跨组Aggressor关系,Delta Delay与耦合Noise全部豁免,完全屏蔽跨时钟串扰分析。正因该特性,功能/扫描双时钟固定选用物理互斥约束,若误用逻辑互斥,会遗留不必要的串扰噪声报告。
真实跨源异步CDC路径,优先-asynchronous,规避大量false_path带来的SI冗余违例;MUX多路同源分频时钟切换,固定logically_exclusive;功能与扫描分时复用的模式时钟,采用physically_exclusive;只有零星孤立无效路径,才使用set_false_path做精准局部屏蔽。同时存在优先级规则:全局时钟分组约束可被单条false_path覆写,同一组时钟设为异步后,单独某条路径再加false_path,以路径约束为准。
实操中最容易出现选型错误:把同源Func/Scan时钟错设为asynchronous,违背时钟同源属性;大批量异步跨域全部依靠false_path约束,导致SI报告泛滥;MUX选择时钟误用physically_exclusive,错误抹除必要的布线噪声检查。
135