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.)
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 instrucción
assignque define la lógica
Reglas para la estructura de los 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 siempre son
input(no se pueden escribir dentro) - Las salidas son
output(pueden serregowire) <strong>endmodule</strong>debe cerrar el módulo
Desafío
Completa 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
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 VerilogHardware frente a softwareTu primer móduloComentariosNiveles de abstracción del diseño4Operadores, parte 1
Operadores aritméticosOperador móduloOperadores de comparaciónRepaso: matemáticas simplesOperadores bit a bit7Asignaciones y compuertas
Asignación continuaAsignación con operadoresPrimitivas de compuertas integradasCompuertas AND, OR y NOTCompuertas XOR y XNORRepaso: 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 condicionalRepaso: desafío de operadores11Bucles
Bucle ForBucle WhileBucle de repeticiónBucle infinitoInstrucción DisableRepaso: patrones de bucles3Sistema numérico
Representación binariaNúmeros con tamañoNúmeros sin tamañoNúmeros negativosValores especiales X y ZRepaso: formatos numéricos6Módulos
Estructura de módulosPuertos de entrada y salidaPuertos inoutInstanciación de módulosAsignación de puertos por nombreAsignación de puertos por ordenRepaso: construir un móduloPractica por tu cuenta: Compilador de Verilog online