编程语言及工具
BSDL边界扫描语言的边界扫描是一个完善的测试技术。 边界扫描在自当联合测试行动组(JTAG)90年代初发明了一种解决方案来测试使用了许多新的印刷电路,正在开发和制造的地方几乎没有或根本没有测试探针板的物理访问。 一旦边界扫描成立后,下一步是制定一个标准的芯片供应商的模型边界扫描设备,工具供应商开发自动化工具,以及为最终用户创建的边界扫描测试的建模语言。 因此,边界扫描描述语言(BSDL)已建立。
BSDL是边界扫描设备的标准建模语言。 它的语法是一个VHDL的子集,它符合IEEE 1149.1-2001的规定。 它是由使用边界扫描测试开发人员,设备模拟器,半导体测试仪,电路板级测试,任何人利用边界扫描。 使用的的BSDL促进整个电子行业的一致性。 此外,它使任何边界扫描中的一个有用的,可以理解的,一致的方式和设备的功能规范。
BSDL走出了边界扫描测试哲学的发展。 最初的IEEE 1149.1-1990标准的(见[符合IEEE 1149.1(JTAG接口)])标准描述的边界扫描并于1990年批准发布,并作为结果,使用边界扫描技术开始增长。 该标准的下一次修订在1993年发生。 在1994年进一步修订纳入了IEEE 1149.1-1994标准的BSDL。
什么是的BSDL?
边界扫描描述语言使用户能够提供的方式,边界扫描在任何特定的设备实施的说明。 由于每个芯片设计趋于应用边界扫描方式略有不同标准,这是一个需要理解的表达,具体和实用的方式测试。是书面的BSDL在VHDL的子集。 VHDL语言是常用的一种为FPGA和ASIC设计输入的数字电路电子设计自动化的语言,因此它是与边界因为许多芯片设计扫描是用这种语言进行工作相适应的。 但是的BSDL是一个“子集和标准做法”的VHDL,即VHDL语言的范围,从而对边界扫描应用受到限制。
设计过程中的BSDL有两种语言的主要标准:
BDSL使设备的使用边界扫描功能,准确和有用的说明。 BSDL文件是所使用的边界扫描工具,使设备的使用功能,使任何测试性分析测试程序生成,?故障诊断,以及使用。 的BSDL不是一个可以用硬件描述语言,相反,它是用来定义设备的数据传输的特点,即它是如何捕获,转变和更新扫描数据。 这才是用于定义测试能力。
BSDL文件包括以下数据:
实体声明 :本实体声明是一个VHDL构造,是用来识别文件名 的BSDL设备所描述的。
泛型参数 :通用参数是指定哪个区段包描述。
逻辑端口说明 :这说明列出了设备的所有连接。 它定义它的基本属性,即是否连接输入(以位;),输出(OUT位;),双向(inout的位;),或者如果它是不可用的边界扫描(连锁位;)。
封装引脚映射 :包引脚映射被用于确定一个集成电路的内部连接范围内。 它详细介绍了如何在设备上的垫片裸片连接到外部引脚。
USE语句 :这句话是用来调用BSDL文件VHDL语言包,该数据包含在所引用。
扫描端口标识 :扫描端口标识识别引脚的JTAG执行工作/这是用于边界扫描。 这些措施包括:TDI的,商品说明条例,训练管理系统,TCK和TRST的(如果使用)。
测试访问端口(TAP)说明 :本实体提供设备的其他信息的边界扫描和JTAG逻辑。 这些数据包括指令寄存器的长度,指令操作码,设备的IDCODE等。
边界寄存器描述 :这说明提供器件结构的边界扫描单元上。 每个器件引脚上最多可以有三个边界扫描单元,每个单元格组成的一个寄存器锁存器和一个。
BSDL怎样使用?
当电路板的设计,边界扫描兼容设备被组织成“链”。 扫描链构成了板级和系统级的测试,可以检测和诊断引脚层次的结构性缺陷,如开路和短路的基础。 自动化工具用于生成测试方案或议会的程序。 最重要的投入,这个过程是边界扫描功能的设备的BSDL文件,以及网表描述板之间的互连的设备。 生成的测试程序,当应用到目标板,报告的结构测试失败,可以用来帮助板维修。
有些工具能够使用边界扫描创造集群的组件包括非边界扫描兼容设备的测试模式,和其他工具可以生成测试模式,一个板上处理器可以运行,以便能够在高速功能测试。 这些测试应用程序独立或与其他测试技术,如在电路,结合测试(ICT)的,具有生产以最低的成本最优的测试覆盖的总体目标和最短的测试开发时间。
边界扫描语言的BSDL,被广泛用于在IEEE 1149.1 / JTAG的社会使一致,准确和有用的资料供边界扫描功能的设备定义。 通过这种方式,该芯片可以被纳入一个设计,它的功能用在最有效的方式充分。
边界扫描器件BSDL描述在测试中的应用
1、引言
“边界扫描”是一种可测性设计技术,即在电子系统的设计阶段就考虑其测试问题[1]。
BSDL(boundary scan des cription language) 语言硬件描述语言(VHDL)的一个子集,是对边界扫描器件的边界扫描特性的描述,主要用来沟通边界扫描器件厂商、用户与测试工具之间的联系,其应用包括:厂商将BSDL描述作为边界扫描器件的一部分提供给用户;BSDL描述为自动测试图形生成(ATPG)工具测试特定的电路板提供相关信息;在BSDL 的支持下生成由IEEE1149.1标准定义的测试逻辑 [2]。现在,BSDL语言已经正式成为IEEE1149.1标准文件的附件。BSDL本身不是一种通用的硬件描述语言,但它可与软件工具结合起来用于测试生成、结果分析和故障诊断。每一边界扫描器件都附有特定的BSDL描述文件,为了论述的方便,本文将以Altera公司的CPLD器件 EPM7128SL84 芯片为例说明BSDL描述在测试中的应用。
2、EPM7128SL84芯片的BSDL描述
该器件采用了先进的CMOS EEPROM制造工艺,共有84个引脚,其中包括四个JTAG测试引脚 TDI、TMS、TCK和TDO,通过标准JTAG测试接口它还可以支持在系统可编程(ISP)。下面首先讨论EPM7128SL84的BSDL描述中与应用相关的各基本元素。
2.1 TAP描述
TAP描述说明与TAP控制器相关的特性。TAP 控制器包括4个或5个控制信号,一个用户定义的指令集(在IEEE1149.1标准规定范围内)和一些可选择的数据寄存器。EPM7128SL84的 TAP描述有:
(1)attribute INSTRUCTION_LENGTH of EPM7128SL84:entity is 10;
指令长度(INSTRUCTION_LENGTH)属性定义了所有操作码的长度必须为10位。
(2)attribute INSTRUCTION_OPCODE of EPM7128SL84:entity is
“BYPASS (1111111111), ”&
“EXTEST (0000000000),”&
“SAMPLE (0001010101),”&
“IDCODE (0001011001)”;
指令操作码(INSTRUCTION_OPCODE)属性指出器件所支持的指令的二进制代码,如器件标志代码指令IDCODE的位图形为“0001011001” ,所有字串中最右边的位最靠近TDO。根据1149.1标准,旁路、外部测试和采样指令是强制性的,且旁路指令BYPASS为全“1”串,外部测试 EXTEST指令为全“0”串。
(3)attribute INSTRUCTION_CAPTURE of EPM7128SL84:entity is “0101010101”;
指令捕获(INSTRUCTION_CAPTURE)属性说明,当 TAP控制器处于捕获指令寄存(Capture-IR)状态时,位图形“0101010101”被装入指令寄存器的移位寄存器部分,当送入新指令时,此位图形被移出,IEEE 1149.1标准规定其最低两位为“01”,其余位由厂商自行定义,这样可以保证通过Capture信号可以检测到扫描链上固定为“0”和固定为“1”的故障。
(4)attribute IDCODE_REGISTER of EPM7128SL84:entity is
“0000”&“0111000100101000”&“00001101110”&“1”;
标志寄存器属性描述芯片内置在标志寄存器里的芯片ID码。IEEE 1149.1标准规定芯片ID码为32位,最右边的一位是最靠近TDO的。如图1所示,标志寄存器的LSB是IEEE 1149.1标准强制为“1”的最低位,表示器件标志寄存器的存在;第1位至11 位是厂商代码号“01110110000”,这个代码表示Altera公司;第12位至27位是芯片型号 “0001010010001110”,即十六进制“7128”(从右至左);第28位至31位是芯片版本号“0000” [2]。
2.2 边界扫描寄存器描述
这是BSDL整体结构的最重要部分,它描述了边界扫描单元(BSC)的长度及每个BSC的单元号与属性。
(1)attribute BOUNDARY_LENGTH of EPM7128SL84:entity is 288;
边界扫描长度属性表示EPM7128SL84 芯片共有 288个边界扫描单元。
(2)attribute BOUNDARY_REGISTER of EPM7128SL84:entity is
--num(cell, port, function, safe [ccell, disval, rstl])
“0 (BC_4, IN84, input, X),” &
“1 (BC_4, *, internal, X),” &
“2 (BC_4, *, internal, X),” &
……
“144 (BC_4, IO41, input, X),” &
“145 (BC_1, *, control, 0),” &
“146 (BC_1, IO41, output3, X, 145, 0, Z),” &
……
“279 (BC_4, IO4, input, X),” &
“280 (BC_1, *, control, 0),” &
“281 (BC_1, IO4, output3, X, 280, 0, Z),” &
……
“285 (BC_4, IN1, input, X),” &
“286 (BC_4, *, internal, X),” &
“287 (BC_4, *, internal, X)”;
对边界扫描寄存器单元(BSC)属性的描述由单元号与4个或7个圆括号内的数据子段组成,这些BSC的排列顺序可以是任意的,但每个单元都必须被定义。单元号从0到287 (BOUNDARY_LENGTH-1)进行编号,0单元是最靠近TDO的单元。括号中数据子段的名称为: cell, port, function, safe [ccell, disval, rstl],后三个方括号内的可选子段只有在function子段的值为 out put3或bidir时才被定义。它们的含义如下:
· 单元子段:确定器件所使用的边界扫描单元。EPM7128SL84芯片采用的BSC类型为标准单元 BC_1与BC_4,其属性已经在VHDL组件STD_1149_1_1994中加以定义;
· 通道子段:说明与对应BSC相连的系统管脚。其名称与BSDL“logical port des cription”属性中描述的管脚逻辑名称相一致。“*”表示此BSC 为输出控制单元或内部单元;
·功能子段:表示该BSC的主要功能。EPM7128SL84芯片BSC所涉及的功能有“input”、 “control”,“output3”和“internal”4种;
input:表示一个简单的实现输入管脚接收的 BSC;
control:表示一个进行输出使能控制,或输出驱动与双向管脚的单元方向控制的BSC;
output3:表示一个为三态输出提供数据的 BSC;
internal:表示一个用于捕获系统内部逻辑的 BSC,它不与任何系统管脚相连;
·安全子段:当ATPG软件提供一个额外随机值时,safe子段定义了一个要装入捕获寄存器CAP 与更新寄存器UPD(如果存在的话)的值,以防止系统逻辑因为过激励信号等原因造成的错误连接。这个值可以是“0”,“1”或“X”。“X”表示 “0”,“1”均可;
·控制单元子段:说明对功能为output3或bidir的BSC进行输出使能控制的控制单元号;
· 无效值子段:为禁用对应的系统管脚,要给由ccell子段指定的控制单元赋的值;
· 无效状态子段:给出被禁用驱动器的状态。这个状态可以是高阻态(Z)、弱“1”态(weak1)或弱“0”态(weak0)[2]。
EPM7128SL84 芯片的管脚与边界扫描单元如图2所示,与输入输出管脚IO41相对应的三个BSC单元号分别为144,145和146。
3、BSDL描述语言的实际应用
3.1 TAP完整性测试
指令捕获(INSTRUCTION_CAPTURE)属性提供了测试TAP完整性的一条途径。TAP完整性测试可以检测时钟TCK和模式选择TMS的输入端连接是否正确,所提供的有关信号是否正常;数据输入TDI 和数据输出TDO端的连接是否正确,且输入和输出的功能是否正常;内部的指令寄存器工作是否正常;内部的边界扫描寄存器工作是否正常。TAP完整性测试是进行边界扫描其他任何测试之前建议首先进行的测试操作,以确保边界扫描链能正常工作。
TAP完整性测试的过程如图3所示。在TAP的 Shift-IR状态,指令捕获位图形已加载至指令寄存器的移位寄存器部分,直接从TDO移出数据并与各芯片的Capture位图形比较,若数据一致则 TAP完整性测试通过。
3.2 芯片ID码的检测
芯片ID码是识别芯片的内建器件标识码,通过检测芯片ID码可以识别该芯片,判断芯片装配正确与否,并可进一步判断芯片的型号、生产厂家及版本号与其标识是否相符,辨别芯片的真伪。当TAP进入Test-Logic-Reset状态时,若标志寄存器存在,则被强制接入TDI与TDO之间,寄存器LSB的值为“1”,否则,旁路寄存器被接入TDI与TDO之间,寄存器的值为“0”。所以,在检测芯片标志寄存器的值时,可以由复位状态直接进入移位数据状态,输出TDO的值,并判断其第一位是否为“1”,若是,则此芯片有标准寄存器存在,可继续移出其他31位,并进行判断与显示。检测流程如图4所示。我们在对芯片EPM7128SL84进行ID标识码检测时,用逻辑分析仪采集到的TDO端的输出波形如图5所示,与BSDL描述中的ID码一致,说明器件正确。
3.3 边界扫描互连测试
我们在开发边界扫描测试软件过程中,设计制作了基于边界扫描机制的试验电路板当作诊断实验对象。其中两块 EPM7128SL84芯片间的有16个互连网络,分别是两芯片的4~12管脚之间、33~41管脚之间的互连(除去7脚地线,38脚电源线)。在进行互连测试时,首先要构造一个16×16的测试矩阵,然后将此矩阵的16个列向量分别加载到芯片1的IO4~ IO12,IO33~IO41管脚(除去7脚和38脚),然后执行外部测试指令。由芯片2捕获对应管脚上的信号,形成响应向量,全部16个列向量分别加载捕获完成后,再对响应矩阵进行故障诊断 [3],如图6所示。在此测试过程中,对芯片1的IO管脚加载的向量数据必须定位到每个管脚对应的三态输出单元,即芯片1的 281,278,275,269,263,260, 257,251,179,173,167,164,161,155,149,146单元;而芯片2所捕获的对应管脚上的信号,在执行采样指令之后,都被置入每个管脚对应的输入单元,即芯片2的279,276,273,267, 261,258,255,249,177,171,165,162,159,153,147,144单元。这样,从TDO输出的对应单元的数据就组成了响应矩阵,对响应矩阵按照一定的算法进行分析,便可检测出呆滞、短路、开路与桥接故障。
4、结束语
以上所述测试流程均用C++ Builder编程实现,能对基于边界扫描机制的试验电路板进行准确、可靠的测试。试验证明,在边界扫描各项测试中,对BSDL描述信息进行有效的编译提取,对测试的成功实现至关重要。但器件的BSDL描述必须严谨、确切,所以,在下一步的软件完善中,将加入BSDL 文件的数据完整性检查,以防止错误数据损坏被测对象。
全部0条评论
快来发表一下你的评论吧 !