Compuertas AND OR NOT
Parte de la sección Fundamentos del Journey de Verilog de Coddy — lección 40 de 90.
Puerta AND
La puerta AND produce 1 solo cuando todas las entradas son 1.
Tabla de verdad (2 entradas):
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Primitiva de compuerta Verilog:
and(out, a, b);Equivalente de asignación continua:
assign out = a & b;Puerta OR
La puerta OR produce como salida 1 cuando al menos una entrada es 1.
Tabla de verdad (2 entradas):
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Primitiva de compuerta Verilog:
or(out, a, b);Equivalente de asignación continua:
assign out = a | b;Puerta NOT
La puerta NOT devuelve lo opuesto a su única entrada. También se le llama inverter.
Tabla de verdad:
| a | out |
|---|---|
| 0 | 1 |
| 1 | 0 |
Primitiva de puerta Verilog:
not(out, a);Equivalente en asignación continua:
assign out = ~a;Entradas múltiples
Las puertas AND y OR pueden tener más de 2 entradas:
and(out, a, b, c); // AND de 3 entradas (out = a & b & c)
or(out, x, y, z, w); // OR de 4 entradasLas puertas NOT siempre tienen exactamente 1 entrada.
Ejemplo de código
module and_or_not (
input a, b,
output and_out,
output or_out,
output not_out
);
and(and_out, a, b); // compuerta AND
or(or_out, a, b); // compuerta OR
not(not_out, a); // compuerta NOT (inversor)
endmoduleDesafío
Agrega las puertas primitivas que faltan según las tareas.
Qué hacer:
- Crea una puerta AND con salida
and_resulte entradaspyq - Crea una puerta OR con salida
or_resulte entradaspyq - Crea una puerta NOT con salida
not_resulte entradap
Pruébalo tú mismo
module gates_challenge (
input p,
input q,
output and_result,
output or_result,
output not_result
);
// TODO: Añade la puerta AND (and_result = p & q)
// TODO: Añade la puerta OR (or_result = p | q)
// TODO: Añade la puerta NOT (not_result = ~p)
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