2

我在通过 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 并且一切按预期工作时,我会从读取 ID 命令中获得下一张图片: Logic analyzer picture dump FPGA only in the chain

当我在一个链中拥有 TI AM5726 CPU 和 FPGA 时,我通过记录读取 ID 命令看到下一张图片: CPU 和 FPGA 连接在链中的 JTAG 转储图片

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

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

问题的潜在原因是什么?

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

4

0 回答 0