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