分享

DDR SDRAM布线规则

 guitarhua 2015-02-28

首先区别DDR SDRAM与SDRAM:

      SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR则是一个时钟周期内传输两次数据,在时钟的上升期和下降期各传输一次数据。

SDRAM的工作电压为3.3V,而DDR的工作电压为2.5V;

      SDRAM采用公共时钟同步,公共时钟同步是指在数据的传输过程中,总线上的驱动端和接收端共享同一个时钟源,在同一个时钟缓冲器(clock buffer)发出同相时钟的作用下,完成数据的发送和接收。

      DDR SDRAM采用源同步,源同步就是指时钟选通信号clk伴随发送数据一起由驱动芯片发送。所以在DDR的控制端需要有延迟补偿电路。

      SDRAM关心建立时间,而DDR关心保持时间,DDR比SDRAM要求有更短的信号建立保持时间、更干净的参考电压、更紧密的走线匹配和新的I/O口信号,并且需要合适的终端电阻匹配。因此在布线的时候注意等长布线。关于建立时间和保持时间的概念详见附录。

 

DDR布线应注意的问题:

      内存的作用是用来存储数据的,写入1读出1,写入0读出0,因此必须保证数据访问正确。产生数据访问错误的情况主要有如下两种:

1、判决错误,0判成1,1判成0。可能参考电平不准(为什么不准?信号线内阻造成的压降),也可能是加性干扰,或者阻抗不匹配引起信号畸变。

2、时序错误,不满足建立/保持时间,或者采样点相位错误,不在有效信号位置上。触发器需要维持一段时间的能量供给才能正常工作,这个时间就是建立/保持时间。

只要解决好这两个问题,保证内存正确访问,内存电路就设计成功了。

      为了满足建立保持时间,同频同相,采样正确,我们对走线的布线要求是:等长布线。但是由于DDR有高速时钟信号,高速跳变的边沿,就必须考虑到在PCB板上存在传输线效应的问题,对于布线长度有了要求。

避免传输线效应的方法

1、严格控制关键网线的走线长度。

      如果采用CMOS或TTL电路进行设计,工作频率小于10MHz,布线长度应不大于7英寸。工作频率在50MHz布线长度应不大于1.5英寸。如果工作频率达到或超过75MHz布线长度应在1英寸。对于GaAs芯片最大的布线长度应为0.3英寸。如果超过这个标准,就要通过软件仿真来定位走线.走线的精确长度需物理软件(如:PADS等)控制。

2 合理规划走线的拓扑结构

      解决传输线效应的另一个方法是选择正确的布线路径和终端拓扑结构。当使用高速逻辑器件时,除非走线分支长度保持很短,否则边沿快速变化的信号将被信号主干走线上的分支走线所扭曲。通常情形下,PCB走线采用两种基本拓扑结构,即菊花链(Daisy Chain)布线和星形(Star)分布。

DDR布线分析:

根据DDR信号的种类可以分为不同的信号组,如下表所列:

DDR SDRAM布线规则 - 似水年华 - 我的博客

信号引脚说明:

      VSS为数字地,VSSQ为信号地,若无特别说明,两者是等效的。VDD为器件内核供电,VDDDQ为器件的DQ和I/O供电,若无特别说明,两者是等效的。

      其中,数据组的分组应该以每个字节通道来划分,DM0、DQS0以及DQ0~DQ7为第1字节通道,DM1、DQS1以及DQ8~DQ15为第2字节通道,以此类推。每个字节通道内有严格的长度匹配关系。其他信号走线长度应按照组为单位来进行匹配,每组内信号长度差应该严格控制在一定范围内。不同组的信号间虽然不像组内信号那样要求严格,但不同组长度差同样也有一定要求。

信号组布线顺序

        为了确保DDR接口最优化,DDR的布线应该按照如下的顺序进行:功率、电阻网络中的pin脚交换、数据信号线布线、地址/命令信号布线、控制信号布线、时钟信号布线、反馈信号布线。

       数据信号组的布线优先级是所有信号组中最高的,因为它工作在2倍时钟频率下,它的信号完整性要求是最高的。另外,数据信号组是所有这些信号组中占最大部分内存总线位宽的部分,也是最主要的走线长度匹配有要求的信号组。

        地址、命令、控制和数据信号组都与时钟的走线有关。因此,系统中有效的时钟走线长度应该满足多种关系。设计者应该建立系统时序的综合考虑,以确保所有这些关系都能够被满足。

各组信号布线长度匹配

       时钟信号:以地平面为参考,给整个时钟回路的走线提供一个完整的地平面,给回路电流提供一个低阻抗的路径。由于是差分时钟信号,在走线前应预先设计好线宽线距,计算好差分阻抗,再按照这种约束来进行布线。所有的DDR差分时钟信号都必须在关键平面上走线,尽量避免层到层的转换。线宽和差分间距需要参考DDR控制器的实施细则,信号线的单线阻抗应控制在50~60 Ω,差分阻抗控制在100~120 Ω。时钟信号到其他信号应保持在20 mil以上的距离来防止对其他信号的干扰。蛇形走线的间距不应小于20 mil。串联终端电阻RS值在15~33Ω,可选的并联终端电阻RT值在25~68 Ω,具体设定的阻值还是应该依据信号完整性仿真的结果。

       数据信号组:以地平面为参考,给信号回路提供完整的地平面。特征阻抗控制在50~60 Ω。线宽要求参考实施细则。与其他非DDR信号间距至少隔离20 mil。长度匹配按字节通道为单位进行设置,每字节通道内数据信号DQ、数据选通DQS和数据屏蔽信号DM长度差应控制在±25 mil内(非常重要),不同字节通道的信号长度差应控制在1 000 mil内。与相匹配的DM和DQS串联匹配电阻RS值为0~33 Ω,并联匹配终端电阻RT值为25~68Ω。如果使用电阻排的方式匹配,则数据电阻排内不应有其他DDR信号。

       地址和命令信号组:保持完整的地和电源平面。特征阻抗控制在50~60 Ω。信号线宽参考具体设计实施细则。信号组与其他非DDR信号间距至少保持在20 mil以上。组内信号应该与DDR时钟线长度匹配,差距至少控制在25 mil内。串联匹配电阻RS值为O~33 Ω,并联匹配电阻RT值应该在25~68 Ω。本组内的信号不要和数据信号组在同一个电阻排内。

        控制信号组:控制信号组的信号最少,只有时钟使能和片选两种信号。仍需要有一个完整的地平面和电源平面作参考。串联匹配电阻RS值为O~33 Ω,并联匹配终端电阻RT值为25~68 Ω。为了防止串扰,本组内信号同样也不能和数据信号在同一个电阻排内。

电源部分的设计分析

说明:在此次选用的DDR 芯片中VTT和终端电阻都被集成到了主芯片MX233的DDR 控制器中,因此不需要重新布线,下面文档中提到VTT的布线规则是为了方便其他未集成的主芯片布线,仅作参考。

         通常情况下,DDR供电电压是2.3~2.7 V,典型值是2.5 V,工作频率的不同可能引起正常工作电压的不同。参考电压VREF是1.13~1.38 V,典型值是1.25 V。VTT以VREF为参考,电压范围是(VREF-0.04 V)-(VREF+0.04 V)。由于VREF只是给差分接收器端提供一个直流参考电平,所以电流比较小,最大只有3 mA。VTT的电流由于上拉的缘故,在输出端输出高电平时,VTT应能流入电流;在输出端输出低电平时VTT电流输出。故VTT必须能同时有流入和流出电流,电流的大小依赖于总线上同时出现的电位状态,从常用的设计来看最大可以从2.3 A到3.2 A。

        由于VREF电压作为其他信号接收端的重要参考,故它的布线设计也是十分重要的。叠加在VREF电压的串扰或噪声能直接导致内存总线发生潜在的时序错误、抖动和漂移。很多电源芯片会把VREF和VTT从同一源输出,但是由于使用的目的不同,走线也完全不同。VREF最好和VTT在不同平面,以免VTT产生的噪声干扰VREF。而且无论是在DDR控制器端还是DDR存储器端,VREF脚附近都应放置去耦电容,消除高频噪声。VREF的走线宽度应该越宽越好,最好为20~25 mil。

         VTT电源应该单独划分一块平面来供应电流,且最好放在DDR存储器端。如果并联终端匹配使用排阻的方式上拉,那么最好每个排阻都添加一个0.1 μF或0.01μF的去耦电容,这对于改善信号的完整性、提高DDR总线的稳定性都有很好的效果。

导线宽度和间距

导线间距和导线宽度S1,S2,S3的定义如下:

  • S1表示同一信号组内两相邻导线之间的间距
  • S2表示不同信号组之间两相邻导线之间的间距
  • S3表示导线的宽度

导线宽度选择为:

DQ:4mil  min; 6mil  nominal;

DQS: 4mil min; 6mil  nominal;

Address:4 mil min; 6 mil nominal;

Command/control: 4 mil min; 6 mil nominal;

Clock:4 mil m;in; 6-10 mil nominal;

导线间距选择:

 

信号组信号间距类别最小值标称值最大值单位数据组DQ to DQS1812无mil DQ to DQSS2812无mil DQ to DMS2812无mil地址组相邻地址线S1612无mil 地址线S2612无mil命令/控制组CAS#,RAS#,WE#,CS#,CKES1615无mil时钟信号CK# to CKS14无6mil 时钟与其他信号S2812无mil

 

几点说明:

  1. DQS一般布线的位置是数据信号组内同一信号组中DQ走线的中间,因此DQS与DQS之间的间距一般不提;
  2. DQS与时钟信号线不相邻;
  3. 为了避免串扰,数据信号组与地址/命令/控制信号组之间的走线间距至少20mil,建议它们在不同的信号层走线;
  4. 时钟信号组走线尽量在内层,用来抑制EMI;

