Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Diseño de algoritmos aritmeticos sobre una FPGA

No description
by

Ricardo Moya

on 15 September 2011

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Diseño de algoritmos aritmeticos sobre una FPGA

Diseño de algoritmos aritméticos
sobre una FPGA Objetivos del Proyecto

Xilinx vs Altera

Metodología de Trabajo

Algoritmo de Booth

Algoritmo de División

Programación de la FPGA

Conclusiones Autor: Ricardo Moya García
Tutora: Virginia Peinado Bolós Objetivos del Proyecto Xilinx vs Altera Metodología de Trabajo Algoritmo de Booth Algoritmo de División Programación de la FPGA Conclusiones # •Desarrollar un proyecto bajo una metodología de diseño profesional # Aprender a diseñar circuitos digitales mediante las nuevas tecnologías de diseño # Mostrar la metodología de diseño, documentación, modelado, simulación y testeo de sistemas digitales en VHDL # Desarrollar un proyecto con una herramienta de diseño profesional # FPGA Spartan III con 100k puertas lógicas equivalentes # Memoria PRom. Almacenar conficguraciones # Puerto USB para configurar la FPGA # 8 leds # 8 interruptores # 4 pulsadores # 4 display de 7 segmentos # Puerto VGA de 8 bits # 4 conectores Pmods TOP-DOWN 1.- Estudio del Algoritmo 2.-Diseño esqemático 3.- Implementación en VHDL 4.- Simulación 5.- Síntesis 1.- Estudio del Algoritmo 2.-Diseño esqemático 3.- Implementación en VHDL 4.- Simulación 5.- Síntesis # Ruta de Datos: Encargada de mantener y transformar el estado del sistema (Sumas, comparaciones, desplazamientos, etc.) # Controlador: Encargado de gobernar las transformaciones de la ruta de datos Ejemplo 5x2 RESULTADO = P = 0000 1010 = 10 A = 0101 0000
S = 1011 0000
P = 0000 0010 & Bit Extra = 0
Cuenta = 4 = nº bits del multiplicador 1ª Iteracción: Comprobamos P(0) & Bit extra = 0 0
=> P = P + 0 = 0000 0010 & Bit extra = 0
Desplazamos a la derecha P & Bit Extra
=> P = 0000 0001 & Bit Extra = 0
Cuenta = Cuenta - 1 = 4 - 1 = 3 2ª Iteracción: Comprobamos P(0) & Bit extra = 1 0
=> P = P + S = 1011 0001 & Bit extra = 0
Desplazamos a la derecha P & Bit Extra
=> P = 1101 1000 & Bit Extra = 1
Cuenta = Cuenta - 1 = 3 - 1 = 2 3ª Iteracción: Comprobamos P(0) & Bit extra = 0 1
=> P = P + A = 0010 1000 & Bit extra = 1
Desplazamos a la derecha P & Bit Extra
=> P = 0001 0100 & Bit Extra = 0
Cuenta = Cuenta - 1 = 2 - 1 = 1 4ª Iteracción: Comprobamos P(0) & Bit extra = 0 0
=> P = P + 0 = 0001 0100 & Bit extra = 0
Desplazamos a la derecha P & Bit Extra
=> P = 0000 1010 & Bit Extra = 0
Cuenta = Cuenta - 1 = 1 - 1 = 0 => FIN Ejemplo 5/2 RESULTADO = Q = Cociente = 0010 = 2
A = Resto = 0001 = 1 A = 0000
Q = 0101
M = 0010
Cuenta = 4 = nº bits de los operandos 1ª Iteracción: Desplazamos a la izquierda A&Q
=> A = 0000 & Q = 1010
¿A < M ? SI
=> Q = Q + 0 = 1010
Cuenta = Cuenta - 1 = 4 - 1 = 3 4ª Iteracción: Desplazamos a la izquierda A&Q
=> A = 0001 & Q = 0010
¿A < M ? SI
=> Q = Q + 0 = 0010
Cuenta = Cuenta - 1 = 1 - 1 = 0 => FIN 2ª Iteracción: Desplazamos a la izquierda A&Q
=> A = 0001 & Q = 0100
¿A < M ? SI
=> Q = Q + 0 = 0100
Cuenta = Cuenta - 1 = 3 - 1 = 2 3ª Iteracción: Desplazamos a la izquierda A&Q
=> A = 0010 & Q = 1000
¿A < M ? NO
=> Q = Q + 1 = 1001 & A = A -M = 0000
Cuenta = Cuenta - 1 = 2 - 1 = 1 1.- Crear el archivo ".ucf"

2.- Crear el fichero ".bit"

3.- Programar la FPGA

4.- Probar la FPGA Una vez finalizado el proyecto fin de carrera, es necesario pararse a reflexionar si verdaderamente se han alcanzado los objetivos de partida. 1.- Se han seguido una serie de pautas o pasos para realizar el diseño de los circuitos y posteriormente implementarlos en la FPGA 2.- Se han buscado dos algoritmos para realizar las operaciones aritméticas de la multiplicación y la división. Una vez determinados los algoritmos a seguir, realizamos un estudio detallado de éstos, viendo sus características y su funcionamiento 3.- Se ha realizado una descripción del diseño de los circuitos. Para ello seguimos una metodología de diseño profesional, como es la metodología “TOP-DOWN”. 4.- El tercer paso que se dio, fue el de programar en VHDL los circuitos en diferentes módulos. Para programar estos módulos se utilizaron los diferentes niveles de programación que están definidos en VHDL (comportamiento, flujo de datos y estructural) y estos módulos se apoyaron en una serie de funciones y estructuras de datos que se definieron en una serie de paquetes. 5.- El cuarto paso que se dio fue el de simular los circuitos programados y ver que los resultados que nos daba el simulador eran los correctos. Después de realizar la simulación realizamos la síntesis de los circuitos para comprobar que estructuralmente coincidían los diseños que realizamos antes de programar los circuitos. 6.- El quinto paso fue el de programar la FPGA con el fichero “.bit” que nos genero la herramienta. 7.- Por último probamos físicamente la FPGA que se encontraba en una placa de desarrollo que nos permitía modificar físicamente las entradas de los circuitos y comprobar sus salidas. 8.- En este aspecto, hay que concluir con que los pasos a dar en el proyecto que se definieron en un principio se siguieron sin ningún contratiempo reseñable y se llego al objetivo final que era el de implementar en la FPGA los circuitos de multiplicación y división binaria. 9.- Por otro lado, en este proyecto se marco como objetivo el de utilizar una herramienta de diseño profesional (CAD), como es la herramienta Xilinx ISE y familiarizarse con ella. FIN
Full transcript