Professional Documents
Culture Documents
Tema 2
Tema 2
Tema II
Circuitos Integrados Programables;
CPLDs y FPGAs
Roberto Gutiérrez Mazón
3.c PLDs
i. SPLDs (PLD simples)
ii. CPLDs (PLD complejos)
iii. FPGAs
3
Familias
Lógicas
SPLDs
CPLDs FPGAs Standard Cell
(PALs)
4
¨ Y la respuesta
Caja Cambios
Full Custom y Semi-Custom
12
SPLDs CPLDs
Logic 1
Fuses Logic 1
Fat
Fat
a Pull-up resistors
a Pull-up resistors
Faf
NOT
NOT
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 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 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
26
PLD Simples - Programación
27
Programmed
device
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
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
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)
Acceptable
IP Security (especially when using Very Good Very Good
bitstream encryption)
Slice
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
Registro DDR
Spartan III - Bloque I/O
41
Multiplicador
Sumador
Acumulador
A[n:0]
x
B[n:0] + Y[(2n - 1):0]
MAC
Spartan 3A DSP
------------
Resto dispositivos únicamente multiplicador
Spartan III – Gestión Reloj
43
Clock
Manager
etc.
clock pad
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
45
FPGAs - Programación
46
¨ 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