Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-23 14:47
U ovom uputstvu ćemo dizajnirati jednostavan VGA kontroler u RTL -u. VGA kontroler je digitalni sklop dizajniran za pogon VGA zaslona. Čita iz Frame Buffer -a (VGA memorija) koji predstavlja okvir za prikaz i generira potrebne podatke i signale za sinkronizaciju u svrhu prikaza.
Ako tražite Verilog/Verilog kod sustava: Posjetite moj blog VGA kontroler i video sustav u Verilogu
Korak 1: Sučelje VGA kontrolera
Slijede glavni signali sučelja u VGA kontroleru
- Pixel sat ili VGA sat
- HSYNC i VSYNC signali
Za odabrani VGA zaslon morate najprije izračunati frekvenciju sata piksela potrebnu za rad. Ovisi o 3 parametra: ukupni vodoravni pikseli, ukupni okomiti pikseli, brzina osvježavanja zaslona.
Obično je F = THP * TVP * Brzina osvježavanja
U priloženom RAR -u pronađite dokumentaciju o pikselnom satu potrebnom za različite VGA zaslone.
HSYNC i VSYNC signali generiraju se iz sata sata Pixel. Vrijeme HSYNC i VSYNC signala ovisi o brojnim parametrima: vodoravni i okomiti prednji otvor, vodoravni i okomiti pozadinski prikaz, vodoravni i okomiti pikseli prikaza, širine i polarite vodoravne i okomite sinkronizacije.
Ovi parametri su standardizirani za odabrani VGA zaslon. Ove dokumente pronađite u priloženom RAR -u.
Ovi parametri su parametri koji se mogu konfigurirati u našem IP -u VGA kontrolera.
Korak 2: Integriranje VGA kontrolera s VGA zaslonom
Slika prikazuje kako integrirati VGA kontroler s VGA zaslonom. Za dovršetak sustava potrebne su vam još dvije komponente:
- Frame Buffer: Memorija koja drži okvir za prikaz.
- Video DAC: DAC koji pretvara RGB digitalne podatke i pokreće VGA zaslon s RGB analognim signalima na odgovarajućoj razini napona.
Jedan od najjednostavnijih i najpopularnijih video DAC -ova je ADV7125. To je 8-bitni DAC koji pretvara RGB digitalne riječi u 0-0,7 V analogne signale i pokreće VGA zaslon.
Korak 3: Dizajn međuspremnika okvira
Memorija je ta koja "pohranjuje" sliku za prikaz. Obično je to RAM ili ponekad ROM. Raspravljat ćemo o tome kako dizajnirati međuspremnik okvira za predstavljanje slike. Frame međuspremnik prenosi ove digitalne podatke video DAC -u na naredbu iz VGA kontrolera.
Prvo moramo odlučiti koja je dubina piksela potrebna. On odlučuje o kvaliteti slike, raznolikosti boja koje piksel može predstavljati. Za 8-bitni DAC moramo predstaviti primarne komponente boje piksela: R, G i B u po 8 bita. To znači da je piksel 24-bitni.
Svaki piksel pohranjen je na kontinuiran način u memorijskim lokacijama Frame Buffer -a.
Pretpostavimo da je slika za prikaz 800x600 piksela.
Stoga je Frame Buffer potreban 800x600 = 480000 x 24 bita memorije
Ukupna veličina memorije je 800x600x24 = 1400 kB pribl.
Ako je crno -bijela slika, 800x600x1 = 60 kB pribl.
Blokiranje RAM -a može se koristiti za predstavljanje Frame Buffer -a u Xilinx FPGA -ima.
Korak 4: Bilješke
- Ovisno o odabranom DAC -u, potrebni su dodatni signali na VGA kontroleru. Koristio sam ADV7125.
- Dodajte kašnjenja ciklusa kroz japanke na VSYNC i HSYNC prije pokretanja VGA zaslona. To je zbog kašnjenja DAC -a i memorije. Signali piksela trebaju biti sinkronizirani s HSYNC i VSYNC. U mom slučaju to je bilo 2 ciklusa kašnjenja.
- Ako Frame Buffer zadane veličine ne može biti dizajniran na FPGA -i zbog ograničenja veličine RAM -a, upotrijebite manju memoriju za predstavljanje slike i jednostavno uredite kôd kako biste se prevrnuli preko adrese na granici dostupne memorije, a ne na granici cijelog okvira. Ovo će ponavljati istu sliku iznova na cijelom ekranu. Druga metoda je skaliranje piksela u kojoj se svaki piksel replicira kako bi prikazao cijelu sliku na cijelom ekranu, u manjoj razlučivosti. To se može učiniti prilagođavanjem logike povećanja adrese u kodu.
- IP je potpuno prenosiv na sve FPGA-e i ima verificirano vrijeme do 100 MHz na Virtex-4 FPGA.
Korak 5: Priložene datoteke
RAR sadrži:
- Kod VGA kontrolera
- PDF -ovi VGA standarda.
Preporučeni:
Dizajn jednostavnog četverosmjernog asocijativnog upravljača predmemorije u VHDL-u: 4 koraka
Dizajn jednostavnog četverosmjernog asocijativnog upravljačkog predmemorije u VHDL-u: U mojim prethodnim uputama vidjeli smo kako dizajnirati jednostavan izravno mapirani predmemorski kontroler. Ovaj put idemo korak naprijed. Dizajnirat ćemo jednostavan četverosmjerni set asocijativnih kontrolera predmemorije. Prednost? Manje propuštanja, ali po cijenu performanse
Dizajn programabilnog kontrolera prekida u VHDL -u: 4 koraka
Dizajn programabilnog kontrolera prekida u VHDL -u: Oduševljen sam vrstama odgovora koje dobivam na ovom blogu. Hvala vam momci što ste posjetili moj blog i motivirali me da svoje znanje podijelim s vama. Ovaj put ću predstaviti dizajn još jednog zanimljivog modula koji vidimo u svim SOC -ovima - Interrupt C
Dizajn jednostavnog upravljača predmemorijom u VHDL -u: 4 koraka
Dizajn jednostavnog upravljača predmemorijom u VHDL -u: Pišem ovo uputstvo jer mi je bilo malo teško nabaviti neki referentni VHDL kôd za učenje i započeti projektiranje kontrolera predmemorije. Stoga sam sam dizajnirao predmemorijski kontroler od nule i uspješno ga testirao na FPGA. Imam p
Dizajn I2C Master u VHDL -u: 5 koraka
Dizajn I2C Master -a u VHDL -u: U ovom uputstvu se raspravlja o dizajniranju jednostavnog I2C majstora u VHDL -u. NAPOMENA: kliknite na svaku sliku da biste vidjeli cijelu sliku
LED mod kontrolera kontrolera Gamecube: 8 koraka (sa slikama)
LED mod za Gamecube Controller: Jeste li ikada imali kontroler igre koji ste zaista voljeli, ali vam nije bio prilagođen? Pa tako sam se ja osjećao sa svojim Gamecube kontrolerom. Gamecube kontroleri su moje omiljene vrste kontrolera, ali u Sjevernoj Americi tri najčešća su