§
Preprosta grafična kartica

Lastnosti dokumenta

Naslov
Preprosta grafična kartica
Del
-
Datum vsebine
28. 01. 2008
Original
Preprosta grafična kartica
Vrsta
seminarska naloga
Jezik
slovenščina
Različica
1.0
Ustanova
Fakulteta za računalništvo in informatiko, Univerza v Ljubljani
Študij
Računalništvo in informatika, Logika in sistemi, 5. letnik
Predmet
Programirni logični sistemi
Mentor
doc. dr. Patricio Bulić
Avtor
Tine Lesjak, Borut Lesjak, Janez Cergolj
Ocena
10 od 1-10

Priloge

izvorna_koda.zip
Izvorna koda vezja v VHDL-ju.

Uvod

Seminarska naloga je namenjena boljšemu spoznavanju strojne opreme, predvsem njenemu obnašanju in programiranju. Za nalogo smo si zadali izdelati zelo preprosto grafično kartico, ki zna na zaslon narisati daljico med dvema točkama.

Lastnosti

Pri snovanju in preizkušanju vezja smo uporabljali Xilinx ISE razvojno okolje in Xilinx ploščo s FPGA čipom Spartan-3E.

Zgradba

Shema 1: Zelo poenostavljena shema vezja z osnovnimi funkcionalnostmi.

"VGA Controller" prikazuje poseben krmilnik, ki skrbi za komunikacijo z monitorjem po VESA standardu. Omogočena je samo osnovna (VGA) resolucija 640 x 480 pri osveževanju 60 Hz.

"UART Controller" skrbi za serijsko asinhrono komunikacijo po RS232 standardu z zunanjo napravo (računalnikom). Terminalski program za komunikacijo na računalniku je treba nastaviti na hitrost 115.200 bitov na sekundo.

V izvorni kodi sicer lahko generic baudrate v modulu gc_top.vhd nastavite tako, da bo znal UART krmilnik komunicirati tudi z drugimi hitrostmi:

baudrate Hitrost
"00" 115.200 b/s
"01" 19.200 b/s
"10" 9.600 b/s
"11" 4.800 b/s

"PS/2 Controller" skrbi za komunikacijo s tipkovnico.

V izvorni kodi z genericom ps2_use v modulu gc_top.vhd nastavite, kateri vmesnik boste uporabljali za vnos podatkov (hkrati lahko uporabite samo en vmesnik):

ps2_use Vmesnik v uporabi
'0' RS232
'1' PS/2

Modul "Graphics Processing Unit" skrbi za risanje daljice. Modul je sestavljen iz dekoderja podatkov in iz grafične krmilne enote.

Grafična krmilna enota

Pri risanju daljice uporabljamo Bresenhamov postopek, s katerim se lahko izognemo operaciji množenja (z izjemo množenja z 2).

Diagram 1: Diagram poteka algoritma Bresenhamovega postopka.

Diagram 2: Diagram stanj Bresenhamovega postopka v vezju.

Navodila za uporabo

  1. Povežite računalnik in Xilinx razvojno ploščo s "serijskim" kablom ali priključite tipkovnico na PS/2 priključek na plošči, odvisno od tega, kateri vmesnik ste nastavili v izvorni kodi.
  2. Priključite monitor na VGA priključek na plošči.
  3. Priključite električno napajanje na ploščo in vklopite vezje s stikalom.
  4. Z uporabo programskega razvojnega okolja Xilinx ISE prevedite izvorno kodo in jo "naložite" na FPGA čip.
  5. Z uporabo štirih stikal na plošči določite, katere podatke boste vnesli:
    • Vklopite samo prvo stikalo (gledano iz leve proti desni), ostala izklopite. Sedaj prek terminala za serijsko komunikacijo vnesite en znak, če ste ploščo povezali s "serijskim" kablom ali pritisnite tipko na tipkovnici, če ste na ploščo priključili tipkovnico.
      Opomba: Koda vnesenega znaka neposredno pomeni podatek.
      LED diode (nad stikali) svetijo trenutni podatek v dvojiški obliki - najbolj leva dioda je najbolj pomemben bit.
      S to kombinacijo stikal vnesete barvo. Barva je "velika" samo 3 bite. Prvi bit je rdeča, drugi zelena in tretji modra barva (RGB).
    • Vklopite samo tretje stikalo, ostala izklopite. Sedaj vnašate X koordinato prve točke. Koordinata je "velika" 7 bitov. Točka (0, 0) se nahaja v levem zgornjem kotu.
    • Vklopite tretje in četrto stikalo, ostala izklopite. Sedaj vnašate Y koordinato prve točke.
    • Vklopite samo drugo stikalo, ostala izklopite. Sedaj vnašate X koordinato druge točke.
    • Vklopite drugo in četrto stikalo, ostala izklopite. Sedaj vnašate Y koordinato druge točke.
  6. Pritisnite severni gumb (V4 push-button), da sprožite risanje. Na zaslonu boste zagledali daljico od prve do druge točke z ustrezno barvo, debeline 1 točka, na črnem ozadju.

Dodatno:

Tehnične lastnosti

Programski jezik: VHDL
Programsko razvojno okolje: Xilinx ISE WebPACK 9.2i
Strojno razvojno okolje: Xilinx Spartan-3E Starter Kit
FPGA čip: Xilinx Spartan-3E (XC3S500E-4FG320C)
Vhod: RS232, PS/2
Izhod: VGA, 640 x 480 @ 60 Hz
Velikost risalne ploskve: 128 x 128 točk