serena

AlteraDE2试用之sdram篇

0
阅读(3163)

Sdram同步动态随机存储器,基本上每个FPGA的板子上都会有的资源。做fpga处理离不开内存。在最早冯诺依曼设计出计算机的时候就已经决定了的,到现在好像也没有被谁颠覆到这个结构。

好了,不废话了,先来看看DE2板上sdram连接:clip_image002

DE2板载一个16位的sdram,1Mx16x4表明他是16位宽,4个bank,每个bank有1Mbits的容量。

这里,不再讨论sdram的具体控制,友晶的例程移植起来也很方便。知名博主crazybingo也有详细的教程。这里我想分想一下在视频处理中,如何使用sdram的缓存功能。

我们知道,视频也就是动态画面是由一帧一帧的静态画面组合而成的。想想动画片、跑马灯胶片电影什么的,都是一个原理,连续的静态画面组成动态视频。

所以视频处理的本质还是图像处理,我们在处理图像时,如果是简单的点操作,可以直接处理,不必做缓存,比如像rgb转grey,只跟当前像素点相关,跟其他点无关。这种操作叫做点操作。像素点来了,我们放入流水线中处理,除了有一个潜伏期外,流水处理是实时的。这其实跟sdram的突发读写是一个道理,突发命令也有一个潜伏期,其实就是流水等待的时间。

如果不是点操作,比如我们做一些滤波处理,比如中值滤波,我们需要一个像素点周围的几个像素点信息,来确定处理结果,这时候,我们就需要做一个更到的缓存,需要缓存几行的像素点,这时候,我们可以用fpga内部的ram资源来做行缓存。因为fpga内部ram资源有限,所以我们只能做少量数据的缓存。clip_image004

在视频处理中做帧变换,比如,要将NTSC的视频转换为PAL的视频。NTSC制式的视频每秒30帧图像,PAL制式的视频每秒25帧图像,这就需要做帧变换。需要缓存几帧,在写的时候按照30帧每秒的速率写,在读的时候按照25帧每秒的速度读。

(转自Altera FPGA小组,作者:QuietE )