基于FPGA的VGA显示设计报告_第1页
基于FPGA的VGA显示设计报告_第2页
基于FPGA的VGA显示设计报告_第3页
基于FPGA的VGA显示设计报告_第4页
基于FPGA的VGA显示设计报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、正文一,vga时序标准vga是一种常用的显示输出接口,采用行场扫描控制结合rgb三色合成原理,输出显示信号。每个vga接口为15针接口,分三行排布,每行5针。如图所示: 图1.1 vga接口15针并未全部使用,有效的信号线共5根,即红绿蓝三基色信号线:r,g,b,每线电压从0v到0.71v变化,表示无色到饱和,依据电平高低,显示颜色的饱和程度。行同步控制信号,hsync,控制每行扫描像素的有效和失效。场同步:vsync,控制场方向,即整个图像显示过程的时间长度,场同步中的显示部分的时间长度,等于每行扫描时间的总和。在不同刷新频率下,显示每个像素的时间是不同的,相同刷新频率下,每个像素显示时间是

2、固定的,所以,不同的每个像素写入时间,导致了分辨率的不同。因为vga的显示是逐行扫描,每行从左到右扫描,到了行尾,回归到下一行的行头,继续向尾部扫描。所以,显示原理是逐次写入每行的像素数据,直到整幅图像显示成功为止。vga显示的数据是不能锁存的,所以必须一次又一次的连续输入数据,72hz的刷新率下,一秒钟显示72幅图像,所以,需要连续写入72幅图像,才能达到一秒的显示效果。所以,vga显示图像,要反反复复写入图像数据,才能得到持续的显示效果。 图1.2 vga接口线序vga显示,无法做到类似于tft液晶屏的定点写入,vga是扫描式暂时显示,所以时序显得尤为重要,时序出现失误,图像会出现走形,无

3、法达到准确效果。而显示的时序控制主要依靠两条数据通道:行同步和场同步,即hsync和vsync,其控制了扫描显示的起点和终点,同时控制扫描起点的时间,通过时间的控制,达到确定的显示效果。具体的控制时序图如下: 图1.3 vga 同步时序vga显示中, 以每个像素写入时间作为fpga时钟周期,所以每个时钟周期写入一组rgb像素值。逐行写入,所以每行数据显示的结果,拼凑成一帧图像,72hz下,每秒显示72帧图像。由于本设计要求静态显示效果,所以,我们只定义一帧的数据,最后无限循环执行即可。行同步信号用一个上升脉冲表示,脉冲以前称为前沿时间,用tfp表示,脉冲后面还有一段时间消隐,叫后沿时间,用tb

4、p表示,场同步信号控制的方式,按时间先后为:上升脉冲,回归低电平,后沿消隐,正常显示时间,前沿消隐,一帧图像显示完毕,上升脉冲以此类推。所以,场同步控制显示时,要注意先留出高电平脉冲时间,即tpulse,接下来留出后沿时间,即tbp,然后开始行同步控制扫描过程,全部显示完毕,要留出前沿时间,即tfp,到达前沿时间之后,不允许进行像素写入,即写入无效。针对行扫描,参照下图时序:图1.4 行同步时序行同步即控制每行扫描过程,扫描由高电平脉冲启动,到脉冲回归低电平,首先要预留出后沿消隐时间,即tbp.之后到了显示部分,即tdisp,每个时钟周期写入一组rgb值,为一个像素的数据。写完一行之后,到了前

5、沿消隐时间,即tfp.这段时间不能写入数据。当tfp过后,下一个扫描周期,从高电平脉冲开始。周而复始,知道到达屏幕最底行。扫描至一帧画面完成。本设计要求网格线为白色,即rgb均为1,其余为黑色,即rgb均为0。由于显示在800x600的分辨率以下,72hz刷新率,需参照具体时序参数。具体参数参照下表:图1.5 800x600 72hz下的vga时序参数二,软件部分1, 建模思路本设计采用过程建模思想,针对时序上的过程,对应进行描述,行同步,场同步之间采用并行,通过计数器分别驱动,此外,显示赋值部分与前两者同样并行,时钟采用系统时钟,50mhz。由于每个时钟周期显示一个像素,而行同步以时钟周期为

6、参照单位,场同步以行扫描次数为参照单位。所以,根据行同步周期与场同步周期,建立两个周期的计数器,分别用来作为行同步控制时间标准和场同步控制时间标准。观察上述图表可以发现,行同步时钟以像素个数来作为时间标准,即以时钟周期个数作为时间参照标准。而场同步,以扫描线的条数作为参照标准,即每次完成一次行扫描,触发场计数一次。在行同步和场同步计数器基础上,再进行时序判断,产生行同步信号和场同步信号。根据时序描述,每次显示开始,要由场同步信号产生6行扫描时间长度,即6x1040个时钟周期的高电平脉冲作为场同步控制信号。场控制信号如下:图1.6 场同步控制信号 vsync如上图,场同步信号占据6行扫描的时间,

7、即tpulse=6x1040,但是并不是意味着过了这个脉冲就立即可以进行行扫描,显示数据,我们发现,接下来出现的是后沿消隐时间,前后沿消隐时间内不允许写入数据,否则显示器会不支持输入的信号,从而无法正常显示。前沿时间,后沿时间,和控制脉冲共同组成消隐时间,这段时间内,扫描点从右下角返回左上角,即从画面终点回到扫描显示的起点。所以,消隐时间之内,不允许进行像素数据写入。所以在脉冲控制时间之后,还要经过23行扫描时间的后沿消隐时间,这段时间内不允许写入像素数据,所以要约束时序,即经过23x1040个时钟周期的后沿消隐时间,才到达允许显示的时间,即tdisp。允许显示的时间,即tdisp,数值上,等

