基于fpga系统的vga显示驱动控制器的制作方法

文档序号:2654586阅读:178来源:国知局
专利名称:基于fpga系统的vga显示驱动控制器的制作方法
技术领域
本实用新型属于嵌入式显示系统,具体设计一种适用于VGA设备显示技术。
背景技术
VGA (Video Graphics Array)是IBM公司于1987年提出的一个使用模拟信号的电脑显示标准,这个标准对于现今的个人电脑市场已经不常用,但在很多分辨率要求不是很高的场合,例如嵌入式显示系统的图像信息的实时显示等,VGA仍然具有很大的应用市场。 同时VGA仍然是最多制造商所共同支持的一个低端标准,个人电脑在加载自己的独特驱动程序之前,都必须支持VGA标准。例如微软公司的Windows系列产品的开机画面仍然使用 VGA显示模式。通用VGA显示系统主要由时序控制电路、显存控制电路、读写仲裁控制以及CPU接口控制等部分组成。控制电路主要完成时序发生、显存数据操作、主时钟选择和D/A转换等功能;显存则提供显示数据缓存空间;CPU接口控制作为显示控制程序,通过访问显存,即可实现到VGA屏幕的内容映射。随着 FPGA (Field-Programmable Gate Array)的发展及其价格的不断下降,FPGA 的应用优势逐渐显现。在嵌入式系统设计中,为了实现VGA显示功能,既可以使用专用的 VGA接口芯片,也可以使用基于FPGA的VGA接口 IP软核。虽然使用VGA专用芯片具有更稳定的VGA时序和更多的显示模式等优点,但其成本高;而使用VGA接口 IP软核具有设计灵活、集成度高、系统成本低等显著优势,但其功能单一,显示模式少。
发明内容本实用新型的目的在于克服上述VGA专用芯片成本高,而普通VGA IP软核无法满足多种显示模式的缺点,提供一种基于FPGA系统的VGA显示驱动控制器。本实用新型的技术方案为基于FPGA系统的VGA显示驱动控制器,它包括CPU主控制单元,三通道8位高速视频DAC,所述CPU控制单元发送命令或数据到FPGA逻辑控制单元,FPGA逻辑控制单元解析命令或数据后,再将SDRAM显存单元的图形数据,经三通道8位高速视频DAC变换成VGA信号后,输出到VGA显示器显示。所述FPGA逻辑控制单元包括GenericPort逻辑模块;与CPU控制系统物理连接,用于解析CPU控制系统写入的命令和读写控制;PLLs控制模块用于控制不同显示分辨率下的各种有效时钟;仲裁逻辑模块用于协调完成CPU接口和VGA时序发生器对SDRAM访问;异步FIFO模块用于协调CPU控制系统通过GenericPort访问SDRAM显存单元和 SDRAM逻辑控制模块访问SDRAM显存单元;SDRAM逻辑控制模块用于SDRAM显存单元的控制;VGA时序控制模块产生各种标准格式的行、场同步信号予以输出;[0014]寄存器组件。所述异步FIFO模块的协调是当FIFO写满时,FIFO控制逻辑产生写满信号,FPGA 逻辑控制单元进而产生wait信号,通知CPU控制系统暂停数据的写入,以免发生数据丢失; 当FIFO读空时,FIFO控制逻辑产生读空信号,FPGA逻辑控制单元进而产生wait失效信号, 通知CPU控制系统可以将数据写入FIFO的双端口存储器。所述仲裁逻辑模块的协调是控制SDRAM显存单元的分时读写,且以读SDRAM显存操作优先。所述读SDRAM显存操作优先是采用了 VGA刷新访问优先模式,CPU访问只处于VGA 刷新的间断周期。当系统工作在设置模式(ConfigMode)时,CPU控制系统通过并行总线读写FPGA 逻辑控制 单元的内部寄存器,完成相应的参数设置。同时CPU控制系统在GenericPort模式下通过异步FIFO模块,经SDRAM逻辑控制模块,向外挂的SDRAM显存单元中写入图像 BitMatrix数据。当系统工作在屏显模式(DisplayMode)时,VGA时序控制模块经SDRAM逻辑控制单元,访问SDRAM显存单元,读出像素信息,再经三通道8位高速视频DAC变换成VGA 信号后,配合行、场同步信号,输出到VGA显示器显示。本实用新型支持更多的显示分辨率,如VGA (640 X 480)、SVGA (800 X 600)、 XGA (1024X 768);采用外挂大容量SDRAM,提供16/24位真彩显示;采用完善的读写仲裁机制,避免了 SDRAM读写冲突造成的VGA屏幕抖动;其成本低。

