Centro Universitario de Ciencias Exactas e Ingenierías

Anuncio
Universidad de Guadalajara
Centro Universitario de Ciencias Exactas e Ingenierı́as
División de Electrónica y Computación
Departamento de Electrónica
GENERACIÓN DE MÓDULOS ARITMÉTICOS EN PUNTO FLOTANTE
PARA PROCESAMIENTO DIGITAL DE ALTAS PRESTACIONES
Para obtener el grado de
Maestro en Ciencias en Ingenierı́a Electrónica y
Computación
Presenta:
Gerardo Leyva Hernández
Directora de tesis: Dra. Susana Ortega Cisneros
Co-director de tesis: Dr. Juan José Raygoza Panduro
12 de febrero de 2010
Índice general
Índice de acrónimos
vii
1. Introducción
1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Organización de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
3
4
2. Conceptos básicos y revisión del estado del arte
2.1. Conceptos de representación numérica en punto flotante . . . . . . . . . . . .
2.1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2. Normalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3. Operaciones aritméticas básicas . . . . . . . . . . . . . . . . . . . . . .
2.1.4. Redondeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.5. Formato de representación . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.6. Estándar IEEE 754-1985 . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1. Historia de las FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2. Arquitectura de las FPGAs . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3. Evolución de las FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.4. Flujo de diseño con FPGAs . . . . . . . . . . . . . . . . . . . . . . . .
2.2.5. Aplicaciones de las FPGAs . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Implementación de punto flotante en
FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Implementación de unidades de punto flotante de acuerdo al estándar
IEEE 754 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2. Implementaciones en punto flotante en formato
similar al estándar IEEE 754 con longitud de palabra
reducida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.3. Implementaciones de punto flotante con longitud de palabra parametrizable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
5
6
7
7
9
11
12
12
14
18
18
19
19
20
22
23
25
3. Arquitectura y algoritmos de unidades de punto fijo y de punto flotante
en FPGA
26
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2. Algoritmo de sumadores de punto flotante . . . . . . . . . . . . . . . . . . . . 27
i
3.3. Algoritmo de multiplicadores de punto flotante . . . . .
3.4. Algoritmos de módulos lógicos y aritméticos de
punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1. Sumadores enteros . . . . . . . . . . . . . . . . .
3.4.2. Multiplicadores binarios . . . . . . . . . . . . . .
3.4.3. Circuitos de desplazamiento . . . . . . . . . . . .
3.4.4. Detector de uno por la izquierda . . . . . . . . .
3.5. Arquitecturas de unidades de punto
flotante . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.1. Arquitectura estándar de la suma . . . . . . . . .
3.5.2. Arquitectura de la suma con LOP . . . . . . . .
3.5.3. Arquitectura del multiplicador en punto flotante
3.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . .
4. Generación automática de módulos de punto fijo y
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . .
4.2. Arquitectura de la herramienta . . . . . . . . . . . .
4.3. Estructura . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1. Especificación hardware del algoritmo . . . .
4.3.2. Estimación de prestaciones . . . . . . . . . .
4.3.3. Generación automática del hardware . . . . .
4.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . .
de
. .
. .
. .
. .
. .
. .
. .
. . . . . . . . . . . . 27
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
28
29
30
30
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
32
32
32
33
punto flotante
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
34
34
35
36
36
37
39
39
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
41
42
42
42
43
44
44
44
44
47
49
49
52
53
55
5. Implementación de módulos de punto fijo y punto flotante
5.1. Segmentación . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Componentes lógicos y aritméticos de punto fijo . . . . . . . . .
5.2.1. Suma . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2. Suma/Resta . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3. Decremento . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.4. Incremento . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.5. Desplazamiento logarı́tmico a la deracha . . . . . . . . .
5.2.6. Multiplexores . . . . . . . . . . . . . . . . . . . . . . . .
5.2.7. Mult . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.8. Sı́ntesis de componentes lógicos y aritméticos en FPGAs
5.3. Unidades de punto flotante . . . . . . . . . . . . . . . . . . . .
5.3.1. Sumador de punto flotante . . . . . . . . . . . . . . . .
5.3.2. Multiplicador de punto flotante . . . . . . . . . . . . . .
5.3.3. Sintesis de unidades de punto flotante en FPGAs Virtex
5.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Virtex
. . . .
. . . .
. . . .
. . . .
. . . .
6. Algoritmos DSP con aritmética de punto fijo y punto flotante
6.1. Conceptos básicos de la transformada de Fourier . . . . . . . . . .
6.1.1. Arquitectura hardware de la FFT . . . . . . . . . . . . . .
6.2. Sı́ntesis de la transformada de Fourier con
aritmética de punto fijo . . . . . . . . . . . . . . . . . . . . . . . .
6.3. Filtros digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4. Conceptos básicos del filtro FIR . . . . . . . . . . . . . . . . . . . .
6.5. Diseño de filtros FIR . . . . . . . . . . . . . . . . . . . . . . . . . .
ii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
56
. . . . . . 56
. . . . . . 58
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
59
61
62
62
6.6. Filtros FIR con aritmética de punto fijo . . . . . . . . . . . . . . . . . . . . . 63
6.7. Filtros FIR con aritmética de punto flotante . . . . . . . . . . . . . . . . . . . 63
6.8. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7. Consideraciones finales
69
A. Plataforma de prototipado basada en FPGA
A.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2. Descripción de la placa . . . . . . . . . . . . . . . . . . . .
A.2.1. El microcontrolador . . . . . . . . . . . . . . . . .
A.2.2. Formato del archivo de configuración . . . . . . . .
A.2.3. Memoria de configuración serie para modo maestro
A.2.4. Monitorización . . . . . . . . . . . . . . . . . . . .
A.3. Programación de la FPGA . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
72
72
73
73
74
74
74
74
B. Manual de utilización de la herramienta AGAVE
76
B.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
B.2. Parámetros de los CORES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
C. Publicaciones
79
iii
Índice de figuras
2.1. Modos de redondeo del estándar IEEE 754. Se asume que tanto x como y son
positivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Estructura de un PLA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Estructura interna de una PAL . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Estructura interna de un CPLD . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5. Estructura interna de una FPGA . . . . . . . . . . . . . . . . . . . . . . . . .
2.6. Sección de la estructura interna de un CLB que muestra una LUT y un FF .
9
13
14
15
16
17
3.1. Arquitecturas de sumadores de punto flotante . . . . . . . . . . . . . . . . . . 31
3.2. Arquitectura de multiplicador de punto flotante . . . . . . . . . . . . . . . . . 33
4.1. Arquitectura de la herramienta AGAVE . . . . . . . . . . . . . . . . . . . . . 36
5.1. Comparación de ocupación de área para los multipplicadores basados en SLICES y en DSP48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Comparación de ciclo de reloj para multiplicadores basados en SLICES y en
DSP48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. Resultados de implementación de submódulos en perı́odo de reloj . . . . . . .
5.4. Resultados de implementación de submódulos en área . . . . . . . . . . . . .
5.5. Resultados de submódulos con diferentes niveles de segmentación . . . . . . .
5.6. Resultados de implememtación de sumador de punto flotante . . . . . . . . .
5.7. Resultados de implememtación de multiplicador de punto flotante . . . . . . .
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.
6.8.
6.9.
Transformada de Fourier 8 puntos, radix 2 . . . . . . . .
Procesador de una FFT radix-2, 16 puntos . . . . . . .
Procesador de cada etapa de la FFT . . . . . . . . . . .
Conmutador y memorias de doble puerto en la FFT . .
Área de implementaciones FFT radix-2 . . . . . . . . .
Perı́odo de reloj de implementaciones FFT radix-2 . . .
Perı́odo de reloj de FFT implementadas en Virtex-5 . .
Filtro FIR . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparativa para el CORE FIR de 4 etapas,con y sin
componentes y aritmética de punto flotante . . . . . . .
6.10. Comparativa para el CORE FIR de 8 etapas,con y sin
componentes y aritmética de punto flotante . . . . . . .
6.11. Comparativa para el CORE FIR de 16 etapas,con y sin
componentes y aritmética de punto flotante . . . . . . .
iv
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
segmentación
. . . . . . . .
segmentación
. . . . . . . .
segmentación
. . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
entre
. . . .
entre
. . . .
entre
. . . .
46
47
48
49
50
54
54
57
57
58
59
60
60
61
62
66
67
68
6.12. Comparativa para el CORE FIR de 8 y 16 etapas,con y sin segmentación
entre componentes y aritmética de punto flotante . . . . . . . . . . . . . . . . 68
A.1. Placa de prototipado de FPGAs Virtex . . . . . . . . . . . . . . . . . . . . . 73
A.2. Encadenamiento en Serie de las placas de prototipado . . . . . . . . . . . . . 75
v
Índice de tablas
2.1.
2.2.
2.3.
2.4.
2.5.
Desplazamientos en la suma de punto flotante . . . . . . . . . . . . . . . . . . 8
Reglas de redondeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Parámetros de los formatos especificados por el estándar IEEE 754-1985 . . . 11
Ancho de palabra de los formatos especificados por el estándar IEEE 754-1985 11
Codificación de varios datos en punto flotante en precisión simple . . . . . . . 12
5.1.
5.2.
5.3.
5.4.
5.5.
5.6.
5.7.
5.8.
5.9.
Resultados de sı́ntesis para el CORE suma . . . . . . . . . . . . . . . . . . . .
Resultados de sı́ntesis para el CORE suma-Resta . . . . . . . . . . . . . . . .
Resultados de sı́ntesis para el CORE decremento . . . . . . . . . . . . . . . .
Resultados de sı́ntesis para el CORE incremento . . . . . . . . . . . . . . . .
Resultados de sı́ntesis para el CORE desplazamiento a la derecha . . . . . . .
Resultados de sı́ntesis para el CORE multiplexor . . . . . . . . . . . . . . . .
Resultados de sı́ntesis para el CORE mult . . . . . . . . . . . . . . . . . . . .
Resultados de sı́ntesis para el CORE multArray . . . . . . . . . . . . . . . . .
Resultados de sı́ntesis para el CORE sumador de punto flotante, entrada y
salida registrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.10. Resultados de sı́ntesis para el CORE sumador de punto flotante, entrada y
salida registrada y además, salidas de CORES internos registradas . . . . . .
5.11. Resultados de sı́ntesis para el CORE multipplicador de punto flotante, entrada
y salida registrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.12. Resultados de sı́ntesis para el CORE multipplicador de punto flotante, entrada
y salida registrada y además, salidas de CORES internos registradas . . . . .
43
43
43
44
44
45
45
46
6.1. Resultados de sı́ntesis para el CORE FFT radix-2, aritmética de punto fijo. .
6.2. Resultados de sı́ntesis para el CORE FIR de cuatro etapas, aritmética de
punto fijo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3. Resultados de sı́ntesis para el CORE FIR de 4, 8 y 16 etapas,sin segmentación
entre componentes y aritmética de punto flotante. . . . . . . . . . . . . . . .
6.4. Resultados de sı́ntesis para el CORE FIR de 4, 8 y 16 etapas,con segmentación
entre componentes y aritmética de punto flotante. . . . . . . . . . . . . . . .
60
vi
50
51
52
53
64
64
65
Índice de acrónimos
ASIC Application Specific Integrated Circuit. 1
CAD Diseño asistido por computadora. 1
CPLD Complex Programmable Logic Devices. 13
CSA Carry-Save Adder. 30
DSP Procesamiento Digital de Señal. 1, 10, 16, 36
EEPROM Electrically-Erasable Programmable Read-Only Memory. 73, 74
FFT Fast Fourier Transform (Transformada rápida de Fourier). 19
FIR Respuesta finita al impulso. 61
FPD Field-Programmable Devices. 12
FPGA Field-Programmable Gate Array. 1–3, 5, 12, 19–26, 39, 53, 72–75
HPC High Performance Computing. 19
IIR Respuesta infinita al impulso. 61
JTAG Joint Test Action Group. 72
LED Light-Emitting Diode. 73, 74
LOP Leading-One Predictor. 27, 31, 32
LTI lineales invariantes en el tiempo. 61
LUT Look-Up Table. 14, 36
PAL Programmable Array Logic. 13
PDSP Procesador Digital de Señal Programable. 19
PLA Programmable Logic Array. 12, 13
vii
PROM Programmable Read-Only Memory. 12
RAM Random Access Memory. 36
ROM Read-Only Memory. 36
SOC System On Chip. 12, 19
VHDL Very High-speed Integrated Circuit Harware Description Language. 1, 3, 39
viii
Descargar