Sadržaj:

Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: 5 koraka
Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: 5 koraka

Video: Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: 5 koraka

Video: Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: 5 koraka
Video: Набор для изучения FPGA | Altera Cyclone 2024, Lipanj
Anonim
Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu
Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu

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

Integriranje VGA kontrolera s VGA zaslonom
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: