- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验9 VGA显示控制器实验
实验目的:
1)理解VGA显示的基本原理。
2)学习计数器和LPM_ROM的使用方法
实验原理:
图1 VGA显示控制器的原理框图
实验内容
彩条信号实验
创建锁相环,把输入的50MHz时钟变成25MHz,并创建元件。
利用所给的VGA_Pattern和VGA_Ctrl,创建元件。
完成顶层原理图,在QuartusⅡ上进行编译、综合、适配。引脚锁定以及硬件下载测试。
显示自己的姓实验。
修改VGA_Pattern,利用if语句控制相应区域的相应值,在QuartusⅡ上进行编译、综合、适配。引脚锁定以及硬件下载测试。
显示数字实验
创建lpm_rom,手动输入“0”的mif文件。
顶层文件为numTop.v,在QuartusⅡ上进行编译、综合、适配,硬件下载测试。
计数显示实验
创建“1~9”的lpm_rom,mif文件已给出。
加入计数器。
完成顶层文件,在QuartusⅡ上进行编译、综合、适配,硬件下载测试。
数字钟实验
在4)基础上加入位置控制,完成顶层文件,在QuartusⅡ上进行编译、综合、适配,硬件下载测试。
显示理工校徽实验
(2)moduleVGA_Pattern( //HostSideoRed,oGreen,oBlue,iCurrent_X,iCurrent_Y,iVGA_CLK,iRST_N);
// Host Side
output reg oRed;
output reg oGreen;
output reg oBlue;
input [9:0] iCurrent_X;
input [9:0] iCurrent_Y;
// Control Signal
input iVGA_CLK;
input iRST_N;
always@(posedge iVGA_CLK or negedge iRST_N)
begin
if(!iRST_N)
begin
oRed = 0;
oGreen = 0;
oBlue = 0;
end
else
begin
if((( iCurrent_Y60) (iCurrent_Y 80))((iCurrent_X200)(iCurrent_X 400)))
begin
oRed = 1;
oGreen = 0;
oBlue = 0;
end
else if((( iCurrent_Y80) (iCurrent_Y 240))((iCurrent_X200)(iCurrent_X 240)))
begin
oRed = 1;
oGreen = 0;
oBlue = 0;
end
/*else if((( iCurrent_Y150) (iCurrent_Y 170))((iCurrent_X260)(iCurrent_X 340)))
/*else if((150 iCurrent_Y 170)(260iCurrent_X 340))
begin
oRed = 1;
oGreen = 0;
oBlue = 0;
end
else if((( iCurrent_Y170) (iCurrent_Y 240))((iCurrent_X290)(iCurrent_X 310)))
/*else if((170 iCurrent_Y 240)(290 iCurrent_X 310))
begin
oRed = 1;
oGreen = 0;
oBlue = 0;
end*/
else if((( iCurrent_Y240) (iCurrent_Y 260))((iCurrent_X200)(iCurrent_X 400)))
/*else if((240 iCurrent_Y 260)(150 iCurrent_X 450))*/
begin
oRed = 1;
oGreen = 0;
oBlue = 0;
end
else
begin
oRed = 0;
oGreen = 0;
oBlue = 0;
end
end
end
endmodule
(3)
(4)module numTop1(CLK,RST,R,G,B,HS,VS);
input CLK,RST;
output R,G,B,HS,VS;
wire clk25Mhz,vga_clk;
wire [9:0]ram_data;
wire [9:0] X,Y;
wire [6:0] ram_addr;
wire [3:0]
原创力文档


文档评论(0)