Sei sulla pagina 1di 14

Electrónica Digital SPLD y CPLD

SPLD y CPLD

Objetivos:
- Conocer las características más importantes de los SPLD y CPLD.
- Conocer las características más importantes del circuito CY7C335 de la Cypress (SPLD).
- Conocer las características más importantes de la familia 370 de la Cypress (CPLD).
- Mostrar mediante ejemplos como se utilizan.

Sumario:
- Introducción a al desarrollo de los SPLD y CPLD.
- Características más importantes del circuito CY7C335.
- Características más importantes de la Familia 370.
- Ejemplos de utilización de los circuitos anteriores.

Bibliografía:
• Digital Design Principles and Practices, J. F. Wakerly, 2000,
Capitulo 5, SPLD, pag
Capitulo 10, CPLD, pag 872 a 881 y FPGA pag 882 a 890

Notas de clases, Profesor: Víctor Escartín

1
Electrónica Digital SPLD y CPLD

Simplex Programmable Logic Device (SPLD)


Introducción.
Hay una gran variedad de circuitos integrados (CI) que realizan su función lógica cuando son programados por el
usuario, para satisfacer una aplicación dada. Muchos de estos dispositivos son fabricados con tecnologías que permiten
que sean reprogramables. Esto posibilita que si se detecta un error en el diseño durante la etapa de evaluación del
prototipo, se pueda rectificar y reprogramar el dispositivo y asi garantizar en una forma muy simple el correcto
funcionamiento del sistema.
Los dispositivos lógicos programables fueron inventados a finales de la década de los 70 y desde entonces su
utilización ha venido aumentando en forma acelerada hasta nuestros días. En la actualidad representan a uno de los
sectores que más rápido crecimiento experimenta en la industria de los semiconductores.
Estos dispositivos poseen las siguientes ventajas:
ƒ Fácil diseño. Las herramientas de diseño (HDL) disponibles en la actualidad simplifican grandemente el
diseño.
ƒ Características eléctricas. Los tiempos de propagación de los PLD de hoy en día son tan rápidos o mas que los
dispositivos lógicos comerciales estándar.
ƒ Confiabilidad. Una solución que inherentemente reduce la cantidad de CI a utilizar contribuye con el aumento
de la confiabilidad del sistema.
ƒ Economía. Un PLD sustituye varios COI de lógica estándar, lo que disminuye el espacio en el PCB y reduce el
tiempo de diseño.

Clasificación.
Estos dispositivos los podemos clasificar según se muestra a continuación:

Memorias ROM

PLA
SPLD Nivel AND y OR programable
PAL
Dispositivos
PAL GAL
Programables
Nivel OR programable
para la realización PALCE
de funciones lógicas

CPLD Arreglo de PAL

FPGA Arreglo de estructuras lógicas simples

2
Electrónica Digital SPLD y CPLD

Desde el punto de vista histórico los primeros dispositivos programables fueron los “Programmable Logia Array”
(PLA). Estos dispositivos están formados por una estructura AND – OR cuyas conexiones son programadas por el
usuario. Utilizando esta estructura un diseñador puede acomodar cualquier función lógica hasta determinado nivel de
complejidad.
La estructura de los PLA fue mejorada y su costo disminuido con la introducción de los “Programmable Array Logic”
(PAL). Hoy en día estos dispositivos son genéricamente hablando como “Programable Logic Devices” (PLD) y estos
son los dispositivos MSI de la gran industria de los dispositivos programables.

Dispositivo Fabricante Introducción


PAL Monolitic Memories (inventado) 1978
PAL ® Advance Micro Devices
GAL ® Lattice Semiconductor 1985

Descripción.
Cualquier función lógica puede ser representada como unas sumas de productos. Las figuras que siguen son para
mostrar el esquema lógico equivalente de un PLA:

U2 U3 U1 a
a 2 1 2 1 a
= a
/a

/a

El esquema anterior permite identificar el símbolo del circuito que se utiliza en la entrada de cada variable.

U4

U5

U6 U7 U8 U9
3

2 5 2 5 2 5 2 5
1

2 U10
3
1 F1
4
5

2 U11
3
1 F2
4
5

Las cruces a las entradas de cada AND indican que esa conexión es programable, al igual que en la entrada de cada
OR. Por ejemplo en la siguiente tabla se muestran las conexiones a realizar para tener los cuatros posibles producto.
3
Electrónica Digital SPLD y CPLD

