找回密码
 注册
关于网站域名变更的通知
查看: 158|回复: 1
打印 上一主题 下一主题

基于FPGA的一种高速图形帧存设计

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-15 14:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

摘要:帧存是图形显示系统的核心部件之一,帧存的设计关系到系统的整体性能。介绍了一种高速图形帧存的设计方法。该高速帧存采用SRAM作为存储体,应用FPGA实现双帧存交替切换、上电清屏等功能,并借鉴电影遮光板的原理实现单帧双扫描功能,增加了系统视频带宽。该帧存已在某型飞机座舱图形显示系统中获得成功应用。

关键词:图形帧存 仪表装置 LCD VHDL FPGA

帧存是图形处理器与显示设备之间的数据通道,所有要显示的图形数据首先是存放在帧存之中,然后才送出去显示的,因此帧存的设计是图形显示系统设计的一个关键。传统上,可以用来设计帧存的存储器件有多种,如DRAM、VRAM、SDRAM及SRAM等。DRAM、VRAM及SDRAM属于动态存储器,容量大、价格便宜,但速度比SRAM慢,而且在使用中需要定时刷新。当图形处理器没有外部专用刷新接口时,就需要设计刷新电路,这给系统设计带来不便。SRAM器件高速且接口简单,但是价格较贵、容量小。近年来,随着SRAM容量的不断增大和价格的不断下降,在一些需要高速实时显示的图形显示系统中,用高速SRAM设计图形帧存越来越普遍。本文介绍已在项目中实际应用的采用双SRAM帧存交替切换的高速帧存设计方法。详细介绍应用FPGA设计帧存控制器,实现帧存的交替、上电清屏及借鉴电影遮光板原理实现单帧双扫描的方法。

1 图形显示系统简介

图1是某专用图形显示系统结构框图,图形显示系统采用DSP+FPGA构架。图形处理器采用AD公司的ADSP21061芯片;AMLCD采用Korry公司的KDM710全彩色液晶显示模块,该模块为5×5英寸、600×600分辨率全彩色液晶显示模块,24位数字RGB输入;两个帧存A和B采用IDT公司的71V424L10V高速异步静态RAM(读写速度为10ns)。系统采用双帧存轮流操作方法:当DSP向其中一个帧存写像素时,由FPGA构成的帧存控制器将另一个帧存中的像素顺序读出,送给AMLCD显示;反之亦然。图形显示系统通过IDT公司的71V04双口RAM接收主机的显示信息。图1中的帧存控制器和视频控制器由Xilinx公司的SpartanII芯片XC2S50实现。 视频控制器产生KDM710显示模块所需的一些时序控制信号:行同步信号/HSYNC、场同步信号/VSYNC、数据使能信号DATA_EN和像素时钟信号DCLK等。帧存控制器产生24位RGB颜色数据信号,该RGB数据信号与视频控制器中的时序控制信号相配合,在液晶显示屏上显示出稳定的图形。有关视频控制器的设计方法参见文献[2]。


, @4 g7 f8 y- j

2 帧存控制器设计

2.1总线切换模块

图2为帧存控制器总线切换模块框图。地址总线通过多路选择器(MUX)切换,所有数据总线通过三态门挂在SRAM的数据总线上。帧存SRAM的数据总线上挂着三路数据:一路是DSP的数据总线数据;一路是FPGA的数据总线数据;还有一路是系统上电清屏用的背景寄存器数据系统刚上电时,帧存之中存放的是随机数,画面显示的将是随机画面,需要将背景数据送入两个帧存 。总线的切换由体切换信号Sel和上电清屏信号Clear控制。帧存控制器在上电时,通过上电清屏时序将两块帧存中写入背景颜色数据。在上电清屏过程中,Clear信号为高。当Clear为高时,两个地址总线选择器都选择FPGA总线,即FPGA的地址总线指向两个帧存,两个帧存的数据总线全指向背景数据寄存器,即三态门1、2、3和4关闭,而三态门5和6打开。在上电清屏时序完成之后,帧存总线的控制由体选择信号Sel控制。当DSP对帧存A进行写操作时,FPGA所产生的总线对帧存B进行读操作;反之亦然。如图2所示,当Sel为高时,DSP地址总线选择帧存A,三态门1打开,三态门3、5关闭;FPGA地址总线选择帧存B,相应的数据总线三态门4打开,2、6关闭。背景寄存器中的颜色数据可以由用户自己定义。

2.2 控制模块

