|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
作者:xiaoerge
; C5 p4 W- b0 q
0 k8 n' O% I' S) ESDRAM中的信号都是以时钟为参考的,等长的关系三言两语讲不清楚,说一下最复杂的数据线的等长, 4 k! Y+ g9 H1 l+ n7 _% f8 `- K
地址线和控制线因为是单向的,比数据线的等长简单,以9260外频100M为例。
T+ D4 \: K. i* A! J+ o- g. S4 r" s2 r# g
对于9260,从手册中可以看到, 5 y) t' v) G0 g2 ~# x
SDRAMC19 D0-D15 in Setup before SDCK Rising Edge 0.2 ns
+ s5 V0 m5 L. X) |/ x9 a0 iSDRAMC20 D0-D15 in Hold after SDCK Rising Edge 1.1 ns
( @" E6 `/ N% ?1 j+ x: qSDRAMC21 D16-D31 in Setup before SDCK Rising Edge 0 ns ! Y$ @. p$ D; X& d
SDRAMC22 D16-D31 in Hold after SDCK Rising Edge 1.2 ns
: [4 S7 p' L( X; h7 M$ C5 _/ v
' P; l3 g* E/ H! p0 N这里去掉了1.8V的数据。
4 n: m( ]& B1 |9 ^3 y对每个方向分别作分析,首先看9260输入/SDRAM输出,这里以MT48LC16M16A2的数据手册作为参考,
d- X( H( C Y1 ~5 y! f4 LHY57V561620可能更常用,但是其数据手册没有时序图。 : i% H( x% Y9 Y! ~& J: I, e+ L+ I
MT48LC16M16A2-75在100M下CL设为2。
, K* C- C' e, u% J6 j* _% B. k7 t& h# W
Access time from CLK (pos.edge) CL = 2 tAC(2) 6 ns 7 I$ [( s* ~# P" F5 D( X8 b# G
Data-out hold time (load) tOH 3 ns
$ P% C; |9 z8 M3 ]/ g% f8 I
' p) A- E5 a9 |0 S1 {' b实际上上面的数据也就是说相对于SDRAM的时钟上升沿,数据输出保持时间是3ns,数据建立时间是(10-6)=4ns, H9 n5 \: ~7 }1 P' W/ e& m
100M的周期是10ns。
: L8 { z) p2 i" g$ I6 L$ J' M从9260给出时钟信号上升沿到数据出现在9260的引脚上,由于走线会有一定延时,使得SDRAM的输出时序在9260
/ H* g1 ?8 d* l: V. I, A6 }看来,建立时间和保持时间的(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA)),Tpd(CLK)是时钟线走线延迟,
& i7 [4 t* H1 h2 W( A( W0 n; ^也就是从从9260给出时钟上升沿到SDRAM收到时钟上升沿的时间是,Tpd(DATA)是数据线走线延迟,
) x; J3 U" j j数据从SDRAM发出到9260收到的延迟。 6 l% i& ~$ @" c; s, j
设1英寸走线的延迟时间是150ps,数据线的走线是2英寸,时钟线和数据线一样长,也是2英寸,可以计算出建立时间 5 K: ~2 [" q5 o+ N3 H! `
和上升时间的裕量,也就是从9260的引脚上看到的实际的数据的建立时间和保持时间分别减去9260要求的数据
* ?0 [6 V# `: m- X建立时间和保持时间。前面的建立时间和保持时间分别是3.7ns和3.3ns,裕量分别有(对应D0-D15)3.5ns和2.2ns。 ) G+ b# ?' |" ^( t3 U) n4 D* e
为了将时钟上升沿放在数据的中心,数据线需要比时钟线长,改变时钟线和数据线的长度会影响前面的上升时间和保持时间
/ k8 c" n/ ^9 N s5 L(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA))。实际的长度要求可以用时序裕量除以单位长度的走线延迟
+ l0 `4 h) z" L7 k0 O, a得到,每英寸的走线的延迟时间在一百多ps。
* o2 R# m3 O2 }! r$ e, N7 H }* X7 ]* {
对于9260输出数据,SDRAM输入数据,参数如下: ' P5 M% V! t& O
SDRAMC25 D0-D15 Out Valid before SDCK Rising Edge 4.2 ns . o/ s. d. y) d1 E- G3 r
SDRAMC26 D0-D15 Out Valid after SDCK Rising Edge 5.9 ns
7 s" t) u: M& \1 r! }SDRAMC27 D16-D31 Out Valid before SDCK Rising Edge 3.1 ns + K- G1 B4 m8 |, Z# S" O2 s5 J
SDRAMC28 D16-D31 Out Valid after SDCK Rising Edge 6.4 ns " k0 o- O: I+ A
3 G7 O4 |6 O$ L* P ^2 Q
Data-in hold time tDH 0.8 ns
" `$ e1 n/ F6 e6 X+ ^' u$ SData-in setup time tDS 1.5 ns # Q7 ~5 h/ f: ? e- v. w
5 r b: q9 \1 U3 u1 {+ ]8 y
对于SDRAM,其引脚上看到的数据的建立时间和保持时间分别是(4.2ns+Tpd(CLK)-Tpd(DATA))/(5.9ns-Tpd(CLK)+Tpd(DATA)) - A# T; q8 c+ u1 t
走线长度同上,则SDRAM的建立时间和保持时序裕量分别为2.7ns/5.1ns。 % l7 Z, j3 d5 y2 }7 ~9 \
. b' L6 q. w( y' R% A4 g+ K
9260输入数据的时序裕量比输出数据的时序裕量总体上来说要小,上面的计算只是理想情况下的计算,
) l: N: J0 v- ?( Z: W8 s- I实际上影响数据时序裕量的因素有很大分布参数,如时钟的抖动,数据的抖动,手册中给出的参数中都是最小值, 1 N# V$ c. l5 U% ?" `; B
可以认为包括了数据的抖动(我是这样想的)。建立时间和保持时间的时序裕量都需要减去时钟的抖动值。 0 a% L) M& J- s% u0 s! h
另外的一些分布参数包括负载电容、串扰、电源等,都会减小信号的时序裕量。 ) V% ]6 i' J* u6 z6 l: P
2 a% V1 y h" c2 U* E, U" L对于地址线和控制线,手册中有相应的参数,和9260输出数据、SDRAM输入数据的情况是一样的。
" g9 E. q! O1 A4 b% _$ k7 a9260的时序还算相对宽松的,POWER PC的处理器要求的时序裕量比9260要大,计算下来不到一个纳秒。
7 B1 Y( d, R' S: O# C从上面的计算上来看,就算减掉部分分布参数带来的时序裕量的减小,也还允许若干英寸的长度不匹配。
1 \& q9 X2 a q; a5 m, H$ I
- }5 z# p5 r b0 a走线等长所需要做的就是保证上述时序裕量为正值,地址线和控制线的与时钟线的相对长度都通过时序裕量换算得到。 ) Q) K% q, S2 j/ a9 L
& `+ K! o5 q. E8 U3 ]' Z' H
先写这么些,有错误请指出。 |
评分
-
查看全部评分
|