设为首页收藏本站自媒体平台

研发设计门户网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3539|回复: 7

DDR2 DDR3 硬件与layout相关知识,包含GM8287的设计点(原创)

[复制链接]

379

主题

893

帖子

3760

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3760
发表于 2015-6-1 17:58:42 | 显示全部楼层 |阅读模式

高速电路PCB网,专注于嵌入式方案,信号完整性和电源完整性仿真分析,高速电路PCB设计,各种EDA工具(Cadence\Mentor\\AD\\CAM\ANSYS HFSS)交流学习。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
基于目前群内问得比较多了的DDR2 DDR3的layout设计及调试问题,做个简单描述,
做抛砖引玉。文章属于原创,转载需注明。有问题在论坛提问,论坛会把问题发到群内做相关的讨论。

一:DDR2  DDR3 layout规则异同点(其中DDR3的layout规则主要针对GM8287芯片,速率跑1.6G)
1:DDR2 走T型等长,地址命令控制线参考时钟信号做等长(具体长度看CPU厂家定义,一般正负250mil),DQS参考时钟做等长(具体长度看CPU厂家定义,一般正负50mil)  DQ DM参考DQS做等长(具体长度看CPU厂家定义,一般正负25mil)。差分线对内等长10mil。DDR速率较低,所以所列
的数据均为通常情况下。


      差分走线做100欧姆阻抗控制,单端信号走线做50欧姆阻抗控制。(DDR3 的layout也是如此要求,GM8287比较特殊,差分使用90欧姆)
//--------------------------
      优先参考GND平面,其次参考DDR电压平面,不能夸分割处理。(DDR3 的layout也是如此要求)
//--------------------------
      同组同层,不同组信号的间距设定为3W,时钟和其它任何走线设定3W间距。
//--------------------------
      等长都是以芯片到DDR的管脚点对点来算。(DDR3 的layout也是如此要求)
//--------------------------
2:DDR3走fly-by形式。(DDR3的layout规则主要针对GM8287芯片,速率跑1.6G)
              DDR3的数据组没有硬性和时钟做等长处理,一般芯片内部会去调节data的时间,来达到同步,后续会用一个
表格来形象化说明。
DQ组:
1)长度(以主芯片管脚到DDR芯片管脚的点对点长度计算)
DQS对内差分走线误差5mil以内,
DQ、DQM长度参考DQS,长度误差在+/-  20mil
DQS差分对之间的长度10mil误差
2)间距
DQ走线之间间距不小于2倍线宽
DQ与DQS之间间距不小于3倍线宽
DQ组的走线尽可能同组同层
//--------------------------
ADDR/CMD/CK 组
1)长度(以主芯片管脚到DDR芯片管脚的点对点长度计算)
CK长度不短于任何DDR信号走线(因为DDR3 specification规定 DDR3 controller 在芯片內部只能delay “Data bus”)
CK差分对内误差5mil以内
ADDR/CMD小于与CK走线长度100mil至1000mil
2)间距
ADDR/CMD之间间距不小于2倍线宽
ADDR/CMD与CK之间间距不小于3倍线宽
ADDR/CMD/CK 组走线尽量同组同层
//--------------------
其它注意点:
DDR3走线参考GND平面或者1.5V电源平面,优先参考GND平面(时钟和数据走线尽量只参考GND平面)
Vref走线尽可能宽,避免靠近高速信号
同组走线使用的过孔数目尽量一样多(2 个 Via 的时序影响相当于180~220mil的走线长度)
等长绕线,自身绕线的间距(CAP)不小于2倍线宽
//----------------------
阻抗方面:
DQ与ADDE/CMD等单端走线阻抗控制在50欧姆
DQS与CK等差分阻抗控制在90欧姆


二:针对GM8287的DDR3调试,其中一个比较方便的手段就是,在整板工作最繁忙的时刻,比如硬件模块都打开,
    视频的传输,网络传输等等都在工作,然后环境温度设定在45度。这样的情况下,运行memtest程序,去长时间
   的烤机测试。
               memtest测试程序为开源的程序,大家可以百度了解。 测试之后,一般如果针对此芯片测试之后,在
DDR3参数没有调整的情况,会有几种错误,地址命令控制线错误,数据错误(读错误,写错误)。这些都需要分清楚。
1:
// CMD/ADD 错误
      

