SDRAM布線規則


 
SDRAM接口電路和PCB布線

一:sdram布線技巧

  1、不管在外面還是在內部都可以,內外走線都是需要打孔的。只要表層信號緊臨地平面就不用怕干擾,但要注意外表面空氣介電常數不如隔絕空氣的內部穩定,在一些濕度,溫差大的地方的設備最好走內部,外部走地層,不過這樣成本高。

  2、目的是滿足建立保持時間,同頻同相,采樣正確。SDram是公共時鍾模式,只關心建立時間,不關心保持時間。這些時間和各段飛行時間,經過個門電路延時,clock skew,jitter,cycle等有關,需要按照公式精確計算。算出各種參數后下規則,讓EDA軟件輔助設計。選出最長的一根線,不需要計算什么,只要與之等長即可。有些軟件能自己算,有些只能自己一段段計算,可以編程讓EXCEL表格對某種格式的報告文件自動求和,也算半自動了。應該不是很准。

 
 
二.
很多人對內存布線感到迷茫,找不到切入點,不知如何下手,其實高速硬件設計的主要任務就是與干擾做斗爭,內存布線也不例外。可以這樣考慮:內存是做什么用的呢?是用來存儲數據的,寫入1讀出1,寫入0讀出0,即保證數據訪問正確。那么,在什么情況會導致數據訪問錯誤呢?
    1
、判決錯誤,0判成11判成0。可能參考電平不准(為什么不准?信號線內阻造成的壓降),也可能是加性干擾,或者阻抗不匹配引起信號畸變。
    2
、時序錯誤,不滿足建立/保持時間,或者采樣點相位錯誤,不在有效信號位置上。觸發器需要維持一段時間的能量供給才能正常工作,這個時間就是建立/保持時間。

那么只要解決好這兩個問題,保證內存正確訪問,你的內存電路就設計成功了。
有了這個指導思想,內存布線就可以按部就班地完成。不過,不同的RAM類型,雖然目標都是避免判決和時序錯誤,但實現方法因工作模式不同而有較大差異。
高速系統一般采用低壓信號,電壓低,擺幅小,容易提高速度,降低功耗,但這給布線帶來了困難,因為低壓信號功率受信號線內阻影響大,是電壓平方關系,所以要盡量減少內阻,比如使用電平面,多打孔,縮短走線距離,高壓傳輸在終點用電阻分壓出較低電壓的信號等。SDRAMDDR-IDDR-IIDDR-III信號電壓一個比一個低,越來越不容易做穩定。
電源供給也要注意,如果能量供給不足,內存不會穩定工作。
下面先介紹一下時鍾同步電路的類型,然后分析具體芯片的類型。
源同步就是指時鍾選通信號clk伴隨發送數據一起由驅動芯片發送。公共時鍾同步是指在數據的傳輸過程中,總線上的驅動端和接收端共享同一個時鍾源,在同一個時鍾緩沖器(clock buffer)發出同相時鍾的作用下,完成數據的發送和接收。
公共時鍾同步,將同一個時鍾信號用時鍾分配器分成2路,一路接發送器,一路接接收器。在時鍾上升沿發送數據,在下一個周期的上升沿采樣接收。速率在200-300MHZ以下。
源同步是時鍾和數據一起發送,時鍾稍稍滯后發送,傳輸速率主要由數據和時鍾信號間的時差決定。因此速率快。
公共時鍾同步電路走線長度有最大值len <=,源同步電路走線長度有最小值<= len <=

    
經常看到等長布線,其實,等長不是目的,真正的目的是滿足建立保持時間,同頻同相,采樣正確。等長只不過可以最簡單地實現這個目的罷了。要定量分析線長,必須按照時鍾模型公式計算。時鍾同步電路的類型在后面有簡單介紹,這里只要知道SDRAM是公共時鍾同步,DDR是源同步就可以了。

    SDRAM
是公共時鍾同步模式,只關心建立時間,不關心保持時間。這些時間和各段飛行時間,經過各個門電路延時,clock skewjittercycle等有關,需要按照公式精確計算。算出各種參數后下規則,讓EDA軟件輔助設計。選出最長的一根線,不需要計算什么,只要與之等長即可。有些軟件能自己算,有些只能自己一段段計算,可以編程讓EXCEL表格對某種格式的報告文件自動求和,也算半自動化了。

    DDR
的所有信號都要加匹配,不論多復雜,為了穩定性。始端匹配串接一個22/33歐電阻即可,終端匹配分為AC匹配和DC匹配,阻容可以對噪點抑制,戴維寧電路可以提供高壓輸電,使參考電平更准確,雖然直流功耗大,但比單個50歐功耗小。
    CPU
DDR都是高速器件,DDR熱量高,應遠離。而且DDR是源同步時鍾模式,對保持時間有要求,不是線越短越好,有最小距離要求。保證時鍾穩定,同頻同相,冗余大即可。

有時,信號線有交叉的情況,此時,可以在PCB里調線,再反標回去,因為RAM的各個數據線不需要一一對應,只要有地方存儲bit就可以了。注意:刷新線A10不能調,需要讀取RAM ID時也不能調整。
評價設計的好壞要看Margin(冗余)setup time marginhold time marginSDRAM/DDR工作沒問題並不意味着margin小,也許在實驗室可以正常工作,可一到現場就死機。頻率漂移,時鍾抖動,相差,介電常數變化等都會導致采樣錯誤/不滿足建立保持時間,而margin大就可以盡量抵抗這些干擾,在一個惡劣的環境里仍然保持穩定。

    2410
