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: монитор на отладочной плапте XILINX Sprtan-3E, как у меня работает 2024, Novembar
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 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

Integrisanje VGA kontrolera sa VGA ekranom
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: