Menu
Coddy logo textTech

Module Structure

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 module es un componente de hardware con:

  • Un nombre
  • Entradas (signals que entran)
  • Salidas (signals que salen)
  • Internal logic (lo que hace el module)

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 module

PartePropósito
module palabra claveInicia la definición del module
module_nameNombre del module
( )Lista de puertos de input y output
input / outputDeclara la dirección del puerto
Module bodyInternal logic y conexiones
endmoduleFinaliza la definición del module

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 module

  1. Un module por archivo es una práctica común
  2. Nombre de module debe describir su función
  3. Puertos se enumeran entre paréntesis después del nombre
  1. Entradas always son input (no se pueden escribir dentro)
  2. Salidas son output (pueden ser reg o wire)
  3. <strong>endmodule</strong> debe cerrar el module
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 Internal mediante 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