Menu
Coddy logo textTech

Estructura del módulo

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 de entrada)
  • Salidas (señales de salida)
  • 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 Module

Cada module 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 / outputDeclaran 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 sentencia assign que define la lógica

Reglas para la estructura de un módulo

  1. Un módulo por archivo es la 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 Input (entradas) son siempre input (no se pueden escribir internamente)
  2. Las Output (salidas) son output (pueden ser reg o wire)
  3. <strong>endmodule</strong> debe cerrar el módulo
challenge icon

Desafío

Completa las partes faltantes para finalizar este módulo.

Qué hacer:

  1. Agrega el nombre del módulo my_and
  2. Agrega input para x
  3. Agrega input para y
  4. Agrega output para z
  5. Agrega 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