![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
||||||
| VHDL实现VGA接口设计 | ||||||
作者:Free 文章来源:Free 点击数: 更新时间:2008-1-1 ![]() |
||||||
|
1、 输入信号 clk : 时钟(每个象素点的显示时钟) reset : 复位信号 2、 输出信号 vga_hs_control : 行同步 vga_vs_control : 场同步 ; vga_read_dispaly : 红 vga_green_dispaly : 绿 vga_blue_dispaly : 蓝 3、 技术参数 clk : 设计原理 VGA( 视频图形阵列 ) 作为一种标准的显示接口得到广泛的应用 , 一般有专用芯片,本实验采用 FPGA( 现场可编程门阵列 ) 设计 VGA 接口可以将要显示的数据直接送到显示器,节省了计算机的处理过程,加快了数据的处理速度,节约了硬件成本。 显示适配器有多种形式,它可按照所符合的视频显示标准来分类,业界制定了多种显示标准,从最初的 MDA 经历了 CGA , EGA , VGA , XGA,SVGA 等的发展过程。与相应的显示适配器标准相配的显示器也称之为 EGA , VGA , XGA 显示器等。实际上显示器的标准主要反映在它们的接口,显示功能和行,场工作频率上。 CRT 显示器的扫描方式 (1) 当栅扫描方式 从上向下依次顺序扫描 完一场称逐行扫描。一行用行频控制( hs ) , 一场用场频控制( vs )。扫完一行回来叫行消 隐,扫完一场回来叫场消隐 (2) 随机扫描方式 VGA 接口标准 时钟频率: 25 . 175 MHz( 像素输出的频率 ) ;行频: 31. 469 Hz ;场频: 59 . 94 Hz 。 设计 VGA 设计 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 取反,即变为红色。这样就有黑、红彩条了。
实验验证 1、 仿真时序图
2、 验证平台及芯片 Xilinx 公司的 Xilinx Project Navigate 下载芯片为: Xilinx Sparan2/xsc200 小结 1、 技术难点 显示器显示原理、 VGA 接口原理的理解 2 、设计技巧 3 、不足或改进措施 不足:功能单一(彩条显示) 改进:添加字符显示、图象显示、图形显示模块 参考资料 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 : in std_logic; clk : in std_logic; vga_hs_control : out std_logic; vga_vs_control : out std_logic; vga_read_dispaly : out std_logic; vga_green_dispaly : out std_logic; vga_blue_dispaly : 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 : integer range 0 to 799:=0; VARIABLE j : 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 : integer range 0 to 524:=0; BEGIN if reset = '1' then k:=2; vs <= '1'; 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;
|
||||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 国外VHDL& Verilog IP Resou… VHDL易忘语句语法摘要 VHDL快速参考手册 在FPGA中实现SPI与总线接口转… VHDL信号 异步通信起始位正确检测的VH… FPGA驱动VGA接口的VHDL语言实… FPGA设计中对输入信号的处理 《同步电路设计中clock skew… “单比特信号同步” 学习笔记 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|