工程师的创新力是无穷的,解决办法也非常简单,不再用外部时钟来同步数据了,而是时钟和数据一起往前走。
上一篇《PCB设计十大误区-绕不完的等长(二)》文章不知道大家有没有看晕了,讲时序确实是吃力不讨好哈。
上期问题:影响共同时钟总线速率提升最关键的因素有哪些?行业是怎么解决这个问题的?(提示:内同步时钟和源同步时钟)
影响共同时钟时序很重要的一个因素是较大的Tco,当然飞行时间也是一个问题。
由于芯片工艺因素以及适当的保持时间需求,Tco不能太小,通常都在3ns以上,甚至有的Tco max达到5.4ns,这时候如果时钟速率在133M以上,一个时钟周期的时间基本被Tco吃掉了。
综上因素,共同时钟总线速率很难提升到200M以上,其实行业公认共同时钟总线速率在133M以上的时候设计难度已经非常大了。
既然Tco是影响共同时钟总线速率的重要因素,那么有什么办法可以解决这个问题呢?
工程师的创新力是无穷的,解决办法也非常简单,不再用外部时钟来同步数据了,而是时钟和数据一起往前走。你数据发出有Tco延时,我时钟发出照样有Tco延时,于是两个Tco就抵消了。晕了?我们看图说话,如下图所示:
CLK触发之后,经过一个相同的Tco延时,数据和Strobe信号一起发出
数据和Strobe信号经过同样的Flight Time,达到接收端
接收端根据Strobe信号来对数据进行采样,需要满足建立保持时间
这样的方式就是源同步时序总线,由于Strobe和Data一起出发,一起行动,解决了时钟触发的延时(Tco)问题,也一起克服路上遇到的艰难险阻(T Flight Time)。这个方式是不是很像生活中理想的夫妻模式呢?
这种情况下,走线的长短已经不是问题了,反正我们步调一致。对了,关键就是步调一致,反映到走线,就是尽量等长。再次借用Cadence Allegro的规则管理器来解释,源同步时钟总线最合适的电子规则就是我们常用的Propagation Delay啦。
如 果我们把源同步时钟总线比喻成夫妻生活,步调一致,一起克服困难;那么返回头看看共同时钟总线,是不是可以理解为恋爱时候的关系呢,虽然男女之间的目的是 一致的,都是到达接收端(结婚),然后有一定的裕量(生活)。但是由于没有达成信任与默契,需要更多的外部条件来协调。然后女生对男生说,不管你有多好, 基本条件(房子车子)是要满足的,这就是Total Etch Length的要求,你必须满足一个最大最小的范围条件。
2DDR3/DDR4时序关系概述
DDR是典型的源同步时序,我们就以DDR3为例,详细说明下DDR设计需要满足的时序关系。
上 文说到,源同步时钟的目标就是Strobe和Data一起到达,然后满足到达之后的建立保持时间关系。按照这个目标,只要Strobe和Data等长设 计,好像DDR的速率提升就不是什么问题了。不去说什么能不能跑到10Gbps或者更高速率,至少在DDR3的1600Mbps不会有什么困难。总共一两 百皮秒的建立保持时间需求,就算加上derating的数据,对于1.25ns的Tck来说,好像都不会有任何问题。
但是下面这张表格告诉我们,源同步时序系统速率提升之后,除了Tck变小会让时序裕量变小之外,还有更多其他因素会影响时序。
码间干扰(ISI),数据线之间的串扰(Crosstalk),还有同步开关噪声(SSN)等,都会吃掉大量的时序裕量。
所以在设计中,我们要遵循下面的分组等长原则(DDR3的DQS和CLK不需要用绕线等长的方式来控制时序,而是通过芯片内部的读写平衡功能,我们在DDR3系列文章中已经多次提出来了)