- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
《电子系统综合设计》课程设计报告
VGA显示系统设计
专 业: 集 成 电 路班 级: 电 子 0604学 号: 202381131
姓 名: 高丕龙
一.试验目的:
1、依据VGA视频信号时序,利用FPGA掌握产生视频信号,在一般彩色显示器上显示8颜色色图像。
2、在显示器上显示自行设计的彩色规章图形——棋盘形。
二.试验原理:
概述
该系统实现的目标是将数据源写入视频存储器中的视频数据通过D/A转换器输出给VGA显示器,从而得到预期的视频显示。依据这个目的,FPGA作为整个设计的核心,负责产生正确的行同步信号和场同步信号输出给VGA显示器,使VGA显示器能够正确的同步:负责进展水平、垂直计数,并将计数器的值或行、场同步信号转换成存储器的地址数据输出给视频存储阵列,使视频存储阵列能够正确的输出图像的颜色信息:负责依据同步时序掌握D/A转换器准时的把视频存储阵列输出的颜色的数字量转换成模拟量送给VGA显示器。
FPGA是整个系统的中枢,在FPGA内部,主要有两个模块:一个是时序生成模块,另一个是地址产生模块。它依据外部时钟CLK进展计数,并依据计数器的值来确定行、场所处的位置,并依此产生以下信号:行同步信号〔Hs〕,场同步信号〔Vs〕,地址信号,和输出允许信号。其中,行同步信号和场同步信号是严格的周期信号,直接送给通过VGA接口相连的VGA显示器做同步使用。只要连接这两个信号就完全可以点亮显示器,只不过在显示器上没有任何的颜色信息。输入允许段一共有两个,一个是视频存储阵列的输出允许端,它掌握视频存储阵列锁存地址线上的地址对应单元的数据。另外一个输出允许端是掌握D/A转换阵列的。
视频存储阵列是由三块容量和参数一样的双口RAM堆叠而成,三块RAM是独立的并列关系。它们每一块负责存储三原色中一种颜色的数字量。三块RAM分别存储红〔R〕,绿〔G〕,蓝〔B〕重量。双口RAM输入端的地址和数据全部来自CPU或外部的数据采集源,输出端的地址由FPGA产生,而数据则直接输出给视频D/A转换阵列。
CLK引脚是整个系统需要的唯一的外部时钟,设计要求它能够供给50MHz的时钟频率,FPGA内部进展二分频后使用。RESET是整个系统的复位端。最终是整个系统的输出与VGA接口的连接。将行同步信号〔Hs〕与VGA接口的13脚连接,场同步信号(Vs)与14脚相连,D/A转换阵列的R重量与1脚连接,G重量与2脚,B重量与3脚连接就可以完成整个系统的连接工作。
时序产生模块:
时序产生的目的是依据外部时钟进展水平和垂直计数,并依据计数值进展推断,假设此时在消隐区,需要把ShZone设为低电平。并要推断是否是同步时间,假设是,则在行同步或场同步信号上输出同步脉冲。
时序产生模块主要有水平计数器和垂直计数器。水平计数器的计数脉冲是外部时钟CLK,而垂直计数器的计数脉冲是行同步信号Hs的同步头。这个模块的输入时钟是25MHz的时钟频率,输出端是行同步信号〔Hs〕、场同步信号〔Vs〕、水平计数器〔Hcnt〕、垂直计数器〔Vcnt〕、和有效显示信号〔ShZone〕5个信号。
其中,Hs、Vs直接送给VGA显示器,Hcnt、Vcnt、ShZone则输出给地址产生模块。
一个行周期含有800个像素时钟,在时序产生模块中定义如下:
constantH_PIX :INTEGER:=640; 行数据区constantH_FRONT:INTEGER:=16; 行消隐前肩
constantH_BACK :INTEGER:=48; 行消隐后肩
constantH_SYNC :INTEGER:=96; 行同步头
constantH_TIME :INTEGER:=H_SYNC+H_PIX+H_FRONT+H_BACK;
行计数器是一个10比特的向量信号,定义如下:
signalhcnt:std_logic_vector(9downto0);
依据水平计数器的值打算了行同步信号〔Hs〕和有效显示信号(ShZone)。
Hs信号变化如下:
if(hcnt=(H_PIX+H_FRONT)andhcnt(H_PIX+H_SYNC+H_FRONT))thenHs=”0”;
else
Hs=”1”;
ShZone信号变化如下:
ifhcnt=H_PIXorvcnt=V_LINESthenShZone=”0”;
else
ShZone=”1”;endif;
彩条产生模块
竖彩条发生模块流程图 横彩条发生模块流
文档评论(0)