使用64M字節的SDRAM擴展數據存儲區,由兩片K4S561632組成工作在32位模式下,最高頻率可達100M以上,對於SDRAM的數據線、時鍾線、片選及其它控制信號需要進行線長匹配,由此提出以下布線要求:
1 SDRAM時鍾信號:時鍾信號頻率較高,為避免傳輸線效應,按照工作頻率達到或超過75MHz時布線長度應在1000mil以內的原則及為避免與相鄰信號產生串擾,走線長度不超過1000mil,線寬10mil,內部間距5mil,外部間距30mil,要求差分布線,精確匹配差分對走線,誤差允許在20mil以內。
2
地址、片選及其它控制信號:線寬5mil,外部間距12mil,內部間距10mil,盡量走成菊花鏈拓補,可有效控制高次諧波干擾,可比時鍾線長,但不能短。
3 SDRAM數據線:線寬5mil,內部間距5mil,外部間距8mil,盡量在同一層布線,數據線與時鍾線的線長差控制在50mil內。
4.在重要的控制信號線上一搬串聯33的電阻,消除干擾。
 
嵌入式系統使用64M字節的SDRAM擴展數據存儲區,由兩片K4S561632組成工作在32位模式下。最高頻率可達100M以上,對於SDRAM的數據線、時鍾線、片選及其它控制信號需要進行線長匹配,由此提出以下布線要求:
  • SDRAM時鍾信號:時鍾信號頻率較高,為避免傳輸線效應,按照工作頻率達到或超過75MHz時布線長度應在1000mil以內的原則及為避免與相鄰信號產生串擾。走線長度不超過1000mil,線寬10mil,內部間距5mil,外部間距30mil,要求差分布線,精確匹配差分對走線。誤差允許在20mil以內。
    因為表層介電常數低,適合布高速信號,但是因為一側是空氣,存在電磁輻射,屏蔽效果差,因此不能布電磁輻射強的信號,如時鍾信號。
  • 地址,片選及其它控制信號:線寬5mil,外部間距12mil,內部間距10mil。盡量走成菊花鏈拓補。可有效控制高次諧波干擾,可比時鍾線長,但不能短。
  • SDRAM數據線:線寬5mil,內部間距5mil,外部間距8mil,盡量在同一層布線,數據線與時鍾線的線長差控制在50mil內。(SDRAM布線中,SDCLKDATA的長度相差<=800mil
        
    根據布線要求,在Allegro中設置不同的約束:針對線寬設置個約束SDRAM_CLKSDRAM_ADDDRSDRAM_DATA,設置完約束后將約束添加到對應的net上。使得各個net都具有線寬、線距約束屬性。最后為不同的信號組選擇合適的約束即可。但是設置的約束在系統CPU內部是無法達到的。因為EP9315BGA封裝。pin間距1.27毫米,顯然在CPU內部,線寬線距無法達到上述要求,利用Allegro設置CPU特殊走線區域cpu_area。並加上area屬性,在此區域中另設置適合BGA內部走線的約束。
 
下面簡單說下內外層布線的特點:
(1)表層(TOP和BOTTOM層)布線

分析一下表層布線的環境,線的一側是介質,一側是空氣(忽略阻焊油漆),等效介電常數小於中間層,傳輸線延時較小,這個特點決定了表層走線可以有更快的信號傳輸速度,因此可以利用表層布信號速度很快的信號,如2.5GHz或3.125GHz,布高速信號時盡量不要打孔,如果實在需要打孔,從TOP打孔換層到BOTTOM,或者從BOTTOM打孔換層到TOP,也不存在過孔的stub效應,這個特點也是內層布線所不具備的優勢。但表層布線不是完美無缺的,由於走線一側是空氣,所以存在電磁輻射效應,因此不能布時鍾等強輻射信號。
 
(2)內層布線
內層布線的優勢是可以很好的利用參考平面實現屏蔽效果,可以很好地控制阻抗,由於內層沒有表層的SMD器件焊盤,所以布線空間比表層更大,布線特別是布總線更容易。但內層布線由於兩側都是介質,等效介電常數比表層更大,所以傳輸延時較大,另外內層布線時換層會存在過孔stub效應,過孔stub一來會加大傳輸線延時,另外一方面會使傳輸線阻抗不夠連續。

在現實環境中,由於內層有更大的布線空間,盡管存在延時較大等不足,我們還是傾向於把更多的線布在內層,至少在1GHz以下是不會有太大影響的。
 
 SDRAM,133MHz的應該沒有什么大關系的,不過還是要做一下的。
差分時鍾控制在+-50mil以下,嚴格的差分走線;
控制信以及地址線要和時鍾線等長,線長不超過+-100mil.
至於數據線,沒有必要和時鍾線,地址線以及控制線等長。
每8個bit也就是一個Byte及其對應的DQSDQM為一組。以32位DDR2為例:其實一共可以分為五個組來控制走線長度:第一組:時鍾以及控制線,地址線,所有的走線等長,誤差在+-100mil之間,時鍾要求更高,該組走線長度不宜短於數據線長度。第二組:Byte0D0-D7)以及DQS0,DQM0為一組,要求等長,誤差在+-100mil之間,可適當放寬。第三組:Byte1 (D8-D15)以及DQS1,DQM1為一組,要求等長,誤差在+-100mil之間,可適當放寬。第四組:Byte2D16-D23)以及DQS2,DQM2為一組,要求等長,誤差在+-100mil之間,可適當放寬。第五組:Byte3D24-D32)以及DQS3,DQM3為一組,要求等長,誤差在+-100mil之間,可適當放寬,如果用Allegro來做的話,可以很方便的利用Net,Xnet等辦法來設置等長。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM