Turinys:

Paprasto VGA valdiklio dizainas VHDL ir „Verilog“: 5 žingsniai
Paprasto VGA valdiklio dizainas VHDL ir „Verilog“: 5 žingsniai

Video: Paprasto VGA valdiklio dizainas VHDL ir „Verilog“: 5 žingsniai

Video: Paprasto VGA valdiklio dizainas VHDL ir „Verilog“: 5 žingsniai
Video: Rozetės montavimas ir pajungimas 2024, Birželis
Anonim
Paprasto VGA valdiklio dizainas VHDL ir „Verilog“
Paprasto VGA valdiklio dizainas VHDL ir „Verilog“

Šioje instrukcijoje mes suprojektuosime paprastą VGA valdiklį RTL. VGA valdiklis yra skaitmeninė grandinė, skirta VGA ekranams valdyti. Jis nuskaito iš kadrų buferio (VGA atmintis), rodančio rodomą rėmelį, ir generuoja reikiamus duomenis bei sinchronizavimo signalus rodymui.

Jei ieškote „Verilog“/sistemos verilog kodo: apsilankykite mano tinklaraštyje „VGA“valdiklis ir vaizdo sistema „Verilog“

1 žingsnis: VGA valdiklio sąsaja

Toliau pateikiami pagrindiniai sąsajos signalai VGA valdiklyje

  • „Pixel Clock“arba „VGA“laikrodis
  • HSYNC ir VSYNC signalai

Norėdami pasirinkti VGA ekraną, pirmiausia turite apskaičiuoti „Pixel Clock“dažnį, reikalingą jam valdyti. Tai priklauso nuo 3 parametrų: viso horizontalių pikselių, viso vertikalių pikselių, ekrano atnaujinimo dažnio.

Paprastai F = THP * TVP * atnaujinimo dažnis

Pridedamame RAR rasite pikselių laikrodžio dokumentaciją, reikalingą įvairiems VGA ekranams.

HSYNC ir VSYNC signalai generuojami iš „Pixel“laikrodžio. HSYNC ir VSYNC signalų laikas priklauso nuo parametrų skaičiaus: horizontalus ir vertikalus „Frontporch“, horizontalus ir vertikalus „backporch“, horizontalūs ir vertikalūs ekrano taškai, horizontalaus ir vertikalaus sinchronizavimo pulso pločiai ir poliškumai.

Šie parametrai yra standartizuoti pasirinktam VGA ekranui. Šiuos dokumentus rasite pridedamame RAR.

Šie parametrai yra konfigūruojami parametrai mūsų VGA valdiklio IP.

2 žingsnis: integruokite VGA valdiklį su VGA ekranu

Integruotas VGA valdiklis su VGA ekranu
Integruotas VGA valdiklis su VGA ekranu

Paveikslėlyje parodyta, kaip integruoti VGA valdiklį su VGA ekranu. Norėdami užbaigti sistemą, jums reikia dar dviejų komponentų:

  • Kadrų buferis: atmintis, kurioje yra rodomas kadras.
  • Vaizdo DAC: DAC, konvertuojantis RGB skaitmeninius duomenis ir valdantis VGA ekraną su RGB analoginiais signalais esant tinkamam įtampos lygiui.

Vienas iš paprasčiausių ir populiariausių vaizdo DAC yra ADV7125. Tai 8 bitų DAC, kuris RGB skaitmeninius žodžius paverčia 0-0,7 V analoginiais signalais ir valdo VGA ekraną.

3 žingsnis: rėmo buferio dizainas

Tai atmintis, kuri „saugo“rodomą vaizdą. Paprastai tai yra RAM arba kartais ROM. Mes aptarsime, kaip sukurti rėmo buferį vaizdui atvaizduoti. Kadro buferis perduoda šią skaitmeninę informaciją vaizdo DAC, gavus VGA valdiklio komandą.

Pirmiausia turime nuspręsti, kokio pikselių gylio reikia. Tai lemia vaizdo kokybę, pikselių spalvų įvairovę. 8 bitų DAC atveju mes turime pavaizduoti pagrindinius pikselio spalvų komponentus: R, G ir B po 8 bitus. Tai reiškia, kad pikselis yra 24 bitų.

Kiekvienas pikselis yra saugomas gretimai kadrų buferio atminties vietose.

Tarkime, kad rodomas vaizdas yra 800x600 pikselių.

Todėl reikia kadrų buferio 800x600 = 480000 x 24 bitų atminties

Bendras atminties dydis yra 800x600x24 = maždaug 1400 kB.

Jei vaizdas nespalvotas, 800x600x1 = 60 kB apytiksliai.

Blokuoti RAM gali būti naudojami kadrų buferiui Xilinx FPGA vaizduoti.

4 žingsnis: pastabos

  • Priklausomai nuo pasirinkto DAC, VGA valdiklyje reikia papildomų signalų. Aš naudoju ADV7125.
  • Prieš važiuodami VGA ekranu, pridėkite ciklo uždelsimus per šlepetes VSYNC ir HSYNC. Taip yra dėl DAC ir atminties delsos. Pikselių signalai turi būti sinchronizuoti su HSYNC ir VSYNC. Mano atveju tai buvo 2 ciklų vėlavimas.
  • Jei tam tikro dydžio kadrų buferis negali būti suprojektuotas FPGA dėl bloko atminties dydžio apribojimų, naudokite mažesnę atmintį vaizdui atvaizduoti ir tiesiog redaguokite kodą, kad jis pereitų ant turimos atminties ribos esančio adreso, o ne viso kadro ribos. Tai pakartos tą patį vaizdą per visą ekraną. Kitas metodas yra pikselių mastelio keitimas, kai kiekvienas pikselis yra atkartojamas, kad būtų rodomas visas vaizdas visame ekrane, mažesne raiška. Tai galima padaryti pakeitus kodo adreso didinimo logiką.
  • IP yra visiškai nešiojamas visuose FPGA, o laikas patikrintas iki 100 MHz „Virtex-4 FPGA“.

5 veiksmas: pridedami failai

RAR sudėtyje yra:

  • VGA valdiklio kodas
  • VGA standartų PDF failai.

Rekomenduojamas: