2、 若时钟线的分叉点到DDR器件的走线长度>1000mil,要使用200~240ohm的电阻差
分端接,因为两个200~240ohm的电阻并联值正好为100~120ohm。如下图所示。
3、 数据信号组的走线长度与时钟信号线的误差为+-500mil,组内同一信道的信号线走
线误差为+-50mil,从而可以得到,组内不同信道的走线误差为+-1000mil,相同信道的DQS一般走线在DQ中间。
4、 地址线/命令/控制信号线与时钟信号走线的误差为+-400mil,组内走线误差为
+-50mil。
5、 所有信号的走线长度控制在2inch(5cm)最好。 五、 结语
在带有DDR的嵌入式系统主板中,设计PCB最难的部分莫过于DDR的走线设计。好的走线就等于有了好的信号完整性和好的时序匹配,总线在高速输入/输出数据过程中就不会出错,甚至能够有更好的抗串扰和EMC能力。DDR总线并行传输且速率较高,在设计过程中如果没有按照严格的约束进行布线,在设备后期调试过程中,将会出现各种各样异常问题,甚至是系统根本无法启动。而这些问题在查找和调试中很难发现,以至于无法完成硬件的开发。最好的方法就是在设计时就充分考虑信号完整性和时序匹配的问题,在走线时就把这些规则运用进去;如果有条件,可以做一下仿真,预先验证一下设计。这样做出来的设计,系统的稳定性和可靠性才会更高。 六、 附录
1、 蛇形线:
PCB中采用蛇行线的原因有两个: 一是为了保证走线线路的等长。因为像CPU到北桥芯片的时钟线,它不同于普通家电的电路板线路,在这些线路上以100MHz左右的频率高速运行的信号,对线路的长度十分敏感。不等长的时钟线路会引起信号的不同步,继而造成系统不稳定。故此,某些线路必须以弯曲的方式走线来调节长度。
另一个使用蛇行线的常见原因为了尽可能减少电磁辐射(EMI)对主板其余部件和人体的影响。因为高速而单调的数字信号会干扰主板中各种零件的正常工作。通常,主板厂商抑制EMI的一种简便方法就是设计蛇形线,尽可能多地消化吸收辐射。
但是,我们也应该看到,虽然采用蛇行线有上面这些好处,也并不是说在设计主板走线时使用的蛇行线越多越好。因为过多过密的主板走线会造成主板布局的疏密不均,会对主板的质量有一定的影响。好的走线应使主板上各部分线路密度差别不大,并且要尽可能均匀分布,否则很容易造成主板的不稳定。 2、 差分走线
差分信号通俗的说就是驱动端发送两个等值、反相的信号,接收端通过比较这两个电压的差值来判断逻辑状态“0”还是“1”。而承载差分信号的那一对走线就称为差分走线。 差分信号和普通的单端信号走线相比,最明显的优势体现在以下三个方面:
a.抗干扰能力强,因为两根差分走线之间的耦合很好,当外界存在噪声干扰时,几乎是同时被耦合到两条线上,而接收端关心的只是两信号的差值,所以外界的共模噪声可以被完全抵消。
b.能有效抑制EMI,同样的道理,由于两根信号的极性相反,他们对外辐射的电磁场可以相互抵消,耦合的越紧密,泄放到外界的电磁能量越少。 c.时序定位精确,由于差分信号的开关变化是位于两个信号的交点,而不像普通单端信号依靠高低两个阈值电压判断,因而受工艺,温度的影响小,能降低时序上的误差,同时也更适合于低幅度信号的电路。目前流行的LVDS(low voltage differential signaling)就是指这种小振幅差分信号技术。
对于PCB工程师来说,最关注的还是如何确保在实际走线中能完全发挥差分走线的这些优势。差分走线的一般要求是“等长、等距”。等长是为了保证两个差分信号时刻保持相反极性,减少共模分量;等距则主要是为了保证两者差分阻抗一致,减少反射。“尽量靠近原则”有时候也是差分走线的要求之一。
3、 信号响应中有几个重要参数:建立时间、保持时间和延迟时间。
建立时间和保持时间都是器件要求的特性。其中建立时间是器件输入端在时钟信号有效沿到来前,要求输入信号稳定不变的时间。保持时间是器件输入端要求输入信号在时钟信号有效沿到来后保持稳定不变的时间。如果输入信号不满足建立时间和保持时间的要求,就可能导致数据锁存错误。下图说明了建立时间和保持时间的区别:
延迟时间是器件本身或布线的物理特性,其含义是信号从器件或布线经过所需的时间。器件的延迟时间由两部分组成。一个是触发器输出响应时间(tffpd)。可以理解为触发器输出在clk有效沿到来后的时间内发生变化, 之后稳定,也可以理解输出延迟。另一个触发器输出的变化经过组合逻辑元件所需的附加时间,一般是组合逻辑延迟(tcomb)。如下图所示:
建立时间容限和保持时间容限。
建立时间容限是指器件允许的安全的建立时间长度范围。同样保持时间也就是器件允许的安全的保持时间长度范围。一般来说建立时间容限和保持时间容限都大于等于0。根据这个要求,如上图所示,就有以下约束:
tclk = tffpd + tcomb + 建立时间容限 + tsetup
所以建立时间容限 = tclk – tffpd(max) – tcomb(max) – tsetup >=0 tsetup <= tclk – tffpd (max)- tcomb(max) 保持时间容限
首先对于数据接收端来说,任何时钟沿采样的数据,都是发送端前一时钟周期发送的数据。发送端可能每个时钟周期都要发送数据,那么对于接收端来说,任何一个时钟沿后一段时间,数据线上的数据都会被发送端第二次发送的数据改变,所以保持时间容限其实是由于下一个时钟节拍上的数据引起的。
信号在时钟信号有效沿跳变,但真正到达输入端的的跳变发生在时钟信号有效沿后的tffpd + tcomb时刻。根据器件的保持时间要求,输入必须保持一定时间的稳定,所以tholdup <= tffpd + tcomb。保持时间容限则 = tffpd(min) + tcomb(mix) – tholdup。 对于器件来说建立时间和保持时间越短越好。