Download Dispositivos lógicos programables (PLDs)

Document related concepts
no text concepts found
Transcript
Dispositivos lógicos programables (PLDs)
¾ SPLDs (Dispositivos lógicos programables simples)
– Estructuras lógicas basadas en planos AND-OR
¾ CPLDs (Dispositivos lógicos programables complejos)
– Combinan varios SPLDs interconectados mediante una
matriz de conmutación fija o programable
¾ FPGAs (Field Programmable Gate Arrays)
– Incluyen bloques lógicos combinacionales, elementos
de memoria y una red de interconexión programable
Dispositivos lógicos programables simples (SPLDs)
I5
I4
I3
I2
I1
I0
Plano OR
programable
Plano AND programable
I2
I1
I0
Plano OR
programable
Plano AND fijo
O 3O 2O 1O 0
PLA
I3
I5
I4
I3
I2
I1
I0
Plano OR fijo
Plano AND programable
O3O2O1O0
PROM
Fuente: Digital Integrated Circuits: A design perspective , Jan M. Rabaey
O 3O 2O 1O 0
PAL
PLDs complejos (CPLDs)
Proporcionan
LB
LB
LB
LB
SM
LB
LB
LB
LB
IO Blocks
IO Blocks
IO Blocks
IO Blocks
z
Número elevado de puertas
lógicas
z
Facilidad de interconexión
z
Temporización simple y
determinista
z
Herramientas de diseño simples
z
Ciclos de desarrollo cortos
z
Costes de implementación bajos
Field Programmable Gate Arrays (FPGAs)
(IOBs) Bloques de E/S
z
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
IO Blocks
IO Blocks
IO Blocks
Interfaz con los terminales del
dispositivo
(CLBs) Bloques lógicos
configurables
z
Elementos funcionales para
implementar la lógica del usuario
Red de interconexión
IO Blocks
z
Caminos para interconectar las
entradas y salidas de CLBs e IOBs
Field Programmable Gate Arrays (FPGAs)
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
IO Blocks
IO Blocks
IO Blocks
IO Blocks
Xilinx XC4000ex
Fuente: Digital Integrated Circuits: A design perspective , Jan M. Rabaey
Tipos de FPGAs
¾ Arquitectura
– Gate array (filas)
– Matriz simétrica
– Mar de puertas
¾ Interconexión
– Canales de routing
– Red de interconexión
¾ Tipo de bloque lógico
(granularidad)
– Puertas lógicas
– Multiplexores
– Tabla de búsqueda (LUT)
¾ Técnica de programación
– Antifusibles
– Memoria no volátil
(EPROM, EEPROM)
– Memoria RAM
FPGAs comerciales
Compañía
Arquitectura
Bloques lógicos
Tecnología de
programación
Actel
Gate array
Multiplexores
fusibles
AMD
PLDs jerárquicos
PLDs
EEPROM
Altera
PLDs jerárquicos
PLDs
EPROM
Plessey
Mar de puertas
Puertas NAND
RAM
Xilinx
Matriz simétrica
Tabla look-up
RAM
FPGAs de Xilinx
Diseño
digital
Procesadores
empotrados
Arquitectura
computadores
3
3
3
3
3
3
3
3
Familia
Características
XC4000
1.6K – 85K puertas
3
Spartan
5K – 40K puertas
3
Spartan-II
15K – 300K puertas
BRAM: 16K – 64K
Virtex
58K – 1.2M puertas
BRAM: 32K – 132K
Virtex-II
40K – 8M puertas
BRAM: 72K – 3M
4 – 168 multiplicadores
Virtex-II Pro
Virtex-II + 0 – 4 PPC
4 – 24 Rocket I/O transc.
12 – 556 multiplicadores
3
DSP
SOC
3
3 3
XC4000 & Spartan
z
Incorpora:
- memoria RAM distribuida
- lógica de acarreo
- buses 3-state internos
z
Velocidad de operación: 80 MHz
z
IEEE 1149.1 (Boundary scan)
XC4000E: 5 V.
XC4000XL: 3.3 V. (0.35 µm)
XC4000XE: 2.5 V. (0.25 µm)
Spartan: 5 V.
Spartan-XL: 3.3 V.
XC4000 & Spartan (CLBs)
LUTs
multiplexores
FFs
XC4000 & Spartan (IOBs)
Bidireccional
TTL
LVTTL
PCI5V
PCI3V
LVCMOS3V
Salida
Entrada
XC4000 & Spartan (Red de interconexión)
Routing global
Routing de CLBs
Routing de IOBs
Programmable
switch matrix
XC4000 & Spartan (Red de interconexión)
Spartan/XL
XC4000 & Spartan (RAM distribuida)
Modo
16x1
16x2
32x1
Single-port
3
3
3
Dual-port
3
-
-
Dual-port
Single-port
Spartan-II & Virtex
z
Incorpora:
- bloques de memoria RAM
- 4 DLL (Delay Locked Loop)
- lógica de acarreo
- soporte para multiplicadores
z
Velocidad de operación: 200 MHz
z
16/19 interfaces estándar
Spartan-II: 2.5 V. - 0.25 µm - (200K)
Spartan-IIE: 1.8 V. - 0.22 µm - (300K)
Virtex: 2.5 V. - 0.22 µm - (1M)
Spartan-II & Virtex (CLBs)
Slice
z
Cada CLB contiene 2 “slices”
z
Cada slice contiene 2 celdas lógicas
(LC)
z
Cada LC contiene:
– LUT de 4 entradas
ƒ
Cualquier función de 4 entradas
ƒ
Memoria RAM de 16x1 bit
ƒ
Registro de desplazamiento de 16 bits
– Elemento de memoria
– Lógica de control y acarreo
LC
Spartan-II & Virtex (CLBs)
z
MUXF5: Combina 2 LUT para formar:
– Cualquier función de 5 entradas
– Un multiplexor de 4:1
CLB
Slice
MUXF6
LUT
– Determinadas funciones de 9
entradas
LUT
MUXF5
Slice
z
MUXF6: Combina 2 slices para formar:
– Cualquier función de 6 entradas
– Un multiplexor de 8:1
– Determinadas funciones de 19 entradas
LUT
LUT
MUXF5
Spartan-II & Virtex (IOBs)
Chip to Chip
LVTTL, LVCMOS
Chip to Memory
SSTL2-I, SSTL2-II, SSTL3-I,
SSTL3-II, HSTL-I, HSTL-III,
HSTL-IV, CTT
Chip to Backplane
PCI33-5V, PCI33-3.3V,
GTL, GTL+, AGP
IOB
I/O Banks
Spartan-II & Virtex (Bloques de RAM)
z
Bloques de memoria RAM síncrona de
doble puerto de 4096-bits
z
Cada bloque tiene una altura de 4 CLBs
Spartan-II & Virtex (Señales de reloj)
z
4 pads específicos (GCLKPAD)
z
4 buffers globales (GCLKBUF)
z
Red de distribución de reloj
z
4 Delay-Locked Loops (CLKDDL)
Spartan-II & Virtex (Señales de reloj)
z
4 pads específicos (GCLKPAD)
z
4 buffers globales (GCLKBUF)
z
Red de distribución de reloj
z
4 Delay-Locked Loops (CLKDDL)
DLL (funciones)
z
Doblar la frecuencia de reloj
z
Dividir por 1.5, 2, 2.5, 3, 4, 5, 8 ó 16
z
Generar relojes de 4 fases
z
Eliminar retrasos en la distribución de
reloj (deskew)
Virtex-II & Virtex-II Pro
Virtex-II: 1.5/3.3 V - 0.15 µm - 8 ML
z
Incorpora:
- RAM: bloques (18K) y distribuida (128x1)
- Multiplicadores de 18x18 bits
- Digital Clock Manager (DCM)
- Active Interconnect Technology
- Salida en modo diferencial
- Impedancia de I/O programable
z
Velocidad de operación: 420 MHz
z
Velocidad I/O: 840 Mbps
Virtex-II Pro: 1.5/2.5 V - 0.13 µm - 9 ML Cu
z
Añade:
- RocketIO transceiver (3.125 Gbps)
- Power PC RISC (32 bit / 300 MHz)
2, 4 ó 6 columnas de BRAMs
y multiplicadores
Virtex-II & Virtex-II Pro (CLBs)
z
COUT
COUT
– 2 LUTs de 4 entradas
TBUF
TBUF
– 2 Elementos de memoria
Slice S3
X1Y1
Switch
Matrix
Cada CLB contiene 4 “slices”:
– Lógica de control y acarreo
Slice S2
X1Y0
SHIFT
Slice S1
X0Y1
Slice S0
X0Y0
CIN
Fast Connects
CIN
Virtex-II & Virtex-II Pro (CLBs)
F6
Slice S3
F5
F8
MUXF8 combina las salidas MUXF7 de 2
CLBs
F5
MUXF7 combina los 2 MUXF6 del CLB
F7
Slice S2
F5
F6
Slice S0
MUXF6 combina las salidas de 2 slices
F5
Slice S1
CLB
MUXF5 combina los 2 LUTs de un slice
Virtex-II & Virtex-II Pro (IOBs)
z
Cada IOB puede ser usado como
entrada y/o salida
IOB
PAD4
z
Dos IOBs pueden configurarse como un
par diferencial
IOB
PAD3
z
Estándares para single-ended I/O:
- LVTTL, LVCMOS
- PCI-X, CardBus, GTL, GTLP, AGP-2X
- HSTL, SSTL
Switch
Matrix
IOB
PAD2
z
Estándares para señales diferenciales:
- LVDS, BLVDS, ULVDS,LDT, LVPCEL
IOB
PAD1
z
Impedancia salida programable
DCI (Digitally controlled impedance)
Virtex-II & Virtex-II Pro (Memoria)
Up to
400 Mbps/pin
DDR & QDR
128x1
Distributed RAM
bytes
18 kb
Blocks
Block RAM
kilobytes
External RAM/CAM
megabytes