Sisällysluettelo:

Yksinkertaisen VGA -ohjaimen suunnittelu VHDL- ja Verilog -järjestelmissä: 5 vaihetta
Yksinkertaisen VGA -ohjaimen suunnittelu VHDL- ja Verilog -järjestelmissä: 5 vaihetta

Video: Yksinkertaisen VGA -ohjaimen suunnittelu VHDL- ja Verilog -järjestelmissä: 5 vaihetta

Video: Yksinkertaisen VGA -ohjaimen suunnittelu VHDL- ja Verilog -järjestelmissä: 5 vaihetta
Video: XIAOMI REDMI A1: An Ultra-Budget King // Things To Know Before Buy 2024, Marraskuu
Anonim
Yksinkertaisen VGA -ohjaimen suunnittelu VHDL- ja Verilog -versioissa
Yksinkertaisen VGA -ohjaimen suunnittelu VHDL- ja Verilog -versioissa

Tässä ohjeessa aiomme suunnitella yksinkertaisen VGA -ohjaimen RTL: ssä. VGA -ohjain on digitaalinen piiri, joka on suunniteltu ohjaamaan VGA -näyttöjä. Se lukee kehyspuskurista (VGA -muisti), joka edustaa näytettävää kehystä, ja luo tarvittavat tiedot ja synkronointisignaalit näyttötarkoitusta varten.

Jos etsit Verilog/järjestelmän verilog -koodia: Käy blogissani VGA -ohjain ja videojärjestelmä Verilogissa

Vaihe 1: VGA -ohjaimen käyttöliittymä

Seuraavassa on VGA -ohjaimen tärkeimmät rajapintasignaalit

  • Pixel- tai VGA -kello
  • HSYNC- ja VSYNC -signaalit

Valitun VGA -näytön osalta sinun on ensin laskettava sen ajamiseen tarvittava Pixel Clock -taajuus. Se riippuu kolmesta parametrista: vaakasuuntaiset pikselit yhteensä, pystysuuntaiset pikselit yhteensä, näytön virkistystaajuus.

Yleensä F = THP * TVP * virkistystaajuus

Löydät eri VGA -näyttöjen tarvitsemat pikselikellon asiakirjat liitteenä olevasta RAR: sta.

HSYNC- ja VSYNC -signaalit luodaan Pixel -kellosta. HSYNC- ja VSYNC -signaalien ajoitus riippuu parametrien lukumäärästä: vaakasuora ja pystysuora etuportti, vaaka- ja pystysuora takaportti, vaaka- ja pystysuuntaiset näyttöpikselit, vaakasuuntaiset ja pystysuuntaiset synkronointipulssien leveydet ja napaisuudet.

Nämä parametrit on standardoitu valitulle VGA -näytölle. Löydät nämä asiakirjat liitteenä olevasta RAR: sta.

Nämä parametrit ovat konfiguroitavia parametreja VGA -ohjaimen IP -osoitteessa.

Vaihe 2: VGA -ohjaimen integrointi VGA -näytöllä

VGA -ohjaimen integrointi VGA -näytöllä
VGA -ohjaimen integrointi VGA -näytöllä

Kuvassa näytetään, miten VGA -ohjain integroidaan VGA -näyttöön. Tarvitset kaksi muuta komponenttia järjestelmän täydentämiseksi:

  • Kehyspuskuri: Muisti, joka pitää näytettävän kehyksen.
  • Video DAC: DAC, joka muuntaa RGB -digitaalidataa ja ohjaa VGA -näyttöä analogisilla RGB -signaaleilla sopivalla jännitetasolla.

Yksi yksinkertaisimmista ja suosituimmista DAC -videoista on ADV7125. Se on 8-bittinen DAC, joka muuntaa RGB-digitaaliset sanat 0-0,7 V: n analogisignaaleiksi ja ohjaa VGA-näyttöä.

Vaihe 3: Kehyspuskurin suunnittelu

Muisti "tallentaa" näytettävän kuvan. Se on tyypillisesti RAM tai joskus ROM. Keskustelemme siitä, miten suunnitella kehyspuskuri edustamaan kuvaa. Kehyspuskuri välittää nämä digitaaliset tiedot Video DAC: lle VGA -ohjaimen komennolla.

Ensin meidän on päätettävä tarvittava pikselisyvyys. Se päättää kuvan laadusta ja pikselin edustamasta värivalikoimasta. 8-bittisessä DAC: ssä meidän on edustettava pikselin ensisijaisia värikomponentteja: R, G ja B 8 bittiä. Se tarkoittaa, että pikseli on 24-bittinen.

Jokainen pikseli tallennetaan vierekkäin Frame Buffer -muistipaikkoihin.

Oletetaan, että näytettävä kuva on 800 x 600 pikseliä.

Siksi kehyspuskuri on 800x600 = 480000 x 24 bittiä

Muistin koko on noin 800x600x24 = 1400 kt.

Jos kuva on mustavalkoinen, 800x600x1 = 60 kB noin.

Lohko -RAM -muistia voidaan käyttää edustamaan kehyspuskuria Xilinx FPGA -laitteissa.

Vaihe 4: Huomautuksia

  • Lisäsignaaleja tarvitaan VGA -ohjaimessa valitusta DAC: sta riippuen. Olen käyttänyt ADV7125.
  • Lisää jakson viivästyksiä VSYNC- ja HSYNC-varvastossuilla ennen VGA-näytön ajamista. Tämä johtuu DAC- ja muistiviiveistä. Pikselisignaalit tulee synkronoida HSYNC: n ja VSYNC: n kanssa. Minun tapauksessani se oli 2 syklin viive.
  • Jos tietyn kokoista kehyspuskuria ei voida suunnitella FPGA: lle lohkoyksikön kokorajoituksen vuoksi, käytä pienempää muistia kuvan esittämiseen ja muokkaa vain koodi vierittämään käytettävissä olevan muistin rajalla olevan osoitteen yli koko kehyksen rajan sijaan. Tämä toistaa saman kuvan uudestaan ja uudestaan koko näytön. Toinen menetelmä on pikselin skaalaus, jossa jokainen pikseli kopioidaan näyttämään koko kuva koko näytössä pienemmällä tarkkuudella. Tämä voidaan tehdä säätämällä koodin osoitteen lisäyslogiikkaa.
  • IP-osoite on täysin kannettava kaikissa FPGA-laitteissa, ja sen ajoitus on vahvistettu 100 MHz: iin asti Virtex-4 FPGA: lla.

Vaihe 5: Liitetyt tiedostot

RAR sisältää:

  • VGA -ohjaimen koodi
  • PDF -tiedostot VGA -standardeista.

Suositeltava: