功能测试VS结构测试

基于功能测试和结构测试,很大程度上决定了芯片的质量。因为这两个环节就是专门为芯片质量把关而存在的。

 功能测试

        功能测试是属于前端设计的一个环节,当编码工程师将他那部分代码写完之后,就可以交给验证工程师做功能测试。因为编码工程师是为芯片编写逻辑功能的RTL代码,所以说验证工程师也是基于逻辑功能做的测试

        具体表现为使用testbench来搭建一个测试芯片功能的环境,在这个环境下,我们需要给待测试设计文件(DUT,Design Under Test)激励,然后观测输出与预期对比,判断芯片是否有功能故障。

         说到这里大家应该也能明白testbench是一个抽象的概念,实际上它也是由很多个组件组合而成。Generate激励产生器,她就像是子弹;Agent是一个盒儿,将所有的子弹放到这个弹匣中;Drive是驱动,将所有的子弹发射出去给到DUT;之后我们就可以用Monitor监控所有DUT的输出数据,将输出数据投送到Scoreboard比较器中与预期的对比。

        那么很巧的是,问题来了,预期的数据怎么到达Scoreboard呢?

        其实很简单,我们只要在DUT的位置用一个功能类型相同的模型替换就可以了,这里也叫做refence_model测试模型。对于这种类比模型,我们当然不可能去实现很复杂的功能,只需要使用时钟clk,和initial直接初始赋值来完成就可以。

PS:针对不同复杂度的DUT,验证的搭建也会有所不同。并且上图的组件也不是一个testbench里只会出现一次~

        所以对于功能测试来说,可以有很多种,甚至你可以完全不用去理解设计文件的内容,只要观察DUT的输入和输出,就能发现问题,这也是验证策略之一:黑盒测试。根据对DUT的理解,还会有灰盒测试和白盒测试,都是依据验证工程师对DUT理解层次的划分,然后提取各种时钟/复位等测试功能点,进行验证。

结构测试

        结构测试很好理解,就是基于电路的结构进行测试,所以说在功能验证完成后,RTL的网表就要综合成门级网表,给到DFT工程师了。因此DFT设计工程师其实并不care电路的功能逻辑(就是不管它起什么作用),只需要去发现电路的物理缺陷就行。

        既然要做结构测试,那肯定是要对电路内部结构都能看见并且了解的,所以这里就不存在什么黑盒和灰盒测试了,完完全全的是白盒猜测。

        结构测试依靠很多成熟的EDA工具,类似于Synopsys的DFT Complier,西门子Mentor的Tessent等等。通过对电路内部插入一些可扫描单元,实现电路的可控/可观察/可隔离3大特性。

  • 可控:对电路内部施加外部激励,能否使之响应;如果内部节点可被驱动为任何值,该节点就是可控的。
  • 可观察:能否被外部设备观测到测试点的状态,如果电路内部的取值可以传输到电路的输出端,则称之为该节点可观察。
  • 可隔离:通过测试逻辑将测试状态和正常工作状态隔离开,使它们互不干扰,则称为可隔离。​

         还有不得不提的就是ATPG测试向量生成工具。Snopsys的TetraMAX和西门子Mentor的Fastscan都是为了测试向量生成而生。这个测试向量就好比是功能测试的子弹,结构测试生成的测试向量,最终会在芯片流片完成之后,通过ATE机台施加给芯片,然后测试机台会搜集到芯片给的反应来与预期进行对比。

        听起来是不是很耳熟?哈哈哈,测试的精髓就是这儿了~

        ATE的反馈其实有两种:①测试pass了,好了大家的努力没有白费,我们的芯片没有我们所建立的故障,因为我们的测试向量没有打到fault,测试向量与输出吻合。②测试fail了,这时候大家眉头紧锁,这只芯片大概是报废了。但先不要放弃,也有可能不是芯片的问题,是不是测试向量错了呢?也有可能啊,虽然几率很小,如果不是测试向量本身的问题话,那就是芯片有缺陷了,毕竟与预期不符,和测试向量的结果产生mismatch了。 通过这种方法,我们就可以筛选出废片了。

功能测试VS结构测试

        这两种测试在很多方面的测试方法是很像的,只是基于不同的层面。我暂且先总一些总结:

功能测试结构测试
透明度黑盒/灰盒/白盒白盒
层次block/topblock/top
环境testbenchtestflow
对象软件的测试硬件的测试
方法施加激励给对象,观测输出与预期对比是否一致

测试覆盖率的问题后续再补充~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Initial_nicole

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值