高频信号必须短而直 实测走线翻车与避坑指南

发布于 更新于
1,951
详情介绍

我亲自进行了Cadence Allegro 17.4以及Altium Designer 23的实际测试,跨过了高频信号走线过长,拐直角导致信号反射、眼图闭合的陷阱。

为啥高频信号必须短而直

将高频信号在PCB上进行传输,其本质实际上是电磁波,当走线长度有所增加时,信号于传输线上产生的衰减以及延时会变得越发明显,一旦走线出现拐弯情况,特别是在呈现90度直角的时候,特性阻抗会发生突变,信号会即刻反射回来,并且叠加于原始信号上进而造成过冲、振铃现象,我曾碰到过一块属于6层板的DDR3数据线,仅仅是因为其中一根走线绕了个弯,眼图就直接塌掉了半边,通过实测所获取的经验表明,当信号频率超过100MHz时,走线每增加1厘米,眼图开口就会收窄大约5%,所以高频信号的物理路径务必要最短、最直。

关键参数最优推荐值

针对低于1GHz的平常高频信号,像DDR时钟线、LVDS差分对这类的,我建议将走线长度把控在信号波长的1/20内。以DDR3 – 1600为例,其时钟频率为800MHz,波长大概是37.5厘米, 1/20便是1.875厘米。原因很简便:当走线长度远远小于波长时,传输线效应并非显著,信号能够近似看成集总参数,反射以及延时都处于可控范畴内。超过这个数值,就必须采用端接匹配,而且还容易出现时序方面的问题。进行过一次实测,将一根长度为2.5厘米的时钟线做了缩短处理,使其变为1.8厘米,之后该时钟线所呈现的眼图抖动出现了下降情况,从原本的80ps降低到了35ps。

完整操作步骤

步骤1 设置布线规则

使Allegro的Constraint Manager被打开,将Net往Routing选项再移至Min Line Length以及Max Line Length那里去选择。针对于高频信号网络,像DDR_DQ[0:7]这种,在Max Line Length栏当中把实际所允许的最大长度值填入进去,其单位为mil。要是你板子的空间存在限制,那就把上限设定成800mil。一起来勾选Same Net Spacing,把线间距设置成起码是线宽的3倍。之后在布线期间开启Interactive Phasing模式,让走线只能以45度拐弯行进,绝对不允许呈现90度。

【新手避坑】设定规则过后布不通,这是常见的报错情况,表示软件持续报DRC方面的错误。其核心原因可说是Max Line Length设置得过度小造成的,跟板子布局情况形成冲突。存在便捷的解决方式:先大致布好一条线,衡量实际的最短路径长度,再增添10%的余量当作上限数值。千万别一开始就随意设定为300mil。

步骤2 手动走最短路径

停用自动布线器,仅采用手动走线方式。选定高频信号网络,将鼠标置于焊盘上,按下F3以激活走线指令。自起点焊盘中心引出线来,顺着45度方向行进,碰到障碍物时借助“换层+过孔”避开,而非绕弯。每行走一小段便按一次Shift+W来查验实时线长。目的在于把线长把控在步骤1所设定的数值范围内。若两个焊盘处于同一层且不存在阻挡情况,便直接走直线,切莫为了美观而绕至同层的其他区域。

【新手避坑】 平常出现的报错情况在于,手动进行走线操作时,按下了空格键导致线头被锁定,最终画成了直角形状。其最为关键的原因是,快捷键之间产生了冲突,或者是操作方面并不娴熟。能够快速达成解决的办法是:开展走线操作时,仅仅按压鼠标左键来确定拐点位置,不按压任何别的按键;要是已然画出了直角,借助Slide命令进行细微调整,将90度转化成两个45度,不过最好是直接删除后重新绘制。

步骤3 差分对内等长与转角优化

对于差分对,像USB_DP/DM、LVDS_P/N这样的,先去走完一对当中的一根线,之后再在Constraint Manager里设置Relative Propagation Delay,将目标值设定为0ps,容差为±5ps。随后去走另一根线,把Auto Interactive Delay Tune功能打开,软件就会自动绕线进行等长补偿。要留意,绕线的时候,得使用“蛇形线”,而不是“回头弯”,其中,蛇形线每个弯曲之处的宽度,起码得是线宽的3倍,并且,其间距是线宽的2倍。

【新手避坑】常见的报错情况为,在进行等长绕线操作时,出现了Crosstalk耦合现象,导致信号彼此间相互干扰。其核心原因在于,蛇形线的间距被设定得过于微小。快速的解决方式为,将蛇形线的Segment Gap从默认的5mil变更至15mil以上;如果空间不足够,那就改用“Trombone”结构,也就是多个小型绕线凸包,来避免长距离的平行情况。

两种实操方案对比

方案A:采用全手动的方式进行走线,直接一步就达成拉直的效果。其适用的场景为,板子的密度并非很高,高频信号的数量比较少(少于10根),同时你有充足的布线时间。该方案的优势在于,信号质量是最为优良的,眼图情况是最为优质的。方案B:先是借助自动布线器进行粗略布线,之后再通过手动方式进行精细调整。它适用的场景是,板子的结构比较复杂,高频信号超过20根,又或者是交期非常紧迫的情况。其代价是,自动布线会遗留下大量的绕线以及直角,手动微调需要耗费2到3倍的时间去清理,并且还有可能会引入新的阻抗不连续的问题。我所秉持的取舍逻辑是这样的,若是对于信号完整性有十分严苛的要求,举例如若达到PCIE Gen3以及上的标准时,那么就 necessarily 必须采用方案A;而当面对普通消费电子的情况时,只要方案B加上后仿能够通过那就可以了。

完整报错与解决流程

待高频信号结束行程之后,运用Sigrity去提取S参数,接着将其导入ADS开展时域反射TDR仿真。出现报错内容为: “在1.2ns这个时间点观察到负反射的最值达到了-0.3V”。其最为关键的原因即是走线在某一个过孔的位置阻抗由50Ω迅速跃变至35Ω。完整的解决步骤流程如下:先要确定报错所处的具体位置,借助Allegro通过Show Element来寻觅到对应的过孔,经过测量得出孔径是8mil,然而焊盘环宽仅仅只有2mil,这便导致电容变得过大。而后换用孔径为10mil、焊盘环宽为4mil的过孔,并且在过孔下方邻居层挖掉20mil×20mil的铜皮来做阻抗补偿,改完之后重新仿真, TDR反射峰从-0.3V降低到-0.05V,眼图裕量从15%恢复至42%。

针对极高频场景,此方法并不适用,像毫米波雷达77GHz这种情况,原因在于走线长度得小于0.5mm,而普通PCB工艺根本无法达成,替代的办法是采用波导,或者把射频芯片直接封装在天线基板上,不进行长距离PCB线的制作。

常见问题(FAQ)

高频信号走线长度控制在多少比较合适?
对低于1GHz的信号,走线长度尽量控制在信号波长的二十分之一以内。以DDR3-1600为例,时钟800MHz、波长约37.5厘米,那么上限约为1.875厘米。
走线拐弯对信号有什么影响?
出现90度直角时特性阻抗会突变,信号立即反射回来并叠加在原信号上,造成过冲和振铃。布线时应保持45度拐弯,绝不走直角。
等长绕线时串扰严重,怎么调整?
多半是蛇形线间距设得太小。把蛇形线的线间距从默认的5mil改到15mil以上;空间不够时可改用多个小型绕线凸包的结构,避免长距离平行走线。
0 / 600
0 讨论
热门最新
总结
暂无总结
嗨,下午好!
所有的成功,都源自一个勇敢的开始
相关文章