EDA365电子论坛网

标题: DDR2中clock与dqs之间的时序关系 [打印本页]

作者: icy88    时间: 2012-5-9 11:44
标题: DDR2中clock与dqs之间的时序关系
我们都知道,DDR2为源同步时钟的时序关系,其中dq/dm与dqs, address/command与clock,这两组的时序关系比较明朗,即前者为数据,后者为数据的触发信号,DDR2还有一组即dqs与clock的时序关系,这两者似乎只有在驱动端有联系,而在接收端没太大的联系,对于这一组的信号时序一直存在疑惑,望高手解疑,另欢迎大家讨论,重赏!
作者: dzkcool    时间: 2012-5-9 12:51
个人观点:. ]+ Y, k" b0 S6 f
1、无论读写操作,DQS都是由驱动端发出的,Memory是不会发DQS信号的;
0 g: J$ F" ^. ?, f4 z2、clock在发出读或写操作后过一定时间后,才会触发DQS信号,因此clock与DQS没有很严格的时序关系;
作者: yuxuan51    时间: 2012-5-9 13:03
本帖最后由 yuxuan51 于 2012-5-9 13:04 编辑 ; w, Y/ @  g1 \2 b; R& A# f3 I2 F0 P
dzkcool 发表于 2012-5-9 12:51 % n& r; @8 S! H' @8 h: ^& r% Z7 w
个人观点:
, a+ |$ Q+ G7 Q' U+ z" Q5 G* P1、无论读写操作,DQS都是由驱动端发出的,Memory是不会发DQS信号的;
; |1 z4 E6 B6 p. V/ W* l# D2、clock在发出读或写操 ...

' `0 A& u, Z7 j; I9 u  @5 H$ q7 t  M0 E' m/ a
源同步和内共同时钟同步有一个很大的区别就是源同步时DQS与DQ的方向始终保持一致
作者: yejialu    时间: 2012-5-9 13:10
对于DQS 与CLK的时序关系问题。以前DQS 与CLK的线长有比等长的关系。现在有的Memory controller 没了这个关系。是因为Memory controller可以调整DQS 与CLK的时序关系,所以只要布线不是很夸张,这个时序就不会出问题。
作者: icy88    时间: 2012-5-9 13:13
本帖最后由 icy88 于 2012-5-9 13:18 编辑 * a! E3 U( F2 w- U( l6 N& ~7 _
, h9 P) x& E6 ]" {6 Q5 {- s
jedec上关于dqs与clock之间时序关系的定义有如下几个参数:
/ ?* n2 Q& Z0 N
6 f* l% p$ T2 r# y, `: }, K
" ^5 A0 G  u+ v' Y) ]9 T
6 ~1 H! m0 |5 _5 D% l6 N9 a

dqs_clk1.png (307.44 KB, 下载次数: 49)

dqs_clk1.png

作者: icy88    时间: 2012-5-9 13:16
yuxuan51 发表于 2012-5-9 13:03
" z( Z  S  g' b' u. x. K" K源同步和内共同时钟同步有一个很大的区别就是源同步时DQS与DQ的方向始终保持一致
  S8 R. p1 v* w
还请yuxuan51帮忙分析下dqs与clock的时序关系
作者: icy88    时间: 2012-5-9 13:17
yejialu 发表于 2012-5-9 13:10
  r' q3 p, I- V, y8 S对于DQS 与CLK的时序关系问题。以前DQS 与CLK的线长有比等长的关系。现在有的Memory controller 没了这个 ...

