Hallo zusammen!
Kann man aus Impact heraus ein an den FPGA angeschlossenes SPI Flash
programmieren ?
Muss man dabei selbst einen Bootloader schreiben, wenn man im SPI Flash
die Firmware für eine Microblaze Soft-CPU ablegt ?
Ich habe hier das Spartan-3A Starter Kit von Digilent...
Gruß
klaus
klaus schrieb:
> Hallo zusammen!>> Kann man aus Impact heraus ein an den FPGA angeschlossenes SPI Flash> programmieren ?
Ja, endweder über SPI (ist ja am Xilinx Cable dran) oder seit neurem
beim Startan 3E usw. der ja dann auch vom SPI Flash konfiguriert werden
kann, auch durch JTAG. Da brauchts aber mindestens ImPact 10.1 oder
sowas.
> Muss man dabei selbst einen Bootloader schreiben, wenn man im SPI Flash> die Firmware für eine Microblaze Soft-CPU ablegt ?
Ja, du brauchst einen BootLoader, denn siehe unten...
> Ich habe hier das Spartan-3A Starter Kit von Digilent...
Der Spartan 3A kann offenbar nicht von SPI Flash konfiguriert werden,
folglich kann
das MicroBlace Programm auch nicht gleich in den BitStream eingebaut
werden. Das geht nur mit dem Spartan 3E oder extended 3A. Siehe UG332,
ab Seite 101
no so was doofes habe lange nicht gelesen
S3 - kein spi boot, kein nor boot
S3E - spi boot, nor boot, multiboot NUR aus nor
S3A/AN/ADSP - spi boot, nor boot, dynamic reboot voll, zb cold boot aus
spi dann reboot unter soft kontrolle von nor flash
S3A starterkit board kann naturlich von spi flash booten,
und egal vie der xilinx sich configuriert die brams werden
geladen immer
Antti
Naja, die UG332 ist an der Stelle nicht wirklich eindeutig. Aber wenn
das so ist, dann ist ja gut. Ich hab auf Seite 101 gelesen: "In Master
SPI mode (M[2:0] = <0:0:1>), the Spartan®-3E or Extended Spartan-3A
family
FPGA configures itself from an attached industry-standard SPI serial
Flash PROM..."
Aber stimmt, weiter hinten kommt eine Tabelle, in der auch der A/AN das
kann. Komisch. Typische Xilinx Doku.
Wenn das geht, braucht man natürlich keinen Bootloader für das
MicroBlaze Programm im BRAM.
...naja, er schrieb nix davon, dass sein Programm-Code in den BRAM soll.
Kann ja auch in den SDRAM oder sonstwas....und von da aus immer die
nächsten Befehle in den BRAM nach Bedarf....da gibts ja verschiedene
Möglichkeiten.
Die Frage ist eher: Will er den SPI Flash denn überhaupt zur Konfig des
FPGA benutzen? Muss man ja nicht. Man kann das Design ja auch in den
Platform Flash und nur einen BootLoader rein, der dann ein anderes
Programm aus dem SPI Flash zieht, der mit der Konfig gar nix zu tun
hat.....
Danke für eure Antworten.
Also zunächst, es ist doch ein Spartan-3AN Starter Kit,
d.h. der FPGA hat auch internen Flash.
Ich habe auch selbst nochmal etwas recherchiert
und habe folgende Erkenntnis gewonnen:
Die Sache ist jetzt die, dass Impact 10.1.03 (ob für neue Version anders
keine Ahnung) für diese Familie (3AN) keine INDIREKTE programmierung
unterstützt (indirekt heißt also, der FPGA wird zunächst so
konfiguriert, dass über diesen als "Relaisstation" des SPI-Flash
programmiert werden kann). Es ist nur direkte Programmierung möglich.
Hierfür muss man via Jumper auf dem Board die JTAG Leitungen auf die SPI
Leitungen des SPI-Flash legen (J23 und J25). Desweiteren muss man den
FPGA in der Schwebe halten (J16 überbrücken). Dann muss man natürlich in
Impact direkte SPI Programmierung nehmen, dann gehts. Vorm Einschalten
die Jumper wieder entfernen.
Mühsam aber machbar!
Laut UG332, ab Seite 124 soll das wohl jetzt gehen, den SPI Flash
indeirekt über JTAG durch den FPGA hindurch zu proggen.
Hat das mal jemand getestet? Das wäre für uns auch interessant....da
könnte man ein Firmware-Update viel leichter machen, wenn man eh schon
SPI Flash dran hat. Nur einmal am Start den JTAG dran und dann alles per
Software durchs Design durch....
The Spartan-3A/3AN Starter Kit board primarily supports direct programming using the embedded USB JTAG programmer included on the board. Optionally, the SPI Flash can be programmed using a separate programming cable, as well.
UG332:
1
Indirect programming support is available starting with Xilinx ISE 9.1i, Service Pack 2 and later releases for the Spartan-3A and Spartan-3A DSP FPGAs. The Spartan-3E FPGAs are supported starting with the ISE 10.1 release. iMPACT supports programming of the internal Flash in Spartan-3AN FPGAs. In Indirect mode, the iMPACT software programs the memory attached to the FPGA through the FPGA’s JTAG port.
Ich hatte auch ein Dokument gefunden, indem ausdrücklich darauf
hingewiesen wurde, dass indirekte Programmierung bei Spartan-3AN nicht
unterstützt wird. Finde dieses aber nicht mehr. Es hatte nicht direkt
etwas mit Programmierung zu tun