一种基于FPGA的SDRAM控制器设计
到有视频和读/写命令输入。这部分的状态图如图3所示。
由于猝发的最大长度为256,在每两行操作之间都要进行激活、读/写命令、猝发终止、刷新等操作。由于读/写数据都使用的是像素时钟的频率,这样总个 FPGA系统只有一个时钟域,能保证整个系统完全按照同步系统来设计,能提高整个系统的可靠性。这样会带来一个问题,要想仅仅在视频的有效时间,即DEN 高电平部分完成一行视频数据的读/写工作,这是不能满足要求的。为了解决这个问题,需要借用行同步、前廊和后廊的时间,但是DEN无效后不传输视频数据的,为了解决这个矛盾在SDRAM控制器和数据流输入/输出接口之间要分别设计两个FIFO,深度大于一行的视频数据,采用乒乓操作保证视频流的流畅。
3 SDRAM控制器应用实例
在某型号的机载大屏显示器系统中,视频图像处理系统中使用该SDRAM控制器进行了调试,实现FPGA对SDRAM的控制,完成相应的视频处理算法和实现了图像的翻转功能。此部分系统简要框图如图4所示。
该系统输入的为多路DVI信号,输入视频分辨率均为1 280×1 024,DVI信号经过DVI解码后输入FPGA.
为了完成FPGA内部的视频处理算法和图像翻转的功能,在FPGA外部挂了两组SDRAM,实现了乒乓操作,保证了系统的处理速度。处理后的视频经过LVDS信号转化,输出到液晶屏上显示。
对于左右翻转在FPGA内部采用双口RAM进行操作能够轻易实现。而图像的上下翻转,由于涉及到一帧数据的处理,需要经过外部缓存SDRAM实现。在采用上述SDRAM控制器的基础上,控制SDRAM的读方式就能实现,在将视频数据写入SDRAM的时候,写地址从第一行按顺序写入。读的过程相反,要从最后行开始读。
由于SDRAM的一行容量不能装下整行的视频信息,所以读的行地址要求每次从读过的行的地址减去存一行视频需要的SDRAM的物理行数,在一行视频数据没有读完前要从当前行不断的自增。如1 280×1 024的视频数据,共需要5 120(5×1 024)SDRAM行存一帧数据。要上下翻转输出图像,首先要输出视频数据的第1 024行,也就是要从SDRAM的5 115行开始按顺序读出,读完第5 120行后,SDRAM地址转到5 110行读视频流的第1 023行,如此类推,直到读完整帧的视频数据。该视频处理系统与显示效果如图5所示。
4结论
该设计针对高分辨率视频图像处理的SDR SDRAM控制器的设计,采用统一像素时钟进行系统操作,降低系统的复杂度,提高系统的可靠性;通过写修改相关参数,能够适应所有VESA分辨率的视频处理,通用性强;具有自刷新功能,在无外部信号输入情况下能够自动刷新,保证最后存储数据不会丢失;能够通过增加外部模块,控制读写地址,实现图像翻转功能。此控制器在Al-tera的StratixⅡ系列FPGA EP2S60F1020I4平台上,成功实现各种视频处理功能,验证了此控制器的实用性。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)