|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ecos应用是与硬件平台无关的,虽然开发板没有涉及到SDRAM和DDR,不过,在某些高端平台上使用ecos可能会遇到内存布线问题,为了完整叙述,这里一并给出说明。
0 b/ Y0 Q! Z" o4 F& N
- |# J2 j5 ^4 ^- s, ^ 很多人对内存布线感到迷茫,找不到切入点,不知如何下手,其实高速硬件设计的主要任务就是与干扰做斗争,内存布线也不例外。可以这样考虑:内存是做什么用的呢?是用来存储数据的,写入1读出1,写入0读出0,即保证数据访问正确。那么,在什么情况会导致数据访问错误呢?9 I6 A5 ]* S- s# A( `
1、判决错误,0判成1,1判成0。可能参考电平不准(为什么不准?信号线内阻造成的压降),也可能是加性干扰,或者阻抗不匹配引起信号畸变。
4 G. A1 D) S8 M4 q( v$ e1 j0 \ 2、时序错误,不满足建立/保持时间,或者采样点相位错误,不在有效信号位置上。触发器需要维持一段时间的能量供给才能正常工作,这个时间就是建立/保持时间。5 f& v; I- v+ n2 U
那么只要解决好这两个问题,保证内存正确访问,你的内存电路就设计成功了。. b% L' [! C/ m% F. ^1 R
8 E& e, [) h5 Q, e" z 有了这个指导思想,内存布线就可以按部就班地完成。不过,不同的RAM类型,虽然目标都是避免判决和时序错误,但实现方法因工作模式不同而有较大差异。
' Z. h$ b2 z0 F k6 X; L7 @ 0 Y! C8 l; I5 l5 B# f' X( e! y
高速系统一般采用低压信号,电压低,摆幅小,容易提高速度,降低功耗,但这给布线带来了困难,因为低压信号功率受信号线内阻影响大,是电压平方关系,所以要尽量减少内阻,比如使用电平面,多打孔,缩短走线距离,高压传输在终点用电阻分压出较低电压的信号等。SDRAM、DDR-I、DDR-II、 DDR-III信号电压一个比一个低,越来越不容易做稳定。3 @7 }0 G. x, k/ c2 c9 \
, f6 C+ i: o- e0 g- [2 A( U
电源供给也要注意,如果能量供给不足,内存不会稳定工作。
2 ^6 a! v! w1 p; i( e9 T$ E
$ _) E! t- s- S4 w: Z1 ~7 e7 W 经常看到“等长布线”,其实,等长不是目的,真正的目的是满足建立保持时间,同频同相,采样正确。等长只不过可以最简单地实现这个目的罢了。要定量分析线长,必须按照时钟模型公式计算。时钟同步电路的类型在后面有简单介绍,这里只要知道SDRAM是公共时钟同步,DDR是源同步就可以了。/ C6 O8 d# Q+ K
: E! u* ^/ H. ^3 \- H6 x9 A" Z SDRAM是公共时钟同步模式,只关心建立时间,不关心保持时间。这些时间和各段飞行时间,经过各个门电路延时,clock skew,jitter,cycle等有关,需要按照公式精确计算。算出各种参数后下规则,让EDA软件辅助设计。选出最长的一根线,不需要计算什么,只要与之等长即可。有些软件能自己算,有些只能自己一段段计算,可以编程让EXCEL表格对某种格式的报告文件自动求和,也算半自动化了。* n* c" s% o$ k$ P, @6 ?
4 F- B+ R j# i. y5 D5 I
DDR的所有信号都要加匹配,不论多复杂,为了稳定性。0 l0 u: }2 ^" g! c! X2 m" _
始端匹配串接一个22/33欧电阻即可,终端匹配分为AC匹配和DC匹配,阻容可以对噪点抑制,戴维宁电路可以提供高压输电,使参考电平更准确,虽然直流功耗大,但比单个50欧功耗小。; q. w& n- z1 H4 v
CPU和DDR都是高速器件,DDR热量高,应远离。而且DDR是源同步时钟模式,对保持时间有要求,不是线越短越好,有最小距离要求。保证时钟稳定,同频同相,冗余大即可。7 y; Q/ G3 ^# [, r
W1 I) m' s; e, n, \ 有时,信号线有交叉的情况,此时,可以在PCB里调线,再反标回去,因为RAM的各个数据线不需要一一对应,只要有地方存储bit就可以了。注意:刷新线A10不能调,需要读取RAM ID时也不能调整。
7 H4 O1 c+ b8 `
8 _4 N% ?8 }. C- {4 Q# ?6 _; H 评价设计的好坏要看Margin(冗余),setup time margin和hold time margin,SDRAM/DDR工作没问题并不意味着margin小,也许在实验室可以正常工作,可一到现场就死机。频率漂移,时钟抖动,相差,介电常数变化等都会导致采样错误/不满足建立保持时间,而margin大就可以尽量抵抗这些干扰,在一个恶劣的环境里仍然保持稳定。1 n( [; Q$ S! U# X9 T
3 e* R9 c! M5 X5 ]" F4 ` 内存的表现形式有两种:内存颗粒和内存条。内存条自身有走线长度,需要计算在内。问个问题:内存条有3种安装方式:竖插、斜插、平插,你认为那种方式好呢?. C* V+ ~! w6 `6 y. x: y* P! S( \
6 H A7 U J$ D2 W+ D
附:时钟同步电路的类型
% Q! S/ k2 I: L; s( n; F
% q5 p# V' _" J
5 p5 q+ `' V% _! f+ X 源同步就是指时钟选通信号clk伴随发送数据一起由驱动芯片发送。公共时钟同步是指在数据的传输过程中,总线上的驱动端和接收端共享同一个时钟源,在同一个时钟缓冲器(clock buffer)发出同相时钟的作用下,完成数据的发送和接收。# k7 L6 [: u* |
7 i# T, s+ {$ e O' r/ n# y8 @# |
公共时钟同步,将同一个时钟信号用时钟分配器分成2路,一路接发送器,一路接接收器。在时钟上升沿发送数据,在下一个周期的上升沿采样接收。速率在200-300MHZ以下。' g) |4 S H- R5 U. F" Y* y
源同步是时钟和数据一起发送,时钟稍稍滞后发送,传输速率主要由数据和时钟信号间的时差决定。因此速率快。
) M4 i5 S) u; X% c6 d* g 公共时钟同步电路走线长度有最大值len <=,源同步电路走线长度有最小值<= len <=
( i; k' Q# _' Q$ R 源同步关心保持时间,TBI+10bit数据和DDR的DQS+DATA属于源同步电路。
9 K4 ` }8 I( ?: G5 d! m. @3 |: p
4 ?( O* T! r* V$ M U7 d ------ 等长线
, O" x* g3 U+ d* n7 @5 w |时钟|----------------->发送端时钟
b1 i" i9 N5 } clk--->|驱动|----------------->接收端时钟1 y$ J- D) n. W2 Y# O+ M6 d3 T% A
| |---
2 c) K. s8 o* M% y/ r0 R ------ |
% f' a. T8 E% t6 h' T | |2 i( T/ c9 q5 V8 M
---<---PLL补偿1 s5 C4 k) ]* j, R2 |5 [3 u- T
公共时钟同步0 V# K0 d+ E) k+ Y
7 _% n5 w) L6 G8 K
-----
# o/ r( b, a: z; Q |驱 |------------------>clk- T0 r+ `) ?" t* l ~/ b, i
|动 |
5 j& _4 S; A* X6 J8 P1 R | |================>data
, Y+ M) ?, E, S, ^, K* N7 s3 u -----
, g" R7 g2 x3 r" u0 {5 E2 n0 ] 源同步; o) q l7 s0 l7 `1 A) D9 Z
" z6 J0 M% Z4 ]0 V' z& G
; V) t) k0 Q. j3 x" O8 [* Q0 Z `
--------- ---------
) _+ J3 B, u. |& k# O4 F% R -----< >< >--------
+ `% ^& R. Z$ u0 k --------- ---------. x7 {. Y+ ]( z
-----------
: x$ F4 x+ m7 U* Z& j$ {9 x | |
9 q& \0 I" w9 v9 F/ F --------- -----------. z" r% D( ^- j' U
|<--->|<-->|
9 b. m3 C% Z1 I1 D 建立 保持 |
评分
-
查看全部评分
|