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

画板碰到问题,请诸位高手指教

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-8-22 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
最近在画一块六层的PCBARM(三星2440)+ SDRAM(K4S561632CLK = 100MHz)+ NAND(K9F1208)这是一个设备使用的核心板,现有几个问题请教各位大侠。+ A# @/ C) K) }7 k4 e' C
3 U  O% g' O6 u, B' D- e7 `
1:关于电源层,采用2电源层(第二层GND,第五层PWR),地层整个是一个,关于PWR2440有两种供电电压:3.3V1.2V(1.3V 400MHz)
3 M0 D8 h. h" y( a ' \5 u& ^: r/ I) n3 A
根据我查的资料,和现有的其他电路图,由于SDRAMNAND都是3.3V供电,所以在整个PCB板上只有CPU下面的地方是1.2VPWR层,其他地方都是3.3VCPU上的3.3V电源是通过导线引出到3.3V的铜区然后过孔连接,这样做是否合理?
% J% F& z+ q) h& H2 P 0 c. A7 t  s% O4 R. a
有的资料上说高速信号线不能跨越电源层的分割区,这一说法我认为是防止电流回路绕过分割从而加大串扰,我的PCB的第二层是一个完整的大地,从CPU上引出的SDRAM的时钟线,数据线,地址线如果都是在第一层和第三层,是不是电流回路就会以第二层的大地为参考而不会去绕电源层的分割,即使是在底层或者第四层,只要CPUSDRAMVSS都与地层相连,是不是回路仍然会从地层走,也就是说可以忽略PWR的分割区?& C0 X  g9 x& z2 z/ J; ]7 U4 [
0 |! z0 R0 W; Z2 ~8 N% S
两个不同电压的分割区要多宽才合理?
0 X: G& u3 _2 W分割的边界离CPU边界距离多少比较合适?
+ U; S( P4 k% v+ Q8 c. y; ]) V要不要跨接电容?6 W/ G1 z0 Z% J# n4 h
7 X' n0 g, a7 r' g, m4 u/ z
. f5 N* t+ ~1 o6 g4 |$ ]
# ]: b2 ~- f5 }

$ w5 v1 [8 Z4 M2 S) k! i  P  o, c2:关于SDRAM的数据线,地址线,CLK,控制线
  P* {6 K4 M& n0 H
. R8 s/ N: M7 Q5 y5 {" eSDRAMCLK是否一定要比ADDRDATA,控制线长哪?$ H& W( ?. D. ?2 V; v% I: H& ]
资料上说调整走线的长度是为了满足时序的要求,怎么理解满足时序?是不是将CPU发出的各个信号的延迟调整到时钟到达时都有效,并且数据返回到CPUCPU不会读错数据(不会读到下一个周期的数据)?
$ k/ Z* L  B9 `* f; }2 ~* r! M( Z / }) P* ~, B! H2 W7 ?
对于数据线和地址线很多资料上说要分别等长,或者误差小于50mil,可是我计算使用FR-4,介电常数4.5100mil的延迟大约是0.18ns,是否可以认为100mil也可以了?6 Q  M  n2 T- V& e3 R9 w
有的资料上写允许的延迟与时钟上升沿的时间有关,怎样知道由CPUPLL产生的SCLK上升沿的时间,是否只能通过实验测得?
# R% |. ]' K5 l  c3 q8 e
& Y  o6 c( x; B时钟线如果要比其他线都长,是否也能蛇形绕线?不能的话应该怎么走?
- u. }/ G5 x( e, }) ~ " y. e2 r- `4 ~- z

