NJ8888 发表于 2010-11-7 13:28:01

有点时间,研究了下SDRAM做显示缓存的可行性,计算数据好像不高,不知道有否原理错。100MS

16位色800*600@60Hz,40M像素时钟,100MSDRAM访问时钟每行1056点,共628行
1056点扫描时间26.4us,从SDRAM突发整页读两次1024点,其中有用的800点,每页消耗时间526个SDRAM时钟共1052个时钟=10.6us,
这样,留给SDRAM写的时间是26.4-10.6=9.8us,由于图形像素更新位置是随机的,只能才用SDRAM单次写的方式,需要7个SDRAM时钟
完成一次随机写,时间是70ns。这样一行扫描周期内,有9.8u/70n=140个像素能更新,假如整屏800*600都用随机更新写方式,
26.4us能更新140点,相当0.19us更新一点,800*600*0.19u=0.09秒,每秒能更新11帧图片

yuphone 发表于 2010-11-7 13:28:57

mark

eworker 发表于 2010-11-7 13:36:02

学习

hemjidn 发表于 2010-11-7 15:18:02

完全不明白……汗一个

shqila 发表于 2010-11-7 15:50:59

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4355445&bbs_page_no=1&search_mode=3&search_text=tfthome.com&bbs_id=9999
在回复中有一些楼主的解释,偶不懂,看看有木有帮助吧

liurangzhou 发表于 2010-11-7 17:05:51

mark一下

bad_fpga 发表于 2010-11-9 23:48:51

请教一下楼主
1.从SDRAM突发整页读两次1024点,其中有用的800点,每页消耗时间526个SDRAM时钟共1052个时钟=10.6us

这里整页读两次1024点,是指一页512点吗?一页的大小和SDRAM的型号有关吗?
为何每页消耗的时间是526个时钟??

2.只能才用SDRAM单次写的方式,需要7个SDRAM时钟完成一次随机写

这里需要7个时钟,也是SDRAM的特性?即,随机写是要7个时钟的?

3.每秒能更新11帧图片

这个是什么概念呢?16位色800*600@60Hz,这里不是60HZ吗?即60帧

NJ8888 发表于 2010-11-10 11:47:25

1.SDRAM 16位宽的单片规格全页突发长度是512个地址,512个时钟是传数据,其他是预充,CL延时等,稍有出入,可能是530,我没仔细数时钟
2.单次写要预充 行列延时写时间TWP等,有人说是九个,也都对,看芯片
3.11帧的意思是每个像素点都重写,每秒完成11次,与画面刷新不是一个概念,60Hz是刷屏一秒60次,11次的更新与电影胶片的放映24张每秒对应.显然单次写不能流畅放动作画面,有点像动画

above2009 发表于 2010-11-12 15:57:32

可以使用SRAM,读写时序简单。如果考虑到效率的话,使用双口ram。大小可以跟灰度级,分辨率计算。

lsea 发表于 2010-11-12 16:39:08

sram很难做到很大,并且价格很贵

laodao01 发表于 2010-11-12 16:51:31

全屏更新就别随机写了,一次一行效率高很多

NJ8888 发表于 2010-11-12 17:05:27

回复【10楼】laodao01
全屏更新就别随机写了,一次一行效率高很多
-----------------------------------------------------------------------

那客户要画垂线,或是斜线你如何按行写?

bad_fpga 发表于 2010-11-15 17:51:54

回复【11楼】888888888888
回复【10楼】laodao01
全屏更新就别随机写了,一次一行效率高很多
-----------------------------------------------------------------------
那客户要画垂线,或是斜线你如何按行写?
-----------------------------------------------------------------------

如果只是画简单的线条,并且是用FPGA的话,直接用FPGA的资源做可能更简单

nightmara 发表于 2010-11-18 22:34:40

MARK

longquan 发表于 2010-11-19 00:04:34

两片存储器能并联吗?加宽数据总线

madara 发表于 2011-7-28 07:29:39

我想你应该参考参考PC上用的双缓冲等技术,以前S3 765那样的老PCI显卡可是只有1M的EDO显存,也能跑起来不少2D游戏。

NJ8888 发表于 2011-7-28 11:24:19

回复【15楼】x86x86
-----------------------------------------------------------------------

如果图像来源属于整页的当然没问题,比如现成的一幅图片

hanyanzj 发表于 2011-10-11 17:13:14

不知楼主用SDRAM做显存 实现的怎么样了能不能指点下 QQ59260293

tongjian 发表于 2011-10-31 08:49:18

楼主有遇到过sdram数据缓存出现异常么,大部分数据正确,个别数据异常,请教啊,qq2441701360

NJ8888 发表于 2011-10-31 09:04:42

回复【20楼】hanyanzj
-----------------------------------------------------------------------

回复【21楼】tongjian童建
-----------------------------------------------------------------------

抱歉,事情多,研究显示是业余性质,所以相当一段时间要搁置

tongjian 发表于 2011-10-31 10:39:11

您好,我用的sdram是突发写模式,突发长度256,存储后读出的数据发现2M数据个别数据异常,在16位数据的某一位跳变,请问这是时序问题??急待楼主指教一二,不胜感激~!!

NJ8888 发表于 2011-10-31 11:42:28

回复【23楼】tongjian童建
-----------------------------------------------------------------------

你可是先临时稍微降低SDRAM时钟速度看下,别担心不会坏了SDRAM.

tongjian 发表于 2011-10-31 11:58:50

sdram时钟目前才50MHZ,已经很低了吧,还是有错误的,开发板上也是有错误的,会更少些,几个的样子,是程序哪里出问题了??还是硬件连接不行啊?

NJ8888 发表于 2011-10-31 12:17:15

回复【25楼】tongjian童建
-----------------------------------------------------------------------
50M的话,如果不是时钟相位问题就很难理解了,你换用当前时钟的180度时钟在SDRAM时钟.设计中我用FIFO做输出输入连接SDRAM,FIFO的核是时钟上升沿,所以对SDRAM时钟相位是有讲究的

hemjidn 发表于 2011-10-31 12:24:53

再次看帖能看懂一点了
26.4-10.6=9.8us??有6us跑那去了

NJ8888 发表于 2011-10-31 12:34:17

回复【27楼】hemjidn捱多年
再次看帖能看懂一点了
26.4-10.6=9.8us??有6us跑那去了
-----------------------------------------------------------------------

确实我这步计算错了,下面相应15.8u/70n=22526.4/225=0.12 800*600*0.12=0.056   每秒17帧

qwic 发表于 2011-10-31 13:11:23

若要进一步提升效率,建议SDRAM以交错方式读写

qwic 发表于 2011-10-31 13:28:40

假设Trcd=3,CL=3,BL=4,交错方式如下:

BANK0: |ACT|   |   |RD |   |   |   |   |   |   |   |   |   |   |   |   |ACT|   |   |RD |   |   |   |   |   |   |   |   |   |   |
       |   |   |   |   |   |   |D00|D01|D02|D03|   |   |   |   |   |   |   |   |   |   |   |   |D00|D01|D02|D03|   |   |   |   |
BANK1: |   |   |   |   |ACT|   |   |RD |   |   |   |   |   |   |   |   |   |   |   |   |ACT|   |   |RD |   |   |   |   |   |   |
       |   |   |   |   |   |   |   |   |   |   |D10|D11|D12|D13|   |   |   |   |   |   |   |   |   |   |   |   |D10|D11|D12|D13|
BANK2: |   |   |   |   |   |   |   |   |ACT|   |   |RD |   |   |   |   |   |   |   |   |   |   |   |   |ACT|   |   |RD |   |   |
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |D20|D21|D22|D23|   |   |   |   |   |   |   |   |   |   |   |   |
BANK3: |   |   |   |   |   |   |   |   |   |   |   |   |ACT|   |   |RD |   |   |   |   |   |   |   |   |   |   |   |   |ACT|   |
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |D30|D31|D32|D33|   |   |   |   |   |   |   |   |

写只要把RD改成WR就好,这样写一行耗时与读大致相等。像素时钟40M,SDRAM时钟100M,每读一行之后立即写一行,相当于两个40M,剩下的20M刷新。

sain_1989 发表于 2011-10-31 13:44:32

http://blog.csdn.net/dfysy/article/details/6092744

Julius20110 发表于 2013-8-7 08:59:25

{:loveliness:}mark

youpeng 发表于 2013-10-23 14:43:41

关注!帮顶!

zcy0517 发表于 2014-4-30 19:21:56

学习了~!
页: [1]
查看完整版本: 有点时间,研究了下SDRAM做显示缓存的可行性,计算数据好像不高,不知道有否原理错。100MS