Verilog HDL: Synchronzustandsmaschine

author-image

Von

Dies ist ein Verilog-Beispiel, das die Implementierung einer Zustandsmaschine zeigt. Die erste CASE-Anweisung definiert die Ausgänge, die vom Wert des Zustands der Maschinenvariablen abhängig sind. Die zweite CASE-Anweisung definiert die Übergänge einer Zustandsmaschine und die Bedingungen, die sie steuern.

Weitere Informationen zum Einsatz dieses Beispiels in Ihrem Projekt finden Sie im Abschnitt How to Use Verilog HDL Examples auf der Verilog-Webseite.


statem.v

Modul statem(clk, in, reset, out);

Input clk, in, Reset;
Ausgabe [3:0] out;

reg [3:0] out;
reg [1:0] Zustand;

Parameter Zero=0, one=1, two=2, three=3;

always @(state) 
     begin
          case (state)
               zero: out =
                    4'b0000;
               one:
                    out = 4'b0001;
               zwei:
                    out = 4'b0010;
               drei:
                    out = 4'b0100;
               Standard:
                    out = 4'b0000;
          endcase
     end

always @(posedge clk oder posedge reset)
          beginnt, wenn (reset)
               state = null;
               Else-Fall (Zustand)
                    Null:
                         Zustand = eins;
                    one:
                         wenn (in)
                              Zustand = Null;
                         else
                              state = zwei;
                    zwei:
                         Zustand = drei;
                    drei:
                         Zustand = Null;
               Endcase

Endmodul

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.