图1为本实用新型基于FPGA系统的VGA显示驱动控制器的原理框图。图2为本实用新型的SDRAM逻辑控制模块的原理框图。图3为本实用新型的异步FIFO模块的原理框图。
具体实施方式
如图1所示,CPU控制单元200发送命令或数据到FPGA逻辑控制单元100,FPGA 逻辑控制单元100解析命令或数据后,再将SDRAM显存单元300的图形数据,经三通道8位高速视频DAC400变换成VGA信号后,输出到VGA显示器500显示。FPGA逻辑控制单元100如图1所示,UGenericPort 逻辑模块 110 GenericPort逻辑模块110通过16位并行数据总线、23位地址总线以及其它读写控制信号,与CPU控制系统物理连接,并根据CPU控制系统写入的命令解析出相应的寄存器地址、寄存器数据、显存数据FIFO寄存器、显存地址FIFO寄存器以及相应的读写控制,进而确定后续模块控制以及相应参数读写。2、PLLs控制模块PLLs控制模块120属于无限循环工作系统,无状态机结构。基于FPGA的灵活性, 特别是片上PLL资源,可以提供支持VGA、SVGA、XGA等分辨率的像素频率。因VGA分辨率显示对频率要求很高,根据国际标准,在VGA、SVGA等不同场频下的最佳主频是180MHz,即为FPGA主频。系统采用外部输入的48MHz时钟为主频时钟源,经PLL通过15/4倍频后达到180MHz时钟,然后通过分频器得到不同显示分辨率下的各种有效时钟。另考虑到半导体产品的功耗,我们对于各个分频器采取分开使能控制,不同的时钟分别提供给FPGA逻辑控制单元中的功能寄存器组模块、仲裁逻辑模块、SDRAM逻辑控制模块、VGA时序控制模块等。3、仲裁逻辑模块130它是完成CPU接口和VGA时序发生器对SDRAM访问的协调,由于SDRAM显存总线只有一组,CPU在通过异步FIFO访问它的时候,VGA时序控制模块的维持刷新也在高速访问 SDRAM显存总线,这样就存在显存总线的抢占问题,仲裁逻辑模块需要做出裁决。由于CPU 写操作属于随机事件,而VGA刷新数据请求则属于可预测事件并带有周期性,故这里采用了 VGA刷新访问优先模式,即CPU访问只处于VGA刷新的间断周期行场消隐、行场前后肩等,这种低优先级情况下,CPU访问会被周期性打断,为此需要给CPU访问专门添加大深度地址/数据双向异步FIF0(First In First Out),这样就可以用较小的资源消耗,换取总线访问效率的大幅提高。4、异步 FIFO 模块 140在有大量的数据需要进行跨时钟域传输且对数据传输速度要求比较高的场合,显步FIFO是一种简单、快捷的解决方案。异步FIFO用一种时钟写入数据,而后用另外一种时钟读出数据,读写指针的变化动作由不同的时钟产生。由于CPU控制系统通过GenericPort访问SDRAM显存单元的速度和SDRAM逻辑控制模块访问SDRAM显存单元的速度不匹配,并且时钟也不相同,为了避免冲突,我们在这里加入异步FIFO缓冲模块来协调。GenericPort访问的数据分为数据和SDRAM地址,因此需要两个异步FIFO缓冲来完成,我们将其设置为数据FIFO位宽为16bit,深度为1000 ;地址 FIFO位宽为23bit,深度为1000。本实用新型的异步FIFO模块的原理框图见图3。当FIFO写满时,FIFO控制逻辑产生写满信号,FPGA逻辑控制单元进而产生wait信号,通知CPU控制系统暂停数据的写入, 以免发生数据丢失;当FIFO读空时,FIFO控制逻辑产生读空信号,FPGA逻辑控制单元进而产生wait失效信号,通知CPU控制系统可以将数据写入FIFO的双端口存储器。5、SDRAM逻辑控制模块150控制寄存器模块151 控制寄存器模块包含控制工作模式的各种寄存器。系统可以根据实际需要配置 SDRAM的工作模式,工作模式可以通过CPU接口来配置,也可以省去CPU接口而通过预设参数来配置。寄存器主要包括两类一是初始化模式控制寄存器,用于控制SDRAM初始化指令流的产生方式;二是SDRAM模式控制寄存器,用于SDRAM的刷新及其它操作指令参数的控制;初始化请求产生模块152系统上电后,初始化请求信号的产生需延迟控制。由于系统上电IOOus 200us 后,时钟才能稳定,然后SDRAM才可以开始初始化操作。为防止译码毛刺的出现,采用格雷码计数器来实现这一延迟的控制。系统复位结束后,启动计数器,当计数器计到设定的值后,计数值保持,同时译码产生初始化的请求信号,在SDRAM初始化完成后,请求变为无效;刷新请求产生模块153刷新请求产生模块,可根据模式寄存器配置的频率产生SDRAM的刷新请求信号。这部分电路也是采用格雷码计数器实现的。计数器计到设定的值后产生刷新请求信号,同时返回到初值继续计数;指令仲裁器模块154指令仲裁器模块对初始化请求、刷新请求和系统的读写请求进行优先级仲裁,产生初始化响应initial*hold、刷新响应ref*hold和读写响应sdram*wr*hold。初始化操作只在上电时进行一次,它是SDRAM正常工作的基础,所以它的优先级最高,刷新请求的优先级次高,读写请求的优先级最低。当某一种操作正在执行时不会响应后来的请求;
指令译码器模块155指令译码器模块根据指令仲裁器的结果,以及SDRAM控制器模式寄存器对工作模式参数的设置,分别对初始化指令、刷新指令、读写指令进行译码,译码的结果就是输出的控制指令字。当initial*hold = 1时,译码产生SDRAM的初始化指令流;当ref*hold = 1时,译码产生刷新指令;当sdram*wr*hold = 1并且读有效(Sdram*rd*n = 0)或写有效 (Sdram*wr*n = 0)时,根据寄存器设置的指令参数译码输出BANK激活指令、读指令及预充指令。此外,在SDRAM执行任何一种操作时,都用sdram*busy = 1来指示SDRAM忙;用 sdram*busy = 0来指示SDRAM空闲。用sdram*ready = 1指示系统对SDRAM数据有效的读写操作。数据通路模块156。6、VGA时序控制模块160以XGA为例,VGA时序控制模块利用FPGA内部时钟锁相环倍频后的65MHZ的主时钟,产生标准XGA格式的行、场同步信号,同时在行、场参考信号都有效时产生一个信号给输出缓冲模块,作为输出缓冲的读使能信号。根据VESA标准,分辨率为1024X768、帧频为 60HZ的标准XGA信号的象素时钟为65MHZ,行同步信号的有效时间相当于1024个象素时钟周期,同步头宽度相当于136个象素时钟周期,前肩宽度为相当于26个象素时钟周期,后肩宽度为相当于162个象素时钟周期。场同步信号的有效时间相当于768个行周期长度,同步头为6个行周期长度,前肩为3个行周期长度,后肩为29个行周期长度。根据此标准,当行、场参考信号都有效时,一幅图像可输出1024X768个有效数据.7、寄存器组件170。综上所述,本实用新型充分应用了 FPGA快速并行处理数据的特性,各功能模块紧密配合,解决了嵌入式系统实时图像显示的问题,同时增加了系统可靠性和设计灵活性,且大大减少了电路板尺寸,节约了成本,扩展了应用范围。
权利要求1. 一种基于FPGA系统的VGA显示驱动控制器,它包括CPU主控制单元,三通道8位高速视频DAC,其特征在于所述CPU控制单元发送命令或数据到FPGA逻辑控制单元,FPGA逻辑控制单元解析命令或数据后,再将SDRAM显存单元的图形数据,经三通道8位高速视频 DAC变换成VGA信号后,输出到VGA显示器显示。
专利摘要本实用新型公开了一种基于FPGA系统的VGA显示驱动控制器,它包括CPU主控制单元,三通道8位高速视频DAC,所述CPU控制单元发送命令或数据到FPGA逻辑控制单元,FPGA逻辑控制单元解析命令或数据后,再将SDRAM显存单元的图形数据,经三通道8位高速视频DAC变换成VGA信号后,输出到VGA显示器显示。本实用新型支持更多的显示分辨率,如VGA(640×480)、SVGA(800×600)、XGA(1024×768);采用外挂大容量SDRAM,提供16/24位真彩显示;采用完善的读写仲裁机制,避免了SDRAM读写冲突造成的VGA屏幕抖动;其成本低。
文档编号G09G5/00GK202075970SQ201020288748
公开日2011年12月14日 申请日期2010年8月11日 优先权日2010年8月11日
发明者苏亦雄 申请人:武汉力源信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1