芯片验证需要围绕DUT做什么?

TestBench即测试平台,是为了检验待测设计(design under test,DUT)而搭建的验证环境。有了这个环境,我们就可以对DUT输入定向或随机的激励,以保证DUT的正确性。故验证要做的事分为以下几步:

1、生成各种各样的输入激励

2、将输入激励传递到DUT上

3、DUT响应输入激励并输出

4、检查输出与预期结果差异

5、发现功能错误后修改DUT

6、重复上述步骤收集覆盖率

做个不太恰当的比喻,testbench就像一个书桌,你买来了一个键盘(DUT),你想要验证它是不是正常工作,你就开始敲键盘检查。你的十个手指就是激励,数据线和屏幕相连,数据线为接口,屏幕是记分板,键盘使用说明书为参考模型。首先你把26个字母都敲了一遍(定向测试),发现屏幕上也出现了26个字母,每个键都能没毛病,基本功能验证了;但是还不够,你又组合着敲了“guan zhu dian zan”(随机测试),屏幕上突然出现“fen xiang zai kan”,这时你就发现bug了,赶紧找设计人员来修改代码。细心的同学发现,随机测试岂不是边界很大,甚至”永无止境“?因此就有了受约束的随机激励。使用定向测试和受约束的随机测试,最终使得功能覆盖率趋于要求值。最终,键盘验证完没问题了,再教给后面的人做物理设计,比如键程长短、工艺面积、功耗分析等等,一套流程下来没问题就拿去厂子代工了。

说完了这个有点尬的比喻,我们理解了testbench就是模拟设计所在的环境,以检查RTL代码是否符合设计规范的玩意,其内部是分好几个组件的。那testbench具体有哪些组件呢?请看下图(PPT画的,不是很专业):

在这里插入图片描述
generator:产生不同的输入激励来驱动DUT
产生有效的数据,并发送给driver。

interface:用于连接testbench和DUT
如果一个设计包含成百上千个端口信号,那么连接、维护和重复利用这些信号就会很麻烦。如果将这些输入输出端口放到一块组成一个接口,那么连接变得更加简洁而不易出错,后续添加新的信号更简便,接口也便于重用。

driver:将激励驱动到DUT

monitor:检测DUT的输出

scoreboard:用于比较输出与预期值
scoreboard上有与DUT相应的参考模型,反映了DUT的预期行为。如果DUT的输出和参考模型的输出不匹配,则设计中存在功能缺陷。

environment:包含以上所有的组件,便于复用

test:可以包含不同配置的环境

因此,为了验证DUT这份RTL代码,验证要做的事是:
1)了解spec,即代码的规格说明书,有结构模型、功能描述、信号端口、寄存器定义等,它是设计和验证对接工作的桥梁。
2)制定testplan,一个完整的验证计划需要考虑的东西有很多,它为后续工作的进行提供了方向。
3)构建testbench,根据具体验证需求选择相应的组件,搭建出尽量可重用的验证环境。
4)编写testcase,根据之前定制的验证计划,coding相应的测试用例,debug fail case,把全部case调试至pass。
5)收集coverage,跑regression回归,根据覆盖率来决定是否加case,直到满足RTL freeze要求。

  • 26
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在SystemVerilog中,使用interface链接DUT(设计单元)和验证环境有以下几个好处: 1.简化代码和模块化:使用interface可以将DUT验证环境的通信功能封装在一个相对独立的接口中。这样可以提高代码的可读性和可维护性,减少冗余代码,使得验证环境更加模块化和容易理解。 2.共享信号:interface可以定义信号的类型和方向,将DUT验证环境共享的信号统一管理,方便工程师之间的协同开发。通过接口,可以规范信号的名称、宽度、方向以及其他属性,避免了不同工程师定义不同名称和属性的问题。 3.验证环境的复用:使用interface可以将验证环境独立于DUT,使得验证环境可以在不同的项目中进行复用。工程师可以根据不同的DUT,只需更改interface和需要的配置参数,而不需要大量修改验证环境的代码。 4.灵活性和扩展性:当使用interface时,可以定义不同的实例来管理不同的信号和通信接口。这使得验证环境在连接不同类型的DUT、使用不同的接口协议或扩展功能等特定需求时更加灵活和可扩展。 5.抽象层级的管理:通过使用interface,可以将验证环境和DUT之间的抽象层级明确化。接口定义了在设计和验证之间的抽象层级,提供了对DUT的高层次访问,同时隐藏了内部的实现细节。 总的来说,使用interface链接DUT验证环境可以提供更好的模块化、协同开发、代码复用和灵活性,帮助工程师更加高效地进行验证工作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值