|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
作者:xiaoerge 5 n0 r5 X$ ]6 b/ C+ H. j0 U
6 j0 V% m" K# h0 }- O" mSDRAM中的信号都是以时钟为参考的,等长的关系三言两语讲不清楚,说一下最复杂的数据线的等长, 6 J- g8 X/ a3 @) J1 x4 q$ Y* J3 M4 P
地址线和控制线因为是单向的,比数据线的等长简单,以9260外频100M为例。 1 K0 `' X E+ g. {* p+ i' ]
6 h0 f1 w7 V8 h. g对于9260,从手册中可以看到,
. ~+ r. }5 O. J, ~0 m0 `SDRAMC19 D0-D15 in Setup before SDCK Rising Edge 0.2 ns
q* i, L/ Y7 fSDRAMC20 D0-D15 in Hold after SDCK Rising Edge 1.1 ns
+ \. R# ^' |4 C# E; eSDRAMC21 D16-D31 in Setup before SDCK Rising Edge 0 ns & n+ a ]7 b& x- Z# N
SDRAMC22 D16-D31 in Hold after SDCK Rising Edge 1.2 ns ; W9 X* X% Z- D( X" t& ~# c
9 }$ B& K: e* E" ]% T$ z: W' b
这里去掉了1.8V的数据。
# e) v. [1 ^. [2 h! _2 p对每个方向分别作分析,首先看9260输入/SDRAM输出,这里以MT48LC16M16A2的数据手册作为参考, ! K ^8 K, V8 R7 [
HY57V561620可能更常用,但是其数据手册没有时序图。
2 j+ ^ }& U: p# c+ [6 NMT48LC16M16A2-75在100M下CL设为2。
) b- G3 e' F: @. _! J* d+ }1 d% ^( |; p
Access time from CLK (pos.edge) CL = 2 tAC(2) 6 ns 6 w+ Q! w# o, y" o& p7 W% |4 E3 e& p
Data-out hold time (load) tOH 3 ns
: [) L5 d' }" S+ D7 \
) S: n) \- n$ y0 G7 m+ K( N实际上上面的数据也就是说相对于SDRAM的时钟上升沿,数据输出保持时间是3ns,数据建立时间是(10-6)=4ns, $ `( @6 W7 G' q" ?/ N/ L
100M的周期是10ns。 " `% f O2 }6 B( r4 [ i9 w2 w6 R
从9260给出时钟信号上升沿到数据出现在9260的引脚上,由于走线会有一定延时,使得SDRAM的输出时序在9260 9 T4 ~) S* E; s8 D0 D6 |
看来,建立时间和保持时间的(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA)),Tpd(CLK)是时钟线走线延迟, ( q0 S3 I6 x8 M: c
也就是从从9260给出时钟上升沿到SDRAM收到时钟上升沿的时间是,Tpd(DATA)是数据线走线延迟,
' i. m' Q6 |1 ]数据从SDRAM发出到9260收到的延迟。 ) L8 \+ N2 @+ p! W$ C# c
设1英寸走线的延迟时间是150ps,数据线的走线是2英寸,时钟线和数据线一样长,也是2英寸,可以计算出建立时间 # p0 V; _5 F- Y8 F: Q# U8 n
和上升时间的裕量,也就是从9260的引脚上看到的实际的数据的建立时间和保持时间分别减去9260要求的数据 9 X( i7 @1 j6 |4 y n1 x" e3 E- A0 F
建立时间和保持时间。前面的建立时间和保持时间分别是3.7ns和3.3ns,裕量分别有(对应D0-D15)3.5ns和2.2ns。 8 J6 D6 v$ r) k) @0 l8 v
为了将时钟上升沿放在数据的中心,数据线需要比时钟线长,改变时钟线和数据线的长度会影响前面的上升时间和保持时间
7 Q8 J: D7 o, ]2 F(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA))。实际的长度要求可以用时序裕量除以单位长度的走线延迟 . b8 w" N6 ]: u, o/ t, V% L
得到,每英寸的走线的延迟时间在一百多ps。
1 P* [! b7 _# X
[ {: I+ s# F B对于9260输出数据,SDRAM输入数据,参数如下:
7 b" }6 ?5 P* F4 gSDRAMC25 D0-D15 Out Valid before SDCK Rising Edge 4.2 ns 2 ?- W1 b' r( X( x0 s8 T4 W5 d
SDRAMC26 D0-D15 Out Valid after SDCK Rising Edge 5.9 ns 0 J7 B2 b& Z: C3 y8 v
SDRAMC27 D16-D31 Out Valid before SDCK Rising Edge 3.1 ns 8 z) |" H$ N+ {5 e
SDRAMC28 D16-D31 Out Valid after SDCK Rising Edge 6.4 ns 0 f9 O9 C! y- M
0 N. Y6 _5 J( ?4 J. ?2 o& k
Data-in hold time tDH 0.8 ns
3 e3 L g- ?4 BData-in setup time tDS 1.5 ns
1 j+ o/ P6 c4 Q& h l" S- x( F$ n: P$ W' ~! K- f5 }3 \
对于SDRAM,其引脚上看到的数据的建立时间和保持时间分别是(4.2ns+Tpd(CLK)-Tpd(DATA))/(5.9ns-Tpd(CLK)+Tpd(DATA))
- G) d n' Z7 _4 y/ B7 i* ~走线长度同上,则SDRAM的建立时间和保持时序裕量分别为2.7ns/5.1ns。 - z& y% H; E: c: B$ h3 l
" b0 ~$ n; Z2 S7 p+ c# D9260输入数据的时序裕量比输出数据的时序裕量总体上来说要小,上面的计算只是理想情况下的计算, ( _5 B" K! a! _2 s. Q2 H S1 J
实际上影响数据时序裕量的因素有很大分布参数,如时钟的抖动,数据的抖动,手册中给出的参数中都是最小值, 6 z8 G y; _1 j U6 C# M& M2 P
可以认为包括了数据的抖动(我是这样想的)。建立时间和保持时间的时序裕量都需要减去时钟的抖动值。
+ V0 ?; n3 E- M) b0 Y: G另外的一些分布参数包括负载电容、串扰、电源等,都会减小信号的时序裕量。
$ p5 @9 o) L7 N9 k& h
1 {" S. F1 `5 D" T+ D8 T对于地址线和控制线,手册中有相应的参数,和9260输出数据、SDRAM输入数据的情况是一样的。 5 G& w8 }) W" x3 ^; r
9260的时序还算相对宽松的,POWER PC的处理器要求的时序裕量比9260要大,计算下来不到一个纳秒。
$ F2 z6 b7 P- z& n" W/ v从上面的计算上来看,就算减掉部分分布参数带来的时序裕量的减小,也还允许若干英寸的长度不匹配。 4 u. o4 Y q, V! D) L! B
8 F2 Y( l2 F0 I6 a走线等长所需要做的就是保证上述时序裕量为正值,地址线和控制线的与时钟线的相对长度都通过时序裕量换算得到。 , L0 T8 _& w% z2 U( b9 q
! j4 M0 V* r- s7 S% l$ g( [先写这么些,有错误请指出。 |
评分
-
查看全部评分
|