Diseño de consola de juegos de tenis de mesa FPGA
1 Composición del sistema
La composición de la máquina de juego de tenis de mesa se muestra en la Figura 1. Las reglas del juego estipulan: tres victorias en cinco juegos; un juego con 11 puntos; el árbitro envía una señal para comenzar el juego, activando el módulo generador de números aleatorios interno de la FPGA para generar el primer saque durante el juego; obtiene el derecho a servir dos veces seguidas, el derecho a servir se entrega al oponente, si el balón se sirve sin derecho a servir, sonará el circuito de audio de falta en el extremo del árbitro. fila para simular una mesa de tenis de mesa; el LED iluminado simula una pelota de tenis de mesa y está controlado por la FPGA para moverse de izquierda a derecha o de derecha a izquierda. Los competidores ingresan señales de golpe simuladas a través de botones para controlar la dirección del cambio del LED; Si el LED brillante se mueve entre el punto medio de la mesa y el punto final del oponente, el oponente no presiona el botón de golpe a tiempo para hacer que se mueva en la dirección opuesta, es decir, se pierde un punto.
2 Diseño del módulo funcional
En la Figura 1, el extremo de control diseñado en base a FPGA es el núcleo de todo el sistema, que consiste principalmente en un generador de números aleatorios simple, un derecho de servicio controlador, un tenis de mesa Se compone de módulos como el controlador de posición de la pelota, el controlador de puntuación del Partido A y el Partido B, y el controlador de sonido de falta. Todo el extremo de control adopta un diseño modular. Los módulos funcionales se escriben primero en lenguaje VHDL y luego se utiliza el diagrama esquemático de nivel superior para conectar los módulos funcionales. La dificultad del diseño radica en coordinar el trabajo de cada módulo y respetar estrictamente la relación de temporización entre cada señal. Este sistema utiliza un reloj de sistema de 1 kHz.
2.1 Generador de números aleatorios simple
El derecho a sacar la primera bola del juego está determinado por los datos generados por el generador de números aleatorios. Sus requisitos de aleatoriedad no son estrictos, por lo que. Se adopta un modo muy simple Generar, es decir, una vez que se enciende la FPGA, la frecuencia del reloj del sistema generará una señal de onda cuadrada. Cuando el árbitro cierra el interruptor de inicio para generar el flanco ascendente de la señal de inicio, el valor de la señal cuadrada. en este momento se lee como randq de salida del generador de números aleatorios. La simulación del módulo se muestra en la Figura 2 y los resultados cumplen con los requisitos de diseño. Este módulo está diseñado para garantizar que el período de la señal cuadrada sea mucho mayor que el tiempo de establecimiento del flanco ascendente de la señal de inicio para garantizar la lectura correcta de los datos aleatorios.
2.2 Controlador de servicio derecho
El proceso de control del controlador de servicio derecho es: si se presiona el botón de reinicio, el tubo digital de servicio derecho muestra 8; de lo contrario, cuando se inicia el cambio de juego; está cerrado, muestra el valor del generador de números aleatorios (0 o 1, 0 representa el Partido A, 1 representa el Partido B). En el juego, para cumplir con las reglas de intercambio de derechos de servicio, está diseñado que cuando la señal de suma sum_sc de los anotadores de ambos lados no sea 0 (es decir, cuando el flanco descendente del sum_sc0 más bajo del total llega el puntaje), la pantalla del tubo digital del derecho de saque cambia de 0 a 0. es 1 o cambia de 1 a 0.
En el diseño de este módulo, el control de la señal del tubo digital derecho de servicio está controlado por múltiples relojes, es decir, el inicio del interruptor y la señal sum_sc0 del valor de puntuación. Esto no se puede lograr con un solo proceso. en el lenguaje de programación VHDL, las dos señales deben combinarse en una señal de reloj y los flancos de activación de ambos relojes deben estar unificados. Por lo tanto, el mejor método de activación del reloj es la señal fqq_en como se muestra en la Figura 3. Para cumplir con este requisito de tiempo, la entidad sum_sc_mod2 se diseña con la ayuda de la segunda señal sum_sc1 más baja de la suma de puntaje. Dado que las frecuencias de inicio y sum_sc1 son mucho más bajas que la frecuencia clk de la señal del reloj del sistema, la frecuencia clk alta. La señal de frecuencia se puede utilizar para capturar su borde para generar una nueva señal de reloj fqq_en y generar su valor de conteo; la forma de onda de simulación se muestra en la Figura 4 (a). Para garantizar la visualización correcta del tubo digital del derecho de servicio, entitv led_fqq_ctl está diseñado para generar la señal de salida del tubo digital correspondiente led_fqq en función de su valor de conteo cuando ocurre el flanco descendente de fqq_en. La forma de onda de simulación se muestra en la Figura 4. (b).
El programa principal VHDL del controlador de saque derecho es el siguiente:
2.3 Control de posición en tenis de mesa, puntuación A y B, control de sonido de falta
Tenis de mesa control de posición El circuito es el núcleo del extremo de control de FPGA. De acuerdo con las reglas de la competencia, se implementa utilizando una máquina de estado tipo Mealy, lo que reduce en gran medida la dificultad de diseño. La máquina de estados define 7 estados. La definición de cada estado se muestra en la Tabla 1. La transición de estado se muestra en la Figura 5. Las condiciones de transición se muestran en la Tabla 2. Los procedimientos específicos son los siguientes.
3 Prueba de simulación de módulo de nivel superior
Debido a limitaciones de espacio, el diseño de módulos comunes como divisores de frecuencia y decodificadores en este sistema no se describirá en detalle. El diseño esquemático de nivel es Como se muestra en la Figura 6, la forma de onda de simulación se muestra en la Figura 7. El análisis de la forma de onda muestra que después de que se genera la señal de inicio del juego en la figura, la Parte B tiene derecho a servir por primera vez. El servicio del Partido A hace que suene el circuito de audio de falta, es decir, la señal del altavoz tiene un nivel alto, luego el Partido B sirve y la pelota de tenis de mesa cambia en secuencia. Después de que el Partido A atrapa la pelota con éxito, el Partido B no logra atraparla. La pelota anota con éxito y la señal cnta es "0110000". Tenga en cuenta que la salida aquí es la señal de salida del tubo digital del controlador, que representa el número "1". A través de la simulación, se puede ver que el diseño del sistema cumple con los requisitos de las reglas de competencia de consolas de juegos.
4 Conclusión
Utilizando la programación en lenguaje VHDL, se diseñó con éxito una consola de juegos de tenis de mesa basada en FPGA. A través de la verificación de la simulación, se puede ver que los resultados cumplen con los requisitos de diseño y. El sistema tiene control de derechos de servicio. Varias funciones, como puntuación automática y avisos de faltas, pueden simular de manera efectiva partidos de tenis de mesa reales.
La idea para mejorar aún más este sistema es utilizar sensores de inducción del cuerpo humano para recopilar señales de golpe y usar FPGA para generar señales de video y transmitirlas a televisores o monitores para mostrar de manera más intuitiva la trayectoria del movimiento del tenis de mesa, logrando así una verdadera realización humana. interacción con el ordenador y optimización de efectos virtuales.