Forum: FPGA, VHDL & Co. ISim - Stoppt nach 2,5us


von Tobias (Gast)


Lesenswert?

Hallo zusammen!

Folgendes Problem:

Die ganze Zeit hat der Simulator im Webpack (ISim) wunderbar 
funktioniert. Jetzt will er nicht mehr länger als 2,5us simulieren. Er 
bricht dann einfach ab mit der Meldung "Simlator is stopped"

Hat jemand Erfahrungen damit oder eine Idee woran es liegen könnte?

Danke,
Tobias

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Schau mal ob er irgenwo noch nen anderen Fehler ausgibt, die Simulation 
wird abgebrochen wenn du im VHDL Code z.B. Fehler hast.

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


Lesenswert?

> Hat ... eine Idee woran es liegen könnte?
Am VHDL-File, an der Simulation oder den Einstellungen...

> Die ganze Zeit hat der Simulator im Webpack (ISim) funktioniert.
Was hast du geändert, dass jetzt nichts mehr geht?

von Tobias (Gast)


Lesenswert?

Hallo!

Eigentlich hab ich nichts geändert, zumindest nicht das ich wüsste. Ich 
werd alles nochmal nachschaun...

Wenn ich eine neue Testbench erstelle und garkeine Stimuli vorgebe läuft 
das, also muss es wohl irgendwo am Code liegen...

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


Lesenswert?

> also muss es wohl irgendwo am Code liegen...
Tja, da müsst man den mal sehen...   :-/

von Tobias (Gast)


Lesenswert?

Hallo nochmal!

Ja, der Code ist etwas länglich, denn wollt ich jetzt hier nicht 
reinstellen.

Hab nochmal rekapituliert, was ich gemacht habe. Der Fehler ist jetzt 
behoben, es lag anscheinend daran, dass ich die sensitivity-lists von 
ein paar Prozessen geändert habe.

Manchmal hat mir der Simulator dann folgendes angezeigt, dass es keinen 
stabilen Wert für ein Signal ermitteln konnte.

Verstehen tu ich das trotzdem nicht. Was genau machen denn die 
Sensitivity-Lists? Ist es nicht so, dass der Prozess nur dann ausgeführt 
wird, wenn sich das darin aufgeführte Signal ändert?


Gruß Tobias

von Matthias F. (flint)


Lesenswert?

Es stimmt, dass die Sensitivity List dem Simulator sagt, dass dieser 
Prozess ausgeführt werden soll, wenn sich eines der in der SL 
aufgeführten Signale ändert. Es kann aber passieren, dass man 
"Schleifen" baut, sodass der Simulator de facto an einem Simulationszeit 
ewig in einer Schleife laufen würde. Damit das nicht passiert setzt zb 
Modelsim eine obere Grenze. Ich könnte mir vorstellen, dass so etwas bei 
dir passiert ist.

Dann wäre aber die dabei entstehende HW interessant, da muss dann ja 
auch eine Schleife drin sein.

von Tobias (Gast)


Lesenswert?

Okay, verstehe.

Wie wird sowas in der Hardware umgesetzt? Also wie wird ein Prozess 
umgesetzt, der nur unter bestimmten Bedingungen, bzw. bei der Änderung 
bestimmter Signale ausgeführt werden soll?

von Matthias F. (flint)


Lesenswert?

Im Prinzip pfeift die Synthese auf die Sensitivity List. Kombinatorische 
Prozesse werden so verdrahtet, wie die Zuweisungen im Prozess stehen, 
bei getakteten Prozessen wird das ganze dann eben mit flankensensitiven 
Elementen umgesetzt (sofern man das ganze nicht so seltsam hinschreibt, 
dass die Synthese nicht erkennt, dass man da Flip-Flops beschreibt).

Daher sind fehlende Signale bei der Sensitivity List auch sehr böse und 
gefährlich, weil der Simulator dann ein anderes Verhalten simuliert, als 
die HW zeigen wird. Daher sollte man bei Warnungen bzgl fehlenden 
Signalen in der SL genau schauen.

Der emacs, der übrigens mit dem VHDL Mode ein sehr, sehr, sehr 
brauchbares Tool fürs VHDL Codieren ist bietet auch die Möglichkeit, die 
SL eines Prozesses selbst mit allen Signalen, die im Prozess gelesen 
werden, zu beschreiben. Da sollte dann nichts mehr schiefgehen können.

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


Lesenswert?

> Also wie wird ein Prozess umgesetzt, der nur unter bestimmten Bedingungen,
> bzw. bei der Änderung bestimmter Signale ausgeführt werden soll?
Änderung: Dazu brauchst du eine Flankenerkennung.
Mit einem globalen FPGA-Takt (z.B. 25-200MHz) wird ein Signal in FF 
gespeichert. Wenn das Speicher-FF ungleich dem Signal ist, haben wir 
eine Änderung. So wie dort z.B.: 
http://www.lothar-miller.de/s9y/categories/18-Flankenerkennung

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.