mikrocontroller.net

Forum: FPGA, VHDL & Co. Sensitivity List eines Prozesses


Autor: DS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen, ich hab da mal ne Frage:

Ich arbeite mit VHDL. Wird eine Schleife in einem Prozess unterbrochen 
und der Prozess neu gestartet, wenn sich ein Wert in der Sensitivity 
List dieses Prozesses ändert? Oder wird der Prozess erst komplett 
abgearbeitet?

Gruß
DS

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Prozess wird abgearbeitet, und das sofort ohne dass die Zeit 
fortschreitet. Es kann sich während des Abarbeitens nichts ändern. Mach 
dir am besten mal den Unterschied zwischen einer Programmiersprache und 
einer Hardware-Beschreibungssprache klar und überleg dir, was für eine 
Hardware aus deinem Prozess rauskommt.

Autor: DS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich aber innerhalb eines Prozesses eine Schleife hab, werden die 
Schleifendurchläufe ja wohl kaum gleichzeitig abgearbeitet, oder?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ DS (Gast)

>Wenn ich aber innerhalb eines Prozesses eine Schleife hab, werden die
>Schleifendurchläufe ja wohl kaum gleichzeitig abgearbeitet, oder?

Und ob. Denn es sind KEINE sequentiellen Abläufe zur Laufzeit, wie in 
einer normalen Programmiersprache vorkommen, sondern der Compiler 
durchläuft alle Schleifen zur Compilezeit und berechnet daraus EINE 
parallel arbeitende Logik. Siehe VHDL.

MFG
Falk

Autor: DS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt, da habt ihr natürlich Recht!!! Denkfehler meinerseits...

Danke für den Schubs in die richtige Richtung.

Gruß

Autor: Rolf Michaelsen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was VHDL angeht, muss man eben objektorientiert denken. Was an Schleifen 
exisitert, wird aus simulationstechnischer Sicht in getrennte Veriablen 
und damit in ein Array überführt. Praktisch existieren die Zustände also 
parallel.

Autor: Da Micha (damicha)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Wenn ich aber innerhalb eines Prozesses eine Schleife hab, werden die
>>Schleifendurchläufe ja wohl kaum gleichzeitig abgearbeitet, oder?
>
> Und ob. Denn es sind KEINE sequentiellen Abläufe zur Laufzeit, wie in
> einer normalen Programmiersprache vorkommen, sondern der Compiler
> durchläuft alle Schleifen zur Compilezeit und berechnet daraus EINE
> parallel arbeitende Logik. Siehe VHDL.
>

Hallo ich glaub, hier geht was durcheinander.

Im VHDL Code existieren, Prozesse, Sensitivlisten und z.B. Schliefen.
In der Simulation des VHDL Codes werden die Schleifen sequentiell 
durchlaufen; so wie in C auch. Das kann man beim Debuggen in Modelsim 
sehr gut sehen. Man sieht auch, dass der Prozess erst vollständig 
abgearbeitet wird bevor auf ein sich änderndes Signal in der 
Prozessliste reagiert wird und der Prozess neu aufgerufen wird.

Aber, in der Synthese wird die Schleife "ausgerollt" und zu einer 
Netzliste, deren Pfade parallel abgearbeitet werden. Ab hier sind dann 
die ursprünglichen Prozesse, Sensitivlisten und Schleifen nicht mehr 
vorhanden. Debuggen kann man das auch noch aber das macht keinen Spass 
;-).

Gruß DaMicha.

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.