介绍
下列准则为使用XJTAG提高电路的可测性提供建议。这些准则不应该被视为规则。在可测性方面的潜在优势应与他们可能产生的其他影响一起考虑(例如,功能,设备成本和电路板面积)。
本文档的读者应该至少熟悉标准IEEE1149.1和1149.6。
1149.x一词在本文档中指的是IEEE1149.x(JTAG)边界扫描标准,JTAG器件是指实现JTAG边界扫描,并完全符合这些标准的器件,而非JTAG器件是那些不能实现JTAG边界扫描的器件。
指定和使用JTAG器件
XJTAG虽然能够测试JTAG器件和非JTAG器件之间的连接,为获得更大的覆盖范围,应尽可能使用JTAG器件。电路中的JTAG器件数量越多,可以充分测试的节点越多。
电容耦合的高速单端或差分信号,无法进行测试使用1149.1测试;可以用1149.6标准测试。为了使用该功能,重要的是要确保以这种方式进行测试的网路中的耦合电容的每一侧上的引脚都有1149.6功能。
检查JTAG器件的BSDL文件
要符合1149.x标准的要求,该器件必须有一个边界扫描描述语言(BSDL)文件。该文件描述了器件具体怎样实现1149.x. 请确保已取得该文件(通常直接从器件制造商的网站获取),并且已通过充分验证(BSDL语法检查是XJTAG的一个组成部分)。
确保1149.x链的正确设计和布局
JTAG设备可以有单个的连接器,以提供TAP信号的访问,然而,它们也可以被连接成一个“菊花链”格式从一个器件的TDO信号连接到下一个器件的TDI信号。
所有设备的TCK,TMS和(可选)nTRST信号必须并联连接在一个“菊花链”格式。重要的是nTRST信号没有直接连接到地,因为这将完全禁用JTAG,不仅对单个器件,还有完整的扫描链。
如果可能,TAP信号要远离其他积极的信号,以降低噪声和提高信号的完整性。串行JTAG接口通常会运行的时钟频率为10MHz到30MHz,差的布局可以导致难以确定的错误,并可能需要重新制板。
与电源或接地线分离TAP信号可以帮助诊断非正常运行的JTAG链上的问题,一个TAP信号短路到一个恒定的信号比两个TAP引脚短接在一起更容易诊断。
为所有TAP信号使用正确的终止
TCK应与一个68Ω的电阻和一个100pF的电容串联接地,尽可能接近信号进入测试链中的最后器件的位置。 TDI和TMS应该通过10kΩ上拉电阻接电源。 TDO应该通过一个10kΩ上拉电阻接电源,并在测试链最末器件附近串联一个22Ω电阻。此外,还建议为nTRST添加到一个10kΩ下拉电阻以避免浮动输入。
多个JTAG链
开发或编程过程中,可能有一些器件需要直接连接到其自己的接口,用于调试。添加选项把这些接口链接成一条测试链对制造测试有益,并同时在生产过程中降低BOM(物料清单)及处理成本。 XJTAG XJLink2的控制器可以连接多达四个JTAG接口板。
接口设计
在指定JTAG接口上信号位置时,考虑可能的串扰/干扰问题是重要的。积极信号与接地交错可将这些影响降至最低。如果在接口上可用的引脚数量使得这样做不切实际,则优先在TCK旁边的接地。如果这不可能,那么使用一个在JTAG扫描中不太可能改变的信号,如复位,nTRST。
特别重要的是,避免在任何TCK信号附近放置TDO。 TDO转换发生在TCK的下降沿,因此来自TDO的串扰可能在TCK上导致毛刺,破坏数据。
非常重要的是,在JTAG接口和被测板之间的有一个强大的接地连接。如果在JTAG接口上有任何备用引脚,那么添加额外的接地信号将是有益的。XJLink2有固定接地引脚10和20,所以连接这些会提高信号的完整性。
理想情况下,每一个新的设计将使用相同的接口类型和信号布局,使电缆可以被重用。
将TAP信号连接到其他接口的备用引脚可以访问即使未安装接口或无法访问到扫描链。
JTAG模式选择
在某些器件上的TAP引脚可以被配置为1149.x边界扫描以外的功能,所以重要的是,确保设计不会阻止器件被用于JTAG测试。通常这些引脚的功能配置是通过在将它是复位时采样该器件的其他引脚。根据不同的设计要求,此配置可以通过几种方法实现:
- 如果边界扫描是TAP引脚的唯一功能,配置引脚可以连接到所需的水平。
- 如果边界扫描是这些引脚占主导地位的功能,但可能需要其他功能,则可选合适的电阻通过对电路板的小改变配置引脚的高低变化。
- 如果需要能够简单的切换功能,配置信号可以被引出到外接接口。上拉或下拉电阻可以用来定义默认的状态,然后可以由控制器(如XJLink2)将其重写。
各种德州仪器的处理器上的EMU0和EMU1引脚是这样的配置引脚一个常见的例子,其他包括Freescale处理器的Mode引脚和AT91系列处理器JTAGSEL信号。
这些引脚所需的值在器件数据表/参考手册中定义,但他们可能也将显示在器件BSDL文件的COMPLIANCE_PATTERNS部分。
考虑时钟同步器件
许多同步器件可以通过边界扫描测试,但是这将依赖于时钟源。例如,SDRAM,只能在时钟由1149.x兼容器件控制时测试。如果一个自由运行的时钟直接连接到SDRAM,那么将无法使边界扫描测试向量与该时钟实时同步。
如果有一个可配置的JTAG器件,如CPLD或FPGA,那么将时钟源通过该器件连接到SDRAM或时钟缓冲器,以最大限度地提高测试覆盖范围,如下所示。
同样重要的是确保任何时钟缓冲器没有最小工作频率。一些时钟缓冲器具有一个特殊的控制输入,以允许低频信号。这样的信号必须从JTAG启用引脚访问。
其他设备,如以太网PHY和交换机,需要一个特定频率的时钟输入来工作。在这些情况下,重要的是,确保系统时钟不是1149.x的使能引脚提供的。晶体或振荡器应该被连接到不兼容器件,可以直接或通过一个时钟缓冲器。
当不可能使用边界扫描与非兼容器件在该速度互动;提供一个合适的时钟往往会允许一定程度的测试,否则不会有可能。
考虑看门狗操作
提供链接或1149.x可控的逻辑,以确保在测试过程中,可以禁用看门狗操作。在测试过程中看门狗未收到定期输入使复位事件时产生,会产生意想不到的测试结果甚至阻止测试完成。
测试与未配置的FPGA和CPLD
可编程器件如FPGA和CPLD具有高比例的I / O信号,有理想的高度测试覆盖率。然而,当这些设备被配置后许多信号并不提供充分作为输入或输出的I / O功能,在不需要的应用程序中 “关闭”。利用边界扫描不会重新启用此功能,所以测试覆盖率降低。
有一个应用笔记在XJTAG网站上描述测试含有这些类型的设备测试板的最佳策略。
确保TAP信号之间低偏移
正确的操作以保证TAP信号之间的低偏移是很重要的。特别是TCK和TMS线路长度和缓冲延迟,应尽可能保持相等。
提供访问以帮助定位扫描链错误
允许在一个器件的TDO信号和下一个器件的TDI信号之间的物理访问将易于识别造成扫描链非正常运作的器件。这可以通过加入串联终端电阻或一个测试点来实现。
TAP信号缓冲和电压等级分离
如果可能的话,缓冲初级TAP信号,以减少噪音和阻抗不匹配,并提高扇出。一般来说,如果线路长度相对较短,那么可以扇出4-6个器件,而较长的线路应该只扇出1或2的器件。确保TCK,TDI,TMS和nTRST在板输入缓冲,TDO在板输出缓冲。重要的是要确保缓冲器非反相。
如果有工作在不同电压的边界扫描器件,那么最好将这些器件分离在相同的电压电平操作的测试链。或者对设备进行分组,把相同电压的器件放在一起组成菊花链,例如3.3V,然后通过电压转换器连接到下一个电压的设备,例如相应地调整信号3.3V至1.8V。
如果不可能缓冲电压域之间的TAP信号,则设计允许降低电压的JTAG链,例如,从3.3V信号到2.5V(例如使用电阻分压器),因为这比升高电压容易得多。
重要的是,任何缓冲的信号都要加如前面所描述的终端。 TCK输入到缓冲区需要在靠近缓冲器处加终端,而任何缓冲器的输出需要在靠近最后一个器件处加并行端接。任何缓冲的TDO信号应该有串联终端靠近驱动器。
旁路任选安装的1149.x兼容器件
电路板上可选安装的JTAG器件,需要确保一个通常为0Ω电阻的链路,在该设备没有安装时保持TAP数据链的完整。
如果不这样做,则断裂的扫描链中的数据路径,将阻止任何被使用在该链中的任何其他器件的测试。如果一个器件有可能未被安装,那么考虑将其放置在一个单独的扫描链上。
在1149.x链中包括可选的附加板
在使用子板时,通过子板的接口将子板上的器件接到1149.x链中。如果子板是一个可选项,那么在未安装子板时,使用一些电路板检测逻辑绕过子板上的TAP数据路径,如下图所示。
如果ASIC的设计或定制包括1149.x兼容
如果您的设计包括ASIC或任何其他自定义设计的硅片,你应该考虑使自定义设备1149.x兼容,因为它们可能是不可测试的。
从1149.x链访问可编程器件
如果需要在系统编程中的设备,如闪存或EEPROM,应使可编程器件的所有必要的引脚可从从JTAG器件访问。
基于边界扫描的在系统编程时间将取决于扫描链的长度和TCK频率。对于最短的基于边界扫描的编程时间,TCK时钟频率必须尽可能高而扫描链尽可能短。
最好以使一个JTAG器件的所有必需的节点可以被访问 ,XJTAG将自动优化编程过程,把所有不需要特定扫描的JTAG器件设置为称为CLAMP的模式,这样每个器件的数据扫描链缩短到仅一位。
建议避免地址锁存配置,因为这会增加每个字节/字写入的扫描次数,这将显着增加编程时间。
提供编程信号的直接访问
要进一步优化编程时间可以通过直接控制编程信号,如写使能,或整个协议,如SPI和IIC。把相关的信号连接到电路板接口上,这样能用JTAG控制器的备用I/ O引脚控制,而不需通过边界扫描控制。这将有助于减少编程时间,因为经常需要改变的信号,通常需要两个完整的扫描,可以被切换,但不依赖于链长和频率。
要使用此功能,它必须能够禁用这些网络上的任何边界扫描驱动。
JTAG器件环绕逻辑集群
用JTAG器件环绕非JTAG逻辑器件集群可以控制集群的所有输入和监控集群的所有输出。尝试确保在集群内有足够的访问节点以尽可能充分地进行测试集群的运行。如有必要,添加额外的JTAG连接,以获得所需的群集节点。或者,将逻辑系统放入支持边界扫描的可编程逻辑器件中或许更好。
通过接口扩展1149.x测试
如果额外的可访问的1149.x信号可以连接到外部接口上,测试覆盖率会大大增加。如果连接到外部1149.x可控的I / O,如XJIO板, 直接连接到单个1149.x引脚的信号网的接口引脚的测试可以扩展包括开路测试。
这种形式的测试只能用于标准的数字信号。在这种测试不可能时,像以太网和RS485信号,设计I / O端口以使用回环。
考虑将多板作为一个单元测试
一个单一的面板由多个电路板组成时,考虑将电源和TAP信号路由通过面板上的所有电路板,可在分离电路板之前同步测试所有的部分。
测试模拟电路
1149.1和1149.6虽然不包括任何明确的功能对模拟电路进行测试,许多测试可以进行精心的设计。考虑连接使用1149.x兼容输出将比较器或放大器输入状态固定,并使用这些设备已知输出为JTAG器件提供输入。低成本的DAC和ADC可以提供补充控制,以通过边界扫描链上的ADC和DAC器件数字侧的连接,监测模拟集群。使用少量的适当的附加电路,大量的模拟测试可以被执行。
不要依赖于可编程上拉电阻
尽量不要使用在一些处理器和FPGA的I / O焊盘中提供的可编程的上拉,使用外部逻辑来操作。如果需要的IIC总线上拉只能由可编程的上拉提供,那么IIC总线连接到任何设备可能无法通过边界扫描可测试。如果这是无法避免的,那么IIC总线引脚在外部连接器,以便用于测试目的,可以添加外部上拉。
考虑使用边界扫描器件的功能
每个电路总是会有某些部分不能使用标准的1149.x技术测试,而设计的其他部分可能需要正常速度测试。在这些情况下,可以将程序装入JTAG链上的器件来测试电路板的功能。
可配置的器件,如CPLD和FPGA可以通过运行SVF或STAPL文件对其编程。对于处理器可以使用XJTAG的编程语言XJEase的灵活性来加载配置。
使用非1149.x器件的测试功能
一些非1149.x器件具有专用的测试功能,可用于提高测试覆盖率。这些功能,如NAND树或生成测试模式,可对与不能使用边界扫描测试的器件连接的信号,与器件功能进行交互。它们可以通过控制边界扫描接口,如SPI,IIC和MDIO,写入寄存器调用程序 。
交互测试
一些测试只能在测试操作员的帮助下完成。视觉设备可以通过操作员观察它们的功能并输入结果测试; 开关可以通过一个JTAG器件监控开关的状态,而由操作员驱动。其它设备,如步进电机控制器和扬声器系统也可以以类似的方式进行测试。
编写非易失性存储器
XJTAG可用于对许多器件编程,例如串行和并行接口的NOR和NAND闪存。这对加载应用程序的图像或存储配置选项,序列号,以太网MAC地址等,作为测试程序的一部分,是非常有用的。
快速闪存编程
通过边界扫描电路编程闪存设器件会很慢,因为每个JTAG扫描只能使每个信号切换一次,每次扫描可以是几千位长。这个问题的一个解决方案是使用辅助FPGA或辅助处理器编程的例程。这些例程首先为FPGA或处理器加载控制闪存编程的引擎。然后,使用该JTAG端口将数据传送到编程引擎。
FPGA辅助编程可以使用XJTAG XJFlash技术实现。其结果是,闪存器件编程可以接近其理论上的最大速度。如果您的设计包含了闪存设备没有连接到FPGA,但设计有备用的FPGA引脚,那么将些额外的引脚连接到闪存设备能获得XJFlash的灵活性使用。
处理器辅助编程,比XJFlash慢,速度仍然明显的比使用边界扫描快。许多处理器调试接口使用JTAG作为他们的通信协议。这样的处理器可以通过JTAG配置使用其闪存控制器将图像编程到闪存中。
有关实现快速闪存编程的更多信息,请联系support@xjtag.com.
词汇表
ADC | 模拟数字转换器(Analog to Digital Converter) |
ASIC | 特殊應用積體電路(Application Specific Integrated Circuit) |
BSDL | Boundary Scan Description Language |
CPLD | 複雜可程式邏輯裝置(Complex Programmable Logic Device) |
DAC | 数字模拟转换器(Digital to Analog Converter) |
DFT | 可测试性设计(Design for Testability) |
EEPROM | 電子抹除式可複寫唯讀記憶體(Electrically Erasable Programmable Read Only Memory) |
FPGA | 現場可编程逻辑閘阵列(Field Programmable Gate Array) |
IEEE | 電機電子工程師學會(Institute of Electrical and Electronics Engineers) |
1149.1 | IEEE Standard 1149.x: 1149.1: Test Access Port and boundary scan architecture 1149.6: AC coupled and differential signals (see www.ieee.org) |
IIC | Inter-Integrated Circuit (I2C) |
I/O | 输入/输出(Input / Output) |
JTAG | 联合测试工作组(Joint Test Action Group) |
NTRST | Test Reset (Active low TAP Signal) |
PCB | 印刷电路板(Printed Circuit Board) |
STAPL | Standard Test And Programming Language |
SVF | Serial Vector Format |
TAP | Test Access Port (the 4- or 5-wire interface to a boundary scan device) |
TCK | Test Clock (TAP Signal) |
TDI | Test Data Input (TAP signal) |
TDO | Test Data Output (TAP Signal) |
TMS | Test Mode Select (TAP Signal) |
XJTAG | A suite of tools aiding the development and test of electronic systems |