Kazalo:
- 1. korak: Vmesnik krmilnika VGA
- Korak: Vključite krmilnik VGA z zaslonom VGA
- 3. korak: Oblikovanje vmesnega okvirja
- 4. korak: Opombe
- 5. korak: Priložene datoteke
Video: Zasnova enostavnega krmilnika VGA v VHDL in Verilogu: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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
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:
Izdelava enostavnega MP3 predvajalnika v stiku: 6 korakov (s slikami)
Izdelava enostavnega predvajalnika MP3 v Steampunku: V skupini Steampunk na FB se je pojavilo vprašanje, ali je težko zgraditi "nekaj Steampunka, ki deluje". In ni tako drago, ker veliko pripomočkov Steampunk uporablja drage materiale. OK, Lady's in gospodje se spustimo v to
Eksperimentalna študija enostavnega harmoničnega gibanja: 5 korakov
Eksperimentalna študija enostavnega harmoničnega gibanja: V razredu pogosto uporabljamo štoparico za izvedbo eksperimenta z nihalom ali preprostega harmoničnega gibanja. Tu je izziv, ali lahko izdelamo pravi graf njegovega gibanja in vidimo, kakšen je trenutni kotni položaj in hitrost,
Oblikovanje preprostega štirismernega sklopa krmilnika pridruženega predpomnilnika v VHDL: 4 koraki
Oblikovanje preprostega štirismernega nabora krmilnika pridruženega predpomnilnika v VHDL: V mojem prejšnjem navodilu smo videli, kako oblikovati preprost krmilnik predpomnilnika z neposrednim preslikavo. Tokrat gremo korak naprej. Oblikovali bomo preprost štirismerno nastavljen asociativni krmilnik predpomnilnika. Prednost? Manjša stopnja zamud, a za ceno perfo
Zasnova programabilnega krmilnika prekinitev v VHDL: 4 koraki
Oblikovanje programabilnega krmilnika prekinitev v VHDL: Presenečen sem nad vrstami odzivov, ki jih dobim v tem blogu. Hvala, fantje, ki ste obiskali moj blog in me spodbudili, da svoje znanje delim z vami. Tokrat bom predstavil zasnovo drugega zanimivega modula, ki ga vidimo v vseh SOC -jih - Interrupt C
Zasnova enostavnega krmilnika predpomnilnika v VHDL: 4 koraki
Oblikovanje enostavnega krmilnika predpomnilnika v VHDL: Pišem to navodilo, ker se mi je zdelo malo težko pridobiti referenčno kodo VHDL, da bi se naučili in začeli oblikovati krmilnik predpomnilnika. Zato sem sam iz nič oblikoval krmilnik predpomnilnika in ga uspešno preizkusil na FPGA. Imam p