Está en la página 1de 8

CAP11_FLOYD_IMP.

qxd 28/05/2006 13:12 Pgina 690

690 SOFTWARE Y LGICA PROGRAMABLE

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.

1. Qu quiere decir PAL?


REVISIN DE
LA SECCIN 11.1 2. Qu quiere decir GAL?
3. Cul es la diferencia entre una PAL y una GAL?
Las respuestas se
encuentran al final 4. Bsicamente, qu es lo que contiene una macrocelda?
del captulo 5. Qu es un CPLD?

11.2 DISPOSITIVOS CPLD DE ALTERA


Altera fabrica varias familias de dispositivos CPLD incluyendo las familias MAX II, MAX 3000 y
Max 7000. En esta seccin, nos vamos a centrar principalmente en la familia MAX 7000 para ilustrar
los conceptos de la arquitectura tradicional de los CPLD, teniendo siempre presente que otras familias
pueden variar hasta cierto punto en lo que respecta a su arquitectura y/o en lo que respecta a parme-
tros tales como la densidad, la tecnologa de proceso, el consumo de potencia, la tensin de alimenta-
cin y la velocidad.
Al finalizar esta seccin, el lector deber ser capaz de:
Describirun CPLD tpico de la familia MAX. Explicar la arquitectura bsica de los CPLD de las
familias MAX 7000 y MAX II. Explicar cmo se generan trminos producto en los dispositivos
CPLD.

CPLD MAX 7000


La arquitectura de un CPLD es la forma en que estn organizados y dispuestos los elementos internos del
dispositivo. La arquitectura de la familia MAX 7000 es similar al diagrama de bloques de un CPLD genrico
(mostrado en la Figura 11.10). Tiene la estructura clsica PAL/GAL que permite generar funciones suma de
producto. La densidad vara entre 2 bloques LAB y 16 bloques LAB, dependiendo del dispositivo concreto
de la serie que se utilice. Recuerde que un bloque LAB es aproximadamente equivalente a un SPLD y que el
CAP11_FLOYD_IMP.qxd 28/05/2006 13:12 Pgina 691

DISPOSITIVOS CPLD DE ALTERA 691

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

FIGURA 11.10 Diagrama de bloques bsico de un CPLD genrico.

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

692 SOFTWARE Y LGICA PROGRAMABLE

Entradas de propsito general

E/S 8- 16 Bloque Bloque de matriz lgica Bloque de matriz lgica Bloque


pines/LAB de control (LAB A) (LAB B) de control
de E/S de E/S
Macrocelda 1 Macrocelda 1

816 Macrocelda 2 36 36 Macrocelda 2 816

16 16

Macrocelda 16 Macrocelda 16

816 816

PIA

Bloque Bloque de matriz lgica Bloque de matriz lgica Bloque


de control (LAB C) (LAB D) de control
de E/S de E/S
Macrocelda 1 Macrocelda 1

816 Macrocelda 2 36 36 Macrocelda 2 816

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

DISPOSITIVOS CPLD DE ALTERA 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

36 lneas de la PIA 15 trminos


producto de
expansin de
otras macroceldas

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.

FIGURA 11.13 Ejemplo de utilizacin de un trmino de expansin compartido de una macrocelda


para incrementar el nmero de trminos producto.

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

694 SOFTWARE Y LGICA PROGRAMABLE

Macrocelda 1

ABCD + ABCD + ABCD


+ ABCD + ABCE + ABCF

Matriz de Trminos de expansin


seleccin de
trminos
producto

Macrocelda 2

ABCD + ABCD + ABCD

EF
Matriz de
seleccin de
trminos
producto

Trmino de expansin E + F
hacia macrocelda 1
A B C D E F

FIGURA 11.14 Ilustracin simplificada que muestra la utilizacin de un trmino de expansin


compartido de otra macrocelda con el fin de completar una expresin suma de productos.

ABCD + ABCD + EFGH Trminos de expansin paralelos

A
B
C
D

ABCD + EFGH + ABCD + ABCD + EFGH


E
F
G
H

FIGURA 11.15 Concepto bsico de expansin en paralelo.


CAP11_FLOYD_IMP.qxd 28/05/2006 13:12 Pgina 695

DISPOSITIVOS CPLD DE ALTERA 695

Macrocelda 1

ABCD + ABCD + ABCD


Trminos de expansin
paralelos prestados a la
macrocelda 2
Matriz de
seleccin
de trminos
producto

Macrocelda 2

ABCD + ABCD + ABCD


+ ABCD + ABCD +
ABCD + ABCD + ABCD

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

696 SOFTWARE Y LGICA PROGRAMABLE

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.

IOEs IOEs IOEs

LAB LAB LAB

Elemento Elemento Elemento


lgico lgico lgico

Elemento Elemento Elemento


IOEs lgico lgico lgico

Elemento Elemento Elemento


lgico lgico lgico

LAB LAB LAB

Elemento Elemento Elemento


lgico lgico lgico

Elemento Elemento Elemento


IOEs lgico lgico lgico

Elemento Elemento Elemento


lgico lgico lgico

FIGURA 11.17 Diagrama de bloques simplificado del CPLD MAX II.


CAP11_FLOYD_IMP.qxd 28/05/2006 13:12 Pgina 697

DISPOSITIVOS CPLD DE XILINX 697

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

(a) Lgica basada en tabla de consulta. (b) Lgica de matriz AND/OR


Se almacena un 1 en la direccin
correspondiente a cada trmino producto.

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

(a) Interconexiones de tipo fila/columna (b) Interconexiones de tipo canal

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?

11.3 DISPOSITIVOS CPLD DE XILINX


Xilinx, al igual que Altera, fabrica una serie de dispositivos CPLD que varan en cuanto a densidad,
tecnologa de proceso, consumo de potencia, tensin de alimentacin y velocidad. Xilinx fabrica diver-

También podría gustarte