一步一步教你如何在Altium Designer中导入ALLEGRO的brd文件

时间:2022-09-05 20:09:05
课题组其他人都用Allegro,我一个人死撑着用AD。共享设计时原理图还方便导入,PCB文件麻烦了,于是一直在找如何从AD中导入Allegro的brd文件的方法,一直未果(曾经找了个CAMCAD Pro,号称可以,但不会用--呵呵,也可能是不可以)。

    AD 不支持导入allegro的brd文件,orcad的layout的max文件倒是支持,可是同为cadence的产品,居然layout不能导入 brd。我算是一个准超级AD fans,经过自己的摸索,找到一些实现的曲线实现方法。我用Altium Designer 6.6,下面以6.6为例讲讲如何将Allegro的brd板子导入Protel (DXP)中。


基本思想是用CAM文件,具体步骤:



  1. 从Allegro PCB Editor中导出Gerber文件和IPC网表文件(不要IPC网表也可以,不过那样导入的PCB网络名是AD随机命名的)。也可以导出ODB++文件(可能还是需要IPC网表),我觉得这个比Gerber方便。Allegro需要安装第三方软件才能输出ODB++,这个在导出时会提示下载的(软件是 free的)。 
  2. 在AD中新建一个CAM文件。 
  3. 通过AD的File/Import导入Allegro输出的Gerber/ODB++,(可选)通过File/Import/Net List导入IPC网表。 
  4. 使用Tool/Netlist/Extract提取导入的Gerber/ODB++的网络(将相连的Track视为同一网络,网络名随机生成)。 
  5. (可选)通过File Import/NetList导入IPC网表。如果3中已导入,忽略本步。 
  6. 通过Tool/NetList/Campare将Extrat的网表和IPC网表进行比较,从而将网络(大部分)命名为Allegro中原来的网络名。 
  7. 通过File/Export/Export to PCB,将CAM文件导出到PCB。至此基本完成了导入功能,但是所有的元件已经分解成了Pad,overlay上的Designator也已经不再是Text型。 
  8. 元件的“恢复”:选中一个元件的所有primitive,将其作为一个Union,然后使用准备好的封装进行替换。这个可能比较费时了:-)其实也可以不准备封装,直接选中一个元件的所有primitive,复制到PCB library的新建空元件中,就制成了一个和原来一样的封装了。 
  9. 也可以这样恢复元件:建一个不包括任务元素的PCB封装,放置到要恢复的元件附近,然后将元件的primitive加入到这个元件中(右键菜单中找)。

总结:通过1-7步可以完成在Altium Designer中打开Allegro的brd文件,也可以用来提取Allegro的封装(不过AD画封装已经够容易了,估计不会有人需要这么做吧),通过手动元件恢复,可以重建原brd文件。











Altium 中导入 ALLEGRO 的 brd 文件 一步一步教你如何在 Altium Designer 中导入 ALLEGRO 的 brd 文件 [本文由 Hiber 发表在 http://hiber.yculblog.com/post.1766615.html] 课题组其他人都用 ALLEGRO,我一个人死撑着用 AD。共享设计时原理图还方便导入,PCB 文件麻烦了, 于是一直在找如何从 AD 中导入 ALLEGRO 的 brd 文件的方法,一直未果(曾经找了个 CAMCAD Pro,号 称可以,但不会用--呵呵,也可能是不可以) 。 AD 不支持导入 ALLEGRO 的 brd 文件,orcad 的 layout 的 max 文件倒是支持,可是同为 cadence 的产品, 居然 layout 不能导入 brd。我算是一个准超级 AD fans,经过自己的摸索,找到一些实现的曲线实现方法。 我用 Altium Designer 6.6,下面以 6.6 为例讲讲如何将 ALLEGRO 的 brd 板子导入 Protel (DXP)中。 基本思想是用 CAM 文件,具体步骤: 1、从 ALLEGRO PCB Editor 中导出 Gerber 文件和 IPC 网表文件 从 网表文件(不要 IPC 网表也可以,不过那样导入 的 PCB 网络名是 AD 随机命名的)也可以导出 ODB++文件 。 (可能还是需要 IPC 网表)我觉得这个比 Gerber , 方便。ALLEGRO 需要安装第三方软件才能输出 ODB++,这个在导出时会提示下载的(软件是 free 的) 。 2、在 AD 中新建一个 CAM 文件 在 文件。 3、通过 AD 的 File/Import 导入 ALLEGRO 输出的 Gerber/ODB++, 通过 (可选)通过 File/Import/Net List 导 通过 网表。 入 IPC 网表。 4、使用 Tool/Netlist/Extract 提取导入的 Gerber/ODB++的网络(将相连的 Track 视为同一网络,网络名随 使用 机生成) 。 5、 (可选)通过 File Import/NetList 导入 IPC 网表。如果 3 中已导入,忽略本步。 6、 通过 Tool/NetList/Campare 将 Extrat 的网表和 IPC 网表进行比较, 从而将网络 (大部分) 命名为 ALLEGRO 中原来的网络名。 7、通过 File/Export/Export to PCB,将 CAM 文件导出到 PCB。至此基本完成了导入功能,但是所有的元件 已经分解成了 Pad,overlay 上的 Designator 也已经不再是 Text 型。

8、元件的“恢复”:选中一个元件的所有 primitive,将其作为一个 Union,然后使用准备好的封装进行替换。 这个可能比较费时了:-)其实也可以不准备封装,直接选中一个元件的所有 primitive,复制到 PCB library 的 新建空元件中,就制成了一个和原来一样的封装了。 9、也可以这样恢复元件:建一个不包括任务元素的 PCB 封装,放置到要恢复的元件附近,然后将元件的 primitive 加入到这个元件中(右键菜单中找) 。 总结:通过 1-7 步可以完成在 Altium Designer 中打开 ALLEGRO 的 brd 文件,也可以用来提取 ALLEGRO 的封装(不过 AD 画封装已经够容易了,估计不会有人需要这么做吧) ,通过手动元件恢复,可以重建原 brd 文件。

P.S.:1、如果 AD 支持通过选定内容创建元件就好了,哪位写一个插件(Altium Designer 的脚本支持还是 够好的,肯定可以做到) 。 2、其实可以通过这种方式从 Gerber 和 ODB++等 CAM 文件中 Reverse Engine 出 PCB 来。

3、抛砖引玉,哪位有更好的方法请告诉我!

点击此处下载 ourdev_335863.rar(文件大小:3.23M) (原文件名:c2_dsp_b.rar)

的过渡! 从 PROTEL 到 ALLEGRO 的过渡!

Protel SCH/PCB 到 Cadence 的数据转换 随着 PCB 设计的复杂程度和高速 PCB 设计需求的不断增加,越来越多的 PCB 设计者、设计团队 选择 Cadence 的设计平台和工具。但是,由于没有 Protel 数据到 Cadence 数据直接转换工具, 长期以来如何将现有的基于 Protel 平台的设计数据转化到 Cadence 平台上来一直是处于平台转 化期的设计者所面临的难题。在长期实际的基础上,结合现有工具的特点,提供一种将 Protel 原理图、PCB 转化到 Cadence 平台上的方法。 1. 使用的工具 a) Protel DXP SP2 b) Cadence Design Systems, Inc. Capture CIS c) Cad ence Design Systems, Inc. Orcad Layout d) Cadence Design Systems, Inc. Layout2allegr o(可到 ftp 个人临时区 lwh 中下载) e) Cadence Design Systems, Inc. Allegro f) Cadence De sign Systems, Inc. Specctra 2. Protel 原理图到 Cadence Design Systems, Inc. Capture CIS 在 Protel 原理图的转化上我 们可以利用 Protel DXP SP2 的新功能来实现。通过这一功能我们可以直接将 Protel 的原理图转 化到 Capture CIS 中。这里,我们仅提出几点通过实践总结出来的注意事项。 1) Protel DXP 在输出 Capture DSN 文件的时候,没有输出封装信息,在 Capture 中我们会看到 所以元件的 PCB Footprint 属性都是空的。这就需要我们手工为元件添加封装信息,这也是整个 转化过程中最耗时的工作。在添加封装信息时要注意保持与 Protel PCB 设计中的封装一致性, 以及 Cadence 在封装命名上的限制。例如一个电阻,在 Protel 中的封装为 AXIAL0.4,在后面介 绍的封装库的转化中,将被修改为 AXIAL04,这是由于 Cadence 不允许封装名中出现“.”;再比 如 DB9 接插件的封装在 Protel 中为 DB9RA/F,将会被改为 DB9RAF。因此我们在 Capture 中给 元件添加封装信息时,要考虑到这些命名的改变。

