等长约束不会设?照着做就行,不报红不短路

发布于 更新于
2,444
详情介绍
智行者IC社区持续更新技术干货、实操教程、案例分享与常见问题解答,为学习者提供实用的学习参考资料。

经历过 Cadence Allegro 17.4 的实测体验,遭遇过等长约束设置完毕之后飞线全部变红,且绕线长度无论如何都对不上的情况。

第一步 创建Match Group并指定目标长度

点开Constraint Manager,在Electrical约束集范畴内寻得Relative Propagation Delay。用右键点击Create一下,再到 –> Match Group那里,把那些要等长的信号线,像DDR的DQ0 – DQ7这类的,统统都拖进去。最关键的参数所推荐的最优数值是:将Tolerance设定为正负5mil这件事,如果规格太严格,那么绕线就无法完成,如若规定太宽松,信号时序特别容易偏移。而其设置的理由特别简扼,那就是PCB加工误差处于正负2mil范围内,预留3mil的裕量,恰好能够限定住DDR3 – 1600的时序窗口。随后,用鼠标快速双击Match Group,在Pin Pair栏那儿挑选Relative Delay,往里面填入目标长度,像2000mil这样的数值。

常出现的情况是,新手容易遭遇【新手避坑】:其中常见报错表现为, Match Group里的信号压根无法正常运行顺畅起来,而导致这种现象出现的核心原因在于,没有在Pin Pair当中准确无误地挑选正确合适的参考路径。另外,需要特别说明的是,其中系统所默认设置好了的Total Etch Length计算的情况是全路径,然而DDR等长所需要达成的条件是Pin-to-Pin之间的相对延迟情况。解决的办法是,将Pin Pair切换成Relative Delay,然后手动填写Delta值,而不要直接去修改Total Etch Length。

第二步 用Delay Tune绕线拉长走线

返回至PCB Editor,在Match Group里面,挑选出任意一根信号,接着执行Route –> Delay Tune,此时命令栏会对你进行提示,让你去选起点以及终点,而后依照走线方向点两下,软件会自动生成蛇形绕线。参数设定:把Amplitude设定为15mil,将Gap设定为8mil,如此这种进行绕制后线与线之间的间距能够避开串扰现象而且不会占据空间。绕制完成之后按下F5进行刷新,去查看右边所得的Delay值是不是接近目标值,依据我的实际测量,时间差如果在20mil以内就算是通过检验。

【新手避坑】不少人于这一步遭遇绕线完毕后Delay值未作更新之情况,原因在于未开启实时长度显示功能。在Display菜单里勾选Show Length项目,或者于Options面板的Dynamic Length位置处点击Enable按钮。再存在一个坑,在绕线期间鼠标点击出现了歪斜情况,导致软件直接进行跳段,其解决的办法是将Staggered模式关闭,转而采用Sawtooth模式,如此绕线会更加顺从听话。

第三步 验证等长并修复红叉

当将所有内容都环绕完成以后,运行Tools –> DB Check,勾选Check Timing,查看Constraint Manager里Match Group的状态。如果依旧存在信号显示为红色,不要惊慌,点击报错信号查看实际长度与目标长度相差了多少。这里呈现一组针对两种实操方案的对比情况,方案 A 是手动微调,这种方式是直接去拖动蛇形绕线的端点,将其拉长几 mil,此方案适用差值在 20 mil 以内的微调情况;方案 B 是重新绕线,通过运用 Delay Tune 的 Extend 功能,在现有的蛇形上再增添一圈,该方案适用于差值在 50 mil 以上的情景。在差20mil以内的情况,我提议采用A,当超标时则选用B,这是鉴于手动拉伸过多极易导致阻抗连续性遭到破坏。要是报红现象仍然顽固存在,很大概率是差分信号未曾被单独设置Match Group, DDR里的DQS以及CLK必须要和其他DQ加以分开约束。

需要避开的坑是,作为高频时会出现报错的情况是出现那个被称作“Exceeds Max Tolerance”的内容,其完整的解决流程是,就是要先翻开 Constraint Manager,在Analysis Modes –> Timing 的这种情况下,要针对把 Max Tolerance 改变成 10mil 去进行尝试(这里存在一个前提条件是信号速率要低于 800MHz 的时候这才可行)。是不是依旧呈现出红的状态呢? 去查看一下Pin Pair有没有选择多重管脚对,要是选择了的话,那就将其改成单管脚对,在诸多情况下,是由于参考路径选错才导致长度出现虚高的情况。

这套方法对DDR4 – 3200以上的高频信号不适用,这是由于5mil的容差不足以扣除Jitter裕量。替代的方案是运用Sigrity去跑一次时序仿真,将实际的走线延迟引入到Allegro里面重新设置目标值。要是板子的层数超过了12层,那么建议改用XNet做等长,因为单线约束容易受到过孔方面的影响,这样绕半天会白费力。

常见问题(FAQ)

Match Group 的容差设多少合适?
推荐设为正负 5mil。PCB 加工误差在正负 2mil 左右,预留 3mil 裕量,刚好能限定 DDR3-1600 的时序窗口。
蛇形绕线用什么命令,参数怎么设?
在 PCB 编辑器里选中信号后执行 Route 下的 Delay Tune,按走线方向点两下自动生成蛇形。幅度设 15mil、间隙设 8mil,绕完按 F5 刷新,时间差在 20mil 以内就算通过。
绕线后长度值不更新,或者绕线中途跳段怎么办?
长度不更新是因为没开实时长度显示,在显示菜单勾选显示长度,或在选项面板点启用。绕线跳段可以关闭交错模式,改用锯齿模式。
0 / 600
0 讨论
热门最新
总结
暂无总结