zoukankan      html  css  js  c++  java
  • 第四讲: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.其他的用的不多,主要靠人的知识经验不是工具。

  • 相关阅读:
    安装Docker-Compose
    Docker微容器Alpine Linux
    Linux 常用命令
    如何定制博客园的个人空间
    Elasticsearch入门之从零开始安装ik分词器
    Elasticsearch入门实践
    写在2017年的总结
    开源ETL工具之Kettle介绍
    常用Java数据库连接池
    细说shiro之七:缓存
  • 原文地址:https://www.cnblogs.com/chip/p/4781789.html
Copyright © 2011-2022 走看看