Dashboard > Projekti > Projekti > Šolski projekti > Preprosta grafična kartica

View Attachments (5) Info

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-u.

Kazalo

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.

  • Za daljico sta lahko podani katerikoli dve točki (v 2 dimenzionalnem koordinatnem sistemu).
  • Točki se lahko vneseta neposredno prek tipkovnice, priključene na PS/2 priključek, ali prek serijskih vrat (RS232).
  • Za daljico se vnese tudi barva - ima lahko 8 osnovnih barv.
  • Zaslon se na vezje priključi prek standardnega VGA priključka.

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:

  • Vklopite samo četrto stikalo, ostala izklopite. Sedaj vnašate način risanja (cmd_i). Način risanja je "velik" samo 1 bit. Če je način risanja nastavljen na 0 (privzeto), potem se ob vsakem proženju risanja risalna plošča najprej pobriše. Če nastavite način risanja na 1, se ob vsakem proženju risanja na obstoječo risalno ploščo dodatno nariše daljica.
  • Če je kombinacija stikal kakorkoli drugače nastavljena, kot v zgornjih omenjenih primeri, LED diode prikazujejo 8 bitno kodo znaka, ki je bil vnesen.
  • Pritisnite južni gumb (K17 push-button), če želite resetirati vezje. Pri tem bodo vsi podatki izgubljeni (nastavljeni na 0).

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


Browse Space
- Pages
- Labels
- Attachments
- News
- Activity
- Advanced

Explore Confluence
- Popular Labels
- Notation Guide

Your Account
Log In

 

Other Features

View a printable version of the current page.

Add Content


Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.4.4 Build:#707 Apr 01, 2007)
Bug/feature request - Contact Administrators

TineL Studio wiki [Prva stran]