导线走线长度

所有DDR的差分时钟线CK与CK#必须在同一层布线,误差+-20mil,最好在内层布线以抑制EMI。如果系统有多个DDR器件的话,要用阻值100~200ohm的电阻进行差分端接。

(1) 若时钟线的分叉点到DDR器件的走线长度<1000mil,要使用100~120ohm的差分端接,如下图:


(2) ;若时钟线的分叉点到DDR器件的走线长度>1000mil,要使用200~240ohm的电阻差分端接,因为两个200~240ohm的电阻并联值正好为100~120ohm。如下图所示:


数据信号组的走线长度与时钟信号线的误差为+-500mil,组内同一信道的信号线走线误差为+-50mil,从而可以得到,组内不同信道的走线误差为+-1000mil,相同信道的DQS一般走线在DQ中间

  • 地址线/命令/控制信号线与时钟信号走线的误差为+-400mil,组内走线误差为+-50mil
  • 所有信号的走线长度控制在2inch(5cm)最好。

结 语

        在带有DDR的嵌入式系统主板中,设计PCB最难的部分莫过于DDR的走线设计。好的走线就等于有了好的信号完整性和好的时序匹配,总线在高速输入/输出数据过程中就不会出错,甚至能够有更好的抗串扰和EMC能力。DDR总线并行传输且速率较高,在设计过程中如果没有按照严格的约束进行布线,在设备后期调试过程中,将会出现各种各样异常问题,甚至是系统根本无法启动。而这些问题在查找和调试中很难发现,以至于无法完成硬件的开发。最好的方法就是在设计时就充分考虑信号完整性和时序匹配的问题,在走线时就把这些规则运用进去;如果有条件,可以做一下仿真,预先验证一下设计。这样做出来的设计,系统的稳定性和可靠性才会更高。

附录

蛇行线:

PCB中采用蛇行线的原因有两个:

一是为了保证走线线路的等长。因为像CPU到北桥芯片的时钟线,它不同于普通家电的电路板线路,在这些线路上以100MHz左右的频率高速运行的信号,对线路的长度十分敏感。不等长的时钟线路会引起信号的不同步,继而造成系统不稳定。故此,某些线路必须以弯曲的方式走线来调节长度。

另一个使用蛇行线的常见原因为了尽可能减少电磁辐射(EMI)对主板其余部件和人体的影响。因为高速而单调的数字信号会干扰主板中各种零件的正常工作。通常,主板厂商抑制EMI的一种简便方法就是设计蛇形线,尽可能多地消化吸收辐射。

但是,我们也应该看到,虽然采用蛇行线有上面这些好处,也并不是说在设计主板走线时使用的蛇行线越多越好。因为过多过密的主板走线会造成主板布局的疏密不均,会对主板的质量有一定的影响。好的走线应使主板上各部分线路密度差别不大,并且要尽可能均匀分布,否则很容易造成主板的不稳定。

差分走线:

差分信号通俗的说就是驱动端发送两个等值、反相的信号,接收端通过比较这两个电压的差值来判断逻辑状态“0”还是“1”。而承载差分信号的那一对走线就称为差分走线。

差分信号和普通的单端信号走线相比,最明显的优势体现在以下三个方面:a.抗干扰能力强,因为两根差分走线之间的耦合很好,当外界存在噪声干扰时,几乎是同时被耦合到两条线上,而接收端关心的只是两信号的差值,所以外界的共模噪声可以被完全抵消。

b.能有效抑制EMI,同样的道理,由于两根信号的极性相反,他们对外辐射的电磁场可以相互抵消,耦合的越紧密,泄放到外界的电磁能量越少。c.时序定位精确,由于差分信号的开关变化是位于两个信号的交点,而不像普通单端信号依靠高低两个阈值电压判断,因而受工艺,温度的影响小,能降低时序上的误差,同时也更适合于低幅度信号的电路。目前流行的LVDS(low voltage differential signaling)就是指这种小振幅差分信号技术。对于PCB工程师来说,最关注的还是如何确保在实际走线中能完全发挥差分走线的这些优势。差分走线的一般要求是“等长、等距”。等长是为了保证两个差分信号时刻保持相反极性,减少共模分量;等距则主要是为了保证两者差分阻抗一致,减少反射。“尽量靠近原则”有时候也是差分走线的要求之一。 

信号响应中有几个重要参数:建立时间、保持时间和延迟时间。建立时间和保持时间都是器件要求的特性。其中建立时间是器件输入端在时钟信号有效沿到来前,要求输入信号稳定不变的时间。保持时间是器件输入端要求输入信号在时钟信号有效沿到来后保持稳定不变的时间。如果输入信号不满足建立时间和保持时间的要求,就可能导致数据锁存错误。下图说明了建立时间和保持时间的区别:

延迟时间是器件本身或布线的物理特性,其含义是信号从器件或布线经过所需的时间。器件的延迟时间由两部分组成。一个是触发器输出响应时间(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。

对于器件来说建立时间和保持时间越短越好

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多