在后仿真中,SDF 反标日志里的 Error 必须解决,但 Warning 有时不影响实际功能,而是工具严格检查产生的警告,需仔细甄别。为此整理常见 Warning 及解决方案:
-
SDFCOM_UHICD: Up-hierarchy Interconnect Delay ignored 该 Warning 表示将层级间的 delay 放在 device delay 上体现,可忽略。跨层次端口标注 INTERCONNECT delay 时出现此提示,层次铺平后无问题。
-
SDFCOM_IWSBA: INTERCONNECT will still be annotated 无需处理,delay 实际上已反标。VCS 无法识别 assign 语句是单纯连线还是 device,检测到对 assign 语句反标 INTERCONNECT delay 时会报此警告,但仍会标注。建议 designer 确认 assign 仅为连线后可屏蔽,推荐使用相同变量连接同一层级下 cell 的端口并仅对端口标注 INTERCONNECT delay。
-
SDFCOM_INF: IOPATH not found 通常是 SDF 和 specify 未对应上,需判别影响。若 clk to clk 警告通常无碍;但 clk to Q 需仔细检查是否造成反标失败。
-
SDFCOM_CFTC: Cannot find timing check 通常是 SDF 和 specify 未对应上,如多 bit 与拆分 bit 不匹配。位宽拆分可在编译时添加
-tcheckvecsplit,其他情况需检查为何不匹配,此类需解决。 -
SDFCOM_TANE: TIMINGCHECK Annotation Not Enabled SDF 中有 timing check 但 Verilog 没有 specify 指定,SDF 约束无效,正常情况下需解决。
-
SDFCOM_IANE: IOPATH Annotation Not Enabled SDF 中有 IOPATH 约束但 Verilog 没有 specify 指定,SDF 约束无效,正常情况下需解决。
-
SDFCOM_STCLOR: SCALED TC Limit Out of Range VCS 用 32bit 作为 delay(2^31),超过最大 delay 会报错。有时未超 delay 也会报,因 module 未指定 timescale 而采用 top 的 timescale 计算导致超限。修改 delay 或用
-override_timescale=重新指定 timescale 覆盖。 -
SDFCOM_RLTPD: RETAIN value larger than IOPATH delay RETAIN delay 不能比 IOPATH delay 大。首先确认是否需要 RETAIN,不需要则去掉编译选项,需要则确认不合理延时关系原因。
-
SDFCOM_SWC: Simple Wire Connection 提示 Y->A 之间不是简单 wire 连接,经过几级 assign 可能报告此 warning,但 delay 已生效。只要符合实际设计可不用修改。
-
SDFCOM_NICD: INTERCONNECT Delay encountered 仿真器根据前后级关系处理。默认情况下负值当成 0 处理,约束更紧。如需正常处理负延迟数值,除添加仿真工具使能选项外,还需确认 SDF 文件或 specify 模型支持负值(如$setuphold 支持,$setup 不支持)。负延时无法补偿为正值,需仔细确认。
-
SDFCOM_NTCDNC: Negative Timing Check Did Not Converge VCS 无法收敛多条 negative timing check 中的 delay 时报告。原因可能是 VCS 无法识别互斥 condition 或 timing 问题导致 delay 无法收敛,需检查解决。
-
SDFCOM_NDMD: NTC Delay is larger than ModPath Delay ModPath Delay 小于 NTC Delay 不合理,需解决。
备注:针对第 3-6 项,Warning 多为 SDF 和 Library model 不匹配导致。VCS 默认忽略 SDF 中多余的 check 和 delay,需前端和后端确认 Golden 标准。
本节仅摘录部分 SDF Warning 情况,实际类型多样。所有 Warning 均需认真对待,保证 SDF 反标和后仿无误,否则可能导致大量无效调试工作。

