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 que entran)
- Salidas (señales que salen)
- Lógica interna (lo que hace el módulo)
Piense en un módulo como un chip con pines y circuitería interna.
Estructura Básica del Módulo
Cada módulo sigue esta estructura:
module module_name (
input signals,
output signals
);
// Internal declarations (wires, regs, etc.)
// Logic (assign statements, always blocks, etc.)
endmodulePartes de un módulo
| Parte | Propósito |
|---|---|
Palabra clave module | Inicia la definición del módulo |
module_name | Nombre del módulo |
( ) | Lista de puertos de entrada y salida |
input / output | Declara la dirección del puerto |
| Cuerpo del módulo | Lógica interna y conexiones |
endmodule | Finaliza la definición del módulo |
Ejemplo de Módulo Simple
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmoduleEste módulo:
- Se llama
and_gate - Tiene dos entradas (
a,b) - Tiene una salida (
c) - Contiene una sentencia
assignque define la lógica
Reglas para la estructura de módulos
- Un módulo por archivo es una práctica común
- El nombre del módulo debe describir su función
- Los puertos se enumeran entre paréntesis después del nombre
- Las entradas son siempre
input(no se pueden escribir dentro) - Las salidas son
output(pueden serregowire) <strong>endmodule</strong>debe cerrar el módulo
Desafío
Rellena las partes que faltan para completar este módulo.
Qué hacer:
- Añade el nombre del módulo
my_and - Añade
inputparax - Añade
inputparay - Añade
outputparaz - Añade la lógica interna usando
assign
Hoja de referencia
Un módulo es el bloque de construcción básico en Verilog — un componente de hardware con entradas, salidas y lógica interna.
module module_name (
input a,
input b,
output c
);
// Lógica interna
assign c = a & b;
endmodulemodule/endmodule— inician y terminan la definicióninput— señal que entra (de solo lectura dentro del módulo)output— señal que sale (puede serregowire)assign— define la lógica combinacional
Pruébalo tú mismo
module ______ ( // Agregar nombre del módulo
______ x, // Agregar entrada
______ y, // Agregar entrada
______ z // Agregar salida
);
// Agregar sentencia de asignación aquí (z = x & y)
endmoduleEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
1Introducción
¿Qué es Verilog?Hardware vs SoftwareNiveles de abstracción de diseñoTu primer móduloComentarios4Operadores Parte 1
Operadores aritméticosOperador de móduloOperadores de comparaciónRepaso - Matemáticas simplesOperadores bit a bit7Asignación y Compuertas
Asignación ContinuaAsignación con OperadoresPrimitivas de Compuertas IntegradasCompuertas AND OR NOTCompuertas XOR XNORResumen - Circuito de Compuertas Lógicas10Toma de decisiones
Sentencia IfIf - ElseRepaso - Comparador simpleSentencia CaseCasex y CasezRepaso - Diseño de ALU5Operadores Parte 2
Operadores lógicosOperadores de reducciónOperadores de desplazamientoOperador de concatenaciónOperador condicionalResumen - Desafío de operadores3Sistema de numeración
Representación binariaNúmeros con tamaño definidoNúmeros sin tamaño definidoNúmeros negativosValores especiales X y ZResumen - Formatos de números6Módulos
Estructura del móduloPuertos de entrada y salidaPuertos InoutInstanciación de módulosMapeo de puertos por nombreMapeo de puertos por ordenResumen: Construye un módulo