找回密码
 注册
关于网站域名变更的通知
查看: 594|回复: 3
打印 上一主题 下一主题

Protel到Allegro /CCT格式转换

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-9-7 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
& H6 E3 ]; k, M' w; A+ n" J
cadence公司工程师 胡建伟 6 j! H' F2 }! e: {0 P- c& A# m
  当今IT产业的发展日新月异,对硬件设备的要求也越来越高,硬件设计师们面临如何设计高速高密度PCB的难题。常言道,工欲善其事,必先利其器,这也是越来越多的设计师放弃低端的PCB设计工具,进而选择Cadence等公司提供的高性能PCB EDA软件的原因。. s2 ^# P! ~! G# q9 o
  但是这种变革必然会带来这样或那样的问题。由于接触和使用较早等原因,国内的protel用户为数众多,他们在选择Cadence高速PCB解决方案的同时,都面临着如何将手头的Protel设计移植到Cadence PCB设计软件中的问题。
5 F' k" ~5 U% @/ p" H  在这个过程当中碰到的问题大致可分为两种:一是设计不很复杂,设计师只想借助Cadence CCT的强大自动布线功能完成布线工作;二是设计复杂,设计师需要借助信噪分析工具来对设计进行信噪仿真,设置线网的布线拓扑结构等工作。
. U" x7 X6 j7 R+ r  L  对于第一种情况,要做的转化工作比较简单,可以使用Protel或Cadence提供的Protel到CCT的转换工具来完成这一工作。对于第二种情况,要做的工作相对复杂一些,下面将这种转化的方法作一简单的介绍。* D+ p( m2 ~4 Q- J
  Cadence信噪分析工具的分析对象是Cadence allegro的brd文件,而Allegro可以读入合乎其要求的第三方网表,Protel输出的Telexis格式的网表满足Allegro对第三方网表的要求,这样就可以将Protel文件注入Allegro。
1 l7 Q' P8 E5 I7 ~+ Y  l2 f( d8 C  这里有两点请读者注意。首先,Allegro第三方网表在$PACKAGE段不允许有“.”;其次,在Protel中,我们用BasName[0:N]的形式表示总线,用BasName[x]表示总线中的一根信号,Allegro第三方网表中总线中的一根信号的表示形式为Bas NameX,读者可以通过直接修改Protel输出的Telexis网表的方法解决这些问题。5 F0 e' @  I* g6 Q2 ?* d
  Allegro在注入第三方网表时还需要每种类型器件的设备描述文件Device.txt文件,它的格式如下:& q! d: A, b) f
