Está en la página 1de 49

Sistemas Digitales

Electrónica Digital II

El FPGA Spartan 3E de

Octubre - 2018

M. C. Felipe Santiago E.
TOP-5 FPGA Companies

2
Familias de las compañías
con mayor presencia

ALTERA

XILINX

3
Arquitectura General de un
FPGA de Xilinx
CLB – Bloque
Lógico Configurable
IOB – Bloque
de Entrada/Salida

Actualmente los CLB's se componen de varios slices y


algunos tienen funciones especiales
4
Generación Spartan-3

- Incluye las familias Spartan-3, Spartan-3E y Spartan-3A


(Spartan-3A, Spartan-3AN, Spartan-3A DSP).

- Esta generación de FPGAs está orientada a necesidades


de alto volumen y bajo costo.

5
Spartan-3E: Arquitectura

Está constituida por los siguientes elementos:

• CLBs (Configurable Logic Blocks).


• IOBs (Input/Output Blocks).
• Conjunto de conexiones programables.
• Bloques dedicados:
• Bloques RAM.
• Multiplicadores.
• Administradores de reloj digital (DCM).

6
Spartan-3E: Arquitectura

CLBs

7
Spartan-3E: CLB

Los CLBs (Configurable Logic Blocks) constituyen los


principales recursos lógicos para implementar funciones
combinacionales o secuenciales. 8
Un CLB contiene 4 slices

9
Recursos de un slice:

En un Slice se pueden implementar:


 Funciones lógicas.
 Funciones aritméticas.
 Funciones ROM.

Los Slices de la Izquiera (SLICEM) están acondicionados para dos


funciones adicionales:
 Almacenamiento de datos como RAM distribuida.
 Desplazamiento de datos con registros de 16-bits.
10
Diagrama simplificado de un Slice

LUTs
flip-flops

lógica de acarreo

11
Celda lógica de una FPGA (Spartan-3)
Los elementos básicos de la celda lógica son:
• LUT (Look-Up Table) de 4 entradas.
• Multiplexor.
• Flip-flop.

12
Funciones lógicas en el FPGA
Las LUT's son pequeñas memorias que se desempeñan
como Generadores de Funciones (FG: Function
Generators).
Función a implementar Tabla de verdad LUT programada

• El retardo es constante. 13
Multiplexores
Son elementos dedicados a proveer interconexión entre
slices y LUT's.

• MUXF5
Combina 2 LUTs para formar
cualquier función de 5 variables

• MUXF6
Combina 2 slices para formar
cualquier función de 6 variables

14
¿Cómo se implementa una
función de 5 variables?

X4 X3 X2 X1 X0 Y
0 0 0 0 0 0
0 0 0 0 1 1
0 0 0 1 0 1
0 0 0 1 1 1 LUT
… … … … …
0 1 1 1 0 0

MUX
0 1 1 1 1 1
1 0 0 0 0 1
1 0 0 0 1 1
1 0 0 1 0 0
1 0 0 1 1 0 LUT
… … … … …
1 1 1 1 0 0
1 1 1 1 1 1

15
Bloque de entrada / salida (IOB)

• Soportan un flujo bidireccional.

• Las salidas pueden configurarse como tri-state.

• Incluyen resistencias de pull-up y pull-down programables.

• Soportan varios estándares de señales (incluyendo señales

diferenciales).

• Incluyen registros tanto para las entradas como para las salidas.

• Se tiene un Control Digital de Impedancia (DCI) para acoplar con

las líneas que llegan a la FPGA.

16
IOB Spartan-3E
Hay 3 rutas principales :

• Tercer estado
• Salida
• Entrada

17
IOB (Spartan-3E)

18
Conexiones programables
Tipos de líneas de interconexión:

• Líneas de propósito general.


• Líneas largas.
• Líneas directas.
• Lineas doble.
• Lineas HEX.

Proporcionan distintas opciones


para la interconexión de CLB's
e IOB's de manera flexible y
eficiente

19
Distribución de matrices de
interruptores

20
Distribución de matrices de
interruptores

21
Conexiones programables
Líneas de propósito general

Las líneas horizontales y verticales se enlazan a través


de las matrices de interconexión (switch matrix)

22
Conexiones programables
Matriz de interconexión

Transistores de paso que unen dos segmentos de


alambre.

Configuración

• Cada punto de interconexión


está formado por 6 transistores
• Son interruptores programables
23
Conexiones programables
Líneas largas

• Son líneas que atraviesan el FPGA de arriba abajo y de


izquierda a derecha
• Permiten un fan-out grande
• Se utilizan para que una señal acceda a un punto distante, con
menos retardos que las líneas de propósito general
• Son un recurso escaso y son dedicadas para señales críticas
como el reloj o señales de inicialización globales.
24
Conexiones programables
Líneas directas

