Satura rādītājs:
- 1. darbība: VGA kontroliera saskarne
- 2. darbība. VGA kontroliera integrēšana ar VGA displeju
- 3. solis: rāmja bufera dizains
- 4. solis: piezīmes
- 5. darbība. Pievienotie faili
Video: Vienkārša VGA kontroliera dizains VHDL un Verilog: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
Šajā pamācībā mēs izstrādāsim vienkāršu VGA kontrolieri RTL. VGA kontrolieris ir digitālā shēma, kas paredzēta VGA displeju vadīšanai. Tas nolasa no kadru bufera (VGA atmiņa), kas attēlo parādāmo kadru, un ģenerē nepieciešamos datus un sinhronizācijas signālus displeja vajadzībām.
Ja jūs meklējat Verilog/sistēmas verilog kodu: apmeklējiet manu emuāru VGA kontrolieris un video sistēma Verilog
1. darbība: VGA kontroliera saskarne
Tālāk ir norādīti galvenie saskarnes signāli VGA kontrollerī
- Pixel Clock vai VGA pulkstenis
- HSYNC un VSYNC signāli
Lai izvēlētos VGA displeju, vispirms jāaprēķina tā vadīšanai nepieciešamā pikseļu pulksteņa frekvence. Tas ir atkarīgs no 3 parametriem: kopējie horizontālie pikseļi, kopējie vertikālie pikseļi, ekrāna atsvaidzes intensitāte.
Parasti F = THP * TVP * atsvaidzes intensitāte
Pievienotajā RAR atrodiet dokumentāciju par pikseļu pulksteni, kas nepieciešama dažādiem VGA displejiem.
HSYNC un VSYNC signāli tiek ģenerēti no Pixel pulksteņa. HSYNC un VSYNC signālu laiks ir atkarīgs no parametru skaita: Horizontālā un vertikālā priekšpuse, Horizontālā un vertikālā aizmugure, Horizontālā un vertikālā displeja pikseļi, Horizontālā un vertikālā sinhronizācijas impulsa platums un polaritāte.
Šie parametri ir standartizēti izvēlētajam VGA displejam. Atrodiet šos dokumentus pievienotajā RAR.
Šie parametri ir konfigurējami parametri mūsu VGA kontroliera IP.
2. darbība. VGA kontroliera integrēšana ar VGA displeju
Attēlā parādīts, kā integrēt VGA kontrolieri ar VGA displeju. Lai pabeigtu sistēmu, jums ir nepieciešami vēl divi komponenti:
- Rāmja buferis: atmiņa, kurā tiek parādīts rāmis.
- Video DAC: DAC, kas pārveido RGB digitālos datus un vada VGA displeju ar RGB analogiem signāliem atbilstošā sprieguma līmenī.
Viens no vienkāršākajiem un populārākajiem video DAC ir ADV7125. Tas ir 8 bitu DAC, kas pārveido RGB digitālos vārdus par 0-0,7 V analogiem signāliem un vada VGA displeju.
3. solis: rāmja bufera dizains
Tā ir atmiņa, kas “saglabā” parādāmo attēlu. Parasti tā ir RAM vai dažreiz ROM. Mēs apspriedīsim, kā izveidot rāmja buferi attēla attēlošanai. Kadra buferis nodod šo digitālo informāciju video DAC pēc VGA kontrollera komandas.
Vispirms mums jāizlemj par nepieciešamo pikseļu dziļumu. Tas nosaka attēla kvalitāti, krāsu dažādību, ko var attēlot pikselis. Lai iegūtu 8 bitu DAC, mums ir jāatspoguļo pikseļa primārās krāsas sastāvdaļas: R, G un B 8 bitos katrā. Tas nozīmē, ka pikseļa izmērs ir 24 biti.
Katrs pikselis tiek nepārtraukti saglabāts kadru bufera atmiņas vietās.
Pieņemsim, ka parādāmā attēla izmērs ir 800x600 pikseļi.
Tāpēc nepieciešamais kadra buferis ir 800x600 = 480000 x 24 bitu atmiņa
Kopējais atmiņas izmērs ir aptuveni 800x600x24 = aptuveni 1400 kB.
Ja attēls ir melnbalts, 800x600x1 = aptuveni 60 kB apm.
Bloķētās RAM var izmantot, lai attēlotu kadru buferi Xilinx FPGA.
4. solis: piezīmes
- Atkarībā no izvēlētā DAC, VGA kontrolierim ir nepieciešami papildu signāli. Esmu izmantojis ADV7125.
- Pirms VGA displeja braukšanas pievienojiet cikla aizkavēšanos, izmantojot flip-flops VSYNC un HSYNC. Tas ir saistīts ar DAC un atmiņas latentumu. Pikseļu signāliem jābūt sinhronizētiem ar HSYNC un VSYNC. Manā gadījumā tā bija 2 ciklu kavēšanās.
- Ja noteiktā izmēra kadru buferi nevar izveidot FPGA, jo ir ierobežots bloka izmēra ierobežojums, attēla attēlošanai izmantojiet mazāku atmiņu un vienkārši rediģējiet kodu, lai pārietu uz adresi uz pieejamās atmiņas robežas, nevis pilna kadra robežas. Tas atkārtos vienu un to pašu attēlu visā ekrānā. Vēl viena metode ir pikseļu mērogošana, kurā katrs pikselis tiek atkārtots, lai parādītu visu attēlu pilnekrāna režīmā ar mazāku izšķirtspēju. To var izdarīt, kodā pielāgojot adreses palielināšanas loģiku.
- IP ir pilnībā pārnēsājams visos FPGA, un tā laiks ir pārbaudīts līdz 100 MHz Virtex-4 FPGA.
5. darbība. Pievienotie faili
RAR satur:
- VGA kontrollera kods
- VGA standartu PDF faili.
Ieteicams:
Vienkārša četrvirzienu komplekta asociatīvā kešatmiņas kontroliera dizains VHDL: 4 soļi
Vienkārša četrvirzienu komplekta asociatīvā kešatmiņas kontroliera dizains VHDL: Manā iepriekšējā pamācībā mēs redzējām, kā izveidot vienkāršu tieši kartētu kešatmiņas kontrolieri. Šoreiz mēs ejam soli uz priekšu. Mēs izstrādāsim vienkāršu četrvirzienu asociēto kešatmiņas kontrolieri. Priekšrocība ? Mazāk izlaiduma rādītājs, bet par perfo cenu
Programmējama pārtraukuma kontroliera dizains VHDL: 4 soļi
Programmējama pārtraukuma kontrollera dizains VHDL: esmu pārsteigts par šāda veida atbildēm, ko saņemu šajā emuārā. Paldies puišiem, ka apmeklējāt manu emuāru un motivējāt mani dalīties savās zināšanās ar jums. Šoreiz es iepazīstināšu ar cita interesanta moduļa dizainu, ko redzam visos SOC - pārtraukt C
Vienkārša kešatmiņas kontroliera dizains VHDL: 4 soļi
Vienkārša kešatmiņas kontroliera dizains VHDL: Es rakstu šo pamācību, jo man bija nedaudz grūti iegūt kādu atsauces VHDL kodu, lai uzzinātu un sāktu izstrādāt kešatmiņas kontrolieri. Tāpēc es pats no jauna izveidoju kešatmiņas kontrolieri un veiksmīgi to pārbaudīju FPGA. Man ir p
I2C Master dizains VHDL: 5 soļi
I2C Master dizains VHDL: Šajā pamācībā tiek apspriesta vienkārša I2C meistara izstrāde VHDL. PIEZĪME: noklikšķiniet uz katra attēla, lai redzētu pilnu attēlu
Vienkārša un jaudīga roktura kontroliera salikšana- pamatojoties uz Micro: Bit: 10 soļi (ar attēliem)
Kā salikt vienkāršu un jaudīgu roktura kontrolieri- pamatojoties uz Micro: Bit: roktura nosaukums ir Handlebit. Forma ir rokturis, un tas izskatās ļoti foršs! Tagad mēs varam ieviest ierakstu par rokturi, turpināsim