我有一个连接 4 个 Spartan 6 FPGA 的 JTAG 链,我使用 ISE iMPACT 进行编程。该软件可以连续成功地以任何顺序对 4 个 FPGA 的任何严格子集进行编程。但是,当我尝试对所有四个FPGA 进行编程时,最后一个 FPGA 的 DONE 引脚没有变高,编程失败。
什么可能导致这种奇怪的行为?
笔记:
- 在对三个 FPGA 进行编程后,第四个 FPGA 的状态寄存器的 INIT_B 位为 0,尽管 INIT_B 引脚为高电平。在对第三个 FPGA 进行编程之前,该位为 1。这表明第四个 FPGA 已锁定。
- 使用 SelectMap 进行编程时,我可以毫无问题地对所有四个 FPGA 进行编程。
- 当我使用 SelectMap 对三个 FPGA 进行编程时,第四个仍然无法使用 JTAG 进行编程。
- 四个完成的引脚中的每一个都通过 4.7K 欧姆电阻上拉至 3V3,然后连接在一起。
我尝试过的事情:
从链中断开其中一个 FPGA 允许剩余的 3 个 FPGA 仍然被编程。
将最后一个 FPGA 的 4.7K Ohm 上拉电阻换成 330 Ohm 电阻并不能解决问题。