经历过 Cadence Allegro 17.4 的实测亲身体验, 遭遇过等长约束设置完毕之后飞线全部变红, 且绕线长度无论如何都对不上的状况, 新手依照具体步骤一步步去操作, 便能够轻易……
经历过 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 –> Database 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做等长, 因为单线约束容易受到过孔方面的影响, 这样绕半天会白费力。
微信扫一扫
还没有评论呢,快来抢沙发~