La electrónica digital se basa en el planteamiento de un problema el cual puede ser solucionado implementando una función que nos de como salida los valores necesarios para resolver el problema.
Las posibilidades de la electrónica digital son infinitas un ejemplo muy simple es el dispositivo en el que estás visualizando esta página el cual usa un arreglo muy complejo de elementos lógicos para llevar a cabo en su forma más básica la función de leer tus entradas ya sea en un teclado o una pantalla y mostrarte como salida la información que le solicitas.
Sin importar la complejidad del dispositivo que estés usando, la lógica digital se reduce a dos únicos elementos lógicos, la compuerta NOT y la compuerta AND, a partir de ellos se puede crear cualquier otra de las compuertas lógicas más habituales (OR, NAND, NOR, XOR, XNOR) y con ellas desarrollar hasta el más complejo aparato electrónico.
En esta ocasión usaremos como ejemplo la compuerta AND, veremos su tabla de verdad y la replicaremos en tres HDL's (Hardware Descriptive Language) o (Lenguaje Descriptor de Hardware), estos lenguajes se usarán en todos los demás circuitos que puedes encontrar en esta página como un método de aprendizaje partiendo en AHDL y su forma correspondiente de implementación en la industria con lenguajes estándar como VHDL y Verilog.
La compuerta AND es un circuito lógico que tiene dos entradas y una salida. La salida es 1 cuando ambas entradas son 1, y 0 en cualquier otro caso.
Un Lenguaje Descriptor de Hardware o HDL sirve para sintetizar funciones lógicas en sus compuertas primitivas y así poder ser implementadas en un dispositivo de hardware configurable como las FPGA's, pero no se limita a esto, tambien nos sirve para describir circuitos complejos y poder simularlos sin la necesidad de cablearlos o ni siquiera dibujar su esquemático. Esta función de describir circuitos y la posibilidad de simularlos será la que usaremos para verificar el correcto funcionamiento de nuestros códigos.
Implementación de compuerta AND en AHDL.
SUBDESIGN MyAND (
A, B : INPUT;
C : OUTPUT;
)
BEGIN
C = A & B;
END;
Implementación de compuerta AND en VHDL.
ENTITY MyAND IS
PORT (A, B : IN BIT;
C : OUT BIT);
END MyAND;
ARCHITECTURE Logic OF MyAND IS
BEGIN
C <= A AND B;
END Logic;
Implementación de compuerta AND en Verilog.
module MyAND (A, B, C);
input A, B;
output C;
assign C = A & B;
endmodule