zhouzhiping849的个人空间 https://blog.eetop.cn/164433 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

SDRAM controller的理解

已有 6004 次阅读| 2010-8-18 17:11 |个人分类:设计理解

1. 一些基本概念:

1SDRAM的控制pin脚:CS(chip select), RAS(row access strobe), CAS(column access strobe), WE(write enable)。SDRAM发的各种command就是通过给这些pin不同的配置实现的。

2tRCD (RAS to CAS Delay):在发送列读写命令时必须要与行有效命令(active command)有一个时间间隔。(列寻址信号是与read/write command同时发出的。)

3tCL(CAS latency):在CAS(随同read/write同时发出)发出之后,需要经过一段时间才能有有效数据输出。

4tRP(Precharge command period):在发出precharge command后,要经过一段时间才能允许active command去打开新行。

data3case

1). 要寻址的行和L-bank是空闲的: 最快经过tRCD(active command) + tCL(read command)的时间后就可得到有效数据。

2). 要寻址的行正好是前一个操作的工作行(即要寻址的行已经处于选通(strobe)状态): 最快经过tCL(read command)的时间后就可得到有效数据。

3). 要寻址的行所在的L-bank中已经有一个行处于活动状态: 最快经过tRP(precharge command) + tRCD(active command) + tCL(read command)的时间后就可得到有效数据。

 

5Precharge & auto precharge

Precharge(预充电): L-bank关闭当前工作行,准备打开新行的操作。

Precharge(de-activate row in bank or banks)是一个sdram command,一般在Initiation过程中使用,而auto precharge是含在read/write command里面的(由address里的A10控制),一般在最后一个read/write时使用。

 

6)关于Mode Register

Burst length(3 bits)Burst typeCAS latency(3 bits)Operating mode(2 bits)Write burst mode

 

7M-domain会用到的几种clock

1)mclk:发给sdram controller电路用。

2)mclko:发给chip外部的sdram芯片用。

3)mclka:发给datapath用,写datasdram中去。

4) mclkb:发给datapath用,读sdram送过来的data

其中,2)3)4)可进行粗调(0,90,180,270 degree)和细调(256delay cell)。

 

8)关于微调(256delay cell级联):

第一个delay cellCKIN_Uvdd。当SEL0时,这一级的输出就是vdd,传给下一级的CKIN_U。一直到某一级的SEL1,则其输出就是mcko_inv反相并有一点延时。这个clock信号传给下一级的CKIN_U。而下一级的SEL必然等于0,因为是one-hot码。那么这个clock信号就会被delay后继续往下传。那么one-hot码中1的位置就决定了fine delay时间的长短。

dly_sel_mclko[255:0]one-hot码,每一位用来控制一个delay单元。

 

9)关于auto refresh

存储体中电容数据有限保存上限是64ms,以一行(row)为单位进行刷新,

假如有4096 row2^12)那么auto refresh的时间间隔为:64ms / 4096 = 15.625 us(微秒)。

 

2. 状态机跳转

 

1IDLE à AREF à AREF_wait:就是关于auto refresh的状态跳转。

2IDLE à PRE à PRE_wait:关于initialprecharge状态跳转。

3IDLE à LMR à LMR_wait:关于初始化时mode register的状态跳转。

4)初始化:IDLE à PRE à LMR à PRE à AREF à LMR à IDLE

5)正常工作状态:

ACTselect bank & activate row

ACT_wait:等待tRCD(delay from Row active to read/write)的时间后再进入read/write

READselect bank & column, and start READ burst

READ_waitburst length1READ cycle + 3READ_wait cycle凑成burst length4的情况。

RDATA:当data读取完后,需要等待tCL的时间数据才真正输出。

WRITEselect bank & column, and start WRITE burst

WRITE_waitburst length1READ cycle + 3READ_wait cycle凑成burst length4的情况。

ACTX:作用是在read bank a 快要结束的时候,对下一个bankbank b)做active的操作。ACTX后面,对bank a再读最后一组数据,完成auto precharge。接下来会开始bank bread。如下图,先读bank0,然后读bank1。注意col地址4fc中的4表示要autoprecharge


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 11

    获赞
  • 19

    评论
  • 779

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-24 10:12 , Processed in 0.014019 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部