转自 http://www.fairchildic.org/module/forum/thread-658-1-1.html (原帖包括详细的附件内容)

1. 电源 DDR的电源可以分为三类
A.主电源VDD和VDDQ,主电源的要求是VDDQ=VDD,VDDQ是给IO buffer供电的电源,VDD是给但是一般的使用中都是把VDDQ和VDD合成一个电源使用。
有的芯片还有VDDL,是给DLL供电的,也和VDD使用同一电源即可。电源设计时,需要考虑电压,电流是否满足要求,电源的上电顺序和电源的上电时间,单调性等。电源电压的要求一般在±5%以内。电流需要根据使用的不同芯片,及芯片个数等进行计算。由于DDR的电流一般都比较大,所以PCB设计时,如果有一个完整的电源平面铺到管脚上,是最理想的状态,并且在电源入口加大电容储能,每个管脚上加一个100nF~10nF的小电容滤波。

B.参考电源Vref,参考电源Vref要求跟随VDDQ,并且Vref=VDDQ/2,所以可以使用电源芯片提供,也可以采用电阻分压的方式得到。由于Vref一般电流较小,在几个mA~几十mA的数量级,所以用电阻分压的方式,即节约成本,又能在布局上比较灵活,放置的离Vref管脚比较近,紧密的跟随VDDQ电压,所以建议使用此种方式。需要注意分压用的电阻在100~10K均可,需要使用1%精度的电阻。 Vref参考电压的每个管脚上需要加10nF的点容滤波,并且每个分压电阻上也并联一个电容较好。

C、用于匹配的电压VTT(Tracking Termination Voltage)
VTT为匹配电阻上拉到的电源,VTT=VDDQ/2。DDR的设计中,根据拓扑结构的不同,有的设计使用不到VTT,如控制器带的DDR器件比较少的情况下。如果使用VTT,则VTT的电流要求是比较大的,所以需要走线使用铜皮铺过去。并且VTT要求电源即可以吸电流,又可以灌电流才可以。一般情况下可以使用专门为DDR设计的产生VTT的电源芯片来满足要求。
而且,每个拉到VTT的电阻旁一般放一个10Nf~100nF的电容,整个VTT电路上需要有uF级大电容进行储能。
在华为的设计中,在使用DDR颗粒的情况下,已经基本全部不使用VTT电源,全部采用电阻上下拉的戴维南匹配,只有在使用内存条的情况下才使用VTT电源。

一般情况下,DDR的数据线都是一驱一的拓扑结构,且DDR2和DDR3内部都有ODT做匹配,所以不需要拉到VTT做匹配即可得到较好的信号质量。DDR2的地址和控制信号线如果是多负载的情况下,会有一驱多,并且内部没有ODT,其拓扑结构为走T型的结构,所以常常需要使用VTT进行信号质量的匹配控制。DDR3可以采用Fly-by方式走线:
一个DDR3设计案例,来分析对比采用高阻抗负载走线和采用主线和负载走线同阻抗两种情况的差异。

如上图,Case1采用的是从内层控制器到各个SDRAM均为50ohm的阻抗设计。Case2则采用了主线40ohm,负载线60ohm的设计。对此通过仿真工具进行对比分析。

从以上仿真波形可以看出,使用较高阻抗负载走线的Case2在信号质量上明显优于分支主线都采用同一种阻抗的Case1设计。而且对靠近驱动端的负载影响最大,远离驱动端的最末端的负载影响较小。这个正是前面所分析到的,负载的分布电容导致了负载线部分的阻抗降低,如果采用主线和负载线同阻抗设计,反而导致了阻抗不连续的发生。把负载走线设计为较高的阻抗,用于平衡负载引入的分布电容,从而可以达到整条走线阻抗平衡的目的。
通过提高负载走线阻抗来平衡负载电容的做法,其实在以往的菊花链设计中是经常用到的方法。DDR3称这种拓扑为fly-by,其实是有一定的含义的,意在强调负载stub走线足够的短。

2. 时钟
DDR的时钟为差分走线,一般使用终端并联100欧姆的匹配方式,差分走线差分对控制阻抗为100ohm,单端线50ohm。需要注意的是,差分线也可以使用串联匹配,使用串联匹配的好处是可以控制差分信号的上升沿缓度,对EMI可能会有一定的作用。

