Verilog HDL: Máquina de estado síncrono

author-image

Por

Este es un ejemplo de Verilog que muestra la implementación de una máquina de estado. La primera instrucción CASE define los resultados que dependen del valor del estado variable del equipo de estado. La segunda declaración CASE define las transiciones del equipo de estado y las condiciones que las controlan.

Para obtener más información sobre el uso de este ejemplo en su proyecto, consulte la sección Ejemplos de HDL De Verilog en la página web de Verilog.


statem.v

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

entrada clk, in, reset;
salida [3:0] fuera;

reg [3:0] salida;
reg [1:0] estado;

parámetro cero=0, uno = 1, dos = 2, tres = 3;

always @(state) 
     begin
          case (estado)
               cero: out =
                    4'b0000;
               uno:
                    salida = 4'b0001;
               dos:
                    salida = 4'b0010;
               tres:
                    salida = 4'b0100;
               predeterminado:
                    out = 4'b0000;
          endcase endcase endcase siempre @(100 000 000 000 100 000

000 100 000 100 000 100 000 100 000 100
          otro
               caso (estado)
                    cero: estado =
                         uno;
                    uno:
                         estado if (in)
                              = cero;
                         else
                              state = dos;
                    dos:
                         estado = tres;
                    tres:
                         estado = cero;
     endmodule endcase

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.