Forum: FPGA, VHDL & Co. Externe reale Signale an VHDL-Simulation leiten


von Simulant (Gast)


Lesenswert?

Hallo liebe VHDLer,

kann mir jemand Hinweise geben, nach was ich suchen muss, oder ein paar 
gute Stichworte, wenn ich externe Signal von realer Hardware in ein 
Simulation einspeisen möchte.

Ich habe mir dazu folgendes Konzept überlegt:

-Reale Hardware generiert Signale(Daten) und sendet diese über UART an 
PC
-Programm speichert Signale(Daten) in bestimmten Dateiformat
-VHDL-Simulation ließt Signale asu Datei ein
-VHDL-Simlation gibt Signale aus
-Programm sendet Signale per UART wieder an Hardware

Die Anforderung daran sind, dass die Kommunikation wechselseitig 
funktioniert, d.h. reale Hardware läuft und in dieser Zeit wartet die 
Simulation und umgedreht, also Hardware warte und die Simulation läuft.

Die Hardware mit UART-Schnittstelle existiert. Welche ist egal. Für 
Testzwecke habe ich einen Arduino Nano am laufen, der per UART 
Daten(Signale sendet)

Das Programm muss noch geschrieben werden. Mir geht es ersteinmal um das 
Gesamtkonzept, und ob dies so funktionieren kann oder es vielleicht 
schon existierende Lösungen für mein Problem gibt.

Ich hoffe, ich habe das Problem halwegs klar ausgedrückt

Mit freundlichen Grüßen,
Simulant

von Dussel (Gast)


Lesenswert?

Wenn ich das richtig in Erinnerung habe, gibt es sowas im Rahmen von 
Matlab und kostet so um die 50000€ pro Lizenz.

Nachstellen kann man das wahrscheinlich auch mehr oder weniger. Die 
wichtigste Frage ist, wie du die Hardware zum Halten bringen willst. 
Viele Controller unterstützen zwar Hardwarebreakpoints, aber ich denke, 
dass du die nicht über UART steuern kannst.

Spontan würde ich die vom Controller im Computer empfangenen Daten mit 
Seriennummer in eine Datei schreiben. In der Simulation wird die Datei 
regelmäßig gelesen und bei einer neuen Seriennummer die neuen Daten 
übernommen und ein neuer Simulationsdurchlauf gestartet. Da müsste man 
dann das Taktsignal solange anhalten.

Umgekehrt müsste das Kommunikationsprogramm bei Änderungen in einer 
Datei neue Daten zum Controller schicken.

von Lattice User (Gast)


Lesenswert?

Mit Active HDL (in Lattice Diamond Windows Version enthalten) sollte man 
das mit TCL Scripten machen können.

von Klakx (Gast)


Lesenswert?

was spricht gegen diese Idee:

Python (als Beispiel) empfängt deine Daten, die du nach deiner 
Formatierung in einer Datei ablegst.

Python startet über script den Simulator.

Simulation ließt die Datei ein und läd sie in deine gewünschten 
VHDL-Typen.

Simulation rechnet.

Simulation speichert Datei über File write.

Python packt sich die Datei und sendet diese über UART zur Hardware.

von Martin S. (strubi)


Lesenswert?

Hi Simulant,

was Du vorhast, geht prinzipiell mit der VHPI-Spec, die unterstützen 
allerdings nicht alle Simulatoren. Man muss auch keine 50k dafür 
hinlegen. Ich habe derartige "Model in the loop"-Simulationen mit GHDL 
und ner etwas hackigen Erweiterung erschlagen. Siehe GHDL-Mailingliste, 
z.B. https://mail.gna.org/public/ghdl-discuss/2014-11/msg00019.html, da 
haben einige Leute Lösungen vorgestellt.
Komplette Simulation eines Prozessors wird allerdings recht lahm. da 
macht es Sinn, die CPU in den Emulator zu verfrachten (qemu, o.ä.) und 
daraus die HW anzusprechen. Gibt allerdings etwas Programmierarbeit..

von Fpgakuechle K. (Gast)


Lesenswert?

Simulant schrieb:

> kann mir jemand Hinweise geben, nach was ich suchen muss, oder ein paar
> gute Stichworte, wenn ich externe Signal von realer Hardware in ein
> Simulation einspeisen möchte.

Bosch hat mit der FhG vor 15 jahren was in der Richtung gemacht 
(Projekt: ChipLense), leider hab ich nur ein paar oberflächliche Folien 
finden können:
http://publications.eas.iis.fraunhofer.de/papers/2000/016/slides.pdf

Es gab aber auch in einer Zeitschrift einen länglichen Artikel und 
mehrere Diplomarbeiten.

Grundprinzip:
In einem Shadow-Scanpfad werden die FF-Inhalte gespiegelt und aus dem 
FPGA geschleusst. Per script werden aus der netzliste TCl KJommandos für 
den Simulator generiert ("force" 
http://www.csse.monash.edu.au/courseware/cse2306/2006/Pracs/force.pdf) 
und damit die Netzlisten Simulation (Post-map) re-initialisiert.

MfG,

von Georg A. (georga)


Lesenswert?

Noch früher als Bosch (nur ohne VHDL) gabs das Ende der 80er von Valid 
Logic Systems. Das war SW auf einer Sun mit einer grossen Kiste 
nebendran. Da konnte man Steckkarten als "Real-Model" einstecken. Das 
wurde dann mit der gezeichneten Schaltung zusammen simuliert. Das 
Real-Model konnte durchaus mehr als Kleinkram sein, es gingen auch 
(damals) dicke Dinger ala 68040, 80386, etc. Da das Real-Model aber 
immer nur genau einen Takt laufen durfte, war das je nach Chip etwas 
haarig ;)

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.