Sisukord:
- Samm: VGA kontrolleri liides
- Samm: VGA -kontrolleri integreerimine VGA -ekraaniga
- 3. samm: raampuhvri kujundamine
- 4. samm: märkmed
- Samm: manustatud failid
Video: Lihtsa VGA -kontrolleri disain VHDL -is ja Verilogis: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Selles juhendis kavandame RTL -is lihtsa VGA -kontrolleri. VGA -kontroller on digitaalskeem, mis on ette nähtud VGA -ekraanide juhtimiseks. See loeb kaadripuhvrist (VGA -mälu), mis tähistab kuvatavat kaadrit, ning genereerib kuvamiseks vajalikud andmed ja sünkroonisignaalid.
Kui otsite Verilogi/süsteemi verilogi koodi: külastage minu ajaveebi VGA kontrollerit ja videosüsteemi Verilogis
Samm: VGA kontrolleri liides
Järgnevalt on toodud peamised liidese signaalid VGA kontrolleris
- Pixel või VGA kell
- HSYNC ja VSYNC signaalid
Valitud VGA -ekraani puhul peate esmalt arvutama selle juhtimiseks vajaliku pikslikella sageduse. See sõltub kolmest parameetrist: horisontaalsete pikslite koguarv, vertikaalsete pikslite koguarv, ekraani värskendussagedus.
Tavaliselt on F = THP * TVP * värskendussagedus
Leidke lisatud RAR -ist dokumentatsioon pikslite kella kohta, mida on vaja erinevate VGA -kuvarite jaoks.
HSYNC ja VSYNC signaalid genereeritakse Pixeli kellast. HSYNC ja VSYNC signaalide ajastamine sõltub parameetrite arvust: horisontaalne ja vertikaalne esiport, horisontaalne ja vertikaalne tagakülg, horisontaalsed ja vertikaalsed kuvaripikslid, horisontaalsed ja vertikaalsed sünkroonimisimpulsi laiused ja polaarsused.
Need parameetrid on valitud VGA -ekraani jaoks standardiseeritud. Need dokumendid leiate lisatud RAR -ist.
Need parameetrid on konfigureeritavad parameetrid meie VGA kontrolleri IP -s.
Samm: VGA -kontrolleri integreerimine VGA -ekraaniga
Joonisel on näidatud, kuidas integreerida VGA -kontroller VGA -ekraaniga. Süsteemi lõpuleviimiseks vajate veel kahte komponenti:
- Kaadripuhver: mälu, mis hoiab kuvatavat kaadrit.
- Video DAC: DAC, mis teisendab RGB digitaalseid andmeid ja juhib VGA -ekraani RGB analoogsignaalidega sobival pingetasemel.
Üks lihtsamaid ja populaarsemaid video -DAC -sid on ADV7125. See on 8-bitine DAC, mis teisendab RGB digitaalsõnad 0–0,7 V analoogsignaalideks ja juhib VGA-ekraani.
3. samm: raampuhvri kujundamine
See on mälu, mis "salvestab" kuvatava pildi. Tavaliselt on see RAM või mõnikord ROM. Arutame, kuidas kujundada kaadripuhver kujutise esitamiseks. Kaadripuhver edastab selle digitaalse teabe VGA -kontrolleri käsul Video DAC -ile.
Kõigepealt peame otsustama vajaliku piksli sügavuse. See otsustab pildi kvaliteedi, värvide mitmekesisuse, mida piksel võib kujutada. 8-bitise DAC-i puhul peame esitama piksli põhivärvikomponendid: R, G ja B 8 bitti. See tähendab, et piksel on 24-bitine.
Iga piksel salvestatakse kõrvuti kaadripuhvri mälu kohtadesse.
Oletame, et kuvatav pilt on 800x600 pikslit.
Seetõttu on vaja kaadripuhvrit 800x600 = 480000 x 24 bitti
Mälu kogumaht on umbes 800x600x24 = 1400 kB.
Mustvalge pildi korral on 800x600x1 = 60 kB umbes.
Blokeeritud RAM -e võib kasutada Xilinxi FPGA -de kaadripuhvri tähistamiseks.
4. samm: märkmed
- Sõltuvalt valitud DAC -st on VGA kontrolleril vaja täiendavaid signaale. Olen kasutanud ADV7125.
- Enne VGA-ekraani juhtimist lisage tsükli viivitusi VSYNC ja HSYNC plätude kaudu. Selle põhjuseks on DAC ja mälu latentsus. Pikslisignaalid tuleks sünkroonida HSYNC ja VSYNC -ga. Minu puhul oli see 2 tsükli viivitus.
- Kui antud suurusega kaadripuhvrit ei saa plokksilmi suuruse piirangu tõttu FPGA -le konstrueerida, kasutage kujutise esitamiseks väiksemat mälu ja redigeerige lihtsalt kood nii, et see ületaks olemasoleva mälu piiril oleva aadressi, mitte täiskaadri piiri. See kordab sama pilti kogu ekraani ulatuses. Teine meetod on pikslite skaleerimine, kus iga pikslit kopeeritakse, et näidata kogu pilti täisekraanil, väiksema eraldusvõimega. Seda saab teha, muutes koodis aadressi suurendamise loogikat.
- IP on täielikult kaasaskantav kõikides FPGA-des ja selle ajastus on kontrollitud kuni 100 MHz-ni Virtex-4 FPGA-l.
Samm: manustatud failid
RAR sisaldab:
- VGA kontrolleri kood
- VGA standardite PDF -failid.
Soovitan:
Praegusel režiimil põhineva ostsillaatori disain D -klassi helivõimenditele: 6 sammu
Praegusel režiimil põhineva ostsillaatori disain D -klassi helivõimenditele: viimastel aastatel on D -klassi helivõimendid muutunud eelistatud lahenduseks kaasaskantavatele helisüsteemidele, nagu MP3 ja mobiiltelefonid, tänu oma suurele tõhususele ja madalale energiatarbimisele. Ostsillaator on D -klassi oluline osa
Programmeeritava katkestuskontrolleri disain VHDL -is: 4 sammu
Programmeeritava katkestuskontrolleri kujundamine VHDL -is: olen ajaveebist saadud vastustest väga vaimustuses. Tänan poisid, et külastasite minu ajaveebi ja motiveerisite mind teiega oma teadmisi jagama. Seekord tutvustan veel ühe huvitava mooduli kujundust, mida näeme kõigis SOC -des - katkestus C
I2C Masteri disain VHDL -is: 5 sammu
I2C Masteri disain VHDL -is: selles juhendis käsitletakse lihtsa I2C -kapteni kujundamist VHDL -is. MÄRKUS: täieliku pildi nägemiseks klõpsake igal pildil
SPI Masteri disain VHDL -is: 6 sammu
SPI Masteri disain VHDL -is: selles juhendis kavandame VHDL -is SPI -bussimeistri nullist
UART disain VHDL -is: 5 sammu
UART disain VHDL -is: UART tähistab universaalset asünkroonset vastuvõtjat. See on kõige populaarsem ja lihtsam jadaühenduse protokoll. Selles juhendis saate teada, kuidas VHDL -is UART -moodulit kujundada