Arreglo de Compuertas Programables en el Campo …dea.unsj.edu.ar/sisdig2/FPGAs_SD2_2010.pdfQue es...

70
Arreglo de Compuertas Programables en el Campo Field Programmable Gate Array (FPGA)

Transcript of Arreglo de Compuertas Programables en el Campo …dea.unsj.edu.ar/sisdig2/FPGAs_SD2_2010.pdfQue es...

Arreglo de Compuertas

Programables en el Campo

Field Programmable Gate Array

(FPGA)

Introducción

ASICs: Costo. Tiempo de Desarrollo.

PLDs: Muy buena aceptacion. Pero muy chicos.

CPLDs: Muy rapidos, pero todavía chicos.

FPGAs: Xilinx Inc., 1985.

Sistemas Digitales II / Electrónica Digital II 2

Altera Inc. Actel Corp.

Lucent Technology Philips Semiconductors

Intel Corp. Motorola Semiconductors

QuickLogic Cypress

Lattice Semiconductors AMD

Vantis Xilinx

FPGA2010

Que es un FPGA?

Logica y conexiones programables

Programacion en circuito (ISP)

Bloques dedicados a:

Memoria

Control de reloj

Operaciones MAC, bloques DSP

Procesadores embebidos

Comunicacion serie de Gigabits/s

Otros bloques especificos

Sistemas Digitales II / Electrónica Digital II 3

Que es un FGPA?

Hasta 1200 E/S.

Hasta 40 estándares de E/S soportados. E/S Diferenciales

Hasta 40.000 Flips-Flops y Look-Up-Tables (LUTs)

Soft-Coded Procesador, 8051, ARM3

PLL y DLL disponibles (2-12) por dispositivo. Hasta 550MHz.

Impedancia de salida programable

Muy usados en prototipos de ASICs debido a su alta densidad y su re-programabilidad. Ayudan a solucionar errores de diseño sin modificar el Printed Circuit Board(PCB).

4Sistemas Digitales II / Electrónica Digital II

Flujo de Trabajo con FPGA

Sistemas Digitales II / Electrónica Digital II 5

Specifications

VHDL Code / Sch

Compilation

Simulation & Verification

Synthesis & Optimization

Place & Route

Timing Verification

Back-end Tools (FPGA specific tools)

Front-end Tools (general purpose tools)

FPGA

Configuration

Estructura General de un FPGA

Sistemas Digitales II / Electrónica Digital II 6

Estructura y componentes de un FPGA de Xilinx

Estructura General de un FPGA

Sistemas Digitales II / Electrónica Digital II 7

Estructura y componentes de un FPGA de Altera

Similaridad entre FPGAs

Sistemas Digitales II / Electrónica Digital II 8

Sistemas Digitales II / Electrónica Digital II 9

Vista interna de un FPGA (Spartan 3)

Familia del Virtex II

10Sistemas Digitales II / Electrónica Digital II

Celda de Configuración del FPGA

Elemento básico no-lógico

11Sistemas Digitales II / Electrónica Digital II

Determina la configuración de los elementos de ruteo e interconexiones

Determina la configuración de cada elemento lógico

Celdas de Configuración del FPGA

Tipos de Celdas

SRAM

Anti-Fuse

Flash

Flash y SRAM

12Sistemas Digitales II / Electrónica Digital II

Celda de Configuración Tipo SRAM

13Sistemas Digitales II / Electrónica Digital II

La configuración de los elementos lógicos y los de ruteo e interconexión son almacenados en

celdas SRAMs

Ventajas:

Rápida y fácil actualización

Infinitamente reprogramableProgramable en circuito (In System Programable)

Proceso de fabricación estándarCostos muy bajosProceso súper-comprobadoAlto rendimiento

Celda de Configuración tipo SRAM

14Sistemas Digitales II / Electrónica Digital II

Desventajas:

Necesidad de una memoria de configuración externa

Retardos en ruteo largos debido al retardo de la celda SRAM

Celda volátilSimple glitch en Vcc desconfigura el FPGA

Tiempo de configuración lento ~500ms

Inseguridad debido a la conexión FPGA-Memoria de configuración que puede ser ‘leída’

Celda de Configuración Tipo Anti-Fuse

15Sistemas Digitales II / Electrónica Digital II

La configuración de los elementos lógicos y los de ruteo e interconexión son almacenados en

