Ho una catena JTAG che collega 4 FPGA Spartan 6 che programma usando ISE iMPACT. Il software può programmare qualsiasi sottoinsieme rigoroso dei 4 FPGA di seguito e in qualsiasi ordine. Tuttavia, quando provo a programmare tutti e quattro gli FPGA, il pin FATTO dell'ultimo FPGA non aumenta e la programmazione fallisce.
Cosa potrebbe causare questo strano comportamento?
Appunti:
- Dopo aver programmato tre FPGA, il bit INIT_B del registro di stato per il quarto FPGA è 0, sebbene il pin INIT_B sia alto. Proprio prima di programmare il terzo FPGA, quel bit era 1. Questo suggerisce che il quarto FPGA si è bloccato.
- Durante la programmazione con SelectMap, posso programmare tutti e quattro gli FPGA senza alcun problema.
- Quando programma tre FPGA usando SelectMap, il quarto non può ancora essere programmato usando JTAG.
- Ognuno dei quattro pin completati viene tirato su da 3 a 3 resistori da 4,7 K Ohm e quindi legati insieme.
Cose che ho provato :
La disconnessione di uno degli FPGA dalla catena consente di programmare ancora i 3 FPGA rimanenti.
La sostituzione del resistore pull-up da 4,7 K Ohm dell'ultimo FPGA con un resistore da 330 Ohm non risolve il problema.
"If the Spartan-6 device is configured via JTAG, the configuration instructions occur independent from the mode pins."
DONE
perni sono legati insieme. Per JTAG, la programmazione di più dispositivi si chiama Boundary-Scan Chain. In Chapter 3: Boundary-Scan and JTAG Configuration
, l'unica menzione del DONE
pin è "If JTAG is the only configuration mode, then PROGRAM_B, INIT_B, and DONE can be tied High to a 330 resistor."
Quindi il DONE
pin basso è l'unico problema? Si programma correttamente?
"The first device in a serial daisy chain is the last to be configured."
Intendi l'ultimo nella catena o l'ultimo da configurare (primo nella catena)? Potresti fornire uno schema?