Post on 28-Sep-2018
Dispositivos lógicos programables (Dispositivos lógicos programables (PLDsPLDs))
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 (Dispositivos lógicos programables simples (SPLDsSPLDs))
PLA PROM PAL
I5 I4
O0
I3 I2 I1 I0
O1O2O3
Plano AND programable
Plano ORprogramable I5 I4
O0
I3 I2 I1 I0
O1O2O3
Plano AND programable
Plano OR fijo
O0
I3 I2 I1 I0
O1O2O3
Plano AND fijo
Plano ORprogramable
Fuente: Digital Integrated Circuits: A design perspective , Jan M. Rabaey
PLDsPLDs complejos (complejos (CPLDsCPLDs))
Proporcionan
Número elevado de puertas lógicas
Facilidad de interconexión
Temporización simple y determinista
Herramientas de diseño simples
Ciclos de desarrollo cortos
Costes de implementación bajos
SM
LB
LB
LB
LB
IO Blocks
IO B
lock
s
LB
LB
LB
LB
IO B
locks
IO Blocks
Field Programmable Gate ArraysField Programmable Gate Arrays ((FPGAsFPGAs))
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
IO Blocks
IO B
lock
s IO B
locks
IO Blocks
(IOBs) Bloques de E/S
Interfaz con los terminales del dispositivo
(CLBs) Bloques lógicos configurables
Elementos funcionales para implementar la lógica del usuario
Red de interconexión
Caminos para interconectar las entradas y salidas de CLBs e IOBs
Field Programmable Gate ArraysField Programmable Gate Arrays ((FPGAsFPGAs))
Xilinx XC4000ex
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
IO Blocks
IO B
lock
s IO B
locks
IO Blocks
Fuente: Digital Integrated Circuits: A design perspective , Jan M. Rabaey
Tipos de Tipos de FPGAsFPGAs
Arquitectura– Gate array (filas)– Matriz simétrica– Mar de puertas
Técnica de programación– Antifusibles– Memoria no volátil
(EPROM, EEPROM)– Memoria RAM
Tipo de bloque lógico (granularidad)
– Puertas lógicas– Multiplexores– Tabla de búsqueda (LUT)
Interconexión– Canales de routing– Red de interconexión
FPGAs FPGAs comercialescomerciales
RAMTabla look-upMatriz simétricaXilinx
RAMPuertas NANDMar de puertasPlessey
EPROMPLDsPLDs jerárquicosAltera
EEPROMPLDsPLDs jerárquicosAMD
fusiblesMultiplexoresGate arrayActel
Tecnología de programaciónBloques lógicosArquitecturaCompañía
FPGAsFPGAs de de XilinxXilinx
40K – 8M puertasBRAM: 72K – 3M4 – 168 multiplicadores
Virtex-II
Virtex-II + 0 – 4 PPC4 – 24 Rocket I/O transc.12 – 556 multiplicadores
Virtex-II Pro
58K – 1.2M puertasBRAM: 32K – 132K
Virtex
15K – 300K puertasBRAM: 16K – 64K
Spartan-II
5K – 40K puertasSpartan
1.6K – 85K puertasXC4000
SOCDSPArquitectura computadores
Procesadores empotrados
Diseño digitalCaracterísticasFamilia
XC4000 & XC4000 & SpartanSpartan
Incorpora:- memoria RAM distribuida- lógica de acarreo- buses 3-state internos
Velocidad de operación: 80 MHz
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 & XC4000 & SpartanSpartan ((IOBsIOBs))
Entrada
Bidireccional
Salida
TTL
LVTTL
PCI5V
PCI3V
LVCMOS3V
XC4000 & XC4000 & SpartanSpartan (Red de interconexión)(Red de interconexión)
Routing de IOBs
Routing global
Routing de CLBs
Programmableswitch matrix
XC4000 & XC4000 & SpartanSpartan (RAM distribuida)(RAM distribuida)
--Dual-port
Single-port
32x116x216x1Modo
Single-port
Dual-port
SpartanSpartan--II & II & VirtexVirtex
Incorpora:- bloques de memoria RAM- 4 DLL (Delay Locked Loop)- lógica de acarreo- soporte para multiplicadores
Velocidad de operación: 200 MHz
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)
SpartanSpartan--II & II & Virtex Virtex ((CLBsCLBs))
Cada CLB contiene 2 “slices”
Cada slice contiene 2 celdas lógicas (LC)
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
Slice
LC
SpartanSpartan--II & II & Virtex Virtex ((CLBsCLBs))
CLB
MUXF6
Slice
LUT
LUTMUXF5
Slice
LUT
LUTMUXF5
MUXF5: Combina 2 LUT para formar:
– Cualquier función de 5 entradas
– Un multiplexor de 4:1
– Determinadas funciones de 9 entradas
MUXF6: Combina 2 slices para formar:
– Cualquier función de 6 entradas
– Un multiplexor de 8:1
– Determinadas funciones de 19 entradas
SpartanSpartan--II & II & VirtexVirtex ((IOBsIOBs))Chip to Chip
LVTTL, LVCMOSChip to Memory
SSTL2-I, SSTL2-II, SSTL3-I,SSTL3-II, HSTL-I, HSTL-III,HSTL-IV, CTT
Chip to BackplanePCI33-5V, PCI33-3.3V, GTL, GTL+, AGP
IOB
I/O Banks
SpartanSpartan--II & II & Virtex Virtex (Bloques de RAM)(Bloques de RAM)
Bloques de memoria RAM síncrona de doble puerto de 4096-bits
Cada bloque tiene una altura de 4 CLBs
SpartanSpartan--II &II & VirtexVirtex (Señales de reloj)(Señales de reloj)
4 pads específicos (GCLKPAD)
4 buffers globales (GCLKBUF)
Red de distribución de reloj
4 Delay-Locked Loops (CLKDDL)
SpartanSpartan--II &II & VirtexVirtex (Señales de reloj)(Señales de reloj)
DLL (funciones)
Doblar la frecuencia de reloj
Dividir por 1.5, 2, 2.5, 3, 4, 5, 8 ó 16
Generar relojes de 4 fases
Eliminar retrasos en la distribución de reloj (deskew)
4 pads específicos (GCLKPAD)
4 buffers globales (GCLKBUF)
Red de distribución de reloj
4 Delay-Locked Loops (CLKDDL)
VirtexVirtex--II & II & VirtexVirtex--II ProII ProVirtex-II: 1.5/3.3 V - 0.15 µm - 8 ML
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
Velocidad de operación: 420 MHz
Velocidad I/O: 840 Mbps
Virtex-II Pro: 1.5/2.5 V - 0.13 µm - 9 ML Cu
Añade:- RocketIO transceiver (3.125 Gbps)- Power PC RISC (32 bit / 300 MHz)
2, 4 ó 6 columnas de BRAMs y multiplicadores
VirtexVirtex--II & II & VirtexVirtex--II Pro (II Pro (CLBsCLBs))
CIN
SwitchMatrix
TBUFTBUF
COUTCOUT
Slice S0X0Y0
Slice S1X0Y1
Fast Connects
Slice S2X1Y0
Slice S3X1Y1
CIN
SHIFT
Cada CLB contiene 4 “slices”:
– 2 LUTs de 4 entradas
– 2 Elementos de memoria
– Lógica de control y acarreo
VirtexVirtex--II & II & VirtexVirtex--II Pro (II Pro (CLBsCLBs))
F5F8
F5F6
CLB
Slice S3
Slice S2
Slice S0
Slice S1 F5F7
F5F6
MUXF8 combina las salidas MUXF7 de 2 CLBs
MUXF7 combina los 2 MUXF6 del CLB
MUXF6 combina las salidas de 2 slices
MUXF5 combina los 2 LUTs de un slice
VirtexVirtex--II & II & VirtexVirtex--II Pro (II Pro (IOBsIOBs))
SwitchMatrix
IOBPAD1
IOBPAD2
IOBPAD3
IOBPAD4
Cada IOB puede ser usado como entrada y/o salida
Dos IOBs pueden configurarse como un par diferencial
Estándares para single-ended I/O:- LVTTL, LVCMOS- PCI-X, CardBus, GTL, GTLP, AGP-2X- HSTL, SSTL
Estándares para señales diferenciales:- LVDS, BLVDS, ULVDS,LDT, LVPCEL
Impedancia salida programableDCI (Digitally controlled impedance)