celdas Anti-Fuse (ACTEL)

Celda de Configuración Tipo Anti-Fuse

16Sistemas Digitales II / Electrónica Digital II

Ventajas:

Retardos de conexiones de ruteo son pequeños

No es volátil

No sensibles a bombardeo de partículas iónicasMuy usados en sistemas espaciales

Celda de Configuración Tipo Anti-Fuse

17Sistemas Digitales II / Electrónica Digital II

Desventajas:

One-Time-Programmable (OTP)Proceso de verificacion muy largo y riguroso

Proceso muy caro

Proceso de fabricación específicoCostos elevados

No sensibles a bombardeo de partículas iónicasMuy usados en sistemas espaciales

Celda de Configuración Tipo Flash

18Sistemas Digitales II / Electrónica Digital II

La configuración de los elementos lógicos y los de ruteo e interconexión son almacenados en

celdas Flash

Celda de Configuración Tipo Flash-SRAM

19Sistemas Digitales II / Electrónica Digital II

Ventajas:

Tiempo de configuración es bastante bajo (~<1ms)

Prácticamente ‘no es volátil’

Se pueden configurar solo las celdas SRAMDurante el proceso de debug o prototipo

No se necesita una memoria de configuración externaMenos espacio en el PCBSistema no vulnerable – Sistema seguro

Celda de Configuración Tipo Flash-SRAM

20Sistemas Digitales II / Electrónica Digital II

Desventajas:

FPGA es caroProceso se esta haciendo mas común últimamente

Celda de Configuración Tipo Flash-SRAM

21Sistemas Digitales II / Electrónica Digital II

Las celdas Flash se usan para guardar los datos de configuración del FPGA

Las celdas SRAM para la configuración de los elementos lógicos y los de ruteo e interconexión

Cuando de alimenta el FPGA, las celdasSRAM se configuran en forma casiinstantanea desde las celdas Flash.

Celda de Configuración Tipo Flash

22Sistemas Digitales II / Electrónica Digital II

Ventajas:

Retardos de conexiones de ruteo son pequeños

No es volátil

Sensibilidad baja a bombardeo de partículas iónicasUsados en sistemas espaciales

Celda de Configuración Tipo Flash

23Sistemas Digitales II / Electrónica Digital II

Desventajas:

FPGA es bastante caroProceso se esta haciendo mas común últimamente

Proceso de reconfiguración bastante largo (~3-5 seg)

Comparación Tipos de Celdas

Sistemas Digitales II / Electrónica Digital II 24

SRAM Anti_fuse Flash

Velocidad Más lenta Mejor Más lenta

Potencia Varía/Peor Segunda Mejor Mejor

Densidad Mejor Segunda Mejor Media

Tolerancia a la Radiación Peor Mejor Media

Tamaño celda ruteo 1 1/10 1/7

Memoria Externa Si No No

Reprogramable Si No Si

Transicion FPGA a ASIC

Sistemas Digitales II / Electrónica Digital II 25

HardCopy – Altera

Producciones de grandes volumenes, +500.000/Y

EasyPath - Xilinx

Arquitectura similar al FPGA pero no programable !

Bajo Costo

Baja Potencia(*)

(*) Igloo

Arquitectura de los FPGAs

Sistemas Digitales II / Electrónica Digital II 26

El mas beneficiado:

Arquitectura en general es similar para FPGAs de diferentes fabricantes. Aunque cada fabricante diga

que su arquitectura es la mejor. .. .

El usuario final

Para diferenciarse cada fabricante ofrece …..

Arquitectura de los FPGAs

Sistemas Digitales II / Electrónica Digital II 27

Se verá en detalla la arquitectura de los FPGAs de Xilinx

Spartan 2-3-6 Virtex 2-2P-4-5-6

Alto rendimientoCaro

Medio rendimientoBarato

Arquitectura de los FPGAs

Sistemas Digitales II / Electrónica Digital II 28

Bloque Lógico Configurable (CLB)

Sistemas Digitales II / Electrónica Digital II 29

CLB

Bloque Lógico Configurable (CLB)

Sistemas Digitales II / Electrónica Digital II 30

Bloque Lógico Configurable - SLICEL

Sistemas Digitales II / Electrónica Digital II 31

Dos LUTsDos flip-flopsCuatro salidas

Dos combinacionalesDos registradas

Entradas de control para f-fsEntradas para la LUTsE/S para la cadena de acarreo