CI Entrada Entrada
/a /b U6 3 5
/a b U7 3 4
a /b U8 2 5
a b U9 2 4

Si queremos que F1 = /a /b + a /b, entonces en la entrada de la compuerta U10 hay que conectar el terminal 2 y el 4.
Observar que en el diagrama anterior se programa tanto las entradas de las AND como las de las OR, por ser un PLA.

Para el caso de un PAL un ejemplo de diagrama seria.


U4

U5

U6 U7 U8 U9
3

4
2 5 2 5 2 5 2 5
1

U12
2
1 F1
3

U13
2
1 F2
3

Celda programable.
La celda programable varia de una tecnología a otra la variantes que son reprogramables utilizan transistores MOS
programables del tipo FAMOS o equivalentes. La siguiente figura muestra una sección del circuito anterior.
U4

U5

R1 R2
VCC VCC

Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8

Transistores Programables Transistores Programables

VCC
NOT NOR R3
VCC

AND Q9 Q10 Q12

Q11

NOR NOT

OR

4
Electrónica Digital SPLD y CPLD

Hay algunos PLD que utilizan para su programación fusibles en lugar de los transistores MOS programables.

D1
a

Q9

b
F1

SPLD Comerciales.
Todos los PLD pequeños se agrupan dentro de la categoría de los SPLD. Las características más importantes son su
bajo costo y su alta velocidad de pin a pin. Según la tecnología se fue desarrollando resulto imposible obtener SPLD de
mayores capacidades. La dificultad esta en que su estructura crece de tamaño debido al aumento del número de
entradas y esto hace muy lenta esta estructura. La única manera posible de aumentar su capacidad es la integrar varios
SPLD en un mismo circuito integrado y de que posea una estructura que permita programar las interconexiones
internas. Estos circuitos se conocen como CPLD.
Dos de los SPLD más populares son el 16V8 y el 22V10. Los SPLD los producen Altera, AMD, Lattice, Cypress and
Philips – Signetics.

Veamos ejemplos de SPLD producidos por CYPRESS.

Entradas Entradas
PLD Salidas Productos PINs
Generales Totales
PALCE16V8 8 10 8 8 20
PALCE20V8 12 14 8 8 24
PALCE22V10 12 12 10 8 a 16 24
PALCE26V12 26 14 12 8 a 16 28
CY7C331 13 13 12 4 a 12 28
CY7C335 13 13 12 9 a 19 28

Un 16V8 lo podemos identificar como un dispositivo de 16 entradas x 8 salidas x 8 términos productos. En general un
PLD lo podemos identificar por el numero de entradas (n), por el numero de salidas (m) y el numero de términos
productos (p). En general p es menor que 2 n .

5
Electrónica Digital SPLD y CPLD

CY7C335 Universal Synchronous PLD.

9 Tiene 12 macroceldas de entradas / salidas con las siguientes características:


• Un flip-flop con una XOR en la entrada conectado a la salida del arreglo programable.
• Un flip-flop para realimentar la salida cuya entrada esta conectada al pin I/O.
• Entrada de Reloj, Reset y Set independiente a cada flip-flop.
• Capacidad de entradas sincrónicas en todos los flip-flops.
• Control del tercer estado tanto local como global.
• Realimenta la salida de cualquiera de los flip-flops al arreglo programable.
• Los Flip-Flops son configurables como tipo T, RS, JK o D

9 Tiene 13 entradas y 12 entradas salidas formada por 12 macroceldas con 12 biestables configurables como tipo
D, T, RS o JK. Además cada entrada tiene asociado un registro.
9 Alta velocidad, 20 ns máximo.
9 Consume relativamente poca potencia, ICC (típica) = 90 mA, ICC (máxima) = 180 mA.

Diagrama de terminales:
U9
2 28
3 I0/CLK2 I/O0 27
4 I1/CLK3 I/O1 26
5 I2 I/O2 25
6 I3 I/O3 24
7 I4 I/O4 23
9 I5 I/O5 20
10 I6 I/O6 19
11 I7 I/O7 18
12 I8 I/O8 17
13 I9 I/O9 16
14 I10 I/O10 15
I11/OE I/O11
1
CLK1