• Son líneas de conexión directa


entre bloques
• Se utilizan para implementar
redes entre los CLBs e IOBs
adyacentes, de manera
eficiente
• Introducen retardos mínimos

25
Conexiones programables
Líneas dobles

Líneas HEX

26
Bloques RAM (Spartan-3)

• Esta generación de FPGAs posee bloques de memoria


que permiten crear RAMs, ROMs, FIFOs, LUTS
grandes, buffers circulares y registros de
desplazamiento.
• Se encuentran cerca de los multiplicadores para
acelerar la implementación de operaciones multiply-
accumulate
• Cuando en vez de usar Block RAMs se utilizan las LUTs
se dice que se hace uso de memoria distribuida.

27
Spartan-3: Ubicación de los
Bloques RAM

28
Spartan-3E: Total de Bloques RAM

Tabla extraída de “Spartan-3 Generation FPGA User Guide”

La capacidad de cada bloque es de 18 432 bits.

29
Modos de acceso

Imagen extraída de “Spartan-3 Generation FPGA User Guide”

30
Modos de acceso

Primitivas

31
Configuración de cada bloque)

Tabla extraída de “Spartan-3 Generation FPGA User Guide”


32
Spartan-3E: Multiplicador

• Cuenta con 20 multiplicadores embebidos de 18 bits de


operando y 36 bits de salida.
• Se encuentran al lado de los bloques de memoria

33
Spartan-3E: Multiplicador

34
DCM (Digital Clock Manager)
Función

• Elimina el desfase que se genera en el reloj por retardos en el


ruteo (skew). Asegura que el flanco (ascendente o descendente)
llegue al mismo tiempo a todas las entradas de reloj de flip-flops
• Síntesis de frecuencias. A partir de la señal de reloj de entrada
puede generar relojes con diferentes frecuencias, multiplicando
por M y dividiendo por N (siendo M = 2 a 32 y N = 1 a 32)
• Corrimiento de fase. Puede implementar desfases controlados
de la señal de reloj

35
DCM (Digital Clock Manager)

36
DCM (Digital Clock Manager)
Diagrama funcional simplificado de la DLL

37
DCM (Digital Clock Manager)

38
DCM (Digital Clock Manager)

39
Spartan-3E: Recursos

La tabla muestra los diferentes recursos disponibles


en una fpga Spartan-3E

Cuadro extraído de “Spartan-3 Generation FPGA User Guide”

40
Spartan-3E: Pines de Entrada / Salida

Cuadro extraído de “Spartan-3 Generation FPGA User Guide”

Nota: Los valores entre paréntesis indican la cantidad de pines de sólo lectura

41
Flujo de diseño
Diseño del circuito a Transformación de la
Codificación Simulación del descripción a
implementar en la
en HDL código HDL elementos primitivos
FPGA

Diseño Codificación Simulación Síntesis

Mapeo, ruteo Generación Configuración


Simulación
y ubicación del bitstream del FPGA

Asignación de cada Generación del Se configura la


Simulación luego
primitiva a un lugar físico y archivo de FPGA o una
del PAR
utilización de los recursos configuración (.bit) memoria auxiliar
de interconexión para
conectar los componentes
entre sí
42
Herramientas a emplear
Active-HDL:
Captura y simulación.

43
Herramientas a emplear
ISE Design Suite: Síntesis, implementación y generación del bitstream.

44
Herramientas a emplear
ADEPT: Descarga en el FPGA.

45
Tarjeta de desarrollo Nexys 2

• FPGA XC3S500E (Spartan-3E).


• Memoria Micron M45W8MW16,
PSDRAM de 16 MByte.
• Memoria Flash de Intel de 16 MByte.
• Oscilador de 50 MHz.
• 75 terminales de E/S directas del
FPGA: Conector Hirose FX2 con 43
señales y 4 conectores Pmod de 8
señales).
• Periféricos para evaluación: 8 LEDs, 4
displays de 7 segmentos, 4 botones, 8
interruptores deslizantes.
• Puertos: PS/2, VGA y RS232 para
aplicaciones. USB para programación y
alimentación.
46
Tarjeta de desarrollo Nexys 2

47
Tarjeta de desarrollo Nexys 2

48
Tendencias

• Arquitecturas mixtas, orientadas a aplicaciones de

características diversas (lógica, procesadores soft/hard,

DSP)

• Enlaces seriales de alta velocidad (28 Gb/s)

• LUTs con mayor cantidad de entradas (6)

• Reconfiguración dinámica (on the fly)

• Dispositivos muy potentes que soportan entradas analógicas

• Aumento en la escala de integración

49

También podría gustarte