JTAG链的调试

分享
标签: JTAG  菊花链  IDCODE  bsdl  Xilinx  分类: 专业知识 2007-06-12 13:13

昨天用公司的板子,想用JTAG访问下其中的FPGA。因为公司做的板子,是ARM与FPGA形成的菊花链,结果到了ISE中就读成这样:

虽然这样是意料之中的,但想要program FPGA,总会报错:

ERROR:iMPACT:477 - The bsdl for device 'UNKNOWN' is out of date. Please check your installation.
ERROR:iMPACT:583 - '2': The idcode read from the device does not match the idcode in the bsdl File.
INFO:iMPACT:1578 - '2':  Device IDCODE :        00000001011100100101001101000001
INFO:iMPACT:1579 - '2': Expected IDCODE:    00000001010001000000000010010011
ERROR:iMPACT:477 - The bsdl for device 'UNKNOWN' is out of date. Please check your installation.

以前也碰到过IDCODE的错误,但那好象是因为JTAG下载线出问题了。这次,下载线应该没问题。所以,自然就想到,会不会是因为中间串了一个ARM,ISE不认识导致错误呢。在网上搜了下,没有啥相关的文章,于是干脆就email给了Xilinx的技术支持。

今天早上接到了Xilinx的电话。Engineer说,是因为ISE不识别ARM,无法确定UNKNOWN芯片的JTAG寄存器是几位的,因此无法正确的BYPASS。解决方法很简单,就是从相关网站上download那个芯片的bsdl,然后assign new configure file进去就可以了。这样ISE就可以跳过UNKNOWN芯片的JTAG,访问FPGA了。

尝试一下,果然如此。成功解决。呵呵。

BTW,要表扬下Xilinx的技术支持,几次找他们,反应都很迅速,态度也不错。呵呵,赞一个。

<think> 首先,用户的问题是关于“JTAG的定义”。我需要参考提供的站内引用内容来回答这个问题。系统指令要求:所有行内数学表达式使用$...$格式,独立公式使用$$...$$格式,但这里涉及的是JTAG技术定义,可能不需要数学表达式。所以,我专注于文本回答。 关键点:用户询问“JTAG的定义”。从引用中,我可以提取相关信息: - 引用[1]提到:“JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG,能实现对各个器件分别测试。” [^1] - 引用[3]提到JTAG接口的工作原理,但没有直接定义JTAG。 - 引用[4]间接涉及控制多个IC。 - 引用[5]讨论引脚定义,提到了JTAG的可能性。 主要定义来自引用[1]:JTAG是多个器件通过JTAG接口串联连接,形成一个,以便分别测试每个器件。 我的回答结构: 1. **结构化清晰**:帮助用户逐步理解。 2. **使用中文**:系统要求用中文回答。 3. **引用标识**:在引用的段落末尾自然地添加引用标识,例如[^1]。我需要确保引用准确。 4. **相关内容**:基于引用,解释JTAG的定义、工作原理和优点。 5. **生成相关问题**:在回答结束时,生成相关的问题,以鼓励进一步学习。 回答大纲: - 开头:直接回答JTAG的定义。 - 主体:解释如何工作、为什么使用它、优点等,基于引用。 - 结尾:生成相关问题。 生成相关问题: - 系统指令说:“生成相关问题”,我应该基于回答生成2-3个相关问题。 - 例如:JTAG的实现方式?JTAG的应用场景?优化JTAG的方法? 确保回答真实可靠:只基于提供的引用内容。 完整回答结构: 1. 引言:定义JTAG。 2. 详细解释:工作方式、组件、好处。 3. 引用:自然地添加引用标识。 4. 相关问题:结束部分。 现在,组织内容: - JTAG定义:多个JTAG兼容器件通过接口串联连接,形成一个,允许通过单一JTAG端口访问和测试每个器件。[^1] - 工作方式:引用[3]提到TAP端口和扫描,扫描单元对应外部管脚,扫描寄存器连在一起形成扫描。[^3] - 好处:提高测试效率,减少引脚数量,支持在线编程等。 - 标准引脚:引用[5]提到TMS、TCK、TDI、TDO等。[^5] 相关问题: 1. JTAG如何配置和控制? 2. JTAG在系统测试中的具体应用有哪些? 3. 如何优化JTAG以提高测试速度? 最后,确保回答用中文。 </think> ### JTAG的定义 JTAGJTAG Chain)是一种通过JTAG接口将多个支持JTAG协议的器件(如处理器、FPGA、DSP等)串联连接的结构。它允许开发人员通过单一JTAG端口访问上的所有器件,实现高效的测试、调试或编程操作。[^1] JTAG的核心目的是简化和加速多器件系统的检测过程,例如在电路板上测试连接性或执行在线编程(ISP)。[^3] #### JTAG的工作原理 1. **串联连接方式**:多个器件通过JTAG标准引脚(如TDI、TDO、TMS和TCK)依次连接。具体来说: - 第一个器件的TDO引脚连接到下一个器件的TDI引脚。 - TCK(时钟信号)和TMS(模式选择信号)并行连接到所有器件。 - 数据通过TDI(数据输入)串行进入中的第一个器件,处理后再通过TDO(数据输出)传递给下一个器件,形成一条“扫描”。[^1][^3] 2. **基于扫描的测试**:每个器件的内部扫描寄存器(Boundary Scan Register, BSR)单元对应于外部管脚。这些BSR单元串联在一起,形成一个全局扫描。当PC通过JTAG调试器发送指令时,数据沿着扫描传输,允许开发人员读取或写入各个器件的状态。[^3][^5] 3. **控制机制**:上的所有器件共享同一个TAP(Test Access Port)控制器。通过TMS信号选择操作模式(如测试或编程),开发人员可以分别控制每个器件,而不必单独连接每个IC引脚。[^1][^4] #### JTAG的优点 - **高效测试**:在电路板测试中,JTAG能一次性检测多个器件的连接性和功能,避免传统点对点测试的繁琐,提高故障诊断效率。[^1][^4] - **简化设计**:减少外部测试引脚数量,降低硬件复杂度。例如,一个JTAG只需4线(TMS、TCK、TDI、TDO)即可控制数十个器件。[^5] - **灵活编程**:支持在线编程(ISP),开发者可以在器件焊接后直接更新固件(如Flash芯片),加速生产流程。[^1] - **扩展性强**:的长度可自由调整,支持添加或移除器件,适用于复杂嵌入式系统。[^3] 总之,JTAGJTAG协议的核心应用,它通过串联扫描寄存器实现对多器件的并行访问,广泛应用于电子制造和开发中。[^1][^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值