|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
SDRAM中的信号都是以时钟为参考的,等长的关系三言两语讲不清楚,说一下最复杂的数据线的等长,
* Y* Q3 Z' Y+ U" p6 N地址线和控制线因为是单向的,比数据线的等长简单,以9260外频100M为例。 7 T1 _4 B) C$ @1 i. ~/ }4 b% F
6 u8 z0 @0 Z* t5 ]
对于9260,从手册中可以看到,
* h3 D; K; c* O2 N, V( E0 [6 e# q1 oSDRAMC19 D0-D15 in Setup before SDCK Rising Edge 0.2 ns
9 r5 F- @$ v/ @2 I3 _4 H9 E. L) W" CSDRAMC20 D0-D15 in Hold after SDCK Rising Edge 1.1 ns
t5 Y& [0 x+ c$ PSDRAMC21 D16-D31 in Setup before SDCK Rising Edge 0 ns 3 H. k( Q3 w' C: |* P# `( K
SDRAMC22 D16-D31 in Hold after SDCK Rising Edge 1.2 ns
* k% q; G# t7 D' y8 P, V; F6 k9 D6 ]3 W9 a) w
这里去掉了1.8V的数据。 5 Z2 O: [4 W7 q2 v J
对每个方向分别作分析,首先看9260输入/SDRAM输出,这里以MT48LC16M16A2的数据手册作为参考,
2 n! _* D6 ]' p" kHY57V561620可能更常用,但是其数据手册没有时序图。 , j1 a3 |) J+ g B! M
MT48LC16M16A2-75在100M下CL设为2。
5 a8 r+ Z6 X7 N
! t# J/ u/ K! lAccess time from CLK (pos.edge) CL = 2 tAC(2) 6 ns
6 S" X& E3 l% j' \! ]Data-out hold time (load) tOH 3 ns $ u0 G! U/ U" q! j% Z; v' B
0 m" U+ q* b9 e: @) p实际上上面的数据也就是说相对于SDRAM的时钟上升沿,数据输出保持时间是3ns,数据建立时间是(10-6)=4ns,
1 t2 q ?' A8 |: f# F3 X6 a0 D. ]100M的周期是10ns。
. P( y: D( ?, O* p H; h从9260给出时钟信号上升沿到数据出现在9260的引脚上,由于走线会有一定延时,使得SDRAM的输出时序在9260 8 k, L! o) e; b# y [- x
看来,建立时间和保持时间的(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA)),Tpd(CLK)是时钟线走线延迟, , x& Q# }2 Y6 E
也就是从从9260给出时钟上升沿到SDRAM收到时钟上升沿的时间是,Tpd(DATA)是数据线走线延迟,
* Z: `4 s$ u; f数据从SDRAM发出到9260收到的延迟。
7 X: O% r" T; h" X- d; ]) }4 V设1英寸走线的延迟时间是150ps,数据线的走线是2英寸,时钟线和数据线一样长,也是2英寸,可以计算出建立时间
' u4 V6 N- T+ C: D7 B$ x和上升时间的裕量,也就是从9260的引脚上看到的实际的数据的建立时间和保持时间分别减去9260要求的数据
1 k5 X& V; _0 h建立时间和保持时间。前面的建立时间和保持时间分别是3.7ns和3.3ns,裕量分别有(对应D0-D15)3.5ns和2.2ns。 |( O' A! f: v
为了将时钟上升沿放在数据的中心,数据线需要比时钟线长,改变时钟线和数据线的长度会影响前面的上升时间和保持时间
# j/ m4 k$ r8 [7 o+ c8 v' S) c(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA))。实际的长度要求可以用时序裕量除以单位长度的走线延迟
$ o' `. y3 C8 B8 L得到,每英寸的走线的延迟时间在一百多ps。
/ d# [* C. S% S9 R- F: Q9 E1 j) i! U3 r1 \' F0 ]
对于9260输出数据,SDRAM输入数据,参数如下:
, a7 d: X/ }5 p; rSDRAMC25 D0-D15 Out Valid before SDCK Rising Edge 4.2 ns
% I) V; h% Z- \8 _# p- ESDRAMC26 D0-D15 Out Valid after SDCK Rising Edge 5.9 ns
1 g" x0 L# Q3 x* A% \, v/ v! O4 ~SDRAMC27 D16-D31 Out Valid before SDCK Rising Edge 3.1 ns
' t# b1 v4 v' Y8 {! Z! H. k- BSDRAMC28 D16-D31 Out Valid after SDCK Rising Edge 6.4 ns
) e) }6 t3 g E# c2 T. H1 @
5 y" r) H; p4 F) r$ L+ F2 xData-in hold time tDH 0.8 ns
- D1 G4 O C9 \% o. M) fData-in setup time tDS 1.5 ns
' _ m4 o, H# h, M$ w7 ]3 |! [6 u) \4 H5 w+ P
对于SDRAM,其引脚上看到的数据的建立时间和保持时间分别是(4.2ns+Tpd(CLK)-Tpd(DATA))/(5.9ns-Tpd(CLK)+Tpd(DATA)) 8 q: g. g6 q4 ?9 a4 S
走线长度同上,则SDRAM的建立时间和保持时序裕量分别为2.7ns/5.1ns。 3 ^; \+ P1 _8 ^( q# I
$ N! t: a1 R! B2 l& [, I9260输入数据的时序裕量比输出数据的时序裕量总体上来说要小,上面的计算只是理想情况下的计算,
! q5 H0 `% w* e2 M( t3 k实际上影响数据时序裕量的因素有很大分布参数,如时钟的抖动,数据的抖动,手册中给出的参数中都是最小值,
$ ]2 [# j8 _( v7 z* Q+ X可以认为包括了数据的抖动(我是这样想的)。建立时间和保持时间的时序裕量都需要减去时钟的抖动值。
& }. C9 p0 V; ]2 U另外的一些分布参数包括负载电容、串扰、电源等,都会减小信号的时序裕量。 K# P8 q4 O7 _! U# f( D( r
: G% w% P6 x% q对于地址线和控制线,手册中有相应的参数,和9260输出数据、SDRAM输入数据的情况是一样的。
* J3 l) a a; {; n9260的时序还算相对宽松的,POWER PC的处理器要求的时序裕量比9260要大,计算下来不到一个纳秒。
8 d4 n7 Z: P/ [, h, H从上面的计算上来看,就算减掉部分分布参数带来的时序裕量的减小,也还允许若干英寸的长度不匹配。
3 b! X% h! G' n3 Z
H( U8 x& ^" T走线等长所需要做的就是保证上述时序裕量为正值,地址线和控制线的与时钟线的相对长度都通过时序裕量换算得到。 ; N0 x* S- S1 `1 o& ]3 [$ B
5 ~% q) j& ], X' Q5 G先写这么些,有错误请指出。 |
评分
-
查看全部评分
|