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

2023-11-09

课题组其他人都用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 的转化工作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 威胁情报平台(多个平台查询)

    国内平台 微步威胁平台 微步在线X情报社区 威胁情报查询 威胁分析平台 开放社区 奇安信威胁情报中心 奇安信威胁情报中心 360威胁情报中心 https ti 360 cn 绿盟 威胁情报中心 https nti nsfocus com 新

随机推荐

  • 毕业设计-基于深度学习的轮胎缺陷无损检测

    目录 前言 课题背景和意义 实现技术思路 一 基于深度学习的目标检测技术及研究 二 基于主成分残差逆变换的轮胎 X 射线图像缺陷检测方法 三 基于独立成分分析的轮胎缺陷特征提取及分类方法的研究 四 深度卷积神经网络技术 实现效果图样例 最后
  • 数据库文档管理化开源项目工具SmartSQL

    数据库文档管理化开源项目工具SmartSQL 为何写该博文 由于这段时间需要理清软件的相关表结构 以及在客户端操作时使用 SQL Server Profiler 来检索一些简单的CURD sql语句 为了更好高效的理清内部的一些表结构 视图
  • react eslint解决方案整理

    eslint 解决方案整理 最近在处理react项目中报的warning 进行了以下整理 参考文档 http eslint cn docs rules 项目中遇到warning的解决 xxx is defined but never use
  • 使用EKF融合odometry及imu数据

    整理资料发现早前学习robot pose ekf的笔记 大抵是一些原理基础的东西加一些自己的理解 可能有不太正确的地方 当时做工程遇到的情况为机器人在一些如光滑的地面上打滑的情形 期望使用EKF利用imu对odom数据进行校正 就结果来看
  • python 点云配准_TEASER++:快速鲁棒的C++点云配准库

    TEASER fast certifiable 3D registration TEASER is a fast and certifiably robust point cloud registration library written
  • 在腾讯开发 QQ IM 的工作体验是怎样的?

    转载 http blog csdn net kobejayandy article details 8685271 目录 一 引言 二 个人网站 三 Oracle 支付宝 旺旺 四 淘宝技术发展 Java时代 脱胎换骨 五 淘宝技术发展 J
  • NIO:通道Channel讲解

    了解了缓冲区后 下来需要了解真正传输数据的通道Channel Channel是做什么用的 再来简单回顾一下 通道顾名思义就是传递的介质 Channel就类似于传统IO中的流 是直接对接操作系统的 当我们处理好缓冲区后 就可以通过缓冲区对通道
  • linux的程序安装失败,linux 安装软件各种错误集锦及解决方法

    1 最小化安装了centos 但是使用ifconfig命令时候出现 bash ifconfig command not found 解决方法 yum y install net tools x86 64 2 bash getenforce
  • 注册mysql到服务中

    前言 如果命令行输入net start mysql 提示 服务名无效 就表示你还没有将mysql注册到服务中去 因为net start 服务名 启动的是win下注册的服务 接下来的教程会手把手的教你如何将MySQL注册到win服务里面 注册
  • PostgreSQL jdbc 9.4 支持load balance 和 connection failover了

    Postgres2015全国用户大会将于11月20至21日在北京丽亭华苑酒店召开 本次大会嘉宾阵容强大 国内顶级PostgreSQL数据库专家将悉数到场 并特邀欧洲 俄罗斯 日本 美国等国家和地区的数据库方面专家助阵 Postgres XC
  • js使用theamleaf的值

  • Fn+F11/F12无法调整屏幕亮度的问题

    设备管理器看下监视器是否显示通用即插即用显示器 双击打开 位置显示 在 Intel UHD Graphics 上 右击开始菜单 设备管理器 监视器 双击 如果不是的话就是其他乱七八糟的远程软件 或者是什么鬼东西给显示器安装了个软件驱动方便它
  • 求二叉树中度为1的结点个数

    内容 若用二叉链表作为二叉树的存储表示 设计算法求二叉树中度为1的结点个数 步骤 1 算法分析 本题需要采用二叉链表作为二叉树的存储结构 来求解二叉树中度为1的结点个数 大体上分为两部分 第一 建立二叉树 此处采用先序的方式建立二叉树 其次
  • 新电脑的正确打开方式——(近万字图文并茂详细分步骤讲解)【万一那天你就有新电脑了呢】包括个性化·等你来解锁哦

    新电脑买回来如何让配置 新电脑买回来如何装饰 新电脑买回来如何让电脑更干净 等等 这些问题都在困惑着大家 那么接下来我急来告诉大家 新电脑的正确打开方式吧 建议收藏此博客 万一那天你也有属于自己的新机了呢 似此星辰非昨夜 为谁风露立中宵 作
  • 计算机毕业设计 基于SpringBoot餐厅点餐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

    博主介绍 从事软件开发10年之余 专注于Java技术领域 Python人工智能及数据挖掘 小程序项目开发和Android项目开发等 CSDN 掘金 华为云 InfoQ 阿里云等平台优质作者 文末获取源码联系 精彩专栏推荐订阅 不然下次找不到
  • 03_uboot的源码目录分析

    一 文件夹 1 api 硬件无关的功能函数的API 这些函数是uboot本身使用的 uboot移植时基本不用管 2 api examples API相关的测试事例代码 3 board board是板的意思 就是开发板 这个文件夹下放的每一个
  • mysql优化(1)show命令 慢查询日志 explain profiling

    原文地址 http zhumeng8337797 blog 163 com blog static 1007689142012095142876 suggestedreading wumii 目录 一 优化概述 二 查询与索引优化分析 1性
  • 正则表达式判断是否以某字符串结尾

    前言 正则来实现判断他是否以指定字符串结尾 实现效果 实现思路 判断他是否以指定字符串结尾 实现代码 判断是否以 jpeg结尾 let str ajsjsjsjsjjsjjpeg let str1 jpegajsjsjsjsjjsjjpmm
  • Python 面向对象(二)

    6 2 继承 继承就是一个类可以获得另外一个类中的成员属性和成员方法 作用 减少代码 增加代码的复用功能 同时可以设置类与类直接的关系 继承与被继承的概念 被继承的类叫父类 也叫基类 也叫超类 用与继承的类 叫子类 也叫派生类 继承与被继承
  • 一步一步教你如何在Altium Designer中导入ALLEGRO的brd文件

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