等长线是为了减少信号相对延时,常用在高速存储器的地址和数据线上,简单来说:等长线的作用,就是让信号传输的速度一致。I2C总线无需画等长线,虽然i2C信号与内存一样都是有相对时序要求,但由于
信号频率较低,此时由导线长度引起的延时不足以影响正常时序,所以无需等长。当然如果等长也没什么不好的。
差分线与一样,高速信号要注意等长,比如USB,低速信号无需特别注意线长度,比如485。差分线在布线时要2根线要尽可能保持等距 。
高速信号有效的建立保持窗口比较小,要让数据和控制信号都落在有效窗口内,数据、时钟或数据之间、控制信号之间的走线长度差异就很小。具体允许的偏差可以通过计算时延来得到。其实一般来说,时序逻辑信号要满足建立时间和保持时间并有一定的余量。只要满足这个条件,信号是可以不严格等长的。然而,实际情况是,对于高速信号来说(例如DDR2、DDR3、FSB),在设计的时候是无法知道时序是否满足建立时间和保持时间要求(影响因素太多,包括芯片内部走线和容性负载造成的延时差别都要考虑,很难通过计算估算出实际值),必须在芯片内部设置可控延时器件(通过寄存器控制延时),然后扫描寄存器的值来尝试各种延时,并通过观察信号(直接看波形,测量建立保持时间)来确定延时的值使其满足建立时间和保持时间要求。不过同一类信号一般只对其中一根或几根信号线来做这种观察,为了使所有信号都满足时序要求,只好规定同一类信号走线全部严格等长。上面说的是高速并行信号。对于高速的串行信号,如果是带时钟的,时钟和串行数据也必须满足建立保持时间要求,所以也要控制好长度。有些高速串行信号虽然带时钟,但这个时钟不是用来锁存数据而是一个频率较低的参考时钟,那么数据和时钟以及多个通道之间的数据的skew就可以宽松很多,不用严格等长,因为接收芯片是能够正确找出每个通道的起始位并且把参考时钟经过PLL倍频和相移来锁存数据的。例如TMDS信号,串行数据的差分对之间要严格等长,但数据之间的skew放宽到+/-20%的时钟周期。不过为了避免不必要的问题,一般来说像TMDS、PCI-E这些串行信号,通道间一般也要做等长,不过允许的偏差可以比较大,例如200ps以上。至于低速信号,其建立保持窗口一般在ns级以上,这样就没必要做长度控制了,因为无论布线怎么差也很难搞出ns级的skew。
问题的引出:据有关高速PCB布线建议的文章介绍,SDRAM存储器走线时要注意“尽量短且等长”,不知道它说得是仅指数据线呢,还是包括数据线、地址线、控制线?对于数据线,等长比较好走,因为它是点到点的,而对于地址线、控制线,等长就难了,因为它们是一点到多点的,所以还与总线拓扑结构有关,而且PCB走线时空间紧张;请问各位有什么好的建议,尤其是地址线、控制线的拓扑结构,是否需要作等长处理,如果要的话,怎样作等长处理?
一.主要还是看SDRAM的频率能跑多高了!尽量做到地址线等长,和数据线等长,我们在计算等长时分别算主芯片到匹配电阻的长度和匹配电阻到SDRAM的长度并且要算过孔数(将过孔大致折算成线长),然后将总长度算出,再做等长匹配.如果有多块SDRAM的话,地址线尽量走T型线,数据线尽量等长,芯片应该都能跑起来的.我做的DVD板,SDRAM基本都不走等长(因为频率基本上是108M,和133M的芯片,呵呵),实在看不过去的线就绕一下,相差不是很悬殊的就没问题,都能跑起来的!我做的好几块板子都正常运作;不过DDR的就不能大意了.要计算后再绕.重在布局,布局合理会省很大的事,呵呵!以上纯属个人之见,,以上纯属个人之见
二.数据线在板子上是不需要额外作阻抗匹配的,只有地址线和控制线需要在dimm 末端加一termination 电阻作终端阻抗匹配,防止反射。后来又做一个DDR2的板子,地址线等长T形走线(有两片)、数据线等长处理,程序跑得很稳定。当然,光等长是不行的,在走线时,所有数据线与地址线均使用同一个参考面,电源与端接电源的去耦做好。呵呵,只要这么做了,系统就是稳定,什么都不用担心。另外,告诉大家:一般的SDRAM Controller都是可以调时序的,所以数据与地址线、时钟线不必等长,软件调好时序就可以(当然这些参数是可以计算的,可不要瞎调哦)
三.时钟线与控制线,地址线尽量等长,他们一起实现逻辑控制;数据线自己尽量等长可以了;当然,全部等长最好;[
四.控制信号(CS,CKE)、命令信号(WE,CAS,RAS等)和地址信号(Ax,BAx)还有数据信号(EDX)都是由主设备SDRAM控制器发出的,主设备利用内部CLK上升沿把数据和控制信号输出到总线上,在下一个CLK的上升沿把数据或控制信号打入到SDRAM。只要满足SDRAM的输入建立和保持时间就可以了,不是谁一定比谁长。
五.如果只是手机板,100MHz的主频,等长不等长并不重要,而且手机板子很小,走线也不可能长。如果是我布板,连数据线我也不做等长控制。只有当频率更高,或线更长时,才会考虑到等长。
六.时钟等长是指俩快SDRAM的等长 ,二者的时钟线不一样
七.好像没必要走等长,数据数在+/-200mil,其它尽量走短就可以发了
八.其实速度比较快的只是CPU到SDRAM,所以一般只需要注意到SDRAM的数据和地址线的长度就可以了!还有到网口的差分线(Flash的可以不考虑)
九.总线工作方式是异步则不用等长,同步时序则需要分晰,同步时序一般来说是一组数据(或地址)参考一根(或几根)时钟信号,到底需不需要等长,要等长到多少,则要分晰芯片资料,弄清楚从发送到接收的器件以下指标:Clockperiod,Tfilght,Tco,Tsetup,Tskew,Tjitter等等,建立时序方程(不等式),求出允许时间差值(即在PCB上布线允许的误差多少,一般要做得比计算的保守一些,PCB走线延时一般内层在5.5inch/ns,表层在6inch/ns左右).
十.个人经验: 数据地址总线在50M以下不考虑走线长度误差,一般差1~2个inch以内都不调整.不用去算,时序肯定宽松得很. 256M以下控制在+/-50mil以内, 1.25G控制在+/-20mil以内 2.15G控制在+/-10mil以内, 10G控制在+/-2mil以内.大家可以参考下控制线不用等长.
十一.对于DDR2来说,地址线,数据线,控制线,CLK,不是所有的线都等长,而是每组的线等长就可以了,也不是完全的等长,也是有一个误差范围的。地址线一组,设置一个目标值,进行绕线,在允许的误差范围内就可以,不需要完全的等长,当然完全的等长最好,但是比较难数据线可以分几组,64位的分8组,组与组间不要求等长,组内要等长控制信号一组时钟信号一组
十二.1.SDRAM时钟信号:时钟信号频率较高,为避免传输线效应,按照工作频率达到或超过75MHz时布线长度应在1000mil以内的原则及为避免与相邻信号产生串扰,走线长度不超过1000mil,线宽10mil,内部间距5mil,外部间距30mil, 要求差分布线的,精确匹配差分对走线,误差允许在20mil以内。2. 地址、片选及其它控制信号:线宽5mil,外部间距12mil,内部间距10mil,尽量走成菊花链拓补,可有效控制高次谐波干扰,可比时钟线长,但不能短。3. SDRAM数据线:线宽5mil,内部间距5mil,外部间距8mil,尽量在同一层布线,数据线与时钟线的线长差控制在50mil内。
十三.1.首先,楼主的所问“SDRAM存储器走线时要注意尽量短且等长”走线的长短是与buffer的驱动能力有关,比如一般的sdram要求走线长度控制在3000mil以下;等长主要跟时序有关,走线等长控制也就是为了满足信号的时序控制,也就是为了满足信号的建立时间Tsetup和保持时间Thold的要求。一般的手机板由于布局密集和频率也较低,所以时序裕量也很大,所以通常不控制等长也是可以满足时序要求的。2.等长控制并不是时钟,地址,数据都等长就肯定满足要求。如ddr,时序关系大致是三个制约关系:数据DQ和DQS;时钟ck和地址控制信号;ck和dqs。三者的制约关系要通过看cpu(或者是驱动器),ddr颗粒的资料来确认其Tsetup和Thold要求。实际上控制的结果就是dqs和dq相对ck和地址控制可以短一些,走线也就好实现一点。3.拓朴结构。拓朴结构要同时考虑信号质量要求和走线空间的可行性。举个简单的例子,1片cpu驱动2片ddr,数据采用1驱1,时钟和地址控制信号采用1驱2。那么地址信号采用什么拓朴?SI工程师通过仿真确认采用星型拓朴信号质量好。可是pcb布局很密集,地址线那么多,没有空间打孔,实现不了。这时候Si工程师通过仿真发现采用菊花链方式信号质量也满足要求,而且pcb走线也可以实现,这样问题就得以解决。地址线绕等长是有点困难,这个就要看绕线的功夫了。绕多了就好了,我现在都麻木了……
十四.在数据线和地址线做些阻抗匹配 各串一电阻进去 请问这电阻是放在主芯片这里还是放到其它地方如FLASH SDRAM那边线路阻抗=匹配电阻 + IO的输出阻抗DDR的话应该靠近DDR侧SDRAM应该靠近Controller侧