|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ecos应用是与硬件平台无关的,虽然开发板没有涉及到SDRAM和DDR,不过,在某些高端平台上使用ecos可能会遇到内存布线问题,为了完整叙述,这里一并给出说明。2 E/ p2 i$ D; ` K7 X4 Q7 @4 d
% u* z9 A0 M: e# E2 ^4 B$ V+ m 很多人对内存布线感到迷茫,找不到切入点,不知如何下手,其实高速硬件设计的主要任务就是与干扰做斗争,内存布线也不例外。可以这样考虑:内存是做什么用的呢?是用来存储数据的,写入1读出1,写入0读出0,即保证数据访问正确。那么,在什么情况会导致数据访问错误呢?9 \: g$ }- G/ D; M/ f0 `& f6 I# p* E
1、判决错误,0判成1,1判成0。可能参考电平不准(为什么不准?信号线内阻造成的压降),也可能是加性干扰,或者阻抗不匹配引起信号畸变。
6 |( X' W; u3 i 2、时序错误,不满足建立/保持时间,或者采样点相位错误,不在有效信号位置上。触发器需要维持一段时间的能量供给才能正常工作,这个时间就是建立/保持时间。# @+ \+ C9 N/ B# u! }
那么只要解决好这两个问题,保证内存正确访问,你的内存电路就设计成功了。6 P. x/ A( O" B6 J. }
8 Y' G: b9 z( J0 d# F+ H0 J3 C+ v! F 有了这个指导思想,内存布线就可以按部就班地完成。不过,不同的RAM类型,虽然目标都是避免判决和时序错误,但实现方法因工作模式不同而有较大差异。
1 _6 \" Y4 z( `+ w' e1 u( ~2 X . x7 H! @, S- R% \
高速系统一般采用低压信号,电压低,摆幅小,容易提高速度,降低功耗,但这给布线带来了困难,因为低压信号功率受信号线内阻影响大,是电压平方关系,所以要尽量减少内阻,比如使用电平面,多打孔,缩短走线距离,高压传输在终点用电阻分压出较低电压的信号等。SDRAM、DDR-I、DDR-II、 DDR-III信号电压一个比一个低,越来越不容易做稳定。1 V9 {% [1 u, y* L8 x0 J. r- [
& @3 A: g( z- D& @% J- y& K 电源供给也要注意,如果能量供给不足,内存不会稳定工作。# `1 G6 ^0 l0 \3 f( l
: u' m$ i: k) G. h' a& `! z
经常看到“等长布线”,其实,等长不是目的,真正的目的是满足建立保持时间,同频同相,采样正确。等长只不过可以最简单地实现这个目的罢了。要定量分析线长,必须按照时钟模型公式计算。时钟同步电路的类型在后面有简单介绍,这里只要知道SDRAM是公共时钟同步,DDR是源同步就可以了。
) [) [- K4 L' |4 o+ p
* P. }! L# X0 U SDRAM是公共时钟同步模式,只关心建立时间,不关心保持时间。这些时间和各段飞行时间,经过各个门电路延时,clock skew,jitter,cycle等有关,需要按照公式精确计算。算出各种参数后下规则,让EDA软件辅助设计。选出最长的一根线,不需要计算什么,只要与之等长即可。有些软件能自己算,有些只能自己一段段计算,可以编程让EXCEL表格对某种格式的报告文件自动求和,也算半自动化了。
/ [# X3 Z- H' J- c5 }
! t3 u I9 w j+ ? DDR的所有信号都要加匹配,不论多复杂,为了稳定性。8 z1 E$ t1 N+ J4 a
始端匹配串接一个22/33欧电阻即可,终端匹配分为AC匹配和DC匹配,阻容可以对噪点抑制,戴维宁电路可以提供高压输电,使参考电平更准确,虽然直流功耗大,但比单个50欧功耗小。. i+ |3 m! E& v! p
CPU和DDR都是高速器件,DDR热量高,应远离。而且DDR是源同步时钟模式,对保持时间有要求,不是线越短越好,有最小距离要求。保证时钟稳定,同频同相,冗余大即可。
$ K" n% m8 L" Y0 H 6 v% H9 r5 m7 n# F9 G+ \% T- z3 E
有时,信号线有交叉的情况,此时,可以在PCB里调线,再反标回去,因为RAM的各个数据线不需要一一对应,只要有地方存储bit就可以了。注意:刷新线A10不能调,需要读取RAM ID时也不能调整。: @( P5 D9 S* a; u% W N) F
' O |4 q/ Q8 E/ E: h6 p
评价设计的好坏要看Margin(冗余),setup time margin和hold time margin,SDRAM/DDR工作没问题并不意味着margin小,也许在实验室可以正常工作,可一到现场就死机。频率漂移,时钟抖动,相差,介电常数变化等都会导致采样错误/不满足建立保持时间,而margin大就可以尽量抵抗这些干扰,在一个恶劣的环境里仍然保持稳定。
9 d4 H* G7 ]8 V5 I0 M
! I4 I1 P% e& W5 |. k$ B8 l* ^ 内存的表现形式有两种:内存颗粒和内存条。内存条自身有走线长度,需要计算在内。问个问题:内存条有3种安装方式:竖插、斜插、平插,你认为那种方式好呢?
3 p0 _! U) d3 f, _4 E
* {5 J+ l' K+ \/ U3 X1 t# q6 ] z3 {附:时钟同步电路的类型7 \" Z* G7 N$ T; `5 W( k
' ^, V- s8 M# E5 P5 S
3 R T* E8 k6 r0 B& g' |2 [( R
源同步就是指时钟选通信号clk伴随发送数据一起由驱动芯片发送。公共时钟同步是指在数据的传输过程中,总线上的驱动端和接收端共享同一个时钟源,在同一个时钟缓冲器(clock buffer)发出同相时钟的作用下,完成数据的发送和接收。
! @6 t. r! b9 L- X6 `8 z% |! o) q! l l0 V
公共时钟同步,将同一个时钟信号用时钟分配器分成2路,一路接发送器,一路接接收器。在时钟上升沿发送数据,在下一个周期的上升沿采样接收。速率在200-300MHZ以下。
! s% ?" ]1 e i0 k1 t 源同步是时钟和数据一起发送,时钟稍稍滞后发送,传输速率主要由数据和时钟信号间的时差决定。因此速率快。
" q, G6 J9 l" I, W 公共时钟同步电路走线长度有最大值len <=,源同步电路走线长度有最小值<= len <=
9 d$ ?# i8 e% H6 y5 s 源同步关心保持时间,TBI+10bit数据和DDR的DQS+DATA属于源同步电路。. F: {( I- C. t+ C* N
1 p+ O! l6 ~( O; s4 q3 Y: n ------ 等长线9 G0 i8 e# x& S
|时钟|----------------->发送端时钟 u7 B) B N, ~* y7 r/ `( f+ S
clk--->|驱动|----------------->接收端时钟
; {2 i$ m6 k& r2 F2 B | |---
- O+ @* k9 \! r; I ------ | i3 U* n4 t G/ \# `
| |* m$ Z6 V3 D; h* K+ T
---<---PLL补偿- X9 R' y% j3 Z, X4 O, S
公共时钟同步
# P& k1 w6 F+ Q' U3 F; w
) Y& z' P4 K+ x. l! j -----5 r9 p" p- n2 G3 r6 f6 v0 o
|驱 |------------------>clk
6 v% f$ w; y1 g$ X6 j |动 |
9 Y; K% o$ s/ F/ N& s. K( M ? | |================>data' [0 J' X$ V& ~2 }% I6 [
-----
) l5 ~. l! s; a 源同步3 j. | x# r) F$ A' I( J
- r7 P( F9 T* q: q2 X
4 U X. u3 B4 Z! M3 T
--------- ---------
& c2 C! [8 f$ g5 c: [ -----< >< >--------; R* \7 \3 S1 @; a
--------- ---------) n, I7 }( N# S8 `+ `, r
------------ O7 X4 m) i6 y8 _" V# B! E' t% |3 c
| |4 d4 \4 ^* \6 F$ @1 t
--------- -----------4 J+ B& ?2 M7 Q$ \
|<--->|<-->|; Z8 k+ P3 o+ b4 x* \) R
建立 保持 |
评分
-
查看全部评分
|