Lógica Digital

Los valores de tensión y corriente de cualquier señal en un circuito electrónico son analógicos. Es decir que son continuos en amplitud y en el tiempo (no hay saltos instantáneos).

Los elementos para la construcción de circuitos digitales han sido diseñados para que, bajo ciertas condiciones de operación, se pueda aplicar la abstracción de usar solo dos valores posibles. En todo momento puede verse a cada señal como teniendo uno de dos valores lógicos, aunque en realidad su variación es continua. La lógica digital esconde los efectos analógicos de los circuitos en el mundo real, y permite estudiar y diseñar circuitos con variables que toman solo dos valores: 0 o 1 (ALTO o BAJO, abierto o cerrado, etc.).

Esta simplificación hace que se pueda hacer análisis y diseño de los circuitos mediante técnicas abstractas, como tablas de verdad y álgebra de Boole. Los valores 0 o 1 se representarán con diferentes valores de voltaje, corriente o estados de un circuito dependiendo de la tecnología y procesos utilizados en cada caso.

Análisis, Síntesis y Diseño

El análisis de un circuito lógico se refiere a comprender que función cumple un circuito dado. Es la tarea de analizar su funcionalidad y describir el comportamiento del circuito de manera formal y fácil de comprender (por ejemplo, partiendo de un circuito se puede obtener un tabla de verdad o ecuación que permite entender como se comporta).

La síntesis es el proceso inverso. Partiendo de una descripción abstracta se obtiene un circuito lógico que implementa esa funcionalidad. Por ejemplo, a partir de una tabla de verdad o ecuación se crea un circuito con compuertas que implementa la función descripta por la tabla.

El diseño es parte del ciclo de síntesis, y es un término que puede tener diferentes significados para personas diferentes. Para poder sintetizar un circuito, primero se debe tener una descripción formal de lo que se quiere implementar. Muchas veces, el proceso de llevar una idea o especificación a una descripción formal es la parte más complicada en la creación de un circuito lógico. Al hablar de diseño de un circuito lógico, nos estaremos refiriendo a las tareas de especificar un circuito, definirlo y describirlo para luego poder transformar esa descripción a un circuito funcional (que puede "armarse" y funcionar en la vida real).

Tradicionalmente, el primer paso del diseño es el armado de la descripción formal usando tablas de verdad, diagramas de flujo, ecuaciones lógicas, etc. para luego sintetizar el circuito usando diferentes técnicas. En la actualidad, existen herramientas y tecnologías que automatizan estas tareas (herramientas EDA - Electronic Design Automation). El diseño, en estos casos, puede ser la descripción del circuito mediante un lenguaje de descripción de hardware o un esquema gráfico que luego se transformará en una implementación mediante el uso de un programa de computadora. Estos programas implementan de manera transparente al usuario diferentes técnicas de síntesis.


FPGAs

Los dispositivos lógicos programables son circuitos integrados digitales que no tienen una función predefinida por el fabricante. Su función puede ser definida (o programada) por el usuario. Permiten reemplazar grandes diseños digitales que antes se implementaban con componentes discretos (como compuertas y flip-flops) por un solo integrado. Debido a la gran capacidad lógica que tienen los dispositivos modernos, sistemas completos pueden desarrollarse sobre un solo circuito integrado.

Esto da lugar a las denominaciones System-on-a-Programmable Chip, o SoPC (sistema sobre un circuito integrado programable) y System-on-a-Reprogammable Chip (SoRC). Los dispositivos actuales (CPLD y FPGAs) tienen una capacidad lógica de hasta millones de compuertas, incluyen interfaces programables para varios estándares de interfase eléctrica y tienen bloques de funciones especiales embebidos entre la lógica programable tales como memoria, multiplicadores o CPUs completas. Esta gran capacidad y variedad de los dispositivos los hace sumamente útiles a la hora de crear prototipos, desarrollo rápido de nuevos productos, para los productos que deben ser reconfigurables por naturaleza o productos que se producen en bajos volúmenes y para los cuales no es económicamente viable crear un integrado a medida.


Bloques de procesamiento analógico


En los últimos años han ido apareciendo dispositivos progrables que no solo contienen lógica digital configurable, sino que también contienen bloques de procesamiento analógico y conversores DAC y ADC.