FPGA mit VHDL
Beispiel: Prozessor mit RAM im FPGA und Text IO für Datei-Datentransfer
Ich habe das Beispiel Prozessor mit RAM im angeschlossenem FPGA verwendet, um zu zeigen, wie man nun das RAM mit Daten aus einer externen Datei beschreibt.
An dieser Stelle muss ich erst erklären, welchen Sinn und welche Anwendung ein Datei-Handling in VHDL hat.
Wir reden hier grundsätzlich um eine Vereinfachung für eine Simulationsumgebung. Ein Dateihandling kann nicht für die Synthese eingesetzt werden!
Wenn Sie ein RAM beim "hochfahren" des FPGA mit einem Inhalt füllen möchten, so sind mif-Dateien Ihr Freund.
"mif" steht für Memory Instantiation File, welches bei der Generierung der RAM-IP-Blöcke ins System eingebunden werden und bei der Compilation (Synthese) in die Speicherzellen des RAM geschrieben werden.
Hier aber geht es nur um die VHDL-Simulation und von der wissen wir ja, dass diese sehr mächtig ist, wie wir schon in Unterschied zwischen der Synthese und der Simulation kennen gelernt haben.
Eine typische Anwendung ist, Befehle oder reale Messdaten in das Simulationswerkzeug zu bekommen, um ein FPGA zu testen.
Beispiel: Es soll ein FPGA mit einer Signalverarbeitung erstellt und natürlich auch getestet werden. Die Korrektheit der Signalverarbeitung im FPGA kann ich dann durch Messwerte, die z.B. mit einem Datenlogger aufgenommen wurden, direkt überprüfen.
Das Zauberwort zum Lesen und Schreiben von Dateien im Simulator heisst TEXT IO. Besser wäre ja File IO gewesen, aber wer weiss was die sich dabei gedacht haben.
Das Mikroprozessorssystem mit FPGA und Text IO
In nachfolgendem Blockbild kann man die einzelnen Komponenten gut erkennen:
auf das Bild klicken zum Zoomen.
Wie der Prozessor funktioniert und das VHDL-Projekt aufgebaut ist, können Sie im Artikel Prozessor mit RAM im angeschlossenem FPGA nachlesen.
im 2. Teil Instanziierung weiterlesen.
Alle Informationen und Dateien zu diesem Beispiel
- VHDL-Quelltext des Clockgenerators
- VHDL-Quelltext des Resetgenerators
- VHDL-Quelltext des Prozessors
- VHDL-Quelltext des FPGAs mit RAM-Block
- VHDL-Quelltext des RAM-Blocks
- VHDL-Quelltext des Boards
- Datendatei für das RAM
- Beispiel in VHDL für einen Prozessor mit RAM im FPGA und Text IO, Teil 1
- Beispiel in VHDL für einen Prozessor mit RAM im FPGA und Text IO, Teil 2
- Beispiel in VHDL für einen Prozessor mit RAM im FPGA und Text IO, Teil 3