• 第四讲:debugging simulation mismatches


    关于竞争冒险:

    1.use +race utility to locate race condition code ****

    2.use $vcdplusdeltacycleon to locate race condition code(不常用)

    3.use vcddiff & vcat t locate race condition code (不常用)

    Causes of simulation mismatches

    1.functional simulation mismatches:

       1.1 different simulator vendors:

        race condition in source code **

        vendor implementation

       1.2different version of simulator from same vendor

         race condition in source code

     2.RTL-gate mismatches: *********

        2.1 same simulator

          race condition in source code***(最多)

          poor code style**

       出现竞争冒险:

         1.代码不规范比如有若干正确结果,code过于模糊

          2.同时write/read同一个data(using and setting a value at the same time)

         3.竞争冒险会到时不期望的结果,综合之前解决掉

     Coding Rules of Thumb

    1.synchronous blocks drive only with non-blocking assignments

    2.combinatorial and initial blocks drive only with blocking assignment

    3.don't drive regs from multiple blocks

    4.be careful with the interaction of continous assignments and procedural blocks 

    debugging race conditions:

    1.enable with compile switch +race (主要用这个)

    2.其他的用的不多,主要靠人的知识经验不是工具。

  • 相关阅读:
    while循环
    No.四
    No. three
    第二章吧
    第二次写博客
    我人生的第一个程序,相当于哥伦布发现新大路。
    orale命令6 rman备份
    oracle 命令4 热备份
    oracle命令3 冷备份
    oracle命令2 和一致性关闭、非一致性关闭
  • 原文地址:https://www.cnblogs.com/chip/p/4781789.html
Copyright © 2020-2023  润新知