3. 数据和DQS
DQS信号相当于数据信号的参考时钟,它在走线时需要保持和CLK信号保持等长。DQS在DDR2以下为单端信号,DDR2可作为差分信号,也可做单端,做单端时需要将DQS-接地,而DDR3为差分信号,需要走线100ohm差分线。由于内部有ODT,所以DQS不需要终端并联100ohm电阻。每8bit数据信号对应一组DQS信号。
DQS信号在走线时需要与同组的DQS信号保持等长,控制单端50ohm的阻抗。在写数据时,DQ和DQS的中间对齐,在读数据时,DQ和DQS的边沿对齐。DQ信号多为一驱一,并且DDR2和DDR3有内部的ODT匹配,所以一般在进行串联匹配就可以了。

4. 地址和控制

地址和控制信号速度没有DQ的速度快,以时钟的上升沿为依据采样,所以需要与时钟走线保持等长。但如果使用多片DDR时,地址和控制信号为一驱多的关系,需要注意匹配方式是否适合。

5. PCB布局注意事项
PCB布局时,需要把DDR颗粒尽量靠近DDR控制器放置。每个电源管脚需要放置一个滤波电容,整个电源上需要有10uF以上大电容放在电源入口的位置上。电源最好使用独立的层铺到管脚上去。串联匹配的电阻最好放在源端,如果是双向信号,那么要统一放在同一端。如果是一驱多的DDR匹配结构,VTT上拉电阻需要放在最远端,注意芯片的排布需要平衡。下图是几种DDR的拓扑结构,首先,一驱二的情况下分为树状结构,菊花链和Fly-by结构,Fly-by是一种STUB很小的菊花链结构。DDR2和DDR3走菊花链结构都是比较适合的。走树状结构可以把两片芯片贴在PCB的正反两面,对贴减小分叉的长度。一驱多的DDR拓扑结构比较复杂,需要仔细进行仿真。

6. PCB布线注意事项
PCB布线时,单端走线走50ohm,差分走线走100ohm阻抗。

注意控制差分线等长±10mil以内,同组走线根据速度的要求也有不同,一般为±50mil。

控制和地址线及DQS线和时钟等长,DQ数据线和同组的DQS线等长。

注意时钟及DQS和其他的信号要分开3W以上距离。

组间信号也要拉开至少3W宽的距离。

同一组信号最好在同一层布线。

尽量减少过孔的数目。

7. EMI问题
DDR由于其速度快,访问频繁,所以在许多设计中需要考虑其对外的干扰性,在设计时需要注意一下几点

原理有性能指标要求的,易受干扰的电路模块和信号,如模拟信号,射频信号,时钟信号等,防止DDR对其干扰,影响指标。

DDR的电源和不要与其他易受干扰的电源模块使用同一电源,如必须使用同一电源,要注意使用电感、磁珠或电容进行滤波隔离处理。

在时钟及DQS信号线上,预留一些可以增加的串联电阻和并联电容的位置,在EMI超出标准时,在信号完整性允许的范围内增大串联电阻或对地电容,使其信号上升延变缓,减少对外的辐射。

进行屏蔽处理,使用金属外壳的屏蔽结构,屏蔽对外辐射。
注意保持地的完整性。

7. EMI问题
DDR由于其速度快,访问频繁,所以在许多设计中需要考虑其对外的干扰性,在设计时需要注意一下几点

原理有性能指标要求的,易受干扰的电路模块和信号,如模拟信号,射频信号,时钟信号等,防止DDR对其干扰,影响指标。

DDR的电源和不要与其他易受干扰的电源模块使用同一电源,如必须使用同一电源,要注意使用电感、磁珠或电容进行滤波隔离处理。

在时钟及DQS信号线上,预留一些可以增加的串联电阻和并联电容的位置,在EMI超出标准时,在信号完整性允许的范围内增大串联电阻或对地电容,使其信号上升延变缓,减少对外的辐射。

进行屏蔽处理,使用金属外壳的屏蔽结构,屏蔽对外辐射。

注意保持地的完整性。

