Presentacion 2 de FPGAs

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 70

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.

Altera Inc. Actel Corp.


Lucent Technology Philips Semiconductors
FPGA Intel Corp. Motorola Semiconductors
2010 QuickLogic Cypress
Lattice Semiconductors AMD
Vantis Xilinx

Sistemas Digitales II / Electrónica Digital II 2


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).

Sistemas Digitales II / Electrónica Digital II 4


Flujo de Trabajo con FPGA
Back-end Tools (FPGA
specific tools)

Synthesis &
Specifications
Optimization

VHDL Code / Sch


Place & Route

Compilation
Timing Verification

Simulation &
Verification

Front-end Tools FPGA


(general purpose tools) Configuration

Sistemas Digitales II / Electrónica Digital II 5


Estructura General de un FPGA
Estructura y componentes de un FPGA de Xilinx

Sistemas Digitales II / Electrónica Digital II 6


Estructura General de un FPGA
Estructura y componentes de un FPGA de Altera

Sistemas Digitales II / Electrónica Digital II 7


Similaridad entre FPGAs

Sistemas Digitales II / Electrónica Digital II 8


Vista
interna de
un FPGA
(Spartan 3)

Sistemas Digitales II / Electrónica Digital II 9


Familia del Virtex II

Sistemas Digitales II / Electrónica Digital II 10


Celda de Configuración del FPGA

Elemento básico no-lógico


Determina la configuración de cada
elemento lógico
Determina la configuración de los
elementos de ruteo e interconexiones

Sistemas Digitales II / Electrónica Digital II 11


Celdas de Configuración del FPGA

Tipos de Celdas
SRAM
Anti-Fuse
Flash
Flash y SRAM

Sistemas Digitales II / Electrónica Digital II 12


Celda de Configuración Tipo SRAM

La configuración de los elementos lógicos y los


de ruteo e interconexión son almacenados en
celdas SRAMs
Ventajas:
Proceso de fabricación estándar
Costos muy bajos
Proceso súper-comprobado
Alto rendimiento
Infinitamente reprogramable
Programable en circuito (In System Programable)
Rápida y fácil actualización
Sistemas Digitales II / Electrónica Digital II 13
Celda de Configuración tipo SRAM
Desventajas:
Celda volátil
Simple glitch en Vcc desconfigura el FPGA
Retardos en ruteo largos debido al retardo de la
celda SRAM
Necesidad de una memoria de configuración externa

Tiempo de configuración lento ~500ms

Inseguridad debido a la conexión FPGA-Memoria


de configuración que puede ser ‘leída’

Sistemas Digitales II / Electrónica Digital II 14


Celda de Configuración Tipo Anti-Fuse

La configuración de los elementos lógicos y los


de ruteo e interconexión son almacenados en
celdas Anti-Fuse (ACTEL)

Sistemas Digitales II / Electrónica Digital II 15


Celda de Configuración Tipo Anti-Fuse

Ventajas:
No es volátil
Retardos de conexiones de ruteo son pequeños
No sensibles a bombardeo de partículas iónicas
Muy usados en sistemas espaciales

Sistemas Digitales II / Electrónica Digital II 16


Celda de Configuración Tipo Anti-Fuse

Desventajas:
Proceso de fabricación específico
Costos elevados

One-Time-Programmable (OTP)
Proceso de verificacion muy largo y riguroso
Proceso muy caro
No sensibles a bombardeo de partículas iónicas
Muy usados en sistemas espaciales

Sistemas Digitales II / Electrónica Digital II 17


Celda de Configuración Tipo Flash

La configuración de los elementos lógicos y los


de ruteo e interconexión son almacenados en
celdas Flash

Sistemas Digitales II / Electrónica Digital II 18


Celda de Configuración Tipo Flash-SRAM

Ventajas:
Prácticamente ‘no es volátil’
Tiempo de configuración es bastante bajo (~<1ms)
Se pueden configurar solo las celdas SRAM
Durante el proceso de debug o prototipo
No se necesita una memoria de configuración externa
Menos espacio en el PCB
Sistema no vulnerable – Sistema seguro

Sistemas Digitales II / Electrónica Digital II 19


