资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
用verilog编写fpga的vga显示()VGA工业标准是640x480x60Hz,主要有5个信号,即三个颜色信号R/G/B、行同步信号HS和场同步信号VS。它是从左上角开始一行接一行的扫描,扫描完一屏后又回到左上角扫描。标准要求是场频59.94Hz,行频31469Hz,时钟频率25.175MHz这是Altera的DE2开发板上自带的演示程序。可以先搜一下VGA工业标准的时序图,再看这个代码就会很简单,就不注释了。弄清楚行同步、场同步、前肩、后肩,一切都easymodule VGA_Controller( / Host Side iRed, iGreen, iBlue, oRequest, / VGA Side oVGA_R, oVGA_G, oVGA_B, oVGA_H_SYNC, oVGA_V_SYNC, oVGA_SYNC, oVGA_BLANK, oVGA_CLOCK, / Control Signal iCLK, iRST_N );include VGA_Param.h/ Host Sideinput 9:0 iRed;input 9:0 iGreen;input 9:0 iBlue;output reg oRequest;/ VGA Sideoutput 9:0 oVGA_R;output 9:0 oVGA_G;output 9:0 oVGA_B;output reg oVGA_H_SYNC;output reg oVGA_V_SYNC;output oVGA_SYNC;output oVGA_BLANK;output oVGA_CLOCK;/ Control Signalinput iCLK;input iRST_N;/ Internal Registers and Wiresreg 9:0 H_Cont;reg 9:0 V_Cont;reg 9:0 Cur_Color_R;reg 9:0 Cur_Color_G;reg 9:0 Cur_Color_B;wire mCursor_EN;wire mRed_EN;wire mGreen_EN;wire mBlue_EN;assign oVGA_BLANK = oVGA_H_SYNC & oVGA_V_SYNC;assign oVGA_SYNC = 1b0;assign oVGA_CLOCK = iCLK;assign oVGA_R = ( H_Cont=X_START & H_Cont=Y_START & V_Cont=X_START & H_Cont=Y_START & V_Cont=X_START & H_Cont=Y_START & V_ContY_START+V_SYNC_ACT ) ? iBlue : 0;/ Pixel LUT Address Generatoralways(posedge iCLK or negedge iRST_N)begin if(!iRST_N) oRequest =X_START-2 & H_Cont=Y_START & V_ContY_START+V_SYNC_ACT ) oRequest = 1; else oRequest = 0; endend/ H_Sync Generator, Ref. 25.175 MHz Clockalways(posedge iCLK or negedge iRST_N)begin if(!iRST_N) begin H_Cont = 0; oVGA_H_SYNC = 0; end else begin / H_Sync Counter if( H_Cont H_SYNC_TOTAL ) H_Cont = H_Cont+1; else H_Cont = 0; / H_Sync Generator if( H_Cont H_SYNC_CYC ) oVGA_H_SYNC = 0; else oVGA_H_SYNC = 1; endend/ V_Sync Generator, Ref. H_Syncalways(posedge iCLK or negedge iRST_N)begin if(!iRST_N) begin V_Cont = 0; oVGA_V_SYNC = 0; end else begin / When H_Sync Re-start if(H_Cont=0) begin / V_Sync Counter if( V_Cont V_SYNC_TOTAL ) V_Cont = V_Cont+1; else V_Cont = 0; / V_Sync Generator if( V_Cont V_SYNC_CYC ) oVGA_V_SYNC = 0; else oVGA_V_SYNC = 1; end endendendmodule显示器因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备。在 FPGA 的设计中可以使用很少的资源,就产生 VGA各种控制信号。这个示例在 RHicSP2200B FPGA 开发板/学习板上使用 VGA 接口在显示器上显示了文字以及简单的图形,可以作为VGA 显示设计的参考.显示器术语像素与分辨率 显示器的显示方式有两种 : A/N(Alphabet/Number:字符/数字)显示方式 和 APA(All Point Addressable:全点寻址) 显示方式,即文本显示方式和图形显示方 式。A/N 方式已淘汰不用,目前微机都采用 APA 图形方式。 显示器上输出的一切信息,包括数值、文字、表格、图象、动画等等,都是由光点(即像素)构成的。组成屏幕显示画面的最小单位是像素,像素之间的最小距离为点距(Pitch)。点距越小像素密度越大,画面越 清晰。显示器的点距有 0.31mm、0.28mm、0.24mm、0.22mm 等多种。 分辨率指整屏显示的像素的多少,是衡量显示器的一个常用指标。这同屏幕尺寸及点距密切相关,可用屏幕实际显示的尺寸与 点距相除来近似求得。点距为 0.28mm 的 15 英寸显示器,分辨率最高为 1024768。显示器尺寸 显示器屏幕尺寸以对角线来度量,常用的显示器有 14、15、17、19、21 英寸等。 显示器水平方向长度与垂直方向高度之比 一般为 4:3。扫描频率 显示器采用光栅扫描方式,即轰击荧光屏的电子束在 CRT 屏幕上从左到右(受水 平同步信号 HSYNC 控制)、从上到下(受垂直同步信号 VSYNC 控制)做有规律的移动。光栅扫描又分逐行扫描和隔行扫描。电子束采用光栅扫描方式,从屏幕左上角一点开始,向右逐点进行扫描,形成一条水平线;到达最右端后,又回到下一条水平线的左端,重复上面的过程;当电子束完成右下角一点的扫描后,形成一帧。此后,电子束又回到左上方起点,开始下一帧的扫描。这种方法也就是常说的逐行扫描显示。 而隔行扫描指电子束在扫描时每隔一 行扫一线,完成一屏后再返回来扫描剩下的 线,这与电视机的原理一样。隔行扫描的显示器比逐行扫描闪烁得更厉害,也会让使用者的眼睛更疲劳。目前微机所用显示器几乎都是逐行扫描。 完成一行扫描所需时间称为水平扫描时间,其倒数称为行频率;完成一帧(整屏)扫描所需的时间称为垂直扫描时间,其倒数为垂直扫描频率,又称刷新频率,即刷新一屏的频率。常见的有 60Hz、75Hz 等,标准 VGA 显示的场频60Hz,行频为31.5kHz。显示带宽 带宽则指显示器可以处理的频率范围。如果 60Hz 刷新频率的 VGA 方式,其带宽达 64048060=18.4MHz;70Hz 刷新频率1024768 分辨率的 SVGA 方式,其带宽达102476870=55.1MHz。 早期的显示器频率固定。现在流行的多 屏显示器采用自动跟踪技术,使显示器的扫描频率自动与显示卡的输出同步,达到较宽 的适用范围。显示卡术语 一个像素点可有多种颜色,由表示该像素的二进位数(又称像素的位宽)决定。像 素位宽为 8bit,则每个像素有 28=256 种颜色;位宽为16bit 则有 216=65536 种颜色, 位宽为 24bit 则有 224 即一千七百多万种颜色。显示卡内的D/A(数/模)转换电路将每 个像素的位宽(二进位整数)转换成对应亮度的 R、G、B(红、绿、蓝)模拟信号,控制屏幕上相应的三色荧光点发光,产生所要求的颜色。 随着 PC 机的不断更新换代,显示控制卡(即显示适配器)的标准也不断发展。从最初的 MDA(单色显示适配器)CGA(彩色图形显示适配器)EGA(增强型图形适配器)VGA(视频图形阵列适配器)。VGA 一改以前显示卡采用的数字视频信号输出,而用模拟视频信号输出,VGA 卡内的 D/A 转换器将数字信号转换为控制 R、G、B 三原色的模拟信号,使像素色彩变化非常平滑,更适合人的视觉感受。性能高于VGA 并与之兼容的显示适配 卡有 TVGA 和 SVGA。随着 Windows 的普及和对快速度、多色彩、高分辨率的需要, 一些厂家在 SVGA 芯片中增加更多的硬件 来支持 Windows 的加速,这类显示适配器一般被称作 AVGA(Accelerated VGA:加速VGA)。目前大多数微机上的显示卡都属于 AVGA 类型。 显示卡主要由图形处理芯片、视频存储器及 BIOS 芯片等组成。一般 AVGA 类型显示卡的控制器由单块 AVGA 芯片充当,其中包含的图形加速控制器对提升图形功能至关重要。显示卡的性能主要取决于卡上使用的图形芯片。早期的图形芯片没有帧缓冲器,有关帧的操作都要由 CPU去处理,降低了显示速度。现在多数显示卡上都
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号