Indholdsfortegnelse:
- Trin 1: Grænseflade til en VGA -controller
- Trin 2: Integrering af VGA -controller med en VGA -skærm
- Trin 3: Design af rammebuffer
- Trin 4: Noter
- Trin 5: Vedhæftede filer
![Design af en simpel VGA -controller i VHDL og Verilog: 5 trin Design af en simpel VGA -controller i VHDL og Verilog: 5 trin](https://i.howwhatproduce.com/images/002/image-4965-32-j.webp)
Video: Design af en simpel VGA -controller i VHDL og Verilog: 5 trin
![Video: Design af en simpel VGA -controller i VHDL og Verilog: 5 trin Video: Design af en simpel VGA -controller i VHDL og Verilog: 5 trin](https://i.ytimg.com/vi/QFFGWRcZMBM/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
![Design af en simpel VGA -controller i VHDL og Verilog Design af en simpel VGA -controller i VHDL og Verilog](https://i.howwhatproduce.com/images/002/image-4965-33-j.webp)
I denne instruktive vil vi designe en simpel VGA -controller i RTL. VGA Controller er det digitale kredsløb designet til at drive VGA -skærme. Den læser fra Frame Buffer (VGA -hukommelse), der repræsenterer den ramme, der skal vises, og genererer nødvendige data og synkroniseringssignaler til visningsformål.
Hvis du leder efter Verilog/System verilog -kode: Besøg min blog VGA -controller og videosystem i Verilog
Trin 1: Grænseflade til en VGA -controller
Følgende er de vigtigste grænsefladesignaler i en VGA -controller
- Pixel Clock eller VGA Clock
- HSYNC og VSYNC signaler
For den valgte VGA -skærm skal du først beregne frekvensen af Pixel Clock, der er nødvendig for at køre den. Det afhænger af 3 parametre: Total vandrette pixels, Total lodrette pixels, Skærmopdateringshastighed.
Typisk er F = THP * TVP * Opdateringshastighed
Find den dokumentation om pixelur, der er nødvendig til forskellige VGA -skærme, i den vedhæftede RAR.
HSYNC- og VSYNC -signaler genereres fra Pixel -uret. Tidspunktet for HSYNC- og VSYNC -signaler afhænger af antallet af parametre: Horisontal og lodret frontporch, vandret og lodret bagporch, vandret og lodret displaypixel, vandret og lodret synkroniseringspulsbredde og polaritet.
Disse parametre er standardiseret for et valgt VGA -display. Find disse dokumenter i den vedhæftede RAR.
Disse parametre er konfigurerbare parametre i vores VGA Controller IP.
Trin 2: Integrering af VGA -controller med en VGA -skærm
![Integrering af VGA -controller med en VGA -skærm Integrering af VGA -controller med en VGA -skærm](https://i.howwhatproduce.com/images/002/image-4965-34-j.webp)
Figuren viser, hvordan man integrerer VGA -controlleren med et VGA -display. Du har brug for yderligere to komponenter for at fuldføre systemet:
- Frame Buffer: Hukommelse, der holder rammen, der skal vises.
- Video DAC: DAC, der konverterer digitale RGB -data og driver VGA -skærmen med analoge RGB -signaler ved passende spændingsniveau.
En af de enkleste og mest populære Video DAC'er er ADV7125. Det er en 8-bit DAC, der konverterer digitale RGB-ord til 0-0,7 V analoge signaler og driver VGA-displayet.
Trin 3: Design af rammebuffer
Det er hukommelsen, der 'gemmer' det billede, der skal vises. Det er typisk en RAM eller nogle gange ROM. Vi vil diskutere, hvordan man designer en rammebuffer til at repræsentere et billede. Rammebuffer videregiver disse digitale oplysninger til en Video DAC på kommando fra VGA Controller.
Først skal vi bestemme den nødvendige pixeldybde. Det bestemmer billedkvaliteten, de forskellige farver en pixel kan repræsentere. For en 8-bit DAC skal vi repræsentere de primære farvekomponenter i en pixel: R, G og B i hver 8 bits. Det betyder, at en pixel er 24-bit.
Hver pixel gemmes på en sammenhængende måde i Frame Buffer -hukommelsessteder.
Antag, at et billede, der skal vises, er 800x600 pixels.
Derfor er Frame Buffer nødvendig 800x600 = 480000 x 24 bit hukommelse
Hukommelsens samlede størrelse er 800x600x24 = 1400 kB ca.
Hvis sort -hvidt billede, 800x600x1 = 60 kB ca.
Blok -RAM'er bruges måske til at repræsentere en rammebuffer i Xilinx FPGA'er.
Trin 4: Noter
- Yderligere signaler er nødvendige på VGA -controlleren afhængigt af den valgte DAC. Jeg har brugt ADV7125.
- Tilføj cyklusforsinkelser gennem flip-flops på VSYNC og HSYNC, før du kører VGA-skærm. Dette er på grund af DAC og hukommelsesforsinkelser. Pixelsignalerne skal synkroniseres med HSYNC og VSYNC. I mit tilfælde var det 2 cyklus forsinkelse.
- Hvis rammebuffer af en given størrelse ikke kan designes på FPGA på grund af blokrammestørrelsesbegrænsning, skal du bruge mindre hukommelse til at repræsentere billedet og blot redigere koden for at rulle adressen på den tilgængelige hukommelsesgrænse frem for hele rammens grænse. Dette vil replikere det samme billede igen og igen langs hele skærmen. En anden metode er pixelskalering, hvor hver pixel replikeres for at vise hele billedet i fuld skærm i en mindre opløsning. Dette kan gøres ved at tilpasse adressens inkrementationslogik i koden.
- IP'en er fuldstændig bærbar på tværs af alle FPGA'er og er timing-verificeret op til 100 MHz på Virtex-4 FPGA.
Trin 5: Vedhæftede filer
RAR'en indeholder:
- VGA -controller -kode
- PDF -filer med VGA -standarder.
Anbefalede:
Sådan laver du en simpel Nintendo LABO -målpraksis: 13 trin
![Sådan laver du en simpel Nintendo LABO -målpraksis: 13 trin Sådan laver du en simpel Nintendo LABO -målpraksis: 13 trin](https://i.howwhatproduce.com/images/001/image-992-j.webp)
Sådan laver du en simpel Nintendo LABO -målpraksis: Min søster og jeg købte for nylig en Nintendo Switch. Så selvfølgelig har vi nogle spil at følge med på. Og en af dem var Nintendo LABO Variety Kit. Jeg faldt så til sidst over Toy-Con Garage. Jeg prøvede nogle ting, og det var da jeg
Design af en programmerbar afbrydelsescontroller i VHDL: 4 trin
![Design af en programmerbar afbrydelsescontroller i VHDL: 4 trin Design af en programmerbar afbrydelsescontroller i VHDL: 4 trin](https://i.howwhatproduce.com/images/012/image-33359-j.webp)
Design af en programmerbar afbrydelsescontroller i VHDL: Jeg er overvældet over den slags svar, jeg får i denne blog. Tak fyre for at besøge min blog og motivere mig til at dele min viden med jer. Denne gang vil jeg præsentere designet af et andet interessant modul, vi ser i alle SOC'er - Interrupt C
Design af I2C Master i VHDL: 5 trin
![Design af I2C Master i VHDL: 5 trin Design af I2C Master i VHDL: 5 trin](https://i.howwhatproduce.com/images/002/image-4092-42-j.webp)
Design af I2C Master i VHDL: I denne instruktive diskuteres design af en simpel I2C master i VHDL.BEMÆRK: klik på hvert billede for at se fuldt billede
Design af SPI Master i VHDL: 6 trin
![Design af SPI Master i VHDL: 6 trin Design af SPI Master i VHDL: 6 trin](https://i.howwhatproduce.com/images/002/image-5866-8-j.webp)
Design af SPI Master i VHDL: I denne instruktive skal vi designe en SPI Bus Master fra bunden i VHDL
Design af UART i VHDL: 5 trin
![Design af UART i VHDL: 5 trin Design af UART i VHDL: 5 trin](https://i.howwhatproduce.com/images/002/image-5928-40-j.webp)
Design af UART i VHDL: UART står for Universal Asynchronous Receiver Transmitter. Det er den mest populære og enkleste serielle kommunikationsprotokol. I denne instruktør vil du lære at designe et UART -modul i VHDL