帧存控制器的控制模块产生体选择信号Sel和上电清屏时序信号Clear,控制模块的结构框图如图3所示。图中,/VSYNC是场同步信号,该信号经过一个微分电路,产生一个像素时钟周期宽的使能脉冲信号,控制计数器的计数使能。计数器为一模2计数器,Sel信号为场同步信号/VSYNC的四分频,在出现两个场同步信号之后,才切换帧存,即两个帧存使用的顺序是:AABBAA...这种控制方式类似于电影遮光板的设计思想,使一幅画面在屏幕上重复出现两次,从而在25Hz的帧频时能获得50Hz的场频,使系统视频带宽增加一倍。如当场频50Hz时,图形处理器可以有40ms的时间处理一帧图形数据。图4为帧存控制时序图,Clear信号的产生过程如下:系统上电时,RST信号高一段时间(系统逻辑复位)后变低,在RST的下降沿,ClearA变高,此时场同步低电平有效信号还没到,ClearB为高,Clear为高,系统开始清屏时序。当对两个帧存的清屏工作结束时,场同步信号/VSYNC有效,该信号将"0"电平锁存输出,ClearB为低,Clear为低,系统开始在Sel控制下工作。从控制模块框图中可以看到,Clear信号仅仅在上电复位信号RST结束时(下降沿)才变为高,持续一个场周期之后,Clear信号将一直为低,把控制权交给Sel体切换信号。控制模块的VHDL代码及相应的时序仿真图如图5所示(Modelsim5.5FSE仿真器仿真)。

Entity sel_gen is
* R: p; P; m; ~6 Y2 T' I% T8 z+ e; D9 u: [
Port(clk : in std_logic;
( o: q3 E8 x& H  s+ N5 @
) p; i, C6 Q9 |Rst : in std_logic;, K: Z5 R) y& @1 c  ~% a

' @2 R' p6 a: ?; EVsync : in std_logic;
" h0 q7 H; `1 x, F! [
, H! R6 Q2 n/ iSel ut std_logic;$ A1 C  D0 H9 c# k" d
) u  E" y' G: A3 C$ V
Clear : out std_logic;
5 z' W; i  g" F+ h5 J
5 k& Y" Y* {0 F3 f0 x* c4 {) Oend sel_gen  e& T# V" c( _! E

( A6 Y* G6 `" u4 P! Qarchitecture rtl_sel_gen of sel_gen is
) y% ^5 p# R- V6 S; @$ l  N; C$ t; u2 m+ h9 W' R, L9 U% F
signal clken : std_logic;! J: n4 V) V8 G8 B- L( Q% M
' x+ F0 p! O4 i% `: _$ o* @
signal cleartemp : std_logic;
; n# L! D( B& n+ n- F) t2 U, t9 }; M
signal inputrega : std_logic;2 a  P. S/ V0 L/ m

. G$ ?* y. {3 v$ m  r7 s* tsignal inputregb : std_logic ;+ K5 O4 V: o& D4 ]2 p) B/ u' V! z

* x5 s1 |- E* d, n1 u( m% O8 }1 asignal qn : std_logic_vector(1 downto 0);. J' ]5 P5 s. z" n6 P9 K
6 S6 R% y* }' b
signal seltemp : std_logic;+ |: K0 R$ I  t

# y3 f, _- j4 q4 u% o8 O3 Vbegin
8 q. T6 j6 s; _( W% h5 b4 m6 b0 [2 M7 F: ^* `6 ^8 x2 s
process(rst,vsync)
  I$ I. u+ D) z! n- R1 [& D! c5 L4 h7 @" c% Y% E
begin
2 z6 ?+ d4 ?! Y) ?& r, Q. d+ v8 [' l! p
if rst'event and rst='0' then) C5 \; j, D* X& O0 H% i; V

5 q( O  O/ j1 d+ [1 wcleartemp <='1'( d, r/ y: v7 v/ O
1 c% n* P; [6 S: T) i
end if;, k; r1 c/ G7 ~6 x
  O4 i' h  j0 M7 o7 a
if(vsync='0')then
( ?* w' y  h9 V5 Y% K* L- X! Z( c) ]7 J9 k+ @- ]/ x
cleartemp <='0';) V0 D& _) y* L; q* ?" ^( v

8 P5 l+ T1 L' Cend if;  b! K, D9 g+ D! j- X5 o

) X* h" x& u2 Z9 p9 o8 I& bend process;
* O6 i1 z  m0 W# ?# p5 o9 j  {" s0 J6 ^) c2 G! E
clear<=cleartemp;6 i+ y5 `/ q; C8 Z8 R
# J0 c. C. l0 s- Z9 F$ W3 r6 Y5 E$ C
process(clk)
! v7 i8 ]9 c* {
, X$ W6 P! d& y3 e3 Xbegin+ [  V* C: i% g/ Q; C& M

2 A6 o  f7 `. e; H; G; Zif clk'event and clk='1'then" W1 T; i$ F' ]! {
$ ?9 [; b4 j$ q" w+ e
inputregb <= inputrega;
5 Y& B$ ^0 q+ L, i/ d* Q8 J; I5 g' P$ m& }0 y. B- x  `
inputrega <= not vsync;& u- I6 M0 K( M; L6 q1 T5 y6 |0 ]$ S
6 x  u# P8 n, t, u* C/ t( Y; M
end if;
% a( ]- F4 M0 S- J7 N) r) W: c" B" b+ M, p' d. |' i. |$ B$ h
end process;2 \& m" Z  S: s. a$ B9 _
+ O* `, R# \( T# P
clken <= not inputregb and inputrega;
# A- i5 t9 P2 c
( ~7 i- G# [; Z7 Uprocess (clk,rst)
( C( U) i9 J" W& p: k* K( u0 S+ Z, {- |! @" n( ?" Z4 ^
begin
2 }7 ^# y2 ~, ^2 G* n! ?( |9 n
6 s$ i6 E. m: }) ~if (rst-'1') then
7 y0 o( f/ W; N* ?+ G
  `1 J, ]' S4 b3 vqn <= (others = >'0');
