Informática


Dispositivos Lógicos Programables


DIPOSITIVOS LÓGICOS PROGRAMABLES.

0. Introducción.

El Incremento de popularidad y de utilización de los dispositivos lógicos programables o PLDs está siguiendo un proceso solamente comparable al que hace algunos años acompañó a los microprocesadores. Los PLDs se utilizan en casi todos los nuevos equipos electrónicos de control, industriales, de consumo, de oficina, de comunicaciones, etc.

Desde finales de la década de los sesenta, los equipos electrónicos digitales se han construido utilizando circuitos integrados de función lógica fija, realizados en pequeña o mediana escala de integración. Para las realizaciones muy complejas que exigirían un número elevado de circuitos integrados (CI) de función fija, se utilizan circuitos diseñados a medida que sólo sirven para una aplicación. Son los llamados CI específicos a una aplicación o ASIC (Application Specific Integrated Circuit). Por regla general, los ASICs los producen los fabricantes de CI con las especificaciones proporcionadas por el usuario.

Los equipos realizados con ASICs ocupan menos espacio, son más fiables, consumen menos energía y en grandes series resultan más baratos que los equipos equivalentes realizados con CI de función fija. Por otro lado, estos circuitos son muy difíciles de copiar.

Diferentes modalidades de ASICs son; los Circuitos a Medida (Full Custom), las Matrices de Puertas (Gate Arrays), las Células Normalizadas (Standard Cell) y los FPICs (Field Programmable Integrated Circuits); estos últimos son circuitos programables por el usuario final.

1. Clases de Dispositivos Lógicos Programables.

1.1. Circuitos integrados a medida.

Los Circuitos Integrados a Medida (Full Custom), se diseñan a petición de un cliente para que resuelvan una determinada aplicación. Conllevan un alto coste de desarrollo y su empleo sólo se justifica para volúmenes de producción muy elevados. El tiempo necesario para la construcción de un CI a medida es considerable ya que puede oscilar de unos meses a unos años.

1.2. Matrices de puertas.

Las Matrices de puertas (Gate Arrays) son pequeños trozos de silicio pendientes de algún proceso de metalización que defina las conexiones entre un importante número de puertas o transistores que poseen en su interior. Las matrices de puertas proporcionan densidades superiores a las 100.000 puertas, con un aprovechamiento del 80 al 90 por 100 para los dispositivos pequeños y del 40 por 100 para los grandes.

Los fabricantes de silicio ponen a disposición de sus potenciales clientes abundante documentación sobre estos Gate Arrays, con una serie de macros que pueden utilizar de forma inmediata y otras que pueden construirse ellos mismos. Los macros son agrupaciones de un número de células básicas que realizan funciones comunes como; sumadores; puertas NOT, AND, NAND, NOR XOR, etc.; latches y flip-flops S-R, J-K, D; buffer; osciladores; registros, decodificadores, multiplexores, etc.

Junto a esta documentación, los fabricantes aportan un software que contabiliza el número de células básicas utilizadas por todas las macros, sugiere el Gate Array adecuado para la aplicación, calcula la potencia disipada por el Gate Array que alojará el diseño del cliente, proporciona información sobre los tiempos de propagación de las señales y permite verificar el funcionamiento del circuito.

Una vez superadas todas las etapas previas, el cliente envía la documentación generada al fabricante para que éste ultime los procesos de metalización y fabrique un primer prototipo. El diseño con Gate Arrays puede durar semanas o meses. Requiere un volumen alto de circuitos para justificar sus costes.

1.3. Células normalizadas.

Las células normalizadas (Standard Cell) son, en cierta forma, similares a las matrices de puertas. Su principal ventaja sobre ellas es que en lugar de trabajar con simples puertas o transistores, se dispone de colecciones de diferentes partes de circuitos que han sido depurados (puertas lógicas, circuitos MSI, RAM estáticas, ficheros de registro, etcétera). El usuario tiene que ensamblar estos circuitos, verificarlos y finalmente enviar documentación al fabricante de silicio para el desarrollo del primer prototipo. A pesar del concepto de célula normalizada, los períodos y los costes de desarrollo son superiores a los de las matrices de puertas.

En las matrices de puertas sólo hay que realizar la máscara final que define las conexiones entre las puertas, mientras que en las células normalizadas, hay que realizar máscaras para todos los procesos de producción de los CI. Una vez más, el volumen de fabricación deberá ser los suficientemente alto como para amortizar la inversión económica realizada en el desarrollo.

1.4. FPICs.

Los FPICs (Field Programmable Integrated Circuits): son chips programables por el usuario mediante programadores comerciales. El término FPIC también incluye a los CI no destinados a las aplicaciones lógicas. Son las memorias, los microcontroladores, los PLD (Programmable Logic Device), las FPGA (Field Programmable Gate Array) y los ASPLD (Aplication Specific Programmable Logic Devices).

Los FPIC ofrecen soluciones de bajo coste, de tiempo de desarrollo corto y con menor riesgo que los circuitos a medida, las matrices de puertas y las células normalizadas.

1.4.1. PLDs.

Los PLDs (Programmable Logic Devices) son pequeñas ASICs configurables por el usuario capaces de realizar una determinada función lógica. La mayoría de los PLD consisten en una matriz de puertas AND seguida de otra matriz de puertas OR. Mediante esta estructura, puede realizarse cualquier función como suma de términos productos.

Aunque las memorias PROM, EPROM y EEPROM son PLDs, muchas veces se las excluye de esta denominación debido a que su contenido se define utilizando elementos de desarrollo propios de microprocesadores, tales como; ensambladores, emuladores y lenguajes de programación de alto nivel. Otras veces, cuando estas memorias se usan para realizar una función lógica y no para guardar un programa de un microprocesador, se las incluye dentro del término PLD.

1.4.2. ASPLDs.

Los ASPLDs (Application Specific Programmable Logic Devices) son PLDs diseñados para realizar funciones especificas como, decodificadores de alta velocidad, secuenciadores, interfaces para buses particulares, periféricos programables para microprocesadores, etc.

