高速先生原创文 | 黄刚
做过DDR设计的同行都知道,在非常密的颗粒排布下,想成功的把所有的信号拉出来可能都要去条命,然后导通之后还要把手抓稳去做抖一下就让你想剁手的等长(5mil,2mil,我们有见过客户要求做1mil的……),当你以为可以收工的时候,客户还要抱着看上去和你商量的态度说你的间距能不能再拉开一点。 行……我们的设计工程师是非常严谨的,能拉开1mil也是爱的,虽然可能自己也不知道辛辛苦苦拉开的1mil到底有什么用,就好像做等长的时候辛辛苦苦做的2mil等长有什么用是一样一样的。 一般的结果都是这样的:我们工程师经过不断挣扎之后,时间也去得差不多了,客户也终于体谅了我们工程师的痛苦,大家终于强行达成了共识:辛苦了,要不就这样好了。终于,不用再做更严格的等长了,终于不用再拉开0.5mil的间距了。虽然客户的内心是在想:其实应该还可以继续…… 那等长做好了,间距也看起来不能再拉开了,交给我们SI成员进行仿真,在我们的眼中这样的一组数据信号的结果已经是非常不错了。大概是这样的: 从这组数据信号眼图的Aperture来看,整个高低电平的裕量是非常大的,这样的眼图在实际调试肯定是PASS的。但是如果我把一些point标出来让大家再看同一个眼图的话,你们可能会觉得有点惊讶:为什么我的等长都做到了2mil,间距也已经拉开到不能再开了,但是看这组数据的延时居然差了快50ps(下图蓝色mask),电平上面的幅度振荡也超过了100mV(下图红色mask)。 数据信号是严格点对点的信号,我们的阻抗是40欧姆,然后我们的芯片驱动和芯片接收的ODT也是40欧姆,那说明了这样的延时和电平振荡并不是由阻抗不匹配的反射造成的(至少很大部分不是)。那这个时候我们又把目光集中到了很难分析的串扰了。 从我们的专业角度来看,的确是串扰要背这个锅。在这里我们不说一些很复杂的理论和公式,我们仅以下面的几张图来让大家理解串扰到底是怎么影响到我们的电平振荡和延时的。 相邻的两根线会有3种传输的模式,分别是下面这样的: 然后攻击信号达到接收端之后,他们的结果是这样的: 这里回答你们可能想问的两个问题: 1,为什么达到的时间会不一样?共模速度慢,差模速度快,静止排中间。因为在共模的影响下,两线之间的容性最弱;在差模的影响下,两线的容性最强,这时就好像差分线一样,两线互为参考,因此传输延时最快。 2,为什么电平幅度不一样?同样,共模的时候两线电平是同向的,互相补充,幅度偏高;差模的时候两线的电平反向,互相抵消,幅度降低。 所以当这两根线跑不同的随机码型时,你看到的其中一根线的信号是下面这样的就不奇怪了。
|
所以我们对100mV的串扰结果还是可以接受,而且从整个波形来看,裕量也还是很大。但是随着DDR的电平越来越低,相应的裕量肯定也会越来越小,到那时候串扰可能就会影响很严重了。