Tabla de contenido:

CPE 133 Proyecto final de decimal a binario: 5 pasos
CPE 133 Proyecto final de decimal a binario: 5 pasos

Video: CPE 133 Proyecto final de decimal a binario: 5 pasos

Video: CPE 133 Proyecto final de decimal a binario: 5 pasos
Video: Troubleshooting de red WiFi de Altai 2024, Noviembre
Anonim
CPE 133 Proyecto final de decimal a binario
CPE 133 Proyecto final de decimal a binario

Los números binarios son una de las primeras cosas que me vienen a la mente cuando se piensa en lógica digital. Sin embargo, los números binarios pueden ser un concepto difícil para los nuevos.

Este proyecto ayudará a aquellos que son nuevos y experimentados con números binarios a dominar la conversión de números decimales. Mediante la creación de un juego, probaremos a los usuarios en su habilidad de conversión. Este juego se ejecutará en un tablero Basys3 y se programará en Verilog.

Paso 1: Materiales necesarios

Materiales necesitados
Materiales necesitados

Se necesitan los siguientes materiales para hacer este juego de conversión de decimal a binario:

  • Software Xilinx Vivado Design Suite
  • Placa FPGA Digilent Basys3
  • Cable USB a Micro USB

Paso 2: Configuración del LFSR (registro de desplazamiento de retroalimentación lineal)

Configuración del LFSR (registro de desplazamiento de retroalimentación lineal)
Configuración del LFSR (registro de desplazamiento de retroalimentación lineal)
Configuración del LFSR (registro de desplazamiento de retroalimentación lineal)
Configuración del LFSR (registro de desplazamiento de retroalimentación lineal)

Un LFSR (Registro de desplazamiento de retroalimentación lineal) es un módulo que se utiliza para generar números "aleatorios".

Un LFSR no es completamente aleatorio, ya que genera números pseudoaleatorios, que es un proceso de generación de números que parecen aleatorios pero no lo son.

Un LFSR es un registro de desplazamiento cuyo bit de entrada es una función lineal de su estado anterior, lo que significa que el LFSR recorrerá un conjunto finito de números. Específicamente para este juego, el LFSR solo usará 8 bits para limitar el número decimal que puede generar a 255.

El botón L (btnL) se usa para restablecer el número en el LFSR.

Este módulo LFSR no fue creado por los creadores de este juego. El módulo LFSR fue creado por el profesor de la Universidad de Carleton, John Knight. El enlace de su módulo se incluye a continuación.

www.doe.carleton.ca/~jknight/97.478/97.478_…

Paso 3: Configuración de la pantalla de siete segmentos

Configuración de la pantalla de siete segmentos
Configuración de la pantalla de siete segmentos

Se utiliza una pantalla de siete segmentos en el tablero Basys3 y en muchas otras piezas de hardware para mostrar caracteres alfanuméricos.

El módulo de visualización de siete segmentos que se utiliza en este juego convierte un número binario en un número decimal y lo muestra como un número decimal.

Al utilizar el módulo LFSR discutido anteriormente, se emitirá un número generado aleatoriamente en la pantalla de siete segmentos.

El módulo de visualización de siete segmentos no fue creado por los creadores de este juego. El módulo de visualización de siete segmentos fue proporcionado por el profesor de la Universidad Politécnica Estatal de California, Joseph Callenes-Sloan. El pdf del módulo se adjunta a continuación.

Paso 4: creación del módulo de juego

Creando el Módulo de Juego
Creando el Módulo de Juego
Creando el Módulo de Juego
Creando el Módulo de Juego
Creando el Módulo de Juego
Creando el Módulo de Juego
Creando el Módulo de Juego
Creando el Módulo de Juego

Crear módulo de juego (principal).

Este módulo utilizará el módulo LFSR para generar un número aleatorio y luego enviarlo a la pantalla de siete segmentos.

Luego, el módulo usa un bloque siempre que restablece el número aleatorio. Esto opera en el borde positivo del Botón R (btnR), lo que significa que solo funcionará cuando se haya presionado el Botón R.

El segundo bloque siempre opera en el flanco positivo del reloj (clk). Si se presiona el botón C (btnC), se verificará si el número en la pantalla de siete segmentos es el mismo que el número de entrada de los interruptores (sw). Este bloque levantará una bandera (establecerá el registro de banderas (bandera) en 1) y cambiará el cable messageVal según si el usuario ha ganado o perdido.

El tercer bloque siempre también opera en el flanco positivo del reloj. Si se levanta la bandera, establecerá ssegInputVal en el cable messageVal en la pantalla de siete segmentos. Si la bandera no se levanta, continuará emitiendo el número aleatorio (randomVal).

Paso 5: ¡Jugar el juego

¡Jugando el juego!
¡Jugando el juego!
¡Jugando el juego!
¡Jugando el juego!
¡Jugando el juego!
¡Jugando el juego!

Instrucciones:

  • El usuario presionará el botón R para crear un nuevo juego o cambiará el número en la pantalla de siete segmentos.
  • El usuario moverá los primeros 8 interruptores hacia arriba (1) o hacia abajo (0) para ingresar el número binario que representa.
  • El botón C se utilizará para comprobar si el usuario ganó o perdió.
  • Si el usuario ganó '111' se mostrará en la pantalla de siete segmentos.
  • Si el usuario perdió, se mostrará "0" en la pantalla de siete segmentos.
  • Para iniciar un nuevo juego, se puede presionar el botón R en cualquier momento.

Recomendado: