Tu primer módulo
Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 3 de 90.
Un módulo es el bloque de construcción básico en Verilog. Cada fragmento de código Verilog está dentro de un módulo.
Piensa en un módulo como un componente con:
- Entradas (señales que llegan)
- Salidas (señales que salen)
- Comportamiento (lo que hace)
Sintaxis de módulos
module module_name ( inputs, outputs );
// Todo lo de adentro
endmoduleCada módulo comienza con module y termina con endmodule.
Entradas y salidas
module and_gate(
input a, // a entra EN el módulo
input b, // b entra EN el módulo
output c // c sale FUERA del módulo
);
// El comportamiento va aquí
endmodule- input = la señal entra en el módulo
- output = la señal sale del módulo
Añadir comportamiento
Ahora hacemos que el módulo haga algo:
module and_gate(
input a,
input b,
output c
);
assign c = a & b; // c es 1 solo cuando a AND b son 1
endmoduleassignconecta continuamente el lado derecho con el lado izquierdo&significa AND en Verilog
Desafío
En este desafío, debes crear un módulo sencillo que realice la operación OR.
Qué hacer:
- El módulo debe llamarse
or_gate - Debe tener una entrada llamada
x - Debe tener una entrada llamada
y - Debe tener una salida llamada
z - Dentro del módulo, usa
assignpara hacer quezsea igual ax OR y
El encabezado del módulo y sus tres puertos ya están en el editor. La línea que debes añadir es la instrucción assign dentro del módulo.
Nota: En Verilog, OR se escribe con el símbolo de barra vertical |. Produce 1 (verdadero) si al menos una de las entradas es 1 (verdadero).
Pruébalo tú mismo
// El encabezado del módulo y sus puertos ya están escritos para ti
module or_gate(
input x,
input y,
output z
);
// Tu turno: usa assign para establecer z a x OR y
// En Verilog, OR se escribe como |
endmodule
Esta 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