Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aunque el principal objetivo de este capítulo es investigar las arquitecturas de los PLDs, también es
conveniente analizar las diversas opciones de hardware disponibles para los diseñadores de
sistemas digitales, ya que podremos obtener una mejor percepción de las alternativas de hardware
digital de la actualidad. Por lo general, se puede lograr la funcionalidad deseada de un circuito
mediante el uso de varios tipos distintos de hardware digital.
Un árbol familiar de los sistemas digitales (vea la figura 13-1) en el que se muestre la mayoría de
opciones de hardware disponibles en la actualidad puede ser útil para ordenar las diversas
categorías de dispositivos digitales. La representación gráfica en la figura no muestra todos los
detalles; algunos de los tipos de dispositivos más complejos tienen muchas subcategorías
adicionales y se omitieron los tipos de dispositivos obsoletos por cuestión de claridad. Las
principales categorías de sistemas digitales incluyen la lógica estándar, los circuitos integrados de
aplicación específica (ASIC) y los dispositivos de microprocesador/procesador digital de señales
(DSP).
La primera categoría de dispositivos de lógica estándar se refiere a los componentes digitales con
funcionalidad básica (compuertas, flip-flops, decodificadores, multiplexores, registros, contadores,
etc.) que están disponibles en chips SSI y MSI.
Los dispositivos lógicos programables (PLDs), que algunas veces se denominan dispositivos lógicos
programables en campo (FPLDs), pueden configurarse a la medida para crear cualquier circuito
digital deseado, desde simples compuertas lógicas hasta sistemas digitales complejos. [1]
En la figura 13-3 se muestra un dispositivo PLD simple. Cada una de las cuatro compuertas OR
pueden producir una salida que sea una función de las dos variables de entrada, A y B. Cada
función de salida se programa con los fusibles ubicados entre las compuertas AND y cada una de
las compuertas OR.
Cada una de las entradas A y B alimenta a un búfer no inversor y a un búfer inversor para producir
las formas verdadera e invertida de cada variable. Éstas son las líneas de entrada para el arreglo de
compuertas AND. Cada compuerta AND se conecta a dos líneas distintas de entrada para generar
un producto único de las variables de entrada. A las salidas de las compuertas AND se les llama
líneas de productos. Cada una de las líneas de productos se conecta a una de las cuatro entradas
de cada compuerta OR, a través de un enlace de fusible. Cuando al principio todos los enlaces
están intactos, la salida de cada compuerta OR será un 1 constante. He aquí la prueba:
Cada una de las cuatro salidas O1, O2, O3 y O4 pueden programarse para ser cualquier función de
A y B, para ello se queman en forma selectiva los fusibles apropiados. Los PLDs están diseñados de
manera que una entrada OR quemada actúe como un 0 lógico. Por ejemplo, si quemamos los
fusibles 1 y 4 en la compuerta OR 1, la salida O1 se convierte en
Podemos programar cada una de las salidas OR con cualquier función deseada en forma similar.
Una vez programadas todas las salidas, el dispositivo generará en forma permanente las funciones
de salida seleccionadas.
Simbología de PLDs
El ejemplo en la figura 13-3 sólo tiene dos variables de entrada y el diagrama del circuito esta un
tanto saturado de líneas y conexiones. Imagine lo complejo que sería el diagrama para PLDs con
muchas más entradas. Por esta razón, los fabricantes de PLDs han adoptado una representación
simbólica de los circuitos internos de estos dispositivos. La figura 13-4 muestra el mismo circuito
de PLD que la figura 13-3, sólo que utiliza los símbolos simplificados. En primer lugar, observe que
los búferes de entrada se representan como un búfer individual con dos salidas, una invertida y
otra no invertida. A continuación observe que se muestra una línea individual que va hacia la
compuerta AND para representar las cuatro entradas. Cada vez que la línea de las filas cruza una
columna, representa una entrada separada para la compuerta AND. Las conexiones que van desde
las líneas de las variables de entrada hasta las entradas de las compuertas AND se indican como
puntos. Un punto significa que esa conexión con la entrada de la compuerta AND es fija y no puede
cambiarse. A primera instancia parece como si las variables de entrada estuvieran conectadas unas
con otras. Es importante tener en cuenta que éste no es el caso, ya que la línea de fila individual
representa múltiples entradas para la compuerta AND. Las entradas para cada una de las
compuertas OR también se designan mediante una línea individual que representa a las cuatro
entradas. Una X representa un fusible intacto que conecta una línea de producto con una entrada
de la compuerta OR. La ausencia de una X (o un punto) en cualquier intersección representa un
fusible quemado. Para las entradas de las compuertas OR se asume que los fusibles quemados
(entradas no conectadas) están en BAJO, y para las compuertas AND los fusibles quemados están
en ALTO. En este ejemplo las salidas se programan como:
De acuerdo con lo anterior, observemos en la tabla 1.3 la estructura de los dispositivos lógicos
programables básicos.
La PROM no se utiliza como un dispositivo lógico, sino como una memoria direccionable,
debido a las limitaciones que presenta con las compuertas AND fijas.
En esencia, el PLA se desarrolló para superar las limitaciones de la memoria PROM. Este
dispositivo se llama también FPLA (arreglo lógico programable en campo), ya que es el
usuario y no el fabricante quien lo programa.
El PAL se desarrolló para superar algunas limitaciones del PLA, como retardos provocados
por la implementación de fusibles adicionales, que resultan de la utilización de dos
arreglos programables y de la complejidad del circuito. Un ejemplo típico de estos
dispositivos es la familia PAL16R8, la cual fue desarrollada por la compañía AMD
(Advanced Micro Devices) e incluye los dispositivos PAL16R4, PAL16R6, PAL16L8, PAL16R8,
dispositivos programables por el usuario para reemplazar circuitos combinacionales y
secuenciales SSI y MSI en un circuito.
ARQUITECTURAS DE PLDS
PROMs
La figura 13-6(b) muestra cómo se programa esta PAL para generar cuatro funciones lógicas
específicas. Sigamos el procedimiento para la salida O3 = AB C D. Primero debemos expresar esta
salida como la suma OR de cuatro términos, ya que las compuertas OR tienen cuatro entradas.
Para ello debemos colocar 0s. Por ende, tenemos que
A continuación, debemos determinar cómo programar las entradas para las compuertas AND 1, 2,
3 y 4 de manera que proporcionen los términos de productos correctos para la compuerta OR 3.
Debemos hacer esto término por término. El primer término AB se obtiene dejando intactos los
fusibles que conectan las entradas A y B con la compuerta AND 1 y quemando todos los demás
fusibles en esa línea.
De igual forma, el segundo término C D se obtiene dejando intactos sólo los fusibles que conectan
las entradas C y D con la compuerta AND 2. El tercer término es 0. Para producir un 0 constante en
la salida de la compuerta AND 3 se dejan todos sus fusibles de entrada intactos. Esto produciría
una salida de que, como sabemos, es 0. El cuarto término también es 0, por lo que los
fusibles de entrada para la compuerta AND 4 también se dejan intactos. Las entradas para las otras
compuertas AND se programan de manera similar para generar las otras funciones de salida. En
especial observe que muchas de las compuertas AND tienen todos sus fusibles de entrada intactos,
ya que necesitan generar 0s.
SPLD: la GAL
Programación de un arreglo GAL A diferencia de un PAL, el GAL está formado por celdas
programables, las cuales se pueden reprogramar las veces que sea necesario.. Tiene el mismo tipo
de organización AND/OR que la PAL. La diferencia básica es que la GAL utiliza una tecnología de
proceso reprogramable, como por ejemplo EEPROM ( E2 CMOS), en lugar de emplear fusibles.
Como se observa en la figura 1.5, cada fila se conecta a una entrada de la compuerta AND y cada
columna a una variable de entrada y sus complementos. Cuando se programa una celda, ésta se
activa mediante la aplicación de cualquier combinación de las variables de entrada o sus
complementos a la compuerta AND. Esto permite la implementación de cualquier función
(producto de términos) requerida.
En la Figura 11.6 se muestra un diagrama de bloques de una PAL o GAL. Recuerde que la diferencia
básica es que una GAL tiene una matriz reprogramable mientras que la PAL sólo puede
programarse una vez. Las salidas de la matriz AND programable están conectadas a puerta OR fijas
que a su vez están conectadas a circuitos lógicos adicionales de salida. El conjunto formado por
una puerta OR y su lógica de salida asociada suele denominarse macrocelda. La complejidad de la
macrocelda depende de cada dispositivo concreto, y en los dispositivos GAL las macroceldas
suelen ser reprogramables.
Macroceldas
Generalmente, una macrocelda consiste en una puerta OR y cierta lógica de salida asociada. Las
macroceldas varían en su complejidad dependiendo del tipo concreto de PAL o GAL. Una
macrocelda puede configurarse para implementar lógica combinacional, lógica registrada o una
combinación de ambos tipos de lógica. La lógica registrada significa que existe un flip-flop en la
celda que permite implementar funciones de lógica secuencial. La operación registrada de las
macroceldas se trata en la Sección 11.4. La Figura 11.7 ilustra tres tipos básicos de macroceldas con
lógica combinacional.
La parte (a) muestra una macrocelda simple con la puerta OR y un inversor con control triestado,
que puede hacer que el inversor actúe como un circuito abierto para desconectar completamente
la salida. La salida del inversor triestado puede estar a nivel BAJO, a nivel ALTO o desconectada. La
parte (b) es una macrocelda que puede actuar como entrada o como salida. Cuando la salida se
emplea como entrada, se desconecta el inversor triestado y la entrada va al buffer que está
conectado a la matriz AND. La parte (c) es una macrocelda que puede programarse para tener una
salida activa a nivel ALTO o activa a nivel BAJO, o que puede utilizarse como entrada. Una entrada a
una puerta OR-exclusiva (XOR) puede programarse para estar a nivel ALTO o BAJO. Cuando la
entrada programable de la puerta XOR está a nivel ALTO, la salida de la puerta OR se invierte
porque 0 ⊕ 1 = 1 y 1 ⊕ 1 = 0. De forma similar, cuando la entrada programable de la puerta XOR
está a nivel BAJO, la salida de la puerta OR no se invierte porque 0 ⊕ 0 = 0 y 1 ⊕ 0 = 1.
Dispositivos SPLD Generalmente, los encapsulados de los SPLD suelen tener entre 20 y 28 pines.
Dos factores que pueden usarse para determinar si una cierta PAL o GAL resulta adecuada para un
diseño lógico determinado son el número de entradas y salidas y el número de puertas
equivalentes o densidad del dispositivo. Otros parámetros que hay que considerar son la
frecuencia máxima de operación, los retardos y la tensión continua de alimentación. Entre las
diversas empresas que fabrican dispositivos SPLD podemos citar Lattice, Actel, Atmel y Cypress.
Diversos fabricantes de SPLD pueden utilizar distintas formas de definir la densidad de los
dispositivos, por lo que hay que tener en cuenta esta variabilidad a la hora de utilizar el número
especificado de puertas equivalentes. Dos tipos comunes de dispositivos PAL y GAL son el 16V8 y el
22V10. La designación de los dispositivos indica el número de entradas, el número de salidas y el
tipo de lógica de salida. Por ejemplo, 16V8 significa que el dispositivo tiene dieciséis entradas, ocho
salidas y que estas salida son variables (V). La letra L o H significa que la salida es activa a nivel bajo
(L, Low, bajo) o a nivel alto (H, High, alto). En la Figura 11.8 se muestra el diagrama de bloques de
una PAL16V8 y un encapsulado de SPLD típico. Cada macrocelda tiene ocho entradas procedentes
de la matriz de puertas AND, por lo que puede haber hasta ocho términos producto para cada
salida. Existen diez entradas dedicadas (E), dos salidas dedicadas (S) y seis pines que pueden
utilizarse como entradas o salidas (E/S). Cada salida es activa a nivel BAJO. La PAL16V8 tiene una
densidad de aproximadamente 300 puertas equivalentes.
En la Figura 11.9 se muestra el diagrama de bloques de una GAL22V10 y un encapsulado SPLD
típico. Este dispositivo tiene doce entradas dedicadas y diez pines que pueden actuar como
entradas o como salidas. Las macroceldas tienen entradas procedentes de la matriz AND que
varían entre ocho y dieciséis como se indica mediante la notación simplificada. La GAL22V10 tiene
una densidad de aproximadamente 500 puertas equivalentes.