第一范文网 - 专业文章范例文档资料分享平台

VGA彩条信号和VGA图像显示控制设计器

来源:用户分享 时间:2025/6/18 8:11:22 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

FPGA实验报告

关于VGA彩条信号和VGA图像显示控制设计器的学习报告

1. VGA彩条信号发生器

VGA(Vedio Graphics Array)显示器采用光栅扫描方式,即轰击荧光屏的电子束在CRT显示器上从左到右,从上到下有规律的移动。 其水平移动受到水平同步信号HSYNC控制。 垂直移动受到垂直同步信号VSYNC控制。 完成一行的扫描时间称为水平扫描时间,其倒数称为行频率。完成一帧(整屏)扫描的时间称为垂直扫描时间,其倒数称为场频,又称为刷新率。

VGA显示器总是从屏幕的坐上角开始扫描,先水平扫描完一行(640个像素)到最右边,然后再回到最左边(期间CRT对电子束作行消隐),换下一行,继续扫描,知道扫描到屏幕的最右下角(480行),这样就扫描完了一帧图像,然后再回到屏幕的最左上角(期间CRT对电子束进行场消隐)。这样的扫描在标准的VGA模式(640*480@60HZ)下,每秒需要扫描60帧,这样算来每一个像素点的扫描周期大约为40ns。

VGA显示器与FPGA间通过VGA接口进行连接,(也叫D-sub接口)。

VGA显示器上的每个像素点可有多种颜色,由三基色信号R,G,B组合构成,VGA在指定色版颜色时,一个颜色频道有6个bit,红、绿、蓝各有64种不同的变化,因此总共有 262,144 种颜色。在这其中的任何 256 种颜色可以被选为色版颜色(而这 256 种的任何 16 种可以用来显示 CGA 模式的色彩)。如R,G,B信号分别用多位表示的话,则屏幕上现实的颜色会大大丰富,但会好用更多的存储空间,另外还需要配置相应D/A

转换器。本例采用三位R,G,B信号。

颜色 黑 蓝 绿 品 红 青 黄 白 R 0 0 0 0 1 1 1 1 G 0 0 1 1 0 0 1 1 B 0 1 0 1 0 1 0 1

行扫描时序要求(单位:像素,即输出一个像素Pixel的时间间隔) 行同步头 行图像 行周期 对应位置 H_tf H_ta H_tb H_tc H_td H_te H_tg 时间Pixels 8 96 40 8 640 8 800 场扫描时序要求(单位:行,即输出一行Line的时间间隔) 行同步头 行图像 行周期 对应位置 V_tf V_ta V_tb V_tc V_td V_te V_tg 时间Lines 2 2 25 8 480 8 525 根据以上的行,场扫描时许的要求,我们可设置两个计数器,一个行扫描计数

器hcnt,进行模800计数;另一个是场扫描计数器vcnt,进行模525计数。行扫描计数器的驱动时钟频率(像素的输出频率)按照VGA的工业标准的25.175MHZ。场扫描计数器以行同步信号hs为驱动时钟,当hs下降沿到来时进行计数。设置完计数器后,就可对行图像H_td和场图像V_td所对应的640*480个点赋值。

具体实现的程序如下:

/*clock50MHZ:输入时钟,采用50MHZ; key:彩条选择信号; rgb:输出三基色; hs:行同步信号; vs:场同步信号

为观察计数器的计数情况,把hcnt和vcnt加入到了输出信号,实际不应加入到输出信号*/

module color(clock50MHZ,key,rgb,hs,vs,reset,hcnt,vcnt); input clock50MHZ,reset; input[1:0]key; output hs,vs; output[2:0]rgb;

output[9:0]hcnt,vcnt; reg hs,vs,clock;

reg[2:0]rgb,rgbx,rgby; reg[9:0]hcnt,vcnt;

parameter h_ta=96,h_tb=40,h_tc=8,h_td=640,h_te=8,h_tf=8,h_tg=800; parameter v_ta=2,v_tb=25,v_tc=8,v_td=480,v_te=8,v_tf=2,v_tg=525;

always@(posedge clock50MHZ) //2分频25MHZ begin if(!reset)

begin hs<=0;vs<=0;hcnt<=0;vcnt<=0;rgb<=0;clock<=0;end else clock<=~clock;end

always@(posedge clock) //行计数800 begin if(hcnt==h_tg-1) hcnt<=0; else hcnt<=hcnt+1;end

always@(negedge hs) //场计数525 begin if(vcnt==v_tg-1) vcnt<=0; else vcnt<=vcnt+1;end

always@(posedge clock) //产生行同步信号 begin if(hcnt<=h_ta-1) hs<=0; else hs<=1;end

always@(vcnt) /产生场同步信号

begin if(vcnt<=v_ta-1) vs<=0; else vs<=1;end

always@(posedge clock)

begin if(hcnt<=h_ta+h_tb+h_tc-1) rgbx<=3'b000;//竖彩条 else if(hcnt<=h_ta+h_tb+h_tc+80-1) rgbx<=3'b001;//蓝 else if(hcnt<=h_ta+h_tb+h_tc+160-1) rgbx<=3'b010;//绿 else if(hcnt<=h_ta+h_tb+h_tc+240-1) rgbx<=3'b011;//品 else if(hcnt<=h_ta+h_tb+h_tc+320-1) rgbx<=3'b100;//红 else if(hcnt<=h_ta+h_tb+h_tc+400-1) rgbx<=3'b101;//青 else if(hcnt<=h_ta+h_tb+h_tc+480-1) rgbx<=3'b110;//黄 else if(hcnt<=h_ta+h_tb+h_tc+560-1) rgbx<=3'b111; //白 else if(hcnt<=h_ta+h_tb+h_tc+640-1) rgbx<=3'b000;//黑 else rgbx<=3'b000;//?

if(vcnt<=v_ta+v_tb+v_tc-1) rgby<=3'b000;//横彩条 else if(vcnt<=v_ta+v_tb+v_tc+60-1) rgby<=3'b001;/蓝 else if(vcnt<=v_ta+v_tb+v_tc+120-1) rgby<=3'b010;/绿 else if(vcnt<=v_ta+v_tb+v_tc+180-1) rgby<=3'b011;//红 else if(vcnt<=v_ta+v_tb+v_tc+300-1) rgby<=3'b101;//青 else if(vcnt<=v_ta+v_tb+v_tc+360-1) rgby<=3'b110;//黄 else if(vcnt<=v_ta+v_tb+v_tc+420-1) rgby<=3'b111;//白 else if(vcnt<=v_ta+v_tb+v_tc+480-1) rgby<=3'b000;//黑 else rgby<=3'b000; end//?

always@(key)

begin if(key==2'b00) rgb<=rgbx; else if(key==2'b01) rgb<=rgby;

else if(key==2'b10) rgb<=(rgbx+rgby); else rgb=(rgbx-rgby); end endmodule

测试程序:

`timescale 1ns/1ns `define clk_cycle 20 module color_tb ;

parameter v_tg = 525 ; parameter h_te = 8 ; parameter h_tf = 8 ; parameter h_tg = 800 ; parameter v_ta = 2 ;

搜索更多关于: VGA彩条信号和VGA图像显示控制设计器 的文档
VGA彩条信号和VGA图像显示控制设计器.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c83w3r8919e0088t3wpqg_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top