使用Altium Designer进行DDR2的PCB设计(转比较不错)

转载于:http://blog.csdn.net/snaking616/article/details/53981973

 

本文首先列出了DDR2布线中面临的困难,接着系统的讲述了DDR2电路板设计的具体方法,最后给出个人对本次电路设计的一些思考。本次设计中CPU的封装为BGA844-SOC-Y,DDR2的封装为FBGA84,DDR2的控制总线采用星形连接,使用的PCB软件为AltiumDesigner10,参考设计教程为《Altium Designer DDR2设计教学视频》[1]!

 

1. DDR2布线中面临的困难

1.1 DDR与CPU之间的布局[1]

(1)DDR2:内存与CPU的边缘间距建议5~8mm;

(2)DDR3:排阻自身长度为2mm,排阻与CPU边缘间距建议3mm,排阻与内存边缘间距建议3mm。

1.2 如何设置Width(信号线宽)和Clearance(安全间距)?

在封装BGA844-SOC-Y中,焊盘的直径为18.9mil,焊盘间距为39.37mil,两个焊盘之间的间隔为20.47mil,要想从BGA中引出所有的信号线,必须合理的设置Width和Clearance等规则。

 

图1 BGA844-SOC-Y焊盘间距

在《DDR布线规则与过程》[2]一文中,交代了线宽与线距的设置规则:

(1)DDR的供电线线宽建议8mil以上,信号线默认线宽为5mil;

(2)线与线间距建议采用2W原则为8mil,线与其它sub-class的间距为5mil;

(3)CPU与DDR的区域规则:走线线宽为5mil,允许最小间距为3.3mil;

 

在博通BCM53344开发板中,CPU采用1006-pin FCBGA封装,DDR3采用FBGA封装,在BGA的区域内,线间距设为3.098mil,如图2所示,线宽设为3.902mil,如图3所示。

 

 

 

图2 线距规则

 

图3 线宽规则

1.3 网络分类与差分线的设置

在《DDR2信号分类及等长设计》[3]一文中,DDR2可以分为以下三类:
(1)差分时钟信号:CLK_N,CLK_P;
(2)数据线DQ0~DQ15,数据掩码信号DQM0,DQM1,数据选通信号DQS*_N,DQS*_P;
(3)地址线/控制线:除数据,时钟外的其他信号,如A0~A12,WE,CS,BA0~2,CKE等;
可以设置为以下几个class规则:
(1)DATA_L_BUS:Q0~DQ7,DQM0,DQS0_N,DQS0_P;
(2)DATA_H_BUS:Q8~DQ15,DQM1,DQS1_N,DQS1_P;
(3)ADDR_BUS:除数据线外的其他信号;
(4)CLK_DIFF: CLK_N,CLK_P;

 

1.4 如何确定小T点与大T点的位置?

如图4所示,小T点对应于DDR2焊盘扇出后的过孔C与D,C与D点扇出的走线方式必须保持一致。大T点对应于地址/命令总线的分支点过孔B,在DDR做等长布线时,地址/命令总线Net-Class(网络类)每条网络满足:

(1)AB+BC=AB+BD;

(2)每条网络的总长度(AB+BC+BD)均相等。

为了降低DDR等长布线的难度,通常将大T点设在C与D的对称轴上,假如大T点没有落在C与D的中轴线上,该怎么办?

在《用Altium Designer实现DDR2的等长布线》[4]和《Altium Designer 中 DDRII SDRAM 的等长布线》[5]中给出了解决办法,文中使用了AD里面的From-To Editor 网络编辑器,将同一个网络在T点处划分为3个部分,然后通过设置焊盘到焊盘之间的等长来实现DDR的等长布线,有兴趣的读者可以查看原文!

 

 

图4 选取大T点

1.5 BGA自动扇出与手动优化

在使用AD10给BGA自动扇出时,需要注意一下几点:

(1)在执行自动扇出前,BGA上的所有焊盘均不能连线,否则自动扇出无法完成!

(2)FBGA84封装的DDR2在进行自动扇出时,扇出的效果非常差,必须使用手工扇出。

对CPU和DDR2进行自动扇出,可分别得到图5和图6所示所示结果。

 

图5 CPU自动扇出

 

图6 DDR2自动扇出效果

1.6 如何控制等长误差

在《DDR2信号分类及等长设计》[3]一文中,等长误差如下设置:

