高速PCB设计绕等长一定要绕个山路十八弯才算牛?

初次接触高速讯号或DDR设计的人,可以找到一些在谈走线绕等长的 旧资料(当中不乏过去大厂的design guide),但近几年一些DDRII(或更快)的design rule,渐渐改以定义setup time, hold time budget with jitter取代length-matching routing rule,并且改以强调对时序图的理解与使用模拟(margin predict)的重要性。简单说:rule就是不管你怎么layout设计,但你时序要满足规格(timing margin),或传输线的损耗要在规格内(S-parameter)。

我们在评估不同group之间的走线等长要求,或同一个group内的走线等长要求,必须就时序的角度来考虑。一般特性阻抗50 ohm的microstrip于1000mils的传递时间大约是150~160ps, 假设point-point的DDRII走线总长约1000~1500mils,其中各别线长的差异了不起500mils,此时线长差异对SI影响其实很小, 但光是1000~1500mils长的走线于1.6mm板厚的PCB上过孔换层,就会造成100~250ps不等的传递延迟时间差了。

线长差异只是影响时序的因素之一,stack-up\via\stub\coplane\slot…这些因素在高速讯号设计的领域里,在PCB与package level,彼此是有不同程度的交互影响,如果只是一味的要求蛇线等长,而让走线的总线长大幅增加,并且蛇线本身引入的阻抗弯折处的不连续性与相邻线的电容寄生效应变大,这反而对高速讯号的设计是非常不利的,未蒙其利,先受其害。

本文将以DDRII为例,说明贯孔换层,与相邻贯孔的clearance hole (anti-pad)把内层plane打破,对讯号的影响。另外,走线长度差异所造成的delay只是total timing skew的因素之一,不一定是关键的因素,反而过严的等长要求或过度绕蛇线会造成SI\EMI恶化。我们该注意的是。以最短的蛇线满足设计要求、维持至少2W rule (DDRII如果有开ODT, 甚至1W也可),并确保地回路的连续性。

控制线长误差在300mils以内的DDRII Addr\Cmd\Ctrl group (serpentine routing)

本例其实不算是过严的length-matching routing,因为尚容许走线之间300mils的长度差。黄色是走线在layer 1与layer 4,但layer 4走线被layer 2 plane(绿色是GND net)遮住了所以看不到。

“”

以Designer\Nexxim模拟

“”

模拟结果整个group total skew大约190ps (with Rs=22 ohm),且可以看到走线分成两群,波形SI较佳的是走在top layer没有过孔换层的,波形SI较差且时间延迟较大的是走在bottom layer有一次过孔换层的。

“”

Rs=22W,overshoot\undershoot没有超标

“”

控制线长误差在50mils以内的DDRII Data Group (serpentine routing)

Layout虽然满足data group内的线长差异控制在50mils以内,但整个走线太长没有优化,多绕了一些蛇线:
没有开ODT,但有串连终端Rs=22W,模拟结果发现overshoot\undershoot过大,且眼图很差;这是一个过度绕蛇线导致眼图较差的实例

“”

“”

修改后的layout同样满足data group内的线长差异在50mils以内,但整个走线有优化

总线长缩短300mils,且线与线之间保持3W space,绕蛇线的程度较轻微,如下图所示

“”

没有开ODT,但有串连终端Rs=22W,模拟结果发现眼图有明显改善

“”

完全不管线长差异的Addr\Cmd\Ctrl Group (走线要求as short as possible and straight forward)

没有VDDQ-GND de-coupling capacitor,且BGA下方的地,被相邻的anti-pad (clearance hole)打破

下图所示为一群DDRII的Addr\Cmd\Ctrl bus,且在主控IC的BGA正下方,可见一整排的via打破了内层plane,其中绿色是layer 2 ground plane,黄色走线在layer 1,另外layer 4也有走线,但被layer 2 plane遮住了所以看不到。

“”

模拟结果整个group total skew大约800ps (Rs=22),会这么差并不是因为走线没取等长造成的 ,主要是因为此例还没有加de-coupling capacitor 0.1uF于VDDQ-GND之间 ,所以走线只要一换层(从top转到bottom),地回路的连续性就被破坏了

“”

