Verständnisproblem von "If-Else" in Verilog

Gast #3787114
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
Gast #3787133
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.
Gast #3787169
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
Gast #3787258
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.