Tabla de Búsqueda–Look-up Table (LUT)

Sistemas Digitales II / Electrónica Digital II 32

A B C D Z

0 0 0 0 0

0 0 0 1 0

0 0 1 0 0

0 0 1 1 1

0 1 0 0 1

0 1 0 1 1

. . .

1 1 0 0 0

1 1 0 1 0

1 1 1 0 0

1 1 1 1 1

Generador de Funciones=LUT

Proceso transparente para el disenador

Tabla de Búsqueda–Look-up Table (LUT)

Sistemas Digitales II / Electrónica Digital II 33

F5Mux

FiMux

F6Mux

F7Mux

F8Mux

Elementos de Almacenamiento del SLICE

Sistemas Digitales II / Electrónica Digital II 34

Lógica de Acarreo (Carry In- Carry Out)

Sistemas Digitales II / Electrónica Digital II 35

SLICEL/M y sus Componentes

Sistemas Digitales II / Electrónica Digital II 36

Sistemas Digitales II / Electrónica Digital II 37

Detalle de un SLICEM

Virtex II – Detalle de Mitad del Slice

38Sistemas Digitales II / Electrónica Digital II

Sistemas Digitales II / Electrónica Digital II 39

Vista de un CLB

real

Sistemas Digitales II / Electrónica Digital II 40

Detalle del Bloque E/S

(IOB)

Sistemas Digitales II / Electrónica Digital II 41

Bloque E/S real

Estandares de E/S Soportados (Spartan 3)

Sistemas Digitales II / Electrónica Digital II 42

Estandard Descripción UsoBuffer

Entrada

Buffer

Salida

LVTTL Low-Voltage TTL Propósito general 3.3V LVTTL Push-pull

LVCMOS Low-Voltage CMOSPropósito general 3.3V, 2.5V, 1.8V,

1.5VCMOS Push-pull

PCI Peripheral Component Interconnect Bus PCI LVTTL Push-pull

GTL Gunning Transceiver Logic Bus alta velocidad, backplane VREF Open Drain

GTL+ GTL Plus Intel Pentium Pro VREF Open Drain

HSTL High Speed Transceiver Logic Interface con SRAM VREF Push-pull

SSTL3 Stub Series Terminated Logic 3.3V SRAM/SDRAM VREF Push-pull

SSTL2 Stub Series Terminated Logic 2.5V SRAM/SDRAM VREF Push-pull

SSTL18 Stub Series Terminated Logic 1.8V SRAM/SDRAM VREF Push-pull

Estandares Diferenciales

LVDS Low-Voltage Differential Signaling High speed interface Diferencial Diferencial

BLVDS Bus LVDS Multipoint LVDS Diferencial Diferencial

LVPECL Low Voltage Positive ECL High-speed clocks Diferencial Diferencial

LDT Lightning Data TransportBidireccional serie/paralelo (Hyper

Transport)Diferencial Diferencial

Mini-LVDS Mini-LVDS Flat Panel Displays Diferencial Diferencial

LVDSExt Extensión de LVDS Hard Drive interface Diferencial Diferencial

RSDS Reduced Swing Differencial Signaling DVI/HDMI Diferencial Diferencial

Bancos de E/S

Sistemas Digitales II / Electrónica Digital II 43

Bancos E/S Virtex II

Bloques de Memoria (BRAM)

Sistemas Digitales II / Electrónica Digital II 44

Opciones de Configuración de Memoria

45Sistemas Digitales II / Electrónica Digital II

Bloques de Memoria (BRAM)

Sistemas Digitales II / Electrónica Digital II 46

16Kx1

8Kx2

4Kx4

2Kx8

0

8.191

4.095

2047

1023

0 0

0

0

1 2 4

8

16+2

16.383

Diferentes configuraciones de relación datos/direcciones que se pueden implementar en

los BRAMs

Bloques de Memoria (BRAM)

Sistemas Digitales II / Electrónica Digital II 47

Principales aplicaciones de los BRAM:

Líneas de retardo

Registros de desplazamiento o muy largos o muy anchos

Buffers circulares

Rd/Wr variables durante cálculos matemáticos, por ej. Coeficientes para filtros FIR

Almacenamiento de programas para procesadores embebidos en el FPGA

Bloques de Memoria (BRAM)- Cont.

Sistemas Digitales II / Electrónica Digital II 48

