|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
作者:xiaoerge
; |) d7 Z* z |# K9 D
* d0 E9 R6 \. P5 d$ C+ \SDRAM中的信号都是以时钟为参考的,等长的关系三言两语讲不清楚,说一下最复杂的数据线的等长,
# r( U$ h4 b# l' z! _+ j地址线和控制线因为是单向的,比数据线的等长简单,以9260外频100M为例。
) N4 K2 t0 q9 w+ `4 T3 S5 t7 z5 ]# t8 N& `* v
对于9260,从手册中可以看到,
3 S3 S4 w6 j( f6 f% VSDRAMC19 D0-D15 in Setup before SDCK Rising Edge 0.2 ns : q% n0 h/ t( t$ K. v1 ~
SDRAMC20 D0-D15 in Hold after SDCK Rising Edge 1.1 ns . F5 P! ~0 w( D% R1 C5 j* O5 Y! G
SDRAMC21 D16-D31 in Setup before SDCK Rising Edge 0 ns ! g* i% e" d5 ^- I- [' j2 {
SDRAMC22 D16-D31 in Hold after SDCK Rising Edge 1.2 ns
* t' t4 `" A2 Y6 u* Q0 |6 n: b' @* e6 N. R5 l
这里去掉了1.8V的数据。 & O) {& o$ ?1 H* c
对每个方向分别作分析,首先看9260输入/SDRAM输出,这里以MT48LC16M16A2的数据手册作为参考,
0 B% P3 |, i: R# H4 O, |0 EHY57V561620可能更常用,但是其数据手册没有时序图。
( s8 b9 f7 E+ Z) E. J. t# gMT48LC16M16A2-75在100M下CL设为2。 # \ ]" u' V6 ]6 E" }1 ^
0 a/ V; N f- R- j+ P8 E' q; s
Access time from CLK (pos.edge) CL = 2 tAC(2) 6 ns 9 _/ f- u% V2 G. E* _
Data-out hold time (load) tOH 3 ns
: W/ p1 M7 T3 k) J$ m0 l o9 x1 @+ K) R
实际上上面的数据也就是说相对于SDRAM的时钟上升沿,数据输出保持时间是3ns,数据建立时间是(10-6)=4ns,
1 q; P& U [( J* h! v/ v& o100M的周期是10ns。
3 P! N7 d$ H. t/ x. W. W+ x从9260给出时钟信号上升沿到数据出现在9260的引脚上,由于走线会有一定延时,使得SDRAM的输出时序在9260 - Z6 o5 Z. s. I9 n8 s( w$ f
看来,建立时间和保持时间的(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA)),Tpd(CLK)是时钟线走线延迟, % L9 {6 I, }: w5 q/ g# Y( n6 s$ O8 ?
也就是从从9260给出时钟上升沿到SDRAM收到时钟上升沿的时间是,Tpd(DATA)是数据线走线延迟, , A$ H& B$ H9 I) j+ O9 m6 A
数据从SDRAM发出到9260收到的延迟。 + I) X- y* u' h9 W. }9 H2 v- o& x
设1英寸走线的延迟时间是150ps,数据线的走线是2英寸,时钟线和数据线一样长,也是2英寸,可以计算出建立时间
' J( B! {! s2 l# [; l) v和上升时间的裕量,也就是从9260的引脚上看到的实际的数据的建立时间和保持时间分别减去9260要求的数据 9 Q( L3 i# g, X& h3 c Z6 @) A
建立时间和保持时间。前面的建立时间和保持时间分别是3.7ns和3.3ns,裕量分别有(对应D0-D15)3.5ns和2.2ns。 # @* s. C, I8 u+ K) ?6 j. q- T$ F6 T
为了将时钟上升沿放在数据的中心,数据线需要比时钟线长,改变时钟线和数据线的长度会影响前面的上升时间和保持时间
- Y5 ]# b g5 m; E; X+ [; I(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA))。实际的长度要求可以用时序裕量除以单位长度的走线延迟 ! m' o# Q- p5 U0 y6 b5 ^
得到,每英寸的走线的延迟时间在一百多ps。
( M4 e/ ~. V m- }% `0 X; I+ r7 v3 `( p9 u: H; e, E
对于9260输出数据,SDRAM输入数据,参数如下:
# A* O2 k* a; w) G5 ESDRAMC25 D0-D15 Out Valid before SDCK Rising Edge 4.2 ns
: G X7 S/ Y7 j8 z& v4 N& a9 qSDRAMC26 D0-D15 Out Valid after SDCK Rising Edge 5.9 ns . P7 V& s7 a* Q; s" o8 W/ V
SDRAMC27 D16-D31 Out Valid before SDCK Rising Edge 3.1 ns
4 }) F: X* y) J% v# I+ h# Y' sSDRAMC28 D16-D31 Out Valid after SDCK Rising Edge 6.4 ns * A+ t( i+ i+ P$ ]' o2 K
4 v4 z9 u/ \6 S' w- r7 z! |' K
Data-in hold time tDH 0.8 ns
' n" ?8 i+ u' U1 a( J Y% T( }Data-in setup time tDS 1.5 ns
% Q; _, \' V7 N. c% [
- Z( E/ _6 t- _$ N9 }1 J1 D' ] U对于SDRAM,其引脚上看到的数据的建立时间和保持时间分别是(4.2ns+Tpd(CLK)-Tpd(DATA))/(5.9ns-Tpd(CLK)+Tpd(DATA)) . }8 O. F' f7 {3 V: k( B7 b; j. `
走线长度同上,则SDRAM的建立时间和保持时序裕量分别为2.7ns/5.1ns。 6 g7 |4 u4 ~9 |/ k+ T
f6 O! |! P; ~$ l8 U! u
9260输入数据的时序裕量比输出数据的时序裕量总体上来说要小,上面的计算只是理想情况下的计算, / |1 S H" B7 p, D
实际上影响数据时序裕量的因素有很大分布参数,如时钟的抖动,数据的抖动,手册中给出的参数中都是最小值, ) B/ O. K" o$ Y7 {& d4 U& s- |
可以认为包括了数据的抖动(我是这样想的)。建立时间和保持时间的时序裕量都需要减去时钟的抖动值。
" I+ B- w! p7 z- I另外的一些分布参数包括负载电容、串扰、电源等,都会减小信号的时序裕量。
+ v. g2 J% G5 k9 }( @& e! R8 A
1 l0 K2 I& Z$ D: k对于地址线和控制线,手册中有相应的参数,和9260输出数据、SDRAM输入数据的情况是一样的。
8 b Q% v' |( X' m' I4 ?' \9260的时序还算相对宽松的,POWER PC的处理器要求的时序裕量比9260要大,计算下来不到一个纳秒。 : |9 A: L8 ~1 u- ?
从上面的计算上来看,就算减掉部分分布参数带来的时序裕量的减小,也还允许若干英寸的长度不匹配。 6 U2 P4 `6 P2 w( J3 @( C& L
]5 K; g% A5 z) x* J! B走线等长所需要做的就是保证上述时序裕量为正值,地址线和控制线的与时钟线的相对长度都通过时序裕量换算得到。 ' e4 R$ S0 B! A( E- U7 t' A% ^
7 _9 C% _" _& Q" `. g q
先写这么些,有错误请指出。 |
评分
-
查看全部评分
|