49
Sistemas Digitales Electrónica Digital II El FPGA Spartan 3E de M. C. Felipe Santiago E. Octubre - 2018

Sistemas Digitales Electrónica Digital IIfsantiag/Sist_Dig/04_Spartan3E_Xilinx.pdf · Spartan-3E: Multiplicador • Cuenta con 20 multiplicadores embebidos de 18 bits de operando

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Sistemas DigitalesElectrónica Digital II

El FPGA Spartan 3E de

M. C. Felipe Santiago E.

Octubre - 2018

TOP-5 FPGA Companies

2

ALTERA

XILINX

3

Familias de las compañíascon mayor presencia

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

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

Generación Spartan-3

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

8

Los CLBs (Configurable Logic Blocks) constituyen los principales recursos lógicos para implementar funciones combinacionales o secuenciales.

Un CLB contiene 4 slices

9

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

Recursos de un slice:

Diagrama simplificado de un Slice

flip-flopsLUTs

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 FPGALas LUT's son pequeñas memorias que se desempeñan como Generadores de Funciones (FG: Function Generators).

13

Función a implementar Tabla de verdad LUT programada

• El retardo es constante.

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

… … … … …

0 1 1 1 0 0

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

… … … … …

1 1 1 1 0 0

1 1 1 1 1 1

LUT

LUT

MU

X

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-3EHay 3 rutas principales :

• Tercer estado• Salida• Entrada

17

IOB (Spartan-3E)

18

Conexiones programables

• Líneas de propósito general.

• Líneas largas.

• Líneas directas.

• Lineas doble.

• Lineas HEX.

Tipos de líneas de interconexión:

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

21

Distribución de matrices de interruptores

Las líneas horizontales y verticales se enlazan a través de las matrices de interconexión (switch matrix)

Líneas de propósito general

22

Conexiones programables

Transistores de paso que unen dos segmentos de alambre.

Matriz de interconexión

Configuración

• Cada punto de interconexión está formado por 6 transistores• Son interruptores programables

23

Conexiones programables

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

Líneas largas

24

Conexiones programables

• Son líneas de conexión directa entre bloques

• Se utilizan para implementar redes entre los CLBs e IOBs a d y a c e n t e s , d e m a n e r a eficiente

• Introducen retardos mínimos

Líneas directas

25

Conexiones programables

26

Líneas dobles

Conexiones programables

Líneas HEX

Bloques RAM (Spartan-3)

• Esta generación de FPGAs posee bloques de memoria que permiten crear RAMs , ROMs , FIFOs , LUTS g r a n d e s , b u f f e r s c i r c u l a r e s y r e g i s t r o s d e desplazamiento.

• Se encuentran cerca de los multipl icadores 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”

29

La capacidad de cada bloque es de 18 432 bits.

Modos de acceso

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

30

Primitivas

31

Modos de acceso

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)

• 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

Función

35

DCM (Digital Clock Manager)

36

DCM (Digital Clock Manager)

37

Diagrama funcional simplificado de la DLL

DCM (Digital Clock Manager)

38

DCM (Digital Clock Manager)

39

Spartan-3E: Recursos

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

La tabla muestra los diferentes recursos disponibles en una fpga Spartan-3E

40

Spartan-3E: Pines de Entrada / Salida

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

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

41

Flujo de diseño

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

Mapeo, ruteoy ubicación Simulación Generación

del bitstreamConfiguración

del FPGA

Diseño del circuito a implementar en la

FPGA

Codificaciónen HDL

Simulación delcódigo HDL

Transformación de la descripción a

elementos primitivos

Asignación de cada primitiva a un lugar físico y utilización de los recursos

de interconexión para conectar los componentes

entre sí

Simulación luego del PAR

Se configura la FPGA o una

memoria auxiliar

Generación del archivo de

configuración (.bit)

42

Herramientas a emplear

43

Active-HDL: Captura y simulación.

Herramientas a emplear

44

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

Herramientas a emplear

45

ADEPT: Descarga en el FPGA.

• 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

Tarjeta de desarrollo Nexys 2

48

Tendencias

• Arquitecturas mixtas, or ientadas a apl icaciones 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