Dispositivos Lógicos Programables

 Un Dispositivo Lógico Programable (PLD) es un componente electrónico usado para construir circuitos digitales reconfigurables. A diferencia de una compuerta lógica que tiene una función fija, los PLDs salen de fábrica sin una función en específico, por lo tanto necesitan ser programados o reconfigurados antes de poder ser usados. Los PLDs tienen varias ventajas. La primera es la habilidad de integración, que permite integrar una gran cantidad de funcionalidad en un solo chip. Los PLDs eliminan el uso de múltiples chips así como la inconveniencia y desconfianza de usar cableado externo. La segunda ventaja es el hecho de poder cambiar el diseño. Muchos PLDs permiten ser reprogramados o reconfigurados. Existen dos ramas principales dentro de los dispositivos lógicos programables, la lógica programable de campo y la de fábrica. El término campo en este contexto implica que los dispositivos puedan ser programados en el “campo” del usuario, mientras que la lógica de fábrica puede ser programada en la misma fábrica donde se construyen, de acuerdo a los requerimientos del cliente. En este caso, la tecnología de programación usa procesos irreversibles, por lo que solo es posible hacerlo una vez.

Algunos ejemplos de lógica programable de fábrica son los MPGAs y memorias de sólo lectura (ROMs). Las primeras generaciones de muchos dispositivos programables también fueron programados únicamente en fábrica. Las ROMs son consideradas como lógica programable porque, aunque fueron concebidas como unidades de memoria, también sirven para implementar cualquier circuitería combinacional. Los MPGAs son arreglos de compuertas tradicionales que requieren una máscara para ser diseñados. Los MPGAs son también llamados simplemente gate arrays y han sido la tecnología popular para crear ASICs (Application Specific Integrated Circuits). La lógica programable por el usuario basada en compuertas AND y OR fue desarrollada al inicio de la década de los ‘70s. Para 1972-73 ya estaban disponibles arreglos lógicos programables una sola vez que permitían personalizaciones instantáneas para diseñadores. Algunos se refieren a estos circuitos como FPLAs (Field Programmable Logic Arrays).

 Monolithic Memories Inc. (MMI), una compañía comprada por Advanced Micro Devices (AMD) creó circuitos integrados llamados PLAs (Programmable Logic Arrays) que podían tener el mismo rendimiento y funcionalidad que 5 a 20 chips comerciales. Un dispositivo similar es el PAL (Programmable Array Logic). PALs y PLAs contienen arreglos de compuertas. En el PLA se tiene un arreglo de compuertas AND programable y un arreglo de compuertas OR programable, permitiendo a los usuarios implementar funciones combinacionales en dos niveles de compuertas. El PAL es un caso especial del PLA, ya que el arreglo de ORs es fijo y el único arreglo programable es el de compuertas AND. Muchas PALs también contienen flip flops. Los primeros dispositivos programables permitían ser programados una sola vez. El siguiente avance tecnológico fue el poder borrar los dispositivos, lo cual al inicio se hacía por medio de luz ultravioleta, que significaba remover el dispositivo del circuito para ponerlo en un ambiente ultravioleta. Este proceso era lento (de 10 a 15 minutos) y no permitía borrar la información en el circuito. El siguiente avance fue la tecnología de borrado eléctrico, que permitió la creación de dispositivos que se podían borrar rápida y fácilmente así como ser reprogramados sin necesidad de removerlo del circuito. 2.2 SPLDs Los PLAs, PALs, GALs y ROMs son llamados SPLDs (Simple Programmable Logic Devices) a partir del surgimiento de los CPLDs (Complex Programmable Logic Devices) los cuales básicamente contienen múltiples PLDs en el mismo chip.

La compañía Lattice Semiconductor creó dispositivos similares que tienen la capacidad de ser programados dentro del circuito (in-circuit programming) y lo llamó Generic Array Logic (GAL). Las GALs son perferctas para implementar pequeñas cantidades de lógica de interfaz. La mayoría de los PLDs, como PALCE22V10, PALCE20V8 entre otros, tienen sus equivalentes en GAL, llamados GAL22V10, GAL20V8, etc. Existen programas CAD (Computer Aided Design) para PALs y PLDs. Estos programas aceptan ecuaciones lógicas, tablas de verdad, gráficas de estados y demás como entrada para generar automáticamente los patrones de bits que se requieren. Posteriormente, un programador puede descargar dichos patrones a los dispositivos para crear las conexiones necesarias. PALASM y ABEL son ejemplos de lenguajes que fueron populares como lenguaje de diseño para PALs y PLDs, aunque en estos días es posible hacer diseños para GALs en lenguajes como VHDL y Verilog. 2.3 CPLDs Los avances en tecnología han hecho posible la creación de circuitos integrados programables equivalentes a varios PLDs en el mismo chip. A estos circuitos integrados se les llaman dispositivos lógicos programables complejos (CPLDs por sus siglas en inglés). Un CPLD es un circuito integrado que consiste en un número de bloques lógicos parecidos a un PAL, incluyendo además una matriz programable de interconexiones entre estos bloques. Algunos CPLDs se basan en la arquitectura del PAL, en cuyo caso cada macrocelda contiene un flip flop y una compuerta OR, cuyas entradas están asociadas a un arreglo de compuertas AND fijo, mientras que los CPLDs que se  basan en PLAs cada salida de compuertas AND en un bloque se puede conectar a la entrada de cualquier compuerta OR en ese bloque. Los más grandes fabricantes de CPLDs hoy en día son Xilinx, Altera, Lattice Semiconductor, Cypress y Atmel. Algunos de estos vendedores especifican sus productos en términos de cantidad de compuertas, mientras que otros lo hacen en términos de elementos lógicos. Por ejemplo, Altera vende tres series de CPLDs, las cuales son MAX II, MAX 3000 Y MAX 7000. Cada una de éstas tiene especificaciones en general y los dispositivos dentro de cada serie se diferencian de acuerdo a sus capacidades lógicas y el número de pines de entrada/ salida.

Comentarios

Entradas populares de este blog

Software Xilinx ISE

Calculara la capacidad de carga dinámica

Compuertas Lógicas y Algebra de Boole clase 13 de septiembre