CY 7C335_H

Este PLD es equivalente a cuatro 22V10 y puede trabajar hasta a frecuencia de 100 MHz. Tiene hasta 258 términos
productos para 16 biestables variando entre 9 y 19 términos productos por cada macroceldas. Los biestables pueden
configurarse como tipo D, RS, JK o T. Posee tres terminales de reloj. En la siguiente figura se muestra el diagrama en
bloque de cada una de las celdas de entrada.

MUX2
U12
Input U13
I1
Pin Y To Array
I2
A

B-I
U10

D Q

U11
/Q C7
CLK1 I1
Y CLK
CLK2 I2
A

FF D
MUX2

C6

El Flip-Flop de entrada puede trabajar con uno de los dos relojes indicados en la figura, igualmente el pin de entrada
puede pasar directamente al array sin pasar por el Flip-Flop.

6
Electrónica Digital SPLD y CPLD

En la siguiente figura se muestra la distribución de las entradas de los terminales de Reloj.

ICLK2 to Output Maceocells

ICLK1 to Output Maceocells


PIN 1

ICLK1 ICLK2
U19 MUX2
I1
Y
I2
A

U24 MUX2 U28


U26
C9 I1
Y To Array
PIN 2 D Q I2

A
B-I
U22 MUX2
/Q
I1
U20 MUX2 Y CLK
I2
I1
A
Y FF D
I2
A

C8 U25 MUX2 U29


U27
I1
Y To Array
PIN 3 D Q I2

A
B-I
U23 MUX2
/Q
U21 MUX2 I1
Y CLK
I1 I2
Y
A

I2 FF D
A

C10

7
Electrónica Digital SPLD y CPLD

Complex Programmable Logic Device (CPLD)

Desde su introducción los dispositivos PLD tales como el 16V8 y el 22V10 han sido ampliamente utilizados por su
gran flexibilidad en los diseños de sistemas digitales. Según la tecnología de fabricación de los CI avanza, aumenta el
interés por desarrollar PLD más complejos. ¿Porque no se fabrican PLD mayores que los mencionados? El incremento
en la intensidad de la integración en las memorias RAM en los últimos 10 años ha sido aproximadamente 64 veces si
se aplica este incremento en los PLD se obtendría un 128V64 (8 x 16V8). Este dispositivo tendría 64 pines de entradas,
64 I/O pines y N veces 128 términos productos. Este circuito seria muy flexible pero sus características eléctricas no
serian muy buenas. Un 16V8 tiene 32 entradas (16 entradas y sus complementos) por cada compuerta AND. El
128V64 tendría 256 entradas por compuerta AND. Debido a los efectos capacitivos, corrientes de fuga etc esta
compuerta seria al menos 8 veces más lenta que la del 16V8. Esta situación no logra un costo efectivo aceptable por el
área utilizada. Este dispositivo es equivalente a 8 16V8 pero utiliza un área 64 veces mayor.
Los CPLD utilizan otra variante digamos que se pone en un mismo CI ocho PLD equivalentes al 16V8, como se
muestra en la figura 1. En este caso el área es igual al de ocho PLD mas el área de las interconexiones.

Figura 1, Arquitectura general de un CPLD.

PLD PLD PLD PLD

Interconexiones

PLD PLD PLD PLD

Ejemplo de CPLD producidos comercialmente.

Fabricante Familias
Altera MAX5000, MAX7000, MAX9000
AMD MACH 1 a MACH 5
Lattice PLSI1000, PLSI2000, PLSI3000
Cypress FLASH370
Xilinx XC7000, XC9000
Altera Flashlogic
ICT PEEL array

Los fabricantes emplean diferentes variaciones de la arquitectura general anteriormente planteada.

8
Electrónica Digital SPLD y CPLD

Familia 370.

Logic Dedicated Input Flip- Speed Fmax


Device Pins Macrocell I/O Pins
Block Inputs CLK Flops (ns) MHz
371 44 32 2 6 32 2 44 8.5 143
372 44 64 4 6 32 2 76 10 125
373 84 64 4 6 64 4 76 10 125
374 84 128 8 6 64 4 140 12 100
375 160 128 8 6 128 4 140 12 100

