Forum: FPGA, VHDL & Co. Concurrent Execution?


von wert (Gast)


Lesenswert?

Hi Leute!

Ich will mir nähere Gedanken über den Begriff Concurrent Execution in 
VHDL machen. Wenn ich diesen Begriff übersetze, komm ich zum deutschen 
Begriff "nebenläufige Ausführung".

Als Erklärung für diesen Begriff reicht das aber nicht so ganz. Was 
versteht man etwas genauer drunter?


Des Weiteren hab ich noch den Begriff des Concurrent Statements. Da hab 
ich aber mittlerweile aber eine sinnige Erklärung finden können: "Bei 
nebenläufigen Signalzuweisungen (concurrent Statements) ist es 
unerheblich, an welcher Stelle die Anweisung innerhalb der Architektur 
steht, d.h. die Reihenfolge spielt keine Rolle. parallele Ausführung 
bzw. ereignisgesteuerte Simulation."

von P. K. (pek)


Lesenswert?

Wortwörtliche Übersetzung reicht manchmal nicht... ;-)

Concurrent heiss in diesem Zusammenhang "gleichzeitig" oder "permanent". 
Die entsprechenden Gleichungen sind also immer präsent und werden 
permanent (mittels kombinatorischer Logik) berechnet.

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


Lesenswert?

Peter K. schrieb:
> Die entsprechenden Gleichungen sind also immer präsent und werden
> permanent (mittels kombinatorischer Logik) berechnet.
Das gilt aber auch für die allermeisten sequenziellen Abläufe (Prozesse) 
in VHDL: in einer FSM ist jeder Zustand immmer vorhanden, nur eben 
manchmal gerade nicht aktiv...

von P. K. (pek)


Lesenswert?

OK, zur Präzisierung:

> Concurrent heiss in diesem Zusammenhang "gleichzeitig" oder "permanent".
> Die entsprechenden Gleichungen sind also immer präsent und werden
> permanent (mittels kombinatorischer Logik) berechnet.

...und stehen nicht in einem Prozess drin. ;-)

von wert (Gast)


Lesenswert?

Jetzt will ich noch die Begriffe "Concurrent Statement" und Sequential 
Statement" näher erläutern:

Ich hätte das so gemacht:

- Ein "Concurrent Statement" ist eine nebenläufige Signalzuweisung. Hier 
ist es unerheblich, an welcher Stelle die Anweisung innerhlab der 
Architektur steht, d.h. die Reihenfolge spielt keine Rolle.

=> parallele Ausführung bzw. ereignisgesteuerte Simulation




- Ein "Sequential Statement" ist eine Signalzuweisung die im "Body" des 
Prozesses benutzt wird. Diese Zuweisung wird sequentiell genannt, da sie 
sequentiell ausgeführt wird.




Kann man das so sagen?

von .... (Gast)


Lesenswert?

wert schrieb:
> - Ein "Concurrent Statement" ist eine nebenläufige Signalzuweisung. Hier
> ist es unerheblich, an welcher Stelle die Anweisung innerhlab der
> Architektur steht, d.h. die Reihenfolge spielt keine Rolle.
>
> - Ein "Sequential Statement" ist eine Signalzuweisung die im "Body" des
> Prozesses benutzt wird. Diese Zuweisung wird sequentiell genannt, da sie
> sequentiell ausgeführt wird.

Dir fällt schon auf, dass du bloss die Definition wiederholst und ein 
klein wenig ausführst? Um ein vernünftiges Verständnis zu entwickeln, 
befasst du dich am besten mit der Frage, wie die jeweiligen Zuweisungen 
in Synthese und Simulation umgesetzt werden.

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


Lesenswert?

Ich würde es so sagen: ein "concurrent statement" ist ein einzeiliger 
Prozess (der natürlich mehrere Zeilenümbrüche haben kann, aber nur einen 
Strichpunkt), der zum Speichersparen ohne Sensitivliste geschrieben 
werden kann.

Eine nebenläufige Zuweisung wie
1
   a <= b;
könnte exakt funktionsgleich (Simulation und Hardware) auch so 
geschrieben werden
1
   process (b)
2
   begin
3
      a <= b;
4
   end process;


Verwirrenderweise gibt es bei nebenläufigen und sequenziellen 
Anweisungen aber jeweils andere Syntaxelemente, mit denen allerdings das 
selbe erreicht werden kann:
1
      a <= b when c else 
2
           d when e else
3
           f;
vs:
1
   process (b,c,d,e,f)
2
   begin
3
      if c then
4
         a <= b;
5
      elsif e then
6
         a <= d;
7
      else
8
         a <= f;
9
      end if;
10
   end process;

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.