You are on page 1of 53

1

Tema II
Circuitos Integrados Programables;

CPLDs y FPGAs
Roberto Gutiérrez Mazón

The Design Warrior’s Guide to FPGAs


Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
2

3.a Full Custom y Semi-Custom.

3.b Mask-Programmable Gate Arrays (MPGA).

3.c PLDs
i. SPLDs (PLD simples)
ii. CPLDs (PLD complejos)
iii. FPGAs
3

Familias
Lógicas

ASIC Lógica Standard

PLDs Arrays Puertas Semi Custom Full Custom

SPLDs
CPLDs FPGAs Standard Cell
(PALs)
4

¨  Nos surge una pregunta

¿Qué plataforma es la mejor?

¨  Y la respuesta

Depende de los requerimientos de la aplicación


5

¨  Consideraciones a tener en cuenta


para la elección de una familia u otra:
Ø  Retardo Propagación.
Ø  Cantidad de Lógica empleada.
Ø  Volatibilidad.
Ø  Tiempo de Diseño
Ø  Tiempo empleado en modificaciones.
Ø  Posibilidades de I/O.
Full Custom y Semi-Custom
6

¨  ICs construidos completamente por el diseñador: transistores, conexiones,


etc.
¨  Emplea máscaras personales para definir cada una de las capas en el
proceso de fabricación. El usuario controla la densidad del chip con lo que
se puede conseguir una alta utilización del mismo.
¨  Ventajas:
¤  Máxima flexibilidad en el diseño.
¤  Alto rendimiento: Es posible optimizar las partes criticas del diseño
consiguiendo un diseño más pequeño y más rápido que el obtenido con
herramientas CAD.
¨  Inconvenientes:
¤  Diseño complejo y altamente especializado (mucho cuidado con los errores).
¤  Tiempo de desarrollo muy alto.
¤  Coste de desarrollo alto.
¨  Esta alternativa es interesante para producciones de elevado volumen,
donde se consiguen amortizar los costes de desarrollo y test.
Full Custom y Semi-Custom
7
Materiales de silicato forman el 90% de la corteza terrestre.

Sílice (Dióxido de El silicio para uso


Silicio), se extrae sobre electrónico requiere el
todo para su utilización 99.9999999% de
en el hormigón. pureza.
Refinado al 95% de
pureza es utilizado para
la fabricación del
aluminio.
8
Full Custom y Semi-Custom
9
Full Custom y Semi-Custom
10
Full Custom y Semi-Custom (MEMS)
11

Caja Cambios
Full Custom y Semi-Custom
12

¨  Cuando se utiliza


una metodología de
diseño de tipo Semi-
custom, los diseños se
realizan a partir de
un conjunto de Memoria SRAM 0.25 um
módulos, Standard
Cells, ya diseñados y
caracterizados, que
se utilizaran como
elementos mínimos Intel Itanium 2
(Montezito)
del diseño.
Mask-Programmable Gate Arrays (MPGA):
Matrices de puertas y mar de puertas
13

v  Matrices de puertas


¨  Utiliza patrones predefinidos de
transistores y contactos de
transistores. La plantilla con los
transistores puede fabricarse antes de
tener el diseño. El circuito se
personaliza con el proceso de
metalización.
¨  Los transistores y sus contactos se
agrupan en células y estas células se
ordenan en filas separadas por canales
fijos.
¨  Características:
¤  Mas fácil que el Full Custom.
¤  Tiempos de desarrollo mas cortos.
¤  Costes de Desarrollo mas bajos.
¤  Solo es necesaria una mascara de
rutado.
Mask-Programmable Gate Arrays (MPGA):
Matrices de puertas y mar de puertas
14

¨  Una clase especial de las matrices


de puertas son los Sea-of-Gates.
Estos, al contrario que las matrices
de puertas no tienen contactos
prefabricados, por ello no son
necesarios los canales y los
transistores pueden llenar todo el
chip. El rutado se realiza sobre los
transistores no usados.
¨  El diseño de Sea-of-Gates solo
necesita máscaras para contactos y
rutado.
¨  Inconvenientes:
¤  Utilizan más silicio y tienen peor
velocidad que los diseños Full
Custom y Standard Cell.
Mask-Programmable Gate Arrays (MPGA):
Matrices de puertas y mar de puertas
15

