Warum kann ich ein ZC706 (Zynq) Board nicht ein zweites Mal über JTAG programmieren?

Ich habe ein ZC706-Board, das mit einem Zynq 045 FPGA ausgestattet ist. Ich habe die Jumper umgestellt, um den Zynq in die JTAG-Kette des Digilent-Programmierers einzufügen. Die erste Programmierung funktioniert wie erwartet, aber die zweite Programmierung verändert die FPGA-Konfiguration nicht.

Wenn ich das komplette Board einmal komplett aus- und wieder einschalte, kann ich das FPGA wieder programmieren, aber kein drittes Mal ...

Warum kann ich ein ZC706-Board nicht ein zweites Mal über JTAG programmieren? Sperrt der ARM die interne Konfigurations-FSM?

Die „Fertig“-LED bleibt immer hoch, damit iMPACT keinen Programmierfehler bemerkt!


Meine Aufgabe ist es, ein Design von KC705 auf den ZC706 zu portieren. Das Hardware-Testbeispiel benötigt kein ARM - dies wird von anderen implementiert :).

Ich verwende microZed. Ich mache immer einen Jtag-Boot von Linux, also habe ich das gleiche Problem. Ich habe gerade den Prozessor vor dem Neuladen zurückgesetzt. Ich habe keine Antwort, nur ähnliche Erfahrungen
@johnnymopo Meinst du mit Reset die Reset-Taste?
Ja. Ich denke, die FSBL (in meinem Fall) ist für das Laden des Bitstreams verantwortlich, daher muss der Prozessor anhalten oder zurücksetzen, bevor JTAG funktionieren kann. Sie könnten wahrscheinlich einen Befehl zum Stoppen des Prozessors ausgeben. Da ich Linux verwende und mein Terminal nicht zurücksetzen möchte, "reboote" ich einfach vor einem neuen Upload. Verwenden Sie SDK zum Laden von Bitstream?
Ich habe nichts in den ARM geladen, ich denke, er bootet von Flash. Es befindet sich keine SD-Karte im Steckplatz. Ich verwende die einfache JTAG-Schnittstelle des Digilent-Programmierers, um meine Bitdatei in den FPGA-Teil des Zynq hochzuladen.
Ich verstehe aber was für Gespräche mit dem Kabel. zedboard.org/content/zedboard-programming-zynq-impact zeigt ein Beispiel mit Impact, das wiederholt funktionieren sollte

Antworten (1)

PROG_BEs scheint, dass das PS den externen Pin und die JTAG-Anweisung sperren kann JPROGRAM. Das entsprechende Bit ist PCFG_PROG_Bin devcfg.CTRL(Adresse 0xF8007000, Bit 30).

Mit einem Lokalanalysator kann ich sehen, dass Vivado dieses Bit vor der Programmierung des FPGA setzt. Ich weiß nicht, wie ich IMPACT dazu bringen kann, dasselbe zu tun, aber Sie könnten wahrscheinlich den ARM-Teil dazu bringen, ein kleines Programm auszuführen, um das Bit zu setzen.