Forum: FPGA, VHDL & Co. Verständnisproblem von "If-Else" in Verilog


von Sarah (Gast)


Lesenswert?

Hallo,
ich hab gerade ein Verständnisproblem der "If-Else" Struktur, besonders 
"Begin-End" ist mir da nicht ganz klar.
Ich hab ein Verilogmodul von einer Partnerfirma bekommen und will es an 
meine Zwecke etwas anpassen. Bisher läuft das Modul wunderbar in meinem 
VHDL Projekt.

Bisher sieht es in etwa so aus (bitte versteht, daß ich den eigentlichen 
Code nicht veröffentlichen darf):

if (reset) begin
   signal1 <= wert1
   end
else
   if (was anderes) begin
     if (was gnz anderes)
        wert2 <= wert2 +1;
    else
        wert2 <= wert2;
       if (xyz) begin
        .
        .
        .

und so weiter.
Was mich da verwirrt und wo ich bisher keine befriedigende Antwort 
gefunden habe, mal gibt es ein "Begin-End" und mal nicht.
Wie sehen da die Regeln betreffend "Begin-End" aus?
:-) Sarah

von eingast (Gast)


Lesenswert?

begin - end ist das gleiche wie die geschweiften Klammern in C. Wenn nur 
ein Statement unter dem if steht kannst du sie weglassen, musst aber 
nicht.
Das abermalige if-statement ist nur ein Ausdruck, daher brauchst du da 
keine.

Der Code oben sieht recht wild aus.

Tu dir selbst den Gefallen und verwende immer begin-end, auch wenn du 
das nicht bräuchtest. Beugt Fehlern in nachträglich erweitertem Code vor 
und macht das ganze klarer zu lesen.

von Sarah (Gast)


Lesenswert?

Danke, ich werde das mal probieren.
Der Code ist tatsächlich etwas wild und wohl auch mit der Zeit 
gewachsen. Mal schauen, wo ich da eingreifen kann.

:-) Sarah

von Trundle Trollkönig (Gast)


Lesenswert?

wenn du kein begin - end verwendest wird nur die erste Zeile nach dem if 
oder else oder else if an die Bedingung "geknüpft"!! ich empfehle 
ebenfalls den obigen tipp immer begin end zu verwenden

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.