Array de Puertas Array de Puertas


(conectado)
2.4 Mask-Programmable Gate Arrays (MPGA):
Matrices de puertas y mar de puertas
16

Array de Puertas Rutado


Sea of Gate
Dispositivos Logicos Programables
(PLDs).
17

¨  Son circuitos integrados programables por el usuario y empleados para


implementar hardware digital.
¨  Igual que los Arrays de Puertas son elementos prefabricados. Las
funciones lógicas se implementan programando eléctricamente las
interconexiones y personalizando las células básicas.
¨  Ventajas:
¤  Rápida programación y borrado (excepto OTP).
¤  Tiempo de desarrollo más corto.
¤  Facilidad para realizar cambios.
¤  Costes de desarrollo mas bajos.
¨  Inconvenientes:
¤  Limita la flexibilidad del diseño.
¤  No aprovecha área de silicio.
¤  Más lento.
¨  El sector de los CPLDs y FPGAs representa uno de los segmentos con
crecimiento más rápido en la industria de semiconductores.
PLD Simples
18

¨  Las PLDs sencillas ó SPLDs :


¤  Tienen una estructuras lógicas de planos AND/OR.
¤  Se dispone de un numero de macrocélulas inferior o igual a 16.
¤  La mayoría son PAL, también hay PLA y PLE.
¤  Son dispositivos de baja densidad.
¨  Los diseñadores tienden a dejar los SPLDs que venían usando para trabajar con
CPLDs que aportan más velocidad, más densidad, son más fáciles de usar y
cuentan con mejores herramientas CAD de diseño electrónico.
PLDs

SPLDs CPLDs

PROMs PLAs PALs GALs etc.


PLD Simples
19

Logic 1
Fuses Logic 1
Fat
Fat
a Pull-up resistors
a Pull-up resistors

Faf

NOT & y = a & !b


NOT & y = 0 (N/A)
Fbt
b
b AND
AND
Fbf
Fbf

NOT
NOT

Dispositivo sin programar Dispositivo programado


PLD Simples
20

PLA: Programmable Logic Array


¨  Estos dispositivos fueron los primeros
chips desarrollados específicamente para
implementar circuitos lógicos (Philips
1975).
¨  Su estructura dispone de un plano AND
programable seguido de un plano OR
también programable.
¨  Esta estructura es ideal para implementar
funciones lógicas como sumas de
productos.
¨  El hecho de tener ambas matrices
programables hace que el dispositivo tenga
mayor tamaño y menos velocidad.
¨  Existen variantes de la estructura PLA:
¤  Sólo plano AND u OR
¤  Plano AND con realimentación
¤  Plano AND+OR con realimentación
¤  Con registros o registros programables.
PLD Simples
21

a b c
Predefined link
a b c
Programmable link Predefined link
Programmable link
N/A a & b & c
&

Programmable
&

Programmable
N/A a & c

OR array

OR array
& &
!b & !c
N/A &
&
a !a b !b c !c

l
a !a b !b c !c
l

Predefined AND array w x y


Predefined AND array w x y w = (a & c) | (!b & !c)
x = (a & b & c) | (!b & !c)
y = (a & b & c)

PLA sin programar PLA programada


PLD Simples
22

PAL: Programmable Array Logic

¨  Son los dispositivos SPLDs mas


extendidos y variados del mercado.
Los primeros dispositivos PAL fueron
fabricados por MMI (actual AMD).
¨  Solo el plano AND es programable,
por lo que son circuitos con mayor a b c
Predefined link
velocidad de operación a menor coste. Programmable link

Hay versiones OTP (Programables &


una vez) y RP (Reprogramables

Predefined OR array
&

EEPROM). &

&
¨  Se dispone de series de 20,24 y 28 &
pines, con versiones combinacionales &

y secuénciales. a !a b !b c !c

l
Programmable w x y
AND array
PLD Simples
23

PAL Genericas o universales


¨  Son las PAL con registros mas flexibles que las vistas anteriormente puesto que
disponen de una circutería especial conocida con el nombre de Macrocélula.
PLD Simples
24

PAL 22VP10
PLD Simples
25
¨  GAL: Generic Array Logic (Lattice, 1984)
¨  Son dispositivos borrables eléctricamente
diseñados para sustituir a la mayoría de las PALs
de la serie general manteniendo la compatibilidad
pin a pin.
¨  Todos los pines de I/O tienen una macrocélula.
Los fusibles de las macrocélulas permiten
configurar la GAL en tres modos distintos:
¤  En modo registro puede emular a la PAL16R8, PAL
16R6, etc.
¤  En modo complejo puede sustituir a la PAL16L8,
PAL16H8, etc.
¤  En modo simple puede funcionar como PAL10L8,
PAL16L2, PAL14H4, etc.
¨  Reducción del numero de productos del
inventario de una empresa.
¨  Normalmente es el compilador el que selecciona
el modo de funcionamiento elegido en cada
diseño.

25
PLD Simples
26

¨  Todos los pines son bidireccionales.


¨  Versiones RP y OTP dependiendo del
encapsulado.
¨  Flip flops programables como tipo D,
T, JK y RS con control individual de
reloj y clear
¨  Los FF pueden puentearse y se
resetean automáticamente cuando se
alimenta el circuito.
¨  Bit de seguridad programable. Familia EPLD de Altera
¨  El clear de cada FF puede controlarse
independientemente y de forma
asíncrona con un producto.
¨  Como reloj se puede tomar el reloj
global del sistema o una señal
proveniente de la matriz AND.

26
PLD Simples - Programación
27

¨  Lenguajes Programación


¤  PALASM
¤  ABEL
¤  CUPL
Unprogrammed
device

Programmed
device

Host computer Device programmer


Complex PLDs - CPLDs
28

¨  Un CPLD extiende el concepto de un PLD a


un mayor nivel de integración ya que permite
implementar sistemas más eficientes porque
utiliza menos espacio, mejoran la
confiabilidad en el circuito y reducen costos.
¨  Un CPLD se forma de múltiples Bloques
lógicos, cada uno similar a un SPLD. Los
Bloques lógicos se comunican entre sí
utilizando una Matriz Programable de
Interconexiones lo cual hace más eficiente el
uso del silicio y conduce a un mejor
desempeño.
¨  En los CPLDs el retardo de propagación es
predecible debido a la regularidad de su
estructura de interconexiones.
¨  Podemos encontrar dispositivos basados en
EPROM,E2PROM,SRAM o FLASH.
Complex PLDs - CPLDs
29

Matriz de interconexiones Programables


(PIM)
¨  Permite unir los pines de I/O a las entradas de los
Bloques lógicos, o las salidas del Bloque lógico a las
entradas de otro Bloque lógico o inclusive a las
entradas del mismo bloque.

Bloques Lógicos
¨  Un bloque lógico es muy similar a un SPLD, cada uno
de ellos poseen generalmente una matriz de puertas
AND, una matriz de puertas OR y una configuración
para la distribución de los productos en las diferentes
macroceldas del bloque.
¨  El tamaño del bloque lógico es una medida de la
capacidad del CPLD, ya que de esto depende el
tamaño de la función booleana que pueda ser
implementada dentro del bloque.
¨  Los bloques lógicos usualmente tienen de cuatro a
veinte macroceldas.
Complex PLDs - CPLDs
30

Macroceldas
¨  Las macroceldas son similares a las
de un SPLD. Estas también están
provistas con registros, control de
polaridad y buffers para utilizar
salidas Triestado.

Celdas I/O
¨  La función de una celda de entrada/
salida es permitir el paso de la señal
hacia dentro o hacia el exterior del
dispositivo.
¨  Cada celda I/O dispone de un
registro con estada de habilitación
de reloj. Puede ser empleado como
registro de entrada o salida.
FPGAs - Field Programmable Gate Array
31

¨  Combina la Arquitectura de los Gate-