(1)所有信号线参考差分时钟的长度作等长;
(2)DATA_L_BUS共11根走在同层,与差分时钟的长度误差25mil;
(3)DATA_H_BUS共11根走在同层,与差分时钟的长度误差25mil;
(4)ADDR_BUS:与差分时钟的长度误差200~300mil;

 

在视频《Altium Designer DDR2设计教学视频》中,作者给出了如下的等长误差,记地址/控制网络类(包括差分时钟)的等长目标为L1,数据网络类等长目标为L2,则:

(1)在地址/控制网络类中,差分时钟长度设为L1,其它等长误差控制在L1±200mil之内;

(2)数据网络类等长误差控制在L2±25mil之内,同一组之间作等长即可;

(3)L1与L2满足:0<L1-L2<1000mil!

 

2. DDR2等长布线

2.1 区域规则ROOM讲解

如何放置ROOM?

执行Design→Rooms→Place Rectangular Room,给CPU和DDR2添加ROOM,添加后将ROOM名称分别修改为“CPU_ROOM”、“DDR2_ROOM”,如图7所示。

  

图7 添加ROOM

 

2.2 区域规则设置

(1)如何设置规则?

执行Design→Rules...即可进入规则编辑菜单。

(2)如何定义ROOM内的规则?

进入规则编辑器后,首先点击需要编辑的规则并右击新建“new rule...”,接着先点击新键的规则,然后在“Where The First Object Matches”一栏选择“Advanced(Query)”,在“Full Query”一栏填入“withinroom('name_ROOM')”,最后Apply并单击OK即可!

上面的name_ROOM为ROOM的名称,输入语法时请切换为英文输入法,如果需要同时给多个ROOM定义规则,其语法为:withinroom('name_ROOM')&withinroom('name1_ROOM')&withinroom('name2_ROOM')

 

(3)如何给PCB定义规则?

为了引出BGA内部走线,规则中的Clearance和Width进行如下设置:

Clearance设置方案(优先级从下到上依次递增):

Clearance_CPU : 4 mil       withinroom('CPU_ROOM')           

Clearance_DDR2 : 4.4 mil      withinroom('DDR2_ROOM')

Clearance : 5 mil       

 

Width(最小 / 推荐 / 最大)设置方案(优先级从下到上依次递增):

Width_PWR : 12 / 12 / 120 mil  

Width_CPU : 4 / 4 / 4 mil            withinroom('CPU_ROOM')

Width_DDR2 : 4.4 / 4.4 / 4.4 mil         withinroom('DDR2_ROOM')

Width : 5 / 5 / 5 mil

 

说明:Width_PWR为电源网络的线宽规则!

2.3 过孔、网络CLASS及差分线的设置

(1)如何给PCB定义Via(过孔)的规则?

Via(内径 / 外径)设置方案(优先级从下到上依次递增):

RoutingVias_DDR2 : 8 / 16 mil        withinroom('DDR2_ROOM')

RoutingVias : 10 / 22 mil            

 

(2)如何设置网络Class

DDR2的所有网络,可以分为以下3类:

电源地信号,数据信号,时钟、地址、控制类信号。

    执行Design→ Classes...,调出类设置界面,按下方的规则对网络进行分类:

POWER_CLASS:GND、VREF、VCC1V8、VTT。

 

DATA_CLASS: 

    Data0-7:DRAM0_D0~7、DRAM0_DM0、DRAM0_DQS0_N、DRAM0_DQS0_P;

    Data8-15:DRAM0_D8~15、DRAM0_DM1、DRAM0_DQS1_N、DRAM0_DQS1_P;

    Data16-23:DRAM0_D16~23、DRAM0_DM2、DRAM0_DQS2_N、DRAM0_DQS2_P;

    Data24-31:DRAM0_D24~31、DRAM0_DM3、DRAM0_DQS3_N、DRAM0_DQS3_P;

 

ADD_CLASS:DRAM0_A0~13、DRAM0_BA0~2、DRAM0_CAS#、DRAM0_CLKE、DRAM0_CLK_N、DRAM0_CLK_P、DRAM0_CS#、DRAM0_ODT、DRAM0_RAS#、DRAM0_WE#

网络归类后效果如图8所示。

 

图8 网络分类

(3)如何设置差分线?

在软件左侧栏中,选择“Differential Pairs Editor”项目,将DDR2的时钟和DQS信号归为差分对,如图1.10所示:

差分对DRAM0_DQS0:DRAM0_DQS0_N、DRAM0_DQS0_P;

差分对DRAM0_DQS1:DRAM0_DQS1_N、DRAM0_DQS1_P;

差分对DRAM0_DQS2:DRAM0_DQS2_N、DRAM0_DQS2_P;

差分对DRAM0_DQS3:DRAM0_DQS3_N、DRAM0_DQS3_P;

差分对DRAM0_CLK:DRAM0_CLK_N、DRAM0_CLK_P。

 

图9 添加差分对

2.4 小T点设置

DDR2手动扇出效果图如图10所示,封装中心处的过孔对应为小T点,两个小T点的中点对应大T点所在的位置。

完成小T点的设置主要分为以下几步:

1. 对左侧的DDR2进行手动扇出;

2. 全选DDR2扇出的走线和过孔,对已选对象进行复制并以左上第一个焊盘作为参考点;

3. 将所选对象复制到右侧DDR2上,十字光标对准左上第一个焊盘!

以上操作也可称作走线与过孔的复用!

 

图10 小T点设置

 

2.5 大T点设置

将图10的小T点依次连接,并在两个小T点的中心打上过孔(即大T点),完成后效果如图11所示。

在连线时请注意以下细节:

1. 大T点的位置是允许一定的误差的,不需要绝对的中心!

2. 绕线时需要优化电源过孔的布局;

3. 小T点(过孔)之间的水平与垂直间距需要保持在30mil以上!

4. 大T点与小T点放置完后,请进行上锁设置,防止误删!

 

图11 大T点设置

2.6 CPU自动扇出

执行Auto Route→Fanout→Component,点击CPU封装即可完成CPU的自动扇出,扇出效果如图12所示。由于规则的设置,电源类管脚扇出线宽为12mil,信号管脚扇出线宽为4mil,下图中打白色圆圈的管脚为无网络的焊盘。

 

图12 CPU扇出

 

2.7 数据互联

数据类总线分为两部分互连,一部分走顶层,另一部分走L3层!

如图13所示,为数据网络类DATA0-[D8-15]和DATA0-[D24-31]在顶层的连线效果图。

 

图13 顶层DDR数据线互连

如图14所示,为数据网络类DATA0-[D0-7]和DATA0-[D16-23]在L3层的连线效果图。

 

图14 L3层DDR数据线互连

2.8 地址线T点互连

地址与控制类总线分为两部分互连,一部分走顶层如图15所示,另一部分走底层如图16所示。

 

图15 顶层控制、地址类总线连接

 

 图16 底层控制、地址类总线连接

 

2.9 寻找等长目标

如图16所示,为地址类网络长度分布,根据网络长度分布,选择3000mil作为地址类网络的等长目标,等长误差控制在±200mil以内。

根据作者描述,地址类与数据类网络长度差应小于1000mil,所以将数据类网络等长目标控制在2000mil,数据类网络之间的等长误差控制在±25mil以内。

 

图16. 地址、控制类网络长度分布

 

2.10 走等长线

1. 如何走等长线?

(1)普通信号线,按快捷键T+R,差分线按T+I,进入等长布线状态;

(2)等长布线时,W键上方的1、2、3、4依次对应拐角弧度减小、拐角弧度增大、蛇形线间距减小、蛇形线间距增大等功能!

 

2 地址类等长

顶层:

 

 

图17 顶层地址网络等长

 

底层:

 

 

图18 底层地址网络等长

3. 数据类等长

顶层

 

 

图19 顶层数据网络等长

 

底层

 

 

图20  L3层数据网络等长

 

2.11 等长输出

在Nets查看栏中,复制需要等长网络的名称和长度等属性,粘贴到Excel中并加以整理,即完成了DDR2等长信息的输出!

 

3. 个人思考

 

1、为何同一根信号线在不同区域(CPU_ROOM、DDR2_ROOM、其它)的线宽会不一样?

(1)在其它区域(DDR与CPU的中间区域)走5mil的线,是通过阻抗匹配计算出来的结果;

(2)在CPU_ROOM内走4mil的线是为了使信号线从BGA内部扇出,那么信号线在其它区域为什么不用4mil的线呢,这里可能是考虑了成本的原因(线宽越小成本越高)。在不影响DDR2性能同时又要使信号线成功扇出的情况下,必须使信号线拥有多重线宽规则(个人猜测,没有证实过)!

 

