最全PCB走线拓扑种类
布线的拓扑结构在高速信号中起着非常重要的作用,我们需要了解布线拓扑结构的设计方法
一、目前常见的有以下几种拓扑:
一对一拓扑 (也称点对点拓扑);
菊花链拓扑(改进类型为Fly-by拓扑结构);
星型拓扑(部分改动后也叫T型拓扑)。
1、一对一拓扑
一对一拓扑是比较简单的Driver to Rceiver,也称点对点拓扑,结构简单,整个网络的阻抗特性容易控制,时序关系也容易控制,常见于高速双向传输信号线,常在源端加串行匹配电阻来防止源端的二次反射。
接下来所有的拓扑都是一对多的拓扑结构,需要分门别类进行介绍。
2、星型拓扑
定义:星型拓扑是多负载时常用的拓扑结构,驱动器位于星形的中央,呈辐射状与多个负载相连
优点:星型拓扑可以有效避免信号在多个负载上的不同步问题,可以让负载上收到的信号完全同步。
图1 星型拓扑
缺点:但这种拓扑的问题在于需要对每个支路分别端接,使用器件多,而且驱动器的负载大,必须驱动器有相应的驱动能力才能使用星形拓扑,如果驱动能力不够,需要加缓冲器。相对来说,星型拓扑只能用在相对低速信号上,而且是在各接收芯片需要同步接收的情况,只有在非常严格的时序要求下会采用星形拓扑,其中重要的原因是布局布线实现起来比较困难。
3、T型拓扑
定义:T型拓扑结构是树型拓扑,又叫对称型的远端簇型拓扑结构、等臂分支拓扑。实际上是星型拓扑的一个改进,它将星型拓扑中位于Driver端的分支节点移动到与Receivers最近的远端。
优点:T型拓扑结构可以让时钟、地址、控制等信号得到更好的同步效果。既满足了各个接收器上 接收信号的同步问题,又解决了阻抗匹配复杂和驱动器负载重的问题,因为远端簇形拓扑只需要在分支节点处终端匹配就可以了。
缺点:远端簇型拓扑要求各个接收器到分支点的距离要尽量近,分支线长了会严重影响信号的质 量,如果各个接收器芯片在空间上不能摆放在一起,那么就不能采用远端簇型拓扑即T型拓 扑。
T型拓扑结构各个分支的端接负载和走线长度要尽量保持一致,如此才能更好的保证每个分支的接收端负载接收到的信号尽量同步,并且,每个分支电路中都需要有端接电阻,通过端接电阻与走线的特性阻抗更好的匹配来减小信号反射干扰的问题;
图2 T型拓扑图
如图所示,可以看到T型拓扑的设计非常对称,好处就是每个DDR的命令、数据线的距离都是相同的,这样主控到每颗DDR的长度基本一致,也就是说每个颗粒的信号质量都差不多,如果PCB布局空间够大的情况下,画图起来比较简单,非常利于CPU的时序的控制。
布线布局时,T型拓扑结构要求从驱动端Driver到交叉T点的PCB布线长度要远远大于交叉T点到各个接收端Receiver的PCB布线长度,同时交叉T点到各个接收端Receiver的距离要尽量等长,信号匹配设计可以做在交叉T点处。如果是一拖二的,可以把两片芯片贴在PCB的正反两面,对贴减小分叉的长度。
4、菊花链拓扑
定义:菊花链是把所有的负载串起来,没有等长要求,而是确保各个驱动端到信号主干道的长度尽量短。菊花链拓扑结构的特征是每个接收端最多只和2个另外的接收端/发送端相连,连接每个接收端的stub线需要较短。
优点:最大的特点是尽可能降低各负载分支走线长度,避免分支信号对主干信号的反射干扰。菊花链一般适用较低速的信号,它比星型在布局布线上更容易实现。
缺点:菊花链拓扑结构走线的特点,牺牲了时钟、地址和控制信号的同步。
但随着芯片制造技术的更替,就是低速驱动器的上升沿也随着变陡,这使得低速不低频,更多的高频分量使反射也变成低速信号要考虑的问题了,尤其是多负载菊花链的多重反射,所以菊花链的信号完整性问题比星形拓扑负载复杂多了。菊花链最差波型总是出现在第一个接收器,因为后面每个阻抗不连续点的反射都会影响这里。
图3 菊花链拓扑图 3 菊花链拓扑
如上图所示,菊花链拓扑结构也比较简单,阻抗比较容易控制。该结构的阻抗匹配常在终端做,用戴维南端接比较合适。
5、fly-by拓扑
定义:Fly-by拓扑实际上是菊花链拓扑中的一种特殊情况。当菊花链拓扑中的支路布线长度Stub=0,也就是“SUB线”相当短的时候,可以将其称作为“fly-by”
优点:Fly-by具有更好的信号完整性。
缺点:Fly-by由于分支结构的存在,通道本身就存在一些缺点。例如:通道阻抗不连续;容性突变 对时序的影响等等。信号通道中只要有分叉就会存在阻抗的不连续,fly-by结构处处是分叉,阻抗不连续问题就很突出。
Fly-by拓扑常见于DDR内存的设计中,由于DDR内存的存储速度极高,且DDR内存上的内存芯片往往是规则成行排布的,因此使用fly-by拓扑相对比较合适。
相比T拓扑,fly-by拓扑在传输较高速率信号时更占优势一些,但是使用fly-by拓扑,负载之间有延时差,导致信号不能同时到达接收端。为解决这个问题,DDR3引入了read and write leveling。也就是,只有在主控芯片有读写平衡功能,也就是有Write Leveling,Read Leveling功能,才能采用这个拓扑结构。
fly-by拓扑的缺点突出,所以如图所示,fly-by拓扑结构在最后一级DDR颗粒要端接电阻。作用一是阻抗匹配,二是灌电流,起到补偿因为导线最长产生的延时的作用。若采用末端下拉电阻会增大IO口驱动功耗,所以采用末端上拉电阻的方式进行端接
图4 Fly-By拓扑图
至于为什么要在最后一级增加端接电阻,是因为从Driver到最后一颗DDR的电流是这一串所有DDR当中最大的;根据△I=△Q/△T的原理,电流加大了, △T减小了,故在一定程度上补偿了因线长导致的延时问题。
二、信号拓扑结构设计关注点
多负载总线的拓扑结构在实际PCB设计实现时,需要关注以下三个方面:时序、Stub、信号匹配
1、时序:总线一般会有传输延时、总线间时序关系(相对延时)的要求,在PCB设计实现时需要考虑:从驱动器到接收器的PCB走线长度、一组总线的PCB布线等长设计;
2、Stub:通俗的说就是PCB走线分叉,Stub长度控制的越短、信号由于分叉造成的反射影响就会越小,信号质量越容易控制。
Stub在哪些情况下存在呢,实际上Stub在实际互连链路中是随处存在的;
比如,PCB的孔一般是通孔、即从TOP面打通到BOTTOM面,而PCB走线的连接如果位于中间某层,从信号传输流向的角度考虑,PCB孔的一部分就会成为Stub,如下图所示:这是PCB过孔的剖面图,信号从红色走线通过过孔连接流向蓝色走线,这时图中标识的蓝色走线以下的过孔孔铜就会是此信号传输链路的Stub、多余无用的走线分叉;
再比如,PCB走线直接连接到接收端芯片管脚,这时从互连链路设计表面上看,走线已经不存在Stub了,但对于多负载总线即使在这种理想布线的情况下同样是存在Stub的,因为芯片本身会有封装,封装内也存在铜互连走线,芯片器件封装内的铜互连走线对其它接收端互连链路来说也是一段Stub,只是这段Stub比较短、通常被忽略了而已;
从PCB设计的角度,要控制Stub,一方面要严格按照仿真确定的布线拓扑结构与规则进行布线设计,另一方面在布线设计习惯上要注意不要随意在互连链路上增加过孔Via、尽量将PCB走线连接到芯片管脚或距离芯片管脚很近的Via。
PCB上对于连接器孔Stub有一种Backdrill的加工工艺,就通过增加一次钻孔工序将无用的孔铜去除,通常这种加工工艺用于信号速率超过3.125Gbps以上的信号速率,是否需要Backdrill可以通过信号仿真分析确定,示意图如下:
3、信号匹配:信号不管是在驱动端还是在接收端进行匹配设计,核心思路是控制信号输入输出及阻抗匹配
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)