Módulos

Módulos

Un módulo es la entidad de diseño principal de Verilog. La primera línea de una declaración de módulo especifica el nombre y la lista de puertos (argumentos), así como el tipo de entrada/salida y ancho de cada puerto (por defecto el ancho es 1-bit). Las variables del puerto deben ser declaradas como wire, wand, ..., reg, aunque por defecto toma el valor wire. Normalmente las entradas suelen ser wire, ya que se registran fuera del módulo, las salidas en cambio suelen ser de tipo reg si se almacenan dentro de bloques always o initial.

Sintaxis

module module_name (
  input [msb:lsb] input_port_list,
  output [msb:lsb] output_port_list,
  inout [msb:lsb] inout_port_list
);
  ... statements ...
endmodule

Ejemplo

module small_block (      // Interfaz del módulo
  input a, b, c,
  output o1, o2
);
   wire s;                // Estructura y comportamiento 
   assign o1 = s | c;     // or
   assign s = a & b;      // and
   assign o2 = s ^ c;     // xor
endmodule

Asignaciones Instanciación