Indice

Reti sequenziali in Verilog

Per implementare utilizzando Verilog una rete sequenziale, secondo gli schemi (di Moore o di Mealy) del libro di testo, occorre:

Esempio

Supponiamo di voler implementare come rete sequenziale un automa di Mealy che:

Rete Omega

primitive automa_omega(output z, input s, input x);
  table
   0 0 : 1; 
   0 1 : 1; 
   1 0 : 0; 
   1 1 : 0; 
  endtable
endprimitive

Rete Sigma

primitive automa_sigma(output z, input s, input x);
  table
   0 0 : 0; 
   0 1 : 1; 
   1 0 : 0; 
   1 1 : 1; 
  endtable
endprimitive

Automa di Mealy

module automa_mealy(output reg z, input x, input clock); 

  reg stato; 

  wire uscita_omega; 
  wire uscita_sigma; 

  automa_omega omega(uscita_omega, stato, x);
  automa_sigma sigma(uscita_sigma, stato, x);

  initial
    begin
      stato = 0; 
      z=0; 
    end

  always @(negedge clock)
    begin
      stato <= uscita_sigma; 
      z     <= uscita_omega;
    end
  
endmodule