2、如何最大化利用好布线空间,同时减小信号线间的串扰?

如何最大化利用好布线空间:

地址总线的布线空间最紧张,需要优先布局,相邻信号线走蛇形线的区域应错开,走完所有的地址类信号线再走数据类信号线!

 

减小信号线间的串扰,可通过增加信号线之间的安全间距来实现,具体方法有:

(1)可以先改变全局的clearance规则(优先级设为最高),比如设为10mil,如果出现报错提示可暂时忽略,走完等长线后再改回原有规则!

(2)在走线的侧边直接画出一条无网络的铜线,走完信号后再删除该铜线!

(3)修改等长控制参数中的振幅。

 

 3、相同模块之间的复用

在第2.4小节中,将左侧DDR2的扇出铜线和过孔进行复用,可以明显缩短其它DDR2所需的扇出时间!

 

尾巴:本文是我首次接触高速电路设计的一次尝试,通过文章的形式记录下学习的点滴。本次设计并不是一个完整的工程,在DDR2滤波电容

的放置与优化、DDR2信号完整性仿真、以及PCB阻抗匹配的计算等方面均未涉及,由于个人能力有限,文章难免有错误,希望大家能够给出

宝贵的建议!

 

参考:

[1] 《Altium Designer DDR2设计教学视频》(该视频为书籍《AltiumDesigner实战攻略与高速PCB设计》配套视频,单独学习需要向作者购买!)

[2] DDR布线规则与过程, http://www.zencheer.com/ddr-layout-rules-processes/

[3] DDR2信号分类及等长设计,http://blog.sina.com.cn/s/blog_709fa2660101dlo8.html

[4] 用Altium Designer实现DDR2的等长布线,https://wenku.baidu.com/view/a1334bfcad51f01dc281f17e.html

[5] Altium Designer 中 DDRII SDRAM 的等长布线,https://wenku.baidu.com/view/424dd712ccbff121dc368324.html?re=view

转载于:https://www.cnblogs.com/tureno/articles/7348398.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器视觉学习笔记】OpenCV C++ 与 HSV颜色模型

目录HSV颜色模型Opencv中的HSV获取颜色值的小工具平台:Windows 10 20H2 Visual Studio 2015 opencv_contrib-3.4.12 HSV颜色模型 本节内容摘自HSV模型及opencv应用 —— ponponon 这个模型中颜色的参数分别是:色调(H)&#xff…

win10 解决升级 WordPress 时提示”另一更新正在进行”

1. 确定 wordpress 目录的 users 权限为 完全控制。 2. https://www.wpdaxue.com/wordpress-update-problem.html 本文目录 [隐藏] 1情景再现2解决办法 WordPress 4.5 下载安装量已经超过 600 万,而第一个维护版本 WordPress 4.5.1 已发布,修复了 Wo…

【STC15库函数上手笔记】7、PCA与PWM

目录硬知识硬件知识CCP/PWM/PCA模块的结构软件知识PCA初始化函数PWM更新占空比函数测试程序PWM模式产生PWM信号main.c实验现象16位软件定时器模式模式产生PWM信号main.c实验现象捕获模式测量周期长度main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof…

不会几个框架,都不好意思说搞过前端: Vue.js - 60分钟快速入门

Vue.js——60分钟快速入门 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用Vue.js。 本文摘自:http://www…

指针以及内存分配

原文:http://blog.csdn.net/bizhu12/article/details/6532235 1. 指针很灵活,这使得指针很难管理,在定义指针时,将在栈中开辟一块内存存放指针的地址(栈内的内存由系统分配和释放),指针的地址内存只是存放指针的地址,不存放指针指向的数据,值得注意的是,定义指针时指…

mysql如何修改开启允许远程连接