La arquitectura de la familia 370 esta basada en un numero de Bloques Lógicos (Logic Block) que están
interconectados por una matriz programable de interconexión (Programable Interconnect Matrix). Cada bloque lógico
posee su arreglo de suma de productos y 16 macroceldas. La matriz de interconexiones programable (PIM) distribuye
las señales de un bloque lógico a otro así como de todas los terminales de entradas. Esta familia de CPLD tiene una
amplia variedad de densidades y cantidad de terminales. Para cada densidad hay dos opciones de encapsulado en una se
priorizan los terminales y en la otra los registros. Por ejemplo la CY7C374 y la CY7C375 tienen 128 macroceldas. La
CY7C374 tiene la mitad de sus macroceldas escondidas por lo que el dispositivo esta disponible en un encapsulado de
84 terminales. En el Cy7C375 todas las macroceldas y tienen terminales de entradas / salidas por lo que el dispositivo
esta encapsulado en 160 terminales. La siguiente figura muestra la organización antes descrita.

4
2

INPUT INPUT / Clock


Macrocells Macrocells

4 4

U1 36 U1
36
Logic Logic
Block Block
16
16
PIM
U1 36 U1
36
Logic Logic
Block Block
16
16

U1 36 U1
36
Logic Logic
Block Block
16
16

U1 36 U1
36
Logic Logic
Block Block
16
16

Diagrama de Bloques CY7C374 / CY7C375

9
Electrónica Digital SPLD y CPLD

Bloque Lógicos.
Consiste en un arreglo de los productos lógicos, un organizador inteligente de estos productos lógicos, 16 macroceldas
y un numero de celdas de entrada / salida. El numero de celdas de entrada / salida depende del dispositivo en particular.
Hay dos tipos de bloques lógicos en esta familia, en el primer tipo hay un numero igual de celdas de entrada / salidas y
macroceldas (16) como se muestra en la figura 2.

2 2 2
6
0 a 16 terminos
Productos Macrocelda # 1 Celda I/O
Arreglo .
36 .
de 72 x 86 Organizador .
From PIM
Productos de 0 a 16 terminos
Productos Macrocelda # 8 Celda I/O
Productos
80

0 a 16 terminos
Productos Macrocelda # 9 Celda I/O

.
.
.
0 a 16 terminos
Productos Macrocelda # 16 Celda I/O

16
TO PIM

16

Bloques Lógicos para CY7C371, CY7C373 y CY7C375

La arquitectura anterior es mejor para aplicaciones en que sea importante priorizar los terminales de entradas y salidas.
El otro tipo de arquitectura de Bloque Lógico utiliza macroceldas enterradas asociadas a cada terminal de entrada /
salida. Es decir en cada bloque lógico hay 8 macroceldas conectadas a los terminales de entrada / salida y 8
macroceldas que son internamente conectadas al PIM. Lo anterior se muestra en la siguiente figura.

2 2 2
6
0 a 16 terminos
Productos Macrocelda # 1 Celda I/O
Arreglo
36
de 72 x 86 Organizador 0 a 16 terminos
From PIM Productos Macrocelda # 2
Productos de
. a las celdas
Productos . 3, 5 y 7
80 .
.
0 a 16 terminos
Productos Macrocelda # 9 Celda I/O

.
.
.
0 a 16 terminos
Productos Macrocelda # 16

16 a las celdas
11, 13 y 15
TO PIM

Bloques Lógicos para CY7C372 y CY7C374

10
Electrónica Digital SPLD y CPLD

Arreglo de términos producto.


Cada bloque lógico tiene un arreglo de programable de términos productos con 72 x 86 productos. Este arreglo es
alimentado por 36 entradas provenientes del PIM las cuales se originan de los terminales de entradas y de la
realimentación de las macro celdas. Los 86 términos productos pueden crearse con cualquiera de las 72 entradas (36 x
2).
De los 86 productos, 80 son de propósito generales utilizados en las 16 macro celdas. Cuatro de los restantes 6
productos son para generar a OE. Cada uno de estos productos controla hasta 8 de las 16 macro celdas. Es decir cada
celda de salida puede escoger entre uno o dos OE productos.
Los otros dos productos restantes están dedicados a Set y Reset asincrónicos.

Organizador de los Productos.


Este bloque distribuye los términos productos a las 16 macro celdas. Un total de 80 términos productos están
disponibles. Este bloque tiene dos posibilidades de organización de los términos productos product term steering y
product term sharing.

