|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ecos应用是与硬件平台无关的,虽然开发板没有涉及到SDRAM和DDR,不过,在某些高端平台上使用ecos可能会遇到内存布线问题,为了完整叙述,这里一并给出说明。
$ |/ H0 s9 O. |& J9 K! I
. p" J# k/ ^9 g }% l9 S 很多人对内存布线感到迷茫,找不到切入点,不知如何下手,其实高速硬件设计的主要任务就是与干扰做斗争,内存布线也不例外。可以这样考虑:内存是做什么用的呢?是用来存储数据的,写入1读出1,写入0读出0,即保证数据访问正确。那么,在什么情况会导致数据访问错误呢?4 y1 e9 {2 t: I- f1 x: x
1、判决错误,0判成1,1判成0。可能参考电平不准(为什么不准?信号线内阻造成的压降),也可能是加性干扰,或者阻抗不匹配引起信号畸变。& V, _' X- Z( D0 S- F3 c7 u
2、时序错误,不满足建立/保持时间,或者采样点相位错误,不在有效信号位置上。触发器需要维持一段时间的能量供给才能正常工作,这个时间就是建立/保持时间。$ r/ q C7 @: S9 v- V
那么只要解决好这两个问题,保证内存正确访问,你的内存电路就设计成功了。
, m0 m3 J) D5 z, a1 Q0 z7 d
% `# a/ P% W! S, x) I 有了这个指导思想,内存布线就可以按部就班地完成。不过,不同的RAM类型,虽然目标都是避免判决和时序错误,但实现方法因工作模式不同而有较大差异。 d% ~0 a0 X* [$ ^' V7 t# U
4 @8 ^7 C$ S6 p" i- K5 l
高速系统一般采用低压信号,电压低,摆幅小,容易提高速度,降低功耗,但这给布线带来了困难,因为低压信号功率受信号线内阻影响大,是电压平方关系,所以要尽量减少内阻,比如使用电平面,多打孔,缩短走线距离,高压传输在终点用电阻分压出较低电压的信号等。SDRAM、DDR-I、DDR-II、 DDR-III信号电压一个比一个低,越来越不容易做稳定。2 {2 D- |. h" s/ k+ ^$ s5 V
7 i6 H- `" k- s- V) x
电源供给也要注意,如果能量供给不足,内存不会稳定工作。
9 {9 d% ^7 t2 c. v6 @/ J 2 t' q5 {9 Z3 m) o
经常看到“等长布线”,其实,等长不是目的,真正的目的是满足建立保持时间,同频同相,采样正确。等长只不过可以最简单地实现这个目的罢了。要定量分析线长,必须按照时钟模型公式计算。时钟同步电路的类型在后面有简单介绍,这里只要知道SDRAM是公共时钟同步,DDR是源同步就可以了。
3 w/ `& [( |4 g. k
' H' g. D2 }2 O SDRAM是公共时钟同步模式,只关心建立时间,不关心保持时间。这些时间和各段飞行时间,经过各个门电路延时,clock skew,jitter,cycle等有关,需要按照公式精确计算。算出各种参数后下规则,让EDA软件辅助设计。选出最长的一根线,不需要计算什么,只要与之等长即可。有些软件能自己算,有些只能自己一段段计算,可以编程让EXCEL表格对某种格式的报告文件自动求和,也算半自动化了。
* S' K" a5 i2 m& {/ R3 _3 u4 h/ D3 w6 c( x
DDR的所有信号都要加匹配,不论多复杂,为了稳定性。7 j. L, q0 c( h, f) z4 I
始端匹配串接一个22/33欧电阻即可,终端匹配分为AC匹配和DC匹配,阻容可以对噪点抑制,戴维宁电路可以提供高压输电,使参考电平更准确,虽然直流功耗大,但比单个50欧功耗小。% `* m' ]) c/ r; `6 @- g) U
CPU和DDR都是高速器件,DDR热量高,应远离。而且DDR是源同步时钟模式,对保持时间有要求,不是线越短越好,有最小距离要求。保证时钟稳定,同频同相,冗余大即可。! s* ~0 l+ u# i* } i
/ `( c( ?( C* R& |( D Y; b7 x; U
有时,信号线有交叉的情况,此时,可以在PCB里调线,再反标回去,因为RAM的各个数据线不需要一一对应,只要有地方存储bit就可以了。注意:刷新线A10不能调,需要读取RAM ID时也不能调整。
) X* }* z$ c: S% I9 S0 w* F. I " J j$ l, s( O$ n5 ~
评价设计的好坏要看Margin(冗余),setup time margin和hold time margin,SDRAM/DDR工作没问题并不意味着margin小,也许在实验室可以正常工作,可一到现场就死机。频率漂移,时钟抖动,相差,介电常数变化等都会导致采样错误/不满足建立保持时间,而margin大就可以尽量抵抗这些干扰,在一个恶劣的环境里仍然保持稳定。7 X' H2 L& [: W) U; ?
; o! K0 }1 G- E6 B
内存的表现形式有两种:内存颗粒和内存条。内存条自身有走线长度,需要计算在内。问个问题:内存条有3种安装方式:竖插、斜插、平插,你认为那种方式好呢?7 p1 O7 h* N* Y' \" P- [$ k5 n
6 L0 s5 X6 k( A/ k8 I6 F% g
附:时钟同步电路的类型" Q' r u- k' V4 {* ]3 j
) h0 [' E6 L6 k/ B4 j' {5 N; t
9 k/ y. {4 E) q4 m- m! X 源同步就是指时钟选通信号clk伴随发送数据一起由驱动芯片发送。公共时钟同步是指在数据的传输过程中,总线上的驱动端和接收端共享同一个时钟源,在同一个时钟缓冲器(clock buffer)发出同相时钟的作用下,完成数据的发送和接收。; J0 n& c5 I$ S7 k1 X/ a. I G) R
* \" L( L3 I! N- T
公共时钟同步,将同一个时钟信号用时钟分配器分成2路,一路接发送器,一路接接收器。在时钟上升沿发送数据,在下一个周期的上升沿采样接收。速率在200-300MHZ以下。* E% D; t( C7 k5 c
源同步是时钟和数据一起发送,时钟稍稍滞后发送,传输速率主要由数据和时钟信号间的时差决定。因此速率快。) A3 N8 L3 M8 X1 A9 @& C$ \! o+ Z
公共时钟同步电路走线长度有最大值len <=,源同步电路走线长度有最小值<= len <=) F6 ]- O* `: w' G2 i8 p( o. b9 F, C
源同步关心保持时间,TBI+10bit数据和DDR的DQS+DATA属于源同步电路。
0 r d- x8 K2 i; Y. b! T% N
n+ [! }! v! ^( ] J ------ 等长线/ j: i$ R1 b) h
|时钟|----------------->发送端时钟
5 F; H% S0 f$ w }, O+ G% D, U clk--->|驱动|----------------->接收端时钟0 v- g3 T# E' j/ a% Z. X: U+ A/ M3 {
| |---
& \8 M0 u7 }' u" X8 i: k ------ |
, ?1 m4 S0 w% ]# c$ m | |
( f! ^: @) |/ v# K c& V9 a ---<---PLL补偿
$ r! b& `$ d7 g0 A6 M, J, X* u 公共时钟同步( u- S9 C6 r6 O% P' @7 ^ D
. X6 i( Z/ F6 B- f: Y6 W& Y
-----' A1 q& P& h5 |% |& z5 {& P
|驱 |------------------>clk1 \1 F' Z6 ]' D2 Y/ w6 S4 N6 j
|动 |
2 L: E1 `8 ]5 D% ?6 b3 Q | |================>data
- T( L1 w o$ F7 N; r7 b' j, q9 \ -----9 t# R( r. `9 ~
源同步
. n; D- g+ j7 B) m
! J& q+ d2 \ v/ C, P) {2 F/ W* P7 n" g; j/ e n
--------- ---------
% [. n8 T6 |% _$ N1 b -----< >< >--------
x2 ]5 v0 [0 B. F2 X- E --------- ---------) s# ~+ S& k) Z" o+ i+ j
-----------% C# v ]6 ]3 f* X: A1 K. D
| | w" l' \4 V/ w
--------- -----------
h7 S+ @; G0 R; V) F, a |<--->|<-->|
0 }! _ ~* { C7 y 建立 保持 |
评分
-
查看全部评分
|