《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > SDRAM在图形生成电路中的应用
SDRAM在图形生成电路中的应用
2014年电子技术应用第9期
高伟林,曹 峰,郭 超
中航雷达与电子设备研究院 军品研究所,江苏 苏州215151
摘要: 针对机载座舱显示器对高分辨率图形实时生成与显示的应用需求,提出了一种基于SDRAM帧存的图形生成电路实现方法。该方法以DSP作为图形处理器执行图形运算算法,以FPGA作为协处理器,对SDRAM帧存采取乒乓操作方式进行图形数据缓冲处理,实现了图形的实时生成。运用该方法只需两片SDRAM器件即可实现分辨率高达1 600×1 200的图形数据的实时生成与显示处理;对时序参数和接口逻辑做少许修改,可生成多种分辨率图形画面。
中图分类号: V243.6
文献标识码: A
文章编号: 0258-7998(2014)09-0044-04
Application of SDRAM on graphics generation circuit
Gao Weilin,Cao Feng,Guo Chao
Military Institute,the Radar & Avionics Institute of AVIC, Suzhou 215151,China
Abstract: According to the requirement of real-time generation and display of high resolution graphics at cockpit graphics display system, a method of graphics generation circuit based on SDRAM frame buffer is proposed. The graphics generation algorithms are performed by DSP.SDRAM frame buffer is accessed in ping-pong operation mode and the graphics can be generated in real-time in cooperation with FPGA. Only two chip of SDRAM is needed to generate the graphics with resolution of 1 600×1 200 in real-time. The proposed system can be used for multiple resolution graphics by modifying the timing parameters and interface logic.
Key words : high resolution graphics generation;SDRAM frame buffer;ping-pong operation;FPGA

    显示系统是航空电子系统的重要组成部分,现代飞机和其他载人飞行器的座舱显示向驾驶员提供飞行器、发动机和其他系统所测试的参数,包括从起飞、导航到着陆等全过程所需要的各种信息[1]。图形显示系统性能的优劣直接影响到飞行员获取飞行信息进而做出判断和决策的效率。作为设计过程的一部分,必须确定驾驶员的信息需求,并且信息显示必须设计得确保提供充分的态势感知[2]

    随着显示分辨率的提高,要处理的像素也越来越多, 而允许的处理时间却受屏幕刷新率所限制[3]。目前主流的机载显示分辨率为UXGA(1 600×1 200×60 Hz),数据传输率为345 MB/s[4]。高速、高带宽数据处理需要大容量高速率的帧存器件做数据缓冲。SRAM器件有着读写速度快、控制简单的特点,但是其容量小,成本高。在各种随机存储器件中,SDRAM的价格低、体积小、速度快、容量大,是比较理想的器件[5-6]。本文针对高分辨率图形显示应用需求设计了一种基于SDRAM帧存的图形生成电路,利用DSP执行图形运算算法,利用FPGA作为协处理器,利用SDRAM作为图形帧存并采取乒乓操作方式进行数据存取,实现了分辨率高达1 600×1 200的图形实时生成与显示。

1 图形生成原理

    飞行技术的发展使得座舱内需要显示的信息量增大,尤其在做战术动作时,画面变换速度快,要求图形的更新速度也必须很快,才可以避免画面的断续。为达到动态实时显示及画面清晰,硬件上需采用更快的图形处理器和更合理的设计[7]。本文采用ADI公司的TigerSHARC系列高速DSP器件TS201作为图形处理器,以FPGA作为协处理器,采用大容量高速SDRAM器件作为图形帧存,原理框图如图1所示。

jcdl6-t1.gif

    其中DSP负责图形生成运算并且将数据结果通过FPGA写入SDRAM中,FPGA从SDRAM中读出数据送至显示部件进行显示。本设计采用双帧存结构,DSP和FPGA对SDRAM的帧存操作采取乒乓方式,以场同步信号为周期进行切换。

2 FPGA设计

    FPGA设计主要包括SDRAM控制器设计、系统接口模块设计、乒乓模块设计等。

2.1 SDRAM控制器设计

    SDRAM的操作时序非常复杂,控制命令主要包括:激活命令ACTIVE、读命令READ、写命令WRITE、预充电命令PRECHARGE、刷新命令REFRESH、操作模式加载命令LOAD MODE REGISTER等。上电之初要先进行初始化配置,而后才可进行正常读写。一个单独的读写操作需要有数个时钟周期的配套操作,这也部分抵消了其高速率带来的优势。全页突发操作模式能够很好地发挥SDRAM高速读写的性能[8]。突发操作是指从内存中连续的地址读写有限的数据,在一个SDRAM 设备的频率周期中,可以读写与时钟个数近似等量的数据[9]。本文采取突发操作方式对SDRAM进行数据存取处理。

    本文采用VHDL硬件描述语言并用有限状态机来实现SDRAM各个控制命令状态间的切换。使用VHDL语言来描述有限状态机,可以充分发挥硬件描述语言的抽象建模能力[10]。SDRAM控制器逻辑框图如图2所示。图中各个信号的定义如表1所示。

jcdl6-t2.gif

jcdl6-b1.gif

    控制器内部逻辑主要分为三部分,分别为:状态转换模块sdr_ctrl、状态处理模块sdr_sig、数据处理模块sdr_data。状态转换模块sdr_ctrl负责初始化状态机和初始化完成后各个操作命令之间状态转移关系的建立,状态处理模块sdr_sig负责各种状态命令下对应的地址、控制命令信号的生成,数据处理模块sdr_data负责控制数据端的读写使能三态控制。

2.2 系统接口模块

    除了控制器内部逻辑本身,FPGA内部还需建立与控制器的交互关系,根据应用要求产生系统接口模块System,负责在适当的时候发起读写操作。FPGA内部相关的模块关系如图3所示。

jcdl6-t3.gif

    System模块主要负责生成sdr_top模块的激励信号,包括sys_ADSn、sys_R_Wn、sys_A等。

2.3 乒乓操作

    在图形产生系统中将显存部件设置为乒乓双缓存结构,可以达到提高系统数据吞吐量和系统处理效率的目的。本文中显存部分包括两片SDRAM存储器,分别为SDRAM1和SDRAM2。对显存的操作分为两个主体,一个为FPGA内部逻辑生成的SDRAM控制器1,另一个为DSP集成的SDRAM控制器2。显存的选择和切换管理通过场同步的二分频信号SET实现,SET为“0”时,FPGA生成的SDRAM控制器对SDRAM1进行操作,DSP集成的SDRAM控制器对SDRAM2进行操作;SET为“1”时,FPGA生成的SDRAM控制器对SDRAM2进行操作,DSP集成的SDRAM控制器对SDRAM1进行操作。SDRAM乒乓操作的框图如图4所示。

jcdl6-t4.gif

    DSP写入SDRAM中的数据需定时读取并送出显示,在显示动态图形画面时,需对帧存中的原始数据进行清屏处理,否则会引起画面重影。清屏的实质就是将整个显示帧缓存全部填充成透明色,尽管处理简单,但通过纯软件实现非常费时[11]。本文设计了一种利用FPGA逻辑进行画面消隐的方法,减轻了软件操作的负担,提高了系统运行效率。具体方法为:利用SDRAM的高速高带宽优势,将每行数据以SDRAM操作时钟高速读出,通过FIFO1进行缓冲后读出显示。当一行数据从SDRAM中全部读出后,立即通过FIFO2以SDRAM操作时序向SDRAM该行地址写入0数据,以此达到清空该行数据的目的。每一行操作均参照此方法,则当一帧画面全部读出完毕后,该帧原有数据也全部得到清空。

3 高分辨率画面数据存取

    为了高效利用SDRAM存储空间,在DSP控制SDRAM操作期间,将地址线错开一位相连,SDRAM地址总线第0位与DSP地址总线第1位相连,SDRAM地址总线第1位与DSP地址总线第2位相连,以此类推,这样SDRAM的一个地址空间将存储两个像素数据。SDRAM位宽为32 bit,高16位和低16位分别存放两个相邻的像素数据。针对1 600×1 200分辨率画面,在SDRAM中一行1 600个像素数据只需对应800个地址。本文所采用的SDRAM最大突发长度是512,程序中将突发长度设置为512和288两种类型。显示器的一行像素数据和SDRAM中的两行地址单元对应,其中第一行512个地址单元对应前1 024个像素数据,第二行前288个地址单元对应后576个像素数据,后224个地址单元舍弃。这样总共需2 400行存放一帧画面数据,小于SDRAM中4 096行一个BANK的容量。

    根据VESA标准,分辨率为1 600×1 200、刷新率为60Hz的画面,行消隐包括50个行周期,一帧画面周期共包含1 250个行周期,式(1)给出了行周期计算公式:

    jcdl6-gs1.gif

    针对一行数据,需完成突发读和突发写两个步骤,突发读通过FIFO缓冲显示,突发写对已读出的SDRAM数据进行清空。每次突发读、写需分两次进行,第一次完成512个数据突发操作,第二次完成288个数据突发操作。一个行周期内共需完成4次突发操作,需产生4个sys_ADSn信号。为了便于SDRAM控制器区分512突发操作和288突发操作,在System模块中设计了一个sys_BLS(burst length select)突发长度选择信号,其为“0”时通知控制器进行512突发,为“1”时通知控制器进行288突发。

    本设计中SDRAM的操作时钟为150 MHz,式(2)给出了一行数据处理的时长:

    jcdl6-gs2.gif

    式(2)分子为处理一行数据所需的总时钟周期数目,其中包含4次突发操作周期以及每次突发操作所配套的行选通、列选通、预充电、自刷新等命令所消耗时钟周期。由式(2)知,处理一行数据的时间小于行周期13.33 μs。根据VESA标准,1 600×1 200分辨率画面行周期包含2 160个像素时钟周期。行同步宽度为192个像素时钟周期,实际程序中利用行同步头做清零处理,由式(3)可得到实际可用的操作时间为:

    jcdl6-gs3.gifjcdl6-gs3.gif

    HSYNC、HBLANK、sys_ADSn、sys_R_Wn、sys_BLS的时序波形图如图5所示。

