UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA UNIVERSITARIA DE INFORMÁTICA TRABAJO FIN DE CARRERA DISEÑO DE ALGORITMOS ARITMÉTICOS SOBRE UNA FPGA Autor: Ricardo Moya García Tutora: Virginia Peinado Bolós Fecha: Junio del 2011 Índice Universidad Politécnica de Madrid Escuela Universitaria de Informática Trabajo fin de carrera Diseño de algoritmos aritméticos sobre una FPGA Índice 1.- Introducción y objetivos del proyecto ......................................................................... 1 2.- Dispositivos lógicos programables ...................................................................................... 5 2.1.- Estado del arte de los dispositivos lógicos programables ...................................... 7 2.2.- Pasado de los dispositivos lógicos programables ................................................... 8 2.3.- Circuitos “Semi Custom”......................................................................................... 9 2.4.- Circuitos a medida “Full Custom” ........................................................................11 2.5.- Presente de los dispositivos lógicos programables .............................................11 2.5.1.- SPLD .......................................................................................................12 2.5.2.- ASPLD ....................................................................................................17 2.5.3.- CPLD .......................................................................................................17 2.5.4.- FPGA .......................................................................................................19 2.6.- Futuro de los dispositivos lógicos programables ................................................21 3.- Herramientas necesarias para la realización del trabajo ..............................................23 3.1.- ¿Qué es Xilinx? ......................................................................................................25 3.2.- ¿Qué es Altera?.......................................................................................................25 3.3.- Xilinx vs Altera ......................................................................................................26 3.4.- FPGAs de Xilinx ...................................................................................................27 3.4.1.- Spartan III ................................................................................................28 3.5.- Placas de Desarrollo ..............................................................................................30 3.6.- Lenguaje VHDL ....................................................................................................34 3.7.- La herramienta Xilinx ISE ....................................................................................28 4.- Metodología ..........................................................................................................................43 4.1.- Introducción ............................................................................................................45 4.2.- Flujo de Trabajo .....................................................................................................48 4.3.- Preparación del Xilinx ISE ....................................................................................52 i Universidad Politécnica de Madrid Escuela Universitaria de Informática Trabajo fin de carrera Diseño de algoritmos aritméticos sobre una FPGA 5.- Diseño y síntesis de algoritmos ..........................................................................................53 5.1.- Introducción ............................................................................................................55 5.2.- Algoritmo de Booth................................................................................................56 5.2.1.- Estudio del Algoritmo ............................................................................57 5.2.2.- Diseño esquemático ................................................................................66 5.2.3.- Implementación en código VHDL .........................................................71 5.2.4.- Simulación ...............................................................................................98 5.2.5.- Síntesis .................................................................................................. 113 5.3.- Algoritmo de División ........................................................................................ 122 5.3.1.- Estudio del Algoritmo ......................................................................... 123 5.3.2.- Diseño esquemático ............................................................................. 131 5.3.3.- Implementación en código VHDL ...................................................... 137 5.3.4.- Simulación ............................................................................................ 152 5.3.5.- Síntesis .................................................................................................. 162 6.- Programación de la FPGA .............................................................................................. 171 7.- Conclusiones ...................................................................................................................... 189 8.- Bibliografía ........................................................................................................................ 193 8.1.- Libros ................................................................................................................... 195 8.2.- Webs ..................................................................................................................... 196 Índice de figuras y tablas ..................................................................................................... 199 Glosario de términos ............................................................................................................. 207 Anexo 1.- Instalación del Xilinx ISE para Windows ....................................................... 213 Anexo 2.- Algoritmo de Booth programado en Java ....................................................... 225 Anexo 3.- Algoritmo de División programado en Java ................................................... 235 ii Universidad Politécnica de Madrid Escuela Universitaria de Informática Trabajo fin de carrera Diseño de algoritmos aritméticos sobre una FPGA Anexo 4.- Código en VHDL del Multiplicador Binario ................................................... 243 Anexo 5.- Código en VHDL del Divisor Binario .............................................................. 259 iii Capítulo 1 Introducción y objetivos del proyecto
Description: