经过本人自己实际操作检测Cadence Allegro 17.4, 在踩踏SDRAM等长走线的过程中遭遇了“信号时序错乱”这样的状况, 对于新手而言, 只要依照下面所给出的步骤一个一个地去进……
经过本人自己实际操作检测Cadence Allegro 17.4, 在踩踏SDRAM等长走线的过程中遭遇了“信号时序错乱”这样的状况, 对于新手而言, 只要依照下面所给出的步骤一个一个地去进行操作, 便能够轻轻松松地避开这类平常经常会出现的问题。
第一步:设置约束规则与等长组
去开启Allegro PCB Designer, 而后迈入Setup -> Constraints -> Constraint Manager。于 Electrical Constraint Set 这事当中, 用右键去进行新建操作, 从而创建出一个 Net Group , 接下来致使 SDRAM 的 DDR_DQ从0到15这些信号, 还有DDR_DQS从0到1这些信号等一系列高速信号, 全部被选中纳入其中。
【新手需防入坑】, 众多人径直点击Match Group便开启拉线操作, 而后发觉Allegro并未给出报错提示, 这是由于并没有激活ECSet, 其报错的表现情形是, 在走线完毕之后Design Sync呈现出全绿的状态, 然而经过实际测量发现时序却呈现报红的状况。核心错误原因是, 在Constraint Manager当中, Scope没有被选到All Nets, 进而致使规则仅仅是对单根线产生生效的情况。办法是这样的, Scope进行下拉这种操作的时候, 绝对必须要去选择All Nets in Board, 随后找到Save这个按钮并且点击它。
第二步:实际操作走线并等长调整
从约束管理器当中退出来, 运用 Route -> Connect 这种方式通过手工去拉线路。当拉到处于关键状态的 DQS 信号之际, 右键点击并选择 Route Spacing 把它设置成 3W, 也就是线宽的 3 倍作为线与线之间的间距, 以此来降低串扰情况出现。
关键出错缘由是, Min Amplitude设置得太小, 像10mil这样, 致使蛇形线转角极为陡峭, 进而挤压侵占了相邻走线的空间。快速解决的办法是, 将Min Amplitude增加到20mil以上, 与此同时, 检查Route Keepout区域有没有挡住调整路径。
第三步:关键参数推荐与方案对比
到这儿给一个关键的参数, DDR3 SDRAM的Tck也就是时钟周期其数值被设定为1.5ns, 而1.5ns所对应的频率是666MHz, 之所以这样设定, 原因在于这个数值在Allegro的Timing Model里是最优的, 要是超过了1.5ns, 就会造成时序余量不够, 要是低于这个值, 那么走线等长容差就得缩小到±25mil的范围, 如此一来良率会大幅降低。
两种实操方案进行对比, 方案A是采用手动走线加DelayTune, 它适合于小批量原型板, 具有灵活的特点但是费时;方案B是采用自动布线加RTL模式, 适合大批量生产, 可是需要对走线拓扑进行预判。取舍逻辑为, 当板层数超过6层时, 推荐方案B, 因为手动调整很容易出现错层;4层及以下时, 方案A更具有可控性。
一则高频且完整的报错出现了: “DRC Violation: Signal Integrity Violation at Pin A1” , 这通常而言是DQS以及CLK等长未对齐, 进而致使建立时间违例。完整的解决流程如下: 首先打开Constraint Manager, 接着检查DQS的Relative Delta是否处于±50mil的范围之内。要是偏差超过了200mil, 那么就需要返回到Delay Tune重新去拉蛇形线。倘若偏差在100mil以内, 便直接在Route -> Gloss -> Periodic里面跑上一遍自动优化。
本方法不适用于差分DDR5,差分DDR5需要调共模电感参数, 本方法也不适用于板厚超2mm的厚板, 板厚超2mm的厚板信号延迟会崩。备选方案是: 对于差分DDR5这种情况, 运用Cadence Sigrity来开展SI Simulation预评估;针对厚板这种情形, 直接替换成DDR3L低压版本, 以此来减小阻抗匹配的困难程度。
微信扫一扫
还没有评论呢,快来抢沙发~