Kazalo:

Zasnova enostavnega krmilnika VGA v VHDL in Verilogu: 5 korakov
Zasnova enostavnega krmilnika VGA v VHDL in Verilogu: 5 korakov

Video: Zasnova enostavnega krmilnika VGA v VHDL in Verilogu: 5 korakov

Video: Zasnova enostavnega krmilnika VGA v VHDL in Verilogu: 5 korakov
Video: #2 DAN | ZASNOVA ENOSTAVNEGA OBJEKTA 2024, Junij
Anonim
Zasnova enostavnega krmilnika VGA v VHDL in Verilogu
Zasnova enostavnega krmilnika VGA v VHDL in Verilogu

V tem navodilu bomo zasnovali preprost krmilnik VGA v RTL. VGA krmilnik je digitalno vezje, zasnovano za pogon zaslonov VGA. Bere iz pomnilnika okvirja (pomnilnik VGA), ki predstavlja okvir za prikaz, in ustvarja potrebne podatke in signale za sinhronizacijo za namen prikaza.

Če iščete Verilog/System verilog kodo: Obiščite moj blog VGA Controller and Video System v Verilogu

1. korak: Vmesnik krmilnika VGA

V nadaljevanju so glavni signali vmesnika v krmilniku VGA

  • Ura Pixel ali VGA
  • Signala HSYNC in VSYNC

Za izbrani zaslon VGA morate najprej izračunati frekvenco ure Pixel Clock, ki jo potrebujete za pogon. Odvisno je od treh parametrov: Skupnih vodoravnih slikovnih pik, Skupnih navpičnih slikovnih pik, Hitrosti osveževanja zaslona.

Običajno je F = THP * TVP * Hitrost osveževanja

V priloženem dokumentu RAR poiščite dokumentacijo o uri slikovnih pik, ki je potrebna za različne zaslone VGA.

Signali HSYNC in VSYNC se ustvarjajo iz ure Pixel. Čas signalov HSYNC in VSYNC je odvisen od števila parametrov: vodoravna in navpična prednja luč, vodoravna in navpična osvetlitev, vodoravna in navpična slikovna pika, širina in polarnost vodoravne in navpične sinhronizacije.

Ti parametri so standardizirani za izbrani zaslon VGA. Te dokumente poiščite v priloženem dokumentu RAR.

Ti parametri so nastavljivi parametri v našem IP krmilniku VGA.

Korak: Vključite krmilnik VGA z zaslonom VGA

Vgrajen krmilnik VGA z zaslonom VGA
Vgrajen krmilnik VGA z zaslonom VGA

Slika prikazuje, kako integrirati krmilnik VGA z zaslonom VGA. Za dokončanje sistema potrebujete še dve komponenti:

  • Frame Buffer: Pomnilnik, ki vsebuje okvir za prikaz.
  • Video DAC: DAC, ki pretvori digitalne podatke RGB in poganja zaslon VGA z analognimi signali RGB na ustrezni napetostni ravni.

Eden najpreprostejših in najbolj priljubljenih video DAC -jev je ADV7125. To je 8-bitni DAC, ki pretvori digitalne besede RGB v analogne signale 0-0,7 V in poganja zaslon VGA.

3. korak: Oblikovanje vmesnega okvirja

Pomnilnik "shrani" sliko za prikaz. Običajno je RAM ali včasih ROM. Pogovarjali se bomo o tem, kako oblikovati medpomnilnik okvirja za predstavitev slike. Okvirni vmesnik posreduje te digitalne podatke video DAC -u na ukaz krmilnika VGA.

Najprej se moramo odločiti za potrebno globino slikovnih pik. Odloča o kakovosti slike, raznolikosti barv, ki jih lahko predstavlja piksel. Za 8-bitni DAC moramo primarne barvne komponente piksla: R, G in B predstaviti v 8 bitih. To pomeni, da je slikovna pika 24-bitna.

Vsak slikovni pik je shranjen na zaporeden način v pomnilniških mestih Frame Buffer.

Recimo, da je slika 800x600 slikovnih pik.

Zato je potreben Frame Buffer 800x600 = 480000 x 24 bitov pomnilnika

Skupna velikost pomnilnika je 800x600x24 = 1400 kB pribl.

Če je črno -bela slika, 800x600x1 = 60 kB pribl.

Blokirani RAM -i se lahko uporabljajo za predstavitev okvirnega vmesnika v Xilinx FPGA.

4. korak: Opombe

  • Na krmilniku VGA so potrebni dodatni signali, odvisno od izbranega DAC -ja. Uporabil sem ADV7125.
  • Preden zaženete zaslon VGA, dodajte zamude cikla skozi japonke na VSYNC in HSYNC. To je zaradi zamud DAC in pomnilnika. Signale slikovnih pik je treba sinhronizirati s HSYNC in VSYNC. V mojem primeru je prišlo do zamude 2 ciklov.
  • Če okvirnega vmesnika dane velikosti ni mogoče oblikovati na FPGA zaradi omejitve velikosti blokovnega pomnilnika, uporabite manjši pomnilnik za predstavitev slike in preprosto uredite kodo, da se premaknete po naslovu na meji razpoložljivega pomnilnika, ne pa čez mejo celotnega okvira. To bo ponavljalo isto sliko na celotnem zaslonu. Druga metoda je skaliranje slikovnih pik, pri kateri se vsaka slikovna pika podvoji, da prikaže celotno sliko na celozaslonskem zaslonu v manjši ločljivosti. To lahko storite s spreminjanjem logike povečevanja naslova v kodi.
  • IP je popolnoma prenosljiv na vseh FPGA-jih in časovno preverjen do 100 MHz na Virtex-4 FPGA.

5. korak: Priložene datoteke

RAR vsebuje:

  • Koda krmilnika VGA
  • PDF -ji standardov VGA.

Priporočena: