HdL verilog: máquina de estado síncrona

author-image

Por

Este é um exemplo de Verilog que mostra a implementação de uma máquina de estado. A primeira instrução CASE define as saídas que dependem do valor do estado da variável da máquina de estado. A segunda instrução CASE define as transições da máquina de estado e as condições que as controlam.

Para obter mais informações sobre o uso deste exemplo em seu projeto, consulte a seção Como usar exemplos de HDL verilog na página da Verilog.


statem.v

módulo statem (clk, in, reset, out);

clk de entrada, in, reset;
saída [3:0];

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

parâmetro zero=0, um=1, dois=2, três=3;

sempre @(estado) 
     iniciar
          caso (estado)
               zero: out =
                    4'b0000;
               um:
                    out = 4'b0001;
               dois:
                    out = 4'b0010;
               três:
                    out = 4'b0100;
               padrão:
                    out = 4'b0000;
          endcase
     end

always @(posedge clk or posedge reset)
     begin if
          (reset)
               state = zero;
          caso
               (estado)
                    zero: estado =
                         um;
                    um:
                         se (in)
                              estado = zero;
                         outro
                              estado = dois;
                    dois:
                         estado = três;
                    três:
                         estado = zero;

endmodule endcase

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.