2) 一些器件的隐藏管脚或管脚号在转化过程中会丢失,需要在 Capture 中使用库编辑的方法添 加上来。通常易丢失管脚号的器件时电阻电容等离散器件。 3) 在层次化设计中,模块之间连接的总线需要在 Capture 中命名。即使在 Protel 中已经在父设 计中对这样的总线命名了,还是要在 Capture 中重新来过,以确保连接。 4) 对于一个封装中有多个部分的器件,要注意修改其位号。例如一个 74ls00,在 protel 中使用 其中的两个门,位号为 U8A,U8B。这样的信息在转化中会丢失,需要重新添加。基本上注意到 上述几点,借助 Protel DXP,我们就可以将 Protel 的原理图转化到 Capture 中。进一步推广, 这也为现有的 Protel 原理图符号库转化到 Capture 提供了一个途径。 3. Protel 封装库的转化长期使用 Protel 作 PCB 设计,我们总会积累一个庞大的经过实践检验 的 Protel 封装库,当设计平台转换时,如何保留这个封装库总是令人头痛。这里,我们将使用 O rcad Layout,和免费的 Cadence 工具 Layout2allegro 来完成这项工作。 1) 在 Protel 中将 PCB 封装放置到一张空的 PCB 中, 并将这个 PCB 文件用 Protel PCB 2.8 ASCI I 的格式输出出来; 2) 使用 Orcad Layout 导入这个 Protel PCB 2.8 ASCII 文件; 3) 使用 La yout2allegro 将生成的 Layout MAX 文件转化为 Allegro 的 BRD 文件; 4) 接下来,我们使用 Al legro 的 Export 功能将封装库,焊盘库输出出来,就完成了 Protel 封装库到 Allegro 转化。 4. Protel PCB 到 Allegro 的转化有了前面两步的基础,我们就可以进行 Protel PCB 到 Allegro 的转化了。这个转化过程更确切的说是一个设计重现过程,我们将在 Allegro 中重现 Protel PCB 的布局和布线。 1) 将第二步 Capture 生成的 Allegro 格式的网表传递到 Allegro BRD 中, 作为我们重现工作的起 点; 2) 首先,我们要重现器件布局。在 Protel 中输出 Place & Pick 文件,这个文件中包含了 完整的器件位置,旋转角度和放置层的信息。我们通过简单的手工修改,就可以将它转化为 All egro 的 Placement 文件。在 Allegro 中导入这个 Placement 文件,我们就可以得到布局了。 3) 布线信息的恢复,要使用 Specctra 作为桥梁。首先,从 Protel 中输出包含布线信息的 Specctra DSN 文件。对于这个 DSN 文件我们要注意以下 2 点: 4) Protel 中的层命名与 Allegro 中有所区 别,要注意使用文本编辑器作适当的修改,例如 Protel 中顶层底层分别为 Toplayer 和 Bottomla yer,而在 Allegro 中这两层曾称为 TOP 和 BOTTOM; 5) 注意在 Specctra 中查看过孔的定义, 并添加到 Allegro 的规则中。在 allegro 中定义过孔从 Specctra 中输出布线信息,可以使用 sessi on, wires, 和 route 文件,建议使用 route 文件,然后将布线信息导入到我们以及重现布局的 Al legro PCB 中,就完成了我们从 Protel PCB 到 Allegro BRD 的转化工作。 Protel 到 Allegro 转化 的方法 当今 IT 产业的发展日新月异,对硬件设备的要求也越来越高,硬件设计师们面临如何设计高速 高密度 PCB 的难题。常言道,工欲善其事,必先利其器,这也是越来越多的设计师放弃低端的 P CB 设计工具,进而选择 Cadence 等公司提供的高性能 PCB EDA 软件的原因。 但是这种变 革必然会带来这样或那样的问题。由于接触和使用较早等原因,国内的 Protel 用户为数众多, 他们在选择 Cadence 高速 PCB 解决方案的同时,都面临着如何将手头的 Protel 设计移植到 Cad ence PCB 设计软件中的问题。 在这个过程当中碰到的问题大致可分为两种:一是设计不很 对于第 复杂,设计师只想借助 Cadence CCT 的强大自动布线功能完成布线工作;二是设计复杂,设计 师需要借助信噪分析工具来对设计进行信噪仿真, 设置线网的布线拓扑结构等工作。

一种情况,要做的转化工作比较简单,可以使用 Protel 或 Cadence 提供的 Protel 到 CCT 的转换 工具来完成这一工作。对于第二种情况,要做的工作相对复杂一些,下面将这种转化的方法作一 简单的介绍。 Cadence 信噪分析工具的分析对象是 Cadence Allegro 的 brd 文件,而 Allegr 这里有两点请读者注意。首先,Allegro o 可以读入合乎其要求的第三方网表,Protel 输出的 Telexis 格式的网表满足 Allegro 对第三方网 表的要求,这样就可以将 Protel 文件注入 Allegro。 第三方网表在$PACKAGE 段不允许有“.”;其次,在 Protel 中,我们用 BasName[0:N]的形式表 示总线,用 BasName[x]表示总线中的一根信号,Allegro 第三方网表中总线中的一根信号的表示 形式为 Bas NameX, 读者可以通过直接修改 Protel 输出的 Telexis 网表的方法解决这些问题。 Allegro 在注入第三方网表时还需要每种类型器件的设备描述文件 Device.txt 文件,它的格式 如下: Package: package type Class: classtype Pincount: total pinnumber Pinused: ... 其中常用的是 PACKAGE,CLASS,PINCOUNT 这几项。PACKAGE 描述了器件的封装,但 Alle gro 在注入网表时会用网表中的 PACKAGE 项而忽略设备描述文件中的这一项。CLASS 确定器件 的类型,以便信噪分折,Cadence 将器件分为 IC,IO,DISCRETE 三类。PINCOUNT 说明器件的 管脚数目。对于大多数器件,Device.txt 文件中包含有这三项就足够了。 有了第三方网表和 设备描述文件,我们就可以将 Protel 中原理图设计以网表的形式代入到 Cadence PCB 设计软件 中,接下来,设计师就可以借助 Cadence PCB 软件在高速高密度 PCB 设计方面的强大功能完成 自己的设计。 如果已经在 Protel 作了 PCB 布局的工作,Allegro 的 script 功能可以将 Protcl 中的布局在 Allegro 中重现出来。在 Protel 中,设计师可以输出一个 Place & Pick 文件,这个文 件中包含了每个器件的位置、旋转角度和放在 PCB 顶层还是底层等信息,可以通过这个文件很 方便的生成一个 Allegro 的 script 文件, Allegro 中执行这个 script 就能够重现 Protel 中的布局 在 了,下面给出了完成 Place & Pick 文件到 Allegro Script 文件转化的 C++代码,笔者使用这段 代码,仅用了数分钟就将一个用户有 800 多个器件的 PCB 板布局在 Allegro 重现出来。 FILE *f p1, *fp2; ::AfxMessageBox("hello"); fp1=fopen("pick.txt", "rt"); if (fp1==NULL) ::AfxMess ageBox("Can not open the file!!!"); fp2=fopen("place.txt","wt"); if (fp2==NULL) ::AfxMess ageBox("Can not create the file!!!"); char refdes[5], Pattern[5]; float midx,midy,refx,refy, padx,pady,rotation; char tb[1]; char tmp='"'; fprintf(fp2,"%s\n", "# Allegro script"); fprint f(fp2,"%s\n", "version 13.6"); fprintf(fp2,"%s\n", "place refdes"); while (!feof(fp1)) { fsca nf(fp1,"%s", refdes); fscanf(fp1,"%s", Pattern); fscanf(fp1,"%f", &midx); fscanf(fp1,"%f", &midy); fscanf(fp1,"%f", &refx); fscanf(fp1,"%f", &refy); fscanf(fp1,"%f", &padx); fscanf(f p1,"%f", &pady); fscanf(fp1,"%s", tb); fscanf(fp1,"%f", &rotation); fprintf(fp2, "fillin % c%s%c \n",tmp,refdes,tmp); if (rotation!=0) { fprintf(fp2, "rotate\n"); fprintf(fp2, "iangle %f\n", rotation); }; char yy=tb[0]; if (yy!='T') fprintf(fp2, "pop mirror\n"); fprintf(fp2, " pick %f %f \n", padx,pady); fprintf(fp2, "next \n"); }; fprintf(fp2, "done"); fclose(fp1); f close(fp2); 以上简单介绍了 Protel 到 Allegro 转化的方法,希望能对读者的设计工作有所帮助。

Protel99 软件 PCB 图库向 PWS 图库的转换方法 protel to allegro 的 placement 文件转换器
本转换器是跟据下文中的 c 源码编译成功的, 但是在导入 protel 的文件时由于格式和 抬头的问题,根本无法得到正确的目标文件,而且,所生成的 script 文件由于版本问题, allegro 根本无法识别该文件中的 script 命令,所以偶花了一点时间改写了大部分源码, 使其能够读入 protel99se 的 pick & place 文件,并生成 allegro15.0 的 script,在这两 个软件相应的版本测试通过。 使用时注意两点: 1,protel99se 的文件中,footprint 和 Comment 两项数据中不能带有空格,否则生成 目标文件将会不正确。 2,allegro 中的原点设置一定要和 protel 一致。 源文件见下帖。

作者:bigcat

2005-9-14 15:11:00

回复 1 <转贴>707531

<转贴> 从 PROTEL 到 ALLEGRO 的过渡! Protel SCH/PCB 到 Cadence 的数据转换 随着 PCB 设计的复杂程度和高速 PCB 设计需求的不断增加,越来越多的 PCB 设计者、 设计团队选择 Cadence 的设计平台和工具。但是,由于没有 Protel 数据到 Cadence 数据直 接转换工具,长期以来如何将现有的基于 Protel 平台的设计数据转化到 Cadence 平台上来 一直是处于平台转化期的设计者所面临的难题。 在长期实际的基础上,结合现有工具的特点,提供一种将 Protel 原理图、PCB 转化到 Cadence 平台上的方法。 1. 使用的工具 a) Protel DXP SP2 b) Cadence Design Systems, Inc. Capture CIS

c) Cadence Design Systems, Inc. Orcad Layout d) Cadence Design Systems, Inc. Layout2allegro(可到 ftp 个人临时区 lwh 中下载) e) Cadence Design Systems, Inc. Allegro f) Cadence Design Systems, Inc. Specctra 2. Protel 原理图到 Cadence Design Systems, Inc. Capture CIS 在 Protel 原理图的转化上我们可以利用 Protel DXP SP2 的新功能来实现。通过这一 功能我们可以直接将 Protel 的原理图转化到 Capture CIS 中。 这里,我们仅提出几点通过实践总结出来的注意事项。 1) Protel DXP 在输出 Capture DSN 文件的时候,没有输出封装信息,在 Capture 中 我们会看到所以元件的 PCB Footprint 属性都是空的。这就需要我们手工为元件添加封装信 息,这也是整个转化过程中最耗时的工作。在添加封装信息时要注意保持与 Protel PCB 设 计中的封装一致性,以及 Cadence 在封装命名上的限制。例如一个电阻,在 Protel 中的封 装为 AXIAL0.4,在后面介绍的封装库的转化中,将被修改为 AXIAL04,这是由于 Cadence 不允许封装名中出现“.”;再比如 DB9 接插件的封装在 Protel 中为 DB9RA/F,将会被改为 DB9RAF。因此我们在 Capture 中给元件添加封装信息时,要考虑到这些命名的改变。 2) 一些器件的隐藏管脚或管脚号在转化过程中会丢失, 需要在 Capture 中使用库编辑 的方法添加上来。通常易丢失管脚号的器件时电阻电容等离散器件。 3) 在层次化设计中,模块之间连接的总线需要在 Capture 中命名。即使在 Protel 中 已经在父设计中对这样的总线命名了,还是要在 Capture 中重新来过,以确保连接。 4) 对于一个封装中有多个部分的器件,要注意修改其位号。例如一个 74ls00,在 protel 中使用其中的两个门,位号为 U8A,U8B。这样的信息在转化中会丢失,需要重新添 加。 基本上注意到上述几点,借助 Protel DXP,我们就可以将 Protel 的原理图转化到 Capture 中。进一步推广,这也为现有的 Protel 原理图符号库转化到 Capture 提供了一个 途径。 3. Protel 封装库的转化 长期使用 Protel 作 PCB 设计,我们总会积累一个庞大的经过实践检验的 Protel 封装 库, 当设计平台转换时, 如何保留这个封装库总是令人头痛。 这里, 我们将使用 Orcad Layout, 和免费的 Cadence 工具 Layout2allegro 来完成这项工作。

