时钟上升沿问题仿真分析

由于芯片制成工艺的提升,哪怕是一些低端芯片,也用上了更小的制成工艺,晶体管的导通时间越来越短,从而导致上升沿越来越快,一些没有出现过SI问题的低速链路出现SI问题的可能性越来越大。

本章节主要对我们大家耳熟能详的I2C链路的SI问题进行分析和解决。很多单板上I2C链路整板飞,一个链路挂五六个以上的负载,走线长度十几inch。如下图所示:

 

 

遇到如上的链路拓扑,我们该如何去对其链路的SI问题进行分析呢?在进行信号测试验证时,时钟链路的信号指标是严苛的,时钟如果处理不好,上升沿不单调,或者过冲太大,经常会导致I2C挂死的现象,现在我们要解决的问题就是通过仿真对时钟的上升沿进行仿真和优化。

 

 

SigXplorer这个软件是Cadence软件自带的SI仿真软件,这个软件在进行低速链路仿真的时候非常实用,由于是Cadence自家软件,所以跟allegro的结合度很高,可以直接从PCB中间进行链路提取,下面我主要对这种一驱多链路的SI问题进行仿真分析。

 

01 仿真步骤

Step1 模型准备

先准备好发送和接受器件的模型文件,以及仿真的文件。然后采用allegro直接打开brd文件进行拓扑文件提取。

 

 

Step2 赋模型

对发送端、接收端器件,以及串阻串容器件赋模型,点击菜单里的analyze栏目里的model assignment,然后选择板内的器件,进行模型赋予。

 

 

Step3 阻抗调整

低速链路的仿真,阻抗是影响SI性能的主要因素,因此需要对链路的阻抗进行核对。点击菜单里的叠层设置,将板厂反馈的的叠层信息填入到PCB的叠层设置栏里面。

 

 

Step 4 链路提取

选择菜单里的analyze栏目里的probe,然后选择要仿真的网络,对整个仿真拓扑进行提取,提取完成之后,软件会自动打开SigXplorer软件。

 

 

Step 5 仿真链路检查以及参数设置

自动提取模型出来的链路图一般看着比较乱,我习惯先按照发送和接受把这个拓扑链路摆放整齐。我们是为了仿真时钟上升沿的波形,点击下图中的1选择上升沿仿真模式。然后选择下图中的2 进行preference设置。

 

 

在这个里面,只需要对波形的分辨率进行设置,我们只是仿真下上升沿,时间较短,通常设置成1ps即可。

 

 

Step 6 仿真

点击Analyze 里的simulate进行仿真,软件会自动弹出仿真波形。

 

 

02 仿真结果分析

一个主链路上挂了五个负载(为了使得链路简洁,先忽略了过孔等细节)。左一为发送,右边四个分别为接收,这是一个很完美的菊花链拓扑,但是当我们去对时钟信号的上升沿进行分析的时候,它很容易存在上升沿不单调的问题。

 

 

仿真波形如下图所示,意料之中的,除了最后一个slave,前面几个的上升沿均出现了单调性的问题,特别是对于第一个slave(头),有一个很明显的台阶。有人会说,我已经采用了菊花链拓扑,怎么还会出现这种问题?为什么以前芯片不出现,现在的芯片会出现?为什么有的芯片出现,有的芯片又不出现?

 

 

首先回答第一个问题:对于这种一驱多的链路,不管怎么接,都会有stub,只是长短问题,即使是菊花链链路,对于第一颗芯片来说,后面的链路全是stub。残桩的存在必然会产生反射影响到信号的波形,并且第一颗芯片严重,越靠近尾端,stub的长度越短,影响也就越小。

然后回答第二第三个问题:不同速度的上升沿受到同一个长度的stub的影响程度是不一样的,上升沿越快,对stub的容忍程度越小。因此随着芯片制作工艺的不同,会影响到上升沿,从而会让此类的SI问题慢慢暴露出来。

 

03 如何解决此类问题

时钟信号我们需要上升沿满足一定的要求,但是对于低速I2C链路,有的芯片TR的要求才100ns,整个2ns这么快的上升沿绰绰有余了。解决这个问题很简单,我们只需要让上升沿慢下来就行,在接收端加串阻,有时候也可以对地接电容来滤除高频分量。

如下图所示,我们在每一个接收端的位置都加了一个300欧姆的串阻。

 

 

 

如下图所示,上升沿立马变得很完美了,没有多余的过冲和振铃,而且上升沿时间也是远远满足芯片要求的。

 

 

 

 


 

上述过程是在SigXplorer中实现的仿真过程,新版本的新工具Topology Explorer不仅具有SigXplorer的拓扑自动提取、仿真与规则管理器集成等功能,还使用了与SystemSI相同的模块设计和交互方式,IO model也可以直接使用IBIS模型,大大优化了SigXplorer的使用体验。

 

更多技术文章与讨论欢迎关注微信公众号:

 

封装与高速技术前沿

微信号 : APDtech

 

最新资讯