9 |2 [' Q! K' Z9 d* L
9 L( f1 ]) }; V( t  V& s' t3:关于阻抗匹配:2 X, Y  u3 X; c! A
看到很多设计上SCLK都在靠近CPU端串接一个22或者33Ohm的电阻,这一阻值是怎么估计出来的?是不是K4S561632上也能用2233Ohm
" K) _/ ]- M. a3 q! H2 Q 6 T: ?$ N3 `' i$ t2 m7 @) E
请各位高手指教,不胜感激

该用户从未签到

2#
发表于 2008-8-23 09:43 | 只看该作者
1.高频信号回流路径为低阻抗通路(相对于参考面)。电源和地作为参考面的概念来说是没有区别的。跨越分割面走线意味着阻抗不连续,back loop的加大(包围面积磁通量的变大)。电源分割的安规可以理解为两块不同net灌铜区的clearance。我一般使用20mil。这么我没有很明确概念,请他人指教。
! B& x& p* A0 X9 H/ C
* Y: l. x, Q3 B7 G2.首先你要理解什么是同步系统,同步系统的参考信号就是CLK,你要做的是依据实际情况,在确定CLK长度的前提下,进而决定control,address,data的长度。当然对于源同步系统,需要关注的是strobe同data的延时差
3 Z/ V: G* M7 h& z. k# J! z. K之所以考虑到沿率,是要确定特征长度,进而决定是否需要将board level routing看作transmission line。沿率一般在数据手册中会有,或者对应的ibis model中会有。4 Z; `4 C% u" q( t  V
/ z+ S; f- S# g# a" D8 f6 [3 l7 A5 l
3.源端串接电阻实现阻抗匹配。
: ?2 \" B' v4 X  rRo+Rs=Z0
7 R/ d0 Y$ G, e2 k0 y( R4 X3 rRo驱动端输出阻抗* l: C9 J/ J0 n7 S7 D6 R. m0 P
Rs串接电阻大小(就是你提到的那些22ohm之类的玩意)
9 F1 l& P# g, QZ0传输线特征阻抗
) U7 g! e+ V. F' X
5 @9 ~/ Z) S: R8 n/ w讲的不一定对,请他人扶正补充

评分

参与人数 1贡献 +10 收起 理由
liqiangln + 10 感谢分享

查看全部评分

该用户从未签到

