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!
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.
@ 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
Das ganze macht nur einen Unterschied, wenn man bedingte Synthesen benutzt. Sonst nicht. Solche IFs sind immer parallel.
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.
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.