Forum: FPGA, VHDL & Co. Interaktive VHDL Simulation


von Markus F. (mfr)


Lesenswert?

Hallo zusammen,

ich würde gerne eine interaktive Simulation mithilfe von VHDL erstellen. 
Das zu simulierende Gerät soll also mittels VHDL beschreiben werden und 
anschließend dessen Verhalten simuliert werden. Das eigentliche Problem 
ist, das es zwar Programme gibt um VHDL zu simulieren, jedoch ist es bei 
den wenigsten möglich interaktiv in die Simulation eingreifen zu können. 
Für meinen Verwendungszweck ist es erforderlich, z.B. Schalter während 
der Simulation zu drücken. Diese Schalter sollten separat anzeigbar 
sein. Es sollte also möglich sein, eine eigene kleine Oberfläche zur 
Bedienung des zu simulierenden Gerätes zu erstellen. Alternativ bzw. 
noch besser wäre es, wenn die Simulation eine Schnittstelle zu einer 
normalen Programmiersprache wie Java oder C++ hat, um die Simulation 
dann mit einer selbstprogrammierten Benutzeroberfläche steuern zu 
können.

Am ehesten meinen Vorstellungen entsprechen die Programme Tina und 
My-Open-Lab. Im Erstgenannten lassen sich zwar Schalter während der 
Simulation verändern, jedoch nur im Schaltplan und nicht auf einer 
separaten Oberfläche. Das zweite Programm bietet die Möglichkeit eine 
separate kleine Oberfläche zu erstellen, dafür arbeitet es nicht mit 
VHDL sondern einem eigenen Dateiformat.

Eine weitere Option wäre, OpenSource Software wie Sign oder GHDL zu 
nutzen und eine eigene Schnittstelle für eine GUI zu implementieren. Der 
Aufwand hierfür wäre aber vergleichsweise hoch.

Hat irgendjemand Erfahrungen in ähnlichen Projekten und vielleicht ein 
Tipp für mich? Ich kann mir nur schwer vorstellen, das noch niemand 
versucht hat, mit VHDL eine eigene interaktive Simulation zu erstellen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Hat irgendjemand Erfahrungen in ähnlichen Projekten und vielleicht ein
> Tipp für mich? Ich kann mir nur schwer vorstellen, das noch niemand
> versucht hat, mit VHDL eine eigene interaktive Simulation zu erstellen.
Du kannst während der Simulation eine Textdatei einlesen, in der z.B. 
von einem anderen Programm (deine GUI) die Tasterzustände abgespeichert 
werden. Genauso kannst du Textdateien schreiben, die dann von deiner GUI 
wieder ausgewertet werden.
Diese TextIO-Schnittstelle kann jeder Simulator handhaben.

von Klaus F. (kfalser)


Lesenswert?

Du könntest Dir auch ansehen, was sich mit den TCL/Tk Schnittstellen von 
ModelSim anfangen läßt.
Soviel ich weiss, sollte es dort auch möglich sein, eine Art GUI zu 
basteln.
Mit force könnte man dann Signale auf einen bestimmten Pegel zwingen.

von Mathi (Gast)


Lesenswert?

> Du könntest Dir auch ansehen, was sich mit den TCL/Tk Schnittstellen von
> ModelSim anfangen läßt.
> Soviel ich weiss, sollte es dort auch möglich sein, eine Art GUI zu
> basteln.

Da kann man ansehnliche Sachen mit bauen. Nachteil, man ist auf den 
Simulator festgelegt.

> Mit force könnte man dann Signale auf einen bestimmten Pegel zwingen.

Viel eleganter geht das. Durch das TCL-Interface kann man direkt auf 
jedes Signal einwirken.

von Jaromir (Gast)


Lesenswert?

modelsim ist doch compiliert - wie will man da strukturell eingreifen? 
Alles, was hingegen parametrisch ist, kann man doch per script vorgeben.

bei kurzen einfachen Schaltungen / Simulationen einfach mehrere 
Paramtersets per copy und paste benutzen um alle Möglichkeite 
abzuklappern.

Bei langen Simulationen macht es keinen Sinn, sich davor zu setzen und 
zu warten , bis irgenwo was passiert, um dann einzugreifen.

Das ist auch insgesamt kein gutes Konzept. Simulationen gehören 
dokumentiert und deterministisch angelegt.

von Markus F. (mfr)


Lesenswert?

Vielen Dank schon mal für die Antworten. Der Vorschlag mit Modelsim 
klingt gut, ich habe mich beim Hersteller mal für eine 
Evaluationsversion registriert (das dauert aber wohl bis zu 72h...).

Der Unterschied zu normalen Simulationen mit VHDL ist, dass ich nicht 
das Modell bzw. das Produkt testen will, sondern es für einen Nutzer 
simulieren will, da das Originalsystem nicht immer zur Verfügung steht. 
Scripte scheiden daher aus.

Für weitere Vorschläge/Kritik bin ich dankbar. Die Textschnittstelle 
behalte ich mal als Plan B im Auge.

von Mathi (Gast)


Lesenswert?

Als Tutorial gibt es ein Ampel-Beispiel. PDF + Quelltext.
Wie genau das Dokument heißt, weiß ich nicht mehr. Ist aber über die 
Hilfe-funktion zu finden.

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
Noch kein Account? Hier anmelden.