等长误差控制实战 同组线长差10mil怎么修

发布于 更新于
867
详情介绍

有我亲自测试的Allegro 22.1版本,体验过一组DDR4数据线等长误差控制在即便想尽办法也难以调整到±20mil以内的那种情况。

匹配长度前先画好参考线

将Allegro的Route功能启用,转至Constraints Manager,在Electrical Constraint Set里搜寻Relative Propagation Delay。我有这样的习惯,那就是先去设定Match Group,接着把DDR4_DQ0到DDR4_DQ7这8根线全部选择,之后点击右键来Create Match Group,随后在右侧的属性栏输入目标长度误差范围,像±20mil这样的。点选Pin Pair这一关键步,要将起点定位到CPU端BGA焊盘,还要把终点定位到DDR颗粒焊盘处,若不如此,系统自动捕捉的过孔可要导致长度计算出现偏差了。

新手常常会犯这样错误,将信号线总长度直接用于做等长,然而不同层走线,因过孔以及焊盘存在差异,导致实际电气长度相差能达到30 – 50mil。报错现象呈现为Match Group状态栏始终显示Out of Tolerance,其原因在于没有对Pin Pair进行统一。采取的解决办法是,以手动方式,将每一条线的Reference Pin Pair,变更为相同的起点和终点,随后再运行一次长度匹配。

蛇形走线三步扭出精准长度

先是进行第一步,将那需要去调整的线给选中,之后呢,用右键点击Route,接着去到Add Serpentine那里。在弹出的Serpentine Options里,将Amplitude设置为20mil,把Spacing设置成15mil,这两项内容决定了蛇形线的宽度以及间距,其所取的数值过小的话会导致布线密集区域出现串扰现象,而取值过大的话又会造成PCB空间的浪费。我所推荐的,是Amplitude等于20mil, Spacing等于15mil,而这种的参数组合,是能够兼顾信号完整性以及布线效率的,经过实际测量可知,在DDR4 2400MHz的情况下,它的误码率是最低的。

先是第二步,用鼠标拉着走线路径在参考线周围扭,每扭一个波浪, Status栏会显示实时剩余误差,操作习惯是盯着Delta值,当它从+50mil降到+5mil时减速微调,别一次扭过头。

第三步,完成扭转操作后右方点击Done,返回Constraints Manager当中进行刷新,查看Match Group的所有线条的Tolerance值是不是都处于±20mil的范围以内。要是存在超范围的线条,直接针对那条线双击,通过Edit Serpentine略微调整几次波浪就是了。

新手要躲开坑,蛇绕着走扭好后,出现报错 Gap Violation,要么 Min Amplitude Fail,这样挺常见。为什么这样呢,核心的原因是, Spacing设的时候弄太小了,所以相邻的波浪之间,距离窄到比工厂工艺能达到的极限还低。采取的解决办法是,将Spacing增大至20mil以上,同时适度降低Amplitude,并且让总走线长度维持不变。要是连续调整三次之后仍旧报错,那就能够直接删去蛇形线再重新扭,不要在一条错误路径上一直为难自己。

四步完整修一组典型报错

有一回,我所负责的一块板子,其等长误差控制硬是没办法通过,报错给出的信息是, Net DDR4_DQ3的长度为2450.12mil,最小长度要求是2425.00mil,最大长度要求是2475.00mil,超出了公差范围。误差达到了正25mil。完整的解决流程是这样的:先要打开Constraints Manager,接着,去定位到达DQ3这条线,然后,会发现它的Relative Delay值相较于同组中的平均值而言,高出了22mil。往后面的步骤进行步入,以双手快速点击的常规重复力度进入到 Edit Serpentine 里,将其中的 Amplitude 从原本的 20mil 降低至 15mil 的数值,同时把 Spacing 从 15mil 降低到 12mil 的程度,进而使得蛇形线变得更加紧凑,最终达到减少占用空间的结果。将多余长度自动压缩,借助软件之力,执行一次Optimize Serpentine,此为第三步。第四步,刷新Status, Tolerance变动为+3mil,问题遂得解决。针对这个具体方案,其进行取舍操作时所依据的逻辑是这样的:要是空间方面是允许的,那么在进行相关调整时,会优先考虑去调整Amplitude以及Spacing,而不是选择删线之后重新再踏出一条路径,因为如此一来,所涉及到的时间成本会更低一些。

【新手避坑】:当报错Length Mismatch时,不要盲目去添加蛇形线。先要查看Pin Pair是否统一,接着再去看参考线是否被挪动过。要是这两者都正确却依旧报错,那么大概率是BGA出线区域有的短段线没有配对,把那个短段手动补充一个蛇形弯就能解决。

该方法在DDR4以及DDR3场景当中很好用,然而要是你的板子所采用的是DDR5或者频率超越3200MHz,单单凭借蛇形线调整等长恐怕是不足够的。DDR5对于时序窗口所提出的要求更为严格,建议在达成等长误差控制之后,借助仿真软件去确认信号质量。简易的替代方案是直接令Layout工程师运用X-Section功能依照层来计算延时差异,手动进行补偿,只不过耗费时间但更为稳妥。

常见问题(FAQ)

Match Group状态栏一直显示Out of Tolerance怎么办?
通常是Pin Pair没有统一。要把每一条线的Reference Pin Pair都改成相同的起点和终点,起点定为CPU端BGA焊盘、终点定为DDR颗粒焊盘,然后再重新运行长度匹配。
蛇形线的Amplitude和Spacing设多少合适?
推荐 Amplitude 取20mil、Spacing 取15mil。Spacing太小会在布线密集区引起串扰,太大又浪费PCB空间;实测这组参数在DDR4 2400MHz下误码率最低。
蛇形走线后报Gap Violation或Min Amplitude Fail怎么处理?
一般是Spacing设得太小,相邻波浪间距低于工厂工艺极限。把Spacing增大到20mil以上,同时适度降低Amplitude并保持总走线长度不变;若连续调整三次仍报错,就直接删掉蛇形线重新走。
0 / 600
0 讨论
热门最新
总结
暂无总结