SDRAM和DDR布線(xiàn)指南
**********************
* SDRAM和DDR布線(xiàn)指南 *
**********************
2007/02/03 asdjf@163.com www.armecos.com
ecos應用是與硬件平臺無(wú)關(guān)的,雖然開(kāi)發(fā)板沒(méi)有涉及到SDRAM和DDR,不過(guò),在某些高端平臺上使用ecos可能會(huì )遇到內存布線(xiàn)問(wèn)題,為了完整敘述,這里一并給出說(shuō)明。
很多人對內存布線(xiàn)感到迷茫,找不到切入點(diǎn),不知如何下手,其實(shí)高速硬件設計的主要任務(wù)就是與干擾做斗爭,內存布線(xiàn)也不例外??梢赃@樣考慮:內存是做什么用的呢?是用來(lái)存儲數據的,寫(xiě)入1讀出1,寫(xiě)入0讀出0,即保證數據訪(fǎng)問(wèn)正確。那么,在什么情況會(huì )導致數據訪(fǎng)問(wèn)錯誤呢?
1、判決錯誤,0判成1,1判成0??赡軈⒖茧娖讲粶?為什么不準?信號線(xiàn)內阻造成的壓降),也可能是加性干擾,或者阻抗不匹配引起信號畸變。
2、時(shí)序錯誤,不滿(mǎn)足建立/保持時(shí)間,或者采樣點(diǎn)相位錯誤,不在有效信號位置上。觸發(fā)器需要維持一段時(shí)間的能量供給才能正常工作,這個(gè)時(shí)間就是建立/保持時(shí)間。
那么只要解決好這兩個(gè)問(wèn)題,保證內存正確訪(fǎng)問(wèn),你的內存電路就設計成功了。
有了這個(gè)指導思想,內存布線(xiàn)就可以按部就班地完成。不過(guò),不同的RAM類(lèi)型,雖然目標都是避免判決和時(shí)序錯誤,但實(shí)現方法因工作模式不同而有較大差異。
高速系統一般采用低壓信號,電壓低,擺幅小,容易提高速度,降低功耗,但這給布線(xiàn)帶來(lái)了困難,因為低壓信號功率受信號線(xiàn)內阻影響大,是電壓平方關(guān)系,所以要盡量減少內阻,比如使用電平面,多打孔,縮短走線(xiàn)距離,高壓傳輸在終點(diǎn)用電阻分壓出較低電壓的信號等。SDRAM、DDR-I、DDR-II、DDR-III信號電壓一個(gè)比一個(gè)低,越來(lái)越不容易做穩定。
電源供給也要注意,如果能量供給不足,內存不會(huì )穩定工作。
經(jīng)??吹?#8220;等長(cháng)布線(xiàn)”,其實(shí),等長(cháng)不是目的,真正的目的是滿(mǎn)足建立保持時(shí)間,同頻同相,采樣正確。等長(cháng)只不過(guò)可以最簡(jiǎn)單地實(shí)現這個(gè)目的罷了。要定量分析線(xiàn)長(cháng),必須按照時(shí)鐘模型公式計算。時(shí)鐘同步電路的類(lèi)型在后面有簡(jiǎn)單介紹,這里只要知道SDRAM是公共時(shí)鐘同步,DDR是源同步就可以了。
SDRAM是公共時(shí)鐘同步模式,只關(guān)心建立時(shí)間,不關(guān)心保持時(shí)間。這些時(shí)間和各段飛行時(shí)間,經(jīng)過(guò)各個(gè)門(mén)電路延時(shí),clockskew,jitter,cycle等有關(guān),需要按照公式精確計算。算出各種參數后下規則,讓EDA軟件輔助設計。選出最長(cháng)的一根線(xiàn),不需要計算什么,只要與之等長(cháng)即可。有些軟件能自己算,有些只能自己一段段計算,可以編程讓EXCEL表格對某種格式的報告文件自動(dòng)求和,也算半自動(dòng)化了。
DDR的所有信號都要加匹配,不論多復雜,為了穩定性。
始端匹配串接一個(gè)22/33歐電阻即可,終端匹配分為AC匹配和DC匹配,阻容可以對噪點(diǎn)抑制,戴維寧電路可以提供高壓輸電,使參考電平更準確,雖然直流功耗大,但比單個(gè)50歐功耗小。
CPU和DDR都是高速器件,DDR熱量高,應遠離。而且DDR是源同步時(shí)鐘模式,對保持時(shí)間有要求,不是線(xiàn)越短越好,有最小距離要求。保證時(shí)鐘穩定,同頻同相,冗余大即可。
有時(shí),信號線(xiàn)有交叉的情況,此時(shí),可以在PCB里調線(xiàn),再反標回去,因為RAM的各個(gè)數據線(xiàn)不需要一一對應,只要有地方存儲bit就可以了。注意:刷新線(xiàn)A10不能調,需要讀取RAM ID時(shí)也不能調整。
評價(jià)設計的好壞要看Margin(冗余),setup time margin和hold timemargin,SDRAM/DDR工作沒(méi)問(wèn)題并不意味著(zhù)margin小,也許在實(shí)驗室可以正常工作,可一到現場(chǎng)就死機。頻率漂移,時(shí)鐘抖動(dòng),相差,介電常數變化等都會(huì )導致采樣錯誤/不滿(mǎn)足建立保持時(shí)間,而margin大就可以盡量抵抗這些干擾,在一個(gè)惡劣的環(huán)境里仍然保持穩定。
內存的表現形式有兩種:內存顆粒和內存條。內存條自身有走線(xiàn)長(cháng)度,需要計算在內。問(wèn)個(gè)問(wèn)題:內存條有3種安裝方式:豎插、斜插、平插,你認為那種方式好呢?
附:時(shí)鐘同步電路的類(lèi)型
源同步就是指時(shí)鐘選通信號clk伴隨發(fā)送數據一起由驅動(dòng)芯片發(fā)送。公共時(shí)鐘同步是指在數據的傳輸過(guò)程中,總線(xiàn)上的驅動(dòng)端和接收端共享同一個(gè)時(shí)鐘源,在同一個(gè)時(shí)鐘緩沖器(clock buffer)發(fā)出同相時(shí)鐘的作用下,完成數據的發(fā)送和接收。
公共時(shí)鐘同步,將同一個(gè)時(shí)鐘信號用時(shí)鐘分配器分成2路,一路接發(fā)送器,一路接接收器。在時(shí)鐘上升沿發(fā)送數據,在下一個(gè)周期的上升沿采樣接收。速率在200-300MHZ以下。
源同步是時(shí)鐘和數據一起發(fā)送,時(shí)鐘稍稍滯后發(fā)送,傳輸速率主要由數據和時(shí)鐘信號間的時(shí)差決定。因此速率快。
公共時(shí)鐘同步電路走線(xiàn)長(cháng)度有最大值len <=,源同步電路走線(xiàn)長(cháng)度有最小值<= len <=
源同步關(guān)心保持時(shí)間,TBI+10bit數據和DDR的DQS+DATA屬于源同步電路。
------ 等長(cháng)線(xiàn)
|時(shí)鐘|----------------->發(fā)送端時(shí)鐘
clk--->|驅動(dòng)|----------------->接收端時(shí)鐘
| |---
------ |
| |
---<---PLL補償
公共時(shí)鐘同步
-----
|驅 |------------------>clk
|動(dòng) |
| |================>data
-----
源同步
--------- ---------
-----< >< >--------
--------- ---------
-----------
| |
--------- -----------
|<--->|<-->|
建立 保持
聯(lián)系客服