基于VHDL进行VGA控制器设计并利用FPGA Span3E 开发板实现显示器条纹显示.doc_第1页
基于VHDL进行VGA控制器设计并利用FPGA Span3E 开发板实现显示器条纹显示.doc_第2页
基于VHDL进行VGA控制器设计并利用FPGA Span3E 开发板实现显示器条纹显示.doc_第3页
基于VHDL进行VGA控制器设计并利用FPGA Span3E 开发板实现显示器条纹显示.doc_第4页
基于VHDL进行VGA控制器设计并利用FPGA Span3E 开发板实现显示器条纹显示.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验目的与要求:VGA控制器设计实现显示器条纹显示要求:通过FPGA板的VGA接口在显示器上显示一幅640*480由六条不同颜色的条纹组成的图像。实验内容:VGA简介VGA彩色显示器,彩色是由R、G、B(红、绿、蓝)三基色组成,CRT用逐行扫描方式实现图像显示,由VGA控制模块产生的水平同步信号(HS)和垂直同步信号(VS)控制阴极射线枪产生的电子束,打在涂有荧光粉的荧光屏上,产生R、G、B三基色,合成一个彩色像素。扫描从屏幕的左上方开始,由左至右,由上到下,逐行进行扫描,每扫完一行,电子束回到屏幕下一行的起始位置,在回扫期间,CRT对电子束进行消隐,每行结束是用行同步信号HS进行行同步;扫描完所有行,再由场同步信号VS进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。显示需要R,G,B,Hsync(行同步),Vsync(帧同步)五个信号输出到显示器,本设计按照VGA工业标准输出640*48060Hz.对应的时序如下: 图1 VGA接口信号基本时序图图2 FPGA板上的VGA接口图3 VGA(640*48060Hz)时序图VGA显示的设计模块为:说明:设计中FPGA板的VGA接口将R,G,B分别设为定义为2位,3位,3位,例如显示红色RGB可以输出为11000000,绿色输出为00111000,蓝色输出为00000111.表1 25MHz 640*48060Hz模式下VGA的时序规格说明1. 像素时钟配置为25Mhz。2. 编写代码时,需要用到的常数参考表一。3. 输出到显示器上的条纹为从上到下依次为R G B R G B(640*80)。4. 本实验使用FPGA板:Sparant3EXC3S500E(建project时,需要选择板的型号)。实验方法、步骤:1、基本设计思想如下图所示:分为这四个模块,产生Hsync(行同步),Vsync(帧同步)以及RGB色彩的输出。2、具体设计VHDL代码library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity main is port(clk,rst:in std_logic; Vsync,Hsync:out std_logic; data:out std_logic_vector(7 downto 0) );end main;architecture Behavioral of main iscomponent dcn is -DCM 分频模块,输出25M 时钟 port ( CLKIN_IN : in std_logic; RST_IN : in std_logic; CLKFX_OUT : out std_logic; -输出时钟 CLKIN_IBUFG_OUT : out std_logic; LOCKED_OUT : out std_logic);end component;signal div_25m,Nrst: std_logic;signal Vsys_20b:std_logic_vector(19 downto 0);signal Hsys_10b:std_logic_vector(9 downto 0);signal data_Vsend,data_Hsend:std_logic;signal Scan_16b:std_logic_vector(15 downto 0);signal Scan_clc:std_logic;signal data_sel:std_logic_vector(1 downto 0); begin div:dcn port map(clk,Nrst,div_25m,open,open); -分频模块 Nrst= not rst; process(div_25m,rst) begin if rst=0 then Vsys_20b=00000000000000000000; elsif div_25mevent and div_25m=1 then Vsys_20b=Vsys_20b + 1; if Vsys_20b=416799 then Vsys_20b=00000000000000000000; end if; end if; end process; process(div_25m,rst,Vsys_20b) begin if rst=0 then Vsync=1;data_Vsend=0; elsif div_25mevent and div_25m=1 then if Vsys_20b 8000 then Vsync=1;data_Vsend=8000 and Vsys_20b9600 then Vsync=0;data_Vsend=9600 and Vsys_20b32800 then-128*255+160=32800 Vsync=1;data_Vsend=32800 and Vsys_20b416800 then Vsync=1;data_Vsend=1; end if; end if; end process; process(div_25m,rst) begin if rst=0 then Hsys_10b=0000000000; elsif div_25mevent and div_25m=1 then Hsys_10b=Hsys_10b + 1;if Hsys_10b=799 then Hsys_10b=0000000000;end if; end if; end process; process(div_25m,rst,Hsys_10b) begin if rst=0 then Hsync=1;data_Hsend=0; elsif div_25mevent and div_25m=1 then if Hsys_10b 16 then Hsync=1;data_Hsend=16 and Hsys_10b112 then Hsync=0;data_Hsend=112 and Hsys_10b160 then Hsync=1;data_Hsend=160 and Hsys_10b800 then Hsync=1;data_Hsend=1; end if; end if; end process; process(div_25m,rst,data_Vsend ) begin if rst=0 then - Scan_16b=0000000000000000;Scan_clc=0; elsif div_25mevent and div_25m=1 then - Scan_clc=0; if data_Vsend=1 then Scan_16b=Scan_16b + 1; if Scan_16b=63999 then Scan_16b=0000000000000000; Scan_clc=1; end if;end if; end if; end process; process(rst,div_25m,Scan_clc,data_sel,data_Vsend ) begin if rst=0 then data_sel=00; elsif div_25mevent and div_25m=1 then if Scan_clc =1 then data_sel=data_sel+1; end if; if data_sel=11 then data_sel=00; end if; end if; end process; process(rst,div_25m,data_Vsend,data_Hsend) begin if rst=0 then data data data data data=00000000; end case;else data=00000000; end if; end if; end process; end Behavioral;UCF 管脚定义 :NET clk LOC = P183;NET clk IOSTANDARD = LVCMOS33;NET rst LOC = P142;#NET rst PULLUP;NET rst IOSTANDARD = LVCMOS33;NET data(0) LOC = P74; #NET data(1) LOC = P75; #NET data(2) LOC = P76; #NET data(3) LOC = P77; #NET data(4) LOC = P78; #NET data(5) LOC = P82; #NET data(6) LOC = P83; #NET data(7) LOC = P89; #NET Vsync LOC = P68; #NET Hsync LOC = P69; #DCM设置:综合结果:综合分析:仿真波

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论