Kann ich mit einem Output-Pin den FPGA dazu bringen, sich selbst neu zu laden? Ich möchte eine sichere INIT-Funktion haben, fall es zu einem Fehler kommt. Ein Microcontroller soll einen sicheren Code an den FPGA senden, den dieser decodiert und sich dann neu lädt. Einfach einen OUTPUT über 50 Ohm an den PROG_PIN, der im Betrieb dann "Z" ist? Der PROGRAM_B hängt über 4k7 an VCCO. Muss ich noch was beachten? HSWAP_EN ist auf GND gezogen. Damit müssten die Ausgänge im Ladevorgang alle "Z" sind und es dürfte nichts püassieren (Resetschleife!).
Bei vielen FPGAs geht das auch über interne Config Ports, z.B. die ICAP bei Xilinx. Aber wir machen das genau so mit der Brücke zwischen IO und PROG_B. Mit dem Hswap Pin kannst du ja eh nur zwischen Floating und Pullup wählen, also keine Gefahr dass da jemand Low treibt.
Christian R. schrieb: > über interne Config Ports, z.B. die ICAP bei Xilinx. Hab ich beim Spartan 6 probiert und es war ein Krampf. Mal ging es und bei der nächsten Synthese wieder nicht. Ich habe dann auch die Variante mit dem Pin gewählt. Duke
Richtig, beim S6 ist das wirklich ein Krampf. Das blöde ICAP Modul ist auch so richtig auf maximal komplex ansteuerbar gemacht (bits drehen, sehr langsame DRP Frequenz usw.). Ich wollt das mal machen, um den Fallback Status herauszubekommen, aber habs dann sein lassen. Beim Artix probier ich das demnächts mal wieder. An der PROG_B Leitung zupfen ist da viel praktischer ;)
:
Bearbeitet durch User
Klakx schrieb: > Was spricht dagegen, dass der Microcontroller den Reset am FPGA > schickt/an der Leitung zieht? Weil der einen halben Meter weit weg ist und seriall angeschlossen ist.
> Bei vielen FPGAs geht das auch über interne Config Ports, > z.B. die ICAP bei Xilinx. @chris: Mal ausprobiert? Wir haben das Thema ja gerade wieder: Beitrag "Re: MAX1000 Erfahrungen"
Weltbester FPGA-Pongo schrieb im Beitrag #5232547: >> Bei vielen FPGAs geht das auch über interne Config Ports, >> z.B. die ICAP bei Xilinx. > > @chris: Mal ausprobiert? > > Wir haben das Thema ja gerade wieder: > Beitrag "Re: MAX1000 Erfahrungen" Das Reboot über ICAP nicht, aber ich musste mir dann die Mühe machen, eine State Machine zu schreiben, die den Boot Status ausliest um zu erkennen, ob das Fallback oder das Update Image geladen wurde. Das geht zumindest auf dem Artix zuverlässig. Für Reboot nehmen wir weiterhin den externen PROG_B Pin, über einen 0 Ohm an einem I/O (für wenn man was ist).
Weltbester FPGA-Pongo schrieb im Beitrag #5232547: >> Bei vielen FPGAs geht das auch über interne Config Ports, >> z.B. die ICAP bei Xilinx. > > @chris: Mal ausprobiert? Ja geht. Man triggert eine FSM, die die folgenden Kommandos an den ICAP schickt:
1 | constant config_data : config_data_t := |
2 | (
|
3 | x"ffff", -- dummy word |
4 | x"ffff", -- dummy word |
5 | x"ffff", -- dummy word |
6 | x"aa99", -- sync word |
7 | x"5566", -- sync word |
8 | x"3261", -- type 1 write 1 word to general1 |
9 | x"0044", -- multi boot start address [15:0] |
10 | x"3281", -- type 1 write 1 word to general2 |
11 | x"6b00", -- opcode and multi boot start address [23:16] |
12 | x"32a1", -- type 1 write 1 word to general3 |
13 | x"0044", -- fallback start address [15:0] |
14 | x"32c1", -- type 1 write 1 word to general4 |
15 | x"0300", -- opcode and fallback start address [23:16] |
16 | x"30a1", -- type 1 write 1 word to cmd |
17 | x"000e", -- iprog command |
18 | x"2000", -- type 1 noop |
19 | x"2000", -- type 1 noop |
20 | x"2000" -- type 1 noop |
21 | );
|
Ein externer Watchdog, wo man mal am Pin ziehen kann, ist einfacher. Duke
Christian R. schrieb: > Bei vielen FPGAs geht das auch über interne Config Ports, z.B. die ICAP > bei Xilinx. Ist zwar schon uralt, lösen lässt sich das Problem schon seit zig Jahre, wie z.B. schon erwähnt bei Xilinx (seit wann?) oder bei Altera (ab Stratix-1, Arria-1 und Cyclone-III per RemoteConfig). Bei Lattice gibt's glaube ich auch eine Möglichkeit.
Sigi schrieb: > Bei > Lattice gibt's glaube ich auch eine Möglichkeit. Bisher habe ich die beim ECP3 wie auch ECP5 nicht gefunden, zumindest nicht, wie sich die JUMP/REFRESH-Befehle aus der programmierten Logik analog ICAP in den 'Bootloader' schicken lassen, ohne wüste Hardware-Hacks. Wenn da wer den Trick kennt: ich wäre alle Ohren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.