2017-12-10 6 views
1

Ich habe geschaut, um für eine Weile so vergib mir, wenn vielleicht bin ich falsche Terminologie ...Aktualisieren mehrerer Variablen in case-Anweisung

Das Ziel des Codes ist Aout1 und AOUT0, wenn der Eingang zu aktualisieren ist 0, wobei der Ausgang einer 7-Segment-Anzeige entspricht, aber ich bekomme den folgenden Fehler:

"Fehler (10170): Verilog HDL-Syntaxfehler bei FourBitAdder.v (55) in der Nähe von Text:", " "expect"; ". Suchen Sie nach Syntaxfehlern, die unmittelbar vor oder bei dem angegebenen Schlüsselwort angezeigt werden, und beheben Sie diese."

Unten finden Sie ein Ausschnitt des Codes gibt mir gibt ...

always @* 
case (A) 
4'b0000 : Aout1 = 7'b1000000, Aout0 = 7'b1000000; //00 

Ich habe versucht, die Änderung der Code wie folgt, und während ich keine Fehler auf meiner Software, meine Hardware erhalten haben (7- Segmentanzeige) funktioniert nicht wie es war, als ich versuchte, nur eine Variable pro Fall zu ändern.

always @* 
case (A) 
4'b0000 : Aout1 = 7'b1000000; 4'b0000 : Aout0 = 7'b1000000; //00 

Vielen Dank im Voraus :)

Antwort

1

eine begin und end Anweisung nach dem Doppelpunkt verwenden.

always @* begin 
    case(A) 
     4'b0000: begin 
      Aout1 = 7'b1000000; 
      Aout0 = 7'b1000000; 
     end 
     4'b0001: begin 
      Aout1 = 7'b0000011; 
      Aout0 = 7'b0000011; 
     end 

    endcase 
end 
+1

'begin' /' end' ist erforderlich, wenn Sie mehrere Anweisungen eingeben möchten, für die nur eine zulässig ist. –

+0

Danke, das hat genauso funktioniert wie ich es wollte :) – Walby