EDA365电子论坛网

标题: 阿毛调侃(13)---【原创】史上最强悍Allegro差分线匹配工具与开发往事 [打印本页]

作者: amao    时间: 2015-6-30 10:20
标题: 阿毛调侃(13)---【原创】史上最强悍Allegro差分线匹配工具与开发往事
本帖最后由 amao 于 2015-6-30 11:52 编辑
7 K8 v$ q: f. N: x9 k4 k
( H8 j" }& H2 h, ^/ p
【原创】史上最强悍Allegro差分线匹配工具与开发往事) Y& k+ w( l4 d% w! z9 N
毛忠宇 201506( I( \6 h0 f$ O- ?" Z5 X
. E2 v6 I  V. ]7 ?9 k5 K5 u
差分对提取工具开发往事

       上篇《我与PADS的那点事》文章发表后,收到不少网友索取所写小工具的免费授权文件,程序能被大家接受,不免有“那么一点点”的成就感。

       在Allegro Constraint Manager菜单没有出现前,那时把网络设置成差分线需要手工逐对添加Property属性来实现。那时我还在H公司,用刚学点皮毛的PERL编程写了个差分线的自动提取工具,这个程序在部门得到推广及广泛使用(现在H公司还有不少人在使用)。

我写的程序使用了很久一段时间后,Allegro在后来的版本才出现类似的功能,它提出了Constraint Manage的概念,差分线等各种网络的规则通过类EXCEL界面管理,如下图1。这样使规则管理起来更直观及更简单,其它EDA厂商的软件后来也跟着出现了类似的管理界面。

2 I- k& y. k/ J
图1  A软件的Constraint Manager界面

EDA软件A*差分对自动匹配存在的问题

当年在H公司由于原理图与PCB LAYOUT软件平台的原因,所有网表都是第三方的模式调入。因此其员工是业界上对调第三网表都很熟悉的,我那时开发的程序还需要手工对网表文件手工处理一下,但他们用起来基本没遇到什么问题,就一直没有更新了。

上段有个现同事向我讲起她所用的Allegro自动生成差分对功能时,还有些不够完美的地方:一次只能生成一种类型的差分线:要生成下面网络组成的差分线,Allegro中要在匹配字符框中分别多次输入:N0,P0  N1,P1   N2,P2   N3,P3……

'B7ABC_CLK_N0'         'B7ABC_CLK_P0'

'B7ABC_CLK_N1'         'B7ABC_CLK_P1'

'B7ABC_CLK_N2'         'B7ABC_CLK_P2'

'B7ABC_CLK_N3'         'B7ABC_CLK_P3'

……

  }! R4 ^- p- A  G+ G% G5 U7 G- h
图2  A软件匹配输入界面

如这类网络不多手工处理起来问题不大,如下图中的从N0,P0到N43到P43只需要手工输入44次匹配方式。而程序又不能识别P* N*,万一要网络定义到N1000,P1000,哪怎么办呢?要手工输入1000次那就有点“扯蛋”了。

6 }, k, R, E- c7 [1 s% _% r1 r6 b1 l
图3  差分网络定义格式

*以上测试基于16.5版的平台,更高级的版本没有测试。

EDA软件M*差分对自动匹配存在的问题

业界另一个EDA巨头M公司,他的差分对匹配算法很强悍,但是强悍得过了头,识别后会多出很多不符合要求的差分对,这些需要手工再去删除,反而有点画蛇添足了。如下面它对网络的匹配效果,多出了太多不想要的差分线。下图4中所有粉红色都是被匹配出的错误差分对:如B8_TX_P22  B8_RX_P22 ,而真正的差分对是B8_TX_P22  B8_TX_N22

! s( i7 A! W" V# \9 j  h
图4  M软件匹配出的多余组合

自开发差分线匹配工具的优点

基于目前两在EDA软件巨头差分对算法方面的问题,我优化算法,克服了他们现存的缺点,并实现输入窗口可以同时加入多个匹配字符,从而一次性提取出所有差分线,对抽取的结果可以在文本文件中或调入后在Constraint Manager界面上把多余的删除(删除的操作总比增加的操作用起来更令人愉快),从而一次性匹配几百乃至上千对差分线。

1 r8 D* {( W* G: `1 d: O; g
图5  自开发的差分线自动匹配软件工具界面

下图6是用程序对网表处理后,不到1分钟就完成的179对差分线匹配图。

% e. m0 e% \8 ]
图6  自开发软件匹配效果

特点

1) 克服两大EDA公司的差分线匹配算法问题

2)适用任何Allegro版本

3)可一次性全部匹配


" j3 N8 `. {! F, N3 o
*《IC封装基础与工程设计实例》书籍答疑QQ群号:433148683
* 如对相关内容感兴趣,请关注微信公共帐号:amao_eda365附

3 h, s6 u* \. i/ k& s: S; [程序使用方法:1 [; f% E& m- ]4 c4 z* U
; S( D4 ?+ f$ Q" {

作者: amao    时间: 2015-6-30 10:23
软件与使用说明书

allegro_dif_net_V1.rar

4.04 MB, 下载次数: 654, 下载积分: 威望 -5


作者: wanily    时间: 2015-6-30 10:42
谢谢分享  楼主好人 大牛
作者: 霹雳风雷    时间: 2015-6-30 10:56
绝对好东西,32个赞!!!
作者: 流云逝水    时间: 2015-6-30 11:10
我来顶顶顶顶顶
作者: elaine2011    时间: 2015-6-30 11:40
好强大
作者: pjh02032121    时间: 2015-6-30 11:49
牛xxx啊,果断下载!
作者: 龙凤呈祥    时间: 2015-6-30 12:51
阿毛版主太厉害了,佩服大神开发了这些实用工具
作者: qiuzhang    时间: 2015-6-30 14:21
前人种树,后人乘凉
作者: bingshuihuo    时间: 2015-6-30 15:23
谢谢分享  楼主好人 大牛
作者: crazywang    时间: 2015-6-30 15:34
很好很强大啊!
作者: nighteif    时间: 2015-6-30 16:00
顶起来
作者: Eiwen888    时间: 2015-6-30 16:57
必须给力赞啊,楼主好强大
作者: wpc4208211    时间: 2015-6-30 17:31
毛哥的干货真多,速速收藏
作者: henry201    时间: 2015-6-30 18:55
感谢大神无私奉献。
作者: chaoran    时间: 2015-7-1 09:19
感谢啊
作者: joy_show_wb    时间: 2015-7-1 10:46
:victory:
作者: itboxue    时间: 2015-7-1 16:26
呵呵,我也可以回复了,真开心。
作者: loyou1993    时间: 2015-7-2 16:57
感谢!
作者: wmch987    时间: 2015-7-2 17:09
大神啊,软件超级好用,顶顶顶啊
作者: wxwen    时间: 2015-7-2 22:32
好东东,学习了~~~
作者: jacekysun    时间: 2015-7-3 09:14
3ks
作者: himonika    时间: 2015-7-4 15:37
谢谢了!
作者: cqzy6666    时间: 2015-7-5 16:06
谢谢,大牛分享
作者: himonika    时间: 2015-7-7 22:26
希望多出帖子,供大家拜读~感谢作者奉献。
作者: flying-yu    时间: 2015-7-8 23:25
必须收藏,谢谢分享!
作者: wangye_123    时间: 2015-7-10 09:02
谢谢  毛版主分享这么好的工具
作者: toffee520    时间: 2015-7-10 20:14
多谢分享!!
作者: jacekysun    时间: 2015-7-12 09:00

作者: shengansong    时间: 2015-7-12 10:31
严重支持,:lol
作者: jean.xiong    时间: 2015-7-13 16:43
还没用呢,不过看了介绍,觉得很实用,应该可以节约很多时间
作者: luotuoyushe    时间: 2015-7-15 22:01
谢谢楼主!
作者: lhhwt    时间: 2015-7-16 14:30
:):):):)
作者: puhui    时间: 2015-7-16 21:17
学习
作者: 1747874570    时间: 2015-7-20 11:11
感谢老师的大力支持,万分感谢。
作者: 1747874570    时间: 2015-7-20 11:11
感谢老师的大力支持,万分感谢。
作者: 1747874570    时间: 2015-7-20 11:11
感谢老师的大力支持,万分感谢。
作者: 1747874570    时间: 2015-7-20 11:14
感谢老师的大力支持,! s3 R+ b* Y2 q. j- V+ l/ S2 P

作者: 1747874570    时间: 2015-7-20 11:16
谢谢分享  楼主好人 大牛
作者: 1747874570    时间: 2015-7-20 11:20
必须给力赞啊,楼主好强大
作者: 1747874570    时间: 2015-7-20 11:21
感谢老师的大力支持,您的工具非常好用
作者: puhui    时间: 2015-7-20 20:57
学习
作者: huzf    时间: 2015-7-21 15:23
感谢分享
作者: puhui    时间: 2015-7-21 20:02
学习
作者: yixin    时间: 2015-7-22 17:03
感谢大神分享了这么多好东西
作者: amao    时间: 2015-7-24 10:12
有同学问到下面的这类差分信号如何匹配
, {* h- b; F( r! |DP_PEXPERI_N<1>+ P0 O1 a$ p1 Q
DP_PEXPERI_P<1>
2 B  ?  s' R: z5 d- P: A3 Z+ EDP_PEXPERI_N<2>4 y4 y3 `- m; ~7 w2 A$ E4 h2 n& @% z
DP_PEXPERI_P<2>: `( u3 Y+ s9 h: t& e3 {
DP_PEXPERI_N<3>! @) |1 Z" `# \$ ]9 F  W/ |$ X
DP_PEXPERI_P<3>
; n; x4 M3 p- _& }; A/ ^' ?. W.....9 _  c8 `! {2 H+ v( p" D
对于这类只要使用下面的匹配方式即可:  ?1 m' W# W9 _( [* k
P<\d+>=N<\d+>  8 J8 D$ v: k! f+ K/ C) d! Z

$ Q4 @% p1 H# I( _; F4 x2 K4 Y) N5 D6 d! B; j5 D
如果要匹配
" j" I: }% k$ x* t7 ]$ IDP_PEXPERI_Nabc1abc  Y3 D6 d/ u6 ]/ l1 m
DP_PEXPERI_Pabc1abc" K( I- f# x# F3 P/ W
DP_PEXPERI_Nabc2abc
- G5 I1 X& U( V' aDP_PEXPERI_Pabc2abc$ u! J" g$ B! G1 \+ P
你应该会怎样输入了吧" d7 R6 A7 J& n8 B2 S; n8 r- q

. a; N- C& g& L" e/ `) T5 a欢迎挑战其它匹配模式$ c; K3 W7 O6 C6 O  W( L

3 w" l  b  |, B
3 c$ n3 Q6 ^6 w: m
- a3 y; |% \" f7 S) k$ C4 K# B$ R! f5 f8 M. Q) p  A

作者: lizhengjun017    时间: 2015-7-27 23:28
太强大了
作者: l8877l    时间: 2015-7-30 22:49
谢谢大师,感谢分享!
作者: tdl    时间: 2015-8-3 13:56
功力好深厚
作者: finezhang    时间: 2015-8-3 21:49
感谢大师的杰作
作者: 无际的绿海    时间: 2015-8-4 10:35
听说是个好东西
作者: eagle31    时间: 2015-8-5 15:31
谢谢分享 谢谢
作者: Aseyer    时间: 2015-8-6 15:21

作者: allegro小菜    时间: 2015-8-7 14:58
不得不说!楼主这是好贴!学习了!
作者: lbq211    时间: 2015-8-9 11:32

; W3 O0 p: I2 W' E% R/ S; y6 M谢谢分享  楼主好人 大牛
作者: bingshuihuo    时间: 2015-8-12 10:51
感谢毛老师无私奉献  2 a, q  b6 @  B) L$ x
为PCB 操作提高了效率花费的心血 ' y) i$ I) U! i3 F2 L4 p
& x$ {" ]( e3 l6 l5 z
看似简单
/ t8 V. ~# B2 V却花费了心思去研究
; V2 H- O. Q4 l; y9 u& Q+ B: r
8 Q! S# P& a8 `) l看似简单
. k( u6 d) r/ ]: A却推动了创新的轮子7 M# A, ]- J: G8 ]# J  j
$ S- s0 J2 i! ]) r1 Z$ o7 H2 k
看似简单
; J0 t/ x. Y1 p( K, C却掺杂了致尚的心怀
, @/ M2 M4 f- S- n3 K9 x2 `; w( y8 {0 R3 h( y

% ^: X; B% Q& l5 H+ Q% U- f: j+ @
看似简单  
) `0 B' `! U) u- q" p, u7 ?/ _使用起来无比舒畅
  g5 m& v9 [; R+ j
作者: bingshuihuo    时间: 2015-8-12 12:00
bingshuihuo 发表于 2015-8-12 10:51
: ^1 x$ ^! _: q+ j感谢毛老师无私奉献  ; r, y  P/ e' w6 M# O% g9 N( L' n8 c
为PCB 操作提高了效率花费的心血
9 [5 ^+ h0 X5 Z; `  \* N6 }
昨天发了邮件  
- b1 g  B& U& |' g5 [& k收到后 使用了一下5 ?% t8 l0 t4 }5 J. C
真的感觉很顺
3 v8 X) D8 `* m" t. I& Z
& G3 h. ]1 b# z  D最少效率提高了很多# v. @: F  |# V0 f
7 B3 T7 j: S! v1 Z
很多做SKILL的  ! a9 d, |/ n( L* D2 a
在这块没有花时间去考虑
. K" V+ Y: v3 V* u; F$ t  E. ^* f# R
思维  是排出万难的发动机
- a) n- d$ O3 O8 \1 r3 I能力  是脱颖而出的基石' p% _* @3 `) H8 b
共享  是虚怀若谷的体现
: K7 c9 s( T7 `贡献  是推动行业发展的情怀
1 Z* c) ]/ y: N; M7 Q' r( K+ z
/ J! z1 q1 F2 z四美具  人生必有腾飞
  w2 P# g1 D' H0 U  V6 e' [# A& j- @$ a
% m# \$ s- a* h
6 M% p& }  O: y& `8 B; [
# i- r% }7 Z* |* ], W

# K2 A% |" Q, F; j
作者: 87V5    时间: 2015-8-13 16:10
好牛x啊,
作者: wrongrun    时间: 2015-8-14 15:05
感谢分享!!!
作者: xiaoyao    时间: 2015-9-1 18:15
:victory::victory::victory::victory:
作者: qingdalj    时间: 2015-9-9 15:35
感谢楼主的无私分享,活雷锋啊
作者: zhangyilei1987    时间: 2015-9-21 12:47
好厉害的工具
作者: zzbbao    时间: 2015-11-10 23:51
必须给力赞啊,楼主好强大
9 ]1 i/ V3 r$ j) {' ]8 K
作者: ms642799785    时间: 2016-3-11 14:45
谢谢老师分享你的成果!
作者: 戴元惠    时间: 2016-4-1 16:55
谢谢分享  大 好人  牛人
作者: PlayEDA    时间: 2016-9-8 14:58
原來如此,受益良多啊樓主!!
作者: 戴元惠    时间: 2016-9-16 14:48
好牛!
作者: wancai9550    时间: 2016-11-26 14:48
我来顶顶顶顶顶
作者: xshyhq    时间: 2016-12-1 00:02
感谢毛大哥!!!
作者: chensven    时间: 2017-1-3 14:49
顶一个
作者: denny_9    时间: 2017-6-16 15:01
这个得用起,造福人类的事情呀,自从用了skill,发现很多事很轻松。
作者: candid    时间: 2017-7-14 17:16
谢谢毛工
作者: deam    时间: 2017-12-1 23:58
谢谢楼主
作者: zltwin    时间: 2018-5-3 14:46
学习了
作者: zhenghuich    时间: 2018-5-22 13:15
厉害
作者: 景景仔仔    时间: 2018-10-31 18:20
谢谢分享
作者: lqmold    时间: 2018-12-26 14:49
太牛逼了!
作者: yxlk    时间: 2019-1-19 11:51
谢谢分享
作者: fanichicl    时间: 2019-1-22 15:59
谢谢
作者: helendcany    时间: 2019-1-25 14:46
谢谢
作者: 淡定哥    时间: 2019-6-4 16:31

作者: 2682439952    时间: 2019-8-26 15:13
过来学习了,谢谢版主!
作者: googlesh    时间: 2020-3-24 16:19
amao 发表于 2015-6-30 10:23
. U5 w2 l1 h! X2 y. F$ _, t软件与使用说明书
- A% t! S6 f  X! ]8 v) _
如何下载
3 I7 h$ Y2 k3 q7 @- e
作者: HHG0629    时间: 2020-4-23 21:45
谢谢分享!
作者: hongzhuang    时间: 2020-5-8 17:17
我觉得这个功能很需要,为啥不能在软件里直接设置,这样操作好复杂,导几次网表,好担心出问题
作者: hongzhuang    时间: 2020-5-8 17:33
中间输出lib是为了干嘛
作者: airma1981    时间: 2020-6-26 11:14
谢谢分享  楼主好人 大牛
作者: wu8d    时间: 2021-3-28 02:28
感谢
作者: 382320829    时间: 2021-7-30 15:45
:lol:lol:lol:lol
作者: 382320829    时间: 2021-7-30 17:48
:lol:lol:lol:lol:lol
作者: 382320829    时间: 2021-7-30 18:19
:lol:lol:lol:lol:lol
作者: 382320829    时间: 2021-8-2 09:13
:lol:lol:lol:lol:lol:lol:lol:lol
作者: 18390186918    时间: 2021-10-12 15:33
感谢分享
/ @# l7 X4 D$ S: C3 h
作者: c1143115032    时间: 2021-12-25 16:14
大佬66666
作者: 子木_eda    时间: 2022-7-8 17:19
谢谢分享   大牛
作者: iceburg    时间: 2024-5-26 09:37
大佬,感谢无私共享
作者: IainZou    时间: 2024-8-21 11:08
牛牛牛!!!
+ p; _! S( ~' [2 O; k8 H/ [
作者: 青藤门下一走狗    时间: 2024-10-24 09:18
学习
作者: Dc2023091990h    时间: 2024-12-3 10:04
amao 发表于 2015-6-30 10:23
4 R0 l" C1 K$ m! f& G8 |, ^软件与使用说明书

- B4 O$ r: n% E) A$ _' B感谢感谢感谢感谢感谢感谢
# ^4 E: p# Q+ b0 q* Z! h




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2