关于mysql远程连接的问题,大家在公司工作中,经常会遇到mysql数据库存储于某个人的电脑上,大家要想连接mysql服务,装有mysql服务的电脑就必须开启远程连接 第一步,用dos连接上你的数据库,(我这里…

Solidworks如何自动打开和关闭特征识别FeatureWorks

如果直接对已有的零件识别特征,可能会报错 删除多余的特征,先只保留一个输入(注意没有必要连草图也删掉,草图不会影响识别特征,你识别完了之后草图再接着该拉伸拉伸,该切除切除),然后…

SPI驱动0.96/1.3寸 OLED屏幕,易修改为DMA控制

目录OLED SPI 端口定义七针OLED引脚定义六针OLED引脚定义驱动程序oled.coled.holedfont.h使用main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 DMA控制见【0.96寸 OLED屏实现1500Fps的帧率】STM32 软件、硬件SPI、…

上传图片在页面上显示

看了别人写的 自己照着写了一下 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()"…

【STC15库函数上手笔记】9、硬件SPI

目录硬件知识库函数spi.cspi.h测试main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬件知识 摘自《STC15系列单片机器件手册》 STC15系列单片机还提供另一种高速串行通信接口——SPI接口。SPI是一种全双工…

中介者模式分析、结构图及基本代码

&#xfeff;&#xfeff;定义&#xff1a;用一个中介对象来封装一系列的对象交互。中介者使各对象不须要显式地相互引用。从而使其耦合松散&#xff0c;并且能够独立地改变它们之间的交互。适用地方&#xff1a;中介者模式一般应用于一组对象以定义良好可是复杂的方式进行通信…

WordPress 数据库结构及表字段作用解析

对于WordPress的开发可以说子凡已经是如痴如醉了&#xff0c;通过 WordPress 本身的开放性接口可以做到很多的事情&#xff0c;但是有些时候我们可能更喜欢直接查询数据库来实现某些 WordPress 没有提供的函数来实现目的&#xff0c;所以这时候我们就需要对WordPress 数据库的结…

硬件负载均衡设备介绍

最常用是F5 与citrix netscaler 负载均衡分全局负载均衡和本地负载均衡。 地负载均衡是指对本地的服务器群做负载均衡&#xff0c;全局负载均衡是指对分别放置在不同的地理位置、有不同网络结构的服务器群间作负载均衡。 循环DNS 就是每次解析域名时指向IP loop list 里的下一个…

【STC15库函数上手笔记】10、EEPROM

目录硬件知识基本介绍软件知识EEPROM多字节读函数EEPROM多字节写函数EEPROM扇区擦除函数函数测试main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬件知识 基本介绍 摘自《STC15系列单片机器件手册》 STC…

【51单片机快速入门指南】4.6:I2C 与 PCF8563实时时钟日历芯片

目录硬知识概述特性功能描述报警功能模式定时器模式CLKOUT输出复位低电压检测器和时钟监视器低电压检测器和时钟监视器寄存器结构寄存器概述BCD编码格式寄存器概述Control/Status 1 寄存器&#xff08;内存地址00H&#xff09;Control/Status 2 寄存器&#xff08;内存地址01H&…

利用MySQL语句批量替换指定wordpress文章中的图片路径

天花了很多时间将SAE服务器中的图片下载到本地&#xff0c;然后删掉&#xff0c;但是有一个问题就是&#xff0c;所有文章中的图片路径还是以前的&#xff0c;没有根据域名来。导致下午某些时间段图片都是无法显示的&#xff0c;后来想到用MySQL直接批量替换&#xff0c;执行才…

【51单片机快速入门指南】6.4:DHT11、DHT22单总线温湿度传感器

目录硬知识DHT11DHT22通信协议读取步骤数据解读DHT11DHT22示例程序DHT11_22.cDHT11_22.h测试程序main.c实验现象DHT11DHT22STC89C52 Windows 10 20H2 Proteus 8 Frofessional v8.9 SP2 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《温湿…

【电路补习笔记】1、电阻的参数与选型

目录参数精度温度系数功率贴片电阻色环电阻传感器电阻老师的主页&#xff1a;唐老师讲电赛 视频地址&#xff1a;唐老师讲电赛之唐老师讲电子器件&#xff08;1&#xff09;电阻参数与选型 电阻按封装分为直插、贴片与印刷电阻&#xff08;有些电阻直接印刷在PCB上&#xff09;…

redis本地安装

redis在本地的安装及使用1、首先下载redis安装包&#xff0c;下载地址如下 http://pecl.php.net/package/redis/2.2.7/windows输入phpinfo()查看php版本进行相应的下载&#xff0c;注意版本2、下载完成后将php_redis.dll放到ext下&#xff0c;在php.ini中添加extensionphp_re…

【Net】测试网络、查看IP

http://www.speedtest.cn/ 转载于:https://www.cnblogs.com/flydkPocketMagic/p/7380400.html