Product term Steering.


Esta capacidad es la que permite asignar los términos productos a cada celda según los necesite. Por ejemplo si una
macrocelda requiere de 10 términos productos y otra solo tres. Este control permite realizar esta distribución.

Product term sharing.


Esta capacidad permite utilizar un mismo término producto por varias macro celdas.

Celda de entrada / salida.


Dentro de cada bloque lógico hay 8 ó 16 celdas de entrada / salida según el tipo de dispositivo. Esta celda permite
configurarse como combinacional o con un flip-flop tipo D o un flip-flop tipo T o como un Latch. Estos flip-flops
pueden tener entradas de Set y reset asincrónica con polaridad programada.
El reloj de los flip-flops es bastante flexible dependiendo del dispositivo puede haber 2 o 4 relojes y por programación
se selecciona la polaridad del reloj.

Celda enterrada (Buried Macrocell).


Esta celda es muy similar a la conectada a la descrita anteriormente. La diferencia fundamental es que esta celda no
tiene salida directa a un terminal de salida. Otra diferencia es que poseen un registro de entrada (tipo D).

Entradas de reloj.
Seis terminales de entradas están organizados como entrada solamente. Están organizados en dos tipos, terminales de
entradas y terminales de entradas de reloj. Cy7C371 y Cy7C372 tienen dos entradas de reloj y los otros tienen cuatros.

11
Electrónica Digital SPLD y CPLD

|
CYPRESS Familia 340.

Device Pins Macrocell Inputs I/O Pins Latch Flip-Flops


341 84 192 8 64 384 192
342 68 128 8 52 256 128
343 44 64 8 28 128 64
344 28 32 8 16 64 32
346 84 128 20 64 256 128

Esta familia esta basada en una arquitectura de macroceldas flexibles agrupadas en Bloques de Arreglos Lógicos (LABs). Dentro
de cada LABs hay un grupo adicional de términos productos denominados términos productos expandidos. Estos productos son
usados y compartidos por las macroceldas permitiendo funciones complejas de hasta 35 términos productos. Un Arreglo
programable de Interconexiones (PIA) rutea todas las interconexiones dentro del dispositivo.
Diagrama de bloques general. Los registros tienen un reloj global o relojes independientes del arreglo lógico.
Input / Clock Input

LAB 1 LAB N/2+1


8 Macrocelda # 1 Macrocelda # 1 8
Macrocelda # 2 Macrocelda # 2
. .
. .
. .
Macrocelda # 16 Macrocelda # 16

PIA
LAB 2 LAB N/2+2
4 Macrocelda # 1 Macrocelda # 1 4
Macrocelda # 2 Macrocelda # 2
. .
. .
. .
Macrocelda # 16 Macrocelda # 16

. .
. .
. .

LAB N/2 LAB N


8 Macrocelda # 1 Macrocelda # 1 8
Macrocelda # 2 Macrocelda # 2
. .
. .
. .
Macrocelda # 16 Macrocelda # 16

12
Electrónica Digital SPLD y CPLD

Familia 370i. ISR.

Logic Dedicated I/O Input Flip- Speed Fmax


Device Pins Macrocell
Block Inputs Pins CLK Flops (ns) MHz
371i 44 32 2 6 32 2 44 8.5 143
372i 44 64 4 6 32 2 76 10 125
373i 84/100 64 4 6 64 4 76 10 125
374i 84/100 128 8 6 64 4 140 12 100
375i 160 128 8 6 128 4 140 12 100

ISR = In System Reprogrammable.

Familia 37000. Ultra

Dedicated Speed Fmax


Device Pins Macrocell
Inputs (ns) MHz
CY37032 32 32 5 6 200
CY37064 32 / 64 64 5 6 200
CY37128 64 / 128 128 5 6.5 167
CY37192 120 192 5 7.5 154
CY37256 128 / 160 / 192 256 5 7.5 154
CY37384 160 / 192 384 5 10 118
CY37512 160 / 192 / 264 512 5 10 118

ISR = In System Reprogrammable.

Biestables tipo D, T o Latch.,

13
Electrónica Digital SPLD y CPLD

FPGA

Field Programmable Gate Array.


Diagrama en bloque general de un FPGA.

I / O

Logic
Block

14

Potrebbero piacerti anche