1) 在 Protel 中将 PCB 封装放置到一张空的 PCB 中,并将这个 PCB 文件用 Protel PCB 2.8 ASCII 的格式输出出来; 2) 使用 Orcad Layout 导入这个 Protel PCB 2.8 ASCII 文件; 3) 使用 Layout2allegro 将生成的 Layout MAX 文件转化为 Allegro 的 BRD 文件; 4) 接下来,我们使用 Allegro 的 Export 功能将封装库,焊盘库输出出来,就完成了 Protel 封装库到 Allegro 转化。 4. Protel PCB 到 Allegro 的转化 有了前面两步的基础,我们就可以进行 Protel PCB 到 Allegro 的转化了。这个转化过 程更确切的说是一个设计重现过程,我们将在 Allegro 中重现 Protel PCB 的布局和布线。 1) 将第二步 Capture 生成的 Allegro 格式的网表传递到 Allegro BRD 中,作为我们重 现工作的起点; 2) 首先,我们要重现器件布局。在 Protel 中输出 Place & Pick 文件,这个文件中包 含了完整的器件位置,旋转角度和放置层的信息。我们通过简单的手工修改,就可以将它转 化为 Allegro 的 Placement 文件。在 Allegro 中导入这个 Placement 文件,我们就可以得到 布局了。 3) 布线信息的恢复,要使用 Specctra 作为桥梁。首先,从 Protel 中输出包含布线信 息的 Specctra DSN 文件。对于这个 DSN 文件我们要注意以下 2 点: 4) Protel 中的层命名与 Allegro 中有所区别,要注意使用文本编辑器作适当的修改, 例如 Protel 中顶层底层分别为 Toplayer 和 Bottomlayer, 而在 Allegro 中这两层曾称为 TOP 和 BOTTOM; 5) 注意在 Specctra 中查看过孔的定义,并添加到 Allegro 的规则中。在 allegro 中 定义过孔从 Specctra 中输出布线信息,可以使用 session, wires, 和 route 文件,建议使 用 route 文件,然后将布线信息导入到我们以及重现布局的 Allegro PCB 中,就完成了我们 从 Protel PCB 到 Allegro BRD 的转化工作。 Protel 到 Allegro 转化的方法 当今 IT 产业的发展日新月异,对硬件设备的要求也越来越高,硬件设计师们面临如何 设计高速高密度 PCB 的难题。常言道,工欲善其事,必先利其器,这也是越来越多的设计师 放弃低端的 PCB 设计工具,进而选择 Cadence 等公司提供的高性能 PCB EDA 软件的原因。 但是这种变革必然会带来这样或那样的问题。由于接触和使用较早等原因,国内 的 Protel 用户为数众多,他们在选择 Cadence 高速 PCB 解决方案的同时,都面临着如何将

手头的 Protel 设计移植到 Cadence PCB 设计软件中的问题。 在这个过程当中碰到的问题大致可分为两种:一是设计不很复杂,设计师只想借 助 Cadence CCT 的强大自动布线功能完成布线工作;二是设计复杂,设计师需要借助信噪分 析工具来对设计进行信噪仿真,设置线网的布线拓扑结构等工作。 对于第一种情况,要做的转化工作比较简单,可以使用 Protel 或 Cadence 提供的 Protel 到 CCT 的转换工具来完成这一工作。对于第二种情况,要做的工作相对复杂一些, 下面将这种转化的方法作一简单的介绍。 Cadence 信噪分析工具的分析对象是 Cadence Allegro 的 brd 文件,而 Allegro 可以读入合乎其要求的第三方网表,Protel 输出的 Telexis 格式的网表满足 Allegro 对第 三方网表的要求,这样就可以将 Protel 文件注入 Allegro。 这里有两点请读者注意。 首先, Allegro 第三方网表在$PACKAGE 段不允许有“. ”; 其次,在 Protel 中,我们用 BasName[0:N]的形式表示总线,用 BasName[x]表示总线中的一 根信号,Allegro 第三方网表中总线中的一根信号的表示形式为 Bas NameX,读者可以通过 直接修改 Protel 输出的 Telexis 网表的方法解决这些问题。 Allegro 在注入第三方网表时还需要每种类型器件的设备描述文件 Device.txt 文 件,它的格式如下: Package: package type Class: classtype Pincount: total pinnumber Pinused: ... 其中常用的是 PACKAGE,CLASS,PINCOUNT 这几项。PACKAGE 描述了器件的封装, 但 Allegro 在注入网表时会用网表中的 PACKAGE 项而忽略设备描述文件中的这一项。CLASS 确定器件的类型,以便信噪分折,Cadence 将器件分为 IC,IO,DISCRETE 三类。PINCOUNT 说明器件的管脚数目。对于大多数器件,Device.txt 文件中包含有这三项就足够了。 有了第三方网表和设备描述文件, 我们就可以将 Protel 中原理图设计以网表的形 式代入到 Cadence PCB 设计软件中,接下来,设计师就可以借助 Cadence PCB 软件在高速高 密度 PCB 设计方面的强大功能完成自己的设计。 如果已经在 Protel 作了 PCB 布局的工作,Allegro 的 script 功能可以将 Protcl 中的布局在 Allegro 中重现出来。在 Protel 中,设计师可以输出一个 Place & Pick 文件, 这个文件中包含了每个器件的位置、旋转角度和放在 PCB 顶层还是底层等信息,可以通过这 个文件很方便的生成一个 Allegro 的 script 文件, Allegro 中执行这个 script 就能够重 在

