为什么要做可测试性设计(DFT)? 点击:1459 | 回复:0



xilinxue

    
  • 精华:13帖
  • 求助:0帖
  • 帖子:367帖 | 3回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2010-02-26 22:55:54
楼主
DFT其实是一个很广泛的范围,我们做ic设计的人讲到dft设计其实也是指其中一个很小的范围。

首先说,我们为什么要做dft?首先要明白一个这样一个概念,我们做dft主要是为了检查工艺错误,而不是为了检查芯片本身的设计错误。举一个简单的例子,有一个2输入的与门,如果它有工艺错误,output端不能从0正确的变到1。那么我们就会在它的两个input端口灌1,1信号,然后检查它的output是不是1,从而判定它有没有工艺错误。那么我们把这个概念推广到整个芯片的测试,我们为了检测到芯片每个部分,那么就要反推出input应该灌什么样的pattern。因为时序电路的特殊性,就引入了SDFF,把时序结果人为的变成“组合逻辑”,这样我们就能比较方便的通过控制SDFF的input值,达到控制它的output值得目的。

接着讲讲最基本的用mux-dff做的full scan的步骤(用DC做):我通常会对芯片中的memory做memory bist(包含了bypass电路),做scan chain的时候就通过bypass电路绕过memory。然后用compile -scan 产生一个带SDFF但没有形成scan chain的网表(这个步骤中推荐使用rtldrc,把所有的error跟warning修改掉)。然后在这个netlist的基础上check dft修改掉error跟warning,确认preview dft是你想要的结果,就可以形成scan chain了。

然后用ATPG的tool产生测试pattern,看看覆盖l率,如果你是到好的生产代工的公司流片那么95%的覆盖率已经足够了。

补充:

DFT的基本概念里,fault at 0,fault at1是基本的.

就是说故障0,故障1,
要测试这些,有很多的算法.


热门招聘
相关主题

官方公众号

智造工程师