Dispositivos lógicos programables (PLDs)icaro.eii.us.es/descargas/Tema2_FPGAs.pdf · Dispositivos...

26
Dispositivos lógicos programables ( Dispositivos lógicos programables ( PLDs 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

Transcript of Dispositivos lógicos programables (PLDs)icaro.eii.us.es/descargas/Tema2_FPGAs.pdf · Dispositivos...

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 & Spartan Spartan ((CLBsCLBs))

LUTsmultiplexores

FFs

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 (Red de interconexión)(Red de interconexión)

Spartan/XL

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)

VirtexVirtex--II & II & VirtexVirtex--II Pro (II Pro (MemoriaMemoria))

megabytes

Up to 400 Mbps/pin DDR & QDR

External RAM/CAMbytes

128x1

Distributed RAMkilobytes

18 kbBlocks

Block RAM