3#
发表于 2008-8-23 18:50 | 只看该作者
第二层GND,第五层PWR: 建议 3层GND,5层PWR: 地平面和电源平面尽量靠近,3层是地,2层和4层做SDRAM等高速信号走线,基本满足;同时电源和地的距离相对近一些。
% c5 c- ~5 U1 A + {% y" Z! m/ r, l9 R
CPU上的3.3V电源是通过导线引出到3.3V的铜区然后过孔连接,这样做是否合理?:如果你做了电源分割,这也是没有办法的事情,关键就看你是否愿意用导线引出1.2V或是3.3V,你现在的做法是芯片的整个下面都是1.2V了,这要看1.2V几个pin,是否有必要做这么大的面积,如果是条形的是否能解决。PCB
+ a  A* G2 [5 V1 D4 ~2 |$ J " V7 y/ H* }1 V# ]9 y) y8 ?# M

1 g! t3 z7 `" h; d
3 O4 H* i# h7 t) ?+ Z6 H$ n
! L! }( d0 P8 o+ E/ c% }我的PCB的第二层是一个完整的大地,从CPU上引出的SDRAM的时钟线,数据线,地址线如果都是在第一层和第三层:表层不要走高速线了,你的阻抗不好控制的。/ F" ^, z, K4 x0 p2 L
/ g1 I; D. @+ B2 m0 n4 c. }
关于时序什么的问题:你理解一下在数字电路中数据是怎么 发出 和 采集 回去的吗?

该用户从未签到

4#
 楼主| 发表于 2008-8-23 20:49 | 只看该作者
十分感谢二位的解答,真是不胜感激: f: V% W+ r3 {; j8 W9 p
我会看一下关于同步系统和数字电路方面的资料$ R$ a6 [- k0 p2 W# w
5 \$ D- W; u6 I9 i# w, p: L6 \; k5 q' U
另外这里还有一点疑惑
4 F. ]' y' ]5 S, f/ R表层不要走高速线了,你的阻抗不好控制:如果不走在第一层,所有高速线就要通过至少两个过孔,这样会不会对信号质量有影响?
: T, w, m2 u) }% t5 M9 V/ [8 S- ~+ o& c+ ^
另外CLK是否可以走蛇形线哪?

该用户从未签到

5#
发表于 2008-8-24 08:39 | 只看该作者
对于百兆SDRAM来说,两个过孔并不会对最终的信号质量造成过大的影响。
# X: n+ F/ Y1 M# t$ y/ Y
1 Y8 q$ v+ N; E3 o4 f6 ?0 ?但是必须明确一个概念,信号换层走线就意味着阻抗不连续,这就是为什么高速信号的布线尽可能避免打过孔的原因(貌似微带天线就是要避免过孔影响)。
3 q; ~) w* {7 w4 Y0 t* w
5 S3 M8 H9 A! K$ F8 p随着信号频率的提高,过孔引入效应已经对信号质量造成不可接受的影响时,就要着重考虑过孔的寄生参数(建模,调整参数)。
/ K- z. Q% w8 w" O
6 z9 K# K6 ?* ^" \蛇形线,貌似没有造成阻抗不连续,但事实是,工艺上对于蛇形线拐角的实现都是一种近似处理,并不能实现严格的宽度一致,那么随之而来的便是阻抗mismatch,拐角处的reflection等等。
, ]5 @( R8 r% r+ e  P/ }* P. C( S1 V! E0 v1 g4 Z1 [
蛇形线除了用来实现timing的控制,无其他正面作用。% C; o' }5 w* t' y0 b! z- R, Q- p

0 i9 F8 V1 `6 _: D" n你的clk如果没有特别需要,只要满足timing要求,没必要走蛇形线

该用户从未签到

6#
 楼主| 发表于 2008-8-24 12:37 | 只看该作者

' j& h; R( f1 \1 k, v说明:0 A  E/ f" S% c1 p3 p8 N
时钟周期:T = 10ns 100MHz
" N2 B& [7 |5 U# c4 K- P. V* b. ~4 N
' G+ P$ R% ~; F+ }TclkCLK在传输线上的延迟(线1到线2的时间)% w" r: D* K* s$ k( `# Q) X
TsddCPU发出CLKCPU输出DATA(由于地址和数据的延迟相同所以这里统称为DATA)的延迟,S3C2440上标注的是1~4ns (线1到线3的时间)$ U2 E. E" U- w$ C3 z
TdataDATA在传输线上的延迟(线3到线4的时间,线8到线9的时间). n( ~, x3 D+ Z9 o
Tsetup:时钟触发前所需要的建立时间(线4到线5的时间:SDRAM所需的建立时间(1.5ns),线9到线10的时间:CPU所需的建立时间(2ns))
  F& _4 o& h7 S+ M! U5 T
# l. @$ J" ^% @1 V3 eThold:时钟触发后所需要的数据保持时间(线5到线6的时间:SDRAM所需的保持时间(1ns),线10到线11的时间:CPU所需的保持时间(0ns))7 N# V( k6 @+ _4 G, I0 s. i5 F
) E* m) M0 ^0 p* e
TsacSDRAM收到时钟上升沿到输出数据的时间(线7到线8的时间)(max6ns+ ]( e; c# f# F5 _, z/ a
* {! Q; k- V1 b: s& ~% m

: Y6 }9 j- e+ Y时序的要求:  \* [' e& S$ H0 \3 i
对于CPUèSDRAM:满足Tsetup > SDRAM所需的建立时间 = 1.5nsThold > SDRAM所需的保持时间 = 1ns+ R. o2 h& Y: x, u: |
即:T+Tclk-Tdata- Tsdd >Tsetup è 10+Tclk-Tdata-1>1.5è Tdata-Tclk<7.57 Q" V; Z+ h- T( i3 k0 d% w1 Q
& F+ X  V% U' i9 _# t( S
T – (T+Tclk-Tdata- Tsdd)>Thold
è Tclk-Tdata-1 < 1 è Tclk < Tdata
. ^0 X! Y  M; X1 i* e5 c1 N* x) I

6 Q" v5 y- l0 |1 s" V3 u- t- @" I对于SDRAMèCPU:满足Tsetup > CPU所需的建立时间 = 2nsThold >CPU所需的保持时间 = 0ns
, S7 Z& U3 v; G' t4 t9 n" _即:T-Tclk-Tsac-Tdata>Tsetup è 10-Tclk-Tsac-Tdata >2è Tdata+Tclk<8 - Tsac" A; ~7 A1 _; `+ L/ \6 m; s
$ h, ^* V. e% r
对于这一时序,我的理解就是要考虑Tclk < Tdata,其他的很容易满足
) u0 x, x4 A& n2 _9 R" o$ P
- j9 [. V$ G- M: _1 U但是这里有个问题,在计算的时候都是假设数据的保持时间 = T,也就是 线4到线6的时间是10ns,如果数据的保持时间不是10ns对于以上的计算就不对了,至少计算CPUèSDRAM时,要满足Thold > SDRAM所需的保持时间 = 1ns的方程就不是这么列了,我在SDRAM上看到它的输出保持至少3ns,但是在2440的数据页上没有找到Output Hold time,所以这里才会假设线4到线6的时间是10ns,不然的话就是Tcpu_hold - Tclk + Tdata > Thold,假设CPU的hold time也是3ns,则Tclk<Tdata + 2;
: _# E4 C4 a9 \4 r不知这一问题如何解决?0 J* Z0 c, k# u- B
Tcpu_hold: CPU时钟第二个上升沿到输出数据无效的延迟(图上是:线1之后的一个CPU时钟上升沿到CPU发出数据无效的时间)0 X4 [- R6 \. ]( h

9 S6 P  P9 }/ Y; f; U7 @9 W以上都是我自己的理解,不知是否正确,请高手指点" N" {9 t7 H8 y1 k; a
5 b$ H' t5 `( ]$ |" I7 @
[ 本帖最后由 nacassoce 于 2008-8-24 13:55 编辑 ]

该用户从未签到

7#
发表于 2008-9-2 17:10 | 只看该作者
我的个人看法:
4 o7 I- i- z6 ^! A& ~- Z1.设置第2,5层为地和电源是对的.不要整到第三层去,关于电源和地层是否应靠近点,在此案子的应用来看,得不偿失,因为第二层变成了微带线,辐射更大.当然,走线尽量走中间层,表层少走线.两三个过孔对2440的影响可忽略: a+ |+ Z* S) L& x
2.关于嵌入式系统的SDR SDRAM,这系统不同于其它的同步系统的是,它的读时序和写时序是极不对称的,并且CLK始终是由CPU产生的。主要着重考虑的是"读"建立时间.以一个125M,周期8ns为例简单估算一下。.内存最重要的参数是tAC,假设最大为6.0ns(绝大部分都在5。4~6。0之间)。
" i4 M; `1 R; y- Z+ Y( O& q1 _) n) a: C' k* U5 H0 p
时序基准都以CPU的CPU上升沿的跳变时刻为0点。时钟从CPU到SDRAM的走线就用了0.5ns,然后第二个周期的tAC又花去了6.0ns,DQ才出现在SDRAM的PIN上,再过0.5ns之后才到CPU的引脚上。换言之,在下一个时钟上升沿到来之前的1ns数据都已经全部在CPU的DQ脚上准备好等待锁存。查看2440的SPEC,最小建立时间是2ns。时序裕量已经为负值了。要是跑100M,时钟周期10ns,还是绰绰有余的。至于HOLD的时间更宽裕得很。
( O5 o7 ]) [3 I& l0 C8 o
; X$ e3 b$ V7 E$ v5 T' `. Y: w
& F$ x1 p4 Y) ]6 k! {. q实际在处理2440这类SDRAM的走线的时候,只要保证最长的一条DQ在CLK到来之前有足够的时间准备好就行了,等长也没太多必要,但是CLK一定要短。

该用户从未签到

8#
发表于 2008-9-2 17:56 | 只看该作者
坐上沙发学习,越来越感觉在这里真的学到不少东西。有种相见恨晚的感觉。呵呵

该用户从未签到

9#
 楼主| 发表于 2008-9-6 11:42 | 只看该作者
我了解了,十分感谢!

该用户从未签到

10#
发表于 2008-9-6 14:12 | 只看该作者
原帖由 yangcanhui07 于 2008-9-2 17:10 发表
# e! [; q+ i5 ^, E! v( O- r& u* i我的个人看法:
2 k/ V4 @% {; J. H9 R* ?- G1 T1.设置第2,5层为地和电源是对的.不要整到第三层去,关于电源和地层是否应靠近点,在此案子的应用来看,得不偿失,因为第二层变成了微带线,辐射更大.当然,走线尽量走中间层,表层少走线.两三个过孔对2440的 ...
9 A' u' h/ U* b( ?+ {# q$ Y$ L/ _
% e. o& U1 J+ p5 M- G
tAC-----DATA ACCESS TIME--------equal tco
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-22 15:19 , Processed in 0.187500 second(s), 32 queries , Gzip On.

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

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

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