www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Reihenfolge der If-Anweisung in einem Prozess


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
probieren geht über studieren :-)

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ganze macht nur einen Unterschied, wenn man bedingte Synthesen 
benutzt. Sonst nicht. Solche IFs sind immer parallel.

Autor: Daniel (root) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.