Logo Studenta
¡Este material tiene más páginas!

Vista previa del material en texto

Divisor implementado FPGA 
En esta práctica se implementó un divisor de punto flotante en la FPGA Nexys 2 que se muestra en la Ilustración 1, utilizando 8 slide swithches se introducen los datos en 4 secciones de 8 bits y para almacenar los 32 bits del divisor se utilizaron los 4 push botons que se encuentran al lado de los slide switches como se muestra en la Ilustración 2. 
 
Ilustración 1. FPGA Nexys 2 armado con el puerto JD para botonera extra. 
 
 
Ilustración 2. Slide switches y push botons de la FPGA Nexys 2. 
Para introducir los 32 bits del dividendo se utilizó una botonera extra instalado en el puerto JD, la conexión para los distintos puertos se muestran en la Ilustración 3. Utiliazando los botones del 1 al 4 de cargan los datos para el dividendo, con el botón 5 es el botón de inicio para comenzar a realizar la división. El resultado se muestra en dos partes con el botón 6 en 0 (cero) se muestra la parte baja del resultado y en 1 (uno) se muestra la parte alta, el botón 7 se utilizó como auxiliar en la comprobación de los datos introducidos seleccionando desde el código si se deseaba mostrar el divisor o el dividendo, cuando el botón 7 estaba en uno se mostraba el dato introducido igualmente con ayuda del botón 6 para mostrar la parte baja y alta del mismo. 
 
Ilustración 3. Designacion interna de los conectores de FPGA Nexys 2 para utilizar como botonera. 
La botonera se muestra en la Ilustración 4. 
 
Ilustración 4. Botonera extra para introducir datos del dividendo, inicio y corrimiento para resultado del divisor de punto flotante implementado en FPGA Nexys 2. 
 
 	 
1 Código en VHDL para implementar Division de punto flotante con formato IEEE corto en FPGA Nexys 2 
1.1 Programa principal. 
 
 
 
 
Secci
on de Código 
1
. 
Divisor punto flotante implementado en FPGA. Declaración de librerías y puertos.
 
 
 
 
 
 
 
 
 
 
 
 
Seccion de Código 
2
. 
Divisor punto flotante implementado en FPGA. Declaración de se
ñales.
 
 
 
 	 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Seccion de Código 
3
 
Divisor punto flotante implementado en FPGA. Maquina de estados para divisor de punto flotante 1 de 3.
 
 
 	 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Seccion de Código 
4
. 
Divisor punto flotante implementado en FPGA. Maquina de e
stados 
para divisor de punto flotante 2
 
de 3.
 
 
 	 
14 
 
5 
 
10
 
 
 
 
 
 
 
Seccion de Código 
5
. 
Divisor punto flotante implementado en FPGA. Maquina de estados 
para divisor de punto flotante 3
 
de 3.
 
 
 
 
 
 
 
 
 
 
Seccion de Código 
6
.
 
Divisor punto flotante imp
lementado en FPGA.
 
Proceso de retardo de 40 ms para evitar rebote en el botón de inicio.
 
11
 
 
 
 
 
 
 
Seccion de Código 
7
. 
Divisor punto flotante implementado en FPGA.
 
Proceso para cargar datos del divisor y dividendo.
 
Seccion de Código 9. Divisor punto flotante implementado en FPGA. Proceso multiplexado para mostrar datos en los displays. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Seccion de Código 
8
.
 
Divisor punto flotante implementado en FPGA.
 
Proceso para el corrimiento de la parte alta y baja del resultado y 
d
el divisor.
 
14 
 
 	hexadecimal. 
 
 
 
 
 
 
 
Seccion de Código 
10
.
 
Divisor punto flotante implementado en FPGA
.
 
Decodificador para mostrar valores del 0
-
15
 en 
 
 	 
1.2 Archivo de restricciones 
 
 
 
 
 
Seccion de Código 
11
. Archivo de restricciones del d
ivisor punto flotante implementado en FPGA
.
 
2 Conclusiones 
Durante el transcurso de la implementación del divisor de punto flotante con formato IEEE corto hubo varios inconvenientes, ya que cuando se simulaba la implementación si funcionada sin ningún problema, la solución para esta practica fue hacer la maquina de estados completamente dependiente del reloj para que no haga omiciones de ninguna condición el programa de Xilins. Ya que eliminaba los datos donde se llevaban a cabo diferentes asignaciones a lo largo del programa. 
14 
 
14 
 
12 
 
image6.png
image7.png
image8.png
image9.png
image10.jpg
image11.jpeg
image12.png
image13.png
image14.png
image15.png
image16.png
image17.png
image18.png
image19.png
image20.png
image21.png
image22.png
image23.png
image24.png
image25.png
image26.png
image27.png
image28.png
image29.png
image30.png
image31.png
image1.png
image2.png
image3.png
image4.png
image5.png