DDR硬件设计要点详解(包括电源部分)的更多相关文章

  1. DDR电源硬件设计要点

    一.DDR电源简介 1. 电源 DDR的电源可以分为三类: a.主电源VDD和VDDQ,主电源的要求是VDDQ=VDD,VDDQ是给IO buffer供电的电源,VDD是给但是一般的使用中都是把VDD ...

  2. [原创] 分享我们自己搭建的微信小程序开发框架——wframe及设计思想详解

    wframe不是控件库,也不是UI库,她是一个微信小程序面向对象编程框架,代码只有几百行.她的主要功能是规范小程序项目的文件结构.规范应用程序初始化.规范页面加载及授权管理的框架,当然,wframe也 ...

  3. 微信、陌陌等著名IM软件设计架构详解

    对微信.陌陌等进行了分析,发出来分享一下(时间有些久了) 电量:对于移动设备最大的瓶颈就是电量了.因为用户不可能随时携带电源,充电宝.所以必须考虑到电量问题.那就要检查我们工程是不是有后台运行,心跳包 ...

  4. 微信、陌陌等著名IM软件设计架构详解(转)

    对微信.陌陌等进行了分析,发出来分享一下(时间有些久了) 电量:对于移动设备最大的瓶颈就是电量了.因为用户不可能随时携带电源,充电宝.所以必须考虑到电量问题.那就要检查我们工程是不是有后台运行,心跳包 ...

  5. Nginx安装及配置详解包括windows环境

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

  6. glPixelStorei 详解 包括像素传输

    3.glPixelStore 像glPixelStorei(GL_PACK_ALIGNMENT, 1)这样的调用,通常会用于像素传输(PACK/UNPACK)的场合.尤其是导入纹理(glTexImag ...

  7. 转:android异步任务设计思详解(AsyncTask)

    这里说有设计思想是我根据查看Android源代码提炼出来的代码逻辑,所以不会跟Google工程师的原始设计思想100%符合(也有可能是0%),但是本文一定可以帮助你理解AsyncTask,也可能有一些 ...

  8. Ubuntu 14.10 下查看系统硬件信息(实例详解)

    linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并做了分类,实例解说. cpu lscpu命令,查看的是cpu的统计信息. blue@blue-pc:~ ...

  9. Linux 查看系统硬件信息(实例详解)

    原文链接:http://www.cnblogs.com/ggjucheng/archive/2013/01/14/2859613.html linux查看系统的硬件信息,并不像windows那么直观, ...

随机推荐

  1. 【转】Unicode utf8等编码类型的原理

    原文地址http://www.cnblogs.com/daxiong2014/p/4768681.html Unicode utf8等编码类型的原理 1.ASCII码  我们知道,在计算机内部,所有的 ...

  2. kb-07专题--线段树-01-单点修改,区间查和

    给定区间长度,然后给两个操作,单点增加值和单点减值,询问一个区间的人数和:(水) 代码如下: /* 写的第一个线段树,丑: */ #include<iostream> #include&l ...

  3. TCP/IP(域名DNS)

    域名是不带http://的. 有DNS就能解析域名,只要联网,不用担心你的域名和IP无法映射起来. 当然,域名和IP的映射也可以通过本地hosts文件(优先于DNS)添加.C:\Windows\Sys ...

  4. java面试题之Error和Exception的区别

    从概念角度分析: Error:程序无法处理的系统错误,编译器不做检查: Exception:程序可以处理的异常,捕获后可能恢复: 总结:前者是程序无法处理的错误,后者是可以处理的异常. 从责任角度分析 ...

  5. luogu 1142 轰炸 最多共线点数

    题目链接 题意 给定\(n(n\leq 700)\)个点,问共线的点最多有多少个? 思路 \(O(n^3)\):枚举两个顶点确定一条直线,再看有多少个顶点在这条直线上.讲道理会T. \(O(n^2lo ...

  6. 24深入理解C指针之---指针和数组

    一.指针和数组 #include <stdio.h> int main(int argc, char **argv) { ] = {, , , , ,}; int *ptrVector = ...

  7. [转]结队开发之多storyboard

    转自Haven's Blog   Storyboard的出现,让开发变得像讲故事一样,UI间的关系流程也一目了然.它其实是xib的升级版本,将多个xib统一管理了.任何事都有双面性,Storyboar ...

  8. ThinkPHP 的 Vender的简单实用

    ThinkPHP 的 Vender的简单实用 框架版本:3.2 示例一.调用二维码类: Vendor('phpqrcode.phpqrcode'); $QRcode = new \QRcode (); ...

  9. LeetCode OJ--Regular Expression Matching

    http://oj.leetcode.com/problems/regular-expression-matching/ 问题给想复杂了,只有p中可以含有. *,s中的字符都是确定的.想了好久,最终还 ...

  10. 回调函数 typedef bool (*IsUsed)(const string &name,boost::shared_ptr<ShpGeometry> oneGeometry);

    就是指向函数的指针. 回调函数,表示了一个函数的地址,将函数作为参数进行使用.参考百度百科:http://baike.baidu.com/view/414773.htm 常用的大概就是在sort函数中 ...