1.镁光SDRAM命名
总的存储容量为512Mb,分为4个bank;16Meg x 8 x 4,16Meg表示每个bank有16M字的存储空间,x8表示每个字8bit。
2.feature
- 自动刷新(Auto refresh):
refresh 是以行为单位进行刷新的,刷新需要8192个cycle,则代表有8192行,完整的刷新完一个bank至少需要8192个刷新指令,并且最多每隔64ms需要刷新一次,所以至少需要8192个cycle,也可以多刷若干周期,但是不宜过大,过大则导致留给数据读写的时间减少;4个bank同时刷新;限制64ms上限是因为,充电是逐行完成的,每一行完成之后电容可能会逐渐放电,如果间隔时间过长将导致数据存储出错。
-
自刷新(Self refresh):
-
突发长度(BL)
(写为例说明)假设突发长度是4,则在写使能信号有效之后,第一个数据会被写入到给定的第一个地址里面,然后会顺序的将下面的三个数据写入到接下来的三个连续地址里;表现为一个写使能可以控制写4个数据。
一行就是one page;
突发有两种模式:Sequential (常用)和Interlevead
-
潜伏期(Latency)
针对读数据而言的,是指读有效至数据出来所需要经历的时钟数。 -
器件采用中心对齐方式
为了采样更加准确,SDRAM到FPGA内部连线不同PCB有区别,芯片间数据传输可以借鉴;
3. 引脚描述与存储空间
4.SDRAM工作简述
SDRAM内部集成的状态机控制工作,粗线箭头表示自动完成,细线箭头表示手动完成。
WRITEA :Write with Auto Precharge,整页突发可以考虑使用
WRITE : 写完之后可以继续写
- Initialization
上电之后首先需要初始化;初始化主要包含:延时100us---->Precharge---->两次Auto refresh ---->模式寄存器配置。
CS_n,CAS_n,RAS_n,WE_n构成SDRAM的指令集;
100us延时之后就可以进行预充电;
命令集:
所有bank预充电/指定bank预充电,区别在于A10与Bank Address;
-
模式寄存器设置(调回去看状态机Mode Register Set状态)
模式寄存器设置需要优先于操作命令完成;
主要需要设置Burst Length,Burst Type,Latency等;
-
初始化完成之后,ACT命令激活读写
主要包含读模块,写模块,预充电,三个模块的切换由仲裁器完成,而这三者状态之间不能互相跳。
突发传输时会有当一个数据刚开始操作的时候刷新时间时间到了,此时若停止数据传输则会出现数据出错,因此等此次突发传输完成之后,再刷新,占用的时间在缩小下一个有效操作时间,但是全局来看不影响总的刷新周期。
-
写为例说明操作过程
地址线上行和列在不断切换,连续访问存储空间时每一次读写都会需要以上一次的地质单元作为参考,所以需要有寄存器保存上一次访问的行和列。
首先ACT执行ACT命令,激活行和bank,一定时间后给出写命令并给出地址和数据;
具体间隔时间取多少,需要多少个周期的NOP命令,由tRCD决定;
写状态机FSM: