[backcolor=#ffffff][font=Tahoma]在DDR的PCB设计中,一般需要考虑等长和拓扑结构。等长比较好处理,给出一定的等长精度通常是PCB设计师是能够完成的。但对于不同的速率的DDR,选择合适的拓扑结构非常关键,在DDR布线中经常使用的T型拓扑结构和菊花链拓扑结构,下面主要介绍这两种拓扑结构的区别和注意要点。[/font][/backcolor][backcolor=#ffffff][/backcolor]
[size=5][color=#ff0000][b]1、T型拓扑结构[/b],[/color][/size]
也称为星型拓扑结构,其结构如图一所示。星型拓扑结构每个分支的接收端负载和走线长度尽量保持一致,这就保证了每个分支接收端负载同时收到信号,每条分支上一般都需要终端电阻,终端电阻的阻值应和连线的特征阻抗相匹配。星形拓扑结构可以有效地避免时钟、地址和控制信号的不同步问题。
[img]http://img.blog.csdn.net/20141206185409765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE0MDUxODA3NjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center[/img]
图一/
[size=5][color=#ff0000]2、远端簇结构[/color][/size]
星型结构的变形。要求是D到中心点的长度要远远长于各个R到中心连接点的长度。各个R到中心连接点的距离要尽量等长,匹配电阻放置在D附近,常用语DDR的地址、数据线的拓扑结构
[attachment=97068]
[size=5]3、[b]菊花链拓扑结构[/b],[/size]
如图二所示。和星型拓扑结构不同,菊花链拓扑结构没有保持驱动端到各个负载走线长度尽量一致,而是确保各个驱动端到信号主干道的长度尽量短。菊花链拓扑结构走线的特点,牺牲了时钟、地址和控制信号的同步,但最大的特点是尽可能降低各负载分支走线长度,避免分支信号对主干信号的反射干扰。
[img]http://img.blog.csdn.net/20141206185712171?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE0MDUxODA3NjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center[/img]
图二
在信号频率低于800MHz的情况下,上面两种拓扑结构均能满足系统性能需要。但是当信号速率到达1000MHz甚至更高,T型拓扑结构就不能满足性能需要。原因就在于T型拓扑结构过长的支路走线长度,在不添加终端电阻的情况下很难和主干道实现阻抗匹配,而为了实现各个支路的阻抗匹配添加终端电阻,又加大了电路设计的工作量和成本,是我们不愿意看到的。因此高速信号使用T型拓扑结构,特别是Stub>4的时候,支路信号对主干信号的反射干扰是很严重的。通常DDR2使用和速率要求不高的DDR3使用T型拓扑结构。菊花链拓扑结构主要在DDR3中使用,菊花链拓扑结构的主要优势是支路走线短,一般认为菊花链支路走线长度小于信号上升沿传播长度的1/10,可以有效削弱支路信号反射对主干信号的干扰,不同的书本上说法也不一样,大体上走线长度小于上升沿传播长度的1/6-1/10都是可以的,实际设计中我们肯定希望这个长度越短越好。菊花链拓扑结构可以有效抑制支路的反射信号,但相对于T型拓扑结构,菊花链拓扑结构的时钟、地址和控制信号并不能同时到达不同的DDR芯片。
[size=5]4、Fly-by scheduling 拓扑结构[/size]
为了解决菊花链拓扑结构信号不同步的问题,DDR3的新标准中加入了时间补偿技术(读写调整技术),通过DDR3内部调整实现信号同步。当信号频率高达1600MHz的时候,T型拓扑结构已经无能为力,只有菊花链或其衍生的拓扑结构能满足这样的性能需求。
一般的DDR3都会建议采用菊花链拓扑结构的改进型拓扑结构,Fly-by拓扑结构,如图三所示。Fly-by拓扑结构要求支路布线长度Stub=0,Fly-by具有更好的信号完整性。
[img]http://img.blog.csdn.net/20141206185744916?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE0MDUxODA3NjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center[/img]
图三
在菊花链拓扑的实际应用中,为了抑制Stub过长和分支太多对主干信号的反射干扰,以及加强主干信号驱动能力,一般在末端预留端接电阻电路。末端下拉电阻会增大IO口驱动功耗,所以采用末端上拉电阻的方式进行端接。计算信号驱动部分的戴维南等效电压作为上拉电压Vtt,Rt为驱动部分的等效电阻,通常上拉电压取值为IO驱动电压的一般,即Vtt=Vddr/2。
[font=Tahoma]在写调整期间,存储器控制器需要补偿额外的跨越时间偏移(对每个存储器器件,信号延迟是不同的),这是由于fly-by拓扑结构及选通和时钟引入的。源CK和DQS信号到达目的地有延迟。对于存储器模块的每个存储器元件,这种延迟是不同的,必须逐个芯片进行调整,如果芯片有多于一个字节的数据,甚至要根据字节来进行调整。该图说明了一个存储器元件。存储器控制器延迟了DQS,一次一步,直到检测到CK信号从0过渡到到1。这将再次对齐DQS和CK,以便DQ总线上的目标数据可以可靠地被捕获。由于这是由DDR3存储器控制器自动做的,电路板设计人员无须担心实施的细节。设计人员会从额外的裕度中得到好处,这是由DDR3存储器控制器中的写调整的特性所创建的.[/font]
[font=Tahoma]
[/font]
[font=Tahoma]
[/font]
[font=Tahoma][size=5]5、实例拓展讲解[/size][/font]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]一个主控拖动两个DDR颗粒,采用Fly-by结构,信号质量就不稳定,小批量量产总有几块板子DDR不能正常工作,仿真发现DDR信号质量并不是很理想,修改拓扑结构后,DDR运行变得稳定,具体什么情况呢?[/font][/color][/backcolor]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]该主板上有一块FPGA和一块DSP,FPGA驱动的DDR3没有问题,但是DSP驱动的DDR不稳定,我们仔细进行了查板工作,该主板上DSP与FPGA都是采用Fly-by拓扑结构,DDR颗粒也都支持读写平衡,如下图4所示,从布线上来看,设计并无不妥。[/font][/color][/backcolor]
[img]http://www.edadoc.com/upload/day_16-1114/16-01.jpg[/img]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]图4 Fly-by 拓扑走线[/font][/color][/backcolor]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]FPGA和DSP作为驱动时,仿真发现,两者的波形还是存在较大差异的,如下图5所示:[/font][/color][/backcolor]
[img]http://www.edadoc.com/upload/day_16-1114/16-02.jpg[/img]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]图5 DSP与FPGA波形对比[/font][/color][/backcolor]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]由图2可知,该主板上FPGA的驱动能力明显好于DSP,DSP不仅驱动能力比较弱而且信号的过冲还很严重,信号的裕量非常的小。[/font][/color][/backcolor]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]怎样去改善信号质量呢?芯片的驱动能力是有限的,没有太大调整空间,但既然选择了这款芯片,也不能轻易的改变,只能从布线上作调整,希望可以提高信号裕量,于是,作者想到了使用T拓扑结构,修改后的拓扑结构如下图6所示:[/font][/color][/backcolor]
[img]http://www.edadoc.com/upload/day_16-1114/16-03.jpg[/img]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]图6 T拓扑走线[/font][/color][/backcolor]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]经过仿真分析,将Fly-by拓扑变成T拓扑之后,信号质量明显好了很多,如下图所示,红色波形代表的是采用Fly-by拓扑时信号的波形,绿色波形代表的是采用T拓扑时,仿真得到的波形。相比于采用Fly-by拓扑,T拓扑得到的波形过冲更小。[/font][/color][/backcolor]
[img]http://www.edadoc.com/upload/day_16-1114/16-04.jpg[/img]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]图7 T拓扑与Fly-by拓扑走线对比[/font][/color][/backcolor]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]修改拓扑结构,实际打板,再次小批量量产,该主板DSP驱动DDR不稳定的现象没有了。[/font][/color][/backcolor]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]看来在颗粒数目比较小的情况下,T拓扑还是具有一定的优势的,因为T拓扑是完全对称的,在完全等臂分支的情况下,两个接收端感受到的反射也是一样的,可以相互抵消一部分,从而抑制信号过冲。[/font][/color][/backcolor]
[backcolor=#eff5f9][color=#444444][font=Tahoma, ]总结:
(1) DDR的拓扑结构选择还要考虑芯片的驱动能力,同样的拓扑结构,不同的芯片驱动得到不同的信号质量,所以拓扑结构的设计也不是一劳永逸的,最好做一下仿真验证,评估设计风险。
(2) 颗粒比较少情况(少于4片),建议使用T拓扑;相对于Fly-by,T拓扑会使信号的过冲更小,信号质量更稳定。T型拓扑绘制较Fil-by[/font][/color][/backcolor][backcolor=#eff5f9][color=#444444][b][font=Tahoma, ]难度大。[/font][/b][/color][/backcolor]
[font=Tahoma]
[/font]