www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Modelsim asynchroner Process.


Autor: Eisen Horn (eisenhorn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich versuche einen asynchronen Prozess (VHDL) in Modellsim zu 
simulieren. Dieser Prozess triggert auf kein Signal, soll also permanent 
laufen. Nun verfängt sich Modelsim jedoch in diesem Prozess in einer 
Endlosschleife. Auch mit einem wait statement und sehr kleinen Werten 
ändert sich das Verhalten nicht.

Also so ein Prozess

name: process


end process

Danke für jede Hilfe im Vorhinein.

Lg.

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mario Grotschar schrieb:
> ieser Prozess triggert auf kein Signal, soll also permanent
> laufen. Nun verfängt sich Modelsim jedoch in diesem Prozess in einer
> Endlosschleife.

Bei einem Prozess ohne Sensitivitätsliste und ohne wait ist das kein 
Wunder. Das bedeutet, dass er zu jedem Zeitpunkt unendlich mal 
durchlaufen wird.

> Auch mit einem wait statement und sehr kleinen Werten
> ändert sich das Verhalten nicht.

Da ist das Problem, dass ein Modelsim, als event-basierter Simulator, 
nur mit endlicher Zeitauflösung simuliert. Die ist - glaube ich - 
standardmäßig auf 1ns eingestellt. D.h. das alle Zeiträume < 1 ns auf 0 
ns abgerundet werden, quasi sofot ablaufen. Die zeitliche Auflösung 
kannst Du allerdings beim starten der Simulation mit -t <auflösung> 
einstellen.
Z.B. vsim -t 1 ps

Autor: Eisen Horn (eisenhorn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm was wäre die Bestpractice für die Simulation eines Prozesses ohne 
Sensitivity list?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mario Grotschar schrieb:
> Hmm was wäre die Bestpractice für die Simulation eines Prozesses ohne
> Sensitivity list?
Erst mal die Antwort auf die Frage: wozu brauchst du sowas?

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
process ohne sensitivity list macht keinen sinn, das hat auch nix mit 
der simulationsauflösung zu tun. ein prozess beschreibt ein paar gatter, 
und der ausgang kann sich nunmal nur ändern, wenn sich ein eingang 
ändert...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sowas hat doch nur zum Beispiel bei Takterzeugung für die Simulation 
Sinn:
Clock_100 : Process
  Begin
    CLK <= '0';
    wait for 5 ns;
    CLK <= '1';
    wait for 5 ns;
  End Process;

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein process ohne wait und sensitivity list ist automatisch eine 
endlosschleife, irgendwann verrent sich der simulator in deltazykles...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dave schrieb:
> ein process ohne wait und sensitivity list ist automatisch eine
> endlosschleife, irgendwann verrent sich der simulator in deltazykles...
Und sogar eine Concurrent-Zuweisung hat eine (implizite) Sensitivliste: 
nur wenn sich eines der betroffenen Signale ändert, wird die Zuweisung 
neu berechnet.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.