芯片老化验证流程_IC验证系列之验证流程

源自微信公众号 “数字芯片实验室”

验证的目标是什么?如果你回答“发现bug”,只是部分正确。

设计的目标是基于设计规范设计执行特定功能的芯片。验证的目标是为了确保芯片能够成功完成该任务,也就是说,设计是否准确地反映了设计规范。

bug是设计和设计规范不一致的地方。

验证过程与设计过程是并行的。设计者根据模块的硬件设计规范,解释人类语言描述,并以工具可读的形式描述出相应的逻辑(RTL代码)。

在人类语言描述的设计文档中总有含糊不清的地方。验证工程师必须仔细阅读硬件设计规范,创建验证计划,然后按照它开始验证,查看RTL代码是否符合自己对设计规范地理解,是否正确地实现了这些功能。

设计中潜伏着哪些类型的bug?

最容易检测的bug在由某一个人设计的模块里面。例如, ALU是否正确地完成了两个数字的加法?总线事务是否都成功完成了?

我们不可能编写定向测试来发现这些错误。

在模块验证之后,我们需要验证模块的边界。对于给定的协议,不同的设计者可能会给出不同的解释。第一个设计师根据一种协议的解释设计了一个总线驱动模块,而第二个设计者用另一种协议的解释设计了一个总线接收模块。

我们需要找到有争议的逻辑,以帮助调和这两种不同的解释。

在仿真单个设计模块是,需要创建生成的测试激励。这些low level仿真运行得非常快。当开始整合设计模块时,它们可以互相提供激励,这时可能会发现更多的bug。测试平台应该尽力让所有的模块同时工作。例如,如果在MP3播放器正在播放音乐时,用户试图下载音乐会发生什么?在下载音乐期间,用户按下播放器上的几个按钮会发生什么?

这种功能验证使得产品更加易于使用。

在确保DUT正确地执行指定功能后,需要看看在非正常操作时它是如何工作的。设计是否可以处理部分事务,或者处理数据字段或控制字段损坏的事务?设计如何从错误的工作状态中恢复。

错误注入和处理可能是验证中最具挑战性的部分。

随着设计层次的抽象,验证挑战也越来越多。

最后:你永远无法证明没有错误,所以你需要不断提出新的验证策略。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值