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