Microblaze Vhdl Synthetized Processor Project
Ingeneria Electrónica 13088 - Sistemas Digitales Avanzados
PROYECTO
juego PONG
7.6.2010 Pavel Vávra
Objetivo El objetivo del proyecto se basa en implementacion de juego PONG mediante el teclado ps2, la pantalla y mostrando el escore en el display de la placa.
W S I K ESC ESPACIO
movimiento ascendente porteria izquierda movimientodescendente porteria izquierda movimiento ascendente porteria derecha movimiento descendente porteria derecha salida del juego y reset play / pause
Pasos para conseguir el funcionamiento 1) Diseňar el HW del sistema diseňar todos IP necesarios con EDK crear una plataforma de MicroBlaze con perifericos necesarios implementar nuestros IP creados 2) Implementar nuestro sistema a FPGA asignar los pinesusados en *.ucf 3) Diseňar el SW del control del nuestro sistema diseňar el flujo del programa principal diseňar todas funciones necesarias depurar el sistema
El esquema de bloques de nuestro HW completo
IP cores necesarios, que debemos que crear son PS2 Control (ps2_kboard_buttons) y VGA Control (vga_pong_system) El diseňo de ps2_kboard_buttons El bloque ps2_kboard_buttons simula 6 butonesHW. Cada uno de los botones esta asignado a una tecla del teclado PS2. Los bloques necesarios para implementar esta funcionalidad son: sig_filter.vhd - filtra la salida de reloj de teclado
clk reset sig_in sig_filter sig_out
ps2_kbd.vhd
clk reset ps2_clk ps2_data
- ofrece las seňales scan_code y scan_code_rdy
8 PS2_KBD scan_code_ready
scan_code
pos_edge_detect.vhd
clk input
-detectod de flanco de subida
pos_edge_detect
output
button_pressed.vhdl
- bloque que mapea un seňal HW a estado de una tecla del teclado PS2
clk 8 BUTTON boton seleccionado
1 scan_code_ready break_detector
scan_code
El bloque completo de ps2_kboard_buttons Contiene el bloque kboard_ctrl.vhd y lo conecta mientras el bus PLB con MicroBlaze. kboard_ctrl.vhd - el bloque completo -mapea en total 6 seňales HW a 6 teclas de teclado PS2
res P1_up P1_down P2_up P2_down New_game Run_rause
Clk_50MHz PS2_KBOARD_BUTTONS ps2_clk ps2_data
El diseňo de vga_pong_system El bloque vga_pong_system contiene un controlador de VGA en resolución 640x480 y 60Hz, los tres objectos para mostrar (bola, portería1, portería2) y el multiplexador de los
colores para la pantalla VGA. Losbloques necesarios para implementar esta funcionalidad son: vga_controller_640_60.vhd - este bloque genera las seňales de syncronización vertical y horizontal, las coordenadas del punto actual que se esta mostrando en la pantalla y el seňal blank, cual indica, que el punto, que se esta mostrando actualmente está fuera de resolución 640x480
25 MHz CONTROLADOR VGA 60Hz Res. 640x480 hcount vcountHS VS blank
reset
rgb_mux.vhd
- seleccion cual objecto va a mostra en la pantalla
ball_RGB bar1_RGB R bar2_RGB BLACK_RGB G B
boll_on bar1_on bar2_on blank
ball.vhd
- su posicion próxima calcula la bola misma, proporciona de su seňal da activo, rgb y dos seňales, cuales indican, que un de los jugadores ha obtenido un punto
rst Clk_50MHz run x_count y_count bar1_y_t bar2_y_t RGBball_on P1_SCORED P2_SCORED
BOLL
bar.vhd
- bloque más simple, que ball, la posicion de la portería viene por seňales de input bar1_y_t y bar2_y_t y así este bloque solo genera los seňales de activo bar_on y rgb
rst Clk_50MHz x_count y_count bar1_y_t RGB bar_on BAR
El bloque completo de vga_pong_system Contiene el bloque vga_pong.vhd y lo conecta mientras el bus PLB con MicroBlaze.vga_pong.vhd
res run b1_y_t b2_y_t p1_scored p2_scored VGA_PONG_SYSTEM 3 vs hs rgb clk_50MHz
Crear una plataforma de MicroBlaze con perifericos necesarios Corespondiendo a esquema de bloques principal creamos un HW con perifericos necesarios y aňadimos nuestros IP cores creados (ps2_kboard_buttons, vga_pong_system) Los cambios necesarios en ficheros propios son: system.mhs - definicion de los...
Regístrate para leer el documento completo.