zgq800712 发表于 2011-2-2 17:43:50

SRAM写时序?向大家来请教了。

这个是SRAM的手册,PDF格式。

点击此处下载 ourdev_614478J2XFK2.pdf(文件大小:545K) (原文件名:61-64WV5128Axx-Bxx.pdf)


Symbol                Parameter                                    -10                单位:ns
                                                      Min            Max
tWC       Write Cycle Time                              10             -
tSCE        /CE to Write End                              8            -
tAW        Address Setup Time to Write End               8                 -
tHA        Address Hold from Write End                   0            -
tSA        Address Setup Time                            0            -
tPWE1        WE Pulse Width (OE = HIGH)                  8            -
tPWE2       WE Pulse Width (OE = LOW)                     10             -
tSD        Data Setup to Write End                     6            -
tHD        Data Hold from Write End                      0            -
tHZWE       WE LOW to High-Z Output                     -            5
tLZWE       WE HIGH to Low-Z Output                     2            -


这个是写时序1:
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_614479Q39LS6.jpg
(原文件名:NO1.jpg)


对写时序求问1:
DOUT这里的DATA UNDEFINED 是什么东东?和 DATA UNDEFINED 同一列的DIN是什么意思?DATAIN VALID是什么?

WE变0 经过tHZWE后就变成高阻了,同时DIN是 DATAIN VALID 了,这个又是个疑问。



这个是写时序2:
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_614480URDTTV.jpg
(原文件名:NO2.jpg)




这个是写时序3:
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_614481KB74EP.jpg
(原文件名:NO3.jpg)

坛子里的朋友说吧OE CE多接地,这样简单点,该死的,读时序看的来,写时序不知道是什么意思,应该是一些操作基本知识不知道。
就用这幅时序图,我的打算也是吧OE,CE多接地了。问题还是个和   对写时序求问1: 一样的问题

wxm521216 发表于 2011-2-2 19:11:05

我连读时序都没有搞出来,你的读程序共享一下吗?谢谢

NJ8888 发表于 2011-2-2 20:54:37

DIN DOUT对外是同一物理总线,当你操作WR的负脉冲开始tHZWE时间段,SRAM总线的高阻态还没形成,此时数据不确定(假如前次READ内部L,而外部此次向写H,这段逻辑电平不不包证)当过了tHZWE,SRAM内部高阻,总线电平由外部DIN控制,WR的写完成于上升沿,DIN必须维持一段时间,就是DATA VALID

h2feo4 发表于 2011-2-2 22:59:33

回复【楼主位】zgq800712 SEED
-----------------------------------------------------------------------

data undefined 就是不知道之前的数据是什么,也不用管之前的数据是什么
如果上一个周期是读,数据总线上就是上一个读出的数据
如果上一个周期是写,数据总线上就是上一个写入的数据
如果上一个周期是空闲,就是其它数据……

data valid 就是有效的数据
你给的图是写入的时序图,data valid 就是将要写入的数据

简单描述一下操作过程:
第一步,你要告诉SRAM,你想在下一个周期进行写入,即使能CE和WE,并告诉SRAM目的地址
第二步,SRAM得到了你的写入请求,但数据总线可能正在被SRAM占用(例如上一个周期是读),故SRAM需要释放对数据总线的占用,释放动作所占用的时间就是t-HZWE
第三步,因为SRAM已经释放了数据总线,所以你(可能是MCU或FPGA等)可以将要写入的数据传送至数据总线(即data valid 数据有效)
第四步,关闭WE以通知SRAM可以进行写入操作

如果总线上没有其它设备,并且你不介意功耗,CE通常可以一直有效
如果OE一直有效,会略降低写入速度,但你如果不介意速度,通常也是可以的

zgq800712 发表于 2011-2-3 14:50:53

回复【楼主位】zgq800712SEED
这个是sram的手册,pdf格式。
点击此处下载(原文件名:61-64wv5128axx-bxx.pdf)
symbol                parameter                                    -10                单位:ns
                                                      min            max
twc       write cycle time                              10             -
tsce        /ce to write end                              8            -
taw        address setup time to write end               8                 -
tha ......
-----------------------------------------------------------------------

回复【3楼】h2feo4无机酸
回复【楼主位】zgq800712 seed
-----------------------------------------------------------------------
data undefined 就是不知道之前的数据是什么,也不用管之前的数据是什么
如果上一个周期是读,数据总线上就是上一个读出的数据
如果上一个周期是写,数据总线上就是上一个写入的数据
如果上一个周期是空闲,就是其它数据……
data valid 就是有效的数据
你给的图是写入的时序图,data valid 就是将要写入的数据
简单描述一下操作过程:
第一步,你要告诉sram,你想在下一个周期进行写入,即使能ce和we,并告诉sram目的地址
第二步,sram得到了你的写入请求,但数据总线可能正在被sram占用(例如上一个周期是读),故sram需要释放对数据总线的占用,释放动作所占用的时间就是t-hzw......
-----------------------------------------------------------------------





感谢楼上2位。现在知道了,送出地址,把WE拉低,拉低后不是马上就能写数据到sram里面的,WE拉低后经过 tHZWE 时间后 数据口会变成高阻态,这个时候送要写入对应地址的数据,然后把WE拉高就写入进去了。WE从低到高写入的数据要满足建立保持时间。也就是图上的tSD,tHD。

那再问2位个问题    :    那就是说要连续写入数据到sram里面去   不是我原来理解的WE一致拉低就可以写了。而是WE拉低后,等tHZWE送要写的数据,然后拉高WE就写进去了,然后在再写其他的数据要把从上个写sram拉高的WE用拉低通知sram要写入数据了。就是说写入sram WE要拉低在拉高,在拉低在拉高 ,...,...   
读sram 手册上就是说吧WE一直拉高送出地址信号10ns后数据口上的数据就是稳定的了。而写入要吧WE拉低又拉高,拉高后数据写入到sram里面去了,同时WE拉高了,就是进入到读数据阶段了,你还要写就是把WE在拉低让IO口变成高阻态再写入进去。看上去写入步骤要多一步,这个就是WE拉高进入读状态,你要把WE在拉低让IO口变成高阻态,在拉高就写入诗句了。速度不知道有没有什么影响。


我在把3楼说到的OE看有什么影响。

NJ8888 发表于 2011-2-3 15:20:50

如果你是CPLD FPGA控制,你在控制WR下跳同时时把ADDR 数据等准备好,然后满足10ns(具体看芯片速度等级)把WR拉上去,数据就写入SRAM了

h2feo4 发表于 2011-2-3 15:27:33

回复【4楼】zgq800712 SEED
-----------------------------------------------------------------------

地址可以和WE同时跳变,因为对于SRAM来说,地址线是纯粹的输入而非IO,所以无需等待切换方向

在连续写中,如果OE=0,数据和地址、WE可以同时跳变,因为上一周期也是写入,数据总线始终在你的控制中,不会有总线冲突的风险
但如果OE=1,一旦WE为1,SRAM就会认为将进行读操作,从而占用数据总线的控制权,这时如果你想写入数据,就必须等待t-HZWE。因为数据总线正在SRAM的控制中,必须等待SRAM释放总线控制权

异步SRAM每次写入都要WE翻转两次的,不能一直拉低,因为写操作是在WE上升沿生效的

zgq800712 发表于 2011-2-3 15:56:15

回复【6楼】h2feo4无机酸
回复【4楼】zgq800712 seed
-----------------------------------------------------------------------
地址可以和we同时跳变,因为对于sram来说,地址线是纯粹的输入而非io,所以无需等待切换方向
在连续写中,如果oe=0,数据和地址、we可以同时跳变,因为上一周期也是写入,数据总线始终在你的控制中,不会有总线冲突的风险
但如果oe=1,一旦we为1,sram就会认为将进行读操作,从而占用数据总线的控制权,这时如果你想写入数据,就必须等待t-hzwe。因为数据总线正在sram的控制中,必须等待sram释放总线控制权
异步sram每次写入都要we翻转两次的,不能一直拉低,因为写操作是在we上升沿生效的
-----------------------------------------------------------------------



再次感谢3楼的朋友,算是听懂了。
我还有点疑问,就是你上面说的OE=0,我发的第三张图,OE=0了,这张图也是有tHZWE。

h2feo4 发表于 2011-2-3 16:05:47

回复【7楼】zgq800712 SEED
-----------------------------------------------------------------------

是否有t-HZWE,只取决于进入写周期之前,数据总线的控制权在谁手里
如果进入写周期前,数据总线是由SRAM控制的,就必须等待t-HZWE以确保SRAM释放数据总线的控制权,例如读-写切换过程,和OE=0的连续写
如果进入写周期前,数据总线空闲,或由主控器控制,就不需要等待t-HZWE,例如在OE=1状态下的连续写
OE=0的话,就说明在WE下降前SRAM处于读状态,即WE下降时数据总线是由SRAM控制的,就必须等待t-HZWE

zgq800712 发表于 2011-2-3 16:11:51

回复【8楼】h2feo4无机酸
-----------------------------------------------------------------------

恩,我在仔细琢磨下。下面这个是我从网上下的models


点击此处下载 ourdev_614569RQU1KL.txt(文件大小:20K) (原文件名:sram.vhd.txt)

lixc2008 发表于 2011-8-18 23:08:05

怎么不继续跟进呢,想学学。

xiaosi1102 发表于 2011-8-19 00:06:54

很好的讨论帖!

leesjtu 发表于 2011-8-19 22:48:28

3楼说的很明白
将OE和CE接地是最简单的操作方式
因为CE和WE都为低是写操作,只有CE低而WE高是读操作
所以通常将CE接为常为0是最简单的操作方式
但是这样也最耗功耗

hailiang0001 发表于 2011-8-27 13:47:32

很好的讨论帖!

xiaoliusheng 发表于 2015-7-19 12:05:14

论坛的大神就是万能的啊,突然就明白了{:lol:}

msmotioncontrol 发表于 2015-8-1 18:52:25

这个很解渴啊,正对这块半知半解呢,学习了……
页: [1]
查看完整版本: SRAM写时序?向大家来请教了。