FPGA mit VHDL
Unterschied zwischen der Synthese und der Simulation
Es gibt einen grossen Unterschied, ob eine VHDL-Datei für eine Simulation oder eine Synthese geschrieben wird.
Eine VHDL-Datei für die Simulation hat normaler Weise das Ziel eine Testbench für ein FPGA oder PLD zu erzeugen.
Hierbei kann der ganze VHDL-Befehlssatz eingesetzt werden.
Dazu zählen auch folgende nicht synthetisierbare Möglichkeiten:
- Zum Beispiel können Sie Dateien lesen, verarbeiten und abspeichern.
- Sie können einen Prozess starten, wenn sich ein Signalzustand geändert hat.
- Sie können zum Beispiel mit realen Zahlen oder selbst definierte Wertebereiche rechnen.
- Sie können auf eine Zeit oder ein Ereignis warten.
Eine VHDL-Datei, die dafür da ist eine Logik in ein FPGA zu bringen (Synthesefähigkeit), kann nur einen eingeschränkten VHDL-Befehlssatz verwenden und hat ein paar "härtere" Anforderungen an die Semantik.
Es gibt Fälle, da lassen sich unwissentlich "falsche" VHDL-Dateien für die Synthese im Simulator hervorragend und ohne Fehlermeldungen simulieren.
Auch gibt es Fälle, da lassen sich die unwissentlich falschen VHDL-Dateien für die Synthese mit dem Synthese-Werkzeug ohne Warnungen und Fehlermeldungen compilieren, laufen aber dennoch nicht auf dem FPGA.
Gerade letzteres ist tückisch und die Fehlersuche ist sehr Zeitaufwendig.