现 Protel 中的布局了,下面给出了完成 Place & Pick 文件到 Allegro Script 文件转化的 C++代码,笔者使用这段代码,仅用了数分钟就将一个用户有 800 多个器件的 PCB 板布局在 Allegro 重现出来。 FILE *fp1, *fp2; ::AfxMessageBox("hello"); fp1=fopen("pick.txt", "rt"); if (fp1==NULL) ::AfxMessageBox("Can not open the file!!!"); fp2=fopen("place.txt","wt"); if (fp2==NULL) ::AfxMessageBox("Can not create the file!!!"); char refdes[5], Pattern[5]; float midx,midy,refx,refy,padx,pady,rotation; char tb[1]; char tmp='"'; fprintf(fp2,"%s\n", "# Allegro script"); fprintf(fp2,"%s\n", "version 13.6"); fprintf(fp2,"%s\n", "place refdes"); while (!feof(fp1)) { fscanf(fp1,"%s", refdes); fscanf(fp1,"%s", Pattern); fscanf(fp1,"%f", &midx); fscanf(fp1,"%f", &midy); fscanf(fp1,"%f", &refx); fscanf(fp1,"%f", &refy);

fscanf(fp1,"%f", &padx); fscanf(fp1,"%f", &pady); fscanf(fp1,"%s", tb); fscanf(fp1,"%f", &rotation); fprintf(fp2, "fillin %c%s%c \n",tmp,refdes,tmp); if (rotation!=0) { fprintf(fp2, "rotate\n"); fprintf(fp2, "iangle %f\n", rotation); }; char yy=tb[0]; if (yy!='T') fprintf(fp2, "pop mirror\n"); fprintf(fp2, "pick %f %f \n", padx,pady); fprintf(fp2, "next \n"); }; fprintf(fp2, "done"); fclose(fp1); fclose(fp2); 以上简单介绍了 Protel 到 Allegro 转化的方法,希望能对读者的设计工作有所帮助。