Partes del ASPLD son programables permitiendo la adaptación del circuito a una aplicación determinada, pero manteniendo su función básica; así, por ejemplo, un decodificador lo personaliza el usuario, pero sigue siendo un decodificador. Estos circuitos están muy optimizados para la función para la que han sido diseñados. Los decodificadores sólo tienen un término producto, carecen de puertas OR y resultan por consiguiente muy rápidos; por otro lado, los circuitos de interface para buses normalmente tienen un Fan-Out elevado.

1.4.3. FPGAs.

Las FPGAs (Field Programmable Gate Arrays) contienen bloques lógicos relativamente independientes entre sí, con una complejidad similar a un PLD de tamaño medio. Estos bloques lógicos pueden interconectarse, mediante conexiones programables, para formar circuitos mayores. Existen FPGAs que utilizan pocos bloques grandes (Pluslogic, Altera y AMD) y otras que utilizan muchos bloques pequeños (Xilinx, AT&T, Plessey, Actel).

A diferencia de los plds, no utilizan arquitectura de matriz de puertas AND seguida de la matriz de puertas OR y necesitan un proceso adicional de ruteado del que se encarga un software especializado.

La primera FPGA la introdujo Xilinx en el año 1985. La programación de las FPGAs de Xilinx basadas en RAM estática es diferente a la programación de los PLDs. Cada vez que se aplica la tensión de alimentación, se reprograma con la información que lee desde una PROM de configuración externa a la FPGA. Una FPGA basada en SRAM (RAM estática) admite un número ilimitado de reprogramaciones sin necesidad de borrados previos.

En general la complejidad de una FPGA es muy superior a la de un PLD. Los PLD tienen entre 100 y 2000 puertas, las FPGAs tienen desde 1200 a 20.000 puertas y la tendencia es hacia un rápido incremento en la densidad de puertas. El número de flip-flops de las FPGA generalmente supera al de los PLD. Sin embargo, la capacidad de la FPGA para realizar lógica con las entradas suele ser inferior a la de los PLD. Por ello: "los diseños que precisan lógica realizada con muchas patillas de entrada y con pocos flip-flops, pueden realizarse fácilmente en unos pocos PLDs, mientras que en los diseños en los que intervienen muchos registros y no se necesita generar combinaciones con un elevado número de entradas, las FPGAs pueden ser la solución óptima".

2. CARACTERÍSTICAS DEL DISEÑO CON PLDs

Los PLDs están situados en una zona intermedia entre los dispositivos a medida y la lógica de catálogo formada por los CI de función fija. Tienen casi todas las ventajas de los ASICs sin estar penalizados por un costo elevado para pequeñas series. Además el ciclo de diseño con PLDs es mucho más rápido que los de las matrices de puertas o las células normalizadas. En determinadas aplicaciones, un PLD puede sustituir desde unos pocos hasta unas decenas de CI de función fija, mientras que los grandes ASICs pueden sustituir a cientos e incluso miles de CI. En ocasiones, los PLD se utilizan para realizar prototipos que posteriormente se llevarán a un ASIC más complejo.

El trabajo con PLDs proporciona: facilidad de diseño, prestaciones, fiabilidad, economía y seguridad.

2.1. Facilidad de diseño

Las herramientas de soporte al diseño con PLDs facilitan enormemente este proceso. Las hojas de codificación que se utilizaban en 1975 han dejado paso a los ensambladores y compiladores de lógica programable (PALASM, AMAZE, ABEL, CUPL, OrCAD/PLD, etc.). Estas nuevas herramientas permiten expresar la lógica de los circuitos utilizando formas variadas de entrada tales como; ecuaciones, tablas de verdad, procedimientos para máquinas de estados, esquemas, etc. La simulación digital posibilita la depuración de los diseños antes de la programación de los dispositivos. Todo el equipo de diseño se reduce a un software de bajo coste que corre en un PC, y a un programador.

2.2. Prestaciones.

Los PLDs TTL que hay en el mercado tienen tiempos de conmutación tan rápidos como los circuitos integrados de función fija más veloces. Los PLDs ECL son todavía más rápidos. Sin embargo, el incremento de velocidad obtenido con los dispositivos CMOS, que ya han igualado o superado en prestaciones a los dispositivos TTL, está provocando el abandono de la tecnología bipolar por parte de los fabricantes. En cuanto al consumo de potencia, los PLDs generalmente consumen menos que el conjunto de chips a los que reemplazan.

2.3. Fiabilidad.

Cuanto más complejo es un circuito, más probabilidades hay de que alguna de sus partes falle. Puesto que los PLDs reducen el número de chips en los sistemas, la probabilidad de un fallo disminuye. Los circuitos impresos con menor densidad de CI son más fáciles de construir y más fiables. Las fuentes de ruido también se reducen.

2.4. Economía.

En este apartado, hay aspectos que resultan difíciles de cuantificar. Por ejemplo, los costes de pérdida de mercado por una introducción tardía de un producto. Otros son más claros, por ejemplo, la reducción del área de las placas de circuito impreso obtenida gracias a que cada PLD sustituye a varios circuitos integrados de función fija. Muchas veces se consigue reducir el número de placas de circuito impreso economizándose en conectores. La reducción de artículos en almacén también aporta ventajas económicas.

De la misma manera que para altos volúmenes de producción las memorias ROM resultan de menor coste que las EPROM, las HAL (Hard Array Logic) o PLDs programados por el fabricante proporcionan ahorros adicionales en grandes cantidades.

2.5. Seguridad.

Los PLDs tienen fusibles de seguridad que impiden la lectura de los dispositivos programados, protegiendo los diseños frente a copias.

Además de los puntos mencionados, podemos añadir que los PLDs facilitan el ruteado de las placas de circulo impreso debido a la libertad de asignación de patillas que proporcionan. Permiten realizar modificaciones posteriores del diseño y en ocasiones hacen posible la reutilización de circuitos impresos con algunos fallos, mediante una reasignación de los PLDs.

3. ARQUITECTURAS DE LOS DISPOSITIVOS LÓGICOS PROGRAMABLES (PLDs).

Existen en la actualidad infinidad de arquitecturas diferentes de PLDs y su número se incrementa día a día. Aunque resulta casi imposible hacer una referencia completa de todos los tipos de PLDs en el mercado, en este trabajo sólo se presentarán algunas de las más comunes y una amplia lista de las distintas PLDs que podemos encontrar en el mercado.

3.1. CLASES DE PLDs.