Arrays con la programabilidad de los
PLDs.
¨  Están constituidas por tres elementos
configurables: Bloques Lógicos
(CLBs) que se comunican mediante
Recursos de Interconexión entre si
y con el exterior a través de los
Bloques de I/O (IOBs)
¨  Gran parte del área ocupada en el
dado contiene los recursos que
permiten el rutado programable.
Programmable
¨  Ventajas: interconnect

¤  Alta densidad de puertas. Programmable


logic blocks
¤  Ciclo de diseño corto.
¤  Bajo coste.

31
FPGAs - Field Programmable Gate Array
32

¨  Bloques a
3-input
lógicos b
c
LUT
mux
flip-flop
y

Bloque Lógico
Las FPGAs son q
dispositivos basados en el d
concepto de Bloques clock
Lógicos Programables, los
cuales están compuestos
por una LUT de n-entradas, Required function Truth table Programmed LUT
un F.F. , multiplexores y a
& a b c y SRAM cells
pequeños elementos b 1 000
0 0 0 1
0

8:1 Multiplexer
adicionales. | y 0 0 1 0 001
c 0 1 0 1 1 010
El diseñador configurara el 0 1 1 1 1 011
y
y = (a & b) | !c 1 0 0 1 1 100
comportamiento de cada 0 101
1 0 1 0
Bloque para realizar 1 1 0 1 1 110
1 111
diferentes funciones. 1 1 1 1

abc
FPGAs - Field Programmable Gate Array
33

¨  Criterios de clasificación:


¤  Técnica de Programación, tenemos,
FPGAs configurables por:
n  SRAM, las mas extendidas. Se
caracterizan por ser Volátiles y
Reconfigurables.
n  Antifusible. Son No-Volátiles y No-
Reprogramables.
n  Flash o EEPROM, de reciente
aparición, las ProASIC de Actel y
las ispXPGA de Lattice, emplean
estas memorias como fuente única o
alternativa de configuración,
respectivamente. Son No-Volátiles y
Reprogramables.
FPGAs - Field Programmable Gate Array
34

E2PROM /
Feature SRAM Antifuse
FLASH
One or more One or more
Technology node State-of-the-art
generations behind generations behind
Yes Yes (in-system
Reprogrammable No
(in system) or offline)
Reprogramming
3x slower
speed (inc. Fast ----
than SRAM
erasing)
Volatile (must
No
be programmed Yes No
(but can be if required)
on power-up)
Requires external
Yes No No
configuration file
Good for Yes Yes
No
prototyping (very good) (reasonable)

Instant-on No Yes Yes

Acceptable
IP Security (especially when using Very Good Very Good
bitstream encryption)

Size of Large Medium-small


Very small
configuration cell (six transistors) (two transistors)
Power The Design Warrior’s Guide to FPGAs
Medium Low Medium Devices, Tools, and Flows. ISBN 0750676043
consumption
Copyright © 2004 Mentor Graphics Corp.
Rad Hard No Yes Not really (www.mentor.com)
Spartan III
35
Spartan III - Estructura
36
Spartan III – Bloque Lógico
37

Slice

Bloque Lógico (LC)


16-bit SRA
16x1 RAM
4-input
LUT

LUT MUX REG

Bloque Lógico (LC)


16-bit SRA
16x1 RAM
4-input
LUT

LUT MUX REG


Spartan III – Bloque Lógico
38

¨  Bloque Lógico


16-bit SRA 16-bit SRA
16x1 RAM

a 4-input 16 x 1 RAM
LUT
b
y 4-input LUT
c
mux
d flip-flop
q
e
clock
clock enable
set/reset

Diagrama Bloque Lógico Simplificado Distintos modos de funcionamiento LUT


Spartan III – Bloque Lógico
39

LUT4 configurado para


implementar lógica
combinacional.

LUT4 configurado para


implementar un registro
de desplazamiento
direccionable (SRA).
Spartan III - Bloque I/O
40

¨  Bloque I/O

Bloque retardo dinámico

Registro DDR
Spartan III - Bloque I/O
41

¨  Standard I/O soportados


Spartan III – Bloque DSP48
42

Multiplicador
Sumador
Acumulador

A[n:0]