Celda de Configuración Tipo Flash-SRAM

Desventajas:
FPGA es caro
Proceso se esta haciendo mas común últimamente

Sistemas Digitales II / Electrónica Digital II 20


Celda de Configuración Tipo Flash-SRAM

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 celdas


SRAM se configuran en forma casi
instantanea desde las celdas Flash.

Sistemas Digitales II / Electrónica Digital II 21


Celda de Configuración Tipo Flash

Ventajas:
No es volátil
Retardos de conexiones de ruteo son pequeños
Sensibilidad baja a bombardeo de partículas iónicas
Usados en sistemas espaciales

Sistemas Digitales II / Electrónica Digital II 22


Celda de Configuración Tipo Flash

Desventajas:
FPGA es bastante caro
Proceso se esta haciendo mas común últimamente

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

Sistemas Digitales II / Electrónica Digital II 23


Comparación Tipos de Celdas

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

Sistemas Digitales II / Electrónica Digital II 24


Transicion FPGA a ASIC

Producciones de grandes volumenes, +500.000/Y

HardCopy – Altera EasyPath - Xilinx

Arquitectura similar al FPGA pero no programable !

Bajo Costo

Baja Potencia(*)

(*) Igloo

Sistemas Digitales II / Electrónica Digital II 25


Arquitectura de los FPGAs

Arquitectura en general es similar para FPGAs de


diferentes fabricantes. Aunque cada fabricante diga
que su arquitectura es la mejor. .. .

Para diferenciarse cada fabricante ofrece …..

El mas beneficiado: El usuario final

Sistemas Digitales II / Electrónica Digital II 26


Arquitectura de los FPGAs

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

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

Medio rendimiento Alto rendimiento


Barato Caro
Sistemas Digitales II / Electrónica Digital II 27
Arquitectura de los FPGAs

Sistemas Digitales II / Electrónica Digital II 28


Bloque Lógico Configurable (CLB)

CLB

Sistemas Digitales II / Electrónica Digital II 29


Bloque Lógico Configurable (CLB)

Sistemas Digitales II / Electrónica Digital II 30


Bloque Lógico Configurable - SLICEL

Dos LUTs
Dos flip-flops
Cuatro salidas
Dos combinacionales
Dos registradas
Entradas de control para f-fs
Entradas para la LUTs
E/S para la cadena de acarreo

Sistemas Digitales II / Electrónica Digital II 31


Tabla de Búsqueda–Look-up Table (LUT)
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
Sistemas Digitales II / Electrónica Digital II 32
Tabla de Búsqueda–Look-up Table (LUT)

F5Mux

F6Mux
FiMux F7Mux

F8Mux

Sistemas Digitales II / Electrónica Digital II 33


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


Detalle de un
SLICEM

Sistemas Digitales II / Electrónica Digital II 37


Virtex II – Detalle de Mitad del Slice

Sistemas Digitales II / Electrónica Digital II 38


Vista de
un CLB
real

Sistemas Digitales II / Electrónica Digital II 39


Detalle del
Bloque E/S
(IOB)

Sistemas Digitales II / Electrónica Digital II 40


Bloque E/S real

Sistemas Digitales II / Electrónica Digital II 41


Estandares de E/S Soportados (Spartan 3)
Buffer Buffer
Estandard Descripción Uso
Entrada Salida
LVTTL Low-Voltage TTL Propósito general 3.3V LVTTL Push-pull
Propósito general 3.3V, 2.5V, 1.8V,
LVCMOS Low-Voltage CMOS CMOS Push-pull
1.5V

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
Bidireccional serie/paralelo (Hyper
LDT Lightning Data Transport Diferencial Diferencial
Transport)
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

Sistemas Digitales II / Electrónica Digital II 42


Bancos de E/S

Bancos E/S Virtex II

Sistemas Digitales II / Electrónica Digital II 43


Bloques de Memoria (BRAM)

Sistemas Digitales II / Electrónica Digital II 44


Opciones de Configuración de Memoria

Sistemas Digitales II / Electrónica Digital II 45


