INHOUDSOPGAWE:

Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog: 5 stappe
Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog: 5 stappe

Video: Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog: 5 stappe

Video: Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog: 5 stappe
Video: RUC3: "Hardware design in VHDL" 2024, Junie
Anonim
Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog
Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog

In hierdie instruksies gaan ons 'n eenvoudige VGA -kontroleerder in RTL ontwerp. VGA Controller is die digitale stroombaan wat ontwerp is om VGA -skerms aan te dryf. Dit word gelees uit die raambuffer (VGA -geheue) wat die raam verteenwoordig wat vertoon word, en genereer die nodige data en sinchroniseer seine vir vertoondoeleindes.

As u op soek is na Verilog/System verilog -kode: Besoek my blog VGA Controller en Video System in Verilog

Stap 1: Koppelvlak van 'n VGA -beheerder

Hier volg die belangrikste koppelvlakseine in 'n VGA -beheerder

  • Pixel Clock of VGA Clock
  • HSYNC en VSYNC seine

Vir die gekose VGA -skerm moet u eers die frekwensie van die Pixel Clock bereken wat nodig is om dit te bestuur. Dit hang af van 3 parameters: totale horisontale pixels, totale vertikale pixels, skermverfrissingstempo.

Gewoonlik is F = THP * TVP * Opdateringsfrekwensie

Vind die dokumentasie oor die pixelklok wat benodig word vir verskillende VGA -skerms, in die aangehegte RAR.

HSYNC- en VSYNC -seine word gegenereer vanaf die Pixel -klok. Die tydsberekening van HSYNC- en VSYNC -seine hang af van die aantal parameters: Horisontale en vertikale voorporch, horisontale en vertikale agterporch, horisontale en vertikale pixels, horisontale en vertikale sinchronisasie polswydtes en polariteite.

Hierdie parameters word gestandaardiseer vir 'n gekose VGA -skerm. Soek hierdie dokumente in die aangehegte RAR.

Hierdie parameters is instelbare parameters in ons VGA Controller IP.

Stap 2: Integrasie van VGA -beheerder met 'n VGA -skerm

Integrasie van VGA -kontroleerder met 'n VGA -skerm
Integrasie van VGA -kontroleerder met 'n VGA -skerm

Die figuur toon hoe u die VGA -beheerder met 'n VGA -skerm kan integreer. U benodig nog twee komponente om die stelsel te voltooi:

  • Frame Buffer: Geheue wat die raam bevat wat vertoon moet word.
  • Video DAC: DAC wat digitale RGB -data omskakel en die VGA -skerm met analoge RGB -seine op die gepaste spanningsvlak dryf.

Een van die eenvoudigste en gewildste video -DAC's is ADV7125. Dit is 'n 8-bis DAC wat digitale RGB-woorde omskakel na 0-0,7 V analoge seine en die VGA-skerm aandryf.

Stap 3: Frame Buffer -ontwerp

Dit is die geheue wat die beeld wat gestoor moet word 'stoor'. Dit is gewoonlik 'n RAM of soms ROM. Ons sal bespreek hoe om 'n raambuffer te ontwerp om 'n beeld voor te stel. Raambuffer gee hierdie digitale inligting deur op bevel van die VGA -beheerder na 'n video -DAC.

Eerstens moet ons die pixeldiepte bepaal wat nodig is. Dit bepaal die kwaliteit van die beeld, die verskeidenheid kleure wat 'n pixel kan voorstel. Vir 'n 8-bis DAC moet ons die primêre kleurkomponente van 'n pixel voorstel: R, G en B in 8 bis elk. Dit beteken dat 'n pixel 24-bis is.

Elke pixel word op 'n aangrensende manier in Frame Buffer -geheue -plekke gestoor.

Gestel 'n beeld wat 800x600 pixels vertoon moet word.

Daarom benodig die raambuffer 800x600 = 480000 x 24 bis geheue

Totale grootte van die geheue is 800x600x24 = 1400 kB ongeveer.

As swart en wit beeld, 800x600x1 = 60 kB ongeveer.

Blok -RAM's word miskien gebruik om 'n raambuffer in Xilinx FPGA's voor te stel.

Stap 4: Notas

  • Bykomende seine is nodig op die VGA -beheerder, afhangende van die gekose DAC. Ek het ADV7125 gebruik.
  • Voeg siklusvertragings by flip-flops op VSYNC en HSYNC by voordat u met VGA-skerm ry. Dit is as gevolg van DAC en geheue vertragings. Die pixel seine moet gesinchroniseer word met HSYNC en VSYNC. In my geval was dit 'n vertraging van 2 siklusse.
  • As 'n raambuffer van 'n gegewe grootte nie op FPGA ontwerp kan word nie as gevolg van die beperking van die blokramgrootte, gebruik 'n kleiner geheue om die prent voor te stel en wysig eenvoudig die kode om die adres op die grens van die beskikbare geheue oor te dra, eerder as die grens van die volle raam. Dit sal dieselfde beeld oor en oor die hele skerm herhaal. 'N Ander metode is pixelskaal waarin elke pixel herhaal word om die hele beeld op 'n volledige skerm in 'n mindere resolusie te vertoon. Dit kan gedoen word deur die adres -inkrementeringslogika in die kode aan te pas.
  • Die IP is heeltemal draagbaar vir alle FPGA's en word met tydsberekening tot 100 MHz op Virtex-4 FPGA geverifieer.

Stap 5: aangehegte lêers

Die RAR bevat:

  • VGA -beheerderkode
  • PDF's van VGA -standaarde.

Aanbeveel: