后仿之SDF 反标Warning的描述和解决

在后仿中SDF的反标log中Error是必须要解决的,但是Warning有时候可能并不会影响到实际的内容,而是工具严格的检查得到的一些警告,因此可能就需要我们仔细的来甄别是否warning需要被解决;针对此,将平时看到的一些warning进行整理,帮助之后解决这些问题:

1. SDFCOM_UHICD:Up-hierarchy Interconnect Delay ignored

     这个warning是指将hier间的delay放在device delay上体现,可以不用处理;对跨层次的端口标注INTERCONNECT delay时出现该warning,在层次铺平之后是不会有问题的。

2. SDFCOM_IWSBA:INTERCONNECT will still be annotated

    也不用处理,delay实际上也是反标了。

    vcs是无法识别assign语句代表的是单纯的连线还是作为一个device存在,所以当vcs检测到对assign语句反标INTERCONNECT delay时会报出该警告,但是依然会将INTERCONNECT delay标注。要求designer做出进一步的确认,如果确认assign只是连线,那么是可以选择屏蔽这条warning。不过我们是推荐使用相同的变量连接两个同一层级下cell的端口,并仅对这两个端口标注INTERCONNECT delay。

3. SDFCOM_INF: IOPATH not found

    这个一般是sdf和specify中的没有对应上,这个需要判别是否需要处理。
    这个会造成sdf反标失败  -- 要针对对应的case来判别有没有影响:
    clk  to clk 的警告应该还好;但是clk to Q -- 这个就要好好检查

4. SDFCOM_CFTC: Cannot find timing check

    这个一般是sdf和specify中的没有对应上;
    比如某些时候,两者中 一个是多bit一个是拆分bit,这个会造成match不上;对这种位宽拆分的可以在编译时添加: -tcheckvecsplit, 其他的情况就需要检查为何不匹配。需要被解决。

5. SDFCOM_TANE:TIMINGCHECK Annotation Not Enabled

    SDF中有timing check,但是verilog没有这个specify的指定,这个sdf 的约束就没有意义了
正常情况下是需要解决掉的。

6. SDFCOM_IANE: IOPATH Annotation Not Enabled

    SDF中有对应IOPATH约束,但是verilog没有这个specify的指定,这个sdf 的约束就没有意义了
正常情况下是需要解决掉的

7. SDFCOM_STCLOR: SCALED TC Limit Out of Range

    vcs 用32bit做为deay,所以就是2^31, 超过最大delay就会报;
有时候没有超过delay也会报,因为module没有指定timesale,但是采用的是top的timescale来计算,还是超过了。修改delay或者用 -override_timiescale= 重新指定timescale来覆盖之前的timescale来解决这个问题。

8. SDFCOM_RLTPD:RETAIN value larger than IOPATH delay

     RETAIN delay一定不能比IOPATH delay大。首先得去确认是否需要RETAIN,如果不需要就去掉RETAIN的编译选项,如果需要就去确认为什么出现这种不合理的延时关系

9. SDFCOM_SWC:Simple Wire Connection

    这个提示是啥Y->A之间不是简单的wire连接,在经过了几级assign,可能是会这么report的,但是delay还是吃上了的。可以不用修改,只要符合实际设计就可以。

10. SDFCOM_NICD: INTERCONNECT Delay encountere

    仿真器对应的处理是根据前后级的关系来处理的,可以参考:SDF 优先级和相关的概念
一般来讲,仿真工具在默认情况下,是会将负值当成0处理,这样一来,约束就会更紧
如果想正常处理这些负延迟数值,除了要添加仿真工具使能选项之外,还要确认SDF文件或者specify模型中,关于时序定义是否支持负值,比如$setup不支持,而$setuphold就支持。

    本质上都是因为负的延时无法被补偿为正值,需要仔细确认。

11. SDFCOM_NTCDNC- Negative Timing Check Did Not Converge

    当vcs无法converge多条negative timing check中的delay时会报告这条warning,可能有两种原因,第一种是vcs无法识别互斥condition导致的。第二种是timing出问题导致delay无法收敛,需要仔细检查并去解决;

12. SDFCOM_NDMD - NTC Delay is larger than ModPath Delay

    ModPath Delay小于NTC Delay是不合理的,需要解决。

备注1:针对3-6项,warning都是关于SDF 和Library model之间的不匹配导致的,当出现不匹配时vcs默认的行为是忽略SDF中多余的check和delay,需要前端和后端确认哪一个才是golden。

本节只摘录了部分的sdf warning的情况,实际上可能还有各种各样的类型,这里的warning都需要被认真的对待,这样才能保证sdf的反标没有问题,同时后仿也没问题,否则可能会导致大量且无效的debug的工作。

Could not load content