Initialisierung von Xilinx BlockRAMs

Gast #962019
Lesenswert?

Hallo zusammen,

ich möchte meine BlockRAMs mit Werten aus einer Datei initialisieren.
der CoreGenerator in Xilinx ISE erlaubt für ein BlockRAM optional ein
COE-File für die Initialisierung. Der CoreGenerator erzeugt damit ein
VHDL-File und ein MIF-File (MIF-File wird im Instance Template der
VHDL Datei angegeben).
Jetzt möchte ich aber aus bestimmten Gründen nicht den CoreGenerator
verwenden sondern die BRAMs per Attribute selbst initialisieren. Im
Xilinx VHDL-Libraries  Manual finde ich aber zu BRAMs nur Attribute
wie Init_00,..Init_3F usw. Kann mir einer von euch erklären, wie die
Daten aus z.B. einem MIF-File in meine BRAM-Entity einlesen bzw. deren 
Attribute füllen kann?


Gruss

Jörg
Gast #962108
Lesenswert?

Eine einfäche Möglichkeit wäre (oder ist) ja, per Place&Route ein
konkretes BRAM zuzuordnen und an der entsprechenden Stelle im BIT-File
den Inhalt aus dem MIF-File zu kopieren.

Ich suche aber eigentlich einen Mechanismus bzw. VHDL-Funktionalität
um aus eigenen Dateien Daten in die Attribute zu füllen statt in meinem
VHDL-Code lauter init_00 <= X"..."; .. init_3F <= X"..."; bzw. ein
COE-File zu verwenden.

Gibt es vieleicht eine TextIO-Schnittstelle, die das Einlesen in
Attribute ermöglicht.

Gruss

Jörg
Gast #962142
Lesenswert?

So (oder so ähnlich) funktioniert ja der CoreGenerator. Du
spezifizierst alle Parameter und der Generator erzeugt daraus
alle notwendigen Files.
Jetzt habe ich zu einer Gruppe von VHDL-Files (inkl. Data-Files)
mehrere bis viele Projekte. Ich möchte aber nicht für jedes
Projekt den CoreGenerator bzw. einen eigenen Generator aufrufen
sondern nur die VHDL-Files kopieren. Und da sehe ich bis jetzt
die einfachste Lösung im direkten Einlesen in die Attribute.

Naja, einen eigenen Generator zu bauen ist ja nur eine
5-Minuten-Terine, wenn's dann sein soll..

Aber trotztem vielen Dank für die Hinweise bis jetzt.

Gruss

Jörg
Gast #962149
Lesenswert?

@Andreas Schwarz,

ich nehme mal an, du meinst mit Scriptgenerierung von VHDL-Arrays
die Erzeugung von VHDL-Files bzw. von Fragmenten, die dann in den
VHDL-Code reinkopiert werden?

Das Einfügen in Bitstreams möchte ich weniger gerne machen, weil
ich mehrere Architekturen habe (Spartan3 und Virtex5 bis jetzt).
Werde mir den Bitstream-Ansatz aber trotztdem mal anschauen.

Gruss

Jörg

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