DFT vs DV,你应该选择哪一个?

科技   2024-10-09 23:33   美国  

DFT指的是Design for Test,而DV指的是Design Verification。这两种工作都同样具有挑战性,都是芯片设计流程中的关键步骤。

芯片开发流程中的DFT和DV:一旦RTL代码初步开发完成,DV工程师就会开始阅读设计规范。与此同时,DFT工程师在逻辑中添加DFT相关的RTL。在DV测试RTL后,进行综合以获得门级网表。DFT工程师开始生成pattern来测试scan/mbist/lbist/jtag等。


随着RTL的改进,DV团队不断验证其他功能更改,DFT团队继续为较新的网表版本生成和测试pattern。

DFT – Design for Test
  1. 检查structural faults:可能因制造而产生的故障,例如stuck at 0/1 faults, bridge faults。
DV – Design Verification
  1. 检查functional faults:由于RTL代码错误或代码综合不正确而可能出现的故障。这导致了设计功能不正确。一般在功能验证中会用到术语:BUG


使用HALF ADDER电路的例子来了解差异。如果“A”和“B”是输入,则输出为:


DFT 

以下是半加法器的门级网表表示,电路中可能存在stuck-at faults


假设“B”stuck at 0。运行此设计的测试pattern后获得的输出:

为什么在DV期间没有检测到这个?

这只是因为问题发生在DV完成后。设计被tape out,然后进行制造。制造过程中发生了B stuck at 0。


在制造后的芯片运行DFT测试pattern后,由于上述stuck at故障,测试pattern输出将不会如预期一样,需要进一步定位分析具体问题原因。

DFT技能

成为一名DFT工程师不需要你了解芯片的功能。主要技能是能够生成有效的pattern(使用DFT工具),并在制造前后分析它们,以识别故障。


然而,对Verilog的了解是必不可少的。DFT也被插入并集成到RTL设计中,DFT工程师的工作不仅限于pattern。也涉及设计中DFT相关模块的开发/集成/维护,以及指导RTL设计在编码时采用DFT友好的verilog风格。

DFT测试覆盖率

DFT中的测试覆盖率是测试pattern可以覆盖多少个故障。如果覆盖率为90%,则意味着设计中90%的故障可以通过给定的pattern来检测。为了检测设计中的更多故障,需要改进pattern。

在DFT中获得100%的测试覆盖率是一个非常具有挑战性的目标。

DV 

如果RTL代码编码错误,例如添加了OR门而不是AND门,电路将如下所示:



为什么在DFT中无法检测到这一点?

因为DFT不检查设计的预期功能是否正确。

如果DV未能检测到此问题,DFT将根据错误的设计(OR门而不是AND门)生成pattern。如果没有制造缺陷,DFT pattern仍然会通过。这可能会在进一步的功能验证测试中被检测到。

DV技能

成为一名设计验证工程师围绕着你对设计预期功能的理解程度。


根据验证工程师对设计规范的理解程度,开发一组功能和corner case。然后,开发测试用例来检查它们。RTL设计在他们这边执行基本验证,但DV工程师负责全面的综合测试,尽可能避免漏掉bug。Verilog技能对这个角色至关重要,还有System Verilog和UVM的知识。

DV测试覆盖率

DV中的测试覆盖率要么是功能覆盖率,要么是代码覆盖率。

功能覆盖率:这定义了覆盖了多少个功能(基于一组预定义的功能特征和边界场景)。

代码覆盖率:这种类型的覆盖率衡量测试用例测试了多少代码。


从职业角度来看,这两种技能的需求量都很高。如果您打算深入研究设计的功能,并且新的设计功能让您兴奋,DV将是一个不错的选择。如果您对制造如何影响设计更好奇,DFT将为您提供许多答案。


数字芯片实验室
前瞻性的眼光,和持之以恒的学习。
 最新文章