Forum: FPGA, VHDL & Co. Speichern der BIT-Datei in BlockRAM in Spartan-3


von Salih B. (panicc)


Lesenswert?

Hallo Zusammen,

ich habe ein paar Fragen:

1. ist es möglich eine partielle Bit-Datei in BlockRam speichern ?
(dann sie irgendwie auf FPGA herunterladen (Ohne PC))

2. Wo ist die Konfigurationsspeicher in Spartan-3, ist es ein Teil des 
BlockRAMs? (Beispiel: wenn ich mal ohne CPU, eine bit Datei erstelle und 
schaue mal im FPGA-Editor, und sehe dass die BlockRAms leer sind.)

von Falk B. (falk)


Lesenswert?

@ Salih Bayar (panicc)

>1. ist es möglich eine partielle Bit-Datei in BlockRam speichern ?

Was meinst du mit "partieller Bit-Datei"?

>(dann sie irgendwie auf FPGA herunterladen (Ohne PC))

???
Wie soll die Datei denn in den FPGA kommen? Man kann sie natürlich 
einmal in die Konfigurationsdaten integrieren. Siehe Core Generator und 
*.COE Files.

>2. Wo ist die Konfigurationsspeicher in Spartan-3, ist es ein Teil des
>BlockRAMs?

Nein. Der Konfigurationsspeicher ist für den Nutzer unsichtbar. Man kann 
prinzipiell über JTAG darauf zugreifen, praktsich jedoch nicht, da das 
Datenformat vonXilinx nicht veröffentlicht ist.

> (Beispiel: wenn ich mal ohne CPU, eine bit Datei erstelle und
>schaue mal im FPGA-Editor, und sehe dass die BlockRAms leer sind.)

???
Du meinst, du hast einen Softcore-Prozessor (Microblaze?) und ohne 
diesen Prozessor sind die BRAMs leer. Klar, was soll auch drin sein?

MFG
Falk

von Salih B. (panicc)


Lesenswert?

Hallo Falk,

erstens Danke für schnelle Antwort,

ich habe erstmal eine volle Bit-Datei und durch "bitgen -g 
activereconfig.. flow " eine partielle Bit-datei für Spartan-3
erstellt. Was ich möchte ist einfach die partielle Bit-Datei in BlockRAM 
speichern, und dann sie "at runtime" mit der Hilfe von Microblaze "on 
chip" auf Konfigurationsspeicher laden (Ohne PC) und damit erhalte ich 
ein "stand alone " System bzw. eine Selbstrekonfiguration.


> ???
> Wie soll die Datei denn in den FPGA kommen? Man kann sie natürlich
> einmal in die Konfigurationsdaten integrieren. Siehe Core Generator und
> *.COE Files.

Ich weiss eigentlich wie Core Generator funktioniert, ich habe mir schon 
überlegt.
Aber soweit ich wusste, eine .bit Datei hat nur binary Werte (nur 0, 1), 
aber wenn ich mal den Inhalt der Bitdatei mit Hex editor anschaue, sehe 
ich es ist eigentlich eine hex Datei. Heisst das, dass ich sie als eine 
.coe Datei in BlockRAM speichern?

Beispiel: MEMORY_INITIALIZATION_RADIX = 16;
MEMORY_INITIALIZATION_VECTOR= 09, 0f, f0, 0f, f0, 0f, f0, 0f, f0, 00, 00 
01, 61, 00.....

Oder gibt es einen Converter von .bit Datei zu .coe Datei?

von Falk B. (falk)


Lesenswert?

@ Salih Bayar (panicc)

>speichern, und dann sie "at runtime" mit der Hilfe von Microblaze "on
>chip" auf Konfigurationsspeicher laden (Ohne PC) und damit erhalte ich
>ein "stand alone " System bzw. eine Selbstrekonfiguration.

Das ist AFAIK nicht möglich. Da wirst du besser einen exteren EEPROM zur 
Speicherung von Daten verwenden müssen.

>Ich weiss eigentlich wie Core Generator funktioniert, ich habe mir schon
>überlegt.

Eigentlich? Ich glaube du hast den Prozess der Synthese noch nicht ganz 
verstanden.

>Aber soweit ich wusste, eine .bit Datei hat nur binary Werte (nur 0, 1),
>aber wenn ich mal den Inhalt der Bitdatei mit Hex editor anschaue, sehe
>ich es ist eigentlich eine hex Datei.

Logisch.

> Heisst das, dass ich sie als eine .coe Datei in BlockRAM speichern?

Nein. Wie bereits gesagt, das FPGA kann sich nicht selber 
rekonfigurieren, schon gar nicht partiell,das kann nur der PC über ein 
Programmierkabel oder ein externer Mikrocontroller.

>Beispiel: MEMORY_INITIALIZATION_RADIX = 16;
>MEMORY_INITIALIZATION_VECTOR= 09, 0f, f0, 0f, f0, 0f, f0, 0f, f0, 00, 00
>01, 61, 00.....

>Oder gibt es einen Converter von .bit Datei zu .coe Datei?

Nein, der ist auch sinnlos. Die *.coe Datei wird während der Synthese in 
das Bitfile integriert.

MfG
Falk

von T.M. (Gast)


Lesenswert?

Was man wohl machen kann, ist die Konfigurationsdaten auf einem externen 
Flash zu speichern und dann gesteuert durch den internen Microblaze in 
den FPGA zu laden. Das geht auch mit partieller Rekonfiguration, dann 
ist halt der MB-Prozessor der statische Teil und der Userbitstream im 
Flash der dynamische Teil des Designs. Theoretisch alles kein Thema, 
praktisch aber schon. Ich hatte mit dyn. part. Rekonfiguration während 
meines Diploms zu tun... Xilinx verspricht da mehr als es dann auch 
erfüllen kann, der Support dafür hält sich auch in Grenzen :-(

von T.M. (Gast)


Lesenswert?

Achso: schau dir mal folgende XAPP an:
http://www.xilinx.com/bvdocs/appnotes/xapp441.pdf

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
Noch kein Account? Hier anmelden.