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.)
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 | Declaran 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 un módulo
- Un módulo por archivo es la 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
Input(entradas) son siempreinput(no se pueden escribir internamente) - Las
Output(salidas) sonoutput(pueden serregowire) <strong>endmodule</strong>debe cerrar el módulo
Desafío
Completa las partes faltantes para finalizar este módulo.
Qué hacer:
- Agrega el nombre del módulo
my_and - Agrega
inputparax - Agrega
inputparay - Agrega
outputparaz - 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)
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