有VDDQ-GND de-coupling capacitor,且BGA下方被相邻的anti-pad打破的地,用网线补起来(grid ground)

仿真结果显示,整个group total skew大约310ps (Rs=22);这是因为增加了VDDQ-GND之间的0.1uF,减轻因为换层走线造成的地回路不连续issue。

“”

此例在anti-pad之间补细线的方式,一开始是透过PADS PCB layout tool施作,再由SIwave import .pcb转出.siw的,在这转换过程中,SIwave虽然视这些ground line为GND net,但在属性上还是把它当trace而不是copper的一部份,而Ansoft处理trace与copper plane的方法是不同的,这可能会导致模拟结果有差异,无法完全呈现补grid ground后的ground plane performance

“”

针对补grid ground这部份,我们在SIwave中用”Draw Rectangle”选择”Merge”, 再重新补一次,如下图所示:

若整个project有很多net=GND的trace要改成plane,选定net后,执行Tools\ Convert Traces To Planes

“”

仿真结果显示,整个group total skew一样大约310ps (Rs=22),但这次很明显的看出走在layer 1的讯号是一群,走在layer 4的讯号是一群,后者delay与over-shoot\under-shoot都较大。这波形就很清楚的呈现了走线在top layer没有过孔换层,与走线经过贯孔走bottom layer的差异就将近200ps了,剩下因为线长的差异所引起的timing skew其实只有数十ps。

“”

只要减小PCB板厚(减轻via effect),将可以很看到这两群讯号SI特性较一致,且时序也接近的改善效果
Rs=22W undershoot超出标准

“”

仿真结果显示,改Rs=33W,整个group total skew大约295ps

“”

改Rs=33W,undershoot改善了

“”

完全不管线长差异的Data Group (走线要求as short as possible and straight forward)

“”

模拟结果跟section 2.1一样都很差,没有sec. 2.2来的好,主要的修改是走线拉直取最短,但这不是比sec. 2.2差的主因,变差的主因是没有维持3W

“”

• 高密度小BGA封装的高速PCB设计,应尽量避免内层的plane(不管是power或ground plane)被相邻的一整排anti-pad打破,形成破坏地回路连续性的slot。改善方法是在anti-pad之间,在PCB制程可以确保良率的前提下,补细线成grid ground,这对SI\PI的改善非常显著,且这种技巧因为在PCB内层施作,由外观上不易识别出来,是板级设计技术差异的关键之一。

• 以DDRII-800 point-point routing的Addr\Cmd\Ctrl Group而言, 即使完全不绕蛇线也OK。而对Data group总线长1000mils以上,些微的蛇线做length-matching会好一点 ;若总线长可做在1000mils以内,即使完全不绕蛇线、不用ODT也OK;point-to-point的DDR routing,data group的走线可以缩到总线长600mils以内。

• 线越短、绕蛇线的部份越少越好;另外3W rule的影响在DDRII-800于四层板施作的影响较小,2W rule即可。如果打开ODT或伴地线则可以1W施作

Anti-pad补充说明

“”

“”

绕蛇线的几个原则

绕蛇线的间距

— isolate space有些是写15~20mils、有些是写3W、有些是写6H…这都对,但若考虑物理意义来说,应该以相对于堆栈高度的定义6H比较好

“”

“”

螺旋型蛇线效果较好 [1]

“”

“”

差动对绕蛇线的原则

— 绕线尽量集中在产生线长差异的那一端,主要是为了保有差动对可以抗CM noise的物理特性 (这点读者可以想一下,很有意思的)

“”

3W rule在四层板真的有这么重要吗?看也些板子只留1W,DDRII-666或DDRII-800也可以跑的动呀?
Ans:笔者这里所强调的是较理想的作法,依此建议可以轻易做到不开ODT(省电,省热耗)而跑到DDRII-800,但您如果用1W走线,可能就要牺牲量产时对各家DDRII的window余量,甚至要打开ODT才可以。

原文链接:
http://www.oldfriend.url.tw/SIwave/Antipad_Slot_Serpentine_Routing.htm

本文转载自:荷兰风车的博客
转载地址:http://blog.csdn.net/huibei_wuhan/article/details/51272602
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编进行处理。

最新文章