logo资料库

VHDL实现的VGA接口设计.pdf

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
VHDL实现VGA接口设计 111 、 输入信号 clk : 时钟(每个象素点的显示时钟) reset : 复位信号 222 、 输出信号 vga_hs_control vga_vs_control vga_read_dispaly vga_green_dispaly vga_blue_dispaly : 行同步 : 场同步 ; : 红 : 绿 : 蓝 333 、 技术参数 clkclkclk hshshs 24M24M24M ::: ::: 30KHZ 30KHZ 30KHZ vsvsvs ::: 57.14HZ 57.14HZ 57.14HZ 设计原理 VGA( 视频图形阵列 ) 作为一种标准的显示接口得到广泛的应用 , 一般有专用芯 片,本实验采用 FPGA( 现场可编程门阵列 ) 设计 VGA 接口可以将要显示的数据 直接送到显示器,节省了计算机的处理过程,加快了数据的处理速度,节约了硬件 成本。 显示适配器有多种形式,它可按照所符合的视频显示标准来分类,业界制定了多种 显示标准,从最初的 MDA 经历了 CGA , EGA , VGA , XGA,SVGA 等的发 展过程。与相应的显示适配器标准相配的显示器也称之为 EGA , VGA , XGA 显 示器等。实际上显示器的标准主要反映在它们的接口,显示功能和行,场工作频率 上。 显示器的扫描方式 CRTCRTCRT (1) 当栅扫描方式 从上向下依次顺序扫描 完一场称逐行扫描。一行用行频控制( hs ) ,
一场用场频控制( vs )。扫完一行回来叫行消 隐,扫完一场回来叫场消隐 (2) 随机扫描方式 接口标准 VGAVGAVGA 时钟频率: 25 . 175 MHz( 像素输出的频率 ) ;行频: 31. 469 Hz ;场频: 59 . 94 Hz 。 设计 VGAVGAVGA 设计 VGA 图像显示控制需要注意两个问题 L2] :一个是时序的驱动,这是完成设 计的关键,时序稍有偏差,显示必然不正常,甚至会损坏彩色显示器;另一个是 VGA 信号的电平驱动。显示控制器设计提示:显示器技术规格提供的行频一般在 30 kHz 45 kHz( 保守数据 ) ,场频一般在 50 Hz ~ 75 Hz( 保守数据 ) 。针对以上保守 数据,设计分辨率为 640x480 的显示接口(如图 4 所 示 ), 以 30 kHz 的行频进 行扫描时所需时钟频率为: 30 kHz × 800( 行周期 )=24 MHz ,则场频为: 30 kHz ÷ 525( 场周期 )=5.14 Hz 。本实验实现在显示器上显示彩条的设计,初始时 时 GRB= “ 000 ”,用一记数器过一段时间使 R 取反,即变为红色。这样就有黑 、 红彩条了。
黑 蓝 红 品 绿 青 黄 白 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 R G B 实验验证 111 、 仿真时序图 222 、 验证平台及芯片 Xilinx Xilinx Xilinx Xilinx 公司的 Xilinx Xilinx Xilinx 下载芯片为: Xilinx Xilinx Project Navigate Project Project Navigate Navigate Sparan2/xsc200 Sparan2/xsc200 Sparan2/xsc200 小结 111 、 技术难点 显示器显示原理、 VGA 接口原理的理解 222 、设计技巧 、不足或改进措施 333 不足:功能单一(彩条显示) 改进:添加字符显示、图象显示、图形显示模块 参考资料
1 蒋本珊. 计算机组成原理与系统结构 北京航空航天大学出版社 p192-p198 2 陈姚节 卢建华. 基于FPGA的VGA显示接口的研究与设计 源程序 library ieee; use ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity vga is port( : reset clk vga_hs_control vga_vs_control vga_read_dispaly vga_green_dispaly vga_blue_dispaly in : in std_logic; : : std_logic; out std_logic; out std_logic; : : : out std_logic; out std_logic; out std_logic ); end vga; ARCHITECTURE a OF vga IS SIGNAL hs: STD_LOGIC; SIGNAL vs: STD_LOGIC:='1'; SIGNAL GRB: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN PROCESS (clk) --clk = 24MHZ hs = 30 Khz vs = 57hz VARIABLE i VARIABLE j : : integer range 0 to 799:=0; integer range 0 to 79:=0; BEGIN if reset = '1' then GRB <= "000"; i:=96; j:=0; hs <= '1'; elsif clk'event and clk = '1' then
if i < 96 then hs <= '0'; elsif i = 799 then i:=0; else hs <= '1'; end if; if j = 79 then GRB(1) <= not GRB(1); j:=0; end if; i:=i+1; j:=j+1; end if; vga_hs_control <= hs; END PROCESS ; PROCESS (hs) VARIABLE k : BEGIN if reset = '1' then k:=2; vs <= '1'; integer range 0 to 524:=0; elsif hs'event and hs = '1' then if k < 2 then vs <= '0'; elsif k = 524 then k:=0; else vs <= '1'; end if; k:=k+1; end if;
vga_vs_control <= vs; END PROCESS ; PROCESS (clk) BEGIN if clk'event and clk = '1' and vs = '1' and hs ='1' then vga_green_dispaly <= GRB(2); vga_read_dispaly <= GRB(1); vga_blue_dispaly <= GRB(0); end if; END PROCESS ; END a;
分享到:
收藏