Protel 原理图 原理图/PCB 到 Cadence 的数据转换 随着 PCB 设计的复杂程度和高速 PCB 设计需求的不断增加,越来越多的 PCB 设计者、设计 团队选择 Cadence 的设计平台和工具。但是,由于没有 Protel 数据到 Cadence 数据直接转 换工具,长期以来如何将现有的基于 Protel 平台的设计数据转化到 Cadence 平台上来一直 是处于平台转化期的设计者所面临的难题。 在长期实际的基础上, 结合现有工具的特点, 提供一种将 Protel 原理图、 转化到 Cadence PCB 平台上的方法。 1. 使用的工具 a) Protel DXP SP4 b) Cadence Design Systems, Inc. Capture CIS c) Cadence Design Systems, Inc. Orcad Layout d) Cadence Design Systems, Inc. Layout2allegro e) Cadence Design Systems, Inc. Allegro f) Cadence Design Systems, Inc. Specctra 2. Protel 原理图到 Cadence Design Systems, Inc. Capture CIS 在 Protel 原理图的转化上我们可以利用 Protel DXP SP2 的新功能来实现。通过这一功能我 们可以直接将 Protel 的原理图转化到 Capture CIS 中。 这里,我们仅提出几点通过实践总结出来的注意事项。 1) Protel DXP 在输出 Capture DSN 文件的时候,没有输出封装信息,在 Capture 中我们会 看到所以元件的 PCB Footprint 属性都是空的。这就需要我们手工为元件添加封装信息,这 也是整个转化过程中最耗时的工作。在添加封装信息时要注意保持与 Protel PCB 设计中的 封装一致性,以及 Cadence 在封装命名上的限制。例如一个电阻,在 Protel 中的封装为 AXIAL0.4,在后面介绍的封装库的转化中,将被修改为 AXIAL04,这是由于 Cadence 不允 许封装名中出现“.”; 再比如 DB9 接插件的封装在 Protel 中为 DB9RA/F, 将会被改为 DB9RAF。 因此我们在 Capture 中给元件添加封装信息时,要考虑到这些命名的改变。 2) 一些器件的隐藏管脚或管脚号在转化过程中会丢失,需要在 Capture 中使用库编辑的方 法添加上来。通常易丢失管脚号的器件时电阻电容等离散器件。 3) 在层次化设计中,模块之间连接的总线需要在 Capture 中命名。即使在 Protel 中已经在 父设计中对这样的总线命名了,还是要在 Capture 中重新来过,以确保连接。 4) 对于一个封装中有多个部分的器件,要注意修改其位号。例如一个 74ls00,在 protel 中 使用其中的两个门,位号为 U8A,U8B。这样的信息在转化中会丢失,需要重新添加。 基本上注意到上述几点, 借助 Protel DXP, 我们就可以将 Protel 的原理图转化到 Capture 中。 进一步推广,这也为现有的 Protel 原理图符号库转化到 Capture 提供了一个途径。 3. Protel 封装库的转化 长期使用 Protel 作 PCB 设计,我们总会积累一个庞大的经过实践检验的 Protel 封装库,当

设计平台转换时,如何保留这个封装库总是令人头痛。这里,我们将使用 Orcad Layout, 和免费的 Cadence 工具 Layout2allegro 来完成这项工作。 a) 在 Protel 中将 PCB 封装放置到一张空的 PCB 中,并将这个 PCB 文件用 Protel PCB 2.8 ASCII 的格式输出出来; b) 使用 Orcad Layout 导入这个 Protel PCB 2.8 ASCII 文件; c) 使用 Layout2allegro 将生成的 Layout MAX 文件转化为 Allegro 的 BRD 文件; d) 接下来,我们使用 Allegro 的 Export 功能将封装库,焊盘库输出出来,就完成了 Protel 封装库到 Allegro 转化。 4. Protel PCB 到 Allegro 的转化 有了前面两步的基础,我们就可以进行 Protel PCB 到 Allegro 的转化了。这个转化过程更确 切的说是一个设计重现过程,我们将在 Allegro 中重现 Protel PCB 的布局和布线。 1) 将第二步 Capture 生成的 Allegro 格式的网表传递到 Allegro BRD 中,作为我们重现工作 的起点; 2) 首先,我们要重现器件布局。在 Protel 中输出 Place & Pick 文件,这个文件中包含了完 整的器件位置,旋转角度和放置层的信息。我们通过简单的手工修改,就可以将它转化为 Allegro 的 Placement 文件。在 Allegro 中导入这个 Placement 文件,我们就可以得到布局 了。 3) 布线信息的恢复,要使用 Specctra 作为桥梁。首先,从 Protel 中输出包含布线信息的 Specctra DSN 文件。对于这个 DSN 文件我们要注意以下 2 点: a) Protel 中的层命名与 Allegro 中有所区别,要注意使用文本编辑器作适当的修改,例如 Protel 中顶层底层分别为 Toplayer 和 Bottomlayer,而在 Allegro 中这两层曾称为 TOP 和 BOTTOM; b) 注意在 Specctra 中查看过孔的定义,并添加到 Allegro 的规则中。 在 allegro 中定义过孔 从 Specctra 中输出布线信息,可以使用 session, wires, 和 route 文件,建议使用 route 文 件, 然后将布线信息导入到我们以及重现布局的 Allegro PCB 中, 就完成了我们从 Protel PCB 到 Allegro BRD 的转化工作