找回密码
 注册
关于网站域名变更的通知
查看: 4000|回复: 16
打印 上一主题 下一主题

从ARM板块拷了点东西来,自己写了点SDRAM的等长计算,对9260(转自ouravr)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-2-27 10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
作者:xiaoerge
; b. }+ o! ^5 E( _# ~7 v; E  G0 V5 _0 g7 n
SDRAM中的信号都是以时钟为参考的,等长的关系三言两语讲不清楚,说一下最复杂的数据线的等长,  
! k8 H% s2 b/ ^( K! {- \# F0 H地址线和控制线因为是单向的,比数据线的等长简单,以9260外频100M为例。  ; ~  k) _, J+ u2 ?' }0 O

- }' G. Y9 \# b; Q对于9260,从手册中可以看到,  
: ?4 v, `5 ~/ m) S$ ySDRAMC19 D0-D15 in Setup before SDCK Rising Edge         0.2 ns  4 Z1 {& j; P2 D) I# ^# T
SDRAMC20 D0-D15 in Hold after SDCK Rising Edge                 1.1 ns  
4 O" {/ u8 ]" f) I1 g* N+ @  _SDRAMC21 D16-D31 in Setup before SDCK Rising Edge         0 ns  * H! O% N6 D/ C0 H
SDRAMC22 D16-D31 in Hold after SDCK Rising Edge         1.2 ns  
  R& L. v& Y' D6 X
7 P/ k5 N, X( J  ~* C+ P这里去掉了1.8V的数据。  : f; H4 J/ s4 \3 h
对每个方向分别作分析,首先看9260输入/SDRAM输出,这里以MT48LC16M16A2的数据手册作为参考,  
  ~; w' a3 ]+ t5 V2 x' L' D" rHY57V561620可能更常用,但是其数据手册没有时序图。  
' l. d; }! Y  I9 }4 t7 I* R# KMT48LC16M16A2-75在100M下CL设为2。  * s* K6 H5 K/ j# ^! l+ H
; A( ~  j! u2 G1 L! V# M, I% P& j
Access time from CLK (pos.edge)        CL = 2 tAC(2)                6 ns  5 e0 s0 h) ]$ t/ ?6 B8 p  b
Data-out hold time (load)                         tOH        3 ns  
% x0 O$ o6 F% W- v1 f2 }, z( U- u; z( E0 u
实际上上面的数据也就是说相对于SDRAM的时钟上升沿,数据输出保持时间是3ns,数据建立时间是(10-6)=4ns,  - A/ O4 O6 L0 U
100M的周期是10ns。  
6 {% K! Z& M1 L! z, B8 l从9260给出时钟信号上升沿到数据出现在9260的引脚上,由于走线会有一定延时,使得SDRAM的输出时序在9260  
3 U  \  ?! ]8 b' D" a) I4 b0 \看来,建立时间和保持时间的(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA)),Tpd(CLK)是时钟线走线延迟,  
+ Y  q0 G0 F# S$ h. s也就是从从9260给出时钟上升沿到SDRAM收到时钟上升沿的时间是,Tpd(DATA)是数据线走线延迟,  3 A7 ]( F5 k6 w- d* `) R( X+ s  C
数据从SDRAM发出到9260收到的延迟。  
1 o9 `2 {" }0 x  x) T# I设1英寸走线的延迟时间是150ps,数据线的走线是2英寸,时钟线和数据线一样长,也是2英寸,可以计算出建立时间  
; F1 a- B) D1 j# g4 z和上升时间的裕量,也就是从9260的引脚上看到的实际的数据的建立时间和保持时间分别减去9260要求的数据  
: T& \; [: h0 W建立时间和保持时间。前面的建立时间和保持时间分别是3.7ns和3.3ns,裕量分别有(对应D0-D15)3.5ns和2.2ns。  
5 S% t7 u' {0 a# t# V5 i" ~0 V' C为了将时钟上升沿放在数据的中心,数据线需要比时钟线长,改变时钟线和数据线的长度会影响前面的上升时间和保持时间  6 L+ m$ X+ p' K# E+ `9 k: R% R+ {
(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA))。实际的长度要求可以用时序裕量除以单位长度的走线延迟  6 @$ L6 Q) m. r2 ^' W8 ?
得到,每英寸的走线的延迟时间在一百多ps。  . @7 G. A4 {7 h/ W5 |% i

# o; h, j+ h( o+ d2 U对于9260输出数据,SDRAM输入数据,参数如下:  3 i6 s# w( `! X) P' n1 C
SDRAMC25 D0-D15 Out Valid before SDCK Rising Edge        4.2 ns  
% k9 \/ |  M# V: I" hSDRAMC26 D0-D15 Out Valid after SDCK Rising Edge        5.9 ns  3 _9 U7 I2 ]" |. C, x0 g3 B1 ~
SDRAMC27 D16-D31 Out Valid before SDCK Rising Edge        3.1 ns  
7 K" f/ V* ?- p2 L0 `SDRAMC28 D16-D31 Out Valid after SDCK Rising Edge        6.4 ns  
; F" D, P  K2 j) ~0 m0 G3 T6 y: ]  ~' w3 X. G2 [9 A: N' K' ?
Data-in hold time         tDH        0.8 ns  / z" ~* n7 Q* x) p# y6 W. m
Data-in setup time         tDS        1.5 ns  9 \5 ?& k5 v6 z: V. {. X& ~- O! O

6 b6 Z/ `  u3 a: R对于SDRAM,其引脚上看到的数据的建立时间和保持时间分别是(4.2ns+Tpd(CLK)-Tpd(DATA))/(5.9ns-Tpd(CLK)+Tpd(DATA))  , o3 @. G! S- m/ O8 m
走线长度同上,则SDRAM的建立时间和保持时序裕量分别为2.7ns/5.1ns。  ' E' R- ]* I8 `- N" C5 |# _
7 v; }3 I0 R* u7 x
9260输入数据的时序裕量比输出数据的时序裕量总体上来说要小,上面的计算只是理想情况下的计算,  * f' R  A3 g2 f2 h' b
实际上影响数据时序裕量的因素有很大分布参数,如时钟的抖动,数据的抖动,手册中给出的参数中都是最小值,  2 A4 d% z* R3 E0 P
可以认为包括了数据的抖动(我是这样想的)。建立时间和保持时间的时序裕量都需要减去时钟的抖动值。  # j* f* O8 [# L5 F4 U
另外的一些分布参数包括负载电容、串扰、电源等,都会减小信号的时序裕量。  6 c. @4 y$ a, T9 x. u# ~, f2 @5 S

3 ~0 p# g; ^! z对于地址线和控制线,手册中有相应的参数,和9260输出数据、SDRAM输入数据的情况是一样的。  
3 L( L5 _+ g4 Q; n8 v6 J& [. ]& @9260的时序还算相对宽松的,POWER PC的处理器要求的时序裕量比9260要大,计算下来不到一个纳秒。  ( z( p) I/ w9 K9 v/ n
从上面的计算上来看,就算减掉部分分布参数带来的时序裕量的减小,也还允许若干英寸的长度不匹配。  ) ?1 [: l+ v$ \
; X1 b2 b' y2 P" t) |
走线等长所需要做的就是保证上述时序裕量为正值,地址线和控制线的与时钟线的相对长度都通过时序裕量换算得到。    \1 C, N+ c( j

4 ^9 F. z4 D1 ^4 e( N/ \先写这么些,有错误请指出。

评分

参与人数 2贡献 +12 收起 理由
hallen_jumper + 2 好啊
forevercgh + 10 感谢分享

查看全部评分

该用户从未签到

2#
发表于 2009-3-8 22:07 | 只看该作者
好好学习天天向上

该用户从未签到

3#
发表于 2009-3-12 17:28 | 只看该作者
写的很好   赞!

该用户从未签到

4#
发表于 2009-3-16 17:08 | 只看该作者
再补上一些

高速PCB设计中的信号完整性和传输延时分析.pdf

399.97 KB, 下载次数: 296, 下载积分: 威望 -5

该用户从未签到

5#
发表于 2009-3-25 21:22 | 只看该作者
初学者,不懂,先看看

该用户从未签到

6#
发表于 2009-3-26 16:39 | 只看该作者
感谢分享

该用户从未签到

7#
发表于 2009-5-19 13:19 | 只看该作者
good good study...day day up...thank you

该用户从未签到

8#
发表于 2009-5-29 10:49 | 只看该作者
收下,顶了

该用户从未签到

9#
发表于 2009-6-5 09:50 | 只看该作者
看不懂啊,怎么办?

该用户从未签到

10#
发表于 2011-8-26 17:20 | 只看该作者
很好,值得参考,谢谢楼主的分享哈!

该用户从未签到

11#
发表于 2011-8-30 16:53 | 只看该作者
能看懂一点,差距还很大啊
5 M( Q( x; w( f: y+ U# N

该用户从未签到

12#
发表于 2011-9-5 20:28 | 只看该作者
疑问点:Access time from CLK (pos.edge)        CL = 2 tAC(2)                6 ns  4 P8 W# b, B# V/ R- {: I/ U+ K
Data-out hold time (load)                         tOH        3 ns  0 + X; \; w- q  s/ E$ j
实际上上面的数据也就是说相对于SDRAM的时钟上升沿,数据输出保持时间是3ns,数据建立时间是(10-6)=4ns,100M的周期是10ns& x% d9 D8 d2 _
从9260给出时钟信号上升沿到数据出现在9260的引脚上,由于走线会有一定延时,使得SDRAM的输出时序在9260  看来,建立时间和保持时间的(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA)),Tpd(CLK)是时钟线走线延迟。
, F8 g* T0 N# a4 }5 L& C
+ y; ?2 [1 R: a6 L1.对于SDRAM输出数据,我们不是应该去关心9260接收端的数据建立和保持时间吗?那么以上所指的‘对于SDRAM的时钟上升沿,数据输出保持时间是3ns,数据建立时间是(10-6)=4ns,100M的周期是10ns’是怎么说法??
# h2 _3 S6 x' J8 e6 z/ A
, K, V8 T% Y8 i  O/ i" p/ n: `% v2.对于它数据建立时间和保持时间的计算:(4ns-Tpd(CLK)-Tpd(DATA))/(3ns+Tpd(CLK)+Tpd(DATA)),怎么理解??按我看到的资料来说,数据的建立时间裕量应该是第一个数据先于第一个采样时钟到达接收端的时间减去器件要求的建立时间。保持时间的裕量是第一个采样时钟先于第二个数据到达接收端的时间减去器件要求的保持时间。) |. e7 j9 P  f2 E/ i' c* Y

: e* x2 |3 p: J1 |2 `$ o感觉后面的计算看的不太懂了。。。

该用户从未签到

13#
发表于 2011-9-7 18:17 | 只看该作者
看不懂啊,尤其有一点:如果我的走线延时大于时钟的上升沿时间,那么在读的时候,9260接收数据的时钟沿,经过一段时间到达SDRAM,SDRAM在那个时钟沿再发送数据给9260,可是当该数据到达9260的时候,9260这边的时钟已经不是原来的那个沿了,那么就读不到数据啦?可是实际上并不会这样呀

该用户从未签到

14#
发表于 2011-9-10 12:47 | 只看该作者
不懂,先看看

该用户从未签到

15#
发表于 2011-9-16 09:49 | 只看该作者
看不懂啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-11 16:30 , Processed in 0.140625 second(s), 28 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表