Ya que generalmente los PLDs disponen de muchas entradas y resultaría muy complicado mostrarlas en un dibujo, se utiliza una representación simplificada, según la cual, para las puertas AND sólo se dibuja una línea de entrada llamada línea producto. Esta línea se cruza con dos líneas por cada entrada (entrada directa y entrada invertida), pudiendo existir un fusible en cada intersección. Aunque sólo se dibuja una línea de entrada por cada puerta AND, en realidad esta puerta tiene tantas entradas como intersecciones de la línea producto. Si en una intersección hay una X, significa que el fusible está intacto; sí no hay una X, el fusible esta fundido y no existe la conexión. En ocasiones, las puertas OR también se dibujan con una sola entrada.

En el diagrama simplificado de la figura 3.1.1 aparece una matriz de puertas AND de seis entradas, cuyas salidas están conectadas a una puerta OR. La intersección de las líneas producto con las líneas de entrada forman una matriz de puertas AND programable de 6x3 fusibles. El circuito está programado para realizar la función OR -exclusiva entre las entradas A y B-. La puerta AND inferior está marcada con una X. Significa que todos sus fusibles están intactos y que su salida es 0. Cuando se funden todos los fusibles de una línea producto, la salida de la puerta AND asociada es 1.

Dispositivos Lógicos Programables

PAL (Programmable Array Logic). También llamados PLAs, son un tipo de PLDs en las que se pueden programar las uniones en la matriz de puertas AND, siendo fijas las uniones en la matriz de puertas OR (Figura 3.1.2). Los dispositivos con arquitectura PAL son los más populares y los más utilizados, razón ésta por la que dedicamos el siguiente capítulo, para analizarlos más a fondo.

Dispositivos Lógicos Programables

FPLA (Field Programmable Logic Array). Es un PLD en el que se pueden programar las uniones en ambas matrices (Figura 3.1.3). Son los dispositivos más flexibles, pero resultan penalizados en tamaño y en velocidad debido a los transistores adicionales en la matriz de puertas OR. Se utilizan fundamentalmente para construir máquinas de estados. Para otras aplicaciones, las PAL resultan más efectivas. Las PAL y las FPLA son sistemas combinacionales incompletos porque teniendo n entradas, disponen de menos de 2n términos producto.

Dispositivos Lógicos Programables

PROM (Programmable Read Only Memory). Es un PLD en el que las uniones en la matriz de puertas AND es fija, siendo programables las uniones en la matriz de puertas OR (véase Figura 3.1.4). Una PROM es un sistema combinacional completo que permite realizar cualquier función lógica con las n variables de entrada, ya que dispone de 2n términos productos. Están muy bien adaptadas para aplicaciones tales como: tablas, generadores de caracteres, convertidores de códigos, etc. Generalmente las PROM tienen menos entradas que las PAL y FPLA. Se pueden encontrar PROM con capacidades potencia de 2, que van desde las 32 hasta las 8192 palabras de 4, 8 o 16 bit de ancho.

Dispositivos Lógicos Programables

3.2. CONSUMO DE CORRIENTE EN LOS PLDs.

En la fabricación de PLDs se utiliza tecnología bipolar TTL o ECL y tecnología CMOS. Los dispositivos bipolares son más rápidos y consumen más que los dispositivos CMOS. Actualmente los PLDs bipolares presentan retardos de propagación inferiores a 7 nsg y los consumos típicos rondan los 100-200 mA para un chip con 20-24 patillas.

Mientras los PLDs bipolares sólo pueden programarse una vez, la mayoría de los PLDs CMOS son reprogramables y permiten una fácil verificación por parte del usuario. A los PLDs CMOS borrables por radiación ultravioleta se les denomina EPLD y a los borrables eléctricamente se les conoce por EEPLD. Los EEPLD con encapsulados de plástico son más baratos que los EPLD provistos de ventanas de cuarzo que obligan a utilizar encapsulados cerámicos.

También existen las PALCE16V8Q (Quarter Power Icc = 55 mA) y las PALCE16V8Z (Zero Power) con un bajísimo consumo estático de potencia.

Acostumbrados a trabajar con dispositivos CMOS con un consumo prácticamente nulo a frecuencia cero, resulta sorprendente una PAL CMOS con un consumo de 90 mA a la máxima frecuencia de operación (15 Mhz), pero que todavía tendrá un consumo apreciable a frecuencia cero. En la actualidad, solamente una pequeña fracción de los PLDs del mercado se anuncian como Zero Power.

La razón de estos consumos reside en que no existe una célula de memoria EPROM o EEPROM que sea verdaderamente CMOS. La mayoría de los PLDs CMOS se construyen con un núcleo programable de transistores N-MOS, y solamente las entradas y las salidas del PLD utilizan drivers CMOS. La matriz de transistores NMOS precisa de una alimentación continua (Figura 3.2.1), para poder responder con rapidez.

Dispositivos Lógicos Programables

Para rebajar los consumos de la matriz de transistores NMOS se utilizan dos técnicas.

La primera de ellas consiste en dotar al PLD de una patilla o fusible de control de consumo de potencia (patilla o fusible Power Down), que quita la alimentación a la matriz de transistores cuando el PLD se encuentra fuera de servicio, proporcionando un menor consumo de potencia. Tiene los inconvenientes de que la puesta en funcionamiento del PLD es más lenta.

La segunda técnica (Figura 3.2.2) coloca en las entradas de los PLDs unos detectores de transición de estado, que conectan la alimentación a la matriz de transistores durante un breve instante de tiempo después de que una entrada haya cambiado. Este tiempo deberá permitir el cambio de las salidas y su almacenamiento en latches, tras lo cual se puede quitar de nuevo la alimentación a la matriz de transistores.

El detector de transición de estado de las entradas se obtiene metiendo a las dos entradas de una puerta OR-exclusiva el estado de una patilla de entrada y el estado de esa misma patilla demorada un tiempo. El tiempo de demora de las patillas de entrada será igual al tiempo durante el cual se mantendrá la alimentación a la matriz de transistores. Los detectores de transición de las entradas y los latches de las salidas se mantienen constantemente alimentados. El consumo de corriente de los PLDs que utilizan esta segunda técnica aumenta lógicamente si se incrementa la frecuencia de cambio de las entradas.

Dispositivos Lógicos Programables

