ddr读时序波形_DDR知识积累

本文分享了DDR3硬件设计的要点,包括电源引脚、信号引脚和控制命令引脚的设计,强调了信号完整性和EMC设计。介绍了DDR3的内存空间、时钟信号、数据线及控制命令功能,特别讨论了ZQ校准和ODT端接电阻的作用。还概述了DDR3的状态框图和操作流程,涉及读写操作、预充电和自刷新等步骤。
摘要由CSDN通过智能技术生成

一、笔者所思:

本文这是本人的第一篇网络上的技术分享。其实之前早就想分享一下自己的自学笔记,由于工作原因以及懒,故搁置了很久。最近看到自己周围的同事也在某个论坛写文档,最重要的是实验室师姐影响和自己还想改变一下自己,故希望自己能够每周坚持写下自己的学习收获。

二、资料参考:

  • DDR3L芯片手册《MT41K1G8 – 128 Meg x 8 x 8 banks》
  • 博客:DDR硬件设计要点详解(包括电源部分) - 鳄鱼泪 - 博客园
  • 锐致创新:从原理上解释什么是DDR的ZQ校准?

三、文章正文

  1. DDR3硬件设计

个人认为硬件设计主要包括三个部分,芯片原理图电源引脚设计、芯片原理图信号引脚设计、PCB设计。在完成以上两部分设计时就要考虑:信号完整性设计、EMC设计。

根据芯片手册,芯片引脚如图:

25fb8da1917ae09864d75e2b6e6736e3.png

其中引脚大致分为3类:电源引脚,数据、地址引脚,控制命令引脚;

  • 电源引脚:VDD(芯片内部供电)、VDDQ(数据线I/O供电) VREF(参考电);具体电流技术手册中含有且时序1.5>0.75(VTT使用专门的电源芯片出);参考电源Vref,参考电源Vref要求跟随VDDQ,并且Vref=VDDQ/2,所以可以使用电源芯片提供,也可以采用电阻分压的方式得到。由于Vref一般电流较小,在几个mA~几十mA的数量级,所以用电阻分压的方式,即节约成本。VDD和VDDQ一般合并1.5V;VTT为匹配电阻上拉到的电源,VTT=VDDQ/2

DDR1:2.5V(工作电压)DDR2:1.8V;

DDR3:1.5V:DDR3L:1.35V

DRR4:1.2V

  • 数据、地址引脚:存在有分时复用;开始其中A0-A15作为行地址线、然后A0-A13表示列地址线,BA0-BA2:BANK地址线;故内存空间:【2^16*2^8*2^3】(地址空间数量)*2^3=8Gb;如图:

807df5ca1efbfb7bd8b3f89bba5be702.png
DDR内部逻辑图

DQ0-DQ8:数据线对应第一个地址存储8位数据;A10/AP、A12/BC#还具有第三种功能:

81b3c3ec2cc1d8c8189db3ca7dac7108.png

A10在预充电命令发出后:A10=0表示选择0-2BANK中选择一个预充电、A10=1,三个BANK同时预充电;

A12也是在读写命令和MR寄存器中使能后,决定突发长度是8bit还是4bit;

另外:DQS和DQS#(Data strobe)数据选取秒冲,在读写时是跟随DQ线同时发出。

  • 控制命令引脚:时钟信号差分对(CK/CK#)/时钟使能(CKE)、RAS(行地址有效)、CAS(列地址选择)、CS(片选引脚)、WE#(写使能)、DM(数据掩码)、RESET#(DDR复位)、ODT(抑制终端反射引脚)、ZQ(信号线上的输出驱动电平校验)。

以上的电平除了ZQ引脚之外,均为Input类型表示均有外部输入到DDR内部。故一般采用33欧姆电路并联端接到VTT。并且各个引脚均要控制器(CPU/FPGA)对应引脚相连。

ZQ引脚手册指出采用240Ω电阻到VSS;DDR的校准用于了校准输出驱动器的阻抗和ODT输出阻抗.现在以ODT为例讲述:假设ODT输出负载的电阻为30欧姆,为了减少信号反射必须要设置上拉端接电阻为30,故通过DDR的MR1[9,6,2]寄存器设置ODT的端接电阻为30欧姆,具体是根据ZQ参考电阻值,通过开关下图中的PMOS管的个数达到需要的端接30欧姆电阻。具体内容参考下图:

a88939a26d533a67ce3b75b00c51179d.png
校准功能框图

4dbdb44297b2c1561fc0505a9a8a9e24.png
校准过程详解

ec69e2e8eb4906809b5a9290db929d7b.png
ODT端接

ff62e06d51a1179a13c5ccde42717534.png

ODT的端接电阻RTT的值是根据ZQ引脚上的基准电阻的几分之几确定的,对应寄存器的值不同。通过设定RTT上下拉的阻值,这样DQ引脚输出的波形的电平基本确定。

PCB设计:

DDR布局:采用FLY—BY,拓扑结构,这样stub线最短,EMI能够减小。

电源部分走线:在芯片电源输入引脚加入去偶电容;大电容和小电容并联使用,小电容靠近芯片。电源层比地层内缩20H,H为电源层与地层之间的间距;

DQ、DQ、CLK三者走线差分走线阻抗控制在100欧,注意等长、且保持平行走线以及相互之间满足3W原则。

DDR存储单元:DDR中的每一个存储单元内部都是由行地址选通晶体管、列晶体选通晶体管、刷新放大器、存储电容组成;刷新放大器是将存储电容中的电压放大作用。

378ffe6a79662a9b00b9d5b5a0e39901.png

2. DDR3访问逻辑:
下图为DDR的状态框图

c2e4d4da7f80ff155d8f527bb4bf1c58.png

根据这个状态框图本人划分出几个常用状态:

1、芯片进入准备状态:主要包括:上电、复位、初始化、ZQ校验、命令等待状态、刷新、自刷新。

aff53cb88ab682822c5078b2a875f79c.png
芯片进入准备逻辑

复位:芯片复位信号低电平有效,只需要拉低就行。低电平的时间保持100ns,复位期间芯片不操作其他命令。在RESET信号保持100ns后,CKE信号必须先拉低然后RESET信号才能够拉高。RESET信号拉高后SDRAM进入初始化,初始化的过程需要在时钟稳定后进行:主要工作内容是设置模式寄存器。然后在进入ZQ校验模式。

fe15ae4d11e8bbcb7c742c3c9a0fce36.png

一下是芯片模式寄存器具体内容:

c55ea55ff8c21b0fdb087f47178550fc.png
MRS寄存器

2、芯片有效时序

cf04548ba1eda4572747b6926052d454.png

3、芯片读:

  • 读延时(RL)

feaa11ac462b246d27602af889fdc397.png
RL时序
  • 连续突发

9eca99d198da766eeb01d360917cff6f.png
  • 先读后写

b3cc604ef28e20b471440e403f2b543f.png

读完执行预冲电:

c51147bb7e343effe917bc89bb7450d9.png

3、写操作

  • 写突发:

5f153a24fb556387b8fb99676dc6db30.png
  • 连续写

1f7c915742da3e9fd770e1e40a3a4c86.png
  • 先写然后读

f949c723b9842e6879eac1d3996cf507.png
  • 写完预充电(怕芯片长时间的操作,不予充电会丢失数据)

c158fa0885bcc6ee8e5bc58f014b9dc5.png

4、预冲电

5、自刷新

b80ff8f4a843dc3377681ce2b97b5505.png

以上基本是本人认为的DDR3操作步骤,具体代码由于是刚入职的小白,驱动程序只在研究生期间自学过,由于工作岗位为硬件故未从事,不过有机会依据希望以后能够把软件作为一种兴趣本人不会最多只能够看懂时序,在实际的调试过程中需要注意各个信号的边沿时间和时钟稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值