|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ecos应用是与硬件平台无关的,虽然开发板没有涉及到SDRAM和DDR,不过,在某些高端平台上使用ecos可能会遇到内存布线问题,为了完整叙述,这里一并给出说明。/ _5 T `; v9 O6 H
S8 j9 o& \" b( G" J: A
很多人对内存布线感到迷茫,找不到切入点,不知如何下手,其实高速硬件设计的主要任务就是与干扰做斗争,内存布线也不例外。可以这样考虑:内存是做什么用的呢?是用来存储数据的,写入1读出1,写入0读出0,即保证数据访问正确。那么,在什么情况会导致数据访问错误呢?
2 m6 ]) B* t1 t# V 1、判决错误,0判成1,1判成0。可能参考电平不准(为什么不准?信号线内阻造成的压降),也可能是加性干扰,或者阻抗不匹配引起信号畸变。
/ ~, i* x: X+ w 2、时序错误,不满足建立/保持时间,或者采样点相位错误,不在有效信号位置上。触发器需要维持一段时间的能量供给才能正常工作,这个时间就是建立/保持时间。# G; W0 z9 J4 Z. N) v v& i. c
那么只要解决好这两个问题,保证内存正确访问,你的内存电路就设计成功了。
) l& u/ a8 K: z+ ^* S& E. F: |7 y " n! O8 Q0 p! B) V J% A6 l( b! N
有了这个指导思想,内存布线就可以按部就班地完成。不过,不同的RAM类型,虽然目标都是避免判决和时序错误,但实现方法因工作模式不同而有较大差异。* g( U, [) w: @6 l. R9 L
- U0 @3 c. B4 h, V6 p/ Y 高速系统一般采用低压信号,电压低,摆幅小,容易提高速度,降低功耗,但这给布线带来了困难,因为低压信号功率受信号线内阻影响大,是电压平方关系,所以要尽量减少内阻,比如使用电平面,多打孔,缩短走线距离,高压传输在终点用电阻分压出较低电压的信号等。SDRAM、DDR-I、DDR-II、 DDR-III信号电压一个比一个低,越来越不容易做稳定。. n5 d- `1 ~) w5 |+ B4 E
; ^3 l, p2 ~6 |8 K. z& {8 i! l 电源供给也要注意,如果能量供给不足,内存不会稳定工作。
% p$ D! t0 ]) L
* N- {& N/ a. o9 j9 n, v 经常看到“等长布线”,其实,等长不是目的,真正的目的是满足建立保持时间,同频同相,采样正确。等长只不过可以最简单地实现这个目的罢了。要定量分析线长,必须按照时钟模型公式计算。时钟同步电路的类型在后面有简单介绍,这里只要知道SDRAM是公共时钟同步,DDR是源同步就可以了。# B8 W1 i* H- s& a7 C7 F7 I6 M
e2 h6 Q. m" n$ I& d# p SDRAM是公共时钟同步模式,只关心建立时间,不关心保持时间。这些时间和各段飞行时间,经过各个门电路延时,clock skew,jitter,cycle等有关,需要按照公式精确计算。算出各种参数后下规则,让EDA软件辅助设计。选出最长的一根线,不需要计算什么,只要与之等长即可。有些软件能自己算,有些只能自己一段段计算,可以编程让EXCEL表格对某种格式的报告文件自动求和,也算半自动化了。3 v5 Z) \, e% D- O; d. G8 R
7 T$ N7 _+ m! S ]
DDR的所有信号都要加匹配,不论多复杂,为了稳定性。7 l% Y+ A5 _4 p9 f8 [4 v; `
始端匹配串接一个22/33欧电阻即可,终端匹配分为AC匹配和DC匹配,阻容可以对噪点抑制,戴维宁电路可以提供高压输电,使参考电平更准确,虽然直流功耗大,但比单个50欧功耗小。
; H. g5 r% m6 a% B2 k CPU和DDR都是高速器件,DDR热量高,应远离。而且DDR是源同步时钟模式,对保持时间有要求,不是线越短越好,有最小距离要求。保证时钟稳定,同频同相,冗余大即可。
; P, S1 x' k/ u , M' Z0 v3 y! T9 x0 d4 {% l
有时,信号线有交叉的情况,此时,可以在PCB里调线,再反标回去,因为RAM的各个数据线不需要一一对应,只要有地方存储bit就可以了。注意:刷新线A10不能调,需要读取RAM ID时也不能调整。( I: T. G6 m/ Y1 R( j) y* t
, Y4 C. }5 w! K* ]- M2 Y 评价设计的好坏要看Margin(冗余),setup time margin和hold time margin,SDRAM/DDR工作没问题并不意味着margin小,也许在实验室可以正常工作,可一到现场就死机。频率漂移,时钟抖动,相差,介电常数变化等都会导致采样错误/不满足建立保持时间,而margin大就可以尽量抵抗这些干扰,在一个恶劣的环境里仍然保持稳定。" J5 F, e# }) O' p: |& I) E; ?% }5 T
, @3 x$ j" }% v- l8 g
内存的表现形式有两种:内存颗粒和内存条。内存条自身有走线长度,需要计算在内。问个问题:内存条有3种安装方式:竖插、斜插、平插,你认为那种方式好呢?( |3 j z/ L4 U5 Q) D* g
7 v& l# H8 X) _1 z Y, O& _- V附:时钟同步电路的类型
$ p+ Y6 W- q3 n* \5 ]: |) I6 k7 f G: s. {
7 ^0 X& |. m& ], E0 y7 u" ^7 A
源同步就是指时钟选通信号clk伴随发送数据一起由驱动芯片发送。公共时钟同步是指在数据的传输过程中,总线上的驱动端和接收端共享同一个时钟源,在同一个时钟缓冲器(clock buffer)发出同相时钟的作用下,完成数据的发送和接收。, C8 l1 }# R" D2 H& k a6 R
+ m3 R6 i9 W+ W 公共时钟同步,将同一个时钟信号用时钟分配器分成2路,一路接发送器,一路接接收器。在时钟上升沿发送数据,在下一个周期的上升沿采样接收。速率在200-300MHZ以下。: x) a) H0 N! d7 A
源同步是时钟和数据一起发送,时钟稍稍滞后发送,传输速率主要由数据和时钟信号间的时差决定。因此速率快。
* C# z; V! ^/ C5 c4 Z; o) h9 K 公共时钟同步电路走线长度有最大值len <=,源同步电路走线长度有最小值<= len <=9 `3 s) W; ]! {6 j1 X, z. n
源同步关心保持时间,TBI+10bit数据和DDR的DQS+DATA属于源同步电路。) J$ w; Y. i/ Z+ i3 q
$ B# R+ O; B7 M( Q, ~4 O
------ 等长线
1 v2 C$ q" v7 T% y5 r) N |时钟|----------------->发送端时钟
) e, d- m% O7 P! a/ e- C% M8 ` clk--->|驱动|----------------->接收端时钟
' c* r8 P. i6 N' ?' g | |---# S$ Q# A `3 F9 p: B
------ |
3 H Z# f& O1 \; z5 H f | |/ r+ {. {2 s9 V# n, N
---<---PLL补偿- ?, e/ K% ^ |& B
公共时钟同步
; f9 a+ v% {& O2 [( T+ \ H
" r6 S9 A/ g( f8 S$ ^ -----
+ x( d! n, j* `3 W6 r |驱 |------------------>clk
. U( t# T: C/ s p! Z |动 |
) k L4 ?3 E5 d: t | |================>data
9 n$ v: [! H s0 R9 Y9 ]& g -----
- k( P* Z: g4 |( o+ L 源同步' Y6 a$ s7 i# u0 a
0 {' I% t) I8 \$ j/ A8 K/ [
# y; y0 u. ?% Z- l1 l0 z --------- ---------
9 e9 E1 f# k+ O -----< >< >--------
: G5 A! g) @' \1 N, } F --------- ---------9 t/ r6 Z, P- k
-----------/ S- X. g1 H4 ~) Q4 ^
| |
7 m; [; @9 [5 v% b. u/ z --------- -----------
/ W! x( u5 B: `# `0 {3 R3 {! P2 Y |<--->|<-->|
) v$ q5 p. K2 k; z, R* M6 J 建立 保持 |
评分
-
查看全部评分
|