Reihenfolge der If-Anweisung in einem Prozess

Gast #1307864
Lesenswert?

Hallo, ich hab da mal eine Grundlagenfrage:

Wenn ich 2 verschiedene IF-Konstrukte:

process()
begin
if(bedingung1) then
 Anweisung1
else
Anweisung2
end if;
if(bedingung2) then
 Anweisung3
else
Anweisung4
end if;
end process;

in einem Prozess habe, wird dann die Bedingung 1 zuerst geprüft, also 
sequentielles Vorgehen im Prozess, oder wird bei den IFs eine Ausnahme 
gemacht und beide Bedingungen werden zur gleichen Zeit geprüft??

Danke für die Hilfe!
#1307938
Lesenswert?

Diese Frage wurde schon mehrmals diskutiert, du solltest in anderen 
Diskussionsbreiträgen danach suchen.
Kurz :
- Bei der Simulation werden die Anweisungen sequentiell abgearbeitet
- Wenn das ganze zu Hardware synthetisiert wird und Bedingung 1 und 
Bedingung 2 unterschiedliche Signale betrifft, dann arbeitet die 
synthetisierte Hardware parallel, also gleichzeitig.
Gast #1308009
Lesenswert?

@ Klaus

Danke , ja es muss synthetisiert werden, und Bedingung 1 & 2 betrifft 
auch unterschiedliche Signale, das hätte dann meine Frage beantwortet.

Hab allerdings keine Einträge dazu gefunden.

Viele Grüße
Gast #1308839
Lesenswert?

naja man muss hier 2 Dinge unterscheiden: Semantik und Synthese
Sprich ein Prozess ist schon sequentiell von seiner Semantik her.
Eine nachfolgende if wird dir in der Signalzusweisung höher
priorisiert, weil sie die Werte überschreiben kann. Die Synthese
macht aber kombinatorische Logik daraus .. sofern keine
rising_edge oder falling_edge die if Anweisungen in sich
beinhalten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren