我测过Altium Designer 22.0.8这个版本,遭遇过DDR3等长绕线误差超过50mil导致系统运行失常,以及电源回路环路过大引入高频噪声这两个严重问题。
第一步 设置类规则与等长约束
紧接着,也就是后边,要在Constraints这一栏当中,填入目标长度的值,比如说1500mil,并且将容差设定为正负10mil。一定要勾选规则优先级,要这种高高在上的感觉,高于默认规则。
初涉者需规避的情况是,布线过程里规则未起作用、长度未显示。关键原因为类规则未曾妥当关联至网络类。应对之策是,在项目面板处右键点击项目,选取Class Explorer,手动去创立网络类并且把DDR数据组、地址组逐个拖入其中,核查类名与规则当中的保持一致。
第二步 利用蛇形绕线实现精确等长
把需要进行绕线的网络组给选中,通过按快捷键T R来启动Interactive Length Tuning。模式选择Mitered走45度角,将目标长度直接填进你的等长值能实现,像是1500mil这种数值。随后沿着走线路径移动光标,软件会在当下呈现出当前长度和目标差值,一直到差值变为0或者接近0才停止。要是存在多组网络,那么建议起始于最长的那一根来进行绕线,这是由于它的绕线空间处于最为紧张的状态。
新手需要避免踩坑,高频出现错误的情况是,在进行绕线操作的时候会退出自动模式,而且长度数值没办法更新,其原因在于软件版本里交互绕线的时候有时会失去焦点,快速解决问题的办法是,按下Shift+F来锁定布线层,然后再重复按下T R重新启动动态绕线,同时检查状态栏Length是否处于实时变化 的状态。若还是不进行更新,那就退出之后重新进入至规则管理器,再去确认Matched Lengths规则是处于被启用的状态。
第三步 优化电源回流路径与切割平面
在原理图同步至 PCB 后,在层叠管理器当中对电源层与地层相邻情况开展确认,将间距设定为 4mil。而后执行工具,继而去执行电源平面,进而开展分割平面操作,借助 2D 线把不同电压区域完全隔离,最短线宽设定为 8mil。把它进行分割之后,那些高频信号走线,就比如说DDR数据线,是一定要紧密地挨着完整的地平面的,绝对不可以跨越分割出来的缝隙。
要避开的坑,常见的报错情况是在进行分割平面之后出现DRC报错,该报错会提示铜皮间距不符合规定,其核心的原因在于分割线太过纤细或者没有连接到板框的边缘地带。有快速解决的办法:需要选中分割线,在属性当中把线宽修改为10mil并且延伸至板框外面至少20mil,下面执行工具里面的铜皮操作,再进行重灌铜,一直到所有的铜皮都不存在飞线现象。
有关键参数,其最优推荐值存在,那便是DDR时钟等长容差被设定为正负5mil,它基于一项理由陈述,这理由是时钟信号对于时序而言是最为敏感的,而正负10mil的容差将会引发数据采样的不稳定情况,实际测量得出正负5mil的值能够促使系统在高速运转的情况下维持稳定。
将两组方案来对比,分别是蛇形绕线以及螺旋绕线,当走线的空间比较紧凑且单根线的长度差值小于100mil的时候选择蛇形绕线,因为这种方案对于信号完整性所产生的影响是最小的,当线长的差值超过了200mil并且周围比较空旷的时候选择螺旋绕线,它能够更加高效地对长度进行补偿,我所采用的取舍逻辑是, DDR数据组使用蛇形绕线,地址组使用螺旋绕线:。
高频的、完整的报错以及解决的流程是这样的: DRC出现了显示为”Un-Routed Net Constraint”的情况,并且在进行绕线之后,其长度仍然是不达标的。其中的原因也包括了:规则没有被正确地应用,或者网络没有被加入到类当中。完备的解决流程为:开启设计-规则,用右键点击Matched Lengths选择将规则导出成文本,核查网络名是否相符;在确认没有差错之后,返回类管理器再度把所有DDR网络导入;最终于PCB面板里选中此网络,先按下Ctrl+D重置高亮随后进行重绕。
绕线空间会因分支过多而表现出严重不足的情况,导致本方法不适用于那种含有多组DDR4颗粒并且拓扑结构并非T型的板卡。替代方案嘛:换成采用Fly-by拓扑并搭配Cadence的Pin Delay功能,如此便能更高效地去处理大规模DDR布局。