x
B[n:0] + Y[(2n - 1):0]

MAC

Unidad MAC utilizada para DSP

Spartan 3A DSP
------------
Resto dispositivos únicamente multiplicador
Spartan III – Gestión Reloj
43

¨  Gestión Reloj:


¤  Se han diseñado arboles de
distribución de reloj que nos
permiten que el reloj llegue a
todos los F.F. de la FPGA en el
mismo instante.
¤  Se han añadido Bloques de
Gestión de Reloj (DCM), el
cual nos permite eliminar jitter,
síntesis de frecuencias,
desplazamientos de fase,
correcciones automáticas de
skew, etc.
Spartan III – Gestión Reloj
44

Clock signal (jitter)

Clock
Manager
etc.

clock pad

1.0 x original clk

2.0 x original clk


Daughter clock (monitored
downstream of the clock manager) .5 x original clk
fed back to special input
Clock signal from
outside world
De-skewed daughter
clocks used to drive
internal clock trees

Special clock
or output pins 0o Phase shifted
pin and pad
90o Phase shifted
1 2 3 4
Main (mother) clock
1 2 3 4
180o Phase shifted
Untreated daughter clock
1 2 3 270o Phase shifted
De-skewed daughter clock
Spartan III – Block RAM
45

Modos Configuración BLOCK RAM

45
FPGAs - Programación
46

¨  Proceso por el cual definimos la


funcionalidad de la FPGA (SRAM) a
partir de un fichero llamado
configuration bitstream.
¨  Algunos dispositivos permiten la Configuration data in
compresión, detección de errores Configuration data out
(CRC) y encriptación (AES 256 bits)
del archivo de configuración. Además
se incluyen numerosas medidas de = I/O pin/pad
protección (autentificación, = SRAM cell
Identificador único (device DNA)).
¨  Las FPGAs pueden trabajar en
diferentes modos de configuración,
dependiendo de las necesidades del
diseñador. Además permiten
reconfiguraciones parciales, múltiples Celdas SRAM de configuración.
ficheros de configuración en una
única memoria ROM, etc.
FPGAs - Programación
47

Modos Configuración Spartan 3 Modos Configuración Virtex 5

Secuencias proceso Configuración.


FPGAs - Programación
48

¨  Modo Maestro Serie

Modo Serie Daisy-Chain multi-FPGAs.

Modo Maestro Serie utilizando Platform FLASH.

Modo Ganged Serie multi-FPGAs.


FPGAs - Programación
49

¨  Modo Esclavo Serie


FPGAs - Programación
50

¨  Modo Maestro SPI


¤  Modo por el cual podemos
utilizar memorias SPI Flash
PROM.
¤  La FPGA puede tener acceso
una vez configurada a la
memoria FLASH para leer/ Modo Master SPI
escribir datos.
¤  Puede trabajar con distintos
fabricantes de memorias
FLASH (VS[2:0]).
Actualmente solo funciona con
memorias de STMicro y Atmel
(Impact).
Acceso Memoria FLASH sistema Embebido FPGA
FPGAs - Programación
51

¨  Modo Maestro SPI


interno
¤  Solo únicamente disponible en la
familia de dispositivos Spartan
3AN (disponen de hasta 16
Mbits de memoria FLASH
interna).
FPGAs - Programación
52

¨  JTAG
¤  Estándar basado en la especificación
IEEE 1149.1 para implementar
técnicas de boundary scan para
testear IC y PCBs.
¤  Dispone de 4 o 5 pines:
n  TDI: Pin entrada serie para todas las
instrucciones y datos.
n  TDO: Pin de salida para todas las
instrucciones y datos.
n  TMS: Pin para selección del modo de
funcionamiento del controlador JTAG.
n  TCK : Pin entrada de reloj JTAG
n  TRST: Pin Reset (opcional).
¤  Podemos encadenar múltiples
dispositivos.
Modo JTAG
¤  Nos permite acceder a los nodos
internos de la FPGA además de
poder testear el dispositivo.
FPGAs - Programación
53

Lógica Boundary-Scan incluida en los I/O.


Controlador JTAG

You might also like