; v2 \; R6 g3 d* r, t4 Y8 y
. t6 v" r: o; _! H8 J* _elsif clk'event and clk = '1' then
% o. `' z0 d6 D. M4 N7 T% ?  m$ e6 h8 [
if clken='1' then; |3 z' ?% ]& J3 e& W1 D8 O( @

9 L: l8 G! T2 F+ sif qn = 3 then
8 T0 i  N; ?( h. L; z, R* K3 |. p
9 q/ Y% z7 i1 m; ]1 ^1 Nqn <= (others =>'0');+ o3 `! v: z2 @1 ^, L6 _7 F+ b
  K, z* Y. A/ A' E0 U, D# S  o& q
else
$ G, W( ^8 u+ H+ F: ^* g2 |' t
; Q! X/ ~* h  tqn <=qn +1;
" t' Z5 j" H+ l# F5 @" A# \
, t/ p. G4 m4 h: \end if;/ t+ j3 l1 t" @5 P1 u' m" E
+ R4 e, C6 I6 _# L* [8 j! s" ^1 Z
end if;
4 F: p( p3 v! o7 x
' w' t4 ~, N8 @& b/ Tend if;
" g5 `, A9 W& W4 p' L5 `
3 r  |" c: C, a- [& M5 p2 gseltemp <=qn(1);# P; Q7 _# V4 Z: M8 |% ?
1 t# I2 w; }' q# s4 J0 ~( r& H
end process;
5 E% @+ _1 k& d- W
+ s1 @3 M/ E/ a1 C7 F( Dsel <= seltemp;: M6 @% |: I5 c# }

; f8 v8 l% E% S7 o7 @! R- Jend rtl sel gen;
7 _5 [' _' p' M# n/ [$ j5 }0 o! P1 E- _  h! l

3 时序分析

要使高速帧存能正常工作,必须满足一定的时延要求。AMLCD是在像素时钟的下降沿将数据锁存,从像素时钟的上升沿到正确的RGB图形数据出现在AMLCD的数据总线上,之间的延时T必须小于25ns(像素时钟周期为50ns,半周期为25ns),系统才能正常工作,如图6所示。图中的DLL(Delay-Locked Loop)为SpartanII芯片内置的数字锁相环,Clk_top(40MHz)经DLL二分频后得20MHz像素时钟。20MHz时钟一路作为系统工作时钟为FPGA地址计数器提供计数脉冲,一路作为像素时钟直接送至AMLCD。从图6可以看出,延时T包括如下几个延时:T1为Clk_top到帧存SRAM地址总线上地址的改变所需的延时(总线上各个信号的延时是不同的,T1为其中最大值);T2为帧存SRAM从地址改变到有效的数据出现在数据总线上所需的延时;T3为FPGA读帧存数据总线上的数据到输出至AMLCD所需的延时;T4为Clk_top经DLL产生像素时钟直接输出至AMLCD所需的延时。可以看出延时T=T1+T2+T3-T4。系统中的帧存控制器由Xilinx公司的SparatnII 芯片XC2S50-6实现,经过FPGA Express3.7综合和Xilinx公司的ISE4.2I软件布局布线。经分析,布线后的延时:T1=10.994ns、T3=10.691ns、T4=7.784ns,T2 由IS61LV5128芯片的时间参数决定,T2≤10ns,从而T≤23.901ns<25ns,满足系统的时序要求。一般开发工具所得出的时序报告是系统最坏情况下的延时,实际系统中的延时将小于仿真时所得出的数据。

采用高速SRAM存储器作为图形帧存,用FPGA设计帧存控制器,能大大减小电路板的尺寸,增加系统的可靠性和设计灵活性采用双帧存交替切换及单帧双扫技术,提高了系统视频带宽,并能提高系统实时性,减少图形闪烁采用VHDL语言进行FPGA设计具有方法简单、易读和可重用性强的特点。该高速图形帧存已用Xilinx公司的SpartanII系列器件XC2S50实现,并在某型飞机座舱图形显示系统中实际应用。

8 r& h1 x5 o/ A+ [( I& B

该用户从未签到

2#
发表于 2020-4-15 16:08 | 只看该作者
帧存是图形处理器与显示设备之间的数据通道,所有要显示的图形数据首先是存放在帧存之中,然后才送出去显示的,因此帧存的设计是图形显示系统设计的一个关键。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-20 16:32 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表