SOC/DFT——Boundary scan 模块(一)
一、相关概念 DFT
介绍本文之前先介绍几个概念:
- SOC(片上系统): 一般采用ASIC来做SOC,即专用集成电路。
- DFT(Deign For Test): 集成电路可测性设计。在很大规模的IC设计中,往往会有一些各种各样的bug出现,不论是在前期design的过程,还是在post silicon流片回来chip的flaw,都会导致chip的功能的失败,时钟频率无法达到期望频率。
所以,在超大规模集成电路的设计中,DFT就是一门非常重要的方法学,在消费者手中,往往不知道他们的存在,但是在IC工程师眼中,DFT往往会是一个救命的稻草,让我们在芯片出问题的时候,可以知道从哪下手,找到bug的根源。
三种基本的测试(概念来自参考文档):
- 边界扫描测试;boundary scan test。测试目标是IO-PAD,利用jtag接口互连以方便测试。(jtag接口,实现不同芯片之间的互连。这样可以形成整个系统的可测试性设计。)
- 内建自测试BIST;(模拟IP的关键功能,可以开发BIST设计。一般情况,BIST造成系统复杂度大大增加。memory IP一般自带BIST,简称MBIST)
- 扫描测试(又叫ATPG)。scan path。与边界扫描测试的区别,是内部移位寄存器实现的测试数据输入输出。测试目标是std-logic,即标准单元库。(扫描测试和边界扫描,不是一个概念。需要区别对待。内部的触发器,全部要使用带SCAN功能的触发器类型。)
本节主要介绍边界扫描测试 boundary scan
二、边界扫描测试 boundary scan
-
边界扫描测试
边界扫描(Boundary scan )是一项测试技术,是在传统的在线测试不在适应大规模,高集成电路测试的情况下而提出的,就是在IC设计的过程中在IC的内部逻辑和每个器件引脚间放置移位寄存器(shift register).每个移位寄存器叫做一个CELL。这些CELL准许你去控制和观察每个输入/输出引脚的状态。当这些CELL连在一起就形成了一个数据寄存器链(data register chain),我门叫它边界寄存器(boundaryregister)。除了上面的移位寄存器外,在IC上还集成**测试访问端口控制器 (TAP controller),指令寄存器(Instruction register)**对边界扫描的指令进行解码以便执行各种测试功能。旁路寄存器(bypass register)提供一个最短的测试通路。另外可能还会有 IDCODE register和其它符合标准的用户特殊寄存器。
-
边界扫描单元组成(输入输出信号)
如果一个器件是边界扫描器件它一定有下面5个信号中的前四个:
1)TDI (测试数据输入)
2)TDO (侧试数据输出)
3)TMS (测试模式选择输入)
4)TCK (测试时钟输入)
5)TRST (测试复位输入,这个信号是可选的)
boundary scan 遵循IEEE 1149.1的标准(符合此标准的一般成为JTAG电路),遵从此类标准的IC在每个引脚和逻辑中心都有一个独立单元。而这些独立的单元连接到一个转换寄存器(boundary scan 寄存器)中,负责控制和观察每个输入和输出,和双向引脚值。每一个boundary scan 的器件都有一个特殊的输入引脚(TDI),一个特殊的输出引脚(TDO)。TDI是boundary scan 寄存器的输入端,而TDO则,连接到boundary scan寄存器的输出端。在TCK的基础上,由TAP控制整个工作流程,工作模式选择(TMS)和复位信号(TRST) -
边界扫描原理:
Boundary Scan 测试的时候发送一组信号流到被测试的数字器件的转换寄存器单元里面。而这个单元可以在每一个输入,输出和双向引脚以及器件的逻辑中心那里找到。那些信号在寄存器周围转换并且从器件输出,然后输出的信号和输入的信号之间的差异来比较判断出错。例如有两个引脚之间短路或者电源与地脚短路之类的,都会产生报错。
几个boundary scan 器件可以连接到一个链上,从而一些相同的基础测试可以同时执行。当然,boundary scan还有许多的附加测试能力,但是这种使用转换寄存器来检查输出信号是整个boundary scan 测试理论的基础。
测试扫描单元可以是一下的逻辑模块:是一个典型的数据寄存单元,它能灵活的扮演输入和输出单元。
Internal logic 和Output Pin 阐明了输出的配置。而紫色的Input logic 阐明输入的配置,对于双向PIN来说,可以只选用一个单独的单元。