• Formality总结


    Formality总结

    Undriven signal 设置

    对于design出现的undriven signal,在做formality时该怎么处理呢?
    Formality通过变量verification_set_undriven_signals来控制,这个变量可以设置为:
    1、BINARY
    2、BINARY:X
    3、0:X

    默认情况下,对于undriven signal,无论是reference还是implementation design,formality都会将其设置为X,这样造成的结果是比较乐观的;

    BINARY

    设置为BINARY的话,工具会将reference和implementation design中所有的undriven signal设置被设置为cutpoint;而cutpoint在Formality中可以被视为一个primary input,这样的话,这些cutpoint在compare时会被设置为0或1了,而不会出现X;

    在这种情况下,如果在reference design中有matching compare point受这个undriven signal控制,那么在implementation design中,对应的matching compare point也必须受这个undriven signal控制;
    如果implementation design中的compare point没有这个undriven signal的话,那么很可能会导致fail;

    BINARY:X

    设置为BINARY:X的话,那么

    设置为BINARY:X的话,reference design和implementation design中对undriven signal的处理方式不同;在reference design中,所有的undriven signal会被设置为cutpoint(与BINARY一致),而在implementation design中的undriven signal则会被设置为X value;设置为X的话,就不用担心掩盖了一些潜在的问题;

    如果implementation design中有compare point由X控制,只有在reference design中的对应compare point也由X控制的情况下才会pass;

    也就是说,在这个mode下,只要reference design中有undriven signals(不是unread或者没有被设置set_dont_verify)控制compare point,那就会产生failing point,即使在implementation design也有undriven signals,还是会导致fail;

    这种mode可以用于debug reference design中受undriven signal控制的compare point;

    0:X

    设置为0:X的话,那么reference design中的undriven signal会被设置为0,而implementation design中的undriven signal会被设置为X;
    这个mode的设置与DC类似,因为在DC中,undriven signal都会被tie 0;

    怎么设置?

    在做formality时,对于不同的case,分三种情况来设置这个变量:
    1.RTL vs RTL
    设置 verification_set_undriven_signals为 BINARY
    2.RTL vs Netlist
    设置verification_set_undriven_signals 为 BINARY:X
    3.Netlist vs Netlist
    设置verification_set_undriven_signals 为 BINARY:X

    怎么debug?

    使用report_failing_point -input_undriven可以report出由undriven signal控制的failing compare point;
    接下来在debug这些failing compare point时,可以使用report_unmatched_points -status undriven来查看compare point的fanin中没有match的undriven signal;

    参考文章:
    https://solvnetplus.synopsys.com/s/article/Formality-Support-for-Undriven-Signals-1576165779962

    相关变量设置

    为了保证formality的结果不要太乐观,需要设置一些RTL相关的变量让工具变得更严格一点;

    hdlin_ignore_fullcase

    Design中

  • 相关阅读:
    大学生抗击疫情感动人物最美逆行者网页设计作业 html抗疫专题网页设计 最美逆行者网页模板 致敬疫情感动人物网页设计制作
    Docker 保存与发布(commit, save, load)
    主成分分析(PCA):揭秘数据的隐藏结构
    创建 gstreamer 插件的几种方式
    Spring事务
    FreeSWITCH 与 Asterisk(译)
    springboot利用mybatis批量写入clickhouse报错及解决方法
    【限定词习题】复习
    【webrtc】接收/发送的rtp包、编解码的VCM包、CopyOnWriteBuffer
    使用TensorRT 和 Triton 在Jetson NX上的模型部署
  • 原文地址:https://blog.csdn.net/zhenhuagege/article/details/127401861