testing  59FAILURE: 0x55555555 != 0xaaaaaaaa at offset 0x000010a4. frmmap_open: AP0 open file:0x8f7dd660
1st. vaddr: 0x76a93290(content: 0x55555555, paddr: 0x788290), prev vaddr:0x76a9328c(content:0x55555555)
2nd. vaddr: 0x76c92a94(content:0xaaaaaaaa, paddr: 0xfa7fa94), prev vaddr:0x76c92a90(content:0x55555555)
problem happen, make this process stuck for debugging!

2:// data 错误 (write fail)
FAILURE: 0xabababab != 0x2bababab  at offset 0x00012aff.  frmmap_open: AP0 open file: 0x842f3640
1st. vaddr: 0x76b7bbfc(content: 0xabababab, paddr: 0x1fd1ebfc), prev vaddr:0x76b7bbf8(content:0xabababab)
2nd. vaddr: 0x76d7b400(content: 0x2bababab, paddr: 0x1f92d400), prev vaddr:0x76d7b3fc(content:0xabababab)
problem happen, make this process stuck for debugging!

3:// data 错误 (read fail)
FAILURE: 0xabababab != 0x2bababab  at offset 0x00012aff. frmmap_open: AP0 open file: 0x842f3640
1st. vaddr: 0x76b7bbfc(content: 0xabababab, paddr: 0x1fd1ebfc), prev vaddr:0x76b7bbf8(content:0xabababab)
2nd. vaddr: 0x76d7b400(content: 0xabababab, paddr: 0x1f92d400), prev vaddr:0x76d7b3fc(content:0xabababab)
problem happen, make this process stuck for debugging!

针对不同的错误类型,去调节相应寄存器的值,比如CMD/ADD 错误 ,可以调节0x9a100020内部的值,去调整CLK的相位等等
(详情参考GM8287的datasheet说明)。如data 写错误,则调整 0x9a10006c  0x9a100078 寄存器的值。data 读错误则
调整0x9a10006c  0x9a100024的值。

为什么有这些调整,大家知道DDR3中,都是参考CLK去做时序控制的,data在芯片内部做时序控制处理,因为走fly-by的
结构,data组的线一定比CLK短,所以在物理时间上,一定比CLK更先到达DDR颗粒,那么通过芯片内部的时序控制,就可以
让它达到同步,同时到达DDR颗粒这端。而数据有读取和写入,所以会分别有读和写的寄存器去控制它的delay。
           而内部调整是以byte做单位的,在GM8287来讲,32位的数据,使用2颗DDR3芯片,分成4个byte,每组八个bit,调节的delay级别从0~7,
纵向有byte 0~3,横向有0~7的这样一个表格。 根据读写的错误类型,相应调整相应的delay值。在后续的文章中,会讲讲
这方面的知识,关于DDR 参数的window方面。




www.yanfa.tech 站长 ,交流微信QQ 276556668

33

主题

110

帖子

484

积分

助理工程师

Rank: 3Rank: 3

积分
484
发表于 2015-6-1 21:19:32 | 显示全部楼层
这么好的文章必须得顶啊。

22

主题

132

帖子

5204

积分

技术专家

Rank: 8Rank: 8

积分
5204
发表于 2015-6-1 23:03:09 | 显示全部楼层
顶,抽空我把我画的那部分DDR3补完...
感觉自己挖坑了...

2

主题

23

帖子

164

积分

技术员

Rank: 2

积分
164
发表于 2015-6-1 23:11:02 | 显示全部楼层
顶。。。不错,学习了!

75

主题

261

帖子

2360

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2360
发表于 2015-6-2 12:07:51 | 显示全部楼层
原创,神器!!
回复

使用道具 举报

388

主题

734

帖子

4912

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4912
发表于 2015-6-2 15:22:23 | 显示全部楼层
赞一个,调试可以后续增加

6

主题

25

帖子

269

积分

助理工程师

Rank: 3Rank: 3

积分
269
发表于 2015-6-5 10:08:21 | 显示全部楼层
好文,实用!
回复

使用道具 举报

0

主题

1

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2015-6-5 17:15:42 | 显示全部楼层
坐等新更新
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

内容正在加载中,请稍候……

QQ|我的微博|小黑屋|手机版|Archiver|YanFa.Tech(gaosupcb Inc.)    

GMT+8, 2024-3-29 08:23 AM , Processed in 0.077331 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表