DFT是Design For Tesability(可测试性设计)的简称。是设计人员在进行系统和电路设计的同时,考虑测试的需求,通过在芯片中增加一些测试电路从而简化测试过程。 是一种为达到故障检测目的所进行的辅助性设计方法,使制作完成后的芯片能达到“可控制性”和“可测试性”两个目的。
目前较流行的DFT设计方法包括内部扫描通路测试(Scan)、内建自测试(BIST)和边界扫描测试(BSD)等
1. 内部扫描测试(SCAN)!I\u001BY2J\u0006S0c\u000BN7w\u001EO\u0003H
通过插入scan chain能检测芯片内部包括电路短路/开路,连线和器件延迟等现象,同时可减少芯片的测试成本,它被认为是目前最理想的结构故障测试结构。
扫描测试要求每个扫描单元处于可控制和可测试的状态,只有这样才能保证其可替换为相应的扫描单元,并保证测试故障覆盖率。为保证电路中的每个设计节点都符 合要求,在进行扫描链插入通常会进行设计规则检查。基本规则如:能使用带多路选择的扫描触发器替代同类触发器(DFF->SDFF);原始输入端能 对所有触发器的时钟和异步复位端进行控制;时钟信号避免作为触发器的输入信号;三态总线在扫描测试模式时可至于disable状态。可用DFT Compiler等工具进行DFT设计,如果能在RTL设计阶段考虑DFT方面的限制,那么能使后面的DFT instertion效率更高。
2. 内建自测(BIST:Bilud-in selftest).g\u0005C\u0001g\u000Ft$T\u0004E\u001CE
BIST一般是指Memory的内建自测。由于现在芯片设计中memory的使用越来越多(50%以上?),用普通的测试方法将使测试时间越来越长,测试 成本大大增加。而且由于memory本身物理结构密度很大,对其测试也无法从片外通过端口直接访问memory的每个地址。导致当memory中数万个 bit中有一位出现物理缺陷时很难快速查找其芯片的失效原因。于是需要通过内建的自测试方法对内嵌的memory进行快速有效的扫描和测试,以确定 memory的可靠性。
BIST的算法都是基于一些故障模型,有多种算法。一般情况下,BIST电路作为逻辑电路的一部分在RTL级插入,并与其它逻辑一起进行综合。目前也有较 多的EDA工具能在RTL级自动生成BIST电路并集成到设计中,如Mentor-mBISTArchit.(?),Synopsys-SocBIST 等。
3. 边界扫描(BSD:Boundary Scan)\u001Cm\u001Cl\u0018v\u001Es\u000Bh
BSD是为了解决PCB上芯片与芯片间互连测试而由一个组织--JTAG(Jiont Testable Action Group?:联合测试行动组?)提出的一个解决方案。1990年正式被IEEE采纳成为一个标准,即IEEE1149.1。该标准规定了边界扫描的测试 端口、测试结构和操作指令。
其基本原理是在核心逻辑电路的输入输出端口都增加一个寄存器。通过将这些IO上的寄存器连接起来,可以将数据串行输入被测单元并从相应端口串行读出。从而实现芯片与PCB之间互连的测试、芯片级测试、系统级测试通过对板上Flash或CPLD的在线编程实现系统测试。 w\u001Fr$y9Q0A\u0001H v h\u0006T\u0003y
业界的BSD产生工具主要有Mentor-BSDArchit.(?),sysnopsy-BSD Compiler等。
目前较流行的DFT设计方法包括内部扫描通路测试(Scan)、内建自测试(BIST)和边界扫描测试(BSD)等
1. 内部扫描测试(SCAN)!I\u001BY2J\u0006S0c\u000BN7w\u001EO\u0003H
通过插入scan chain能检测芯片内部包括电路短路/开路,连线和器件延迟等现象,同时可减少芯片的测试成本,它被认为是目前最理想的结构故障测试结构。
扫描测试要求每个扫描单元处于可控制和可测试的状态,只有这样才能保证其可替换为相应的扫描单元,并保证测试故障覆盖率。为保证电路中的每个设计节点都符 合要求,在进行扫描链插入通常会进行设计规则检查。基本规则如:能使用带多路选择的扫描触发器替代同类触发器(DFF->SDFF);原始输入端能 对所有触发器的时钟和异步复位端进行控制;时钟信号避免作为触发器的输入信号;三态总线在扫描测试模式时可至于disable状态。可用DFT Compiler等工具进行DFT设计,如果能在RTL设计阶段考虑DFT方面的限制,那么能使后面的DFT instertion效率更高。
2. 内建自测(BIST:Bilud-in selftest).g\u0005C\u0001g\u000Ft$T\u0004E\u001CE
BIST一般是指Memory的内建自测。由于现在芯片设计中memory的使用越来越多(50%以上?),用普通的测试方法将使测试时间越来越长,测试 成本大大增加。而且由于memory本身物理结构密度很大,对其测试也无法从片外通过端口直接访问memory的每个地址。导致当memory中数万个 bit中有一位出现物理缺陷时很难快速查找其芯片的失效原因。于是需要通过内建的自测试方法对内嵌的memory进行快速有效的扫描和测试,以确定 memory的可靠性。
BIST的算法都是基于一些故障模型,有多种算法。一般情况下,BIST电路作为逻辑电路的一部分在RTL级插入,并与其它逻辑一起进行综合。目前也有较 多的EDA工具能在RTL级自动生成BIST电路并集成到设计中,如Mentor-mBISTArchit.(?),Synopsys-SocBIST 等。
3. 边界扫描(BSD:Boundary Scan)\u001Cm\u001Cl\u0018v\u001Es\u000Bh
BSD是为了解决PCB上芯片与芯片间互连测试而由一个组织--JTAG(Jiont Testable Action Group?:联合测试行动组?)提出的一个解决方案。1990年正式被IEEE采纳成为一个标准,即IEEE1149.1。该标准规定了边界扫描的测试 端口、测试结构和操作指令。
其基本原理是在核心逻辑电路的输入输出端口都增加一个寄存器。通过将这些IO上的寄存器连接起来,可以将数据串行输入被测单元并从相应端口串行读出。从而实现芯片与PCB之间互连的测试、芯片级测试、系统级测试通过对板上Flash或CPLD的在线编程实现系统测试。 w\u001Fr$y9Q0A\u0001H v h\u0006T\u0003y
业界的BSD产生工具主要有Mentor-BSDArchit.(?),sysnopsy-BSD Compiler等。