Introducción a la lógica programable (1) - Compuertas lógicas


 ¡Hola! ¿Cómo están?

En esta serie vamos a hablar de lógica programable. Uds. se preguntarán, quizás, qué significa lógica programable. Para explicarlo, primero conviene que hablemos un poco de circuitos lógicos "comunes" (o sea, no programables).

En las páginas de la revistucha Lúpin hubo una extensa serie sobre circuitos lógicos. Si no conocen compuertas lógicas básicas (AND, OR, etc.), flip-flops, y los bloques básicos de la electrónica digital (registros, contadores, multiplexores, memorias, etc.) les recomiendo hacer el curso de la Lúpin que cubre esos temas. El curso de circuitos lógicos apareció desde el número 221 de la revistucha. Todos los números de la revista se pueden bajar en formato pdf desde dos grupos muy activos en Facebook:

Revista Lúpin: el club de "Saltap"

Revista Lúpin: "La Revistucha"

De todos modos, aquí también haremos un somero repaso sobre compuertas digitales y flip-flops. Hablaremos de las compuertas AND, OR, NOT, y de los flip-flops tipo D. Después, seguiremos con algo que dejamos pendiente un poco más arriba, es decir, qué significa lógica programable.

En capítulos posteriores hablaremos de los dispositivos más populares que utilizan lógica programable en la electrónica del día de hoy: CPLD, FPGA y ASIC.

También hablaremos sobre los lenguajes de descripción de lógica electrónica, y como es tradición en la revistucha, lo haremos utilizando ejemplos prácticos que Uds. mismos podrán verificar en sus computadoras. Dos de los lenguajes más usados son Verilog y VHDL. En nuestros ejemplos usaremos System Verilog, que es una variante modernizada del Verilog, más flexible y con mayores capacidades.

A no asustarse con los nombres "raros" que van apareciendo, ya recibirán explicaciones para todo. De todos modos, si tienen dudas, consultas, o propuestas para el curso, me pueden escribir a:

pagina_resorte@yahoo.com               (sin acentos ni mayúsculas)

También pueden participar en la página de Facebook:

La página web de Resorte


Compuertas lógicas

La lógica digital de uso más extendido se basa en la lógica binaria. La lógica binaria tiene sólo dos estados, que reciben muchos nombres, alto y bajo, activo e inactivo, 1 y 0... En el capítulo 3 de este curso hablaremos sobre cuándo una señal está en 1 y cuándo en 0.

La compuerta AND más simple tiene dos entradas y una salida. Si las dos entradas de la compuerta AND están en 1, la salida también estará en 1. En la parte izquierda de la figura, pueden ver el símbolo de una compuerta AND de dos entradas A y B, y salida S. Habiendo dos entradas, con dos estados posibles para cada entrada, hay sólo cuatro combinaciones que se muestran en la "tabla de verdad" a la derecha. Como ven, para que la salida esté activa, ambas entradas deben estar activas. AND en inglés quiere decir "Y". Para que la salida esté activa, la entrada A tiene que estar activa, Y la entrada B tiene también que estar activa.


La compuerta OR de dos entradas activa su salida si la entrada A está activa, O la entrada B está activa, O si ambas entradas están activas. Como habrán adivinado, OR en inglés significa "O".


Por último, la compuerta NOT, o inversora, simplemente cambia la salida por su inversa. Si la entrada estaba activa la salida será inactiva, y viceversa.

Seguramente habrán oído nombres de otras compuertas, como XOR, NAND, NOR, etc. Sin embargo, con sólo estas tres clases de compuertas que hemos comentado arriba, AND, OR y NOT, podemos resolver cualquier problema lógico combinatorio.

Se llama función lógica combinatoria a la función cuya salida depende sólo del valor actual de las entradas. Lo contrario a funciones combinatorias son las funciones secuenciales. Las funciones secuenciales tienen elementos de memoria, de los cuáles uno de los más simples es el flip-flop D, que comentaremos en el capítulo 2.

Antes de eso demos un ejemplo de dos aplicaciones que requieren lógica combinatoria (sin memoria) y lógica secuencial (con memoria).

Un simple interruptor de pared realiza lógica combinatoria. Si activamos el interruptor, se enciende la luz. Incluso un sistema lógico como los interruptores de combinación, que se usan para encender o apagar una luz a los extremos de un pasillo o una escalera, son ejemplos de lógica combinatoria.

En cambio, supongamos que queremos controlar cuanto tiempo está encendido un calefón eléctrico. Si durante el día el calefón estuvo encendido más de dos horas, no se lo podrá encender nuevamente. Para realizar esta lógica necesitamos algún tipo de contador que acumule el tiempo durante el cual estuvo encendido el calefón. A medianoche ponemos a cero el contador, ya que el límite es diario. Una lógica de este tipo requiere una memoria, en este caso el contador, que acumula el tiempo durante el cual estuvo encendido el calefón. Si alguien quiere encender el calefón, y ya ha estado funcionando más de dos horas, no podrá hacerlo. Es más, luego de dos horas de estar encendido, se apagará de forma automática. El sistema de control del calefón con límite de uso por día es un ejemplo de lógica secuencial (con memoria).

Bueno, eso es todo por ahora. En la próxima lección hablaremos de otro componente fundamental para la lógica programable: el flip-flop D. 



Te interesa la tecnología de FPGAs? Te invito a visitar otro blog mío (en inglés)

Comentarios

Entradas populares de este blog

Matemática Recreativa: Trepando las dimensiones (primera parte)

Introducción a la lógica de relés