JTAG编程Xilinx Spartan 3an FPGA,链中带有CPU

时间:2017-07-20 14:29:39

标签: xilinx xilinx-ise jtag spartan

我在通过JTAG接口编程Xilinx 3an1400 FPGA时遇到了问题。

我的定制PCB由连接在JTAG链中的CPU和FPGA组成,CPU位于第一位,FPGA位于第二位。我可以通过JTAG访问和编程CPU而没有任何问题。当FPGA独立于JTAG链时,其编程也是成功的。

仅当FPGA和CPU在一个链中时才存在问题。识别链中设备的数量看起来没问题。 Xilinx Impact工具可识别两个器件,但在尝试在FPGA上执行读取ID命令时出现错误。

我试图将JTAG频率降低到750Khz但没有成功。我收到了消息:

INFO:iMPACT:583 - '2': The idcode read from the device does not match the idcode in the bsdl File.
INFO:iMPACT:1578 - '2':  Device IDCODE :        00001111111111111111111111111110
INFO:iMPACT:1579 - '2': Expected IDCODE:    00000010011000110000000010010011

我连接逻辑分析并获取信号转储。 当只连接FPGA并且一切都按预期工作时,我从read ID命令获取下一张图片: Logic analyzer picture dump FPGA only in the chain

当我在一个链中使用TI AM5726 CPU和FPGA时,我通过记录读取ID命令看到下一张图: Picture of the JTAG dump with CPU and FPGA connected in the chain

应该绕过CPU,因为已经发送了6个(CPU IR寄存器的长度),并且读取ID命令看起来与前一个示例(001001)相同,但是该命令的响应不是预期的。

可能CPU不在旁路中并且以某种方式打破了TDO信号,但是从发送模式来看,它应该是。 我还用示波器检查了信号的形式,看起来还不错。

问题的潜在原因是什么?

当我在Impact工具的启动时运行“Initialize chain”命令时,它检测到第二个设备是Spartan 3AN1400,所以我认为它必须以某种方式在初始化期间执行读取ID操作。

0 个答案:

没有答案