前言:在芯片设计与制造的过程中,确保芯片的质量和可靠性是至关重要的。边界扫描(Boundary Scan) 技术作为一种强大的芯片测试和验证工具,广泛应用于现代芯片设计中。本篇文章将介绍边界扫描技术的基本原理、构成要素以及在芯片测试和硬件调试中的应用。下文简称BSCAN本篇文章主要分为两个部分: 一:Boundary Scan的基本概念及应用 二:Boundary Scan的硬件实现 一:Boundary Scan的基本概念及应用-> 什么是Boundary SCAN?首先我们都知道BSCAN是一种用于测试和验证集成电路的技术。在集成电路中,有许多引脚(pins) 用于与其他器件进行通信和连接。BSCAN 通过在芯片引脚之间添加可控的扫描链(Scan Chain) ,使得我们能够在测试和调试时以串行方式访问每个芯片引脚。如下图-> BSCAN诞生的契机是什么呢?电路板的日益复杂和surface mount technologies(表面贴装技术)等技术的转变导致系统设计师们达成一致,采用了一种统一的基于扫描的方法,称为边界扫描(boundary scan) ,用于在电路板(任何系统)级别上测试芯片。-> BSCAN为芯片验证带来了什么?1. 连通性测试:假设你在设计一个SoC,其中涉及许多引脚用于连接不同的子系统。使用边界扫描,你可以测试这些引脚之间的连通性。例如,你可以加载一个测试模式,通过观察TDO信号,检查引脚是否按预期连接,是否存在开路或短路问题。2.故障定位:在芯片制造过程中,可能会出现一些未预料的故障,例如焊接问题或晶体管故障。通过加载适当的测试模式,你可以观察故障信号在扫描链上的传播路径,从而精确定位故障的位置,加速故障排除过程。3.逻辑验证:在芯片设计的早期阶段,你可以使用边界扫描来验证芯片的基本逻辑功能。通过加载测试模式,观察输出是否与预期相符,以验证芯片的功能性。4.硬件调试:假设你遇到了一些奇怪的硬件问题,如时序问题或逻辑错误。通过在扫描链上加载特定的测试模式,你可以观察信号在芯片内部的传播路径,有助于理解信号的行为,从而更有效地进行硬件调试。5.芯片级联测试:在多芯片系统中,边界扫描可以用于测试不同芯片之间的连接性。通过将多个芯片的边界扫描链连接在一起,你可以检测引脚和信号在整个系统中的传输情况。总之,边界扫描在SoC设计验证中是一项强大的工具,可以帮助芯片验证工程师在不同阶段进行测试、调试和验证,从而提高芯片的质量和可靠性。 二:Boundary Scan的硬件实现边界扫描的核心思想是在SoC芯片的引脚周围添加一个可控的扫描链,将芯片内部的逻辑电路与扫描链相连。这个扫描链由一系列的Scan Cells (扫描单元)组成,每个扫描单元可以存储一个比特的数据。通过操控TAP(Test Access Port) 控制器,我们可以在扫描链上加载测试模式,然后观察测试模式在芯片内部的传播路径,从而实现测试、调试和验证。没错,下面就要详细介绍一下我们的主角TAP了! TAP控制器是边界扫描的核心,它负责管理扫描链的操作。TAP控制器通过四个或个基本信号进行操作测试访问端口。 · TCK(Test Clock):用于控制扫描链的时钟信号。 · TMS(Test Mode Select):用于控制TAP控制器状态机的状态切换。 · TDI(Test Data Input):用于将数据加载到扫描链中。 · TDO(Test Data Output):用于从扫描链读取数据。 · TRST(Test Reset):用于异步复位TAP控制器,如果芯片没有自动生成上电复位信号的话。 不过一般我们用到前面四个就够了,下面是一个基本的TAP架构图。 下面我们就按照这张图剖析一下TAP的组成部分。 1. TAP控制器(TAP Controller):TAP控制器是TAP的核心,负责控制扫描操作的状态转换和时序。它通过TCK(Test Clock)、TMS(Test Mode Select)、TDI(Test Data Input)和TDO(Test Data Output) 等信号,实现从一个状态到另一个状态的转换,以便执行不同的操作,如扫描测试数据或读取测试结果。TAP控制器按照JTAG(Joint Test Action Group) 标准定义了一组状态,如Test-Logic-Reset状态、Run-Test/Idle状态等。2.指令寄存器(Instruction Register):指令寄存器用于存储和加载TAP控制器的指令。在测试和调试过程中,可以通过加载不同的指令来控制芯片的操作。指令寄存器的位数决定了可以定义的不同指令数量,从而支持多种测试模式和操作。3. 测试数据寄存器(Test Data Register):测试数据寄存器用于存储测试模式数据,它是扫描链(Scan Chain)的一部分。测试数据可以被输入到芯片进行测试,也可以从芯片中读取出来作为测试结果。测试数据寄存器又分为不同的子寄存器,包括边界扫描寄存器、旁路寄存器和TDO驱动器。3.1. 边界扫描寄存器(Boundary Scan Register):边界扫描寄存器是边界扫描技术的关键,用于在芯片的引脚之间插入可控的测试逻辑。它允许在芯片的输入和输出之间插入额外的逻辑电路,以便执行连通性测试、故障定位等操作。边界扫描寄存器存储了扫描链上的测试模式数据,可以通过TAP控制器进行加载和读取。3.2. 旁路寄存器(Bypass Register):旁路寄存器用于绕过边界扫描逻辑,将芯片的输入直接连接到输出。当不需要执行边界扫描时,可以通过加载指令将旁路寄存器中的数据传递给TDO输出,从而绕过边界扫描逻辑。3.3. TDO驱动器(TDO Driver):TDO驱动器用于控制TDO输出信号的驱动。在扫描链操作期间,TDO驱动器负责将测试模式数据从边界扫描寄存器或旁路寄存器传递到TDO输出。TDO驱动器还可以根据TAP控制器的状态控制TDO输出信号的开关。这些组成部分共同构成了TAP结构,使得边界扫描技术成为一种强大的芯片测试和验证工具,为集成电路设计和制造过程提供了可靠的测试手段。下图展示一个完整的Boundary SCAN。 结语Boundary SCAN作为现代芯片设计验证领域的重要工具,为芯片工程师提供了强大的测试和调试手段。它通过TAP控制器、扫描链和测试模式生成器的协同工作,实现了对芯片内部功能和连通性的全面测试。 |