基于FPGA的VGA图像游戏
基于FPGA图像压缩和解码
基于FPGA的图像压缩传输与解码硬件设计部分一、硬件完成的功能定义1.使用FPGA普通端口作为GPIO使用。
2.使用FPGA开发板的50MHZ时钟分频后25MHZ作为VGA输出时钟。
3.时钟频率25MHZ完成行扫描信号计数。
4.时钟频率25MHZ完成祯扫描信号计数,并完成祯计数。
5.在行,场信号有效范围内进行VGA数据输出。
二、顶层模块划分1.顶层的输入输出定义2.顶层模块输入、输出之间的时序关系:vag输入时钟50mhz,分频产生25mhz,作为vga输出时钟,PLL倍频,200mhz作为cpu时钟,UART接收来自串口数据。
软件读取数据,处理后,输出数据。
软件设计部分一、软件功能定义1获取发送数据,二:软件设计的总体设计及结构图三:软件详细设计1:用matlab取图像的reb值,将取出的rgb值写入文件。
2:读取rbg值,将十六进制数表示的rgb值转化为以该asc||值对应的字符(减少信息传输量),将转化后的的字符写入文件中。
3:对转化后的文件数据进行压缩,发送目标文件格式为,文件头信息,发送文件的起始信息,用来判定开始发送数据,用三个字节,信息数据为GCL,一个字节表示最后一个字节的有效位,最后一个字节有效位为0bit- 8bit之间,一个字节表示文件中rgb的种类,0-255,四字节,表示整个压缩文件的大小,其后数据格式为,字符及字符对应的出现次数,即字符频度信息,字符频度之后对应的是压缩信息。
4:具体软件的实现:1.Matlab取图片rgb值,写入rgb.txt文件中,处理得到对应字符文件,读取文件统计rgb值得种类及每种rgb值出现的次数。
2.根据统计rgb值得种类及次数,生成huffman树。
3.由生成的huffman树,递归生成huffmancode。
4.根据reb.txt文件内容和huffmancode生成压缩信。
四、软件功能测试1:手工构造最简单的huffman树,huffmancode,compress code。
基于FPGA的VGA图像显示
基于FPGA的VGA图像显示1、VGA显示原理VGA标准是一种计算机显示标准,最初是由IBM公司在1987 年提出的,分辨率是640*480。
VGA 接口也叫做D_Sub 接口,是显卡上输出模拟信号的接口。
目前大多数计算机与外部显示设备之间都是通过模拟VGA接口连接,计算机内部以数字方式生成的显示图像信息,被显卡中的D/A 转换器转变为R、G、B三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。
常见的彩色显示器一般由阴极射线管(CRT) 构成,彩色由GRB(Green Red Blue) 基色组成。
显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生GRB 基色,合成一个彩色像素。
扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT 对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。
要实现VGA显示就要解决数据来源、数据存储、时序实现等问题,其中关键还是如何实现VGA时序。
VGA的标准参考显示时序如图1所示。
行时序和帧时序都需要产生同步脉冲(Sync a)、显示后沿(Back porch b)、显示时序段(Display interval c)和显示前沿(Front porch d)四个部分。
2、方案设计由VGA的显示原理可知,该任务的关键是VGA时序控制部分和汉字图形显示部分:(1)VGA时序控制部分,采用FPGA本地50MHz时钟,根据所需时序要求,经Verilog语言编写的计数模块分频而得到,该部分十分重要,如果产生的时序有偏差,那么就会使汉字图形无法显示或显示结果混乱;(2)汉字图形显示部分,有2种方法可以实现:第1 种是在对像素进行行计数、场计数的时候,就把字库信息直接赋值给颜色信号R、G、B,这种方法虽然简单,但是控制很不灵活,需要对汉字的显示像素一一判定对应的位置,容易出现错误,不易修改,所以本次采用的是第2 种方法,第2 种方法是使用FPGA内部的一种资源来存储汉字的字库信息,然后由程序将其提取出来作为显示信号发送到VGA 接口,以实现汉字图形的显示,这样就克服了第一种方法易出错又不易修改的缺点。
VGA显示控制
基于FPGA 的VGA显示控制摘要VGA(Video Graphics Array)即视频图形阵列,是IBM公司1987年推出的一种传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛应用。
本次课程设计是基于FPGA和主芯片为 EP4CE30F23C8N的ALTER公司的开发板Cyclone IV来实现的。
数字图像信息在VGA接口显示器正确、完整地显示,涉及到时序的构建和数字图像信息的模拟化两方面,提出一种能够广泛应用的VGA显示接口方案,详细阐述了数字图像数据DA转化并输出到VGA接口显示器显示的方法,其中包括接口的硬件设计、视频DA转换器的使用方法、通过FPGA构造VGA时序信号的方法等等。
方案可以应用于各种仪器,数字视频系统、高分辨率的彩色图片图像处理、视频信号再现等。
课设主要用到的芯片是ADV7123,它是一款高速、高精度数模转换芯片。
拥有三路十位D/A转换器,能够将代表颜色的数据锁存到数据寄存器中,然后通过D/A 转换器转换成模拟信号输出,得到我们要的色彩。
VGA显示的硬件设计和原理1.1 FPGA主芯片课程设计所用开发板的主芯片是EP4CE30F23C8N——Cyclone IV,其由Altera公司开发,值得注意的是该开发板所支持的QUARTUS II的版本较高,并且11.0的版本较12.0的版本编译好的程序更好下载。
图-11.2 ADV7123实现VGA的控制显示主要用到的芯片就是ADV7123,ADV7123由完全独立的三个I0位高速D/A转换器组成,RGB(红绿蓝)视频数据分别从R9~R0、G9~G0、B9~B0输入,在时钟CLOCK的上升沿锁存到数据寄存器中,然后经告诉D/A转换器转换成模拟信号。
三个独立的视频D/A转换器都是电流型输出,可以接成差分输出,也可以接成单端输出。
DE2-115上按单端输出,在模拟输出端用75欧姆电阻接地,以满足工业标准。
基于FPGA的VGA图形控制器设计
i mp l e me n t t h e h o r i z o n t a l s t r i p e,v e r t i c a l s t r i p e ,l a t t i c e b o a r d a n d S O o n w i t h 8 b i t c o l o r g r a p h i c d i s p l a y .
逻 辑描 述 语 言 . 在 X i l i n x的 开 发 板 N e x y s 2上 完 成 了设 计 的 功 能 。 通 过 按 动 开 发 板 上 的 按 键 可 切 换 显 示 屏 显 示 的 图形 , 可 实现 横 条 纹 、 竖条纹、 方格 棋 盘 等 8 h i t 彩 色图形 的 显 示 。
Ke y wo r d s: VGA;F P GA; g r a p h i c s c o n t r o l l e r ;8 b i t c o l o r g r a p h
随 着 电 子 技 术 的 进 步 和 数 字 图 像 处 理 应 用 领 域 的
过 软件进 行 的, 通用性 和灵 活性极 强 。 在产 品升级 时 , 不
关 键 词 :VG A; F P G A; 图形控 制 器 ; 8 b i t彩 色 图 形
中 图 分 类 号 :T P 3 3 4 . 7 文 献 标 识 码 :A 文 章 编 号 :1 6 7 4 — 7 7 2 0( 2 0 1 3) 1 5 — 0 0 2 2 — 0 3
De s i g n o f VGA g r a ph i c s c o n t r o l l e r ba s e d o n FPGA
需 要额 外 改变 原有 的硬 件 电路 , 只需 修 改程 序 , 大 大 宿 短 了 系 统 设 计 周 期 。N e x y s 2作 为 一 款 比 较 经 典 的 F P GA
建立一个基于FPGA的动态图片显示基础框架
建立一个基于FPGA的动态图片显示基础框架系统框图前面我们设计了基于(FPGA)的静态图片显示,并对一幅彩色图片提取了灰度,学习了RGB转Gray(算法)。
这是基于一幅静态图片的,那么后面我们要(模拟)一下一幅动态图片的显示,最终对动态数据进行滤波、边缘(检测)等算法,下来我们首先来建立一个基于FPGA的动态图片显示基础框架,本实验内容为:由PC端(上位机)软件通过串口发送一幅图像数据至FPGA,FPGA内部将图像数据存储,最后扫描到VGA屏幕上显示。
从系统框图上我们可以看到,可以划分为三个部分进行设计,一个是串口接收部分,然后是(RAM)数据存储部分,最后是VGA驱动显示部分。
这里串口接收部分只需要用到串口接收代码,代码很多书上都有,我这里就不贴出来了,数据存储部分需要使用的是双口RAM IP Core,一端将数据写入RAM中,一端将数据读出来用VGA显示,下面是基于Viv(ad)o的双口RAM IP Core调用方法。
打开IP Catalog,选择block mem(or)y Genera(te)r这里按如图所示选择,我这里将写使能(信号)去掉,wea也可以代表写使能设置写数据位宽和深度,使能选择always enable设置读数据参数这里因为我们是往RAM里面写数据,所以这里不需要添加初始化RAM文件点击OK最后generate综合完成。
双口RAM IP调用完成以后,接下来是在用顶层文件把串口接收模块和存储模块和VGA驱动模块连接起来。
这里需要注意的是,双口RAM的读地址和写地址都是需要在其他模块进行计数的,我这里把写使能信号设置为标串口接收完成标志即rx_done,读使能设置为always enable。
对于VGA显示图片部分可以参考这个图像处理系列文章第一篇基于FPGA的静态图片显示。
按照系统流图,还需要添加串口接收和发送模块,这里我们可以把以前做过的串口代码直接拿过来用,代码都是可以移植的只需要稍微修改(端口)顶层例化即可。
基于FPGA的VGA图像控制器设计与实现
VA 图像 控制 器 是一 个较 大 的数字 系 统 。采用 模块 化 设计 原 G 则和 自顶 向 下的设 计思想 ,进 行功 能分 离并按 层 次设 计 。将 V D HL 硬件 描述 语言 设计 与 原理 图设 计相 结合 ,逐 一对 每个 功 能模 块进 行仿 真 ,使顶 层 V A图像 控制 器 的模块 实 体仿真 综合 得 以顺利 通 G 过 。V A 控制 器主 要 由 以下模 块组成 :消 隐模块 ,显 示模 块 ,分 G 频模 块 ,网格 生成 模块 ,汉字 显示模 块 , 图像控 制模 块 ,动 画生 成模 块 ,LMR M 用模 块 ,EP O P— O 调 E RM调用 模块 等 。 三 、模块 设计 ( )消 隐模块 一 消 隐模 块 是整个 显示 控制 器 的关 键部 分 ,显示 模 块 、汉字 模 块 、彩 条模 块 、 网格 模块 、动画控 制 模块 、L MR M 调用 模块 等 P- O 都 由消 隐模 块控 制 ,并且 行 同步信 号 (s 和场 同步 信 号 (s都 由 H) v)
Hu Yi ana nQa
( h n d stt f i u nN r l n esyCh n d 6 5 ,hn ) C e g uI tueo Sc a oma U i ri, e g u 1 4C ia ni h v t 1 7
Ab ta t DA c n lg sr c: E t h oo yn1i tec r fmo e eeto i eintc n lg , l so o ru o ue lt r i e s h oeo d m lc ncd s eh oo yir i np wef1c mp trpaf m r g te e o n
计 算机 光盘 软件 与应 用
毕业设计-基于FPGA的VGA显示
VGA显示器控制电路论文前言VGA(视频图形阵列)作为一种标准的显示接口得到广泛的应用。
利用FPGA 芯片和EDA设计方法,可以因地制宜,根据用户的特定需要,设计出针对性强的VGA显示控制器,不仅能够大大的降低成本,还可以满足生产实践中不断变化的用户需要,产品升级换代方便迅速。
在本设计中采用Altera公司的EDA软件工具Quartus II,并以Cyclone II 系列的FPGA的器件作为主实现硬件平台的设计。
一、FPGA的原理FPGA 是Filed Progranmmable Gate Array的缩写,即现场可编程逻辑阵列。
FPGA是在CPLD的基础上发展起来的新型高性能可编程逻辑器件它一般采用SRAM工艺,也有一些专用器件采用Flash工艺或反熔丝(Anti_Fuse)工艺等。
FPGA的集成度很高,其器件密度从数万系统门到数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。
FPGA的基本组成部分有可编程输入/输出单元,基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元、内嵌专用硬核等。
FPGA 的主要器件供应商有Xilinx、 Altera、 Lattice、 Actel和 Atmel 等。
二、 VGA转换接口的简单描述本设计另外自制VGA接口电路。
VGA时序控制模块是整个显示控制器的关键部分,最终的输出信号行、场同步信号必须严格按照VGA时序标准产生相应的脉冲信号。
对于普通的VGA显示器,其引出线的共含5个信号:G,R,B(三基色信号),HS(行同步信号),VS(场同步信号)。
在五个信号时序驱动时,VGA显示器要严格遵循“VGA工业标准”,即640Hz×480 Hz×60Hz模式。
下图(1)为VGA显示控制器控制CRT显示器VGA(Video Graphic Array)接口,即视频图形阵列,也叫做D-Sub接口,是15针的梯形插头,分3排,每排5个,传输模拟信号。
基于FPGA的VGA控制器设计与实现
网2 G V A显示模块与 C T显示器的控制榧图 R
的是 V A显示模块与 C T G R 显示器 的控制框 图口 。
收 稿 日期 :20 —6 0 08 0— 5
作者简介: 杨杰 ( 92 ) 女 , 15一 , 黑龙江齐齐哈尔人,副编审,本科,主要从事编辑学方而的研究。
将要显示内容转换成对应字模送人 F G P A,即可实现相应 内容的显示 关键词 :F G P A;V A;显示控制 G 中图分类号 :T 23 P 7 文献标识码 :A 文章编号 :10 — 8X 20 )6 0 5- 3 0 7 9 4 (0 80 - 0 0 0
随着数字图像处理 的应用领域的不断扩大 , 其实时处理技术成为研究的热点。 D 电子设计 自动化 ) E A( 技术的迅猛发展为数字图像实时处理技术提供了硬件基础 。其中 F G P A的特点适用于进行一些基于像素级 的图像处 ” C 。L D和 C T显示器作为一种通用型显示设备 ,如今已经广泛应用于工作和生活中。与嵌入 R 式系统 中常用 的显示器件相 比,它具有显示面积大 、色彩丰富 、承载信息量大 、 口简单等优点,如果将 接 其应用到嵌人式系统中 , 可以显著提升产品的视觉效果 。 为此 , 尝试将 V A显示 的控制转化到 F G G P A来完
表 1 V A与FG ቤተ መጻሕፍቲ ባይዱ G P A引 脚连接 表
3 系统软件设计
采用 P t C 2 0 软件进行字模转换 ,得到字符/ Co D 02 L 图像像素数 据。利用 Xl xI . 、M dl m开发 in E 9 i oe i i S 1 S
平 台设计 程序 ,根据 V A 显示 原理 ,产生 时序驱 动信 号 H 、V ,同时 在正 确的 时序 控制 下 , G S S 扫描输出 R M 中的像素数据至显示器的 V A接口,进行图像显示 。程序流程见图 3 O G 。
基于FPGA的VGA显示控制器设计研究
基于FPGA的VGA显示控制器设计研究作者:李德明来源:《电子世界》2012年第23期【摘要】本设计采用了以FPGA为主控器件的设计方法,将VGA控制器分成几个子模块,采用Verilog HDL硬件描述语言对各个模块进行描述设计,并利用EDA软件,完成对局部模块和整体模块的代码编写及仿真验证。
通过分析VGA显示的基本原理和信号要求,设计整个系统的软件、硬件结构,包括VGA时序和显存时序的发生,通过按键控制实现横彩条、竖彩条图案的选择,并进一步设计出实现文字和图像的显示。
【关键词】VGA显示;FPGA;时序控制;控制器VGA(video graphic array)作为一种标准的显示接口得到了广泛的应用,基于VGA接口标准的显示器作为一种通用型显示设备,已经成为很多电子数码产品的常用输出设备。
与嵌入式系统中常用的TFT液晶显示器件相比,它具有显示面积大、色彩丰富、承载信息量大、接口简单等优点,如果将其应用到嵌入式系统中,可以显著提升产品的视觉效果。
驱动VGA接口显示器,需要很高的扫描频率,以及极短的处理时间,实现VGA显示功能,既可以使用专用的VGA接口芯片,也可以用FPGA来实现对VGA显示器的驱动控制。
本设计采用Altera公司的FPGA芯片驱动VGA接口显示器显示彩条及简单的图形,FPGA的运行速度块,管脚资源丰富,容易实现大规模的系统设计,有大量的软核可用,便于进行二次开发。
另外,由于FPGA具有可重构能力、抗干扰性强等特点,因此,FPGA在工业控制等领域越来越受到重视。
利用FPGA完成VGA显示控制,可以使图像的显示脱离PC机的控制,形成体积小、功耗低的嵌入式便携式系统,应用于地面勘测、性能检测等方面,具有重要的现实意义。
1.VGA显示技术原理VGA显示控制主要有五个信号线,分别为R、G、B、VSYNC(场同步)、HSYNC(行同步)信号。
红(R)、绿(G)、蓝(B)是大家熟知的三原色,R、G、B这三个模拟信号的电平范围是由0.4V到0.7V,由R、G、B的电压差便可以产生出所有的颜色。
VGA产生行同步(HSYNC)
【原创】基于Verilog的VGA显示控制(有源码)一、VGA时序下面的图是本人画了一个晚上的结果,个人认为能够比较详细的阐述VGA的信号时序。
VGA的时序根据不同的显示分辨率和刷新频率会有变化,具体各种类型的时序信息可以参考下面的网站,这里非常详细的说明的每一种显示模式的VGA时序信息。
/vga-timing二、VGA电平VSYNC,HSYNC为标准TTL电平,0V~3.3V。
RGB的电平在0V~0.7V之间(0V为黑色,0.7V为全色)。
三、程序顶层框图VGA产生行同步(HSYNC),场同步信号(VSYNC),并产生每个像素的地址输入单口ROM(显存)中,ROM输出该点需要显示的颜色值。
四、单口ROM(显存)设计程序的显示模式为800*600,72Hz刷新频率,像素频率为50MHz。
每个像素需要显示的颜色存储在单口RAM中,每种颜色用8个字节表示,则如果要显示8 00*600分辨率,则需要800*600字节(480KB)的单口ROM,由于FPGA内部没有这么大的RAM(我用的是ep2c8),因此我把屏幕上100*100个像素组成的矩形作为一个逻辑像素(即显示同一种颜色),这样只要8*6字节(48字节),用FPGA自带的RAM是很容易实现的。
ROM中颜色存储地址表将全屏划分成8*6的方格,每个方格的颜色存储在ROM中,VGA控制器不断产生行坐标(ROM水平地址)和场坐标(ROM垂直地址),最后组合成ROM实际地址输入ROM中,ROM输出该地址的颜色值,显示在LCD中。
五、程序设计VGA控制器程序module VGA(clk,rst_n,hsync,vsync,vga_r,vga_g,vga_b);input clk;//50MHzinput rst_n;//复位信号output hsync;//行同步信号output vsync;//场同步信号//R、G、B信号输出output[1:0]vga_r;output[2:0]vga_g;output[2:0]vga_b;//--------------------------------------------------reg[10:0]x_cnt;//行坐标(这里包括了行同步、后沿、有效数据区、前沿)reg[9:0]y_cnt;//列坐标(这里包括了场同步、后沿、有效数据区、前沿)reg[5:0]Xcoloradd;reg[2:0]Ycoloradd;parameterLeft=184,PixelWidth=100,Top=29;always@(posedge clk or negedge rst_n)if(!rst_n)x_cnt<=10'd0;else if(x_cnt==11'd1040)x_cnt<=10'd0;//行计数记到1040else x_cnt<=x_cnt+1'b1;always@(posedge clk or negedge rst_n)//产生行地址(ROM水平地址)if(!rst_n)Xcoloradd<=6'b000000;else if(x_cnt>=Left&&x_cnt<Left+PixelWidth)Xcoloradd<=6'b000000;else if(x_cnt>=Left+PixelWidth&&x_cnt<Left+2*PixelWidth)Xcoloradd<=6'b000001;else if(x_cnt>=Left+2*PixelWidth&&x_cnt<Left+3*PixelWidth)Xcoloradd<=6'b000010;else if(x_cnt>=Left+3*PixelWidth&&x_cnt<Left+4*PixelWidth)Xcoloradd<=6'b000011;else if(x_cnt>=Left+4*PixelWidth&&x_cnt<Left+5*PixelWidth)Xcoloradd<=6'b000100;else if(x_cnt>=Left+5*PixelWidth&&x_cnt<Left+6*PixelWidth)Xcoloradd<=6'b000101;else if(x_cnt>=Left+6*PixelWidth&&x_cnt<Left+7*PixelWidth)Xcoloradd<=6'b000110;else if(x_cnt>=Left+7*PixelWidth&&x_cnt<Left+8*PixelWidth)Xcoloradd<=6'b000111;else Xcoloradd<=6'b110000;//背景颜色地址always@(posedge clk or negedge rst_n)if(!rst_n)y_cnt<=10'd0;else if(y_cnt==10'd666)y_cnt<=10'd0;//场同步记到666else if(x_cnt==11'd1040)y_cnt<=y_cnt+1'b1;//每计数完一行,场同步就加一always@(posedge clk or negedge rst_n)//产生列地址(ROM垂直地址)if(!rst_n)Ycoloradd<=3'b000;else if(y_cnt>=Top&&y_cnt<Top+PixelWidth)Ycoloradd<=3'b000;else if(y_cnt>=Top+PixelWidth&&y_cnt<Top+2*PixelWidth)Ycoloradd<=3'b001;else if(y_cnt>=Top+2*PixelWidth&&y_cnt<Top+3*PixelWidth)Ycoloradd<=3'b010;else if(y_cnt>=Top+3*PixelWidth&&y_cnt<Top+4*PixelWidth)Ycoloradd<=3'b011;else if(y_cnt>=Top+4*PixelWidth&&y_cnt<Top+5*PixelWidth)Ycoloradd<=3'b100;else if(y_cnt>=Top+5*PixelWidth&&y_cnt<Top+6*PixelWidth)Ycoloradd<=3'b101;else Ycoloradd<=3'b110;//背景颜色地址//--------------------------------------------------//signal port ROMwire[7:0]color;wire[5:0]coloradd;assign coloradd={Ycoloradd,3'b000}|Xcoloradd;//将水平地址和垂直地址合成ROM实际地址sprom u1(coloradd,clk,color);//---------------------------------------------------wire valid;//有效数据显示区标志,就是你在液晶屏幕上可以看到的区域assign valid=(x_cnt>10'd184)&&(x_cnt<10'd984)&&(y_cnt>10'd29)&&(y_cnt<10'd629);//--------------------------------------------------reg hsync_r,vsync_r;always@(posedge clk or negedge rst_n)if(!rst_n)beginhsync_r<=1'b0;vsync_r<=1'b0;endelse beginhsync_r<=x_cnt>=10'd120;//产生hsync信号(行同步)when x_c nt>=50,then hsync_r=1,else0;低电平同步vsync_r<=y_cnt>=10'd6;//产生vsync信号(场同步)my LCD islow syncendassign hsync=hsync_r;assign vsync=vsync_r;//--------------------------------------------------//颜色输出assign vga_r[1]=valid?color[7]:1'b0;assign vga_r[0]=valid?color[6]:1'b0;assign vga_g[2]=valid?color[5]:1'b0;assign vga_g[1]=valid?color[4]:1'b0;assign vga_g[0]=valid?color[3]:1'b0;assign vga_b[2]=valid?color[2]:1'b0;assign vga_b[1]=valid?color[1]:1'b0;assign vga_b[0]=valid?color[0]:1'b0;endmodule六、运行结果七、后记在这次程序中只在ROM中存储了一些随机的数,因此显示出来是一些小方格,如果ROM做的更大,完全可以存储一幅图像,显示在LCD中。
基于Verilog的VGA显示控制电路设计
基于Verilog的VGA显示控制电路设计作者:王涌肖顺文罗春梅来源:《数字技术与应用》2019年第04期摘要:采用自上而下的设计方法实现了一个分辨率较高、显示迅速且协议简单的VGA显示控制电路。
在QUARTUS II 13.1软件开发平台上使用Verilog HDL语言来完成时序模块和彩条像素模块的描述、编译,最后在第三方仿真工具Modelsim-Altera中对其进行模拟仿真,结果显示,该设计满足系统要求,能够成功的通过VGA接口在显示器上显示图案。
关键词:Verilog HDL语言;VGA技术;QUARTUS II 13.1;Modelsim-Altera中图分类号:TN92 文献标识码:A 文章编号:1007-9416(2019)04-0150-020 引言近年来,随着数字电路设计技术的逐步发展,集成电路的发展越来越趋近于超大规模、更低功耗及超高速[1]。
Verilog HDL就是在迫切需要设计者使用EDA工具完成大规模集成电路设计发展要求的情况下应运而生的,它使用编写代码的方法来完成数字电路的设计,不管是底层的门级电路,还是高层的行为描述,都可以通过代码实现,这种方式大大的提高了数字电路的设计效率[2]。
本文就是采用Verilog_HDL语言来实现一个VGA显示控制电路。
VGA接口由于具有传输速率高,协议简单,成本低等特点,因此被广泛使用。
1 设计原理1.1 VGA时序分析VGA主要用于计算机显卡传输图像到显示器的桥梁,将显卡处理的视频图像数据实时传输到显示器上进行显示。
广义的VGA为VGA显示器,狭义的VGA为VGA分辨率的时序。
由IBM公司推出的采用RGB模拟信号的VGA视频传输标准,定义了具有60Hz刷新频率、可产生1677万种色彩的640×480像素格式。
VGA的行扫描时序情况,如图1所示。
行同步时期a、行消隐后肩b、行显示时期c、行消隐前肩d四部分组成一个完整的扫描周期。
基于FPGA的VGA图像控制器设计
是用来模拟 D A转换器 的. 将输入信号 的电压分 成几段 。这样做的原因, 一方 面是考虑到实际应 用中, 很少会用到要显示 2 4位真彩色的情况 ; 另
一
方面是出于节约成本 的 目的. 因为要使用专用 的D A转换器 , 必定增加成本。其 中. 显示器耍求
I V A图像控制器的硬件 电路设计 G
硬件电路如 图 1使用 FG , P A实现 V A控制器 , G 将产生 的信 号经 D A转换送往显示 器的 V A 口。 G 该电路 的 V A接 口的 R G B引脚每个 引脚有两个信号线输 入, G 、、 可知 . 电路只能显示 6位色 的图片. 该 即: 可以显示 6 总共 4种颜色。 由于显示器要求 V A 口输入的必 须是模拟信 号, G 所以在 6 信号进入 个
啊1 ———斗 T 卜__oI h・ - _2 ——ห้องสมุดไป่ตู้ 1
一
幅图片要想在显示器上显示 出来 .
叫 D ■ H hl _ -- I
二
它主要 需要 5个信 号, 同步信 号 行
( o z t_ yc 、 H ro a Sn ) 场同步信号 ( e in l Vr -
t a Sn ) i l yc 和 c
摘
要: 首先介绍了V A图 G 像控制器的硬件电 然后分别从时序信号产生、 片数据的 路, 图 存储和图
像显示三个方面对 V A图像控制器的软件部分进行了介绍. G 最后给出了该控制器在 M dlm中的仿 oe i S 真结果并指出了该设计的可行性及优越性。 关 键 词: 现场可编程门阵列; 视频图形阵列; 行同步信号; 场同步信号
( )时序信号产生机制 1
新手请教verilog实现VGA显示移动小球的问题
新手请教verilog实现VGA显示移动小球的问题:使用ALTER公司的QuartusII软件开发,小弟现在想要实现一个用字模实现的小球,在屏幕上斜线移动的问题,但球会逐行显示又逐行消失,若只横向移动,则能一直显示,希望大家不吝赐教,部分代码如下:module vga(clk,rst_n,vga_hs,vga_vs,vga_r0,vga_g0,vga_b0,vga_r1,vga_g1,vga_b1,vga_r2,vga_g2,vga_b2);input clk;input rst_n ;// synthesis attribute clock_buffer of rst_n is ibufg;output vga_hs;output vga_vs; // sync signals for monitoroutput vga_r0, vga_g0, vga_b0;output vga_r1, vga_g1, vga_b1;output vga_r2, vga_g2, vga_b2;wire hsync;wire vsync;wire valid;wire [9:0] x_cnt;wire [9:0] y_cnt;reg [9:0] char_sel;reg [9:0] char_sel2;wire [15:0] char;wire [31:0] char2;reg [28:0]i;reg [8:0]j;reg [8:0]gx;reg [8:0]gy;//设定屏幕分辨率:800x 525wire [9:0] xpos;//[0...799]wire [9:0] ypos;//[0...524]reg color;reg color2;reg word0;reg globe0;//reg [8:0]adr_g;assign xpos = x_cnt - 10'd180; //确定X轴像素位置assign ypos = y_cnt - 10'd35; //确定Y轴像素位置sync_gen_50m sync_gen_50m_int (.clk ( clk ),.rst_n ( rst_n ),.hsync ( hsync ),.vsync ( vsync ),.valid ( valid ),.x_cnt ( x_cnt ),.y_cnt ( y_cnt ));wire table0 = (( ypos > 10'd140 && ypos < 10'd460 )&&( xpos > 10'd160 && xpos < 10'd640 )); //显示一个方框wire line0 = (( ypos == 10'd140 || ypos == 10'd460 ) && ( xpos > 10'd160 && xpos < 10'd640 )|| ( xpos == 10'd160 || xpos == 10'd640 ) && ( ypos > 10'd140 && ypos < 10'd460 )); //方框边线wire word = word0 && color;wire globe=globe0 && color2;assign vga_r0 = valid ? (globe?1:(word ? 1'b1 : (line0 ? 1'b1 : (table0? 1'b0 : 1'b1 )))) : 1'b0;assign vga_g0 = valid ? (globe?0:(word ? 1'b1 : (line0 ? 1'b1 : (table0? 1'b0 : 1'b0 )))) : 1'b0;assign vga_b0 = valid ? (globe?0:(word ? 1'b0 : (line0 ? 1'b1 : (table0? 1'b0 : 1'b1 )))) : 1'b0;assign vga_r1 = valid ? (globe?1:(word ? 1'b1 : (line0 ? 1'b1 : (table0? 1'b0 : 1'b1 )))) : 1'b0;assign vga_g1 = valid ? (globe?0:(word ? 1'b1 : (line0 ? 1'b1 : (table0? 1'b0 : 1'b0 )))) : 1'b0;assign vga_b1 = valid ? (globe?0:(word ? 1'b0 : (line0 ? 1'b1 : (table0? 1'b0 : 1'b1 )))) : 1'b0;assign vga_r2 = valid ? (globe?1:(word ? 1'b1 : (line0 ? 1'b1 : (table0? 1'b0 : 1'b0 )))) : 1'b0;assign vga_g2 = valid ? (globe?0:(word ? 1'b1 : (line0 ? 1'b1 : (table0? 1'b0 : 1'b0 )))) : 1'b0;assign vga_b2 = valid ? (globe?0:(word ? 1'b0 : (line0 ? 1'b1 : (table0? 1'b0 : 1'b1 )))) : 1'b0;assign vga_hs = hsync;assign vga_vs = vsync;char_rom char_rom_VibesIC_inst(.addr ({char_sel[9:5],ypos[4:1]}), //字符的Y轴由16 pixel变为32 pixel.data (char)always @(posedge clk)beginword0 = ((xpos > (10'd460-j)) && (xpos < (10'd780-j)) && (ypos > 10'd96) && (ypos < 10'd128));char_sel = xpos -10'd460+j;globe0=((xpos>10'd384+gx)&&(xpos<10'd416+gx)&& //小球位置(ypos>10'd140-gy)&&(ypos<172-gy));char_sel2=xpos-10'd384; //小球X轴初始位置if(i==29'h01Ef480)begini=0;j=j+1;gx=gx-1;//小球X轴改变量gy=gy+1;//小球Y轴改变量if(j>280)j=0;if(gx==160)begin gx=384;gy=140;end //小球初始位置if(gx==0)begin gx=384;gy=140;endendelse i=i+1;endalways @(char_sel[4:1] or char)begincase (char_sel[4:1])4'h0 : color = char[15]; //将X轴对应点赋给color4'h1 : color = char[14];4'h2 : color = char[13];4'h3 : color = char[12];4'h4 : color = char[11];4'h5 : color = char[10];4'h6 : color = char[9];4'h7 : color = char[8];4'h8 : color = char[7];4'h9 : color = char[6];4'hA : color = char[5];4'hB : color = char[4];4'hC : color = char[3];4'hD : color = char[2];4'hE : color = char[1];4'hF : color = char[0];endcasechar_rom_2 char_rom_VibesIC_inst2(.addr ({char_sel2[8:5],ypos[4:0]}), //32 pixel.data (char2));always @(char_sel2[4:0] or char2)begincase (char_sel2[4:0])5'h0 : color2 = char2[31]; //将X轴对应点赋给color 5'h1 : color2 = char2[30];5'h2 : color2 = char2[29];5'h3 : color2 = char2[28];5'h4 : color2 = char2[27];5'h5 : color2 = char2[26];5'h6 : color2 = char2[25];5'h7 : color2 = char2[24];5'h8 : color2 = char2[23];5'h9 : color2 = char2[22];5'hA : color2 = char2[21];5'hB : color2 = char2[20];5'hC : color2 = char2[19];5'hD : color2 = char2[18];5'hE : color2 = char2[17];5'hF : color2 = char2[16];5'h10 : color2 = char2[15];5'h11 : color2 = char2[14];5'h12 : color2 = char2[13];5'h13 : color2 = char2[12];5'h14 : color2 = char2[11];5'h15 : color2 = char2[10];5'h16 : color2 = char2[9];5'h17 : color2 = char2[8];5'h18 : color2 = char2[7];5'h19 : color2 = char2[6];5'h1A : color2 = char2[5];5'h1B : color2 = char2[4];5'h1C : color2 = char2[3];5'h1D : color2 = char2[2];5'h1E : color2 = char2[1];5'h1F : color2 = char2[0];endcaseendendmodule。
基于fpga的vga显示
——基于FPGA的VGA显示姓名:王青鹏学号:200661175班级:电子0604日期:200910201.实验目的 (3)2.实验要求 (3)3.实验原理 (3)3.1VGA时序信号 (3)3.2VGA显示时序图 (4)3.3关键参数 (5)3.4VGA显示工作过程 (5)3.5整体设计思路及过程 (6)3.6管脚分配及下载 (15)4.实验心得体会 (16)FPGA的VGA显示一.实验目的1.熟悉和掌握时序控制电路的设计方法。
2.了解VGA显示器的工作时序及其控制电路的工作原理。
3.培养分析系统、进行模块设计及独立解决问题的能力。
二.实验要求1.设计VGA显示器的控制电路,使之控制显示器,完成相应的显示功能。
2.使用一个按钮mod(低有效),使VGA显示器在3种(或4种)不同的显示模式间切换。
使用一个按钮reset,将控制器恢复模式00。
模式00:将屏幕均分,从左到右,依次显示八种不同的颜色。
模式01:将屏幕均分,从上到下,依次显示八种不同的颜色。
模式10:将屏幕均分为8*8棋盘格。
模式11:复位模式,屏幕全黑。
3.利用GW48实验开发系统实现设计的编程下载.三.实验原理3.1VGA时序信号H_SYNC:水平同步信号(负脉冲),每个水平扫描周期显示器刷新V_SYNC:垂直同步信号(负脉冲),每个垂直扫描周期显示器刷新一帧;RGB[2..0]:颜色信号,R——红色信号;G——绿色信号;B——蓝色信号。
其对应颜色关系如下表所示。
3.2VGA显示器的时序图垂直刷新循环3.3关键参数1.实验板上的晶振提供全局时钟信号(50MHz),通过分频得到时钟信号clk25M(fclk=25MHz)作为输入时钟。
2.刷新1个像素所需时间Tpixel=1/fclk=40ns;3.刷新一行所需时间Trow=Tpixel*640+guard bands=25.6us+B +C+E=32.2us;4.一个垂直扫描周期内包含480个水平扫描周期,完成一帧的刷新。
基于FPGA的VGA显示控制器IP核研究
摘要IP (Intellectual Property)[1][2]是集成电路知识产权的主体。
随着CPLD/FPGA的规模越来越大,设计越来越复杂,在未来的EDA技术和集成电路设计中使用IP核是一个发展趋势。
设计依据VGA显示的原理,“抛弃”VGA显示专用芯片,研究了一种基于FPGA 的VGA显示控制器IP核,软件上完全由VHDL硬件描述语言编写,相比较以前使用的由小规模集成电路设计的视频采集卡而言,本系统具有可靠性高、性能稳定、开发灵活、调试简单、可以现场编程、可移植、设计成本降低、开发周期较短、屏幕显示质量高等特点,必将有着广泛的应用价值。
关键字IP核FPGA VHDL 仿真综合VGA控制器AbstractIP (Intellectual Property) is the abbreviation of integrated circuit intellectual propert. Along with the scale of the CPLD/ FPGA more and more big, design more and more complicated, use the IP core in future technique of EDA and the integrated circuit designs is a development trend.The design rests on the VGA demonstration the principle, "gets rid of" VGA to demonstrate the special-purpose chip, study one kind based on FPGA VGA the display control switch IP core, on software by the VHDL hardware description language compilation, compared before used says by the small scale integration circuit design video frequency gathering card, This system has the reliability high, the performance stable, the development nimble, the debugging simple, may the scene programming, be possible to transplant, design cost reduction, the development cycle is shorter, the screen demonstration quality higher characteristic, will certainly to have the widespread application value.Key words IP core FPGA VHDL Simulator&Synthesize VGA controller目录第1章前言 (1)1.1 论文背景 (1)1.2 研究内容 (1)第2章IP综述 (2)2.1 IP定义 (2)2.2 发展IP技术的目的意义 (3)2.3 国内外IP产业发展状况 (3)2.3.1 国际IP产业的发展状况 (3)2.3.2 国内IP产业的发展状况 (4)2.4 IP核的市场前景分析 (5)第3章VGA系统工作原理 (6)3.1 VGA技术组成 (6)3.2 VGA工作模式 (7)3.3 VGA数据到颜色的转换 (8)第4章VGA控制器IP核设计与实现 (9)4.1 VGA控制器 IP核设计 (9)4.1.1 VGA接口及设计参数 (9)4.1.2 VGA图像控制器的设计方案 (9)4.2 VGA控制器IP核软件平台实现 (13)4.2.1 QuartusII开发环境 (13)4.2.1.1 QuartusII设计流程 (14)4.2.1.2 Quartus II设计输入 (14)4.2.1.3 Quartus II综合 (15)4.2.1.4 Quartus II仿真 (15)4.2.2 VHDL语言实现 (16)4.2.3 仿真与验证 (20)4.2.4 Modelsim 仿真工具简介 (22)4.2.4.1 ModelSim的代码仿真 (23)4.2.4.2 门级仿真和时序仿真 (23)4.2.5 VGA控制器IP核的封装与打包 (23)4.3 VGA控制器IP核硬件平台实现 (25)第5章实验结果及性能分析 (28)5.1 实现方案 (28)5.2 性能分析 (29)总结 ....................................................................................... 错误!未定义书签。
基于FPGA/CPLD的VGA驱动电路设计
口统 一 为 6根 信 号 , 别 是 R( 、 绿 )B( ) 分 红)G( 、 蓝 、 a ( 同步 信 号 ) V ( 同步 信号 )D L 点 像 素 s行 、 s场 , C K(
时钟信号 ) R 。C T可 看作一 个 604 0点构 成 的大 4 *8
型点阵屏 . 一行 6 0个点 , 4 0行 。 R 4 共 8 C T的显示 方 式 为逐 行 “ 打点 ” 描 , 扫 即先从 左 到 右 扫描 一 行 , 扫 描 完一行 后 扫描下 一行 。 全部 扫 面完后 又 回到第 一 行 重新 扫描 , 这一 过程称 为 一帧或 一场 。 C T显示 器一 秒钟 扫描 6 R O帧左 右 . V A在 但 G 实 际工作 的时 候并 不 是 每行 扫 描 6 0个 点 ,每 场 4
第 1 卷 第 5期 2
J u n lo h n o g ElcrcP we olg o r a fS a d n e ti o rC le e
自由的使用 。
6 3
11 V A驱 动时 序软件 的设 计 .1 G .
软件 设计 有两 个状 态机 构成 , 别 负责行 信 号 分
当 c u ty 6 3 o n_ = 6 ,进 人行 同步 信 号 期 , G R B输
人为 0 H = ; , s 0
当 c u ty 7 9 o n_ = 5 ,进 入行 消 隐后 肩 , G R B输 人
为 0 Hs 1 , = ;
当 c u ty 7 9,一 行 扫描 结 束 , G o n_ = 9 R B输 入 为
/
因此 必 须 严 格 按 按 照 V A 的信 号 时 序来 驱 G
动 C T或者液 晶显示 器 。下 图为 V A信 号时序 : R G
基于FPGA的VGA图像控制器的设计与实现
控 制 器 , 在硬 件 平 台上 实现 设 计 目标 。 与传 统 的设 计 相 比 , 加 了 图像 模 式 的 选择 , 于 嵌 入 式 系 统 应 用 扩展 。 并 增 便 使 用 F GA 代 替 VG 的 专 用显 示 芯 片 , 以提 高数 据 处 理 速 度 , 约 硬 件 成 本 。 P A 可 节
20 0 9年 1 2月
De . 20 c 09
基 于 F GA 的 VGA 图像控 制器 的设 计 与实 现 P
谢 磊
( 州 大 学 信 息 工 程 学 院 , 州 4 00 ) 郑 郑 5 0 1
摘
要 : 据 VG 显 示原 理 , 用 VHD 依 A 利 L作 为 设 计 语 言 , 计 了 一种 基 于 现 场 可编 程 器件 F GA 的 VGA 多 图2 No I 6 .6
新 乡学 院 学报 ( 自然科 学版 )
J u n l fXi x a g Un v r i ( t r l ce c d to ) o r a n in ie st Na u a in e E i n o y S i
f m ,t i sg c n s e p da a pr e sng s e d or h sde in a pe d u t oc s i p e .
Ke r s PGA ;VGA;VGA r p is c n r l r y wo d :F g a hc o tol e
关键 词 : 场 可 编 程 门阵 列 ; 频 图 形 阵 列 ; 现 视 VGA 图像 控 制 器
中 图 分 类 号 : N9 9 8 ; 3 9 T 1 . 2 TN 8
文献标志码 : A
文 章 编 号 :643 2 (0 9 0—0 10 1 7 — 3 6 2 0 ) 60 5 3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VGA接口即电脑口共有15针,分成3排,每排 5个孔,卡上应用最为广泛的 接口类型,绝大多数显卡都带 有此种接口。它传输红、绿、 蓝模拟信号以及同步信号(水 平和垂直信号)。
管脚 1
定义 红基色 red
管脚 9
2
3 4 5 6 7 8
绿基色 green
蓝基色 blue 地址码 ID Bit 自测试 ( 各家定义不 同) 红地 绿地 蓝地
10
11 12 13 14 15
定义 保留 ( 各家定义不 同) 数字地 地址码 地址码 行同步 场同步 地址码 ( 各家定义 不同 )
* 步骤一:将图像修剪为所需尺寸 * 步骤二:将像素值分三个颜色表 * 步骤三:将数据存入ROM存储器 * 步骤四:创建宏功能模块LPM_ROM