mikrocontroller.net

Forum: FPGA, VHDL & Co. Initialisierung von Xilinx BlockRAMs


Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den "Mechanismus" den ich verwende heisst "selbstgeschriebenes 
C-Programm, das mir eine passende VHDL-Datei generiert".

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.