jcdl6-t5.gif

    在行同步上升沿开始产生第1个低电平sys_ADSn信号,行地址加1,sys_R_Wn为高,sys_BLS为低,通知SDRAM控制器进行512突发读操作;完成后产生第2个sys_ADSn信号,行地址加1,此时sys_R_Wn为高,sys_BLS为高,通知控制器进行288突发读操作;完成后产生第3个sys_ADSn信号,行地址减1,此时sys_R_Wn为低,sys_BLS为低,通知控制器完成512突发写操作;完成后产生第4个sys_ADSn信号,行地址加1,此时sys_R_Wn为低,sys_BLS为高,通知控制器进行288突发写操作。SDRAM的行地址按照A、A+1、A、A+1、A+2、A+3、A+2、A+3……的规律递增,突发操作状态按照读、读、写、写、读、读、写、写……的规律进行。

4 实验验证

    本文采用的DSP器件是ADI公司TigerSHARC系列的TS201,FPGA采用Altera公司的EP2S60F672,FPGA开发环境为QuartusII9.1,运用开发环境集成的在线逻辑分析仪工具Signaltap II抓取sdram控制器的各个相关信号波形,如图6所示。

jcdl6-t6.gif

    本文针对机载显示器对高分辨率图形显示的需求,采用SDRAM器件作为图形帧存,使用VHDL语言设计了SDRAM控制器;针对1 600×1 200分辨率画面实时生成需求,设计了512和288两种突发长度,通过FPGA内部的FIFO进行数据缓冲处理,对SDRAM采取乒乓操作方式,实现了分辨率高达1 600×1 200图形的实时生成与显示。

参考文献

[1] 贾银亮.基于FPGA+DSP的飞机座舱综合图形显示技术研究[D].南京:南京航空航天大学,2011.

[2] SPITZER C R.数字航空电子技术(上)航空电子元件、软件和功能件[M].谢文涛,译.北京:航空工业出版社,2010.

[3] 孔全存,李成贵,张凤卿.主飞行仪表图形加速显示系统的FPGA设计[J].电子技术应用,2007,33(4):62-64.

[4] 李翠娟,陈川,张晓曦,等.几种机载视频技术要点分析与发展趋势探讨[J].航空电子技术,2012,42(1):129-131,134.

[5] 杨海涛,苏涛,巫檬.基于FPGA的SDRAM控制器的设计和实现[J].电子科技,2007(1):8-12.

[6] 段晓晨,何小刚,程永强.实时视频SDRAM控制器的FPGA设计与实现[J].太原理工大学报,2006,37(5):5-8.

[7] 谷勇,艾德峰,魏延岩.飞机座舱显示系统画面显示质量的研究[J].海军航空工程学院学报,2009,24(6):631-634.

[8] 王利颖,蒋亚东,罗凤武.嵌入式实时图像处理系统中SDRAM控制器的实现[J].现代电子技术,2009(9):137-139.

[9] 林志煌,解梅.一种简易SDRAM 控制器的设计方法[J].现代电子技术,2008(16):18-20.

[10] 张波,张焕春,经亚枝.基于DSP和FPGA的座舱图形显示系统关键技术研究[J].信息与控制,2003,32(6):549-552.

[11] Micron Technology Inc..SYNCHRONOUS DRAM MT48LC8M32B2-2 MEG ×32 × 4 banks[Z].2003.

此内容为AET网站原创,未经授权禁止转载。