Menu
Coddy logo textTech

Estructura de módulos

Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 30 de 90.

Un módulo es el bloque de construcción básico en Verilog. Cada diseño se construye a partir de módulos que se conectan entre sí para formar sistemas más grandes.

Un módulo es un componente de hardware con:

  • Un nombre
  • Entradas (señales que entran)
  • Salidas (señales que salen)
  • Lógica interna (lo que hace el módulo)

Piensa en un módulo como un chip con pines y circuitos internos.

Estructura básica de un módulo

Cada módulo sigue esta estructura:

module module_name (
  input  signals,
  output signals
);
  
  // Declaraciones internas (wires, regs, etc.)
  // Lógica (assign statements, always blocks, etc.)
  
endmodule

Partes de un módulo

PartePropósito
Palabra clave moduleInicia la definición del módulo
module_nameNombre del módulo
( )Lista de puertos de entrada y salida
input / outputDeclara la dirección del puerto
Cuerpo del móduloLógica interna y conexiones
endmoduleFinaliza la definición del módulo

Ejemplo de módulo simple

module and_gate (
  input a,
  input b,
  output c
);
  assign c = a & b;
endmodule

Este módulo:

  • Se llama and_gate
  • Tiene dos entradas (a, b)
  • Tiene una salida (c)
  • Contiene una instrucción assign que define la lógica

Reglas para la estructura de los módulos

  1. Un módulo por archivo es una práctica común
  2. El nombre del módulo debe describir su función
  3. Los puertos se enumeran entre paréntesis después del nombre
  1. Las entradas siempre son input (no se pueden escribir dentro)
  2. Las salidas son output (pueden ser reg o wire)
  3. <strong>endmodule</strong> debe cerrar el módulo
challenge icon

Desafío

Completa las partes que faltan para completar este módulo.

Qué hacer:

  1. Añade el nombre del módulo my_and
  2. Añade input para x
  3. Añade input para y
  4. Añade output para z
  5. Añade la lógica interna usando assign

Pruébalo tú mismo

module ______ (   // Añade el nombre del módulo
  input x,       // Añade la entrada
  input y,       // Añade la entrada
  output z       // Añade la salida
);
  // Añade la sentencia assign aquí (z = x & y)
  
endmodule
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Verilog online