基于FPGA的VGA图像显示与控制Word下载.doc
- 文档编号:15407595
- 上传时间:2022-10-30
- 格式:DOC
- 页数:8
- 大小:948.50KB
基于FPGA的VGA图像显示与控制Word下载.doc
《基于FPGA的VGA图像显示与控制Word下载.doc》由会员分享,可在线阅读,更多相关《基于FPGA的VGA图像显示与控制Word下载.doc(8页珍藏版)》请在冰豆网上搜索。
同理,每一场的扫描时间多了625-600=25个行时间。
设计思路:
我们采用BmpToMif工具把BMP格式的图像转换为.mif文件。
利用QuartusII7.2自带的MegaWizardPlug-InManager产生一个ROM存储器,并用其来初始时.mif文件。
即将图像文件写入到存储器里面。
然后利用编程来控制图像的显示。
设计步骤:
1、工程创建:
创建一个Project取名字为vga,在创建工程的向导中选着CycloneII系列的EP2C20Q240C8。
2、代码书写:
新建一个VerilogHDLFile编写程序代码如下:
`timescale1ns/1ps
moduletupian(clk,rst_n,hsync,vsync,vga_r,vga_g,vga_b,addr);
inputclk,rst_n;
outputhsync,vsync,vga_r,vga_g,vga_b;
reghsync,vsync;
output[14:
0]addr;
reg[14:
reg[10:
0]x_cnt;
//行坐标
reg[9:
0]y_cnt;
//列坐标
parameterh_Ta=80,h_Tb=128,h_Tc=32,h_Td=800,h_Te=8,h_Tf=8,h_Tg=1056;
parameterv_Ta=3,v_Tb=14,v_Tc=7,v_Td=600,v_Te=0.8,v_Tf=0.2,v_Tg=625;
//-------------------行场的计数-------------------
always@(posedgeclk)
begin
if(x_cnt==h_Tg-1)x_cnt<
=0;
elsex_cnt<
=x_cnt+1;
end
if(y_cnt==v_Tg-1)y_cnt<
elseif(x_cnt==h_Tg-1)
y_cnt<
=y_cnt+1;
//-------------------同步信号产生-------------------
begin
if(x_cnt<
=h_Ta-1)hsync<
elsehsync<
=1;
if(y_cnt<
=v_Ta-1)vsync<
=0;
elsevsync<
//---------------有效显示区坐标--------------------
wirevalid;
assignvalid=(x_cnt>
=11'
d187)&
&
(x_cnt<
d987)&
(y_cnt>
=10'
d31)&
(y_cnt<
d631);
wire[9:
0]xpos;
0]ypos;
assignxpos=x_cnt-11'
d187;
assignypos=y_cnt-10'
d31;
//-----------------显示图像-----------------------
reg[27:
0]k;
always@(posedgeclk)
begin
if(k<
=67108864)
begin
if((ypos>
=9'
d100&
ypos<
d229)&
(xpos>
d65&
xpos<
d192))
addr<
=(ypos-100)*128+(xpos-65);
elseaddr<
end
else
begin
d573&
d700))
if(k>
134217728)k=0;
elsek=k+1;
end
endmodule
编写好程序后,点击保存,将文件起名为tupian,并将其设置为顶层文件。
点击startcompilation按钮,进行汇编。
3、为tupian.v产生Symbolfile(符号文件):
编译完成后,点击File菜单——Create/Update——Createsymbolfilesforcurrentfile。
4、新建原理图文件,并导入产生的符号文件:
点击菜单File——new——BlockDiagram/SchematicFile,双击原理图的空白处,将Project目录下的刚产生的符号文件引入到原理图。
如下图:
5、创建ROM并用它存储要显示的图片文件:
1)采用BmpToMif工具将BMP格式的图片转换为.mif文件如下图,打开软件,打开要转换的图片,颜色类型选为彩色(8)色,点击生成Mif文件。
给生产的文件起一个名字。
2)利用QuartusII7.2自带的MegaWizardPlug-InManager产生一个ROM并将图片引入进去。
双击原理图空白处,点击MegaWizardPlug-InManager——选择Creatanewcustommegafunctionvariation,在安装的插件中找到MemoryCompiler,选择ROM:
1-PORT,选择Verilog语言,并为输出的文件起一个名字。
如设置如下:
点击Next,在弹出的窗口中,设置输出总线为3位,并为其分配的存储空间能够存储图片总的像素点的大小。
其他默认。
设置如下:
点击Next,前面一直默认,走到page5of7,即第五步,点击Browse,将之前产生的.mif文件加入进来。
如下图:
点击Next,直至完成。
6、将tupian符号文件和刚生成的Rom进行连线。
7、引脚的绑定和设置
1)点击菜单Assignments——pin,为各引脚绑定如下:
2)将绑定的管脚设置为I/O复用:
点击菜单Assignments——Device——点击DeviceandPinOptions,切换到标签Dual-PurposePins,将nCEO的值设置为常规的I/O口。
8、将原理图文件设置成为顶层文件,然后点击编译运行,运行后,引脚绑定如下:
9、将编译生成的.sof文件下载到硬件里:
实验结果:
实验效果如下图,彩色图片能够在两个位置进行动态显示,可以在代码中控制。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA VGA 图像 显示 控制