Sadržaj:
- Korak 1: Interfejs VGA kontrolera
- Korak 2: Integrisanje VGA kontrolera sa VGA ekranom
- Korak 3: Dizajn međuspremnika okvira
- Korak 4: Napomene
- Korak 5: Priložene datoteke
Video: Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
U ovom uputstvu ćemo dizajnirati jednostavan VGA kontroler u RTL -u. VGA kontroler je digitalno kolo dizajnirano za pogon VGA ekrana. Č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/sistemski verilog kod: Posjetite moj blog VGA kontroler i video sistem u Verilogu
Korak 1: Interfejs VGA kontrolera
Slijede glavni signali sučelja u VGA kontroleru
- Pixel Clock ili VGA Clock
- HSYNC i VSYNC signali
Za odabir VGA ekrana morate prvo izračunati frekvenciju sata piksela potrebnu za rad. Ovisi o 3 parametra: ukupni vodoravni pikseli, ukupni okomiti pikseli, brzina osvježavanja ekrana.
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 Pixel sata. Vrijeme HSYNC i VSYNC signala ovisi o broju parametara: Horizontalni i Vertikalni Frontporch, Horizontalni i Vertikalni Backporch, Horizontalni i Vertikalni pikseli prikaza, Horizontalne i Vertikalne Sinhronizacijske Impulsne Širine i Polariteti.
Ovi parametri su standardizirani za odabrani VGA ekran. Ove dokumente pronađite u priloženom RAR -u.
Ovi parametri su parametri koji se mogu konfigurirati u IP -u našeg VGA kontrolera.
Korak 2: Integrisanje VGA kontrolera sa VGA ekranom
Slika prikazuje kako integrirati VGA kontroler sa VGA ekranom. Za dovršetak sistema potrebne su vam još dvije komponente:
- Frame Buffer: Memorija koja sadrži okvir za prikaz.
- Video DAC: DAC koji pretvara RGB digitalne podatke i pokreće VGA ekran sa RGB analognim signalima na odgovarajućem naponskom nivou.
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. Razgovarat ćemo o tome kako dizajnirati međuspremnik okvira za predstavljanje slike. Frame međuspremnik prosljeđuje 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 je uskladišten na memorijskim lokacijama Frame Buffer -a.
Pretpostavimo da je slika za prikaz 800x600 piksela.
Stoga je potreban Frame Buffer 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: Napomene
- Dodatni signali su potrebni na VGA kontroleru, ovisno o odabranom DAC -u. Koristio sam ADV7125.
- Dodajte kašnjenja ciklusa kroz japanke na VSYNC i HSYNC prije pokretanja VGA ekrana. To je zbog kašnjenja DAC -a i memorije. Signali piksela trebaju biti sinhronizirani sa 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 bloka, upotrijebite manju memoriju za predstavljanje slike i jednostavno uredite kôd kako biste prevrnuli adresu na granici dostupne memorije, a ne na granici cijelog okvira. Ovo će ponavljati istu sliku iznova na ekranu. Druga metoda je skaliranje piksela u kojoj se svaki piksel replicira kako bi prikazao cijelu sliku na cijelom ekranu, u manjoj rezoluciji. To se može učiniti prilagođavanjem logike povećanja adrese u kodu.
- IP je potpuno prenosiv na sve FPGA-e i ima verifikaciju vremena do 100 MHz na Virtex-4 FPGA.
Korak 5: Priložene datoteke
RAR sadrži:
- Kod VGA kontrolera
- PDF -ovi VGA standarda.
Preporučuje se:
Dizajn jednostavnog četvorosmjernog asocijativnog kontrolera predmemorije u VHDL-u: 4 koraka
Dizajn jednostavnog četvorosmjernog asocijativnog kontrolera predmemorije u VHDL-u: U mojim prethodnim uputama vidjeli smo kako dizajnirati jednostavan kontroler predmemorije s direktnim mapiranjem. Ovaj put idemo korak dalje. 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 momci što ste posjetili moj blog i motivirali me da podijelim svoje znanje s vama. Ovaj put ću predstaviti dizajn još jednog zanimljivog modula koji vidimo u svim SOC -ovima - Interrupt C
Dizajn jednostavnog kontrolera predmemorije u VHDL -u: 4 koraka
Dizajn jednostavnog kontrolera predmemorije 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 dizajniranje 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 master -a u VHDL -u. NAPOMENA: kliknite na svaku sliku da biste vidjeli cijelu sliku
Dizajn SPI Master -a u VHDL -u: 6 koraka
Dizajn SPI Master -a u VHDL -u: U ovom uputstvu, dizajnirat ćemo SPI Bus Master od nule u VHDL -u