EDA365电子工程师网

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

作者: amao    时间: 2015-6-30 10:20
标题: 阿毛调侃(13)---【原创】史上最强悍Allegro差分线匹配工具与开发往事
本帖最后由 amao 于 2015-6-30 11:52 编辑
9 Z, Z% {6 z: t" V6 h! T  Y6 _, S6 [! W3 g1 X8 N
【原创】史上最强悍Allegro差分线匹配工具与开发往事
1 J  g- G* E0 {! R1 w5 y毛忠宇 2015061 }8 _" M% k( `4 g+ k

1 K8 ~0 U1 ^6 h- B2 y. x
差分对提取工具开发往事

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

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

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


# g9 ?; O- }' z) q6 I3 ?3 X* [" o' @图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'

……

4 e* {+ H5 ]7 e$ u( l& s" C) P
图2  A软件匹配输入界面

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

& D+ |. o0 m- Y
图3  差分网络定义格式

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

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

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

1 _( k3 x# l4 B6 ]$ O6 x" r. D3 D
图4  M软件匹配出的多余组合

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

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

0 M$ @  ]9 q$ V2 ^9 Q4 n) E" I. F
图5  自开发的差分线自动匹配软件工具界面

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


% |9 h3 r, l" f图6  自开发软件匹配效果

特点

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

2)适用任何Allegro版本

3)可一次性全部匹配

3 e  @, B0 E/ c" R* R. R% x* p
*《IC封装基础与工程设计实例》书籍答疑QQ群号:433148683
* 如对相关内容感兴趣,请关注微信公共帐号:amao_eda365附

+ Q9 u/ T; ^) n' t8 ~- w* d程序使用方法:
) s! a6 u' Q8 z, M: D9 |& ~ + `  V, {- D% Q

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

allegro_dif_net_V1.rar

4.04 MB, 下载次数: 549, 下载积分: 威望 -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
大神啊,软件超级好用,顶顶顶啊
作者: taisl    时间: 2015-7-2 21:52
牛B
作者: 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
感谢老师的大力支持,# p, R; A; l" n

作者: 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
有同学问到下面的这类差分信号如何匹配
4 v+ e8 C4 _  v! i3 F8 G$ M% x8 X8 j  d/ RDP_PEXPERI_N<1>
: C. ^! U/ T, D5 d0 |* b  {DP_PEXPERI_P<1>
+ ~2 W+ a- Z! V3 y( `DP_PEXPERI_N<2>
, {  \( O' G7 j( Y6 \' b6 sDP_PEXPERI_P<2>
; V( u+ V* O8 q) n) m* y: R- oDP_PEXPERI_N<3>* u. ]6 ?/ ?! U1 o0 f/ ^0 A
DP_PEXPERI_P<3>1 A8 {9 ~  h; g' ]
.....
3 U0 g" ^' i( E+ C3 _% x! V对于这类只要使用下面的匹配方式即可:" x  B3 ^# f5 J! F# t1 _
P<\d+>=N<\d+>  ) a/ L- {% G. {

, P# S6 o* r" J6 H. Q
; B7 [, o, I7 j如果要匹配3 J& L) ^$ i; F' S6 d5 J3 s
DP_PEXPERI_Nabc1abc
* i2 i  o0 r8 [7 e2 J0 @+ l; bDP_PEXPERI_Pabc1abc% @) L$ _8 j" H4 g( @0 v) p9 O
DP_PEXPERI_Nabc2abc* S$ V, }  G! `& S2 ~+ U0 ]
DP_PEXPERI_Pabc2abc
8 ^8 E3 S, _2 M! Q9 v你应该会怎样输入了吧  _, F0 u6 M* j" z  q

- \, H. ]3 R& r# G, y/ v' h/ H欢迎挑战其它匹配模式( {* |- i. y7 U5 F/ G2 n# S, E: m. \

/ P; S( w8 I; C; n8 l6 U, ?0 l8 l/ j5 Y

6 }1 g0 V& o7 Z5 Q( S
. U* O6 p2 ^/ b5 q' H! h" Y$ o
作者: 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

" U$ V( r* t- e: [7 B0 Q谢谢分享  楼主好人 大牛
作者: bingshuihuo    时间: 2015-8-12 10:51
感谢毛老师无私奉献  
$ @* s3 h  w9 ~( D' H为PCB 操作提高了效率花费的心血 $ m9 y# m3 D2 z& X: E

8 {3 g, [, t& c3 q0 J看似简单/ d3 `$ M9 V, J) Y$ ~, E; g: B
却花费了心思去研究
1 R% t: J$ T8 C9 _6 [) z" N' E; I+ _6 \5 @% A' ^' P+ o8 m
看似简单$ ~* l2 ~5 t6 `' ~5 ~
却推动了创新的轮子
. J4 [" M; ^- a- m" n+ c( b  f" X
" M" |$ n* r9 e& t( I2 A; P看似简单: G  Z, H* A+ f$ }& V5 q
却掺杂了致尚的心怀& D. W7 @% |) ^

1 \$ I5 v& `' d7 ]" ]3 i2 i! q  r0 K2 k( l

! G1 J* N# S" L7 l# G8 B& q看似简单  
) W+ h5 V7 G5 S/ C/ }6 w/ a使用起来无比舒畅 & t6 w2 D0 S8 g9 ?; o2 \) `& D

作者: bingshuihuo    时间: 2015-8-12 12:00
bingshuihuo 发表于 2015-8-12 10:510 ?8 k" v% x% X. S% B$ v$ n1 ~0 }
感谢毛老师无私奉献  # q' Q5 b: m2 h: w5 v, e5 F: }$ w: u! ~# F
为PCB 操作提高了效率花费的心血
5 c1 H0 b' ]  W8 S- I
昨天发了邮件  " V$ s) x1 g: x8 k. U$ ?8 E
收到后 使用了一下
2 H6 e8 B/ n9 t. j8 U真的感觉很顺 + |, X% Z5 l9 V: p& [
( G. C, W& z! _) [' e/ B* q
最少效率提高了很多9 T" e# D- }6 ~
( M1 w- v/ Z% ?6 g' |$ Y1 X5 T
很多做SKILL的  , B- n6 i0 T' R( G3 r
在这块没有花时间去考虑 & ]4 K( h3 J- w( q/ R3 O) `+ ?* k

# x$ M6 X- [: p* W思维  是排出万难的发动机
* J3 C/ R$ A0 Z& D能力  是脱颖而出的基石2 [2 c! [. F5 `
共享  是虚怀若谷的体现
& R1 i, c+ ?, i( z* w贡献  是推动行业发展的情怀% u& `0 ^7 b+ e7 D( r
; h, _. Z+ j4 S  W: z7 }- z
四美具  人生必有腾飞 ) N% ~5 L' f1 V  I6 Z& N6 J

% x/ h: O: [8 B3 T
" X; m# j( [9 {# f; b; B+ Y' w9 l' ?  L. i& X/ W
! g8 l8 L, {0 P+ n4 a
9 A) g1 v+ C) j) W' ~

作者: 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
必须给力赞啊,楼主好强大
3 [/ r. F. p; B) ?
作者: 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
厉害




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