- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Verilog的VGA显示控制
一、VGA时序
下面的图是本人画了一个晚上的结果,个人认为能够比较详细的阐述VGA的信号时序。
VGA的时序根据不同的显示分辨率和刷新频率会有变化,具体各种类型的时序信息可以参考下面的网站,这里非常详细的说明的每一种显示模式的VGA时序信息。
/vga-timing
二、VGA电平
?
VSYNC,HSYNC为标准TTL电平,0V~3.3V。
RGB的电平在0V~0.7V之间(0V为黑色,0.7V为全色)。
?
三、程序顶层框图
VGA产生行同步(HSYNC),场同步信号(VSYNC),并产生每个像素的地址输入单口ROM(显存)中,ROM输出该点需要显示的颜色值。
?
四、单口ROM(显存)设计
程序的显示模式为800*600,72Hz刷新频率,像素频率为50MHz。每个像素需要显示的颜色存储在单口RAM中,每种颜色用8个字节表示,则如果要显示800*600分辨率,则需要800*600字节(480KB)的单口ROM,由于FPGA内部没有这么大的RAM(我用的是ep2c8),因此我把屏幕上100*100个像素组成的矩形作为一个逻辑像素(即显示同一种颜色),这样只要8*6字节(48字节),用FPGA自带的RAM是很容易实现的。
ROM中颜色存储地址表
将全屏划分成8*6的方格,每个方格的颜色存储在ROM中,VGA控制器不断产生行坐标(ROM水平地址)和场坐标(ROM垂直地址),最后组合成ROM实际地址输入ROM中,ROM输出该地址的颜色值,显示在LCD中。
?
?
五、程序设计
VGA控制器程序
module VGA(clk,rst_n,hsync,vsync,vga_r,vga_g,vga_b);
input clk; //50MHz
input rst_n; //复位信号
output hsync; //行同步信号
output vsync; //场同步信号
// R、G、B信号输出
output[1:0] vga_r;
output[2:0] vga_g;
output[2:0] vga_b;
//--------------------------------------------------
reg[10:0] x_cnt; //行坐标(这里包括了行同步、后沿、有效数据区、前沿)
reg[9:0] y_cnt; //列坐标(这里包括了场同步、后沿、有效数据区、前沿)
reg[5:0] Xcoloradd;
reg[2:0] Ycoloradd;
parameter
Left = 184,
PixelWidth = 100,
Top = 29;
always @ (posedge clk or negedge rst_n)
if(!rst_n) x_cnt = 10d0;
else if(x_cnt == 11d1040) x_cnt = 10d0; //行计数记到1040
else x_cnt = x_cnt+1b1;
always @ (posedge clk or negedge rst_n)//产生行地址(ROM水平地址)
if(!rst_n) Xcoloradd = 6b000000;
else if(x_cnt = Left x_cnt Left + PixelWidth) Xcoloradd = 6b000000;
else if(x_cnt = Left + PixelWidth x_cnt Left + 2*PixelWidth) Xcoloradd = 6b000001;
else if(x_cnt = Left + 2*PixelWidth x_cnt Left + 3*PixelWidth) Xcoloradd = 6b000010;
else if(x_cnt = Left + 3*PixelWidth x_cnt Left + 4*PixelWidth) Xcoloradd = 6b000011;
else if(x_cnt = Left + 4*PixelWidth x_cnt Left + 5*PixelWidth) Xcoloradd = 6b000100;
els
您可能关注的文档
- 基于RS和GIS的榆林市土地沙化遥感监测.doc
- 基于RS锦州市植被变化分析.doc
- 基于R语言的上海房价预测模型.docx
- 基于SaaS模式在线软件系统开发方案的研究.doc
- 基于s3c2410开发板的26265内核移植.doc
- 基于S200PLC的精馏温度控制系统的毕业设计.doc
- 基于SAAS模式的共享模型的数据扩展技术研究.docx
- 基于SaaS模式的SOA服务应用与研究.doc
- 基于SBE法的杉木风景游憩林评价及经营技术终稿梅光义20120610.doc
- 基于SCIEEI的反应器全景分析.doc
- DB53T 844.5-2017 外事接待服务规范 第5部分 :接见、会谈及会议服务.docx
- DB5305T49.2-2020 保山市机关事务管理与服务 第2部分:机关办公楼(区)保洁服务规范.docx
- 洱海流域餐厨垃圾综合利用 第2部分 分类、收集与清运 __DB5329_T 78.2-2021.docx
- DB52_T 1503.6-2020 贵州猕猴桃 第6部分:红阳猕猴桃适宜区立地环境条件及栽培技术规程.docx
- DB23T - 红松果材兼用林定向培育技术规程.docx
- DB23T - 露地中晚熟西瓜栽培技术规程.docx
- DB5331T38-2021 水稻工厂化育秧技术规范.docx
- DB5331_T 43.1-2023 德宏州茄果类蔬菜栽培技术规程 第1部分:茄果类蔬菜穴盘育苗技术.docx
- DB5309_T37-2022 籼稻直播栽培技术规程.docx
- DB53T - 甘蔗白叶病病原巢式PCR检测技术规程.docx
文档评论(0)