基于FPGA的VGA图像显示与控制
更新时间:2024-07-08 04:21:01 阅读量: 综合文库 文档下载
- fpga显示器显示图像推荐度:
- 相关推荐
基于FPGA的VGA图像显示与控制
课程要求:采用verilog语言,基于FPGA的VGA图像显示,即能够在显示器上实现动态彩色图像的显示。 VGA显示接口的理论分析:硬件采用CycloneII系列的EP2C20Q240C8N,它含有240个引脚。对于VGA的显示器遵循800*600@75模式,其中800是指每行中显示的像素的个数,而600是指屏幕每一列所包含的像素的个数。 VGA工业标准规定了具体地,在扫描过程中的时序图如下:
行扫描时序图
场扫描时序图
每场信号对应625个行周期,其中600行为图像显示行,每场有场同步信号,该脉冲宽度为3个行周期的负脉冲;每行显示行包括1056个点时钟,其中800点为有效显示区,每行有一个行同步信号的负脉冲,该脉冲宽度为80个点时钟。这样我们可以知道,行频为625*75=46857Hz。需要的点时钟的频率为:625*1056*75=49.5MHz约为50MHz。由上图可知,实际上在真正的实现过程中,每一行扫描所花的时间实际上比显示一行的像素所花的时间多了1056-800=256个像素点。同理,每一场的扫描时间多了625-600=25个行时间。 设计思路:
我们采用BmpToMif工具把BMP格式的图像转换为.mif文件。利用QuartusII7.2自带的MegaWizard Plug-In Manager产生一个ROM存储器,并用其来初始时.mif文件。即将图像文件写入到存储器里面。然后利用编程来控制图像的显示。 设计步骤: 1、工程创建:创建一个Project取名字为vga,在创建工程的向导中选着CycloneII系列的EP2C20Q240C8。
2、代码书写:新建一个Verilog HDL File编写程序代码如下: `timescale 1ns/1ps
module tupian (clk,rst_n,hsync,vsync,vga_r,vga_g,vga_b,addr); input clk,rst_n;
output hsync,vsync,vga_r,vga_g,vga_b; reg hsync,vsync;
output [14:0] addr; reg [14:0] addr;
reg [10:0] x_cnt; //行坐标 reg [9:0] y_cnt; //列坐标
parameter h_Ta=80,h_Tb=128,h_Tc=32,h_Td=800,h_Te=8,h_Tf=8,h_Tg=1056; parameter v_Ta=3, v_Tb=14,v_Tc=7,v_Td=600,v_Te=0.8,v_Tf=0.2,v_Tg=625;
//------------------- 行场的计数------------------- always @(posedge clk) begin
if(x_cnt == h_Tg-1) x_cnt<=0; else x_cnt<=x_cnt+1; end
always @(posedge clk) begin
if(y_cnt==v_Tg-1) y_cnt<=0; else if ( x_cnt == h_Tg-1 ) y_cnt<=y_cnt+1; end
//-------------------同步信号产生------------------- always @(posedge clk) begin
if(x_cnt<=h_Ta-1) hsync<=0; else hsync<=1; end
always @(posedge clk) begin
if(y_cnt <= v_Ta -1) vsync <= 0; else vsync <=1; end
//---------------有效显示区坐标-------------------- wire valid;
assign valid = (x_cnt >= 11'd187) && (x_cnt <= 11'd987) && (y_cnt >= 10'd31) && (y_cnt <= 10'd631);
wire [9:0] xpos; wire [9:0] ypos;
assign xpos = x_cnt-11'd187;
assign ypos = y_cnt-10'd31;
//-----------------显示图像-----------------------
reg[27:0] k; always @ (posedge clk ) begin
if(k<=67108864) begin if((ypos >= 9'd100 && ypos <= 9'd229)&&(xpos >= 10'd65 && xpos <= 10'd192)) addr <= (ypos-100)*128 + (xpos-65); else addr<=0; end
else begin if((ypos >= 9'd100 && ypos <= 9'd229)&&(xpos >= 10'd573 && xpos <= 10'd700)) addr <= (ypos-100)*128 + (xpos-65); else addr<=0; end
if(k>134217728) k=0; else k=k+1;
end endmodule
编写好程序后,点击保存,将文件起名为tupian,并将其设置为顶层文件。点击start compilation按钮,进行汇编。
3、为tupian.v产生Symbol file(符号文件):
编译完成后,点击File菜单——Create/Update——Create symbol files for current file。
4、新建原理图文件,并导入产生的符号文件:
点击菜单File——new——Block Diagram/Schematic File,双击原理图的空白处,将Project目录下的刚产生的符号文件引入到原理图。如下图:
5、创建ROM并用它存储要显示的图片文件:
1)采用BmpToMif工具将BMP格式的图片转换为.mif文件如下图,打开软件,打开要转换的图片,颜色类型选为彩色(8)色,点击生成Mif文件。给生产的文件起一个名字。
2)利用Quartus II7.2自带的MegaWizard Plug-In Manager产生一个ROM并将图片引入进去。双击原理图空白处,点击MegaWizard Plug-In Manager——选择Creat a new custom megafunction variation,在安装的插件中找到Memory Compiler,选择ROM:1-PORT,选择Verilog语言,并为输出的文件 起一个名字。如设置如下:
点击Next,在弹出的窗口中,设置输出总线为3位,并为其分配的存储空间能够存储图片总的像素点的大小。其他默认。设置如下:
点击Next,前面一直默认,走到page 5 of 7,即第五步,点击Browse,将之前产生的.mif文件加入进来。如下图:
点击Next,直至完成。
6、将tupian 符号文件和刚生成的Rom进行连线。如下图:
7、引脚的绑定和设置
1) 点击菜单Assignments——pin,为各引脚绑定如下:
2) 将绑定的管脚设置为I/O复用:
点击菜单Assignments——Device——点击Device and Pin Options,切换到标签Dual-Purpose Pins,将nCEO的值设置为常规的I/O口。如下图:
8、将原理图文件设置成为顶层文件,然后点击编译运行,运行后,引脚绑定如下:
9、将编译生成的.sof文件下载到硬件里:
实验结果:
实验效果如下图,彩色图片能够在两个位置进行动态显示,可以在代码中控制。
正在阅读:
基于FPGA的VGA图像显示与控制07-08
1--5年级品生(品社)单元试卷12-05
常用三字成语释义01-13
丹东市教师职称考试复习题21世纪读本04-13
关于春天的作文07-02
描写爱国的佳句02-23
成都理工大学电装实习 - 图文10-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 图像
- 基于
- 控制
- 显示
- FPGA
- VGA
- 产科病历模版
- XX学院迎新晚会主持词
- 高中化学《有机化学基础》全册精品教案(共102页)新人教选修5
- 工作票实施规范(调度检修申请单部分)
- 无棣县农村土地整治专项清理检查工作自查报告(2011.10.11)
- 高中英语必修一和必修二知识要点总结
- 经费审查员会议事规则
- 石墨深加工项目可行性研究报告
- 16天鹅的故事一课时
- 15014文件资料档案管理制度
- 人员素质测评笔记(1)
- 舒芬太尼复合低浓度布比卡因用于子宫切除术后病人自控硬膜外镇痛
- 110kV区域降压变电站设计
- 2016年住建部监理工程师继续教育考试题电力专业70分
- 挤出机文献综述
- 华为SDH设备操作维护手册
- 新人教版PEP小学四年级英语上册单元试题 全册 - 图文
- 比较全面的ProE机构仿真分析
- 2014年国内外宏观经济形势与政策取向分析(仅适用于2014年度)-考
- "女性更需要关怀"辩论赛四辩总结陈词