Hallo, ich habe hier ein Projekt mit einem Xilinx Spartan-3E-FPGA (XC3S500E). Ich programmiere den FPGA nur indirekt, beschreibe also einen externen SPI-Flash mit den Daten. Gibt es die Möglichkeit, eine Neukonfiguration intern auszulösen, also quasi den PROG_B-Pin intern zu setzen? Hört sich, meiner Meinung nach, nach einer einfachen und sinnvollen Sache an, ich habe aber bisher in den User Guides von xilinx nichts dergleichen gefunden. Ich habe kurz mit dem MultiBoot-Feauture experimentiert, das lässt sich aber gar nicht erst auslösen wenn der configuration mode nicht BPI ist. Hat jemand eine Lösung oder muss ich einen I/O verschwenden? Viele Grüße, Max
Das hab ich auch schon erfolglos versucht. Leider scheint das nur beim BPI Multiboot vorgesehen zu sein. Ich weiß auch nicht, ob das mit dem IO am Prog_B klappt, schließlich gehen die IOs ja sofort dann in Tristate, wenn die Konfig startet. Aber eventuell reicht die "Hold" Zeit aus...
Doofe Sache. Kann ja nicht so schwer sein, wenn schon ein Pin mit der Funktion vorliegt... Naja, hat wahrscheinlich einfach keiner dran gedacht.
Kommt man über das BSCAN_SPARTAN3 Ding an das Instruction Register? Ich meine, damit hat man nur Zugriff auf die User Register....
Falls die Rekonfiguration aus der Applikation erfolgen soll, UG332 Kapitel 14 lesen. S3E kann mit SPI nur Rekonfiguration, kein Multiboot. Tabelle 14.1 spricht von "MBT input n STARTUP primitive" Falls die Rekonfiguartion nach dem von aussen erfolgenden Reprogrammieren des SPI erfolgen soll, schau Dir mal den SVN Zweig von xc3sprog auf Sourceforge an. Dort kannst Du ueber einige unterstuetzte JTAG Adapter ein BSCAN_SPI Bitfile in den XC3SE laden, und dann den SPI Flash auslesen, mit vorgegebenen Muster (.bit oder .mcs) vergleichen oder mit .bit oder .mcs neuprogrammieren. Nach dem Neuprogrammieren wird ein Reconf ausgeloest und dann das neue Muster geladen. Ggf. musst Du das BSCAN_SPI Bitfile neu erzeugen, ein passendes .v File gibt es schon, nur das UCF File fuer die SPI pins fehlt noch.
Zunächst einmal vielen Dank für die Antworten, so viel hatte ich nicht erwartet :-) @Uwe: Ich will ja kein MultiBoot, sondern einfach eine Rekonfiguration (von FPGA-Logik ausgelöst). Ich habe Kapitel 14 gelesen, und keine Referenz auf irgendeine Möglichkeit dazu gefunden. [EDIT]Wenn ich den MBT-Pin am STARTUP-Primitive negativ pulse, passiert einfach gar nichts, was ich mir so erkläre, dass da eine Abfrage Mode == BPI drin ist. [/EDIT] Mit dem BSCAN_SPARTAN3 kommt wohl wie Christian bemerkt hat nicht an das Instruction Register dran. Das ganze hat den Hintergrund, dass der FPGA per Memory-Bus an eine CPU angebunden ist. Ich kann mit meiner Software bereits von der CPU aus neue Konfigurationen über den FPGA in den SPI-Flash schreiben. Jetzt fehlt halt nur noch der Selbst-Reset des FPGAs nach abgeschlossenem Schreibvorgang... Viele Grüße, Max
...genau so eine Geschichte machen wir auch. SPI Flash über das Design neu bespielen (neue Firmware über USB flashen am Ende), aber ich hab außer Strom aus - Strom an bisher nix gefunden. Mit dem IR beim BSCAN bin ich mir nicht ganz sicher, meine es mal in der Doku irgendwo gelesen zu haben, als ich mal verschiedene Sachen mit dem BSCAN Makro probieren wollte.
Christian R. schrieb: > Mit dem IR beim BSCAN bin ich mir nicht ganz sicher, meine es mal in der > Doku irgendwo gelesen zu haben, als ich mal verschiedene Sachen mit dem > BSCAN Makro probieren wollte. Das stimmt schon, hab gerade nochmal nachgeguckt. Damit das ganze BSCAN-Primitive überhaupt aktiv wird, muss von außen ein USER1/2 - Kommando geschickt werden, und dann kann mit TDO1/2 eigene Daten raus schicken -.- Irgendwie ist einen I/O dafür zu nehmen echt unbefriedigend :-)
Update: Mit dem ICAP-Primitive geht das (unter anderem), aber das ist nur auf Spartan-3A verfügbar. Diese komplexe Operation bleibt dann wohl den teureren FPGAs vorbehalten :-(
@Max: Du verwendest nicht noch ISE8.1 und schematic entry? AR #21680 - Spartan-3E - Multi-boot configuration does not work when the STARTUP_SPARTAN3E schematic symbol is used
AR #22595 - Spartan-3E - Can the MBT pin be used in SPI mode or in any mode but BPI? ... The Multi-Boot Trigger (MBT) on the STARTUP_SPARTAN3E component is only monitored when the mode pins are set to BPI. In all other configuration modes the MBT is ignored. To initiate a configuration in another configuration mode other then BPI, the PROG-B pin must be asserted. ... Da hat wohl jemand beim Chipdesign geschlafen...
Max S. schrieb: > Update: Mit dem ICAP-Primitive geht das (unter anderem), aber das ist > nur auf Spartan-3A verfügbar. Diese komplexe Operation bleibt dann wohl > den teureren FPGAs vorbehalten :-( Sowas blödes. Besonders bekloppt finde ich, dass der recht teure Virtex 4 überhaupt nicht von SPI Flash booten kann. Firmware Update im Felde fällt damit aus. Naja, hoffentlich kommt bald der Spartan 6, dann ersetzen wir den V4 durch den S6, dann geht das (und noch mehr).
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.