DFT的简单介绍(上)

电子说

1.3w人已加入

描述

DFT全称为Design for Test,可测性设计。就是说我们设计好一个芯片后,在仿真时可能99%的用例都通过了,怎么保证流片出来的实际芯片也能正常工作呢?这里大家必须建立一个概念就是,不管是前端后端,总之只要是设计阶段,不管是waveform还是版图,他都不能完全代表最终出来的芯片的样子,那些设计图纸只是我们美好的想象,实际的制造结果可能会有工艺的偏差的。

比如GDS里没有short,但是有可能制造出来的芯片真的有short,这就关系到我们所谓的良率问题。那么DFT的终极目标就是在流片后,我也能通过某些测试的方法,保证芯片和我们的设计图纸吻合,不出现异常。

这其实是一件很难的事情。因为芯片太小了,我们不可能拿着电子显微镜一点一点地去看吧,那要怎么做呢?其实它蕴含的思想很简单,或者说人类还没有发明出更高级的办法。

大家肯定有在家里用过电笔的经历,或者稍微专业一点的都知道万用表,他们都是有内部的自建电路,然后利用探针来测被测电路的某一点电势,进而判断是否发生open/short。

对于芯片的测试也没有更高级,也是用这种方法,可以利用探针探测芯片的输入输出引脚,看看输入输出是否正常,第二种比较厉害的是用探针直接伸到芯片内部,测里面某些点的逻辑信号。

这个方法逻辑上听起来也没什么大不了,但是实际实现是非常难的,需要把芯片放到专用的测试机器上,我们叫ATE机台,测试的价格也非常高昂。每次到这我都想感叹一下人类真是太强了。

既然有了这种ATE机台,理论上我们就可以测芯片中每一点的逻辑信号,进而判断芯片是否良好。

但是实际上是不可能行得通的,因为会耗费巨大的时间,可能到宇宙尽头也测不完,其次它实在是太贵了,探针每选择一个点的价格都是我们打工人想象不到的程度。如何更为经济、快速的来测,就是DFT工程师的主要工作目的了。

对于DFT工程师来说,芯片的open/short可以等效为两种fault:Stuck at 0、stuck at 1,说的是不管信号如何变化,某些点可能一直保持0或者1,其实就是发生了open/short。

噢,我这里还说的不太准确,也有可能是cell内部的错误,不是metal的open/short。举一个简单的例子,一个二输入与门,它在输入10、01、00的时候输出都为0,看起来是正常的,但是输入11的时候输出也为0,这就不对了,发生了stuck at 0的错误;如果对于所有的输入都输出1,那也不对,发生了stuck at 1的错误。

那么反过来,我现在想测这个与门是否正常,怎么来测?思路是先测是否有stuck at 0,再测是否有stuck at 1.那么我如何测出它是否有stuck at 0?我就先假设它有SA0,我就找它应该输出为1的输入是什么,然后灌进去这个输入(这个例子里就是11),如果测到输出为0,那么他就发生SA0,如果输出为1,那么他就没有SA0. SA1也是一样,我把所有应该产生0的输入灌进去(10、01、00),如果至少有一个的输出为1,那么就发生SA1,如果全部输出为0,那么就没有发生SA1. 听起来这个逻辑关系好像很简单,对于这个与门的例子一个小学生可能都会自发的想出要这么测。

但我这里费了这么多笔墨要把这件事讲清楚,就是当电路复杂的时候,需要这样一步一步来推导所需要的输入是什么。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分