1 ~: W$ ^$ E6 L/ {$ G* }" t您说得memory controller是DDR3中的功能吧?
作者: yuxuan51    时间: 2012-5-9 13:20
yejialu 发表于 2012-5-9 13:10 & k8 ]2 ~; ?( H9 x4 O4 ?: Z4 ~3 F
对于DQS 与CLK的时序关系问题。以前DQS 与CLK的线长有比等长的关系。现在有的Memory controller 没了这个 ...
, u, M' C' M+ n" O) |
你说的这个情况是DDR3,由于DDR3的时钟与地址,控制线为菊花链结构,导致时钟到每一个颗粒的时钟没法保证一样,所以有了个“write leveling”这个功能来保证时钟与DQS的时序,但是DDR1与DDR2貌似还没有这个功能,所以还是需要考虑DQS与CLK的关系
作者: yuxuan51    时间: 2012-5-9 13:21
icy88大神啊,我还想听听你的高见呢
作者: yejialu    时间: 2012-5-9 13:53
yuxuan51 发表于 2012-5-9 13:20
# j4 ?6 r9 {" p- k你说的这个情况是DDR3,由于DDR3的时钟与地址,控制线为菊花链结构,导致时钟到每一个颗粒的时钟没法保证 ...

7 e4 S& H6 E2 t8 W5 n4 S& S# ?4 l是的,是DDR3 。DDR2 还是有DQS与CLK的等长的。
作者: yuxuan51    时间: 2012-5-9 15:48
本帖最后由 yuxuan51 于 2012-5-9 15:50 编辑 3 K: t0 V. j* a1 M6 j

3 q) q5 I8 A2 U6 A0 G; m没有人继续讨论了么。。。那我先说下我的看法吧; h6 Q! I1 W8 N, {5 T& `: f
6 \5 q, }2 w% u: _! Z3 s
首先在DDR2的规范中在DDR2侧输出数据时(也就是我们常说的读数据),DQS和CLK还是有一些指标的,下图1 c% B1 n& t; n5 V& Q/ o
" m2 d0 f) Z) u7 J" k

5 x) B- S0 V7 O# W8 t9 f. i& Y+ e, r! A* i* L# @

" V: Z9 A9 |* q! O3 b/ G8 l
: @( b  a1 c% @; H. ]+ L6 Q这里的tDQSCK即DDR2输出DQS时相对于CLK的偏移的大小,它是个范围值,下图,在CLK沿的左边应该为最小值,即负值,在CLK沿右边为最大值,即为正值& l7 u; c# V! L; k8 b8 Q
/ u. I6 D' J' c! a' ]/ O. |

( _5 p: c2 s# l8 l9 x, x  V1 d8 J# P+ k) p
+ t7 m5 X' Z- t" p7 s2 {
! K% T+ Q6 ]' t% a
还有两个参数为Read preamble和Read postamble,意思为读前准备状态和读后同步状态,两个都为低电平,将有效的DQS时段夹在中间,其中Read preamble大约持续一个周期左右,下图
/ s$ t2 `  s3 x/ M4 u: n
! H* g! z& ~) T4 D/ u 9 E1 b5 ?7 A7 k- _

# e* x5 s3 L' l3 A6 Y+ F
& A0 }" }$ @4 N- X
$ C9 w& _, |  O" ?确实很少有资料提到DDR2输出数据时CLK与DQS的关系,从POWERPC系类的datasheet里也没有发现读DDR2时CLK与DQS的约束要求,个人觉得应该是控制器将接收到的DQS与CLK进行了相位调整,类似于调整DQ与DQS那样,当然仅限个人猜测,希望能看到大家更多的意见和看法
作者: icy88    时间: 2012-5-9 15:51
发篇大牛写的论文,网上找的,大家共同学习下
0 m4 r* i8 w/ p3 P, h; N6 C' @! _2 _! i) f' p- E
Channel_timing_error_analysis_for_DDR2_memory_systems.pdf (1.89 MB, 下载次数: 1882) 8 }  J3 M& h  a/ `
8 d! |6 u# h& T2 @6 ?, Y
里面有列出了ddr2种需计算的时序关系的公式9 E6 a4 r. c  R9 O

7 X) E2 t' @: z$ e9 s ! S1 `4 ?+ J6 z1 }

/ _: V& V3 u6 v/ [- WIEEE网站上卖13米呢,大家珍惜阿!
作者: icy88    时间: 2012-5-9 16:35
yuxuan51 发表于 2012-5-9 15:48
6 {3 S) w$ ~$ q. t没有人继续讨论了么。。。那我先说下我的看法吧6 Q4 O0 @) L  X! E6 \5 d7 U/ Z

