|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ecos应用是与硬件平台无关的,虽然开发板没有涉及到SDRAM和DDR,不过,在某些高端平台上使用ecos可能会遇到内存布线问题,为了完整叙述,这里一并给出说明。9 n2 q3 a* B- _, Z! Y. B* N4 p
4 @4 Z$ Y& o& G- G 很多人对内存布线感到迷茫,找不到切入点,不知如何下手,其实高速硬件设计的主要任务就是与干扰做斗争,内存布线也不例外。可以这样考虑:内存是做什么用的呢?是用来存储数据的,写入1读出1,写入0读出0,即保证数据访问正确。那么,在什么情况会导致数据访问错误呢?/ W0 N- }! N, [- M8 Z' K! o
1、判决错误,0判成1,1判成0。可能参考电平不准(为什么不准?信号线内阻造成的压降),也可能是加性干扰,或者阻抗不匹配引起信号畸变。
; I c) Q6 @8 o6 Q% }. Z: \. X 2、时序错误,不满足建立/保持时间,或者采样点相位错误,不在有效信号位置上。触发器需要维持一段时间的能量供给才能正常工作,这个时间就是建立/保持时间。
5 X& v, E6 S" u& `8 K 那么只要解决好这两个问题,保证内存正确访问,你的内存电路就设计成功了。
$ \1 k, Y8 m! ~3 B! y* k+ P
# y- ^2 i! S f6 a' z( H% K+ n* ? 有了这个指导思想,内存布线就可以按部就班地完成。不过,不同的RAM类型,虽然目标都是避免判决和时序错误,但实现方法因工作模式不同而有较大差异。/ E& P* L: ~' N
/ o* Z/ W% L. g- m" J 高速系统一般采用低压信号,电压低,摆幅小,容易提高速度,降低功耗,但这给布线带来了困难,因为低压信号功率受信号线内阻影响大,是电压平方关系,所以要尽量减少内阻,比如使用电平面,多打孔,缩短走线距离,高压传输在终点用电阻分压出较低电压的信号等。SDRAM、DDR-I、DDR-II、 DDR-III信号电压一个比一个低,越来越不容易做稳定。
$ o3 H) S/ p. h6 q, V 9 P$ o* ~! f3 j' A# j. E% e6 L
电源供给也要注意,如果能量供给不足,内存不会稳定工作。1 f- [8 y+ M3 x' H* A
( y) m1 h! L# ` b0 A
经常看到“等长布线”,其实,等长不是目的,真正的目的是满足建立保持时间,同频同相,采样正确。等长只不过可以最简单地实现这个目的罢了。要定量分析线长,必须按照时钟模型公式计算。时钟同步电路的类型在后面有简单介绍,这里只要知道SDRAM是公共时钟同步,DDR是源同步就可以了。
) x7 Y) L% I; o: J" [3 m: A
# q6 m5 x* g) c% U/ q7 C SDRAM是公共时钟同步模式,只关心建立时间,不关心保持时间。这些时间和各段飞行时间,经过各个门电路延时,clock skew,jitter,cycle等有关,需要按照公式精确计算。算出各种参数后下规则,让EDA软件辅助设计。选出最长的一根线,不需要计算什么,只要与之等长即可。有些软件能自己算,有些只能自己一段段计算,可以编程让EXCEL表格对某种格式的报告文件自动求和,也算半自动化了。
' H4 ~- T% n; p' I8 `0 }! ~, f1 q n B1 `! B# {
DDR的所有信号都要加匹配,不论多复杂,为了稳定性。
% T* W* E, _9 _ 始端匹配串接一个22/33欧电阻即可,终端匹配分为AC匹配和DC匹配,阻容可以对噪点抑制,戴维宁电路可以提供高压输电,使参考电平更准确,虽然直流功耗大,但比单个50欧功耗小。
" \% Y* Y2 ~5 @0 o+ J CPU和DDR都是高速器件,DDR热量高,应远离。而且DDR是源同步时钟模式,对保持时间有要求,不是线越短越好,有最小距离要求。保证时钟稳定,同频同相,冗余大即可。
4 h3 q4 |" |! R0 w. g0 W# @ z . `: t) b9 N, C) N
有时,信号线有交叉的情况,此时,可以在PCB里调线,再反标回去,因为RAM的各个数据线不需要一一对应,只要有地方存储bit就可以了。注意:刷新线A10不能调,需要读取RAM ID时也不能调整。
U! m# G# h. O' `6 L/ j6 A & R u5 ^2 t" H/ R$ E- H
评价设计的好坏要看Margin(冗余),setup time margin和hold time margin,SDRAM/DDR工作没问题并不意味着margin小,也许在实验室可以正常工作,可一到现场就死机。频率漂移,时钟抖动,相差,介电常数变化等都会导致采样错误/不满足建立保持时间,而margin大就可以尽量抵抗这些干扰,在一个恶劣的环境里仍然保持稳定。
( |6 D; N, Q, C! o/ R# g
. D1 v+ c2 e& ]7 z% l 内存的表现形式有两种:内存颗粒和内存条。内存条自身有走线长度,需要计算在内。问个问题:内存条有3种安装方式:竖插、斜插、平插,你认为那种方式好呢?9 e. j* b4 r4 k! w" A( o
" M8 I0 @8 j, n2 j6 E- u$ q: {2 D附:时钟同步电路的类型8 {% ]" n1 T+ G: i! q2 q( ^" a
N. A& @) w, a+ Q' y2 B5 q
( i5 h4 m8 ]+ m$ p7 T
源同步就是指时钟选通信号clk伴随发送数据一起由驱动芯片发送。公共时钟同步是指在数据的传输过程中,总线上的驱动端和接收端共享同一个时钟源,在同一个时钟缓冲器(clock buffer)发出同相时钟的作用下,完成数据的发送和接收。7 ]9 l Z7 [/ {# K$ ]
+ G" J, K6 R; S# }: O t$ P
公共时钟同步,将同一个时钟信号用时钟分配器分成2路,一路接发送器,一路接接收器。在时钟上升沿发送数据,在下一个周期的上升沿采样接收。速率在200-300MHZ以下。
0 J; f+ b# P) ` 源同步是时钟和数据一起发送,时钟稍稍滞后发送,传输速率主要由数据和时钟信号间的时差决定。因此速率快。
0 v9 ]% x2 N% p0 S. G% K4 m 公共时钟同步电路走线长度有最大值len <=,源同步电路走线长度有最小值<= len <=
" v* o7 v( e" m% y1 v 源同步关心保持时间,TBI+10bit数据和DDR的DQS+DATA属于源同步电路。3 P3 K' B' p. O6 O5 j9 w4 }
5 C3 w& H9 ~: p* E1 d ------ 等长线9 O |- [0 O @- L L0 s2 r: G+ H0 J" O
|时钟|----------------->发送端时钟 y; j; ^4 C+ C/ b
clk--->|驱动|----------------->接收端时钟
( p: I% [% z% F3 J, { |8 u | |---
, H3 l* H$ J( n ------ |
2 S6 p B( u" i0 _% O3 i+ D* m | |9 q' A5 w y2 G7 A! q1 O
---<---PLL补偿
5 L0 T8 ]- @6 c4 p" p, @2 [ 公共时钟同步
0 J( y+ @5 ]' {5 _8 V+ B3 t- j7 O3 w! b; W$ Z
-----1 v9 q0 B, Z& L9 p% Y6 k5 }
|驱 |------------------>clk- {4 d0 q; y* _$ ?; B
|动 |
2 @9 q, x7 ]. L) i/ T6 P8 {! ]6 s | |================>data
6 ]8 f6 p6 l( Z7 p -----
: I) ?7 v, W5 U9 T) c 源同步1 \. H! `* J8 T: o; [! q
& E! `4 T! K7 x+ d! L R
% l+ z* H% @1 |8 k
--------- ---------" c- ~6 _& p# z6 |6 F8 R3 h8 `( f& u
-----< >< >--------
, |. j! W9 ^5 A% }1 a6 s/ @6 y --------- ---------
2 m) x4 o$ W% C0 K4 c" p' _$ p -----------/ R& M& z; l/ M$ h5 m
| |
9 V% H: I2 e) R& l1 y --------- -----------
/ V9 O1 i* I+ {4 G8 D4 r7 h |<--->|<-->|
* x- V9 e* \% Y 建立 保持 |
评分
-
查看全部评分
|