亲测Altium Designer 22版本, 也试过Cadence Allegro 17.4版本, 遭遇过差分对信号出错、因时钟线受干扰致使系统死机的状况。新手只要依照步骤逐一操作, 便可轻易躲开这类……
亲测Altium Designer 22版本, 也试过Cadence Allegro 17.4版本, 遭遇过差分对信号出错、因时钟线受干扰致使系统死机的状况。新手只要依照步骤逐一操作, 便可轻易躲开这类常见问题。
串扰实际上指的就是, 在一条走线上存在着的信号, 借助电磁场耦合这种方式, 传导到了隔壁的走线上, 最终致使数据出现误判。在高频数字电路当中, 这样的问题特别致命。
关键一步:拉大间距,别偷懒
将使线间距被拉开, 这是一种方法, 它是最简单粗暴然而却最为有效的。不要认为凭借3W规则, 也就是线间距为线宽3倍的这个规则, 就能够把所有情况都处理好, 要明白那仅仅只是理想状态下才会出现的情形。
实操步骤1:设置间距规则并锁定
将Altium Designer打开, 进入Design, 接着经由Rules, 进入Routing, 再进入Width, 在此新建一项针对时钟或者高速信号的规则。于Constraints当中, 把Preferred Width设置成6mil, 将Min Width设置成5mil。然后, 进入到Routing这个选项里的Clearance部分, 去新建一项Clearance规则, 将其中的Minimum Clearance设置成20mil或者比20mil更大的数值。对于新手而言, 直接把它设为从20mil开始。
对于Allegro, 在“Setup”中, 进入“Constraints”, 接着进入“Constraint Manager”, 在此处选择“Physical”选项卡, 新建一个“Line to Line”约束, 将“Spacing”设置成为20mil。
【新手避坑】
众多新手设置了间距规则却没能生效, 缘故在于规则优先级未曾调好。前往Design -> Rules里, 将新建的高速信号规则拖动到顶部的优先列表的最前面。不然的话默认规则会把你的设定覆盖掉, 依旧给你走6mil间距。报错现象是DRC检查不报错, 然而实际走线的间距并没有改变。解决的办法是手动调整规则优先级, 保证你建立的规则编号是最小的。
两种方案对比:包地与屏蔽地线,选哪个?
若碰到空间不足, 20mil的间距无法拉开该怎么处理呢? 在这个时候, 存在着两种路线。
方案A:包地(Guard Trace)
在地乎关键信号线的两侧, 同时去走一条地线, 借助 0 欧电阻或者过孔, 将其连接上到地平面。其好处是屏蔽效果具备很强的特性, 适宜应用于超高频(1 GHz 以上)的情况, 或者是针对噪声极为敏感的时钟线。而代价则是占据的面积较大, 并且容易在包地线上令谐振得以引入。
方案B:加屏蔽地线(Stitching Ground)
走一条地线, 仅在信号线旁边, 不将其包住, 每隔一定距离打一个地过孔, 适合DDR数据线这类总线。这种方式相较于其他方式, 占面积小型, 不过屏蔽功能效果稍微弱一些。
取舍逻辑:
要是板子的面积具备宽裕性, 并且信号的频率处于极高的状态(像射频信号那般), 那就果断选择方案A。要是板子的层数数量较多, 布线的密度呈现出较高的程度(例如手机主板那种), 或是所走的线路是DDR3/4数据线, 那么方案B会更具实用性。我自身的做法是: 时钟信号必然要进行包地处理, 差分对方是优先去拉开间距, 在间距并不足够之时才会考虑到方案B。
实操步骤2:包地操作
于Altium Designer之中, 将目标信号线选定,依照Tools -> Polygon Pours -> Outline Selected实行操作以生成一个多边形铜箔,随后借着手动方式对铜箔形状予以修改, 从而把线进行包裹。最终在铜箔之上打出过孔, 此过孔间距不会超出信号上升沿所对应波长的1/20。
【新手避坑】
要是包地铜箔跟地平面之间过孔数量过少, 那么包地会转变为浮空的天线, 此情形下反而会增大串扰, 其中报错反映出的现象是在信号完整性仿真期间看到包地线上存在剧烈噪声, 解决该问题的办法是在每间隔3至5毫米处打一个地过孔, 以此确保包地线呈现“实心接地”的状态。
关键参数推荐值:串扰抑制效果最好的层叠结构
许多人单单注视着平行走线, 而忽略了参考平面。当处于7层板以上的情况时, 要将高速信号层紧紧挨着地平面, 以此确保信号回流路径是最短的。推荐的数值是: 使得信号层与相邻参考层的介质厚度, 也就是Prepreg厚度, 控制在3mil以内。原因在于一旦介质厚度减少, 电场耦合至相邻走线的能量便会显著降低, 串扰抑制效果会直接提升30%至50%。
实操步骤3:调整层叠
在Altium Designer里, 进入Design, 接着找到Layer Stack Manager, 然后右键去添加一个Ground Plane层。将高速信号层, 像Top Layer, 和它下面的地平面GND之间的Core或者Prepreg的厚度给改成3mil或者更低。
于Allegro里,进入Setup, 接着进入Cross – section, 而后找到对应层对的Dielectric Thickness, 随后直接去改数值。
【新手避坑】
别为了去追求那种小厚度, 而不顾及板厂工艺所存在的极限。对于普通的4层板而言, 内层铜箔的厚度加上半固化片那部分, 通常情况下最小是能够做到4 – 5mil的。要是强行把它设成3mil, 板厂要不然呢做不出来, 要不然呢良率就会急剧暴跌。报错的现象可是发给板厂之后, 对方反馈说“工艺不达标”。解决的办法是这样: 先要去咨询板厂能够支持的最小介质厚度, 然后再去调参数。实在没别的办法的话, 在信号层的两侧都铺上地平面就行, 效果也还算凑合。
完整报错场景:DDR走线串扰导致系统频繁重启
曾经有一回, 我处于调试一块4层DDR3板子的状态之中, 系统运行仅仅几分钟便会重新启动。通过对波形进行查看, 发现DQ数据线存在着毛刺, 其幅值达到了0.3V, 进而致使数据出现误判。
一站式解决流程:
1. 定位置方面的问题, 运用示波器去测量相邻数据线上的信号, 当发现一根线出现跳变的时候, 另一根线上感应出了明显的耦合噪声。
2. 查验间距, 回头察看印刷电路板, 发觉数据信号引脚0和数据信号引脚1的走线之间的距离仅仅有6密耳, 压根就没有拉开。
3. 展开执行调整操作, 把这两根线之间的距离, 拉扯到20mil, 并且还得确保呀, 它们不会在同一个层面上,走出过长的平行线路径。
4. 对于包地处理而言, 要在DQ0的两侧添加包地性质的铜箔成分, 并且每隔4mm设置打出一个过孔。
5. 对效果进行验证, 再次给电起始, 系统持续运行八小时之后未曾再次启动, 毛刺的幅度下降到零点零五伏范围之内。
这一报错的关键缘由在于, 4层板欠缺完整的平面, 信号回流路径较长, 从而更易于引发串扰, 其解决途径乃是强制拉大间距并实施包地。
此方法于多数低频或者中频数字电路而言是有作用的。不过要是针对射频前端或者毫米波电路, 仅仅依靠拉大间距以及进行包地或许是不足够的, 还需要搭配差分对反向耦合以及特殊阻抗匹配。针对于射频场景, 建议改换为共面波导结构, 那般效果会更佳。总而言之, 先是试验拉大间距, 倘若不行再增添包地, 千万别一开始就采用复杂操作, 否则容易出问题。
微信扫一扫
还没有评论呢,快来抢沙发~