8、于600行扫描过程的全部时间总和。接下来分析行扫描控制过程,行扫描控制信号模式和场扫描控制信号模式必须一致,两者可采用低电平脉冲触发,也可以用高电平脉冲触发。本次设计采用高电平触发。每次行扫描过程需要1040个脉冲周期,其中有效显示像素的时间为800个像素周期,即分辨率为800x600。首先行扫描同步信号hsync发出一个高电平脉冲,占据120个周期,即hor sync time。之后是后沿消隐时间,占据64个时钟周期,所以显示要从第185个时钟周期开始,由于计数器从0开始,所以要从第184个计数周期开始写入像素数据。写入800组rgb数值,写到第984个时钟周期为止。场同步要从第29行扫描开

9、始,到第629行扫描为止。行同步和场同步计数器设计好后,要进行同步信号输出控制,即0119时钟周期内进行高电平输出,从第120周期开始回归低电平,开始行同步控制。场同步要从05行进行高电平输出,开始场同步控制,第6行开始回归低电平。之后要进行设计数据部分,设计思想就是确定画面中的主要显示点,即确定在第几行的第几点显示数据,判断显示数值的位置范围,其余部分为背景色,统一赋值。采用依次判断思想。顶层模块,端口部分,共2个1位输入端口,分别是时钟和复位输入。输出端口,2个一位的输出端口,即行同步和场同步。一个三位的输出端口,即rgb信号输出端口,每条数据线上0表示不显示,1表示满色显示。rgb为00

10、0显示黑色,111显示白色。2, 部分核心代码分析always(posedge clk) 时钟上升沿触发 begin 顺序执行 if(rst) 复位 vcnt = 0; 从0行开始执行 else if(vcnt=665) 整个场同步过程占据666行 vcnt = 0; else if(hcnt=1039) 当每行扫描完成,即经过1040个时钟周期后,加1 vcnt = vcnt + 1; end output reg2:0 rgb 这个端口定义表示rgb为输出寄存器,具备两个属性 assign hs = (hcnt120) ? 1 : 0;0119时钟周期内高电平,表示行同步信号 assign

11、 vs = (vcnt= 30 & vcnt =30 & vcnt=184 & hcnt984) 0到5行全行显示1 rgb =85 & vcnt=184 & hcnt984) 同上 rgb =140 & vcnt=184 & hcnt984) rgb =195 & vcnt=184 & hcnt984) rgb =250 & vcnt=184 & hcnt984) rgb =305 & vcnt=184 & hcnt984) rgb =360 & vcnt=184 & hcnt984) rgb =415 & vcnt=184 & hcnt984) rgb =470 & vcnt=184 &

12、hcnt984) rgb =525 & vcnt=184 & hcnt984) rgb =580 & vcnt=184 & hcnt984) rgb =184 & hcnt194) 数值是经过计算,线宽10像素 rgb =263 & hcnt273) rgb =342 & hcnt352) rgb =421 & hcnt431) rgb =500 & hcnt510) rgb =579 & hcnt589) rgb =658 & hcnt668) rgb =737 & hcnt747) rgb =816 & hcnt826) rgb =895 & hcnt905) rgb =974 & hcn

13、t984) rgb = 3b111;/white其余部分为黑色 else rgb = 3b0; end三, 硬件部分1, 管脚锁定根据开发板使用手册指定的管脚锁定方式,用pace软件进行管脚锁定。 图1.7 管脚锁定2, 连线调试编译产生bit文件后,用impact下载到开发板,断电,连接vga显示器,开发板上电,显示器显示10x10的白色方格,其余部分为黑色。四, 附录本设计全部代码:odule vga_ctrl( input clk, input rst, output hs, output vs, output reg2:0 rgb );/ 行/场计数器/ reg 10:0hcnt;/行

14、方向计数器 reg 9:0 vcnt;/场方向计数器 /水平方向计数器 always(posedge clk) begin if(rst) hcnt = 0; else if(hcnt=1039) hcnt = 0; else hcnt = hcnt + 1; end /垂直方向计数器 always(posedge clk) begin if(rst) vcnt = 0; else if(vcnt=665) vcnt = 0; else if(hcnt=1039) vcnt = vcnt + 1; end assign hs = (hcnt120) ? 1 : 0;/行同步信号 assign

15、vs = (vcnt= 50 & vcnt =50 & vcnt=184 & hcnt984) rgb =105 & vcnt=184 & hcnt984) rgb =160 & vcnt=184 & hcnt984) rgb =215 & vcnt=184 & hcnt984) rgb =270 & vcnt=184 & hcnt984) rgb =325 & vcnt=184 & hcnt984) rgb =380 & vcnt=184 & hcnt984) rgb =435 & vcnt=184 & hcnt984) rgb =490 & vcnt=184 & hcnt984) rgb =545 & vcnt=184 & hcnt984) rgb =600 & vcnt=184 & hcnt984) rgb =184 & hcnt194) rgb =263 & hcnt273) rgb =342 & hcnt352) rgb =421 & hcnt431) rgb =500 & hcnt510) rgb =579 & hcnt589) rgb =658 & hcnt668) rgb =737 & hcnt747) r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论