轉載於: http://blog.csdn.net/jacke121/article/details/53932668
等長線是為了減少信號相對延時,常用在高速存儲器的地址和數據線上,簡單來說:等長線的作用,就是讓信號傳輸的速度一致。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側