Este documento describe un proyecto para diseñar un juego digital usando VHDL que simula naves esquivando obstáculos en displays de 7 segmentos. El proyecto fue desarrollado por 4 estudiantes y usa un kit Basys2. El juego mostrará la posición del jugador en un display y los obstáculos en otros displays. El diseño contiene entidades para controlar los displays, detectar colisiones, cambiar la velocidad y niveles del juego.
Técnicas de grabado y estampación : procesos y materiales
Juego naves reporte proyecto final(VHDL)
1. SEP
INSTITUTO
DGEST
TECNOLÓGICO
SNEST
DE
MATAMOROS
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Proyecto: “juego naves”
Diseño Digital con VHDL
Equipo:
Alumno(s):
Núm. de control:
Mario Arturo Cruz Colunga
11260077
Miguel Angel Fierros Peña
11260081
Hermenegildo Martínez de la Cruz
Jorge Alejandro Reyes Torres
H. MATAMOROS, TAM.
11260095
11260108
2. Objetivo:
Realizar un juego con los display de 7 segmentos simulando naves que deben esquivar obstáculo
que llegan a él en forma aleatoria.
Introducción:
Realizar un juego empleando los 4 display que proporciona el basys2 en el que se mostrar una
sucesión de líneas las cuales deben ser esquivadas por el jugador, representando la posición del
jugador en el display de lado contrario de donde empiezan las secuencias de líneas.
Material:
Kit basys2
Computadora
3. Desarrollo:
Creación de archivo bde usado como top.
VCCCCCCCC
V V V
clk
U3
clkpo
m c lk
rst
bus42(1)
bus42(2)
bus42(4)
bus42(5)
re s e t
c lk o ut
posicion jugador
U2 p c e n
c lk p o
I
I
dispdat
U1
bus42(6)
O
bus42(3)
O
p d ow n
up
p up
I
bus42(0)
U8
an0
d 1 (6:0 )
an1
d 2 (6:0 )
O
s e v enS eg m e nt(6:0 )
rs t
down
c lk
an2
d 3 (6:0 )
d2
d3
an3
p o s (0:6 ) e nd part
sevenSegment(6:0)
an0
an1
an2
an3
d p o s(6 :0 )
p up
p ce n
p d ow n
checkpo
start
re s e t
U7
re s e t
s tart
finle v e l
d 1 (0:6 )
c lk j
U10
d 2 (0:6 )
s tate lev e l
m c lk
d 3 (0:6 )
e nd j
U11 contlevel
d 0 (0:6 )
s av ar(0 :1 )
m c lk
c lk o ut
e ntvar(0:1 )
s o lv ar
re s e t
re s e t
juego
p o c lk
v e l(4:0 )
s e nd v ar
clkj
U9
c lk p o
v e l(0:4 )
s tart
s tatele v
selv
re s e t
En el bde top se realizan alguna conexiones como lo son inversores y conexiones para colocar en un
‘1’ a las salidas de display de posición del juagor ya que no se ocupan.
4. Descripción de las funciones de cada entidad.
U12
m c lk
c lk o ut
re s e t
clkpo
Es un divisor de reloj encargado de proporcionar un reloj para detectar los pulsos generados por los
pushbutton del basys2 y solo detectar un cambio. Debido al uso de 2 entradas para controlar 3
posiciones.
U12
c lk p o
p ce n
down
p d ow n
up
p up
posicion jugador
Se encarga de enviar la señal de encendido de uno de los segmentos del display, se enciende el
segmento de acuerdo a la posición que se seleccione con los pushbutton
an3
an2
an1
an0
U12
U2
clk
rst
c lk
U1
c lk O ut
c lk
s e v enS eg m e nt(6:0 )
an1
rs t
an0
an2
d 1 (6:0 )
an1
d 2 (6:0 )
an2
d 3 (6:0 )
an3
an2
GND
an0
an3
s e v enO ut(6:0 )
sevenSegment(6:0)
an3
controlador de anodos
d1(6:0)
d2(6:0)
d3(6:0)
dpos(6:0)
c lk
an0
e ntrad a an1
rs t
clkdiv
U9
s e v enO ne (6:0 )
s e v e nT e n(6 :0 )
s e v enO ne2 (6:0 )
d p o s(6 :0 )
s e v enT e n2 (6:0 )
sevenSelect
dispdat
Esta entidad esta forma por otras entidades para ahorrar espacio en el bde top.
Se encarga de enviar los datos en sus entradas a su correspondiente salida en uno de los 4.
5. U12
p o s (0:6 ) e nd part
p up
p ce n
p d ow n
re s e t
checkpo
Proporciona la decisión de cuando se pierde la partida, comparando la posición del juagor con el
estado en que se encontraba la línea en el display de obstáculos.
U12
re s e t
d 3 (0:6 )
e nd j
d 2 (0:6 )
s tate lev e l
d 1 (0:6 )
c lk j
d 0 (0:6 )
e ntvar(0:1 )
s o lv ar
juego
Esta entidad es la más importante pues que envía los datos a mostrar en los display de obstáculos,
la cual contiene una memoria con las diferentes posiciones en que puede llegar a estar el obstáculo,
la entidad decide que dato enviar de acuerdo a una variable de entrada. Y de si se encuentra inicia la
partida mediante la entrada statelevel.
U12
m c lk
finle v e l
s tart
s av ar(0 :1 )
re s e t
p o c lk
s e nd v ar
contlevel
Registra el inicio y fin de una partida enviando un 1 por finlevel si acabo un nivel o cero si se
encuentra jugando.
Al recibir una señal a través de sendvar envía un numero por savar la cual ocupa entidad juego para
selecciona un dato.
6. U12
m c lk
c lk o ut
re s e t
v e l(4:0 )
clkj
Es un divisor de reloj controlado por una variable, proporciona el sincronismo a entidad juego para
que cambie la velocidad de desplazamiento de un display a otro la línea de obstáculo.
U13
c lk p o
v e l(0:4 )
s tart
s tatele v
re s e t
selv
Envía la variable que controla la velocidad de salida de la entidad clkj, esta variable cambia a cada
transición de statelev.