ques LAB individuales (que en realidad son dispositivos SPLD). Las entradas pueden conectarse a cualquie-
ra de los bloques LAB y sus salidas pueden interconectarse a cualquier otro bloque LAB a travs de la PIA.
La mayora de los fabricantes de lgica programable suministran una serie de dispositivos CPLD que va-
ran en cuanto a su densidad, tecnologa de proceso, consumo de potencia, tensin de alimentacin y veloci-
dad. Los fabricantes suelen especificar la densidad de un CPLD en trminos del nmero de macroceldas o de
bloques de matriz lgica. Dichas densidades pueden ir desde las decenas de macroceldas hasta ms de 2000
macroceldas con encapsulados de varios cientos de pines. A medida que los dispositivos PLD vayan hacin-
dose ms complejos, las densidades mximas tambin se incrementarn. La mayora de los dispositivos CPLD
son reprogramables y emplean tecnologa de proceso EEPROM o SRAM para implementar los enlaces pro-
gramables. El consumo de potencia puede ir desde unos pocos milivatios hasta unos pocos cientos de miliva-
tios, mientras que las tensiones continuas de alimentacin estn comprendidas entre 2,5 V y 5 V, dependien-
do de cada dispositivo especfico.
Son varios los fabricantes, como por ejemplo, Altera, Xilinx, Lattice y Cypress, que suministran disposi-
tivos CPLD. En este captulo vamos a centrarnos en los productos de Altera y de Xilinx, porque son dos de
las principales empresas en este sector. Otras empresas ofrecen dispositivos y software similares, por lo que
puede fcilmente realizarse la transicin a otros productos una vez que uno se ha familiarizado con uno o dos
de ellos. Como veremos, los CPLD y otros dispositivos de lgica programable son, en realidad, una combi-
nacin de hardware y software.
Bloque de Bloque de
matriz matriz
E/S lgica (LAB) lgica (LAB) E/S
SPLD SPLD
Bloque de Bloque de
matriz matriz
E/S lgica (LAB) lgica (LAB) E/S
SPLD SPLD
PIA
Bloque de Bloque de
matriz matriz
E/S lgica (LAB) lgica (LAB) E/S
SPLD SPLD
Bloque de Bloque de
matriz matriz
E/S lgica (LAB) lgica (LAB) E/S
SPLD SPLD
tamao de los encapsulados varan entre 44 y 208 pines. La serie MAX 7000 de dispositivos CPLD utiliza
una tecnologa de proceso basada en EEPROM. Las versiones programables dentro del sistema (ISP, In-
System Programmable) utilizan la interfaz estndar JTAG.
La Figura 11.11 muestra un diagrama de bloques general de los CPLD de la serie MAX 7000 de Altera.
Se muestran cuatro bloques LAB, pero puede haber hasta 16, dependiendo del dispositivo concreto de la serie.
Cada uno de los cuatro bloques LAB est compuesto por 16 macroceldas y los distintos bloques LAB se inter-
conectan a travs de la PIA, que es una estructura programable de bus global (se conecta a todos los bloques
LAB) a la que se conectan las entradas de propsito general, las lneas de E/S y las macroceldas.
La macrocelda. En la Figura 11.12 se muestra un diagrama simplificado de una macrocelda de la serie MAX
7000. La macrocelda contiene una pequea matriz AND programable con cinco puertas AND, una puerta OR,
una matriz de seleccin de trminos producto para conectar las salidas de las puertas AND a la puerta OR y
una lgica asociada que puede programarse para actuar como entrada, como salida de lgica combinacional
o como salida registrada. Esta macrocelda se estudia en ms detalle en la Seccin 11.4.
Aunque basada en los mismos conceptos, esta macrocelda difiere en cierta medida de la macrocelda pre-
sentada en la Seccin 11.1 al hablar de los dispositivos CPLD, porque contiene una parte de la matriz AND
programable y una matriz de seleccin de trminos producto. Como se muestra en la Figura 11.12, hay cinco
puertas AND que suministran trminos producto procedentes de la PIA a la matriz de seleccin de trminos
producto. El trmino producto generado por la puerta AND inferior puede ser re-invertido y realimentado
hacia la matriz programable, como mecanismo de expansin compartido que puede ser utilizado por otras
macroceldas. Las entradas expandidas paralelas permiten apropiarse de trminos producto no utilizados de
CAP11_FLOYD_IMP.qxd 28/05/2006 13:12 Pgina 692
16 16
Macrocelda 16 Macrocelda 16
816 816
PIA
16 16
Macrocelda 16 Macrocelda 16
816 816
FIGURA 11.11 Diagrama de bloques bsico de un CPLD de la serie MAX 7000 de Altera.
otras macroceldas, con el fin de expandir una expresin suma de productos. La matriz de seleccin de trmi-
nos producto es una matriz de conexiones programables que se emplea para conectar a la puerta OR una serie
de salidas seleccionadas de la matriz AND y de las entradas de expansin.
Lneas de expansin compartidas. En cada macrocelda de un bloque LAB hay disponible un trmino producto
complementado que puede utilizarse para incrementar el nmero de trminos producto en una expresin suma
de productos. La Figura 11.13 ilustra la manera de utilizar un trmino de expansin compartido procedente de
otra macrocelda con el fin de crear trminos producto adicionales. En este caso, cada una de las cinco puer-
tas AND de la matriz de una macrocelda est limitada a cuatro entradas y puede, por tanto, generar un trmi-
no producto de hasta 4 variables, como se muestra en la parte (a). La Figura 11.13(b) muestra la expansin a
dos trminos producto.
Cada macrocelda MAX 7000 puede generar hasta cinco trminos producto mediante su matriz AND. Si
una macrocelda necesita ms de cinco trminos producto para generar su salida suma de productos, puede
emplear un trmino de expansin procedente de otra macrocelda. Suponga que un determinado diseo requie-
re una suma de productos que requiere seis trminos producto. La Figura 11.14 muestra cmo emplearse un
CAP11_FLOYD_IMP.qxd 28/05/2006 13:12 Pgina 693
Lneas de expansin
paralelas de otras
macroceldas
Matriz de
Lgica Al bloque
seleccin
asociada de control
de trminos
de E/S
producto
Trmino de
expansin
compartido
FIGURA 11.12 Diagrama simplificado de una macrocelda en un CPLD de la serie MAX 7000.
A
B
C ABC(E + F) = ABCE + ABCF
A
B
C ABCD
D
E+F Trmino producto procedente
EF de otra macrocelda del mismo
bloque LAB
(a) Una puerta AND de 4 entradas de la (b) La puerta AND se expande para generar
matriz puede generar un trmino dos trminos producto.
producto de 4 variables.
trmino producto de otra macrocelda para incrementar una salida suma de productos. La macrocelda 2, que
est infrautilizada, genera un trmino de expansin compartido (E + F) que se conecta a la quinta puerta AND
de la macrocelda 1, con el fin de generar una expresin suma de producto con seis trminos. Las X y las l-
neas representan las conexiones implementadas en el hardware por el compilador software que ejecuta el dise-
o programado.
Trminos de expansin paralelos. Otra forma de incrementar el nmero de trminos producto de una macrocelda
consiste en utilizar trminos de expansin paralelos, en los que los trminos producto adicionales se combi-
nan mediante una operacin OR con los trminos generados en la macrocelda en lugar de combinarse en la
matriz AND, como sucede en los trminos de expansin compartidos. Cada macrocelda puede apropiarse
de trminos producto no utilizados en las macroceldas vecinas (hasta cinco trminos producto de otras tres
CAP11_FLOYD_IMP.qxd 28/05/2006 13:12 Pgina 694
Macrocelda 1
Macrocelda 2
EF
Matriz de
seleccin de
trminos
producto
Trmino de expansin E + F
hacia macrocelda 1
A B C D E F
A
B
C
D
Macrocelda 1
Macrocelda 2
Matriz de
seleccin
de trminos
producto
A B C D E F
FIGURA 11.16 Ilustracin simplificada del uso de trminos de expansin paralelos procedentes
de otra macrocelda con el fin de incrementar una expresin suma de productos.
macroceldas en los dispositivos MAX 7000). El concepto bsico se ilustra en la Figura 11.15, en donde un cir-
cuito simplificado que puede generar dos trminos producto se apropia de tres trminos producto adicionales.
La Figura 11.16 muestra la forma en que una macrocelda puede apropiarse de trminos de expansin para-
lelos procedentes de otra macrocelda, con el fin de expandir la salida suma de productos. La macrocelda 2 uti-
liza tres trminos producto de la macrocelda 1 para generar una expresin suma de productos de ocho trmi-
nos. Las X y las lneas representan las conexiones implementadas en el hardware por el compilador software
que ejecuta el diseo programado.
El CPLD MAX II
La arquitectura del CPLD MAX II difiere enormemente de la familia MAX 7000 y es lo que Altera denomi-
na un dispositivo CPLD "post-macrocelda". Como se muestra en el diagrama de bloques de la Figura 11.17,
CAP11_FLOYD_IMP.qxd 28/05/2006 13:12 Pgina 696
este dispositivo contiene bloques de matriz lgica (LAB) cada uno de los cuales est compuesto por mltiples
elementos lgicos (LE, Logic Element). El LE es la unidad bsica de diseo lgico y su papel es anlogo al
de la macrocelda. Las interconexiones programables estn organizadas segn una disposicin de filas y
columnas que se extienden entre los bloques LAB, y los elementos de E/S (IOE, Input/Output Element) estn
orientados alrededor del permetro. La arquitectura de esta familia de dispositivos CPLD es similar a la de los
dispositivos FPGA de los que hablaremos en la Seccin 11.5. De hecho, podemos considerar un dispositivo
MAX II como una FPGA de baja densidad.
Una diferencia fundamental entre el CPLD MAX II y el CPLD clsico basado en estructura SPLD es la
forma en que se desarrollan las funciones lgicas. Los dispositivos MAX II utilizan tablas de consulta (LUT,
Look-Up Table) en lugar de matrices AND/OR. Una LUT es, bsicamente, un tipo de memoria que puede pro-
gramarse para generar sumas de productos (lo que se ver ms en detalle en la Seccin 11.5). Estos dos dis-
tintos enfoques se comparan en la Figura 11.18.
Como ya hemos mencionado, un CPLD MAX II tiene una disposicin de las interconexiones en forma de
filas/columnas, en lugar de las interconexiones de tipo canal que podemos encontrar en la mayora de los
CPLD clsicos. Estos dos distintos enfoques se comparan en la Figura 11.19 y pueden entenderse comparan-
do las Figuras 11.11 y 11.17.
A0 A1 A 2 A n1
1
A0 0
A1 0
A2 Salida Salida suma
LUT 1
suma de de productos
1 productos
A n1
FIGURA 11.18 Los dispositivos CPLD MAX II tienen lgica basada en bloques LUT.
Los dispositivos CPLD clsicos tienen matrices AND/OR.
La mayora de los CPLD utiliza una tecnologa de proceso no voltil para implementar las conexiones pro-
gramables. Sin embargo, MAX II emplea una tecnologa de proceso basada en SRAM que es voltil, por lo
que toda la lgica programada se pierde en el momento de desconectar la alimentacin. La memoria integra-
da en el chip almacena los datos del programacin utilizando tecnologa de memoria no voltil y se encarga
de reconfigurar el CPLD en el momento en que se conecta de nuevo la alimentacin.
Bloques
LAB
FIGURA 11.19 Los dispositivos CPLD MAX II tienen interconexiones de tipo fila/columna.
Los dispositivos CPLD clsicos tienen interconexiones de tipo canal.
1. Qu significa LAB?
REVISIN DE
LA SECCIN 11.2 2. Describa un bloque LAB de los dispositivos CPLD MAX 7000.
3. Para qu sirve un trmino de expansin compartido?
4. Para qu sirve un trmino de expansin paralelo?
5. Cules son las diferencias entre un dispositivo MAX II y un dispositivo MAX
7000?