|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
SDRAM中的信号都是以时钟为参考的,等长的关系三言两语讲不清楚,说一下最复杂的数据线的等长, : m% w8 x& S1 {3 n
地址线和控制线因为是单向的,比数据线的等长简单,以9260外频100M为例。
4 v( \6 V0 | r& ?) G# y# a2 K, q% ~' t/ v9 I( S: W5 m
对于9260,从手册中可以看到,
' l. _3 K j: s3 z# p) N4 DSDRAMC19 D0-D15 in Setup before SDCK Rising Edge 0.2 ns 9 h! Y0 D: o; M3 q% N
SDRAMC20 D0-D15 in Hold after SDCK Rising Edge 1.1 ns 4 p0 H1 W1 T, j' G- a4 U7 W% e% A
SDRAMC21 D16-D31 in Setup before SDCK Rising Edge 0 ns 9 w# o8 H" H8 y1 h% U, d- [
SDRAMC22 D16-D31 in Hold after SDCK Rising Edge 1.2 ns ( q0 L) L& ^& _. l) l: N( s
2 B9 F p- t5 p) d7 U" W这里去掉了1.8V的数据。
0 p( V) n. |" W7 N/ c8 W' r对每个方向分别作分析,首先看9260输入/SDRAM输出,这里以MT48LC16M16A2的数据手册作为参考,
/ ]2 }, X- i. l& }9 ]) f7 lHY57V561620可能更常用,但是其数据手册没有时序图。
) q7 h$ w1 y E* V# ^. BMT48LC16M16A2-75在100M下CL设为2。
`8 V# ?$ H+ M, K# @5 [3 j- j/ v { r; I; p; Y
Access time from CLK (pos.edge) CL = 2 tAC(2) 6 ns - I6 N' a* O g: g; w3 L
Data-out hold time (load) tOH 3 ns 4 `( H8 D- z/ Q: [
7 h% q% t% T" n% C; J实际上上面的数据也就是说相对于SDRAM的时钟上升沿,数据输出保持时间是3ns,数据建立时间是(10-6)=4ns, 3 ]& D p7 x" u# {/ d: U6 [- Y& m
100M的周期是10ns。 . H& C- N9 \& `* C! w& `( v7 f, B
从9260给出时钟信号上升沿到数据出现在9260的引脚上,由于走线会有一定延时,使得SDRAM的输出时序在9260 ! {# {1 x" W3 j; r8 K, H* O7 f
看来,建立时间和保持时间的(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA)),Tpd(CLK)是时钟线走线延迟,
' _$ @# M6 a% {* v, x: L也就是从从9260给出时钟上升沿到SDRAM收到时钟上升沿的时间是,Tpd(DATA)是数据线走线延迟, # v3 \6 a4 m2 ]% H9 N& M3 c
数据从SDRAM发出到9260收到的延迟。 9 L( e: i4 ~. V& v
设1英寸走线的延迟时间是150ps,数据线的走线是2英寸,时钟线和数据线一样长,也是2英寸,可以计算出建立时间
4 q7 I2 }! M" u4 @- g& C- ]和上升时间的裕量,也就是从9260的引脚上看到的实际的数据的建立时间和保持时间分别减去9260要求的数据 & r6 Q% j" U% y( v/ s: k$ p
建立时间和保持时间。前面的建立时间和保持时间分别是3.7ns和3.3ns,裕量分别有(对应D0-D15)3.5ns和2.2ns。 * P2 b0 q0 q$ y, b! p6 K) M6 ?
为了将时钟上升沿放在数据的中心,数据线需要比时钟线长,改变时钟线和数据线的长度会影响前面的上升时间和保持时间
* t$ m: u3 e. Z+ w6 G Q) Z! m# V(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA))。实际的长度要求可以用时序裕量除以单位长度的走线延迟 ' H6 V6 B8 M8 Q5 Q8 u0 [- I- U' G
得到,每英寸的走线的延迟时间在一百多ps。
3 X: L$ l$ G M2 @8 g5 R0 l4 O8 S" b9 G
对于9260输出数据,SDRAM输入数据,参数如下: , Q' b" \3 z" ^/ _' R
SDRAMC25 D0-D15 Out Valid before SDCK Rising Edge 4.2 ns 7 u- {5 U7 W ~9 p
SDRAMC26 D0-D15 Out Valid after SDCK Rising Edge 5.9 ns % h2 @2 Q' Y, v) G ~. c
SDRAMC27 D16-D31 Out Valid before SDCK Rising Edge 3.1 ns
5 E; F. k9 j% N( ]" \8 N, i5 ?SDRAMC28 D16-D31 Out Valid after SDCK Rising Edge 6.4 ns
2 w# i5 H- M1 }( ~
x7 ~8 U6 V8 G2 D( i! cData-in hold time tDH 0.8 ns & L( L L4 s6 d3 V! i
Data-in setup time tDS 1.5 ns
) Y$ j; z6 e7 r+ x) J3 Z; G; }0 x
6 Z2 R# C% p9 I$ i( {2 w对于SDRAM,其引脚上看到的数据的建立时间和保持时间分别是(4.2ns+Tpd(CLK)-Tpd(DATA))/(5.9ns-Tpd(CLK)+Tpd(DATA)) 4 R8 E: m6 v* x* n+ S7 P$ x3 |, \$ P
走线长度同上,则SDRAM的建立时间和保持时序裕量分别为2.7ns/5.1ns。 $ i& b2 p, v/ g* v* j
% N7 o" g- y# e$ [" }9260输入数据的时序裕量比输出数据的时序裕量总体上来说要小,上面的计算只是理想情况下的计算,
, T* n* t" y; |( |0 k实际上影响数据时序裕量的因素有很大分布参数,如时钟的抖动,数据的抖动,手册中给出的参数中都是最小值,
v5 Q& _1 A' v8 w9 k可以认为包括了数据的抖动(我是这样想的)。建立时间和保持时间的时序裕量都需要减去时钟的抖动值。
8 D+ ]; K5 u8 H! O0 |& g另外的一些分布参数包括负载电容、串扰、电源等,都会减小信号的时序裕量。 % p. S- M: x0 P/ ]1 A
# Q8 C7 d* ^; J3 G对于地址线和控制线,手册中有相应的参数,和9260输出数据、SDRAM输入数据的情况是一样的。
" k+ [1 }+ ]. A* O: ~; } [9260的时序还算相对宽松的,POWER PC的处理器要求的时序裕量比9260要大,计算下来不到一个纳秒。 & P8 R% t- B, u9 _% }( Q% b/ w
从上面的计算上来看,就算减掉部分分布参数带来的时序裕量的减小,也还允许若干英寸的长度不匹配。 & n, W6 m8 y1 t- H+ y6 A+ d
9 F% `) H" I F! ?$ z
走线等长所需要做的就是保证上述时序裕量为正值,地址线和控制线的与时钟线的相对长度都通过时序裕量换算得到。
* c5 B) _- N+ x' Z: O9 M7 p o: w. `3 u$ \5 l. ]' V( y
先写这么些,有错误请指出。 |
评分
-
查看全部评分
|