首页 > 其他 > 详细

VCS课时5:处理Missmatch

时间:2019-12-22 10:44:04      阅读:135      评论:0      收藏:0      [点我收藏+]

课程目标

仿真的结果和预计的的不一样(debugging simulation mismatches)

if (data=3) //这个语句用于为真

好的coding方式

if(3===data)

技术分享图片

  • race 竞争冒险
  • vcddiff比较vcd文件是不是一样

1. Mismatches原因

PPT1

技术分享图片

  • 仿真工具的不同,仿真工具不同的版本
  • RTL和门级仿真的结果的不一样,前仿和后仿的记过不一样

PPT2

技术分享图片

PPT3 仿真事件队列

技术分享图片

2. 竞争的例子

PPT1 同时读取

技术分享图片

第10个仿真时间单位同时对a读取和写

技术分享图片

PPT2

在数字电路中避免这种coding style

技术分享图片

不定态指的是,仿真的时候,复位信号到来之前未知的状态,真实的情况是不存在的

PPT3

技术分享图片

3. 零延时竞争

PPT1

技术分享图片

最开始的时候不知道reset=x是多少,如果最开始是不知道是什么

改进后为

技术分享图片

#### PPT2

技术分享图片

最开始的时候rst给1,那么val是多少呢

4. 触发器的竞争

技术分享图片

  • 仿真的结果是不是你想要的
  • 综合工具综合处理的电路是不是我们想要的

使用非阻塞电路的结构

技术分享图片

5. Coding Style建议

技术分享图片

多驱动,一般是在SoC顶层,双向端口

6. 发现并解决Race的方法

PPT1

技术分享图片

PPT2

技术分享图片

编译时加上开关选项

PPT3

技术分享图片

更多的是依靠人的经验的,少了一个等于号,通过方法避免

PPT4

技术分享图片

7. vcat和Vcdiff

技术分享图片

技术分享图片

8. 实验环节

  1. 增加style1和style2

Style1 是非阻塞赋值

技术分享图片

Style2 是阻塞赋值

技术分享图片

技术分享图片

结果并不是晚一拍

定义宏的方式:
技术分享图片

综合电路 `define DFF_STYLE2

综合结果,第一种非阻塞结果是两个触发器,第二种是也是两个触发器

结论:综合结果是对的,仿真是错的

  1. 增加增加了两种情况,放在一个always语句

技术分享图片

两级的触发器

style3是两级的延迟,style4不是,是同一拍的,

Style4结果是只有1个触发器:

技术分享图片

  1. 增加了第5种和第六种

    顺序颠倒了

技术分享图片

第五种仿真的结果是对的

第六种电路仿真结果是对的!

技术分享图片

综合结果也是两个触发器

技术分享图片

  1. 第七种和第八种

技术分享图片

结论:通过阻塞赋值,有些情况仿真通过,但是综合不通过;有些仿真不通过,综合通过

VCS课时5:处理Missmatch

原文:https://www.cnblogs.com/ICworkman/p/12079145.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!