Bloques de Memoria (BRAM)
Diferentes configuraciones de relación
datos/direcciones que se pueden implementar en
los BRAMs
1 2 4

0 0 0

4Kx4

4.095
8Kx2

8.191 0
16Kx1
2Kx8

2047

16+2
0

16.383 1023

Sistemas Digitales II / Electrónica Digital II 46


Bloques de Memoria (BRAM)
Principales aplicaciones de los BRAM:

Almacenamiento de programas para procesadores


embebidos en el FPGA

Rd/Wr variables durante cálculos matemáticos, por ej.


Coeficientes para filtros FIR

Buffers circulares

Registros de desplazamiento o muy largos o muy anchos

Líneas de retardo

Sistemas Digitales II / Electrónica Digital II 47


Bloques de Memoria (BRAM)- Cont.
Principales aplicaciones de los BRAM:
Realización de MEF usando técnicas de
microprogramación

Contadores muy largos y rápidos

Memorias Direccionables por Contenido (CAM) de alto


rendimiento de Rd/Wr

Almacenamiento de formas de onda o tablas de


funciones trigonométricas para generar salidas tipo
Direct Digital Synthesis (DDS) (Síntesis Digital Directa)

Sistemas Digitales II / Electrónica Digital II 48


Bloques DSP

P=AxB

36 = 18 x 18

Pipelining (opcional)

Sistemas Digitales II / Electrónica Digital II 49


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

Transistor de Paso

Y0

PIP

Sistemas Digitales II / Electrónica Digital II 52


Interconexiones - Ruteo

Sistemas Digitales II / Electrónica Digital II 53


Interconexiones - Ruteo

Sistemas Digitales II / Electrónica Digital II 54


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
Bloque dedicado exclusivamente a funciones de control y
generación de señal de reloj para la lógica interna del FPGA

CLKIN CLK0

CLKFB
CLK2X

CLK2X180

DCM
CLKDIV

CLKFX

CLKFX180

Sistemas Digitales II / Electrónica Digital II 58


Generación de Reloj

Las principales funciones del DCM se pueden resumir en:

Eliminar el sesgo del reloj (clock skew), ya sea


dentro del FPGA o con componentes externos

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

Multiplicar o dividir la frecuencia de entrada del reloj,


generando una frecuencia completamente nueva

Sistemas Digitales II / Electrónica Digital II 59


Generación de Reloj

Las principales funciones del DCM se pueden resumir en:

Acondicionar la señal de entrada del reloj, asegurando


un reloj limpio, con un ciclo de trabajo del 50%

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

Sistemas Digitales II / Electrónica Digital II 60


Ruteo de Reloj Dedicado
H G F E

DCM DCM

8 4 8
H H
G G
F F
E 8 8 8 8 E
D D
C C
B B
A 8 8 A
4

DCM DCM
D C B A

Sistemas Digitales II / Electrónica Digital II 61


Ruteo de Reloj Dedicado

Ejemplo de
Ruteo de
reloj
dedicado
-
Applicacion
real

Sistemas Digitales II / Electrónica Digital II 62


Aplicaciones con DCM–Correción de Skew

Other Device
on the board

Sistemas Digitales II / Electrónica Digital II 63


Aplicaciones con DCM–Correción de Skew
D

Other Device
on the board

A) Esquema de configuración de los DCMs

B) Alineamiento ideal del reloj

C) Retardando el reloj, parece un adelantamiento

Sistemas Digitales II / Electrónica Digital II 64


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


Vista
interna de
un FPGA
(Spartan 3)

Sistemas Digitales II / Electrónica Digital II 67


Xilinx Virtex-5 Applications

Xilinx XUP-V5
(UNSJ)
Sistemas Digitales II / Electrónica Digital II 68
ALICE Experiment

Time Projection
Chamber
Optical splitters

Inner Tracking System


Silicon Strip detector
Silicon Drift detector
Silicon Pixel Detector

Pixel Trigger crate

Sistemas Digitales II / Electrónica


Digital II
Printed with permission - A. Kluge, G. Aglieri Rinella 69
ALICE – Pixel Trigger Crate

Sistemas Digitales II / Electrónica


Digital II 70

También podría gustarte