www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Spartan-3E: FPGA-Konfiguration intern starten?


Autor: Max S. (x-quadraht)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Max S. (x-quadraht)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doofe Sache. Kann ja nicht so schwer sein, wenn schon ein Pin mit der 
Funktion vorliegt...
Naja, hat wahrscheinlich einfach keiner dran gedacht.

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JPROGRAM() in das IR Register schreiben...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt man über das BSCAN_SPARTAN3 Ding an das Instruction Register? Ich 
meine, damit hat man nur Zugriff auf die User Register....

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Max S. (x-quadraht)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Max S. (x-quadraht)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Max S. (x-quadraht)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 :-(

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Max S. (x-quadraht)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, "leider" nicht.
Ich benutze Verilog und ISE 10.1.

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.