我有一个JTAG链,可连接使用ISE iMPACT编程的4个Spartan 6 FPGA。该软件可以成功地以任何顺序连续编程4个FPGA的任何严格子集。但是,当我尝试对所有四个 FPGA 进行编程时,最后一个FPGA的DONE引脚不会变高,并且编程失败。
是什么导致这种奇怪的行为?
笔记:
- 对三个FPGA进行编程后,尽管INIT_B引脚为高电平,第四个FPGA的状态寄存器的INIT_B位为0。在对第三个FPGA进行编程之前,该位为1。这表明第四个FPGA已锁定。
- 使用SelectMap进行编程时,我可以毫无问题地对所有四个FPGA进行编程。
- 当我使用SelectMap对三个FPGA进行编程时,仍然不能使用JTAG对第四个FPGA进行编程。
- 四个完成的引脚中的每一个都通过4.7K欧姆电阻上拉至3V3,然后绑在一起。
我尝试过的事情:
从链中断开一个FPGA的连接,可以对其余3个FPGA进行编程。
将最后一个FPGA的4.7K Ohm上拉电阻换成330 Ohm电阻并不能解决问题。
"If the Spartan-6 device is configured via JTAG, the configuration instructions occur independent from the mode pins."
DONE
销钉会绑在一起。对于JTAG,多设备编程称为边界扫描链。在Chapter 3: Boundary-Scan and JTAG Configuration
中,只提了的DONE
管脚"If JTAG is the only configuration mode, then PROGRAM_B, INIT_B, and DONE can be tied High to a 330 resistor."
所以是DONE
引脚为低电平,唯一的问题?它编程正确吗?
"The first device in a serial daisy chain is the last to be configured."
是您是指链中的最后一个还是要配置的最后一个(链中的第一个)?您能提供示意图吗?