Hallo zusammen,
wie kann man FPGA-bitfile interpretieren dann anschließend über
Mikrocontroller in SPI-Seriell Flash programmieren? (danach kann FPGA
selbst mit Master SPI-Mode programmiert werden)
Ich hab den xillinx spartan 3A, und SST25v-seriellFlash. So ein Vorgehen
kann ich mir vorstellen:
1. bitgen : --> *.bit file
2. promgen: *.bit file --> *.bin file oder *.msc file
3. bin2hex: *.bin --> *.hex (intel Hex)
was muss ich mit diesen msc oder hex file machen? Wie die Daten in
hexfile, mcs-file in dem seriell Flash abgespeichert werden?
danke im vorraus!
Tequila
Bin2Hex brauchst du nicht, das mcs File ist im Intel Hex Format. Das
Format ist überall genauestens erklärt, musst du nur auslesen und in den
Flash schreiben. Kannst natürlich auch hex2bin nehmen, dann kannst du
das bin File 1:1 in den Flash bringen. Ansonsten ist erst bitgen und
dann promgen schon richtig. Bitgen ist ja Teil des ISE Design Flows,
Promgen ist bei Impact dabei. Kann promgen denn überhaupt bin? Hab ich
noch gar nicht gesehn.
danke Christian für die antwort!^^
Christian R. schrieb:> Kann promgen denn überhaupt bin?
Ja kann er, bei impact findet man nur Hex output-file. Wenn mann über
Befehl-promt, Befehl fenster ihn aufruft, gibt option für
BIN-outputfile.
http://www.xilinx.com/itp/xilinx6/books/data/docs/dev/dev0131_19.html
Wie kann man mit µC den hex(oder bit)- file in Flash bringen? Ich hab
schon den flash-driver, er kann den flash byteweise programmieren.
Meine Vorstellung:
1. Weil in intel-hexfile gibt noch Intelhex-Datensatzformat(also nicht
nur die echte Data sondern auch information, Datensatzanfang mit ":"
.....).
Muss ich nur die echte Daten-bytes in flash programmieren?
2. Wie kann ich den Hexfile vom PC über UART zum µC? Normal Terminal
program kann nur ein string über Eingabenfenster schicken, oder`?
Servus,
ich weiss von anderen Herstellern wie Lattice, dass die schon komplette
C-Sourcen für die Programmierung der FPGAs vom uC anbieten. Vielleicht
gibts ja so etwas von Xilinx auch?
Gruss
Lupi
Tequila schrieb:> Soll ich ab "aa"-Byte bis zum Ende-Byte "00" in SPI-Flash ablegen? Und> ab SPI-Address 0?
Die vielen FFs sind das sog. Dummy Word, das vor dem Synchronization
Word (AA99..) im Bitstream kommt. Siehe dazu S. 332 in UG332 ;) Ich
würde die FFs also mit ins SPI-Flash packen.
> Habt ihr docu, indem beschrieben wird, wie der FPGA die Konfigdaten von> SPI-Flash holt?
Hast Du den UG332 schon durchgeschaut?
Grüße,
Anguel
Tequila schrieb:> Christian R. schrieb:>> Kann promgen denn überhaupt bin?>> Ja kann er, bei impact findet man nur Hex output-file. Wenn mann über> Befehl-promt, Befehl fenster ihn aufruft, gibt option für> BIN-outputfile.
Übrigens habe ich jetzt festgestellt, dass auch Bitgen anscheinend
direkt BIN Dateien erzeugen kann (siehe Optionen in der IDE), so dass
man gar kein Promgen braucht. Siehe auch hier:
http://www.xilinx.com/support/answers/14468.htm
Grüße,
Anguel
Kleiner Tipp:
In einem Design habe ich folgendes getan:
Der SPI des µCs wird mit 2 CSs an den FPGA gelegt. Im Flash befindet
dich über JTAG programmiert eine Art Bootloader-Image ab Adresse 0. Über
das eine CS erfolgt der Datenaustausch mit dem FPGA, über das andere CS
erfolgt der direkte zugriff durch den FPGA auf den Flash.
Die eigentliche Anwendungs-Image (oder auch mehrere) liegt (liegen) dann
in höheren Speicherbereichen des Flashs. Über die SPI löse ich dann ein
ReBoot des FPGAs an der gewünschten Flashadresse aus.
Der ReBoot ist recht einfach mit dem im Anhang befindlichen picoboot zu
realisieren.