Un dispositivo lógico es un componente electrónico que realiza una función definida que se decide en el momento de la fabricación y que nunca cambiará. Por ejemplo, un no la puerta siempre invierte el nivel lógico de la señal de entrada y no hace/puede hacer nada más. Por otro lado, Dispositivos Lógicos Programables (PLD) son los componentes que no tienen una función específica asociada a ellos. El usuario puede configurarlos para que realicen una determinada función, en función de sus necesidades, y pueden modificarse posteriormente para que realicen alguna otra función en un momento posterior, es decir, son reconfigurables. Sin embargo, el grado de flexibilidad que se ofrece depende de su tipo.
Tipos de dispositivos lógicos programables
Conjunto Lógico Programable (PLA)
Este dispositivo se compone de un sistema programable Y la puerta y Puerta de la sala de operaciones matrices que deben ser configuradas por el usuario para obtener la salida.
Lógica de Conjunto Programable (PAL)
Los PAL utilizan una matriz de puertas OR con lógica fija mientras que una matriz de puertas AND que puede ser programada según las necesidades del usuario. Como resultado, estos dispositivos expresan la salida como una combinación de entradas en forma de suma de productos.
Generic Logic Array (GLA)
Estos dispositivos tenían sus propiedades similares a las de los PAL, además de ser eléctricamente borrables y reprogramables. Esta importante característica resultó ser meritoria ya que facilitó considerablemente el diseño del prototipo, lo que a su vez redujo el tiempo de comercialización.
Dispositivo Lógico Programable Complejo (CPLD)
Los CPLD son más densos que los PAL y están compuestos por un gran número de elementos lógicos programables. La interconexión entre estas macrocélulas debe ser establecida por el usuario a través de la red de interconexión. Aquí la suma de los elementos lógicos de establecimiento se combinan para formar estructuras con el fin de reducir el número de pines de entrada y salida (IO). Esto facilita la aplicación de un diseño lógico más complejo con un tiempo de propagación ligeramente peor en comparación con el de los PAL. Éstos ofrecen características de tiempo predecibles, lo que los hace más adecuados para aplicaciones de control críticas de alto rendimiento. Se prefieren los CPLD para implementar diseños basados en lógica combinatoria.
Conjunto de puertas programables en campo (FPGA)
Los FPGAs se basan en la tecnología de matriz de puertas, a diferencia de la tecnología PROM de los primeros PLDs. Estos dispositivos constan de bloques lógicos configurables (CLBs) junto con una matriz de interconexión que funciona en el medio. Las FPGAs funcionan en base a las tablas de búsqueda (LUTs) y las chanclas que forman parte de los CLB. El usuario tiene que programar las CLB para que realicen una determinada función lógica y luego utilizar la matriz de interconexión para conectar uno o más bloques lógicos entre sí. Además, se componen de puertos de entrada y salida (E/S) que facilitan el diseño tanto desde el punto de vista de la programación como de la depuración.
Estos dispositivos son capaces de implementar diseños secuenciales basados en máquinas de estado junto con los diseños basados en la lógica combinatoria. Los FPGAs se utilizan para realizar diseños más complejos en comparación con los CPLDs debido a su alta densidad. Además, las FPGAs ofrecen al cliente la flexibilidad de diseñar/re-diseñar la lógica incluso después de ser desplegadas en el campo de trabajo lo que les da el nombre de programables en el campo. Sin embargo, las FPGAs tienen mayores retardos de propagación cuando se comparan con los CPLDs.
Todos estos PLD son programables usando programas de dispositivos que transfieren el patrón lógico booleano al dispositivo programable.