第四讲: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.其他的用的不多,主要靠人的知識經驗不是工具。
?
轉載于:https://www.cnblogs.com/chip/p/4781789.html
總結
以上是生活随笔為你收集整理的第四讲:debugging simulation mismatches的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发中Handler的经典
- 下一篇: mac 安装Navicat Premiu