ximuyi 发表于 2013-12-14 18:48:20

关于FPGA对SDRAM的按列读写问题

大家好,我现在用一片FPGA来驱动SDRAM,按照ALTERA官方提供的SDR SDRAM驱动,已经能够实现对SDRAM的读写,特别是page模式。
我现在能够实现按页读写,从sdram datasheet 知道,按页读写是基于行来实现的,如下所示:
      第1列 第2列第3列第4列第5列……第512列
第0行:1      2         3      4      5    ……512
第1行:1      2         3      4      5    ……512
第2行:1      2         3      4      5    ……512
...
第N行

按照行写数据完成后,那么按照行读出来的数据也是从1累加到512,那么如何按照列来读取?
即要求读出来的数据是1,1,1……, 2,2,2……,3,3,3……,……,512,512,512

如果使用burst模式,重复的输入地址,然后根据相应的地址算法,也可以满足按列读取的要求,只是每读一次burst数据它中间经过了CAS+RAS个CLK的延时,难以达到我的要求。
我需要设置完page模式后,一个CLK就来一个数据。
网上有一篇文章《基于FPGA 的实时SAR 成像系统转置存储的实现.pdf》,里面也有讲到按行写按列读,但具体操作步骤只讲了几句,不是很清楚方法。
不知道有谁遇到过类似问题?

wye11083 发表于 2013-12-14 18:50:36

LZ建议你换SRAM吧.SDRAM不是干那活的.

ximuyi 发表于 2013-12-14 18:56:20

wye11083 发表于 2013-12-14 18:50
LZ建议你换SRAM吧.SDRAM不是干那活的.

SRAM价格贵啊,另外容量也达不到要求,我需要至少1.5MB的容量。
PSRAM可以达到容量要求,但价格居于SDRAM和SRAM之间,也相当的贵,目前要做的东西要用于消费电子类。
耗不起,如果是工控类,就没那么多烦恼了,几乎是不计成本的。

wye11083 发表于 2013-12-14 23:22:17

ximuyi 发表于 2013-12-14 18:56
SRAM价格贵啊,另外容量也达不到要求,我需要至少1.5MB的容量。
PSRAM可以达到容量要求,但价格居于SDRAM ...

那你就SRAM+SDRAM吧。之所以没人鸟你,就是因为你在做梦。
你用SRAM缓冲M行,再通过Burst写入到SDRAM中,然后使用Page读SDRAM。
你要是缓冲视频的话,8行足矣。4行缓冲满,开始往SDRAM里存,一个像素至少也得2字节吧,所以SDRAM用4个BANK交织,并设置BL=4或BL=8一般可以达到最大效率(写BA=0时,充电BA=3,以此类推)。

ximuyi 发表于 2013-12-14 23:37:09

wye11083 发表于 2013-12-14 23:22
那你就SRAM+SDRAM吧。之所以没人鸟你,就是因为你在做梦。
你用SRAM缓冲M行,再通过Burst写入到SDRAM中, ...

做缓冲我用个FIFO或内部构造的RAM也已经能够实现,就没必要把SRAM挂上当缓冲了,cyclone系列FPGA的M4K足够用了。
设置BL=4或8也能实现我的要求,只是操控更麻烦效率也不高,另外我也想探讨更快更简便的方法
网上有文章说能实现,所以就抱着试试的态度了,很多好的设计不也是从做梦开始么,呵呵
另外,没人鸟我是不是因为周末大家都忙着约会了{:titter:} ,出去逛逛至少不会变呆
待会看恒大球赛

Fourier00 发表于 2014-2-5 22:33:48

LZ是要想把图像 转置吗,如果是,我有一个思路 ,在图像存储的时候进行操作

ximuyi 发表于 2014-2-7 11:29:00

Fourier00 发表于 2014-2-5 22:33
LZ是要想把图像 转置吗,如果是,我有一个思路 ,在图像存储的时候进行操作 ...

哦?说说看看

zhangyunbo 发表于 2014-3-3 17:46:56

SDR SDRAM代码官方的,怎么在官网上没有呢

ximuyi 发表于 2014-3-6 09:20:23

zhangyunbo 发表于 2014-3-3 17:46
SDR SDRAM代码官方的,怎么在官网上没有呢

http://download.csdn.net/detail/wenhuawu/2411965
试试这个

Smartist 发表于 2014-3-6 13:29:13

mark~~~~~~~~~~~~~~~~~~~~~~~~

步凡王子 发表于 2014-4-4 14:16:17

楼主,关于突发page读写中自刷新问题,不知道楼主是怎么解决的。手头SDRAM一页是1024。用100MHz来读的话,需要耗时10.24us才能读完一行。但是datasheet中要求64ms对所有行进行一次刷新,我一共有8192行,也就是每隔7.8125us就需要发出一次自刷新中断。不知道楼主是怎么解决的还是我对自刷新的理解有问题。请大神指点~

ximuyi 发表于 2014-4-17 17:45:18

步凡王子 发表于 2014-4-4 14:16
楼主,关于突发page读写中自刷新问题,不知道楼主是怎么解决的。手头SDRAM一页是1024。用100MHz来读的话, ...

不好意思之前没得上论坛,是这样的,我用的是DDR SDRAM控制器,所以自刷新只需要让它自动算好时间再刷新就好了,不需要人工参与、

xyzabc 发表于 2014-6-2 20:52:46

ximuyi 发表于 2014-4-17 17:45
不好意思之前没得上论坛,是这样的,我用的是DDR SDRAM控制器,所以自刷新只需要让它自动算好时间再刷新 ...

想请教一下,你的SDRAM时钟与控制器时钟的相差是多少?

ximuyi 发表于 2014-6-3 21:11:32

xyzabc 发表于 2014-6-2 20:52
想请教一下,你的SDRAM时钟与控制器时钟的相差是多少?

50M,100M,160M都试过,都可以

xyzabc 发表于 2014-6-3 21:22:42

ximuyi 发表于 2014-6-3 21:11
50M,100M,160M都试过,都可以

不好意思,我是想问FPGA的时钟和给SDRAM的时钟之间的相位差是多少

ximuyi 发表于 2014-6-4 12:00:06

xyzabc 发表于 2014-6-3 21:22
不好意思,我是想问FPGA的时钟和给SDRAM的时钟之间的相位差是多少

用的是同一个CLK,相位差为0

flyaudio 发表于 2014-8-22 10:19:00

wye11083 发表于 2013-12-14 23:22
那你就SRAM+SDRAM吧。之所以没人鸟你,就是因为你在做梦。
你用SRAM缓冲M行,再通过Burst写入到SDRAM中, ...

bank交织写入,显示的时候顺序读出么?

隐婚出轨渣男 发表于 2017-5-23 16:48:42

楼主,厉害哦

justdomyself 发表于 2017-5-24 09:19:45

xyzabc 发表于 2014-6-2 20:52
想请教一下,你的SDRAM时钟与控制器时钟的相差是多少?

63 du


~~~~
页: [1]
查看完整版本: 关于FPGA对SDRAM的按列读写问题