DDR4调试笔记1

这几天帮忙调试DDR4 IP核,之前没有接触过存储这块,第一次弄,所以写个东西自己做下总结。

DDR4现在已经开始大范围使用,网上面相关的信息还是比较少。

1、重要的一些概念:

如果之前没有接触过DDR3或者DDR2的话,直接上手会有点麻烦(话说我就是这样),先介绍一些基本概念和接口。

1)bank:bank是存储库,一块内存内部划分出了多个存储库,访问的时候指定存储库编号,就可以访问指定的存储库。具体内存中划分了多少个bank,要看地址线中有几位BA地址,如果有两位,说明有4个bank,如果有3位,说明有8个bank.。DDR4每个Bank Group里面就是有4个Bank。而且DDR4一般是有4个Bank Group,这样总共有16个Bank。

2)row和column:假如表示行的有A0~A14,那么单个bank中行的总量为2^15。列类似,如果表示列的有A0~A9,单个bank中列总量为2^10.

3)行激活”(Row Active):实际工作中,Bank地址与相应的行地址是同时发出的,在此之后,将发送列地址寻址命令与具体的操作命令(是读还是写),这两个命令也是同时发出的,所以一般都会以“读/写命令”来表示列寻址。从行有效到读/写命令发出之间的间隔被定义为tRCD,即RAS to CAS Delay(RAS至CAS延迟,RAS就是行地址选通脉冲,CAS就是列地址选通脉冲),我们可以理解为行选通周期。tRCD是DDR的一个重要时序参数,广义的tRCD以时钟周期(tCK,Clock Time)数为单位,比如tRCD=3,就代表延迟周期为两个时钟周期。


DDR4调试笔记1_第1张图片

4)CL(CAS Latency,列地址脉冲选通潜伏期):相关的列地址被选中之后,将会触发数据传输,但从存储单元中输出到真正出现在内存芯片的I/O接口之间还需要一定的时间(数据触发本身就有延迟,而且还需要进行信号放大),CL的数值与tRCD一样,以时钟周期数表示。

5)tAC(Access Time from CLK,时钟触发后的访问时间):从数据I/O总线上有数据输出之前的一个时钟上升沿开始,数据即已传向S-AMP,也就是说此时数据已经被触发,经过一定的驱动时间最终传向数据I/O总线进行输出。


DDR4调试笔记1_第2张图片

6)突发(Burst):指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输的周期数就是突发长度(Burst Lengths,简称BL)。在进行突发传输时,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。

7)tRP(Row Precharge command Period,行预充电有效周期):当前寻址的存储单元是B1、R2、C6。如果接下来的寻址命令是B1、R2、C4,则不用预充电,因为读出放大器正在为这一行服务。但如果地址命令是B1、R4、C4,由于是同一Bank的不同行,那么就必须要先把R2关闭,才能对R4寻址。从开始关闭现有的工作行,到可以打开新的工作行之间的间隔就是tRP,单位也是时钟周期数。

8)数据选取脉冲(DQS):主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。是数据的同步信号。


DDR4调试笔记1_第3张图片

在写入时,以DQS的高/低电平期中部为数据周期分割点,而不是上/下沿,但数据的接收触发仍为DQS的上/下沿


2、应用接口:IP核对外的接口

主要是看用户FPGA和UI 接口之间的信号,基本和DDR3差不多。

DDR4调试笔记1_第4张图片

今天就写这么多。



你可能感兴趣的:(DDR4调试笔记1)