打印

SRAM操作一点通

[复制链接]
2801|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xnwxq|  楼主 | 2009-8-27 22:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

诸如UT62256,GM76C256,IS61LV5128等SRAM芯片,基本上他们的时序操作大同小异,在这里总结一些它们共性的东西,也提一些简单的快速操作SRAM的技巧。

这里就拿刚用着的IS61LV5128说吧,它的管脚分配如下:

具体什么功能我就不废话,上面都有。具体在硬件连接的时候,其实很多人喜欢直接把输出使能信号OE和片选信号CE接地,这样一来不仅节省了处理器和SRAM连接的管教数,而且在读写SRAM的时候其实只要对写使能信号WE操作就可以了,简化了软件部分。
SRAM的读写时序操作如下:





因为在硬件上已经把CE和OE拉低了,所以如果不希望读写SRAM的时候,实际上SRAM的数据总线上的值是这时候的地址总线上的地址对应的数据。所以为了避免误操作,我们可以把地址总线置高阻态,其实我们不去操作数据总线(最好不是复用的数据总线)也无大碍。因为这样简化了软硬件的设计。上面的时序图,我们也只要关心ADDR,DATA总线和WE信号。

具体操作是这样的,我们要写数据,(我这里是相对与用HDL操作SRAM而言的,软件读写可能有时间顺序的问题需要注意),那么比较高效率的操作是同时把WE拉低,送数据送地址,然后延时>TWC,把WE拉高,这时就把数据写入了相应地址了,就这么简单。因为数据的锁存不是在WE的上升沿,所以WE拉高后也没有必要保持数据总线的数据(即THD=0)。读数据就更简单了,只要把送需要读出的地址,然后延时>TAA后就可以读出你要的数据了。确实很简单的。

如果要高效的读写SRAM,那么对于FPGA/CPLD来说,我假设目前这个芯片是10ns(TWC)的读取速度,系统时钟50MHz(20ns),我第一个时钟周期送地址,拉高(读)或者拉低(写)WE信号,送数据(写操作,读就把数据总线置高阻态),然后第二个时钟周期可以改变地址做下一步操作(如果是读数据这个时候同时把数据读出),如此下去,可以做到沿着时钟周期流水线般的读写数据。


   这是我们实验的源代码,要实现的功能我就不多说了,大家消化了代码(有很详细的注释)就明白了:
    2009.2.12更改后的工程源码:   

相关帖子

沙发
kris2001| | 2009-9-20 09:00 | 只看该作者
谢谢。热心人。

使用特权

评论回复
板凳
xinzha| | 2009-9-24 13:50 | 只看该作者
通用EMI总线?

使用特权

评论回复
地板
lixupengarm| | 2011-5-26 20:22 | 只看该作者
mark!!!

使用特权

评论回复
5
cecwxf| | 2011-5-27 18:14 | 只看该作者
mark

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我们都是风雨中的孩子,手牵着手才不会跌倒

162

主题

294

帖子

1

粉丝