INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
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
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:
Ontwerp van 'n eenvoudige vierweg-stel assosiatiewe kasbeheerder in VHDL: 4 stappe
Ontwerp van 'n eenvoudige vierweg-stel assosiatiewe cache-beheerder in VHDL: In my vorige instruksies het ons gesien hoe om 'n eenvoudige direkte gekarteerde kasbestuurder te ontwerp. Hierdie keer beweeg ons 'n stap vorentoe. Ons ontwerp 'n eenvoudige assosiatiewe kasbestuurder met vier rigtings. Voordeel? Minder miskoers, maar ten koste van perfo
Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: 4 stappe
Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: Ek is oorweldig deur die soort reaksies wat ek op hierdie blog kry. Dankie ouens dat julle my blog besoek het en my gemotiveer het om my kennis met julle te deel. Hierdie keer bied ek die ontwerp aan van nog 'n interessante module wat ons in alle SOC's sien - Interrupt C
Ontwerp van 'n eenvoudige kasbeheerder in VHDL: 4 stappe
Ontwerp van 'n eenvoudige cache -beheerder in VHDL: ek skryf hierdie instruksies, want dit was 'n bietjie moeilik om 'n verwysing -VHDL -kode te kry om te leer en 'n kasbestuurder te begin ontwerp. Ek het dus self 'n kasbeheerder ontwerp en dit met sukses op FPGA getoets. Ek het p
Ontwerp van I2C Master in VHDL: 5 stappe
Ontwerp van I2C Master in VHDL: In hierdie instruksies word die ontwerp van 'n eenvoudige I2C master in VHDL bespreek.OPMERKING: klik op elke prent om die volledige prent te sien
Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele: 5 stappe
Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele: Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele