边界扫描(Boundary scan )是一项测试技术,是在传统的在线测试不在适应大规模,高集成电路测试的情况下而提出的,就是在IC设计的过程中在IC的内部逻辑和每个器件引脚间放置移位寄存器(shift register).每个移位寄存器叫做一个CELL。这些CELL准许你去控制和观察每个输入/输出引脚的状态。当这些CELL连在一起就形成了一个数据寄存器链(Data Register Chain),我们叫它边界寄存器(Boundary Register)。除了上面的移位寄存器外,在IC上还集成测试访问端口控制器 (TAP controller),指令寄存器(Instruction Register)对边界扫描的指令进行解码以便执行各种测试功能。旁路寄存器(bypass register)提供一个最短的测试通路。另外可能还会有IDCODE register和其它符合标准的用户特殊寄存器。


边界扫描器件典型特征及边界扫描测试信号的构成。
如果一个器件是边界扫描器件它一定有下面5个信号中的前四个:
1.TDI  (测试数据输入)
2.TDO (侧试数据输出)
3.TMS (测试模式选择输入)
4.TCK (测试时钟输入)
5.TRST (测试复位输入,Optional)
TMS,TCK,TRST构成了边界扫描测试端口控制器(TAP controller),它负责测试信号指令的输入,输出,指令解码等,TAP
controller是一个16位的状态机,边界扫描测试的每个环节都由它来控制。
在后续的文章中还会向大家介绍边界扫描的其它方面。
边界扫描为开发人员缩短开发周期,并且提供良好的覆盖率和诊断信息。在不了解IC内部逻辑的情况下快速的开发出优秀的测试程序。在未来的测试领域,边界扫描将会得到广泛的应用。


边界扫描测试发展于上个世纪90年代,随着大规模集成电路的出现,印制电路板制造工艺向小,微,薄发展,传统的ICT
测试已经没有办法满足这类产品的测试要求。由于芯片的引脚多,元器件体积小,板的密度特别大,根本没有办法进行下探针测试。一种新的测试技术产生了,联合测试行为组织(Joint
Test Action Group)简称JTAG 定义这种新的测试方法即边界扫描测试。

被国际电工委员会收录为IEEE1149.1-1990
边界扫描测试测试访问端口和边界扫描结构标准。该标准规定了进行边界扫描测试所需要的硬件和软件。自从1990 年批准后,IEEE 分别于1993
年和1995 年对该标准作了补充,形成了现在使用的IEEE1149.1a-1993 和IEEE1149.1b-1994。JTAG
主要应用于:电路的边界扫描测试和可编程芯片的在线系统编程。

1990年JTAG正式由IEEE的1149.1-1990号文档标准化,在1994年,加入了补充文档对边界扫描描述语言(BSDL)进行了说明。从那时开始,这个标准被全球的电子企业广泛采用。边界扫描几乎成为了JTAG的同义词。

在设计印刷电路版时,
目前最主要用在测试集成电路的副区块,而且也提供一个在嵌入式系统很有用的除错机制,提供一个在系统中方便的"后门"。当使用一些除错工具像电路内模拟器用JTAG当做讯号传输的机制,使得程式设计师可以经由JTAG去读取整合在CPU上的除错模组。除错模组可以让程式设计师除错嵌入式系统中的软件
。边扫描测试是在20世纪80年代中期做为解决PCB物理访问问题的JTAG接口发展起来的,这样的问题是新的封装技术导致电路板装配日益拥挤所产生的。边界扫描在芯片级层次上嵌入测试电路,以形成全面的电路板级测试协议。利用边界扫描--自1990年以来的行业标准IEEE
1149.1--您甚至能够对最复杂的装配进行测试、调试和在系统设备编程,并且诊断出硬件问题。

通过提供对扫描链的IO的访问,可以消除或极大地减少对电路板上物理测试点的需要,这就会显著节约成本,因为电路板布局更简单、测试夹具更廉价、电路中的测试系统耗时更少、标准接口的使用增加、上市时间更快。除了可以进行电路板测试之外,边界扫描允许在PCB贴片之后,在电路板上对几乎所有类型的CPLD和闪存进行编程,无论尺寸或封装类型如何。在系统编程可通过降低设备处理、简化库存管理和在电路板生产线上集成编程步骤来节约成本并提高产量。

IEEE 1149.1标准规定了一个四线串行接口(第五条线是可选的),该接口称作测试访问端口(TAP),用于访问复杂的集成电路(IC),例如微处理器、DSP、ASIC和CPLD。除了TAP之外,混合IC也包含移位寄存器和状态机,以执行边界扫描功能。在TDI(测试数据输入)引线上输入到芯片中的数据存储在指令寄存器中或一个数据寄存器中。串行数据从TDO(测试数据输出)引线上离开芯片。边界扫描逻辑由TCK(测试时钟)上的信号计时,而且TMS(测试模式选择)信号驱动TAP控制器的状态。TRST(测试重置)是可选项。在PCB上可串行互连多个可兼容扫描功能的IC,形成一个或多个扫描链,每一个链都由其自己的TAP。每一个扫描链提供电气访问,从串行TAP接口到作为链的一部分的每一个IC上的每一个引线。在正常的操作过程中,IC执行其预定功能,就好像边界扫描电路不存在。但是,当为了进行测试或在系统编程而激活设备的扫描逻辑时,数据可以传送到IC中,并且使用串行接口从IC中读取出来。这样数据可以用来激活设备核心,将信号从设备引线发送到PCB上,读出PCB的输入引线并读出设备输出。

边界扫描(boundary scan)的更多相关文章

  1. 什么是边界扫描(boundary scan)?

    边界扫描(Boundary scan )是一项测试技术,是在传统的在线测试不在适应大规模,高集成电路测试的情况下而提出的,就是在IC设计的过程中在IC的内部逻辑和每个器件引脚间放置移位寄存器(shif ...

  2. IC 设计中DFT的Boundary Scan功能

    在很大规模的IC设计中,往往会有一些各种各样的bug出现,不论是在前期design的过程,还是在post silicon流片回来chip的flaw,都会导致chip的功能的失败,时钟频率无法达到期望频 ...

  3. scan & ATPG

    Testability用来表征一个manufactured design的quality. 将testability放在ASIC前端来做,成为DFT(Design For Test),用可控(cont ...

  4. JTAG 学习 -SVF格式

    yxr注: 主要zt,附上自己的心得如下: 1)反观SVF文件,除了设置必要的条件之外(初始条件和TIR等四条命令),真正的运行命令就两条,SIR向JTAG TAP状态机的IR寄存器送命令,SDR往J ...

  5. JTAG

    JTAG是JOINT TEST ACTION GROUP的简称,JTAG的两个标准IEEE 1149.1(2001)和IEEE 1149.7(2009). JTAG中主要包含两部分内容:TAP(TES ...

  6. ICT测试原理

    在线测试,ICT,In-Circuit Test,是通过对在线元器件的电性能及电气连接进行测试来检查生产制造缺陷及元器件不良的一种标准测试手段.它主要检查在线的单个元器件以及各电路网络的开.短路情况, ...

  7. 豹哥嵌入式好讲堂:ARM Cortex-M调试过程探析(1)- 4线接口标准(JTAG)

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式调试里的接口标准JTAG. 在结束<ARM Cortex-M开发文件详解>系列文章之后,豹哥修整了一小段时间,但是讲课的心 ...

  8. 痞子衡嵌入式:ARM Cortex-M调试那些事(1)- 4线协议标准(JTAG)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式调试里的接口标准JTAG. 在结束<ARM Cortex-M文件那些事>系列文章之后,痞子衡休整了一小段时间,但是讲课的 ...

  9. BSDL

    BSDL(边界扫描描述语言)文件是使用边界扫描进行电路板级和系统级测试与在系统编程所必需的. BSDL 文件是描述一个 IC 中的 IEEE 1149.1 或 JTAG 设计电子数据表,这些文件由 I ...

随机推荐

  1. java基础-day8

    第08天 常用API 今日内容介绍 u API概述 u Scanner类与String类 u StringBuilder类 第1章   API概述 1.1      API概念 API(Applica ...

  2. OpenGL中的渐变颜色绘图(应力可视化)

    #include <GL/glut.h> #include <iostream> #include <cmath> using namespace std; ; ; ...

  3. poj 2449 Remmarguts' Date【第K短路】

    题目 题意:求 点s 到 点t 的 第 k 短 路的距离: 估价函数=当前值+当前位置到终点的距离 f(n)=g(n)+h(n);     g(n)表示g当前从s到p所走的路径的长度,      h( ...

  4. hdu 3015

    这个题给你一堆树,每棵树的位置x和高度h都给你 f[i]代表这棵树的位置排名,s[i]代表这棵树的高度排名 问你任意两棵树的(f[i] - f[j])*min(s[i],s[j])和 (f[i]-f[ ...

  5. shell 命令 grep -v

    grep -v shell命令中,grep命令,是对文本行的搜索命令.grep -v就是反向文本行搜索. 当控制台输出很多时,有很多是我们不想看到的,就可以用到grep -v命令 举个栗子:ls -l ...

  6. verilog中defparam的用法 (verilog调用底层模块(只改变)参数的传递)

    当一个模块引用另外一个模块时,高层模块可以改变低层模块用parameter定义的参数值,改变低层模块的参数值可采用以下两种方式: 1)defparam 重定义参数 语法:defparam path_n ...

  7. 撸.NET Core的正确姿势

    特点 案例基于刚发布的.NET Core 2.1 只需一台Linux服务器搞定一切, 全程无需自己配置dotnet环境, 需要熟悉git docker基础知识可有可无, 过了下面几个步骤,你就已经入门 ...

  8. SQL 一对多联表查询最大值

    有两个数据表City表和Price表,CIty表的结构如下: Price表的结构如下: 查询每个城市最大的销售价格,并以最大价格进行降序排列,选取前5条记录,SQL语句的代码如下: * from (s ...

  9. ss的使用配置(电脑、手机FQ)

    注:FQ仅用于google查阅资料等,禁止违规违法行为 自己搭建ss服务 1.vps购买:https://www.alpharacks.com/holiday 按流程填完相关信息(Operating ...

  10. Liferay7 BPM门户开发之1:Liferay7开发环境准备

    liferay sdk下载 \IDE下载 \ Tomcat 安装细节不在此赘述 网上有很多. 只讲核心关键坑点 进入2016年,从Liferay6.2.5 ga6版本开始,到7.0 ga3,在ivy环 ...