Package: package type
* z/ `, t: u, j! VClass: classtype5 H+ Z; e* X; l3 M4 [
Pincount: total pinnumber9 [/ n7 u) P$ H- L6 n/ e
Pinused: ..." Z  v& s3 @4 z: H' e* u2 D3 g
  其中常用的是PACKAGE,CLASS,PINCOUNT这几项。PACKAGE描述了器件的封装,但Allegro在注入网表时会用网表中的PACKAGE项而忽略设备描述文件中的这一项。CLASS确定器件的类型,以便信噪分折,Cadence将器件分为IC,IO,DISCRETE三类。PINCOUNT说明器件的管脚数目。对于大多数器件,Device.txt文件中包含有这三项就足够了。
1 y; [: e2 D, G& F  有了第三方网表和设备描述文件,我们就可以将Protel中原理图设计以网表的形式代入到Cadence PCB设计软件中,接下来,设计师就可以借助Cadence PCB软件在高速高密度PCB设计方面的强大功能完成自己的设计。# V8 e# b. t% O* y/ E/ W& M
  如果已经在Protel作了PCB布局的工作,Allegro的script功能可以将Protcl中的布局在Allegro中重现出来。在Protel中,设计师可以输出一个Place & Pick文件,这个文件中包含了每个器件的位置、旋转角度和放在PCB顶层还是底层等信息,可以通过这个文件很方便的生成一个Allegro的script文件,在Allegro中执行这个script就能够重现Protel中的布局了,下面给出了完成Place & Pick文件到Allegro Script文件转化的C++代码,笔者使用这段代码,仅用了数分钟就将一个用户有800多个器件的PCB板布局在Allegro重现出来。9 L" U: U8 p) B
FILE *fp1, *fp2;. i! a. Y6 k8 e' R* h
::AfxMessageBox("hello");& T; [  Y  N0 d' R: f; `; r2 g
fp1=fopen("pick.txt", "rt");' |- {8 d  W) t% z
if (fp1==NULL) ::AfxMessageBox("Can not open the file!!!");
8 C$ [+ I9 a" {& [! Zfp2=fopen("place.txt","wt");
# r5 j( J0 t: {  Q; sif (fp2==NULL) ::AfxMessageBox("Can not create the file!!!");6 p8 J. B+ o, d6 X
char refdes[5], Pattern[5];" f6 C2 q' G3 }+ d% ]3 i$ w
float midx,midy,refx,refy,padx,pady,rotation;- ]2 `$ j2 ]) o+ B; B5 m9 D1 y& q& e
char tb[1];
5 N* t& j3 m4 Rchar tmp='"';
% c! V( N7 H2 sfprintf(fp2,"%s\n", "# Allegro script");
- G$ S9 k/ }* ^. j: ]& Jfprintf(fp2,"%s\n", "version 13.6");: r. e0 Q$ @5 ~( m
fprintf(fp2,"%s\n", "place refdes");
' v, x* `+ q/ h7 u8 C) _while (!feof(fp1)) {" `# a2 }7 O- \3 Z' U" c$ L. y+ m  A
fscanf(fp1,"%s", refdes);
$ Z) |& T+ a% J  Rfscanf(fp1,"%s", Pattern);9 T' ?2 G# }- ?
fscanf(fp1,"%f", &midx);
: f7 l& L' @1 D" Qfscanf(fp1,"%f", &midy);5 r. d% l" |" c6 K- [% h( v. g* v
fscanf(fp1,"%f", &refx);
- N+ ]. w6 v- P1 _fscanf(fp1,"%f", &refy);. K! t+ M9 y# T) i
fscanf(fp1,"%f", &padx);8 r/ q, W# _( }' ^, ~% q3 w
fscanf(fp1,"%f", &pady);
+ v3 ]# J/ p! D! l2 }$ vfscanf(fp1,"%s", tb);7 L9 }1 z8 ]+ E* ]1 v- W
fscanf(fp1,"%f", &rotation);
8 }  b1 e  g3 {fprintf(fp2, "fillin %c%s%c \n",tmp,refdes,tmp);
" c- ]1 H; P& l+ a& gif (rotation!=0) {. O$ N" P6 P4 t8 s, v
fprintf(fp2, "rotate\n");
2 A7 t, M! |/ v# w  R5 x+ Cfprintf(fp2, "iangle %f\n", rotation);( M" f' x* }; B' x2 _" L% E, M
};* z+ w& L" j% c9 Q. ^5 q
char yy=tb[0];$ ~6 d8 Y$ Y3 L' D0 ]9 a: G
if (yy!='T') fprintf(fp2, "pop mirror\n");
, n+ {; j; q$ M1 Qfprintf(fp2, "pick %f %f \n", padx,pady);4 y9 M5 s) ^6 ~9 G' k/ Y5 h
fprintf(fp2, "next \n");6 B7 U0 D$ d7 O: C5 U* C
};
1 Y/ ~6 A$ n# Z+ Q$ e4 g5 ~0 ifprintf(fp2, "done");
* U  j1 R: v8 P. C8 j5 O; Kfclose(fp1);
8 w% ^  c2 r3 h$ f; ~fclose(fp2); # H' r2 e, v$ m  r% i! ?
/ O% l& C, v; x$ ]# }8 b
以上简单介绍了Protel到Allegro转化的方法,希望能对读者的设计工作有所帮助。 6 M) T% f+ M+ R$ C' w

该用户从未签到

2#
发表于 2021-9-7 16:34 | 只看该作者
Protel到Allegro /CCT格式转换

该用户从未签到

3#
发表于 2021-9-7 16:54 | 只看该作者
Protel到Allegro /CCT格式转换
  • TA的每日心情

    2019-11-19 15:29
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2021-9-7 16:55 | 只看该作者
    Protel到Allegro转化的方法
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-31 06:47 , Processed in 0.140625 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表