下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浅谈VGA接口的FPGA实现VGA作为通用的显示接口,其可使用的设备非常多。根据VGA的文档,我们了解到使用VGA,只需要在给定的时钟频率下,向VGA线发出不同的信号即可。VGA输出的信号一共有5个有效信号,分别是:VGA_RED(红色端子),VGA_BLUE(蓝色端子),VGA_GREEN(绿色端子),VGA_HSYNC(水平同步端子),VGA_VSYNC(垂直同步端子)。如果采用水平扫描的方法,且为640x480的分辨率,我们需要:时钟频率为25MHz(或者也可以采用28.3MHz,参考VGA文档)。水平同步端子输出信号包含4个阶段,每个周期共占用800个时钟周期。脉冲周期(用于同步):96周期,输出低电平前端周期(用于缓冲):48周期,输出高电平显示周期(用于显示):640周期,每一个时钟周期显示一个像素点的内容,读取红、蓝、绿色端子的信息作出显示。同步端子输出高电平。后端周期(用于缓冲):16周期,输出高电平垂直同步端子输出信号也包含4个阶段,由于是水平扫描,所以在垂直同步中的显示周期中,水平同步端子将对其正确的进行显示,它包含了480个水平同步周期,扫描480行的内容。也可以说一个垂直同步周期中,显示出一个屏幕的内容。垂直同步端子的脉冲周期为2个水平同步周期;后端周期为29个水平同步周期;显示周期为480个水平同步周期;前端周期为10个水平同步周期,故总周期数为[latex]T=(480+2+10+29)*(96+16+640+48)=416800[/latex]cycles刷新频率为[latex]f=frac{25MHz}{416800}=59.98Hz[/latex]即屏幕的刷新频率约为60Hz。若需采用其它的分辨率,只需改变显示周期长度以及为该模块提供不同的时钟周期即可。显示周期等参数都在vga_header.v文件中定义。编写过程中,如果出现屏幕提示类似于“显示超出范围”的提示语,则说明同步周期不正确,改正同步周期长度即可。为了实现同步信号的准确计时,我们采用了有限状态机对它进行控制。以下源代码可供参考:always@(negedgeclk)begin
/*VerticalSync.Signal*/
case(v_state)
0:
begin
/*TPW同步脉冲周期*/
if(cv_thres==0)begin
v_sync
<=0;
/*信号置低*/
cv_en
<=0;
/*计数器继续计数*/
endelsebegin
v_state
<=1;
/*进入下一状态*/
cv_en
<=1;
/*计数器清零*/
cv_value
<=`VGA_SYNC_V_POR_BACK-1;
/*计数器置位*/
v_sync
<=
1;
/*同步信号置高*/
end
end
1:begin
/*TFP前端周期*/
if(cv_thres==0)begin
v_sync
<=
1;
/*同步信号置高*/
v_addr
<=
0;
/*垂直地址清零*/
cv_en
<=
0;
/*计数器计数*/
endelsebegin
v_state
<=
2;
/*进入下一状态*/
cv_value
<=
`VGA_SYNC_V_DISPLAY-1;
/*计数器置位*/
cv_en
<=
1;
/*计数器清零*/
v_sync
<=
1;
/*垂直同步信号置高*/
h_state
<=
0;
/*置水平同步状态*/
end
end
2:begin
/*TDISP显示周期*/
if(cv_thres==0)begin
v_sync
<=1;
/*垂直同步信号置高*/
cv_en
<=0;
/*计数器计数*/
endelsebegin
v_state
<=
3;
/*进入下一状态*/
cv_value
<=
`VGA_SYNC_V_POR_FRONT-1;/*计数器置位*/
cv_en
<=
1;
/*计数器清零*/
v_sync
<=
1;
/*垂直同步信号置高*/
end
end
3:begin
/*TBP后端周期*/
if(cv_thres==0)begin
v_addr
<=
0;
/*垂直地址清零*/
v_sync
<=
1;
/*垂直同步信号置高*/
cv_en
<=
0;
/*计数器计数*/
endelsebegin
v_state
<=
0;
/*进入下一状态,即状态0*/
cv_value
<=
`VGA_SYNC_V_PUL_WIDTH-1;/*计数器置位*/
cv_en
<=
1;
/*计数器清零*/
v_sync
<=
0;
/*垂直同步信号置低*/
end
end
endcase
/*......*通过该模块生成了水平、垂直同步信号和对应的水平地址和垂直地址后,使用垂直地址和水平地址读取对应的像素点信息,分为两种:a.图形模式:图形模式是一个一个的像素点,我们采用了BlockRAM来保存这些像素点信息。由于空间有限,我们只能保存320x240个像素点,并扩大输出范围,进行单色640x480输出,否则将因为空间不够而编译不通过。如果我们可以采用板上内置的DDR模块就可以拓展其规模,而且板上的DDRSDRAM具有64M,是镁光生产的模块,在Xilinx提供的IPCore中有对应的模块,只需要提供建立后提供相对应的管脚即可完成输出。由于D/A模块无法做到(见下面),这个修改并没有太大的意义,所以我们没有做到这个工程中去。b.文字模式:文字模式支
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 提升学前儿童学习品质的策略与方法研究
- α-Glucosidase-IN-71-生命科学试剂-MCE
- 郑州西亚斯学院《数字逻辑与数字电路》2021-2022学年期末试卷
- 濒危动物遗传多样性保护
- 2024年度医疗健康服务合作协议
- 幼儿园草坪建造合同
- 民办教师的合同协议与权益解析
- 借款还款合同协议书范文案例
- 购销合同解除通知
- 不再打架共建和谐家庭保证书
- DB44-T+2537-2024小型水电站退役导则
- 2024年大学生法律知识竞赛题库及答案(共100题)
- 消费合伙人模式协议书(2篇)
- 广东省中山市纪中教育集团2024-2025学年九年级上学期11月期中联考数学试题(无答案)
- 安全驾驶培训
- 《中华人民共和国突发事件应对法》知识培训
- 广东省广州市2024年中考数学真题试卷(含答案)
- 农村污水管网建设合同范本
- 呼吸衰竭个案护理
- 单元3 WPS文字5-邮件合并(教案)-《信息技术(基础模块)》同步教学(电子工业版)
- 2024年中科院心理咨询师官方备考试题库-上(单选题)
评论
0/150
提交评论