31/08/13
Di sposi ti vos Log i cos Pr og r amabl es ( par te 1)
Crea tu blog gratis en Obolog o Identifícate Avisar de contenido inadecuado Electrónica Integrada Maestria Ingenieria Electrónica Esc ribe aquí... aquí... Buscar: Escribe
Buscar
Etiquetas Archivos Fotos Contacto Medidor de temperatura con Termopar Dispositivos Logicos Programables... Portada
Dispositivos Logicos Programables (parte 1) por JORGE por JORGE miér coles, coles, 25 de febrero del 2009 a las 00:00 guar dado dado en Dsp Twittear
Me gusta
5
DISPOSITIVOS DISPO SITIVOS LOGICOS PROGRAMABLE INTRODUCCIÓN En la década de 1970, cuando los circuitos lógicos Transistor-Transistor (TTL), se introducen al mercado, se convierten en los elementos básicos para los diseñadores de sistemas digitales. Por muchos años, las estructuras de estos circuitos se mantuvieron, cambiando solamente su tecnología de proceso para hacerlos más versátiles y rápidos, como fueron los casos de Low Power Schottk y (LS),. Advanced Low Power Schottky (ALS), Standart Schottky (S), Advanced Standart Schottky (AS), Fast (F), HCMOS, Advanced CMOS Logic (ACL), BiCMOS (BCT) y Advanced BiCMOS Technology (ABT). A mediados de esta misma década, se enfocaron esfuerzos en desarrollar dispositivos que fueran capaces de reemplazar a esta tecnología para reducir espacio en las tarjetas de circuito impreso. La Memoria de Sólo Lectura Programable P rogramable por el usuario una sola vez ( Programmable Read Only Memory, PROM), desarrollada por Harris y Monolitics Memories Inc., fue f ue el primer dispositivos dispositivos " programable" que prometí prometíaa ser un el elemen emento to lógi lógico co uni universal y disposi dispositi tivo vo de propósito propósito i i ndustr i al.obol og .com/disposi ti vos- log i cos- pr og r amables- par te- 1- 209085
1/29
31/08/13
Di sposi ti vos Log i cos Pr og r amabl es ( par te 1)
general para tales aplicaciones. Tuvo aplicaciones como decodificador de direcciones de memoria y creció hasta tamaños de 32 palabras por 8 bits. National Semiconductors fue el pionero en el desarrollo de Arreglos Lógicos Programables (Programmable Logic Arrays, PLA's) en forma de un DIP grande de 24 pines o terminales (0.6 pulgadas de ancho) con 96 términos productos, 14 entradas, 8 salidas. Intersil hizo el primer A rreglo rreglo Lógico Programable en el Campo (Field (Field Programmable Logic Array, FPLA), pero con la mitad de capacidad capacidad del dispositivo dispositivo creado por National Semiconductor. Signetics incremento el empaque en número de pines a 28, el FPLA 82S10 de 16 entradas, 8 salidas, y 48 términos producto. Monolitics Monolitics Memories fue la
prim primer compañ compañíía qu quee tomó tomó ventaj entajaa de la tecnol tecnolog ogíía bipol bipolar ar de los fusi usibles bles de intercon terconex exiión de las PROM´s para crear algunas FPLA´s pequeñas y veloces. También fue la primera en imponer como estándar industrial, los DIP´s delgados de 20 pin pines (0.3 pul pulgadas). gadas). La lógica programable fue desarrollada como una alternativa entre los siguientes métodos de diseño: Los dispositivos de función fija (o de Lógica de Catálogo C atálogo), y Los circuitos integrados elaborados ex profeso (CUSTOM). Cada uno de éstos tiene sus ventajas y desventajas que determinan su uso apropiado. La ventaja de utilizar estos dispositivos en el diseño digital radica en que todo el desarrollo se lleva a cabo en un solo ambiente de trabajo, esto es, el diseñador propone la función lógica a realizar y en base a métodos de descripción define los parámetros de su problema, esto se hace por medio de programación. Una vez acotado el problema, se optimiza su representación lógica y eléctricamente la misma, se selecciona el dispositivo que mejor se adapte a las condiciones de nuestro problema según criterios de velocidad, potencia, costo, etc., y finalmente se programa y verifica en el mismo lugar el o los dispositivos seleccionados. Esto ha sido posible no sólo por el avance tecnológico propiamente, sino también a la creación de herramientas de software que permiten una valiosa ayuda en la representación de los diseños.
CLASIFICACIÓN DE LOS CI . Los fabricantes han desarrollado muchas familias de circuitos digitales integrados -grupos que pueden ser utilizados juntos para constru construiir un sistem sistemaa digi digital-. tal-. Los CI de una una fam famiilia se dice dice que que son compati compatibles, bles, y pueden con conectar ectarse se fácil fácilmente ente entre entre sí. sí. Los CI digitales pueden dividirse en bipolares y unipolares. Los CI digitales bipolares se fabrican a partir de elementos comparables a los transistores bipolares, diodos y resistores discretos. La familia TTL es la más popular de los CI que usan tecnología bipolar. Los CI integrados unipolares se fabrican a partir de elementos comparables a los transistores de efecto de campo de puerta aislada (IGFET). La familia CMOS (metal-óxido semiconductor complementario) es un grupo de CI ampliamente usado basado en la tecnología metal-óxido semiconductor (MOS). Los CI pueden puede n agruparse agrupars e según su complejidad complejidad como co mo sigue: sigue:
1. SSI (pequeña escala de integración): Número Número de compu compuerta ertas: s: menos enos de 12 Dispositivos Dispositivos digitales digitales típicos típicos:: compuertas compuerta s y flip-flops flip-flops
2. MSI (mediana escala de integración): Número Número de compu compuerta ertas: s: de 12 a 99 Dispositivos digitales típicos: sumadores, contadores, decodificadores, codificadores, multiplexores, demultiplexores y registros
3. LSI (alta escala de integración): i i ndustr i al.obol og .com/disposi ti vos- log i cos- pr og r amables- par te- 1- 209085
2/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Número de compuertas: de 100 a 9,999 Dispositivos digitales típicos: relojes, chips pequeños de memoria, calculadoras
4. VLSI (muy alta escala de integración): Número de compuertas: de 10,000 a 99,999 Dispositivos digitales típicos: microprocesadores, memorias, calculadoras avanzadas.
5. ULSI (ultra alta escala de integración): Número de compuertas: sobre 100,000 Dispositivos digitales típicos: microprocesadores avanzados.
El diseñador de circuitos digitales dispone de muchas familias CI digitales, algunas de ellas se mencionan a continuación:
1. Familias bipolares: RTL lógica de resistencia-transistor DTL lógica de diodo-transistor TTL lógica de transistor-transistor DTL lógica de emisor acoplados HTL lógica de alto umbral IIL lógica de inyección integrada
2. Familias CMOS: PMOS metal-óxido canal P NMOS metal-óxido canal N CMOS metal-óxido semiconductor complementario. Las tecnologías TTL y CMOS son utilizadas comúnmente para fabricar circuitos integrados SSI y MSI. Los dispositivos MOS (PMOS, NMOS y CMOS) dominan en la fabricación de dispositivos LSI y VLSI. NMOS es especialmente popular en los microprocesadores y en las memorias. CMOS es popular en aplicaciones de muy baja potencia tales como calculadoras, relojes de pulsera y computadoras alimentadas por baterías.
CLASIFICACIÓN DE LOS CI. POR LOGICA DE DISEÑO. Es válido realizar una clasificación de las formas de implementación de lógica de la siguiente manera:
1. Lógica convencional: Compuertas. Multiplexores Demultiplexores MUX + DEMUX. iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
3/29
31/08/13
Dispositivos Logicos Programables (parte 1)
2. Lógica programable por hardware ROM: ROM ( Read-Only M emory) PROM ( P rogrammable Read-Only M emory) EPROM ( E rasable P rogrammable Read-O nly M emory) EEPROM ( E lectrically E rasable P rogrammable Read-Only M emory) FLASH (Flash Memory) PLD: SPLD (Simplex Programmable Logic Device SPLDs): PLA ( P rogrammable Logic Array) PAL ( P rogrammable Array Logic) GAL (G eneric Array Logic) CPLD (C omplex P rogrammable Logic Device) FPGA (F ield -P rogrammable G ate Array) ASIC ( A pplication- S pecific I ntegrated C ircuit ) MPGA ( M ask -P rogrammed G ate-Arrays) 3. Lógica programable por software. Microprocesador Microcontrolador DSP
PLD'S. Antes de la invención de los PLDs, los chips de memoria de solo lectura ( ROM ) se utilizaban para crear funciones de lógica combinacional arbitrarias con un número determinado de entradas. Considerando una ROM con m entradas, a las que se denomina líneas de dirección; y con n salidas, a las que se denomina líneas de datos. Cuando se utiliza como memoria, la ROM contiene 2m palabras de n bits. Supongamos que las entradas no son direccionadas por una dirección de m-bits, sino por m señales lógicas independientes. Teóricamente, hay 2m funciones booleanas posibles de estas m señales, pero la estructura de la ROM permite solo producir n de estas funciones en los pines de salida. Por lo tanto, en este caso, la ROM se vuelve un equivalente de n circuitos lógicos separados, cada uno generando una función elegida de las m entradas. La ventaja de utilizar una ROM de esta forma es que cualquier función concebible de las m entradas puede ser colocada por las n salidas, haciendo este el dispositivo lógico combinacional de mayor propósito general disponible. También las PROMs ( ROMs programables), EPROMs ( PROMs de borrado por ultravioleta) y EEPROMs ( PROMs de borrado eléctrico) disponibles pueden ser programadas de esta manera con un programador PROM hardware o software. Sin embargo, existen varias desventajas: Son bastante más lentas que los circuitos lógicos dedicados. No necesariamente pueden proveer de "protección" ante transiciones lógicas asíncronas. Consumen mayor potencia. Sólo se utiliza una pequeña fracción de su capacidad en una sola aplicación: un uso ineficiente del espacio. Por si solas no pueden ser utilizadas para circuitos de lógica secuencial, puesto que no contienen biestables. Para realizar algunos circuitos secuenciales (como máquinas de estado) se utilizaba un registro TTL externo. iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
4/29
31/08/13
Dispositivos Logicos Programables (parte 1)
En 1970, Texas Instruments desarrolló un CI de máscara programable basado en la memoria asociativa de sólo lectura ( ROAM ) de IBM. Este dispositivo, el TMS2000, era programado alterando la capa metálica durante la producción del CI. El TMS2000 tenía hasta 17 entradas y 18 salidas con 8 biestables JK como memoria. Texas Instruments acuño el término Programmable logic array para este dispositivo. En 1973 National Semiconductor introdujo un dispositivo PLA de máscara programable (DM7575) con 14 entradas y 8 salidas sin registros de memoria. Este era más popular que el de Texas Instruments, pero el coste de hacer la máscara metálica limitaba su uso. El dispositivo es significativo por ser la base de la FPGA ( Field Programmable Logic Array) producido por Signetics en 1975, el 82S100. En 1971, General Electric desarrollaba un PLD basado en la nueva tecnología PROM. Este dispositivo experimental mejoró el ROAM de IBM permitiéndole realizar lógica mulinivel. Intel acababa de introducir la PROM de puerta flotante borrable por UV por lo que los desarrolladores en General Electric incorporaron esa tecnología. El dispositivo de General Electric era el primer PLD jamás desarrollado, antecesora del EPLD de Altera en una década. General Electric obtuvo varias patentes tempranas en PLDs. En 1974, General Electric firmó un acuerdo con Monolithic Memories para desarrollar un PLD de máscara programable incorporando las innovaciones de General. El dispositivo se bautizó como Programmable Associative Logic Array (PALA, matríz lógica asociativa programable). El MMI 5760 fue terminado en 1976 y podía implementar circuitos multinivel o secuenciales de más de 100 puertas. El dispositivo estaba soportado por el entorno de desarrollo de General, donde las ecuaciones Booleanas podían ser convertidas a patrones de máscara para configurar el dispositivo. El integrado nunca se comercializó. La mayoría de los PLDs (los SPLDs) están formados por matrices de conexiones: una matriz de compuertas AND, y una matriz de compuertas OR y algunos, además, con registros. Con estos recursos se implementan las funciones lógicas deseadas mediante un software especial y un programador. Las matrices pueden ser fijas o programables. Una matriz de conexiones es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de intersección, mediante el cual se seleccionan cuales entradas serán conectadas a las compuertas AND/OR. Muchos dispositivos también contienen combinaciones de flip-flops y latches que pueden usarse como elementos de almacenaje para entrada y salida de un dispositivo. Los dispositivos más complejos contienen macrocélulas. Las macrocélulas permite al usuario configurar el tipo de entradas y salidas necesarias en el diseño. Los PLDs facilitan el proceso de diseño y reducen el tiempo de desarrollo, cuando se requieren prototipos o producción de baja escala, pues todo el proceso se puede llevar a cabo con la ayuda de una computadora personal, programas de aplicación y el programador los cuales actualmente están disponibles a bajo costo. Algunos fabricantes de PLD's son: Actel (http://www.actel.com/) Altera Corp. (http://www.altera.com/) Atmel Corp. (http://www.atmel.com/) Chip Express (http://www.chipexress.com/) Cypress Sem.(http://www.cypress.com/) Lattice Sem. (http://www.latticesemi.com/) Quicklogic Corp. (http://www.quicklogic.com/) Xilinx Inc. (http://www.xilinx.com/)
PAL'S. iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
5/29
31/08/13
Dispositivos Logicos Programables (parte 1)
El primer circuito PAL, Programmable Array Logic ( Matriz lógica programable), fue el 16L8, desarrollado por MMI en 1978 con de 20 terminales (pines), con soporte para 8 salidas y hasta 16 entradas con tecnología Bipolar. La arquitectura era más sencilla que la FPLA de Signetics porque omitía la matriz OR programable. Esto hizo los dispositivos más rápidos, más pequeños y más baratos. Estaban disponibles en encapsulados de 20 pines y 300.000 DIP, mientras que las FPLAs venían en encapsulados de 28 pines y 600.000. Ciertas publicaciones sobre PALs desmitificaban el proceso de diseño. El software de diseño PALASM ( PAL Assembler , ensamblador PAL) convertía las ecuaciones Booleanas de los ingenieros en el patrón de fusibles requerido para programar el dispositivo. Los PAL de MMI pronto fueron distribuidos por National Semiconductor, Texas Instruments y AMD. Con este tipo de dispositivos pueden simularse arreglos del tipo de Productos Lógicos, o en su caso realizar decodificación de direcciones. Sin embargo, la mayor aportación de los dispositivos PAL fue generar aplicaciones específicas en muy corto tiempo. La operación de estos dispositivos inicio manejando velocidades de 4.7 Mhz para la IBM PC hasta 33 Mhz, para posteriormente alcanzar los 50 Mhz; hoy se pueden encontrar dispositivos que operan con un retraso de propagación de la señal del orden de 5ns. Un dispositivo PAL, esta contruido con un plano programable AND seguido por un plano fijo OR. Las salidas de las compuertas OR son sumas de productos que pueden ser opcionalmente registradas por un flip-flop en la mayoría de los dispositivos. Los PALs también ofrecen la ventaja de ser programables en campo. Cada salida en un dispositivo tipo PAL estándar tiene una compuerta OR, que es única a esa salida. Este no proporciona términos producto compartidos. Como un número limitado de términos producto se abastecen para cada salida del PAL, las técnicas de minimización lógica son importantes para implementar circuitos lógicos en este tipo de dispositivo. Con su estructura simple de dos niveles, como se muestra en la figura 1, este tipo de PLDs permite la implementación de circuitos lógicos de alta velocidad. Sin embargo, su estructura simple también es su principal desventaja, ya que solo se pueden implementar pequeños circuitos lógicos representados con un modesto número de términos producto, porque su estructura de interconexión esta fija en cuanto a que no se puede configurar la salida si se requiere que sea activo alto, activo bajo, con o sin registro.
Figura 1. Arreglo interno de un PLA iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
6/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Una variación sobre los circuitos PALs básicos es la incorporación de elementos de memoria para que puedan generar maquinas secuenciales. Un típico ejemplo siguiendo con las PALs de Monolithic Memories es la 16R8 (16 entradas, R de Registro y 8 salidas) la cual incorpora registros de almacenamiento sensibles a la señal de reloj ( flip-flops edge triggered ) a la salida de la compuerta OR. Con esto puede ser empleado para realizar simultáneamente las funciones de almacenamiento de estados (bloque de memoria) y calculo del próximo estado (bloque combinatorio) que caracterizan una maquina secuencial tipo MOORE.
Figura 2. Arreglo PAL con elemento de memoria (FLIP-FLOP) a la salida
GAL'S. GAL (Generic Array Logic), en español Arreglo Lógico Genérico, son un tipo de circuito integrado, de marca registrada por Lattice Semiconductor, que ha sido diseñados con el propósito de sustituir a la mayoría de las PAL, manteniendo la compatibilidad de sus terminales. Los dispositivos GALs, surgen como respuesta a la necesidad de incrementar las interconexiones internas de los dispositivos, teniendo sus salidas conectadas a macroceldas, las cuales pueden ser configuradas a sistemas combinatorios o de lógica con registros. Las estructuras GAL son, básicamente estructuras CMOS PAL, son básicamente la misma idea que la PAL pero en vez de estar formada por una red de conductores ordenados en filas y columnas en las que en cada punto de intersección hay un fusible, el fusible se reemplaza por una celda CMOS eléctricamente borrable (EECMOS). Mediante la programación se activa o desactiva cada celda EECMOS y se puede aplicar cualquier combinación de variables de entrada, o sus complementos, a una compuerta AND para generar cualquier operación producto que se desee. Una celda activada conecta su correspondiente intersección de fila y columna, y una celda desactivada desconecta la intersección. Las celdas se pueden borrar y reprogramar eléctricamente.
ESTRUCTURA DEL GAL El GAL básicamente está formado por una matriz AND reprogramable y una matriz OR fija con configuración programable iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
7/29
31/08/13
Dispositivos Logicos Programables (parte 1)
de salidas y/o entradas. (ver figura 3).
Figura 3. Estructura basica de un dispositivo GAL Las estructuras GAL son estructuras PAL construidas con tecnología CMOS, y fueron comercializadas por primera vez en 1984 por Lattice Semiconductor. Como se ha mencionado, son programables y borrables eléctricamente. Son reprogramables y más flexibles, a la salida de la matriz AND/OR hay un circuito más complejo con selectores y flip-flops que permiten implementar ecuaciones más complejas. Hay distintas arquitecturas según la versión del fabricante. La Figura 4 presenta un ejemplo de una GAL (GAL22V10). Donde el circuito a la salida de la matriz se denomina macrocelda y tienen una escala de integración baja/media. El Terminal puede funcionar como entrada o salida según la programación. Los términos productos se dibujan todos sobre una sola línea para simplificar el diagrama. Un terminal en modo salida puede reflejar la salida Q y Q negada del flip-flop para circuitos secuenciales o la entrada D y negada para circuitos combinacionales. De modo similar puede realimentar el terminal de salida o la salida Q negada del flip flop hacia otros términos. Las GAL se usan para circuitos lógicos sencillos y de complejidad media. La macrocelda, en el idioma inglés es por sus siglas OLMC (Output Logic MacroCells), contienen puertas OR y lógica programable, circuitos lógicos que se pueden programar como lógica combinacional o lógica secuencial (flip-flops, contadores y registros).
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
8/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Figura 4, Esquematico de la GAL22V10
CONSTRUCCION DEL GAL Basada en la estructura básica mostrada anteriormente, la construcción de los dispositivos GALs se diferencian por sus características de entradas, salidas y configuración interna de las macroceldas empleadas, por ejemplo detallemos el GAL 16V8, donde ciertas localidades en el arreglo de memoria son diseñadas para controlar las conexiones programables a la matriz de los términos de entrada, cada bit en esta matriz representa una conexión programable entre un renglón y una columna. Afortunadamente, no es necesario buscar dentro de las direcciones de cada localidad de bit en la matriz. El software de programación cuida de estos detalles en una manera amigable. El diagrama lógico completo del GAL 16V8 se muestra en la figura 5. Este dispositivo tiene ocho terminales de entrada dedicadas (terminales 2-9), dos con funciones especiales (1 y 11), y ocho (12-19) que pueden ser usadas como entradas o salidas.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
9/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Figura 5, Diagrama logico del GAL16V8
La mayoría de los componentes de las GALs son; la matriz de los términos de entrada, las compuertas AND (las cuales generan los términos producto de entrada), y las macroceldas lógicas de salida (OLMCs, Output Logic Macro Cells). Hay que notar que las 8 terminales de entrada son conectados directamente a una columna de la matriz de términos de entrada, y así cada complemento de entrada es conectado a está. Estas terminales siempre serán especificadas como entradas cuando se programa el dispositivo. Un nivel lógico y su complemento son siempre retroalimentados de cada macro a una columna de la matriz de entrada. La fuente de estos niveles lógicos es determinada por la configuración de cada macro. Con esto, da un total de 32 variables de entrada (columnas en la matriz de entrada) que pueden ser programadas como conexiones a las 64 compuertas AND de entradas múltiples. En la matriz de entrada, cualquier columna puede ser conectada a un renglón de entrada durante el proceso de programación. La flexibilidad del GAL 16V8 consiste en su macrocelda lógica de salida programable (ver figura 6). Ocho productos diferentes (salidas de las compuertas AND) son aplicadas como entradas a cada una de las ocho macroceldas. Dentro de cada macro los productos son enviados a una compuerta OR al mismo tiempo para generar la suma de productos (SOP, iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
10/29
31/08/13
Dispositivos Logicos Programables (parte 1)
sum of products). Recordando, cualquier función puede ser expresada como una forma de SOP. Dentro de la macro, la salida del SOP puede ser enrutado a la terminal de salida para implementar un circuito combinacional, o como entrada a un flip-flop tipo D para implementar un circuito con salida registrada.
Figura 6, macrocelda lógica de salida programable de GAL 16V8
FUNCIONAMIENTO DEL GAL Una GAL permite implementar cualquier expresión en suma de productos con un número de variables definidas, por ejemplo este diagrama muestra la estructura básica de una GAL para dos variables de entrada y una salida. El proceso de programación consiste en activar o desactivar cada celda E2CMOS con el objetivo de aplicar la combinación adecuada de variables a cada compuerta AND y obtener la suma de productos. Las celdas E2CMOS activadas conectan las variables deseadas o sus complementos con las apropiadas entradas de las puertas AND. Las celdas E2CMOS están desactivadas cuando una variable o su complemento no se utiliza en un determinado producto. La salida final de la puerta OR es una suma de productos. Cada fila está conectada a la entrada de una puerta AND, y cada columna a una variable de entrada o a su complemento. Mediante la programación se activa o desactiva cada celda E2CMOS, y se puede aplicar cualquier combinación de variables de entrada, o sus complementos, a una puerta AND para generar cualquier operación producto que se desee. Una celda activada conecta de forma efectiva su correspondiente fila y columna, y una celda desactivada desconecta la fila y la columna. Las celdas se pueden borrar y reprogramar eléctricamente. Una celda E2CMOS típica puede mantener el estado en que se ha programado durante 20 años o más. Las macroceldas lógicas de salida (OLMCs) están formadas por circuitos lógicos que se pueden programar como lógica combinacional o como lógica secuencial. Las OLMCs proporcionan mucha más flexibilidad que la lógica de salida fija de una PAL.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
11/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Figura 7, Esquematico de funcionamiento de una GAL de 2 entradas y una salida.
PRINCIPALES FABRICANTES DE DISPOSITIVOS GALs Altera Corp. (http://www.altera.com/) Cypress Sem.(http://www.cypress.com/) Lattice Sem. (http://www.latticesemi.com/) Xilinx Inc. (http://www.xilinx.com/) Philips. (http://ww. philips.com ) Texas Instruments. (http://www.ti.com/)
CPLD'S. Un CPLD (del acrónimo inglés Complex Programmable Logic Device ) que extienden el concepto de un SPLD a un mayor nivel de integración ya que permite implementar sistemas más eficaces, ya que utilizan menor espacio, mejoran la fiabilidad del diseño, y reducen costos. Un CPLD se forma con múltiples bloques lógicos, cada uno similar a un PLD. Los bloques lógicos se comunican entre sí utilizando una matriz programable de interconexiones, lo cual hace más eficiente el uso del silicio, conduciendo a una mejor eficiencia a menor costo. La figura 8, detalla un modelo genérico de una CPLD. A continuación se explican brevemente las principales características de la arquitectura de un CPLD.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
12/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Figura 8, Arquitectura básica de un CPLD
ESTRUCTURA DEL CPLD Existen dos tipos de arquitectura de los CPLD: 1) Arquitectura de Matriz de suma de productos y 2) Arquitectura, Look-up Table (LUT), tabla de datos.
1) Arquitectura de Matriz de suma de productos Se relacionan con un mayor número de interconexión de secciones de compuertas programables, tales secciones pueden ser otros PLD, es decir el CPLD puede contener similares PLD de baja densidad, "PAL", interconectados entre sí, en un solo chip. En las figuras 9 y 10 se muestran los diagramas generales de CPLD's de los fabricantes Altera y Xilinx.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
13/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Fig. 9, Diagrama de bloque de un CPLD (Por ALTERA)
Fig. 10, Diagrama de bloque de un CPLD del fabricante XILINX
Matriz de Interconexiones Programables La matriz de interconexiones programables (PIM) (El fabricante Altera llama a esta estructura "PIA", mientras que XILINX lo identifica como "Product-Term Select Matrix"), permiten unir los pines de entrada/salida a las entradas del bloque lógico, o las salidas del bloque lógico a las entradas de otro bloque lógico o inclusive a las entradas del mismo. La mayoría de los CPLDs usan una de dos configuraciones para esta matriz: interconexión mediante bloques o interconexión mediante multiplexores. El primero se basa en una matriz de filas y columnas con una celda programable de conexión en cada intersección. Al igual que en las GAL esta celda puede ser activada para conectar/desconectar la correspondiente fila y columna. Esta configuración permite una total interconexión entre las entradas y salidas del dispositivo o bloques lógicos. Sin embargo, estas ventajas provocan que disminuya el rendimiento del dispositivo, además de aumentar el consumo de energía y el tamaño del componente. En la interconexión mediante multiplexores, existe un multiplexor por cada entrada al bloque lógico. Las vías de interconexión programables son conectadas a las entradas de un número de multiplexores por cada bloque lógico. Las líneas de selección de estos multiplexores son programadas para permitir que sea seleccionada únicamente una vía de la matriz de interconexión por cada multiplexor la cual se propagara a hacia el bloque lógico. Cabe mencionar que no todas las vías son conectadas a las entradas de cada multiplexor. La rutabilidad se incrementa usando multiplexores de mayor tamaño, permitiendo que cualquier combinación de señales de la matriz de interconexión pueda ser enlazada hacia cualquier bloque lógico. Sin embargo, el uso de grandes multiplexores incrementa el tamaño de dispositivo y reduce su eficiencia.
Bloques Lógicos Un bloque lógico es similar a un PLD, cada uno pose un bloque de compuertas AND y OR en forma de suma de iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
14/29
31/08/13
Dispositivos Logicos Programables (parte 1)
productos, una configuración para la distribución de estas sumas de productos, y macroceldas. El tamaño del bloque lógico es una medida de la capacidad del CPLD, ya que de esto depende el tamaño de la función booleana que pueda ser implementada dentro del bloque. Los bloques lógicos usualmente tienen de 4 a 20 macroceldas. La estructura principal son los bloques de matriz lógicos (LAB) o bloques de Función (Funtion Block), que se comunican en un bus interno con la matriz de Interconexión Programable (PIA) o también llamado Fast CONNECT Switch Matrix. Cada bloque es un grupo de 16 macroceldas; tienen entradas y salidas similares a los PLD de baja densidad, con capacidad de programarse. El número de pines de entrada y/o salida dependerá del dispositivo, para el caso de la figura 1, corresponde al modelo MAX7000S, basados en celdas EEPROM, del fabricante ALTERA, de 6 a 16 pines de entrada y salida, estas últimas se encuentran en el bloque de control de entrada y salida, la cual también posee conexión con el PIA, y en la figura 2, el bloque de salida y entrada I/O, poseen un bufer para los dispositivos de entrada y salida. Cada bloque de función, para el caso de XILINX modelo de ejemplo "XC9500", esta compuesto de 18 macroceldas independientes. Los bloques funcionales también reciben una señal (reloj) de sincronismo global, una señal para habilitar la salida y una señal para habilitar el reset/set. El bloque funcional genera 18 salidas que maneja el FAST CONNECT. estas 18 salidas y su correspondiente señales de habilitación son gobernadas por el bloque I/O, La lógica dentro de los bloques funcionales es implementada utilizando la representación de suma de producto. Ver figura 11.
Fig 11, Bloque de Función
Macroceldas Las macroceldas de un CPLD son similares a las de un PLD. Estas también están provistas con registros, control de polaridad, y buffers para salidas en alta impedancia. Por lo general un CPLD tiene macroceldas de entrada/salida, macroceldas de entrada y macroceldas internas u ocultas (buried macrocells), en tanto que un 22V10 tiene solamente macroceldas de entrada/salida. Una macrocelda interna es similar a una macrocelda de entrada/salida, sólo que esta no puede ser conectada directamente a un pin de salida. La salida de una macrocelda interna va directamente a la matriz de interconexión programable. Por lo que es posible manejar ecuaciones y almacenar el valor de salida de estas internamente utilizando los registros de estas macroceldas. Las macroceldas de entrada, como la que se muestra en la figura 12, son utilizadas para proporcionar entradas adicionales para las funciones booleanas. En general las macroceldas de entrada incrementan la eficiencia del dispositivo al ofrecer algunos registros adicionales con los que se pueden almacenar el valor del pin de entrada, lo cual puede ser útil al momento de obtener las funciones booleanas. Las macroceldas pueden ser configuradas individualmente por una función de registro. 5 matriz de compuertas AND, iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
15/29
31/08/13
Dispositivos Logicos Programables (parte 1)
directos al "product terms "(termino de producto), son utilizados como entrada de datos primario (para las compuertas OR y XOR) para implementar funciones combinacionales, o como entradas de control incluyendo el reloj, señales set/reset, y señal de habilitación de salida. Los registros de las macroceldas pueden ser configurados como FLIP-FLOP tipo D o FLIPFLOP tipo T, o este puede ser omitido por una operación combinacinoal. Cada registro soporta operaciones set y reset asincronos. durante el encendido del dispositivo, todos los registro son inicializados al estado predefinido por el usuario.
Fig. 12, Macrocelda con bloque de función Las señales de contro global son desarrolladas individualmente en cada macrocelda, incluyendo señal de reloj, señal de set/reset, y la señales de habilitación. la macrocelda registra señales de reloj de cada uno de los tres relojes globales o del termino producto. La señal GSR, es una señal de Reset/set, de entrada que permite que sea definido por el usuario. Ver figura 13.
Fig. 13, Reloj de Macrocelda iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
16/29
31/08/13
Dispositivos Logicos Programables (parte 1)
El termino producto, controla que la matriz de las 5 AND sean asignadas a cada macrocelda, un ejemplo pudiera ser que todas las AND sean manejadas por una OR. El inconveniente de esto es que se evidencia el retardo de un termino producto a otro como se observa en la figura 14.
Fig. 14, Lógica de la Macrocelda utilizando termino producto
Celda de entrada/salida La función de una celda de entrada/salida es permitir el paso de una señal hacia dentro o hacia el exterior del dispositivo. Dependiendo del fabricante y de la arquitectura del CPLD estas celdas pueden o no ser consideradas parte del bloque lógico. El Bloque I/O es la interfaz entre la lógica interna y los pines de entrada y salida del dispositivo CPLD. Cada bloque de I/O incluye un bufer de entrada y un manejador de salida; un multiplexor que selecciona la salida habilitada, y también incluye una señal de control de tierra para la programación del usuario. El bufer de entrada es compatible con tensión de 5 V CMOS, 5 V TTL, y señales de voltaje de 3.3 V. El bufer de entrada usa internamente un suministro de potencia de 5 V ( Vccint), para asegurarse que el umbral de entrada permanezca constante y no varie con el voltaje Vccio. La señal de salida se habilita de la siguiente formas: una señal puede ser generada por el termino producto de la macrocelda, cualquiera de las señales globales de OE, o por una señal de tercer estado GTS. Ver figura 15.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
17/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Fig. 15, Bloque I/O
Cada salida tiene un control independiente de "Slew Rate" (Máxima variación del voltaje de salida con respecto al tiempo); este control permite reducir o controlar el ruido en el sistema, con sólo modificar el Tslew, como se muestra en la figura 16.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
18/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Fig. 16, Slew Rate Estos CPLD poseen circuito con memoria EEPROM; que permiten reescribirse muchas veces, dependiendo del fabricante puede ser hasta 10.000 veces, como es el caso del fabricante XILINX, los modelos de la serie XC9500.
2) Arquitectura, Look-up Table (LUT), tabla de datos. Tabla de datos (Look-Up Table) Esta arquitectura se basa en la implementación lógico de bus de interconexión de filas y columnas, estas interconexiones también proveen conexión al bloque de matriz lógicos (LAB). El LAB consiste de varios elementos lógicos (LE); según el modelo pueden ser 10 LE, por cada LAB. Los LE es una pequeña unidad lógica que proveen una eficiente implementación de funciones lógicas del usuario. El Multitrack Interconnect provee una rápida conexión entre los LAB. Ver figura 17.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
19/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Fig. 17, Diagrama de bloque de la arquitectura de tabla de datos Look-Up Table (LUT), Es un circuito que implementa una función de lógica combinacional para almacenar una lista de valores de salida que correspondan a todas las posibles combinaciones de entradas, es decir un número de elementos almacenados son usados; para resumir una función lógica, almacenando cada función como una tabla de la verdad, esto se ilustra en la figura 18.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
20/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Fig. 18, Look-Up Table
Tomando como ejemplo la tabla de la verdad de la figura 12, como comparador A1A0=B1B2 , hace que la salida lógica AEQB = 1 lógico. Una matriz de 16 flip-flops (Q 0 hasta Q15), contiene data de todas las posibles combinaciones A1A0B1B0, por cada combinación se necesita un flip-flop. La entrada de cada LUT son decodificada por un decodificador de direcciones, cada salida del decodificador activa una buffer de tres estados, que pasa por un bloque de salida de flipflop. Cuando se activa un buffer para pasar el contenido del flip-flop, el resto de los buffer permanecen en estado de alta impedancia, de esta manera se bloquea la data de los otros flip-flops. El contenido de los flip-flop son cargados cuando el LUT es programado, con las funciones requeridas. Continuando con el ejemplo de la figura 12, los 16 elementos almacenados en dicha tabla, combinados , para seleccionar una salida combinacional y para interconectar con otras partes del chip, es llamado Elemento Lógico (LE). La función del desempeño del elemento lógico es similar a la de macroceldas en los PLD de suma de producto. La estructura de un elemento lógico se muestra en la figura 19.
Fig. 19 Elemento Lógico
El circuito "Cascade Chain", permite al usuario programar la función boleana, este circuito puede ser de compuertas AND o OR.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
21/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Fig. 20, Operación en Cascada
Bloque de Matriz Lógico (LAB), consiste en un número de elementos lógicos e interconectados localmente; el bloque LAB, esta conectado con el resto del dispositivo por medio de una serie de columnas y filas interconectadas, lo cual para este caso el fabricante ALTERA ha llamado FastTrack Interconnect, también se le conoce como Multitrack Interconnect. Ver figura 21.
Fig. 21, Bloque de Matriz Lógicos Embedded Array Block (EAB), este bloque es una matriz de 2048 elemento de almacenaje que pueden ser usado eficientemente en la implementación de funciones lógicas complejas. iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
22/29
31/08/13
Dispositivos Logicos Programables (parte 1)
El FLEX10K es un dispositivo del fabricante ALTERA (ver figura 22), tiene una matriz de 6 filas por 24 columnas de bloque de matriz lógico (LAB), es decir que tendrá 144 LAB, que a su ves son 8 x 144LAB= 1152 elementos lógicos, estos elementos también tienen 6 EAB; 6X2048 = 12288 bits de almacenaje de EAB, note que un EAB tiene mas capacidad de almacenaje que un LAB combinado. Algunos los dispositivos basados en LUT, son de tecnología de memoria de acceso aleatorio estática (SRAM), la ventaja de esta configuración es que este puede ser fabricado en densidades muy altas de celdas de almacenajes y programar rápidamente, comparado con un dispositivo, (suma de producto, SOP), basado en EEPROM. La desventaja es que las celdas SRAM, son volátiles; es decir que deben reconfigurarse cada vez que se reinicia el sistema.
Fig. 22, Diagrama en bloque de un dispositivo de estructura de datos como es el caso del FLEX10K del fabricante ALTERA. El mismo fabricante ALTERA, posee el modelo MAXII (ver figura 23), "tabla de datos LUT", tal modelo contiene un bloque de memoria "falsh", dentro del dispositivo. La mayoría de estos almacenajes de memorias flash, son particionadas como un bloque de programación o configuración de memoria flash (CFM); este provee un almacenaje no volátil; la CFM descarga y configura la lógica. Una porción pequeña de la memoria flash es utilizado para la data de usuario, este pequeño bloque de memoria UFM, provee una almacenaje para el usuario de propósito general, en este bloque se provee la conexión del puerto programable para el arreglo lógico de lectura y escritura.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
23/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Fig. 23, Diagrama de bloque del modelo MAXII
Fig. 24, Diagrama del bloque de memoria UFM El bloque UFM como se muestra en la figura 24, puede ser utilizado como el EEPROM serial, para almacenar información no volátil, este bloque se conecta al bloque de arreglo lógico a través del bus Multitrack interconectado, de esta manera se permite la interface con el bloque de elemento lógico.
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
24/29
31/08/13
Dispositivos Logicos Programables (parte 1)
CONSTRUCCIÓN DEL CPLD Las vías están compuesta de 100 porciento metal de aluminio diluido, aquí se identificará como Metal 2, los contactos son 100 porciento metal de aluminio diluido, identificado como Metal 1. Como características especiales posee tecnología "FLASH FAST". Las compuertas en el canal N son del orden de 0.45 micra, y el canal P son del orden de 0.5 micra. El dispositivo esta formado por una capa de nitruro de silicio sobre otra capa de dióxido de silicio. Posee dos capas de polisilicio. El PLOY 1 fue utilizada exclusivamente en compuertas flotantes, y POLY 2 (polisilicio y silicio de tusteno) fue utilizado para todas las compuertas estándar, en la matrix de lineas de programas y de palabra. La matrix de celdas programables son EEPROM (tecnología FAST FLASH), el Metal 2, será utilizado para las líneas de programa y de la palabra de dato. El Metal 1 distribuye la tierra GND y una línea de un bit. El dielétrico se encuentra entre las capas POLY es de ONO "óxido-nitruro-óxido". el color anaranjado es Nitruro de Silicio, el color azul es Metal 1 y 2, el color amarillo es Óxido, el color verde es polisilicio, color rojo difusión del canal P y N, y el color gris es el substrato P. Ver figura 25 y 26. Si el dispositivo es borrable eléctricamente EEPROM, sus conexiones es a base de transistores MOS de puerta flotante, que contiene una puerta adicional embebida en el aislante entre la puerta normal (accesible desde el exterior) y el substrato. esta puerta extra, sin conexión al exterior y completamente rodeada de material aislante, es la puerta flotante. los transistores MOS, inicialmente no tienen carga en la puerta flotante, de forma que actúan como transistores normales: en cada linea vertical se realiza la operación lógica Y; es necesario que todas las líneas horizontales estén bajas (a=b=c=d=L) para que las líneas verticales sean altas (x=y=z=H), y basta que una de las entradas sea baja (a=L, por ejemplo) para que su línea correspondiente sea alta, y por tanto los transistores cuyas puertas están conectadas a esa línea de entada pasan a conducción, y entonces las líneas verticales se hacen L. En otras palabras, los transistores hacen el punto de conexión entre las líneas verticales y horizontales. Para desconectar un punto de conexion (un transistor), en la fase de programación se aplica una tensión relativamente elevada (15 a 20)V en la puerta del transistor a desconectar; esta tensión hace que, por un proceso físico conocido como efecto túnel, atraviesen electrones desde el substrato por la fina capa de aislante y queden almacenados en la puerta flotante. En definitiva la introducción de electrones en la puerta flotante desconecta el transistor del circuito, ya que siempre estará cortado (estado off).
Fig. 25, Construcción de un CPLD
iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
25/29
31/08/13
Dispositivos Logicos Programables (parte 1)
Fig. 26, línea de productos
PRINCIPALES FABRICANTES DE DISPOSITIVOS CPLD
Altera Atmel Cypress Semiconductor Lattice Semiconductor Xilinx
REFERENCIAS http://aristotelesanato.blogspot.com/2008_01_01_archive.html http://electronicaintegrada.blogspot.com/2008/02/cpld-verilog.html http://es.wikipedia.org/wiki/Dispositivo_l%C3%B3gico_programable http://html.rincondelvago.com/dispositivos-logicos-programables_2.html http://torio.unileon.es/~dierar/ti/pdf/pld.PDF http://www.latticesemi.com/lit/docs/datasheets/pal_gal/16lv8.pdf iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085
26/29