3 `7 [' |2 Y2 E1 I首先在DDR2的规范中在DDR2侧输出数据时(也就是我们常说 ...

" p$ }7 k8 E( I* |: C& P) `' [我一直在纠结着dqs与clock的时序关系是怎样产生的,因为按照源同步时序的理解,只要时钟触发strob并与data从driver端发出后,数据的采样就跟时钟没有关系的.如果根据下载的资料来计算话,只能说在芯片内部时钟跟dqs是必须有个时序的要求的,% V8 f8 y. I, `  {- j) i  H2 E& u) J6 N9 o

% T/ \2 |' Z5 H  p+ Y ' }) X! V) m, _% l/ Z/ h. f( X
: ]* e% \" y  J/ d' C
high speed里翻出来的源同步总线的结构图.; z* z1 p1 R! T& o7 U3 i
' L+ D6 k4 X- z6 t! u% w
由图上,强烈怀疑是芯片内部触发器有一个数据的最小锁存时间要求,因此要dqs和clock有一定的时序关系." @# P5 B7 \! n! J* o4 R

. `' u) l, x& g0 t4 |6 G不知理解是否正确,欢迎拍砖.
作者: yuxuan51    时间: 2012-5-9 17:02
本帖最后由 yuxuan51 于 2012-5-9 17:36 编辑 / a0 z+ R1 e* G2 G+ Y
icy88 发表于 2012-5-9 16:35
& S% |8 U2 o, X, a) B* Z" Q, ?我一直在纠结着dqs与clock的时序关系是怎样产生的,因为按照源同步时序的理解,只要时钟触发strob并与data从 ...

6 p; K3 |  L& Z+ c: j+ n0 _8 V  l( K% R+ E9 e2 b% o

% e; l$ f4 }) }$ `& b两个观点:
* F! ?! A2 k8 J% e3 T& P7 \& [. |( f* Q" m
1.DQS虽然叫做DQ的时钟,但是它的表现形式和我们常见的时钟还是不一样的,常见的时钟形式是1010这样的重复码型,DQS不是,它只有在有进行DQ采样时才表现出1010这样的特性,所以它本质上来说还应该当做一个特殊的数据流来处理,需要时钟沿来触发采样,所以有了DQS和CLK这样的时序关系
% p/ d) B* ~( S, j; A( r. d/ j4 ~1 P$ _& m! i( t
2.DQS相对于CLOCK的延迟太长的话,则数据总线占用时间过长,如果紧接着有读/写操作的话,会出现总线冲突,所以需要时序关系来约束
作者: yejialu    时间: 2012-5-9 17:55
如果DQS与CLK的时序不对,那么DQ信号和ADD之类的信号怎么匹配呢。 DDR怎么工作呢。 所以DQS与CLK的时序是必须的。
作者: gys    时间: 2012-5-9 19:09
首先,需要考虑为什么要引入DQS?5 E& T. f* f; H& Q5 F( A4 K! m5 S' z
应该说DQ的读写时序完全可以由clock来同步的,比如DDR之前的SDR就是只使用clock来同步的。速度提高之后,可用的时序余量越来越小,引入DQS是为了降低l设计难度和可靠性,可以不用考虑DQ和clock之间的直接关系,只用分组考虑DQ和DQS之间的关系,很容易做到同组同层,降低走线之间的skew.# b' Z! `2 T, c; I/ X9 n
问什么要考虑DQS和clock之间的关系?1 \# u* `2 L) F7 p( j( _
DQ和DQS只是组成了源同步时序的传输关系,可以保证数据在接收端被正确的所存,但是IC工作时,内部真正的同步时钟是clock而不是DQS,数据要在IC内部传输存储同样需要和clock(内部时钟比外部时钟慢)去同步,所以就要求所有的DQ信号还是同步的,而且和clock保持一定的关系,所以就要控制DQS和clock之间的延时了。/ |, J3 |! M& q+ E9 i* F; I
0 w6 d9 n. B0 o. R+ M5 e1 s2 ^
个人认为,引入DQS只是为了layout设计上的需求(时序),最终所有的信号还是需要clock去同步的。
' o( q4 s# O% B. g7 f) b注:DDR3是通过Memory controller的内部延时,保证了DQS和clock之间的延时差,实际效果也是一样的。
作者: icy88    时间: 2012-5-10 11:38
yuxuan51 发表于 2012-5-9 17:02
, d' K$ S: c& l6 q, B" W两个观点:5 e/ ?! H0 G  ~

# a  {  A! B* Q; Y1.DQS虽然叫做DQ的时钟,但是它的表现形式和我们常见的时钟还是不一样的,常见的时钟形 ...
1 \$ C; H/ Y- f% y1 v2 w" C: I
yuxuan51高见,好的时序设计是可以有效地提高总线利用率的
作者: qiangqssong    时间: 2012-5-10 16:43
学飞一下,不错的!!!
作者: dzkcool    时间: 2012-5-11 09:52
呵呵,谢谢LZ的指点。
" M- F% v: k5 O! o) J) e, C& t听说DDR3的Memory controller有内部寄存器,会自动根据发送测试数据来获得各组DQS线长,确定与Clock的延时关系,并保存到内部寄存器中,没找到这方面的资料,还不知真假。
作者: icy88    时间: 2012-5-11 11:51
dzkcool 发表于 2012-5-11 09:52 3 c1 w9 t9 G4 `1 b) ^
呵呵,谢谢LZ的指点。( \" U( I& k$ r/ V% c! A
听说DDR3的Memory controller有内部寄存器,会自动根据发送测试数据来获得各组DQS线 ...

6 Z2 Y* n3 w' V' w是的,DDR3中新增write Leveling的模式,可以调节dqs的延时,相关资料参考jedec 的 DDR3 SDRAM Specification.
作者: willyeing    时间: 2012-5-11 12:30
我还在云里雾里呀,开始使用ddr3
作者: dzwinner    时间: 2012-5-15 13:59
gys 发表于 2012-5-9 19:09 - ]7 `) C/ d5 a6 @0 y; j7 R
首先,需要考虑为什么要引入DQS?9 g* ^! p$ Q2 [8 X6 Z7 n/ M. W% E
应该说DQ的读写时序完全可以由clock来同步的,比如DDR之前的SDR就是只使用 ...
( {* e: y( W' a7 S$ F2 f2 ?% a3 `
你说的在理。DQS是依靠clock同步的,工作时,每组数据线与相应的DQS同步,理论上不同组的数据线的DQS在同一时刻延迟应该不一样,这样可以使layout更利于分组布线,这也是为什么每组数据线要和相应的DQS基本等长的原因。很喜欢楼主的表达方式,没有很多专业术语,利于新手理解!
作者: doya    时间: 2012-5-15 14:22
icy88 发表于 2012-5-11 11:51 % n' k) u6 q& F( n+ N, j
是的,DDR3中新增write Leveling的模式,可以调节dqs的延时,相关资料参考jedec 的 DDR3 SDRAM Specificatio ...
+ Y0 j' o% R. T
调节DQS的延时,可以保证DQS和CLK之间的时序关系。但是DQS的延时改变了,会影响到DQS和DQ之间的时序吗?
' j' i& v5 k) b( @+ O8 }; e4 v
( z. u5 Y' R' W3 g2 {% J; P+ }另外read Leveling的作用是什么?用来保证哪个参数的?
作者: jomvee    时间: 2012-5-15 19:25
恩,学习学习
作者: icy88    时间: 2012-5-16 15:40
doya 发表于 2012-5-15 14:22 # X6 I9 ~+ K# K; E. f' e0 _: a
调节DQS的延时,可以保证DQS和CLK之间的时序关系。但是DQS的延时改变了,会影响到DQS和DQ之间的时序吗?) B' R- {* y( X6 W1 M
...

& o6 r1 t! y( }1 t8 d8 r- u) r  X" M
dq是由dqs触发的,所以dq和dqs的发送是同步的,因此不会影响两者的时序的.4 J$ F; B+ I" b3 i
+ g1 M% K' E5 h. E: i
read Leveling??  DDR里没有这个吧 .
作者: yejialu    时间: 2012-5-16 16:49
dzkcool 发表于 2012-5-11 09:52 * i5 _/ t6 c4 {: Z2 |
呵呵,谢谢LZ的指点。4 a* Z2 j  M: t1 w
听说DDR3的Memory controller有内部寄存器,会自动根据发送测试数据来获得各组DQS线 ...

0 n- X) {  J( C* |真是这样的。
作者: cedzbj    时间: 2012-6-7 17:00
高手真多,来学习了
作者: killerljj    时间: 2012-6-7 22:57
学习了!!!!!!!!!
作者: yp_2000    时间: 2012-6-11 10:02
我也一直想弄明白dqs和clk的关系,这次有点懂了。1 b: q# |$ k% O' ?7 k, h7 M
好贴顶起。
作者: liqianzan    时间: 2012-6-21 21:41
CLK的相位是不可调的作为基准,DQS可以根据CLK调节来更好的匹配DQ,CLK与DQS的等长,我记得是75-125,DQS调节好像是1/4相位步进调节,差太远会超出1个周期。
作者: yejialu    时间: 2012-6-25 17:51
ddr3 的时序训练过程:( {1 y2 {8 U# }. L) c7 p1 N
memory training过程如下4 {% G' H$ `) Q" a4 O
1 Pre-training init: DDR3 Reset and Initialization Procedure (per JEDEC spec)
6 w& s" I8 H4 u9 _9 g# ~* ~9 |2 Receiver Enable Fine - Align DQS receiver enable signal to center of read DQS preamble at the DDRIO and set the MC round trip latency register. This training step is further broken into two substeps: RCVEN fine and RCVEN coarse training.
+ }+ z! W* |7 |3 Read DQ/DQS – Aligns DQ and DQS signals returned from DDR 1 e& Z0 G& b3 ]6 v
4 Write Leveling - Aligns write DQS to CLK at the DRAM
/ l% H" f+ A. h, J+ ~) K( g5 Write DQ/DQS - Center aligns DQ to DQS at the DRAM
  [/ x/ T  ^. `2 R3 V* K6 Fly-by (Write Leveling Coarse) - Adjusts write DQ/DQS latency ( o6 E. A, B8 _$ n6 n  y
7 Command-Clock Training - Centers the rising clock edge within the Command eye. This step uses both a simple 1010 pattern, and a more advanced LFSR address pattern for training. " D2 u' ~1 L  D9 O
8 Advanced Strobe Centering – Uses LFSR victim-aggressor patterns on the DQ bus in order to place the strobe timings such that both timing margin and voltage margin are maximized.
9 g$ k5 ]% H1 Z  K' c. W0 l9 Post-training init. (i.e. set the MC to normal mode from IOSAV mode)
6 H& ]& q! M( e# Z- E
/ d& S' J, N* _; m
作者: TZD123456789    时间: 2012-7-16 14:20
这里面大有学问,看过一些资料,晕头转向滴。。
作者: ann_wz    时间: 2015-1-21 20:21
顶一个,的,啊
作者: ann_wz    时间: 2015-2-2 19:21
yuxuan51 发表于 2012-5-9 13:20
3 O+ X, \' _# T+ P你说的这个情况是DDR3,由于DDR3的时钟与地址,控制线为菊花链结构,导致时钟到每一个颗粒的时钟没法保证 ...

. I8 y* K* K  T6 G0 V读写平衡不是针对,,ddr3 fly by拓扑里面的读写命令控制信号,读写平衡保证每个颗粒的读写命令的到达时间一致,保证同一个字节的数据同时写入或者读出,其实应该不是调节dqs跟时钟的之间的关系对不?
作者: libing3062    时间: 2016-9-15 21:43
学习了!!!!!!!!!
作者: lizongshan    时间: 2016-12-1 16:43
DQS可以根据CLK调节来更好的匹配DQ
作者: wudilanyang    时间: 2017-10-12 15:34
学习了,留下足迹,谢谢!
作者: ebony_l2RYD    时间: 2017-10-16 22:46
学习学习
作者: chaoff    时间: 2018-8-27 14:17
起码在DDR2里面DQS和CLK 是有要求的 。
作者: benjaminligood    时间: 2019-4-9 15:35
111111111
作者: benjaminligood    时间: 2019-4-9 15:43
222222222
作者: benjaminligood    时间: 2019-4-10 15:08
3333333
作者: siner    时间: 2020-3-19 16:19
学习学习,几年前的帖子依然经典




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2