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
Ich kann dir nicht genau helfen, aber ich glaube du suchst an der falschen Stelle: Die Informationen aus dem MIF werden erst ganz zum Schluss während des erstellen des Programmier-Files in den Datenstrom für den FPGA eingebaut, die Synthese und auch das Place&Route sieht davon nichts.
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
Den "Mechanismus" den ich verwende heisst "selbstgeschriebenes C-Programm, das mir eine passende VHDL-Datei generiert".
Schreib ein Skript das dir ein VHDL-Array generiert (bzw. den entsprechenden proprietaeren Krampf, falls gewuenscht), oder ersetze die Initialisierungsdaten nachtraeglich im Bitstream (siehe T51-Core).
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
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.