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."
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.
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...
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. ;-)
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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.