Principales aplicaciones de los BRAM:

Almacenamiento de formas de onda o tablas de funciones trigonométricas para generar salidas tipo Direct Digital Synthesis (DDS) (Síntesis Digital Directa)

Memorias Direccionables por Contenido (CAM) de alto rendimiento de Rd/Wr

Contadores muy largos y rápidos

Realización de MEF usando técnicas de microprogramación

Bloques DSP

Sistemas Digitales II / Electrónica Digital II 49

P = A x B

36 = 18 x 18

Pipelining (opcional)

Bloque DSP – Avanzado Virtex-5

Sistemas Digitales II / Electrónica Digital II 50

Interconexiones - Ruteo

Sistemas Digitales II / Electrónica Digital II 51

Interconexiones - Ruteo

Sistemas Digitales II / Electrónica Digital II 52

Transistor de Paso

M

Y0

Y

PIP

Interconexiones - Ruteo

Sistemas Digitales II / Electrónica Digital II 53

Interconexiones - Ruteo

54Sistemas Digitales II / Electrónica Digital II

Interconexiones - Ruteo

Sistemas Digitales II / Electrónica Digital II 55

Interconexiones - Ruteo

Sistemas Digitales II / Electrónica Digital II 56

Interconexiones - Ruteo

Sistemas Digitales II / Electrónica Digital II 57

Generacion de Reloj–Digital Clock Manager

Sistemas Digitales II / Electrónica Digital II 58

CLK0

CLK2X

CLK2X180

CLKDIV

CLKFX

CLKFX180

CLKIN

CLKFB

DCM

Bloque dedicado exclusivamente a funciones de control y generación de señal de reloj para la lógica interna del FPGA

Generación de Reloj

Sistemas Digitales II / Electrónica Digital II 59

Las principales funciones del DCM se pueden resumir en:

Multiplicar o dividir la frecuencia de entrada del reloj, generando una frecuencia completamente nueva

Producir corrimiento de fase (Phase shifting) de una señal de reloj, ya sea por una fracción del periodo de reloj o por incrementos fijos

Eliminar el sesgo del reloj (clock skew), ya sea dentro del FPGA o con componentes externos

Generación de Reloj

Sistemas Digitales II / Electrónica Digital II 60

Las principales funciones del DCM se pueden resumir en:

Amplificar de nuevo (rebuffer) una señal de reloj, normalmente para eliminar el sesgo (deskew)

Convertir la señal de reloj de entrada a un estándar diferente, por ejemplo, de LVPECL a LVTTL

Acondicionar la señal de entrada del reloj, asegurando un reloj limpio, con un ciclo de trabajo del 50%

Ruteo de Reloj Dedicado

Sistemas Digitales II / Electrónica Digital II 61

DCM

DCM

DCM

DCM

8 8

4

4

8 8

8 8

88

H

G

F

E

D

C

B

A

H

G

F

E

D

C

B

A

C ABD

G EFH

Ruteo de Reloj Dedicado

Sistemas Digitales II / Electrónica Digital II 62

Ejemplo de Ruteo de

relojdedicado

-Applicacion

real

Aplicaciones con DCM–Correción de Skew

Sistemas Digitales II / Electrónica Digital II 63

Other Device

on the board

D

Aplicaciones con DCM–Correción de Skew

Sistemas Digitales II / Electrónica Digital II 64

Other Device

on the board

D

C) Retardando el reloj, parece un adelantamiento

B) Alineamiento ideal del reloj

A) Esquema de configuración de los DCMs

Configuración del FPGA – Master Mode

Sistemas Digitales II / Electrónica Digital II 65

Configuración del FPGA – Slave Mode

Sistemas Digitales II / Electrónica Digital II 66

Sistemas Digitales II / Electrónica Digital II 67

Vista interna de un FPGA (Spartan 3)

Xilinx Virtex-5 Applications

68Sistemas Digitales II / Electrónica Digital II

Xilinx XUP-V5 (UNSJ)

Sistemas Digitales II / Electrónica Digital II 69

Inner Tracking SystemSilicon Strip detectorSilicon Drift detectorSilicon Pixel Detector

Time Projection Chamber

Pixel Trigger crate

Optical splitters

Printed with permission - A. Kluge, G. Aglieri Rinella

ALICE Experiment

ALICE – Pixel Trigger Crate

Sistemas Digitales II / Electrónica Digital II 70