3.3. Cómo se catalogan los PLDs.

Si consultamos las hojas de datos de una PALCE16V8H-20, encontramos claves que permiten extraer valiosa información del nombre del dispositivo. La información incluida en el nombre nos indica:

PAL

Programmable Array Logic.

CE

C-MOS Electrically Erasable.

16V8

16 Entradas a la matriz de puertas AND y ocho salidas.

H

Half Power (lec = 90 mA).

20

Tiempo de propagación = 20 nsg.

4. PROGRAMABLE LOGIC ARRAYS (PLA's).

4.1. Estructura básica de un PLA.

Un PLA es un bloque funcional que se utiliza para implementar multifunciones booleanas. Existe una gran relación entre su estructura interna y el conjunto de funciones que realiza...

4.2. Descripción de su estructura.

Un PLA está constituido básicamente por dos submatrices o planos denominados plano AND y OR, respectivamente. Ambos planos están separados entre sí por una pequeña zona divisoria denominada zona de conexión. Tanto el plano AND como el plano OR disponen, a su vez, de dos zonas externas denominadas buffers o separadores de entrada y de salida. Las señales de entrada del PLA (Dispositivos Lógicos Programables
) llegan a los buffers de entrada del plano AND y producen las señales invertidas(Dispositivos Lógicos Programables
). Ambos tipos de señales (Dispositivos Lógicos Programables
) penetran verticalmente en el plano AND y generan los términos producto pi. Estos últimos discurren horizontalmente por ambos planos, atravesando previamente la zona de conexión, y producen finalmente las salidas del PLA mediante la realización de sumas lógicas entre los términos producto anteriores.

Además de las zonas mencionadas, existen otras dos regiones especiales. Una de ellas está situada a la izquierda del plano AND y la otra en la parte superior del plano OR. Estas regiones están constituidas por transistores del "pull-up", que actúan como resistencia de carga, a través de los cuales se alimentan las líneas de los términos producto y las líneas de salida del PLA respectivamente. En la siguiente ilustración se muestra un esquema global de su estructura:

Dispositivos Lógicos Programables

La realización física de un PLA se lleva a cabo mediante la conexión de cada una de las celdas que pertenecen a las regiones anteriores (buffers de entrada, plano AND, transistores de pull-up del plano AND, conexión AND-OR, plano OR, transistores de pull-up del plano OR y buffers de salida). De todas estas celdas, sólo las de los planos AND y OR están relacionadas con las funciones lógicas que definen el circuito. El resto hace referencia a otros factores externos ajenos a la lógica propiamente dicha. En algunos casos, estos factores han de ser tenidos en cuenta si se quiere hacer una estimación realista del área final ocupada por el PLA. Esto ocurre, por ejemplo, cuando se aplican técnicas de optimización en las que se modifica el número de entradas y/o salidas (técnicas de partición).

4.3. Representación matricial.

Los PLA's sirven para representar multifunciones booleanas expresadas mediante dos niveles de puertas. Sea, pues, una multifunción F formada por s funciones simples fi cada una de ellas dependiente de m variables distintas Dispositivos Lógicos Programables
. Supongamos también que es necesario desarrollar n productos lógicos distintos con las variables dependientes xi para expresar todas y cada una de las funciones fi mediante sumas de productos. Entonces, el PLA asociado a la multifunción F, puede representarse por una matriz, C, formada por n filas y m+s columnas. Cada una de estas filas Ci se define del modo siguiente:

"j : 1..m (plano AND).

Cij = 0 si xj está complementada en el término producto Ci.

Cij = 1 si xj no está complementada en el término producto Ci.

Cij = 2 si xj no aparece en el término producto Ci.

"j : m + 1... m + s (plano OR).

Cij = 3 si Ci no forma parte de la función Fj· m

Cij = 4 si Ci forma parte de la función Fj· m

De la definición anterior se deduce que todos los 2's de la matriz C representan elementos vacíos en las m primeras columnas pertenecientes al plano AND o submatriz de entradas. Igualmente ocurre con los 3's en las columnas restantes del plano OR o submatriz de salidas. Por elemento vacío se entiende aquella posición del PLA en la que no existen conexiones.

Así, por ejemplo la multifunción Dispositivos Lógicos Programables
, Dispositivos Lógicos Programables
, Dispositivos Lógicos Programables
se representa mediante la matriz de cobertura de la figura 4.3.1.

X1

X2

X3

X4

X5

X6

F1

F2

F3

2

2

0

2

2

1

4

3

3

2

0

2

1

2

2

3

4

3

1

2

2

2

2

0

4

3

3

0

2

2

2

1

2

3

4

3

1

2

2

2

2

2

3

3

4

2

2

2

2

2

1

3

4

3

Figura 4.3.1: Matriz de cobertura.

En muchos casos conviene utilizar otra representación matricial más simple del PLA denominada matriz de personalidad. Esta nueva matriz se define a partir de la matriz de cobertura del modo siguiente:

  • " J: = 1...m

  • Bij = 1 si Cij = 0 ó 1.

  • Bij = 0 si Cij = 2.

  • "j := m + 1... m + s

  • Bij = 1 si Cij = 4.

  • Bij = 0 si Cij = 3.

Es decir, un 1 en la j-ésima columna e i-ésima fila del plano AND indica que la columna j es un factor del término producto i, mientras que un 1 en la j-ésima columna e i-ésima fila del plano OR indica que el término producto i es un término de la salida j-m. La figura 4.3.2 corresponde a la matriz de personalidad asociada a la matriz de cobertura de la figura 4.3.1.

X1

X2

X3

X4

X5

X6

F1

F2

F3

0

0

1

0

0

1

1

0

0

0

1

0

1

0

0

0

1

0

1

0

0

0

0

1

1

0

0

1

0

0

0

1

0

0

1

0

1

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

1

0

Figura .4.3.2. Matriz de personalidad.

La representación de un PLA mediante su matriz de personalidad respectiva nos ayudará a resolver los problemas planteados en la optimización lógica y topológica de PLA's.

5 PLAs.

La estructura de los PLAs se muetra en la figura A.1.1, y un ejemplo específico se encuentra en la figura A.1.2, encontrandose las arquitecturas PLA listadas en la tabla A.1. La estructura de los secuenciadores se encuentran en la figura A.1.3, las arquitecturas de los secuenciadores estan listadas en la tabla A.2. .

Dispositivos Lógicos Programables

Dispositivos Lógicos Programables

Dispositivos Lógicos Programables

6. ESTRUCTURA DE LOS DISPOSITIVOS PAL.

6.1. General

Los dispositivos PAL son PLAs con o sin array OR, pero un conjunto de puertas OR que suman grupos de productos. La estructura de los dispositivos PALs combinacionales se muestra en la figura A.2.1.1. Los dispositivos combinacionales de 20 pins estan listados en la Tabla A.3, y los de 25 pins estan listados en la Tabla A.4.

Dispositivos Lógicos Programables

Los decodificadores, o los Field Programmable Gate Arrays (FPGAS) son PALs como los PLDs combinacionales, que generalmente no tienen array OR; por lo que los productos son tomados directamente hacia las salidas. Estos son particularmente útiles para la decodificacion de direcciones, cuyas arquitecturas están listadas en la Tabla A.5.

Las PALs registradas tienen registros de salida alimentados desde el array logico como el dispositivo mostrado en la Figura A.2.1.1.1 Las Tablas A.6 y A.7 listan las arquitecturas. Todos estos dispositivos tienen un reloj externo común, siendo estos apropiados para diseños síncronos.

Dispositivos Lógicos Programables

6.2 Células de salida programables y arquitecturas genéricas.

Para servir al mayor número posible de aplicaciones, se requiere un gran número de arquitecturas PAL. Para acabar con este problema, han sido concebidas las PALs con arquitectura genérica. Aquí hay dispositivos con células de salida, o macro células, de configuracion varible. Cada uno de los dispositivos genéricos es capaz de emular un número de dispositivos de arquitectura fija en suma para ser adaptables en una única arquitectura. El primer PAL genérico fue el 22V10. Siendo capaz de generar señales de reloj registradas que internamente incrementan la flexibilidad de un dispositivo PAL registrado, permitiendo su uso en sistemas con varios relojes, y para su uso también en circuitos sin reloj. Encontrándose este tipo de PALs en la Tabla A.8.

7 PLDs DE ARRAY MULTINIVEL

Estos son dispositivos con la estructura de la Figura 3.27. Las arquitecturas disponibles son:

PLHS501, PLHS502: `Programmable Macro Logic' que son dispositivos basados en un array NAND.

78C800: Un dispositivo borrable basado en un array NOR.

AGA-1K16, AGA-1K16P4: RAM-based `Alterable Gate Arrays' basados en una array NAND.

8. OTROS TIPOS DE PLDs.

Debido a la constante evolución de los PLDs, aunque intentemos catalogarlos, hoy en día existen una gran cantidad de PLDs con estructuras diferentes a las consideradas en este trabajo, por lo que aunque por mucho que nos esforcemos en obtener una lista más o menos reciente, siempre habrán algunos modelos que no se muestren aquí.

PLDs Microprogramados:

29CPL141, 29CPL142, 29CPL144, 29CPL151, 29CPL152, 29CPL154

14R21 'PROSE'

EPS444, EPS448 -SAM'

Bus Interface PLDS:

5CBIC, 85C960.

EPBI400'Buster'.

PLX448, PLX464.

MCA1200, EPB2001, EPB2002 (for Micro Channel).

VME3000 (for VME bus)

PLD for parallel controllers: - 7C361

PLDs with Matrix or Partitioned Arrays:

XC2064, XC2018, XC3020, XC3030, XC3042, XC3064, XC3090 (Logic Cell Arrays).

ACT1 (gate array structured with universal combinational celis).

ERA60100 (gate array structured with 2-input NAND cells) EPM5016, EPM5024, EPM5032, EPM5064, EPM5127, EPM5128 ('MAX')

PA7024, PA7028, PA7040, PA7068 ('PEEL Arrays') CAL1024 (Algatronix configurable array)

Notas que se aplican a todas las tablas.

  • Cuando para una misma arquitectura existe distinto número de partes, la genérica o la más conocida es la que se muestra en la tabla. Los prefijos han sido omitidos allá donde esto no cause confusión.

  • Todos los dispositivos tienen salidas de tres estados, a menos que se indique lo contrario.

  • Todos los dispositivos son de "programación única" a menos que se indique lo contrario.

  • La distribución de los términos producto hace referencia al número de productos lógicos que llegan a cada puerta OR, m(n) significa m puertas OR cada una con n entradas. m(n|n) significa m parejas de puertas OR cada una con 2n productos. Esto se aplica a la dirección de productos o a tipos especiales de células de salida.

  • ` P ' implica polaridad de salida programable.

  • ` H ' implica alta polaridad (high).

  • ` L ' implica baja polaridad (low).

TABLA A.1. Arquitecturas PLA.

Nombre

Nº de entradas

Nº de salidas

Nº de E/S

Maximo nº de entradas

Nº del producto

Nº de téminos de control

Nº de pins

Año de revelación

Notas

8575/6

14

8

-

14

96

-

24

1973

2,3

IM5200

14

8

-

14

48

-

24

1975

 

PLS100/1

16

8

-

16

48

-

28

1975

2,4

74S330/1

12

6

-

12

50

-

20

1976

2,5,6

82S106/7

16

8

-

16

48

-

28

1977

2,6,7

PLS152/3

8

-

10

17

32

10 AND

20

1980

8

TIFPLA839/40

14

6

-

14

32

-

24

1981

2,9

100459

16

-

16

24

-

64

1983

10

PLS161

12

8

-

12

48

-

24

1983

4

PLS173

12

-

10

21

32

10 AND

24

1985

8

PLHS473

11

2

9

20

24

11 OR

24

1985

8

PEEL253

8

-

10

17

42

10 OR

20

1987

8

PEEL273

12

-

10

21

42

10 OR

24

1987

8

Notas para la tabla A.1. :

  • Todos los dispositivos tienen polaridad de salida programable a menos que se indique lo contrario.

  • Versión " open-collector " disponible.

  • Dispositivo de máscara programada.

  • Incluye un pin de activación de salida.

  • Entrada convertible en activador de salida.

  • Salida desactivada si no hay producto activo.

  • Incluye pin de salida que indica si hay un producto activo.

  • Versión borrable disponible.

  • Incluye dos salidas con activación de puertas AND.

  • Un dispositivo ECL.

  • TABLA A.2(a). Arquitecturas de secuenciadores.

    Nombre

    Nº de entradas

    Nº sin registrar

    Nº registrados

    Nº del producto

    Complement array

    Téminos de control

    Nª de pins

    Año de revelación

    Notas

    S

    E/S

    Buried

    Estado+ Salida

    Salida

    TMS2000

    17

    18

    -

    8J-K

    -

    -

    60

    NO

    -

    40

    1970

    2

    TMS2200

    13

    10

    -

    5J-K

    -

    -

    72

    NO

    -

    28

    1970

    2

    HPLA-0174

    19

    16

    -

    12D

    -

    -

    70

    NO

    -

    28

    1975

    2

    PLS104/5

    16

    -

    -

    6S-R

    -

    8S-R

    48

    SI

    -

    28

    1977

    3,4

    PLS154/5

    4

    -

    8(P)

    -

    4J-K/ D(P)

    -

    32

    SI

    11

    20

    1980

    4,5, 6,7

    PLS156/7

    4

    -

    6(P)

    -

    6J-K/ D(P)

    -

    32

    SI

    11

    20

    1980

    4,5, 6,7

    PLS158/9

    4

    -

    4(P)

    -

    8J-K/ D(P)

    -

    32

    SI

    11

    20

    1980

    4,5, 6,7

    74PLS333/5

    12

    -

    -

    4J-K

    -

    6D

    32

    NO

    -

    24

    1981

    4,5, 8,9

    PLS167

    14

    -

    -

    6S-R

    2S-R

    4S-R

    48

    SI

    -

    24

    1983

    3

    PLS168

    12

    -

    -

    6S-R

    4S-R

    4S-R

    48

    SI

    -

    24

    1984

    3

    PLS179

    8

    -

    4(P)

    -

    8J-K/ D(L)

    -

    32

    SI

    11

    24

    1986

    4,5, 6,7

    PSG507

    13

    ver nota 11

    -

    8S-R

    -

    8S-R

    80

    NO

    6

    24

    1986

    10,11, 12,13

    21F10

    11

    -

    ver nota 11

    -

    10D(P)

    -

    32

    NO

    12

    24

    1985

    5,11, 14,15, 16,17

    GAL6001

    11

    -

    10

    8D-E

    10D-E(L)

    -

    64

    NO

    11

    24

    1986

    18,19, 20,21, 22

    PLUS405

    16

    -

    -

    8S-R/ J-K

    -

    8S-R/ J-K

    64

    2

    -

    24

    1986

    23,24

    PLS506

    13

    ver nota 11

    -

    16S-R

    -

    8S-R

    97

    SI

    -

    28

    1987

    11,12

    TABLA A.2(b). Secuenciadores con 2 bits decodificados.

    Nombre

    Nº de entradas

    Nº sin registrar

    Nº registrados

    Nº del producto

    Complement array

    Téminos de control

    Nª de pins

    Año de revelación

    Notas

    S

    E/S

    Buried

    Estado+ Salida

    Salida

    IBMPLA

    18

    -

    -

    13J-K

    -

    16D

    70

    NO

    -

    48

    1974

    2

    µPB450

    24

    -

    -

    16J-K

    -

    16D

    72

    NO

    -

    48

    1985

    25

    Notas para las tablas A.2(a) y A.2.(b):

  • La polaridad se indica allá donde no sea alta (P = programable).

  • Dispositivo de máscara programable.

  • Pin de activación Preset/output.

  • Versión "Open-collector" disponible.

  • Pin de activación de salida.

  • Flip-flops en dos grupos para activación de salidas P, R y control de carga.

  • Flip-flops que se pueden cargar desde los pines.

  • Clock y reset de registro de estados desde la matriz OR.

  • Las salidas están retrasadas.

  • Contiene contadores de 6 bits controlables por secuenciador.

  • Registros de salida con realimentación programable.

  • Pin de control de salidas compartido con una entrada.

  • Polaridad del reloj programable.

  • Registros programables y puenteables.

  • Reloj de registro de entrada, 2 pines de reloj de registros de estados/salidas.

  • Relojes compartidos con las entradas.

  • Términos iniciales síncronos y asíncronos.

  • Entradas de registros/retrasos programables y puenteables.

  • Registros de entrada y estados programables y puenteables.

  • Flip-flops con relojes individuales o comunes.

  • Relojes de entrada compartidos con las entradas.

  • Un dispositivo borrable.

  • Preset/resets programables compartidos con pines de activación de salida.

  • Dos relojes, uno compartido con una entrada.

  • Estados de flip-flops conectados en trayectoria repasada para fines de testeo.

  • TABLA A.3(a). 20-pin combinational PAL devices.

    Nombre

    Nº de entradas

    Nº de salidas

    Nº de E/S

    Maximo nº de entradas

    Product term distribution

    Nº de productos de control

    Polaridad de salida

    Año de revelación

    Notas

    10H8

    10

    8

    -

    10

    8(2)

    -

    H

    1977

    1

    10L8

    10

    8

    -

    10

    8(2)

    -

    L

    1977

    1

    10P8

    10

    8

    -

    10

    8(2)

    -

    P

    1983

    1,7

    12H6

    12

    6

    -

    12

    4, 4(2), 4

    -

    H

    1977

    1

    12L6

    12

    6

    -

    12

    4, 4(2), 4

    -

    L

    1977

    1

    12P6

    12

    6

    -

    12

    4, 4(2), 4

    -

    P

    1983

    1,7

    14H4

    14

    4

    -

    14

    4(4)

    -

    H

    1977

    1

    14L4

    14

    4

    -

    14

    4(4)

    -

    L

    1977

    1

    14P4

    14

    4

    -

    14

    4(4)

    -

    P

    1983

    1,7

    16H2

    16

    2

    -

    16

    2(8)

    -

    H

    1977

    1

    16L2

    16

    2

    -

    16

    2(8)

    -

    L

    1977

    1

    16P2

    16

    2

    -

    16

    2(8)

    -

    P

    1983

    1,7

    16C1

    16

    1+T

    -

    16

    16

    -

    H and L

    1977

    1,2

    16H8

    10

    2

    6

    16

    8(7)

    8

    H

    1982

     

    16HD8

    10

    8

    -

    16

    8(8)

    -

    H

    1982

    1,3

    16HE8

    10

    2

    6

    16

    8(8)

    -

    H/P

    1983

    4

    16L8

    10

    2

    6

    16

    8(7)

    8

    L

    1977

    5,6

    16LD8

    10

    8

    -

    16

    8(8)

    -

    L

    1982

    1,3

    16LE8

    10

    2

    6

    16

    8(8)

    -

    L/P

    1983

    4

    16P8

    10

    2

    6

    16

    8(7)

    8

    P

    1983

     

    16SP8

    10

    2

    6

    16

    7, 3(7|7), 7

    8

    P

    1986

     

    18P8

    10

    -

    8

    18

    8(8)

    8

    P

    1984

     

    EPL10P8

    10

    8

    -

    10

    8(2|2)

    -

    P

    1984

    7,8

    EPL12P6

    10

    6

    -

    12

    4|4, 4(2|2), 4|4

    -

    P

    1984

    7,8

    EPL14P4

    10

    4

    -

    14

    4(4|4)

    -

    P

    1984

    7,8

    EPL16P2

    1612

    2

    -

    16

    2(8|8)

    -

    P

    1984

    7,8

    EPL16P8

    1014

    2

    6

    16

    4(7|7)

    8

    P

    1984

    7,9

    TABLA A.3(b). Multiplixadores programables.

    Nombre

    Nº de entradas

    Nº de salidas

    Nº de E/S

    Maximo nº de entradas

    Product term distribution

    Nº de productos de control

    Polaridad de salida

    Año de revelación

    Notas

    R29693

    10

    4

    -

    10

    N/A

    -

    L

    1978

    10

    Notas para las tablas A.3(a) y la tabla A.3(b):

  • Salidas "Totem pole".

  • Las dos salidas son complementarias.

  • Seis salidas tienen realimentación interna a la matriz AND. La `D' significa "salidas dedicadas", o sea, que no pueden ser desconectadas y usadas como entradas externas.

  • Salidas con su propia polaridad programable, buffers de la I/O con tres estados programables mediante fusibles.

  • Uno de los dispositivos PAL combinacionales con 20 pines más populares.

  • Disponible en versión borrable.

  • Los dispositivos `EPL' (Electronically Programmable Logic) son borrables.

  • La célula de salida se muestra en la figura A.2. En el primer modo la EPL es equivalente al dispositivo PAL del mismo nombre.

  • La célula de salida se muestra en la figura A.3. En el primer modo la EPL es equivalente al dispositivo PAL del mismo nombre.

  • La estructura se muestra en la figura 3.33.

  • TABLA A.4(a). 24-pin combinational PAL devices.

    Nombre

    Nº de entradas

    Nº de salidas

    Nº de E/S

    Maximo nº de entradas

    Product term distribution

    Nº de productos de control

    Polaridad de salida

    Año de revelación

    Notas

    12H10

    12

    10

    -

    12

    10(2)

    -

    H

    1984

    1

    12L10

    12

    10

    -

    12

    10(2)

    -

    L

    1981

    1

    12P10

    12

    10

    -

    12

    10(2)

    -

    P

    1983

    1

    14H8

    14

    8

    -

    14

    4, 6(2), 2

    -

    H

    1984

    1

    14L8

    14

    8

    -

    14

    4, 6(2), 4

    -

    L

    1981

    1

    14P8

    14

    8

    -

    14

    4, 6(2), 4

    -

    P

    1985

    1

    16H6

    16

    6

    -

    16

    2(4), 2(2), 2(4)

    -

    H

    1984

    1

    16L6

    16

    6

    -

    16

    2(4), 2(2), 2(4)

    -

    L

    1981

    1

    16P6

    16

    6

    -

    16

    2(4), 2(2), 2(4)

    -

    P

    1985

    1

    18H4

    18

    4

    -

    18

    6, 2(4), 6

    -

    H

    1984

    1

    18L4

    18

    4

    -

    18

    6, 2(4), 6

    -

    L

    1981

    1

    18P4

    18

    4

    -

    18

    6, 2(4), 6

    -

    P

    1985

    1

    20H2

    20

    2

    -

    20

    2(8)

    -

    H

    1984

    1

    20L2

    20

    2

    -

    20

    2(8)

    -

    L

    1981

    1

    20P2

    20

    2

    -

    20

    2(8)

    -

    P

    1985

    1

    20C1

    20

    1+T

    -

    20

    16

    -

    H and L

    1981

    1,2

    20L8

    14

    2

    6

    20

    8(7)

    8

    L

    1982

    7

    20P8

    14

    2

    6

    20

    8(7)

    8

    P

    1985

     

    20L10

    12

    2

    8

    20

    10(3)

    10

    L

    1981

     

    20S10

    12

    2

    8

    20

    7, 4(7|7), 7

    10

    P

    1983

     

    20P10

    12

    -

    10

    22

    10(8)

    10

    P

    1986

     

    20XP10

    12

    -

    10

    22

    10(2|6)

    10

    P

    1986

    3

    TABLA A.4(b). ECL devices.

    Nombre

    Nº de entradas

    Nº de salidas

    Nº de E/S

    Maximo nº de entradas

    Product term distribution

    Nº de productos de control

    Polaridad de salida

    Año de revelación

    Notas

    20P8

    12

    -

    8

    20

    4(4|4)

    8

    P

    1983

    4

    16P8

    12

    4

    4

    16

    8(8)

    4

    P

    1985

    4,5

    16P4

    16

    4

    -

    16

    4(8)

    -

    P

    1987

    4,5

    12C4

    12

    -

    12

    4(8)

    -

    H,L

    1988

    4,5

    16C4

    16

    -

    16

    4(8)

    -

    H,L

    1989

    4,5,6

    Notas para las tablas A.4(a) y A.4(b):

  • Salidas "Totem pole"

  • Las dos salidas son complementarias.

  • La estructura de salida se muestra en la figura A.4.

  • Compatible con ECL 10KH.

  • Compatible con ECL 100KH.

  • Dispositivo con 28 pines.

  • Versión borrable disponible.

  • TABLA A.5. Address decoder/FPGA architectures.

    Nombre

    Nº de entradas

    Nº de salidas

    Nº de E/S

    Maximo nº de entradas

    Nº de productos de salidas

    Nº de productos de control

    Polaridad de salida

    Nº de pins

    Año de revelación

    Notas

    PLS102/3

    16

    9

    -

    16

    1

    -

    P

    28

    1977

    1

    PLS150/1

    6

    -

    12

    17

    1

    3

    P

    20

    1980

    2

    HPL-77061

    12

    4

    6

    18

    2

    -

    P

    24

    1983

    3

    PLS162

    16

    5

    -

    16

    1

    -

    P

    24

    1984

    1

    PLS163

    12

    9

    -

    12

    1

    -

    P

    24

    1984

    1

    HPL-82C339

    11

    8

    -

    11

    1

    -

    L

    24

    1984

    4,5,6,7

    HPL-82C338

    8

    8

    -

    8

    1

    -

    L

    20

    1985

    4,7,8

    HPL-82C138

    7

    4

    -

    7

    1

    -

    L

    16

    1985

    4,6,7,9

    HPL-82C139

    7

    4

    -

    7

    1

    -

    L

    16

    1985

    4,6,7,10

    PAL6L16

    6

    16

    -

    6

    1

    -

    L

    24

    1985

    4

    PAL8L14

    8

    14

    -

    8

    1

    -

    L

    24

    1985

    4

    TIFPGA529

    8

    8

    -

    8

    1

    -

    L

    20

    1985

    11

    TIBPAD16N8

    10

    2

    6

    16

    1

    8

    L

    20

    1987

    12

    TIBPAD18N8

    10

    -

    8

    18

    1

    -

    L

    20

    1987

    13

    85C508

    16

    8

    -

    16

    1

    -

    L

    28

    1988

    14,15

    Notas para la tabla A.5

  • Un pin de activación de salidas.

  • Cada término de control capaz de controlar de forma programada un banco de 4 I/O.

  • Una entrada reversible a activador de salida. Cada salida puede ser tanto abierta permanentemente como cerrada bajo el control de un pin del susodicho pin.

  • Salidas "Totem pole".

  • Direcciones de entrada divididas: bits de 7ms | 2 ls | high bank | low bank. Salidas en dos bancos de 4 bits, cada uno de los cuales decodifican direcciones ls , y elige si los bits ms coinciden con direcciones programadas.

  • "Marca" la salida a verdadera si los bits ms son iguales a la dirección programada.

  • Retraso de entradas por entrada `ALE'. Salidas condicionadas por la entrada `seleccionada'.

  • Direcciones de entrada divididas: bits de 5 ms | bits de 3 ls. Una de las cuatro direcciones de salida concuerda con los bits ls, y si los bits ms marcan direcciones programadas.

  • Direcciones de entrada divididas: bits de 5ms | 2 ls. Una de las cuatro salidas conectada de acuerdo a los bits ls, y si los bits ms coinciden con dirección programada.

  • Direcciones de entrada divididas: bits de 4ms | 1 ls | high bank | low bank. Las salidas son dos bancos de dos bits cada uno decodifica los bits de direcciones ls, y seleccionados si los bits ms coinciden con la dirección programada.

  • Particiones de salida en dos de cuatro bancos, cada uno controlable mediante un pin de activación.

  • Tiene la misma configuración de I/O que la PAL 16L8. Este es el dispositivo más rápido en la tabla.

  • Camino de realimentación de alta velocidad para cada salida.

  • Dispositivo borrable.

  • Salidas retrasadas por una entrada ALE.

  • TABLA A.6(a). 20-pins synchronous registered PAL devices.

    Nombre

    Nº de entradas

    Nº de registros con vuelta atrás (feedback)

    Nº de E/S

    Maximo nº de entradas

    Product term distribution

    Nº de productos de control

    Polaridad de salida

    Año de revelación

    Notas

    16R8

    8

    8

    -

    16

    8(8)

    -

    L

    1977

    1

    16RP8

    8

    8

    -

    16

    8(8)

    -

    P

    1983

    1

    16R6

    8

    6

    2

    16

    7,6(8),7

    2

    L

    1977

    1

    16RP6

    8

    6

    2

    16

    7,6(8),7

    2

    P

    1983

    1

    16R4

    8

    4

    4

    16

    2(7),4(8),2(7)

    4

    L

    1977

    1

    16RP4

    8

    4

    4

    16

    2(7),4(8),2(7)

    4

    P

    1983

    1

    16X4

    8

    4

    4

    16

    ver nota 3

    4

    L

    1978

    1,2,3

    16A4

    8

    4

    4

    16

    ver nota 4

    4

    L

    1978

    1,2,4

    HPL-77000

    10

    8

    -

    18

    8(4)

    16

    P

    1982

    5,6,7

    EPL16RP8

    8

    8

    -

    16

    4(8|8)

    -

    L

    1985

    1,8,9

    EPL16RP6

    8

    6

    2

    16

    (7|8),2(8|8),(8|7)

    2

    L

    1985

    1,8,9

    EPL16RP4

    8

    4

    4

    16

    (7|7),2(8|8),(7|7)

    4

    L

    1985

    1,8,9

    TABLA A.6(b). 20-pins synchronous generyc PALs.




    Descargar

    Nombre

    Nº de entradas

    Nº de celdas de salida

    Modos de celdas de salida

    Maximo nº de entradas

    Distribución de productos

    Año de revelación

    Notas

    EP300*

    10

    8

    i,l,o,r,t,v

    18

    8(8)

    1984

    9,11,12

    16V8

    10

    8

    p,t or(c), t or a, b

    16

    8(8)

    1984

    9,11,13,14

    16F8

    10

    8

    o,p,t,u,v,w

    18

    4(8|8 or 6|10 or 3|13 or 1|15)

    1986

    11,13,14,15

    23S8

    9

    4 (ver nota 16)

    o,r,v,t

    17

    2(6), 6(8), 4(10), 2(12)

    1986

    12,17,18

    18CV10

    8

    10

    o,t

    18

    2(8), 2(10), 2(12), 2(14), 2(16)

    1986

    11,12

    18V8

    10

    8

    a,b,p,t

    18

    8(8)

    1987

    Enviado por:Vladimir Luna
    Idioma: castellano
    País: Ecuador

    Te va a interesar