Introducción a la lógica programable (3) - Electrónica Digital y Lógica Programable

En las clases anteriores hablamos de compuertas lógicas y del flip-flop tipo D. En esta entrega hablaremos sobre la electrónica digital y sobre lógica programable.

Electrónica Digital

La electrónica "tradicional" es la electrónica analógica, en la que la tensión puede variar en forma continua dentro de un rango definido. En la electrónica digital, en cambio, la tensión interesa solamente si supera un valor determinado (y entonces se dice que está en estado alto, o uno), o si está por debajo de un valor determinado, y entonces decimos que está en cero.

Una familia lógica de uso extendido en estos días es LVTTL (TTL de bajo voltaje). 

TTL son siglas que nos dicen que la compuerta lógica está construida por transistores bipolares. Los circuitos integrados que implementan lógica LVTTL funcionan con una tensión de alimentación de 3,3V. En la lógica LVTTL, si tensión a la entrada de una compuerta es mayor que 2.4V, la entrada está en 1. Si la tensión es menor a 0.4V, la entrada está en cero.

Uds. quizá se preguntarán para que sirve la lógica digital. Una de las principales ventajas de las señales digitales es su gran inmunidad al ruido. Si queremos, por ejemplo, saber en forma electrónica la temperatura de un cuarto, la manera tradicional (analógica) era producir, mediante un sensor, una tensión que fuera proporcional a la temperatura a medir.

Esa tensión era enviada al sistema de control, o a un panel de instrumentos. En el panel, la deflexión de la aguja nos muestra la temperatura, ya que a mayor temperatura, mayor tensión, y la aguja se moverá a una posición más alta, indicando mayor temperatura.

El problema es que en todo sistema se introducen ruidos. Ya sea por causas naturales, como la radiación del sol y otras fuentes de radiación del espacio, o por causas artificiales, como el arranque de un motor, se producen ruidos que pueden afectar en forma temporal o permanente la señal que nos interesa, en el caso de nuestro ejemplo, la temperatura.

Pero si convertimos la temperatura a un conjunto de señales de información digital, tal señal es de forma inherente más resistente al ruido. En nuestro ejemplo de señales LVTTL, si la señal de temperatura está codificada usando varios bits, para que un ruido nos produjera un error debería cambiar la tensión de alguno de esos bits en casi dos voltios.

Además, en nuestro mundo digitalizado de hoy, una vez que la señal está en formato digital, la podemos enviar mediante una de las muchas redes digitales que hoy están al alcance de todos, la podemos mostrar en nuestra compu o nuestro teléfono inteligente, etc.

En este mundito super digitalizado de hoy, el conocimiento de la lógica programable es una herramienta de enorme utilidad.


Lógica programable

Una función lógica combinatoria compleja se puede realizar utilizando muchas compuertas simples interconectadas. Cuando todavía no existía la lógica programable, los ingenieros debían utilizar todos los trucos que tuvieran a mano para reducir la cantidad de compuertas necesarias para realizar un circuito de control. Cuantas más compuertas eran necesarias, más compleja, grande y cara era la tarjeta que realizaba la función de control.

Pero aún logrando minimizar la cantidad de compuertas usadas, todavía queda un problema muy grande. Muchas veces las especificaciones de un producto no están bien definidas. Todos aprendemos a medida que andamos, y muchas veces las especificaciones de un controlador van cambiando con el tiempo por la experiencia adquirida o porque surgen nuevas necesidades.




Una tarjeta de control hecha por "chips" lógicos interconectados es muy difícil o casi imposible de modificar, porque las conexiones son parte de un circuito impreso, y la función de cada chip ya está definida. Si uno de los chips de nuestra tarjeta tiene cuatro compuertas NAND de dos entradas cada una, y después descubrimos que querríamos cambiar una de las compuertas por una NOR, descubriríamos que en los chips tradicionales es casi imposible.

Del mismo modo, si quisiéramos conectar la salida de una compuerta a un lugar distinto del original, sería casi imposible porque la conexión esta fijada por el circuito impreso.

Las tarjetas electrónicas necesitaban soluciones flexibles, que pudieran ser cambiadas a medida que las especificaciones cambian. Se encontraron dos caminos para lograrlo:
  • Los microprocesadores, y
  • La lógica programable
Los microprocesadores realizan lógica que puede ser modificada con facilidad. En su formato típico, un microprocesador va procesando instrucciones de a una por vez. Las instrucciones le dicen a la unidad central de proceso cómo efectuar la lógica de control. En esencia, un microprocesador es un dispositivo secuencial, que realiza en cada instante de tiempo una sola función. Las realiza en forma muy rápida, sobre todo desde nuestro punto de vista, pero aún así se trata de operaciones realizadas en serie.

Las lógica electrónica, por contrario, puede realizar muchas operaciones en paralelo. Es por eso que para muchas aplicaciones (sobre todo, cuando se requiere una altísima velocidad de respuesta, o cuando la cantidad de entradas/salidas a controlar es muy grande), se prefiere la segunda opción, o sea, la lógica programable.

Esto es todo por ahora. En la próxima lección veremos nuestro primer ejemplo práctico de lógica programable en lenguaje System Verilog.


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


Comentarios

Entradas populares de este blog

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

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

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