我亲自进行了Cadence Allegro 17.4以及Altium Designer 23的实际测试, 跨过了高频信号走线过长, 拐直角致使信号反射、眼图闭合的陷阱。新手依照步骤一步步去操作, 便能够……
我亲自进行了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线的制作。
微信扫一扫
还没有评论呢,快来抢沙发~