Spartan-3E: FPGA-Konfiguration intern starten?

#1416833
Lesenswert?

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
Gast #1417061
Lesenswert?

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.
#1417079
Lesenswert?

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
#1417100
Lesenswert?

...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.
#1417116
Lesenswert?

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 :-)
Gast #1417207
Lesenswert?

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...
#1417338
Lesenswert?

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).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren