Sistemas DigitalesElectrónica Digital II
El FPGA Spartan 3E de
M. C. Felipe Santiago E.
Octubre - 2018
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: CLB
8
Los CLBs (Configurable Logic Blocks) constituyen los principales recursos lógicos para implementar funciones combinacionales o secuenciales.
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:
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
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
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
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-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.
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
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
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
• 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
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
Top Related