|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
作者:xiaoerge
" i: h% t# t: y V- U
. W4 ~7 x; d7 hSDRAM中的信号都是以时钟为参考的,等长的关系三言两语讲不清楚,说一下最复杂的数据线的等长, 9 K' C' s8 K& u {
地址线和控制线因为是单向的,比数据线的等长简单,以9260外频100M为例。 - ?$ y4 X# {; |/ |
' }9 l1 Q/ T8 E& A% c对于9260,从手册中可以看到,
9 p7 c% }" D- eSDRAMC19 D0-D15 in Setup before SDCK Rising Edge 0.2 ns
0 C: Q9 K+ |% D5 k \5 r7 C p* FSDRAMC20 D0-D15 in Hold after SDCK Rising Edge 1.1 ns 7 k& B- r! W7 r% X g& s1 x# p$ v
SDRAMC21 D16-D31 in Setup before SDCK Rising Edge 0 ns : {3 [9 _* b$ \! t# ~ u/ O
SDRAMC22 D16-D31 in Hold after SDCK Rising Edge 1.2 ns
3 n# i! l) `# D" }4 E
1 h% B) w! m: Q# L" L" _这里去掉了1.8V的数据。
3 C6 e6 w. y/ z& x对每个方向分别作分析,首先看9260输入/SDRAM输出,这里以MT48LC16M16A2的数据手册作为参考, % ^% e( `' L$ s, U, F" c
HY57V561620可能更常用,但是其数据手册没有时序图。
) f# e( O c! Z* kMT48LC16M16A2-75在100M下CL设为2。
5 h% T/ Q! z% @1 B6 G1 n7 j
1 Q+ W* R2 r% [# s8 UAccess time from CLK (pos.edge) CL = 2 tAC(2) 6 ns & C: A* {5 U) V6 l8 q( X
Data-out hold time (load) tOH 3 ns
# J# \# A( `1 A; F. H6 s' ^+ t$ |5 ?! P! s; V( N( y
实际上上面的数据也就是说相对于SDRAM的时钟上升沿,数据输出保持时间是3ns,数据建立时间是(10-6)=4ns, % D2 V5 b4 I4 z) W
100M的周期是10ns。 ; t) ~ J' S' S. i$ I
从9260给出时钟信号上升沿到数据出现在9260的引脚上,由于走线会有一定延时,使得SDRAM的输出时序在9260 6 r( U3 K( g* K: `
看来,建立时间和保持时间的(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA)),Tpd(CLK)是时钟线走线延迟, % P7 y# C$ {8 }5 Q' j. M, [9 Q
也就是从从9260给出时钟上升沿到SDRAM收到时钟上升沿的时间是,Tpd(DATA)是数据线走线延迟, ! \: }9 g* X: U2 e& v
数据从SDRAM发出到9260收到的延迟。
4 I: c7 i' Q& j+ l; A( t设1英寸走线的延迟时间是150ps,数据线的走线是2英寸,时钟线和数据线一样长,也是2英寸,可以计算出建立时间
+ u3 j5 [+ y. [8 T1 J1 D和上升时间的裕量,也就是从9260的引脚上看到的实际的数据的建立时间和保持时间分别减去9260要求的数据 z& S0 A: q1 M! K
建立时间和保持时间。前面的建立时间和保持时间分别是3.7ns和3.3ns,裕量分别有(对应D0-D15)3.5ns和2.2ns。
" s2 l' S5 Y( m为了将时钟上升沿放在数据的中心,数据线需要比时钟线长,改变时钟线和数据线的长度会影响前面的上升时间和保持时间 q+ W" t% B& _+ \1 ^0 D/ `" K& I
(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA))。实际的长度要求可以用时序裕量除以单位长度的走线延迟 ) n; m, K4 C' g5 y: N: @* l- E
得到,每英寸的走线的延迟时间在一百多ps。 # V+ u0 k) k" D+ F! Q5 Q$ F
* H1 `8 L% _$ T7 ?$ Z# A' R对于9260输出数据,SDRAM输入数据,参数如下: + X$ ] E. i$ M3 Q4 M+ W( }, j
SDRAMC25 D0-D15 Out Valid before SDCK Rising Edge 4.2 ns
3 k v8 h" t/ f/ L3 ^6 C) _SDRAMC26 D0-D15 Out Valid after SDCK Rising Edge 5.9 ns 9 @. L- S$ {: d. |8 z# a% g
SDRAMC27 D16-D31 Out Valid before SDCK Rising Edge 3.1 ns & Q& j; j, n$ }: f- c! W7 n8 S
SDRAMC28 D16-D31 Out Valid after SDCK Rising Edge 6.4 ns
0 {* F# H: K9 `% z8 ]$ O# a3 ?* _0 A- T+ c0 s% P/ A
Data-in hold time tDH 0.8 ns 8 ?' w: |; p9 J! G
Data-in setup time tDS 1.5 ns 7 P2 {( y1 n; |4 e; F1 d
' H' j7 E8 j& Y1 ~! i u$ L4 F2 x对于SDRAM,其引脚上看到的数据的建立时间和保持时间分别是(4.2ns+Tpd(CLK)-Tpd(DATA))/(5.9ns-Tpd(CLK)+Tpd(DATA)) $ G# m, |, R4 v% E) P8 t6 @
走线长度同上,则SDRAM的建立时间和保持时序裕量分别为2.7ns/5.1ns。
9 R% |9 b, |* Y- Q/ [/ A) b; X% C7 w0 \+ \$ A# w' c( i. l
9260输入数据的时序裕量比输出数据的时序裕量总体上来说要小,上面的计算只是理想情况下的计算,
! e5 @( t ~- R7 f" z实际上影响数据时序裕量的因素有很大分布参数,如时钟的抖动,数据的抖动,手册中给出的参数中都是最小值,
; z b& i+ }7 c2 S |0 T可以认为包括了数据的抖动(我是这样想的)。建立时间和保持时间的时序裕量都需要减去时钟的抖动值。 L X5 ]7 m9 c# I( C
另外的一些分布参数包括负载电容、串扰、电源等,都会减小信号的时序裕量。 0 q) c& G9 E6 E: U5 a
2 a. d/ _* u4 ^7 W6 Z' m0 G$ Q对于地址线和控制线,手册中有相应的参数,和9260输出数据、SDRAM输入数据的情况是一样的。 5 A# z1 n( n8 k* i/ F
9260的时序还算相对宽松的,POWER PC的处理器要求的时序裕量比9260要大,计算下来不到一个纳秒。
3 A8 I( y- p8 Y. U从上面的计算上来看,就算减掉部分分布参数带来的时序裕量的减小,也还允许若干英寸的长度不匹配。
; @# w" `7 w' z0 t
- W+ I2 j( I. y" \4 S8 v走线等长所需要做的就是保证上述时序裕量为正值,地址线和控制线的与时钟线的相对长度都通过时序裕量换算得到。 ' D {0 K q. W% W
) [3 k5 Z* F+ y" d K
先写这么些,有错误请指出。 |
评分
-
查看全部评分
|