高速电路信号完整性实测 三步避开DDR4反射坑

被我实际测试过的Allegro 17.4,我曾踩过因DDR4数据线反射致使系统随机出现宕机状况的坑,对于新手而言,只要沿着步骤逐个稳步进行操作,便能够轻易躲开这类平常会出现的问题。

第一步 设置叠层与阻抗计算

通过开启PCB Editor,于Setup菜单里点击Cross Section,在层叠管理器之中把信号层至紧邻参考层的介质厚度设定成4.2mil,线宽依据阻抗计算工具予以调整而变为5.8mil即目标阻抗50Ω情形下。待到完成之后去点击File→Update DRC,从而强行进行刷新规则。

【新手防错】,常有报错“阻抗超出范围”,缘由乃是介质厚度和弦线宽度未曾咬定实际板材参数,关键错误之处在于采用了默认的FR4介电常数3.8,实际测量的板材常量通常居于4.2至4.5之间。解决途径为:前往制造菜单开启材料库,将Dk值修正为4.3后再度计算弦线宽度。

第二步 添加端接电阻并配置拓扑

于Place的菜单里头朝Manually方向去调出元件库,寻觅到33Ω电阻(其推荐值是33Ω,依据为匹配CMOS驱动器的约17Ω内部电阻和50Ω传输线,实际测量过冲压降低到0.3V以内,功耗增加仅仅不过2mW)。把电阻朝着DDR4控制器的输出脚那边靠近,间距把控在150mil范围里头。随后开启Logic的菜单并点击Net Schedule,将网络拓扑从默认的“星型”转变成为“菊花链”。

【新手需防入坑之处】,存在常见报错为“Unconnected pin found in net”,其缘由乃就是,端接电阻在另一侧却没与电源相连接。许多刚入行新手忘却了要把电阻的VTT端给连接至0.6V参考电源那里。能够快速解决的办法是:点击Add Connect,用手去拉一条线,这条线是从电阻末梢到VTT平面,而后再次去执行DRC。

第三步 SigXplorer仿真与反射优化

朝着目标网络实施右键点击动作,从中挑选SigXplorer起动仿真。于Analyze→Reflection范畴内将激励源设定成50MHz方波,上升沿为100ps。执行运作过后对波形予以观察,要是过冲超出1.2V,那就回转到Parameter面板处,把驱动强度由“High”下调至“Medium”。不断地进行反复迭代,直至眼图张开高度不少于0.8V。

【新手防坑】,高频完全报错“Reflection threshold exceeded at receiver pin”的一站式处理流程为,①先将SigXplorer关掉,把PCB Router打开,然后进行Edit Properties操作;②寻找到接收端引脚,增添属性“PIN_ESR=0.22”来模拟封装寄生电阻;③再次进行仿真,要是依旧报错,那就回到第一步,把端接电阻从33Ω替换成22Ω(以牺牲一点噪声容限为代价换来反射消失)。

两种实操方案对比

点点相对的那种拓扑结构(具体是一块控制芯片对应一块内存的情况),它比较适配双面板或者四层板,其信号完整性表现较强,然而扩展性方面却比较差;而菊花链形式的那种拓扑(也就是一个控制对应多个芯片片的情形),它适合六层以及六层以上的主板,布线较为紧凑,不过需要精准把控每一段的长度差处于正负10密耳范围之内。低频的板子()

本方法的不适用场景

对于背板长度超出12英寸或者时钟频率高于10GHz的设计而言,上述叠层以及端接参数将会失效,原因在于传输线损耗以及过孔残骸变成了主导。替代方案是,改用HFSS提取全通道S参数,接着配合IBIS-AMI模型做统计眼图仿真。

曾经有过信号完整性调试时芯片被烧坏的那种极其惨痛的经历吗,有的话欢迎于评论区交流畅谈,若点赞数量超过五百,那稍后我会接着撰写串扰以及电源完整性方面的篇章。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

更多文章