Pobierz

Transkrypt

Pobierz
Prowadzący:
dr inż. Paweł Tomaszewicz
Studenci:
Tomasz Biały,
Grzegorz Chmielewski,
Michał Stasiuk,
Projekt z UCYF
Specyfikacja II
(realizacja projektu w CAD)
Temat: Sprzętowa realizacja gry Arkanoid
1. Informacje ogólne, stan gry na II etap projektu:
Gra składa się z następujących modułów:
1. Nadrzędny moduł kontrolera VGA
2. Moduł kontrolera paletki
3. Moduł kontrolera ruchu piłeczki
4. Pamięci ROM dla paletki i piłeczki
5. Pomocniczy moduł dzielnika zegara.
6. Pakiet stałych i komponentów
2. Moduł kontrolera VGA:
v ga
reset
hsy nc
clk_f
v sy nc
ster[1..0]
rgb[2..0]
inst
Wejścia
Wyjścia
Reset – reset modułu
Hsync – impuls synchronizacji poziomej
Clk_f – zegar systemowy
Vsync – impuls synchronizacji pionowej
Ster[1..0] - sterowanie
Rgb[2..0] - sygnały kolorów przekazyane do
VGA
Moduł kontrolera VGA wyświetla na ekranie monitora plansze z obramowaniem, piłeczkę, paletkę,
punkty, nr planszy oraz liczbę życ.
W projekcie wybrano rozdzielczość obrazu 640x480. Częstotliwośc odświerzania: 60 Hz.
1/6
Jednostka taktowana jest zegarem oscylatora kwarcowego równym 25.175 MHz.
Do napisania tego modułu wykorzystaliśmy sterownik VGA opisany w [1] na str. 163 oraz
korzystaliśmy ze strony internetowej [6].
Illustration 1: Symulacja sterownika VGA
3. Moduł obsługi paletki
modul_paletki
clock_pal
ster_pom[1..0]
reset
rusz
ster[1..0]
restart
ruszaj
przesuniecie[31..0]
inst2
Wejścia
Wyjścia
Clock_pal – zegar paletki (zdzielnikowany
zegar systemowy)
ster_pom[1..0] – pomocniczy sygnał sterowania
Reset – reset modułu
Rusz – sygnał pozwalający piłce poruszac się
leżąc na paletce (sytuacja na początku gry lub po
restarcie)
Ster[1..0] – sygnały sterujące
Ruszaj – sygnał zwalniający piłkę z paletki
Restart – sygnał restartu
Przesunięcie – współrzędna położenia
(pozioma) lewego krańca paletki
2/6
Illustration 2: Symulacja działania modułu paletki
4. Moduł obsługi piłeczki
modul_pileczki
clock_pil
restart
reset
wart_poz[31..0]
rusz
wart_pion[31..0]
ruszaj
f laga
ster_pom[1..0]
kierunek_pion
przesuniecie[31..0]
kierunek_poz
inst1
Wejścia
Wyjścia
Clock_pil – zegar piłeczki (zdzielnikowany
zegar systemowy)
Restart – sygnał restartu
Reset – reset modułu
wart_poz[31..0] – współrzędna pozioma piłki
Rusz - sygnał pozwalający piłce poruszac się
wart_pion[31..0] – współrzędna pionowa piłki
leżąc na paletce (sytuacja na początku gry lub po
restarcie)
Ruszaj - sygnał zwalniający piłkę z paletki
Flaga – sygnał mówiący o tym czy dany klocek
został zbity, czy nie; w dalszej wersji
wykorzystany zostanie RAM do
przechowywania informacji o stanie całej
planszy.
3/6
ster_pom[1..0] – sygnał pomocniczy sterowania kierunek_pion – zwrot wektora poruszania się
piłki w pionie (0 – dół, 1 - góra)
Przesunięcie – współrzędna położenia
(pozioma) lewego krańca paletki
kierunek_poz – zwrot wektora poruszania się
piłki w poziomie (1 – lewo, 0 - prawo)
Illustration 3: Symulacja modułu piłeczki
Illustration 4: Symulacja modułu piłeczki c.d
5. Moduł dzielnika zegara
Param e te r V alue
Type
g
2
Signed Integer
h
3
Signed Integer
dzielnik
clock
wy nik
setup
inst3
4/6
Wejścia
Wyjścia
Clock – zegar systemowy
Wynik – zegar po zdzielnikowaniu
Setup – sygnał startowy
Dzielnik zegara wykorzystywany jest do zmniejszenia zegara systemowego odpowiednio do
potrzeb taktowania poruszania się piłki (50 000 razy mniejszy = 503,5 Hz) lub paletki (30 000 razy
mniejszy = 839,2 Hz).
.
6. Moduł ROM piłki
rom_pilka
wy sokosc[3..0]
data[0..29]
inst4
Wejścia
Wyjścia
Wysokość - wysokość piłki
Data – opis każdego piksela w linii (każdy
piksel opisują 3 bity)
Pamięć ROM piłki służy do nadania piłce okrągłych kształtów. Przechowuje ona sekwencje bitów
odpowiadające konkretnym kolorom w rejestrze kolorów.
7. Moduł ROM paletki
rom_paletka
wy sokosc[4..0]
data[0..299]
inst5
Wejścia
Wyjścia
Wyokość – wysokość paletki
Data - opis każdego piksela w linii (każdy
piksel opisują 3 bity)
Pamięć ROM paletki służy do „wymodelowania” kształtów paletki. Przechowuje ona sekwencje
bitów odpowiadające konkretnym kolorom w rejestrze kolorów.
5/6
8. Podsumowanie
W obecnej wersji projektu udało nam się uruchomić wszystkie opisane moduły, a więc moduł
kontrolera VGA, moduł obsługi paletki, piłeczki, wykorzystując przy tym pomocnicze moduły
dzielnika zegara oraz pamięci ROM dla paletki i piłeczki. W obecnej wersji projekt wygląda
następująco: wyświetlana jest plansza gry wraz z paletką (z możliwością poruszania nią), po
ekranie, po zwolnieniu z paletki, porusza się piłeczka, która ma możliwość zbicia jednego klocka.
9. Bibliografia
[1] „Projektowanie układów cyfrowych z wykorzystaniem języka VHDL” Zwoliński Mark
[2] „Układy FPGA w przykładach” Sterownik monitora VGA s.163 Majewski, Zbysiński
[3] „Synteza układów cyfrowych” Łuba Tadeusz
[4] „VHDL język opisu i projektowania układów cyfrowych” Włodzimierz Wrona
[5] „Rapid Prototyping of Digital Systems” James O. Hamblen, Michael D. Furman
[6] http://www.tinyvga.com/vga-timing/640x480@60Hz
6/6