EDA365电子工程师网

标题: 问问高手是如何走等长线 [打印本页]

作者: mengzhuhao    时间: 2007-11-10 22:31
标题: 问问高手是如何走等长线
问问高手是如何走等长线
5 b* _: I7 ^8 J& w( D4 L( ^3 ~/ G7 [7 Y) J! \* `) v
在走等长线的时候经常会用到蛇形走线【不管是pads还是allegro】7 ^6 `: t5 G9 [+ Z
走等长时候会在布线器里面设置对应的长度约束,例如网络组或者管脚对组之类的长度约束
5 R+ Y8 Y8 o4 c. G# {在手动走线的时候一般会打开走线长度监控器; P9 s& D+ |+ g& c6 V3 f7 O! g3 o
但是走出来的还是不好看,或者无法保证完全精确的等长  v0 P7 K  X! r7 O0 w7 n2 J
效果也不太好$ d1 F4 N; B. @' q- [6 i: g
) b% ^* X: c3 j
& n( D; e! ?1 J4 U/ @. O
那么问题就是:
# ~) O8 A# V7 \/ a8 Z% |如何才能走出漂亮的等长线?
1 G% ?6 K4 G% j4 }) d5 V- o如何才能走出精确等长的走线?【需要完全等长,一点不差吗?】" D& S* y# M! _) ]$ ~! T: B. N
使用自动匹配可以实现精确等长,但是结果非常之差,那么高手一般是如何走这些线的呢?
9 j/ j  T& _" I. q  K  G9 g* p. s* G6 u8 `9 z. u  V
走这些线的原则是不是先保证最长约束的线,然后在走逐渐短的线吗?
. x0 H; Q) F) z7 v1 R0 ^; g+ c' J- O4 z* [
希望高手能从常用软件PADS与Allegro方面说说相关的技巧在那里呢* W3 S. z( j8 t& G* Q8 Z
$ ?+ s4 k! Y4 G/ Z: ?2 s
" }1 W  k" @6 \
[ 本帖最后由 mengzhuhao 于 2007-11-10 22:53 编辑 ]
作者: mengzhuhao    时间: 2007-11-10 22:56
我在布线器里面设置长度约束了, N: {$ l  Z9 y
用自动走线效果很差2 O: m+ v1 ^4 f6 N1 M' a
手动的时候走起来经验不足效果也很差,也无法做到精确等长效果,感觉有时候在有限制的空间里面直接拉蛇形还是挺麻烦的一件事情
作者: SHADOW    时间: 2007-11-12 08:57
等长怎么可能做到一点不差,都会有那么一点误差的,我们一般是先走完线,再来调等长!
作者: changxk0375    时间: 2007-11-12 11:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: superlish    时间: 2007-11-12 17:40

作者: tianhao    时间: 2007-11-13 15:10
楼上的仁兄啊!我劝你还是鸟枪换炮吧?因为谁用99都很难做到
作者: 强娃娃    时间: 2007-11-14 09:40
99 好像可以自动调,但我不知道怎么做,没用过99.
作者: 5718366    时间: 2007-11-16 14:58
我都是手動走,不知還有更好的方法嗎?
作者: szkalwa    时间: 2007-11-25 09:45
一般我都是手动调整的,复杂一点的我会在PADS的ROUTER中设置一下可以严格走到等长。
作者: forevercgh    时间: 2007-12-21 20:27
依靠约束条件走出来的线还不不甚理想的。更多时候还是在打开布线monitor的情况先进行手动布线
作者: sdythcax    时间: 2007-12-27 08:08
原帖由 luoqs2003 于 2007-11-13 13:49 发表
, `6 }/ P9 T" ]$ g我用的是99
- a0 k( v: F- _4 Z想问问到底要怎么设置才能真正做到等长
' N$ L/ ~6 \* m* z单纯用肉眼看我觉得是做不到的,那需要哪些设置吗?

9 T+ F4 g+ C; T' V4 K! r& w
7 s! p6 {# S/ G5 N) n9 Z' T1netclass里设定你要等长bus.现在以D-BUS,J-BUS为例
  W3 c2 D9 `" [0 u4 b
' Y5 w; V! a$ ?, s9 m7 h* c0 e5 V+ p( G* u

4 {7 ]) M: q2 i5 v2 f6 z3 M7 y) _
/ y& |& ~, T! g- p; x2 J

5 u, M) M3 a" K, i; M7 o# z; w% W0 H. N
& d, M8 P0 |  B  F. T- X
* J1 G8 m7 u: w1 M' j0 U

$ M4 Y' ~3 ^* e! F' B4 z- K/ n1 b/ S6 M5 T
5 v9 ]% |2 Y/ _2 q, x# s

- J& L& ^. R# Q% _+ m& H* `* Q- w8 y9 }% @1 O- d5 r- i) e: U* n
8 j" `: C* k/ y2 S. L
2在规则(rule)里设定饶线的要求,形状,gap,误差等6 S2 \3 e6 [0 o; {' A

% `. }) R7 ^. e0 W. K2 q7 t' d; D2 B4 n0 b
( V$ [* c( y/ o

' x2 D# X/ N3 C* ?) {4 x$ n) k3 U+ r
+ |1 R  D0 ~- ]7 l+ v

, I% y. `( a* j4 v  X/ P( r6 [
$ a0 b) `- i1 ]9 e" j
) M2 C# v( h! w. s7 R% j
+ c7 K8 p1 t" g! z$ G; g
+ s$ Z/ D2 E# H* P4 m
3 B( E: r( p: @- o1 c+ r" t1 N9 F2 [6 R% ]; x# a5 U4 ~: s. L
( G/ P. v* l4 O( g" ]8 a

7 o+ k$ S' E; Q- w! K* b# ~6 c" Z$ m6 K0 B- X+ t0 k, Q% ~- w

7 N6 A3 U7 M- {8 a& b6 Q/ t; B
; Q2 k* j$ o+ D2 @8 f# C- r
% N: `" `$ o/ X
2 G% {; c$ c# |6 C* _$ U. A. m4 c7 b( a  c$ k( ]
3执行tools--equalize net lengths; J, O+ r$ j. K  i* Z0 z' C3 @

$ Z, X3 V) K; p7 g+ D- W; z( I
* K) C0 M# j/ l) `% r7 i  e" \4 o; G. n0 u' x0 ~
- U/ H! }1 H% \1 T

5 a- d- B2 g/ B6 U, |! H3 l! R9 Y0 Z1 h) R
% q/ _* Z/ Z2 F# I+ \# ?
% Q" Y2 P  U3 A) C) R6 E% X0 B+ l
; d% E. G# e3 ^8 p

3 _/ J$ |5 J' v4 W2 H9 U, s
( P- D8 Z7 o, l: ~/ |, Z0 G
& |  z- F1 r: S+ `5 D) C
* J8 b+ P5 @4 Z/ i1 k7 N9 B( h" A2 M$ ?. C9 D# X4 X- i
& y2 c. _1 B2 N% j3 ]- a9 H* w

9 c& X0 Q) S4 o/ Z. r
0 Z* c0 Q3 K. H- F& v& `( l% g6 M/ G! F3 E0 |- D

" M* `: k4 I% n# D" [
( H1 I! a' ~5 ^( \3 A0 {
8 Z# `; d  b$ q1 B4 这样就可以饶出等长线了。不过实在是惨不忍睹。最后可以通过reports—Netlist Status可以看出所有信号的线长。执行就会出现报表
. `, ^' `1 ~( V' t5 _6 V% r: s
; [+ M" C9 H/ @& m2 t7 n: U: p2 J1 ~/ q: m
5 P9 w* e' B- p7 w$ i$ f4 }

  W. C) t; a5 |0 ~4 H: V" T! A, i1 ^& _0 g/ v( O
# E" g9 k! `3 b: x

( X5 r& u8 s* O' N, r; t6 a8 d  f
+ [! M% `( N! n* c+ h
$ ?7 t2 O0 l5 n( T1 i! d- d3 s: b. p/ `5 E

3 s$ z+ m4 _1 r- G3 [2 p. n8 ]- {; N' }4 i/ Y

7 {: w$ x/ B4 y
6 o$ |. p2 k! Y* B9 Q1 Z  A7 D) g1 Z5 t  J

, y( L" F" Y7 n7 a$ D4 V+ s
2 v1 j7 h7 K5 M( u+ F3 F& a- s" g' L* j6 s

$ e" S" v% `) p3 T
: }# z/ T; O. m, S/ F2 W9 ?7 i6 w
  n' x4 e) C1 d/ g0 i$ i  p
0 A: N! K8 c& {
# H# f/ V4 U( M, L7 A4 I7 J- d: ^6 E. h1 r# _* {* n

3 `! I. P. e1 ]# u
4 t" M; b  W" S- q
( @% v& G: X) a/ w
  U( O. e) c& X5 g3 ~$ o( v4 r/ x5 t0 [
7 u) z( [4 I% r* l$ v5 U

; P; ~9 y! I" S: V( z' \
; ~+ I% \% o* B5 equalize net lengths多用几次0 \% }9 F4 n: u# S  S: M# j
注意:拐脚线是不会给变为蛇形线的,所以最后如果还差一点,就把45度拐角变为90度,等equalize net lengths成功之后再把90度变为45度拐角' |4 k# S# B" q

* ~- L$ ]! W. h2 V1 }1 v: {: @$ f! \4 t& k$ [+ l" L3 S
9 _% V4 X# N& a. [) N" a5 u$ T
[ 本帖最后由 sdythcax 于 2007-12-27 08:09 编辑 ]
作者: Antony    时间: 2007-12-27 11:27
原帖由 sdythcax 于 2007-12-27 08:08 发表 / g2 F- R% A7 R" ^
, S4 F! }: X5 \8 T! B% |, Q

" d4 c$ ^% ]: J* [  [$ l& i1在netclass里设定你要等长bus.现在以D-BUS,J-BUS为例9 q$ ~3 n5 B& w( j
4 O7 M1 v# W- i$ e# K
' l# r% ~- q. d. P5 a9 E' r

5 z* e; m3 \0 y) o( Z, j, P2 V0 R3 w$ i! h" i; h9 U4 a

# z6 H! p# p! _/ N6 L# {- R8 M. u% ?

) M7 s! \8 ^  P) o, t8 @5 D; m6 @; X  _8 d3 G8 r5 m; N$ o& S
1 t5 B8 x6 q2 C
, o* D( f0 q+ z1 s& q4 W# ~$ {

: }5 [; Y1 X4 y2 R# j3 T
* v& v2 ~  B# h0 J1 `) V. g- W. o4 Q; U5 T

* a, p4 c# e8 a* c0 e1 S3 S3 B6 i( C$ D5 p& K* X2 H# f1 g! W
2在规则(rule)里设定饶线的要求,形状,gap,误差等, m5 U8 @1 H5 N+ a* W

2 e' |( b' y% y2 S9 K$ h( v' F
) }9 F* V5 j: p5 ?
! s5 @, L# i. _0 d1 W
! V. |9 x3 U2 y. k6 n8 V% m# m' n* s4 }% J3 l- D
/ S: ]' t+ c4 V8 g( z

( }' d+ l' E0 q& f! K
- ]" I/ z# e8 N* p. ^" a" ]6 x3 I/ a5 Y) T3 p

3 D7 y0 T' {) t# l- [6 `$ a
. N6 a! o. M! n: }/ \* O, ~
" x5 b! W  H% h9 s2 S
; x* P/ p/ J0 j6 A8 J- s5 N5 p+ G$ Y* ^1 U
6 R# r1 I# w) H3 ^
6 y% _2 [0 X& s' d4 B
+ U3 i  m, `% X* ^
0 N5 d" O* U; g* C$ F3 n

4 K0 U9 q0 V- u7 n
& `8 d. L, S2 e* C, J" g- k0 N8 Z% @' e, U
3执行tools--equalize  ...

2 K2 D! T6 ]* K! N4 V
& T. @9 T$ y8 M" b, P1 w2 {
作者: surz168    时间: 2007-12-27 14:09
学习了
作者: liujie123    时间: 2007-12-27 15:24
学习了
作者: meria    时间: 2008-1-3 20:02
学习中
作者: butterfl6    时间: 2008-1-4 13:47
走好线,再调整就可以了
作者: linstaryu    时间: 2008-1-16 17:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: libsuo    时间: 2008-1-17 10:33
学习一下
作者: soul24k    时间: 2008-2-28 19:29
原帖由 sdythcax 于 2007-12-27 08:08 发表
+ X3 W5 x5 [; R# l1 G, y% A7 A7 b1 N+ w; s
' {7 \5 j: H4 w4 |
1在netclass里设定你要等长bus.现在以D-BUS,J-BUS为例* x' k9 d. _0 _  K
9 S, K2 B" e8 a5 W5 O6 H

2 ^$ g& W7 V* {* T/ n
& J1 ^. Y* L% `0 r9 B4 j
8 C* K8 w- X& ]% ?8 i* k2 x  Q3 @8 O4 r4 f6 W
+ {4 I" w1 m  r! g) t3 Z* O

5 G( d- j  Q# }8 D- O0 W* B7 c# \7 Q3 p' j& W
' x" R9 E- V( V8 h5 c) c
/ x/ w; f) |' F/ b
' O8 s$ s% r8 l
, W; z+ j" b; a8 A0 a, ?" v0 A/ |
7 O/ `( G3 K; V; T
* C4 L) j' w. V! ?+ L- F9 o
1 ~2 V! I6 h7 V' M" I, [
2在规则(rule)里设定饶线的要求,形状,gap,误差等) U$ \- Q3 z+ M' ?* w6 P
6 q6 g' l# c0 E3 ^& l. a& G

8 c; X8 Z! V, E6 {# _0 P7 t% Q
1 I& G5 G6 Y6 ?& R; L
+ v% V0 {5 H- Q3 l) c
4 _% z2 l4 b7 [- ?( \1 G# A( \& Z9 |) ]: Z, V/ d* {/ ^, h0 q+ W2 Q

$ K  _9 b- _& j$ S% I0 ^! }& n5 L$ ^" b8 O" |$ E* X, w

0 P# b! {! A' B4 h) l1 G* X
, i$ w" M8 P  w2 i/ D7 h
4 f0 k( [/ j5 H+ `* ]! c
$ ~$ \) o- s2 w2 _! J7 R! ?: S% Z1 F; ~% G+ ^

4 {- e. M( B1 M
' P: [2 N5 A' @$ u3 x' F* z$ a+ e9 F0 T" {5 e8 M
  }% ]9 J2 d/ m- l* W, c9 U
, n2 O3 B1 I" V; k: L- @

9 q; Z) j" c9 N) {, @$ G: E, e- L8 Y/ m% H  `- L

8 ?: Z. a& x' Q2 \* ?1 A3执行tools--equalize  ...
7 O3 U+ p4 j1 i# x
讲得很好,鼓掌
作者: may    时间: 2008-2-28 20:11
呵呵,我是用最最老土的办法,
3 R# ^' a; `* G" e8 R就是用等长表,
  J  m' K4 s" I一根根的绕,! p. w( T  ]2 h* a1 e; v
方法呢,就是先整体看,比如DDR部分的线
+ D1 c; {$ K/ k& X0 q先看CLK.CONTROL,COMMAND.DATA.DQS相互之间都有些什么要求
$ L  ?9 y, v) r再根据要求,把每组线要做到多少算好, c7 y4 ~+ x% R+ A1 n/ [. [6 O( p
后用就开始绕了,4 v; A0 T/ U7 ~% F" N
从DIMM的挤的一边开始绕,+ ?& W; ]+ N9 R6 E$ f9 ^/ i
先把一组内最长的线尽量缩短,) p& L* r3 T: f! n7 B
然后再不能缩了再把组内其它根线绕到它允许的范围内。" ^: }9 x* o2 M3 |' }

* T+ L" I8 p8 s1 S大概是这样,以前绕过好多线,相差1MIL的都做过,不过现在好久都没绕过了,呵呵6 w% d2 K' g$ a, E$ `2 o

1 M: J% e. Q, m[ 本帖最后由 may 于 2008-3-5 08:46 编辑 ]
作者: zlei    时间: 2008-3-4 22:48
学习中
作者: 心嫣    时间: 2008-3-13 11:57
原帖由 may 于 2008-2-28 20:11 发表
" z. h( j4 ?! @% f呵呵,我是用最最老土的办法,
/ l7 R4 Y5 ?. {8 i+ a4 ]5 o就是用等长表,
) J+ F, i6 x2 a一根根的绕,
/ e$ O& R$ Q& ^$ s方法呢,就是先整体看,比如DDR部分的线
6 B3 G: k, ~" q2 M1 M2 W+ i# m( |先看CLK.CONTROL,COMMAND.DATA.DQS相互之间都有些什么要求
# \" G' R- n4 q; j, u# j再根据要求,把每组线要做到多少算好( s; u' H. j# ]$ I$ E( c
后用就开始 ...
# @" z( s: |- D% M
' w; T9 z1 [( T+ f! ?& w; z4 b
好历害啊!
作者: mengzhuhao    时间: 2008-3-13 19:02
原帖由 may 于 2008-2-28 20:11 发表 " c1 r0 A2 D9 b
呵呵,我是用最最老土的办法,
2 O" c+ d9 @* d就是用等长表,' E1 k* [& r+ ^( a8 L" Q
一根根的绕,9 ^0 B3 s' x: V9 Z' {4 O9 P
方法呢,就是先整体看,比如DDR部分的线7 K6 o0 ^: o- s8 @' K
先看CLK.CONTROL,COMMAND.DATA.DQS相互之间都有些什么要求" l# N0 }7 m& }/ G* E, H# V$ M
再根据要求,把每组线要做到多少算好2 F4 `6 G) N# U0 ^" l! U8 A
后用就开始 ...
厉害啊
作者: yicf    时间: 2008-3-31 13:39
希望有高手能提供点等长的技巧了
作者: wq1124    时间: 2008-4-11 10:26
学习过了
作者: zhutou250    时间: 2008-4-12 14:35
一般的BUS等长还行 如果是有PACKAGE长度要求的话 就不好弄了
作者: WS99    时间: 2008-4-16 23:35
请问什么情况下需要等长,如果频率150M的话,对等长有要求吗
作者: anping_2008    时间: 2008-4-30 00:09
现在画板哪有人用自动走线的,都是手工布线。自动走线太烂了。要哪天软件升级到自动考虑EMC、EMI等一系列干扰问题并加以解决的话,那就不用PCB工程师了。




欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2