Taula de continguts:
- Pas 1: interfície d'un controlador VGA
- Pas 2: integració del controlador VGA amb una pantalla VGA
- Pas 3: disseny de la memòria intermèdia de marcs
- Pas 4: notes
- Pas 5: fitxers adjunts
Vídeo: Disseny d'un controlador VGA simple en VHDL i Verilog: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
En aquest instructiu, dissenyarem un senzill controlador VGA a RTL. El controlador VGA és el circuit digital dissenyat per conduir pantalles VGA. Es llegeix des de Frame Buffer (memòria VGA) que representa el marc que es mostrarà i genera les dades necessàries i els senyals de sincronització per a la visualització.
Si esteu cercant el codi de verilog de Verilog / System: visiteu el meu bloc VGA Controller and Video System a Verilog
Pas 1: interfície d'un controlador VGA
A continuació es mostren els principals senyals d’interfície d’un controlador VGA
- Rellotge Pixel o VGA
- Senyals HSYNC i VSYNC
Per a la pantalla VGA escollida, primer heu de calcular la freqüència de rellotge de píxels necessària per conduir-la. Depèn de 3 paràmetres: píxels horitzontals totals, píxels verticals totals, percentatge d’actualització de pantalla.
Normalment, F = THP * TVP * Taxa d’actualització
Trobareu la documentació sobre el rellotge de píxels necessària per a diverses pantalles VGA al RAR adjunt.
Els senyals HSYNC i VSYNC es generen a partir del rellotge Pixel. La sincronització dels senyals HSYNC i VSYNC depèn del nombre de paràmetres: Horitzontal i Vertical Frontporch, Horizontal and Vertical Backporch, Horitzontal and Vertical Display Pixels, Horizontal and Vertical Pulse Ampls and Polarities.
Aquests paràmetres estan estandarditzats per a una pantalla VGA triada. Cerqueu aquests documents al RAR adjunt.
Aquests paràmetres són paràmetres configurables a la nostra IP del controlador VGA.
Pas 2: integració del controlador VGA amb una pantalla VGA
La figura mostra com integrar el controlador VGA amb una pantalla VGA. Necessiteu dos components més per completar el sistema:
- Frame Buffer: memòria que conté el marc que es mostrarà.
- Video DAC: DAC que converteix les dades digitals RGB i condueix la pantalla VGA amb senyals analògics RGB al nivell de voltatge adequat.
Un dels DAC de vídeo més senzills i populars és l’ADV7125. És un DAC de 8 bits que converteix les paraules digitals RGB en senyals analògics de 0-0,7 V i condueix la pantalla VGA.
Pas 3: disseny de la memòria intermèdia de marcs
És la memòria que "emmagatzema" la imatge que es mostrarà. Normalment és una memòria RAM o, de vegades, una ROM. Discutirem com dissenyar un buffer de fotogrames per representar una imatge. El buffer de trameses transmet aquesta informació digital a un DAC de vídeo per ordre del controlador VGA.
Primer hem de decidir la profunditat de píxels necessària. Decideix la qualitat de la imatge, la varietat de colors que pot representar un píxel. Per a un DAC de 8 bits, hem de representar els components de color primaris d’un píxel: R, G i B en 8 bits cadascun. Vol dir que un píxel és de 24 bits.
Cada píxel s'emmagatzema de manera contigua a les ubicacions de memòria del búfer de trames.
Suposem que la imatge que es mostrarà és de 800 x 600 píxels.
Per tant, la memòria intermèdia necessària és de 800x600 = 480000 x 24 bits de memòria
La mida total de la memòria és de 800x600x24 = 1400 kB aprox.
Si es tracta d’una imatge en blanc i negre, 800x600x1 = 60 kB aprox.
Bloquejar RAM potser s’utilitza per representar un búfer de trama als FPGA de Xilinx.
Pas 4: notes
- Es necessiten senyals addicionals al controlador VGA en funció del DAC triat. He utilitzat ADV7125.
- Afegiu retards de cicle a través de xancles a VSYNC i HSYNC abans de conduir la pantalla VGA. Això es deu a les latències DAC i Memory. Els senyals de píxels s'han de sincronitzar amb HSYNC i VSYNC. En el meu cas, va ser un retard de 2 cicles.
- Si la memòria intermèdia de trameses de mida determinada no es pot dissenyar a FPGA a causa de la limitació de la mida de la memòria RAM, utilitzeu memòria més petita per representar la imatge i simplement editeu el codi per passar la direcció al límit de la memòria disponible, en lloc del límit del fotograma complet. Això replicarà la mateixa imatge una i altra vegada al llarg de tota la pantalla. Un altre mètode és l’escala de píxels en què cada píxel es replica per mostrar tota la imatge a pantalla completa, amb una resolució menor. Això es pot fer ajustant la lògica d'increment d'adreces al codi.
- La IP és completament portàtil a tots els FPGA i té un temps verificat fins a 100 MHz a Virtex-4 FPGA.
Pas 5: fitxers adjunts
El RAR conté:
- Codi del controlador VGA
- PDF d’estàndards VGA.
Recomanat:
Disseny d'un controlador de memòria cau associatiu conjunt de quatre vies en VHDL: 4 passos
Disseny d'un controlador de memòria cau associatiu de configuració simple de quatre direccions en VHDL: en el meu instructable anterior, vam veure com dissenyar un controlador de memòria cau mapat directe. Aquesta vegada, fem un pas endavant. Dissenyarem un senzill controlador de memòria cau associativa de quatre vies. Avantatge ? Menys percentatge de missatges, però a costa de perfos
Disseny d'un controlador d'interrupció programable en VHDL: 4 passos
Disseny d'un controlador d'interrupció programable en VHDL: estic aclaparat pel tipus de respostes que rebo en aquest bloc. Gràcies nois per visitar el meu bloc i motivar-me a compartir el meu coneixement amb vosaltres. Aquesta vegada, presentaré el disseny d’un altre mòdul interessant que veiem a tots els SOCs: Interrupt C
Disseny d'un controlador de memòria cau simple en VHDL: 4 passos
Disseny d'un controlador de memòria cau simple a VHDL: escric això instructiu, perquè em va semblar una mica difícil obtenir algun codi VHDL de referència per aprendre i començar a dissenyar un controlador de memòria cau. Així que vaig dissenyar un controlador de memòria cau des de zero i el vaig provar amb èxit a FPGA. Tinc p
Disseny del màster I2C en VHDL: 5 passos
Disseny del màster I2C en VHDL: en aquest instructiu, es parla del disseny d’un màster I2C simple en VHDL. NOTA: feu clic a cada imatge per veure la imatge completa
Disseny de SPI Master en VHDL: 6 passos
Disseny de SPI Master en VHDL: en aquesta instrucció, dissenyarem un SPI Bus Master des de zero en VHDL