Ich habe eine JTAG-Kette, die 4 Spartan 6-FPGAs verbindet, die ich mit ISE iMPACT programmiere. Die Software kann jede strenge Teilmenge der 4 FPGAs hintereinander erfolgreich und in beliebiger Reihenfolge programmieren. Wenn ich jedoch versuche, alle vier FPGAs zu programmieren , geht der DONE-Pin des letzten FPGA nicht hoch und die Programmierung schlägt fehl.
Was könnte dieses seltsame Verhalten verursachen?
Anmerkungen:
- Nach dem Programmieren von drei der FPGAs ist das INIT_B-Bit des Statusregisters für das vierte FPGA 0, obwohl der INIT_B-Pin hoch ist. Kurz vor dem Programmieren des dritten FPGA war dieses Bit 1. Dies deutet darauf hin, dass das vierte FPGA blockiert ist.
- Bei der Programmierung mit SelectMap kann ich problemlos alle vier FPGAs programmieren.
- Wenn ich drei der FPGAs mit SelectMap programmiere, kann das vierte immer noch nicht mit JTAG programmiert werden.
- Jeder der vier fertigen Pins wird über 4,7 kOhm Widerstände auf 3V3 hochgezogen und dann miteinander verbunden.
Dinge, die ich versucht habe :
Durch Trennen eines der FPGAs von der Kette können die verbleibenden 3 FPGAs noch programmiert werden.
Das Austauschen des 4,7-K-Ohm-Pull-up-Widerstands des letzten FPGA gegen einen 330-Ohm-Widerstand löst das Problem nicht.
"If the Spartan-6 device is configured via JTAG, the configuration instructions occur independent from the mode pins."
DONE
Stifte miteinander verbunden. Für JTAG wird die Programmierung mehrerer Geräte als Boundary-Scan-Kette bezeichnet. In Chapter 3: Boundary-Scan and JTAG Configuration
, die einzige Erwähnung des DONE
Pins ist "If JTAG is the only configuration mode, then PROGRAM_B, INIT_B, and DONE can be tied High to a 330 resistor."
Also ist der DONE
Pin niedrig das einzige Problem? Programmiert es richtig?
"The first device in a serial daisy chain is the last to be configured."
Meinst du das Letzte in der Kette oder das Letzte, das konfiguriert werden soll (das Erste in der Kette)? Könnten Sie einen Schaltplan bereitstellen?