文档库

最新最全的文档下载
当前位置:文档库 > Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

Date: 2008/ 04 / 25

Author:周曙光

Version: v16.x

Keywords:数据转换AD6(Altium Designer 6)

Note: 任何两个EDA工具之间的数据转换都不是百分百的正确,都需要做一定修改。

随着PCB设计的复杂程度和高速PCB设计需求的不断增加,越来越多的PCB设计者、设计团队选择Cadence的设计平台和工具。但是,由于没有AD6数据到Cadence数据直接转换工具,长期以来如何将现有的基于AD6平台的设计数据转化到Cadence平台上来一直是处于平台转化期的设计者所面临的难题。

下面结合Cadence和Altium的PCB设计工具,提供一条比较合理的转换途径。

1、环境:转换中使用到的工具

a) Altium Designer 6

b) Cadence Capture CIS

c) Cadence Orcad Layout

d) Cadence PCB Editor

e) Cadence PCB Router(CCT)

2、Altium - AD6原理图到Cadence - Capture CIS

在Altium Designer 6原理图的转化上我们可以利用Altium Designer 6的Save Preject As来实现。通过这一功能我们可以直接将AD6的原理图转化到Capture CIS中。

Protel原理图PCB到Cadence的数据转换

然后直接保存为*.dsn文件。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

注意事项:

这里,我们仅提出几点通过实践总结出来的注意事项。

a)封装信息

AD6在输出Capture DSN文件的时候,没有输出封装信息,在Capture中我们会看到所以元件的PCB Footprint属性都是空的。这就需要我们手工为元件添加封装信息,这也是整个转化过程中最耗时的工作。在添加封装信息时要注意保持与AD6 PCB设计中的封装一致性,以及Cadence在封装命名上的限制。

例如一个电阻,在AD6中的封装为AXIAL0.4,在后面介绍的封装库的转化中,将被修改为AXIAL04,这是由于Cadence不允许封装名中出现“.”;再比如DB9接插件的封装在AD6中为DB9RA/F,将会被改为DB9RAF。因此我们在Capture中给元件添加封装信息时,要考虑到这些命名的改变。当然,如果自己有一些标准的Cadence的PCB封装库,也可以直接输入对应的封装库名称。只是需要注意的就是在后面要导入器件的位置信息的时候,需要把AD6中的PCB封装名称修改为Cadence的PCB封装名称。当然两个软件中封装库的原点应该是一致的,否则后面导入PCB Editor时候,器件不在原来的位置。

给器件添加封装的时候,可以不用每个器件都添加一次,可以通过Capture的更新属性一次性进行操作。具体操作如下:

点击工程名称,然后在菜单tools->Updata properties,在这个属性更新界面里,需要选择一个自己编辑的UPD文件。

UPD文件格式如下:

"" "PART NUMBER" "COST" "VENDOR" "COMPSIDE" "PCB Footprint"

CO." "" "DIP14"

"74LS00" "20-12345" "$1.20" "ABC

CO." "" "DIP14"

"7400" "20-12345" "$1.20" "ABC

"74F162" "20-67890" "$.90" "ABC

CO." "" "SO16"

".1UF" "30-10293" "$.25" "XYZ INC." "BOTTOM" "1206S"

b)原始设计要规范

AD6的原理图应该要规范,保证导出之后的错误尽可能的少,譬如,网络的连线最好不要直接连接到pin管脚,应该来出来一段线之后再去连接其他管脚。还有电源地符号,最好在AD6中引出一段线再接。

Protel原理图PCB到Cadence的数据转换

c)管脚信息

一些器件的隐藏管脚或管脚号在转化过程中会丢失,需要在Capture中使用库编辑的方法添加上来。通常易丢失管脚号的器件时电阻电容等离散器件。

d)层次化设计中的问题

在层次化设计中,模块之间连接的总线需要在Capture中命名。即使在AD6中已经在父设计中对这样的总线命名了,还是要在Capture中重新来过,以确保连接。

e)一个封装对应几个部分的器件

对于一个封装中有多个部分的器件,要注意修改其位号。例如一个74ls00,在AD6中使用其中的两个门,位号为U8A,U8B。这样的信息在转化中会丢失,需要重新添加。基本上注意到上述几点,借助AD6,我们就可以将AD6的原理图转化到Capture中。进一步推广,这也为现有的AD6原理图符号库转化到Capture提供了一个途径。

导入Capture CIS之后的效果:

Protel原理图PCB到Cadence的数据转换

总之,我们在转换完成之后还需要检查一下,尽可能满足CIS的原理图设计要求。

3、Altium - AD6的PCB封装库到Cadence – PCB Editor的转换

长期使用Protel作PCB设计,我们总会积累一个庞大的经过实践检验的Protel封装库,当设计平台转换时,如何保留这个封装库总是令人头痛。这里,我们将使用Orcad Layout,和PCB Eeitor来完成这项工作。在这里,我推荐大家使用一个免费的库制作工具:Allegro 封装生成器0.08(FPM),这个软件在http://www.wendangku.net/doc/cb050721aaea998fcc220ed9.html上可以去下载。这个免费软件可以生成几千个Allegro的封装库,满足我们大部分的需要,而且这个软件还有一个优点,它的封装库命名,都是按照国际标准-IPC 7531标准命名,我们任何一个PCB设计软件,都可以参考这个命名标准。所以,我们需要转换的库只是少部分了,只有那些形状异样的,需要我们从AD6转换到PCB Editor。

注意点:Allegro的建库,还需要建焊盘,所以工作量稍大。但有一点,繁琐的工作,

Protel原理图PCB到Cadence的数据转换

是为我们的设计更严谨,不那么随意。

下图的虚线框中是Allegro封装库的一些内容:

Flash 是用在负片时候,过孔(当然包括通孔焊盘)与平面连接的形状,后缀名:*.fsm和*.dra。

Shape 是做异型焊盘用的,后缀名:*.ssm和*.dra。

上面两项是为了做一个焊盘。

通过Cadence的Cadence SPB 16.0->PCB Editor Utilities-> pad designer来设计一个*.pad。

有了pad文件,我们才可以去创建我们的封装。

*.psm和*.dra这是器件封装的后缀名。

*.bsm和*.dra这是Mechanical封装的后缀名。

*.osm和*.dra这是图框符号的后缀名。

Protel原理图PCB到Cadence的数据转换

在这里,把Cadence的封装介绍的详细点,主要是因为做设计,我们的库一定要标准,这样才能完成一个好的PCB。

AD6 to PCB Editor的封装转换步骤:

a) 在AD6中将PCB封装放置(可以一次将所有需要转换的全部放置上来)到一张空的PCB中,并将这个PCB文件用Protel PCB 2.8 ASCII的格式导出,File->Save As;

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

b) 使用Cadence的Orcad Layout软件,导入(import)这个Protel PCB 2.8 ASCII文件并保存(.max);

Protel原理图PCB到Cadence的数据转换

Import->Protel PCB,选择我们刚才导出的PCB文件:

Protel原理图PCB到Cadence的数据转换

c) 使用Cadence的PCB Editor将生成的Layout .max文件import为Allegro的.brd文件;

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

d) 在PCB Editor里,把新生成的.brd文件打开,选择顶层菜单的Tools>Padstack>Modify Design Padstack,此时会在Options标签页里面看见当前pad的名称和数量(从24.pad开始逐一增加)。逐一选择一种,点选”Edit”,激活Padstack Designer对选中的.pad进行编辑。

Protel原理图PCB到Cadence的数据转换

e) 对于表贴pad,首先查看Layers标签页,检查此Pad是否已经存在库中或可以用库中已经存在的.pad替换, 用Tools->Padstack->Replace命令去替换焊盘。如果没有,那么就需要修改:

① Parameters标签页中Type选项由”Blind/Buried”改为”Single项”;

② Unit 部份:Units 选择Mils,Decimal places 输入0,表示使用单位为mil,

小数点后没有小数,即为整数;

③ Layers标签页中,删除Top~Bottom之间除Default Internal层之外其他的所有层;调整顶层的Regular Pad、Thermal Relief(比Regular Pad大6Mil) 、Anti Pad(比Regular Pad大6Mil);Soldermask_Top层的Regular Pad(比Top层Regular Pad大6Mil);Pastemask_Top层的Regular Pad(同Top层Regular Pad),确认其他不用层的数据为”Null”;(对于表贴pad,只需要设置Top、Soldermask_Top和Pastermask_Top三层即可)

④ 按照.pad文件的命名格式对新建立的这个pad进行保存,保存在环境变量里设置的allegro识别的路径内。Setup->User Preferences;

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

⑤ 选择顶层菜单的Tools> Padstack>Replace,点选刚刚修改的Pad,此时在Options标签页的Old选项里面里会出现未改之前的Pad名称;再点击New选项后面的按钮,选择新建立的Pad,最后点击下方的Replace按钮,完成对此Pad的更新。

对于过孔的pad,首先查看Layers标签页,检查此Pad是否已经存在库中或可以用库中已经存在的.pad替换, 用Tools->Padstack->Replace命令去替换焊盘。如果没有,那么就需要修改:

① 确认Parameters标签页中Type选项为”Through”(或者定义为”Blind/Buried”视设计需要而定);

② Unit 部份:Units 选择Mils,Decimal places 输入0,表示使用单位为mil,小数点后没有小数,即为整数;

③ Layers标签页中,删除Top~Bottom之间除Default Internal层之外其他的所有层;调整顶层的Regular Pad、Thermal Relief(比Regular Pad大10Mil) 、Anti Pad(比Regular Pad 大10Mil);复制Top层信息并且Copy to all ,即可设定Top、Default Internal和Bottom这3层;调整Soldermask_Top层的Regular Pad(比Top层Regular Pad大6Mil)并复制到Soldermask_Bottom层;(对于过孔pad,不需要设置Pastermask_Top层)

④ 按照.pad文件的命名格式对新建立的这个pad进行保存,保存在环境变量里面设置的allegro识别的路径内;

⑤ 选择顶层菜单的Tools> Padstack>Replace,点选刚刚修改的Pad,此时在Options标签页的Old选项里面里会出现未改之前的Pad名称;再点击New选项后面的按钮,选择新建立的Pad,最后点击下方的Replace按钮,完成对此Pad的更新。

f) 按照上面(e)项的方式将所有pad替换完成;

注:由于PCB Editor每生成一次库文件的时候,其.pad文件的名称都是从24.pad开始依次增加直至所有的pad输出完毕。如果进行2次或多次库文件生成操作,后面的操作产生的.pad 文件(从24.pad开始的)会覆盖前面的.pad文件从而导致在调用前面生成的库文件.dra时出现焊盘被更换的情况,所以在导出之后需要从.dra文件中重新建立.pad文件并将.dra中的pad用新生成的.pad文件replace才能保证库的正确使用!在这里我建议大家还是安装IPC标准为我们的焊盘命名,保证各个EDA工具统一,也保证我们设计团队的统一。

g) 接下来,我们使用PCB Editor的Export->libraries功能将封装库*.dra、*.psm等,焊盘

Protel原理图PCB到Cadence的数据转换

库*.pad输出出来,再经过h)操作,将ref等加上就完成了AD6封装库到PCB Editor转化;

h) A D6中的”Designator”转换为PCB Editor里Components 下Ref Des的Silkscreen_Top和Display_Top这2层;”Comment”转换为Geometry下Part Geometry的Silkscreen_Top和Display_Top这2层。此时将2个”Designator”与2个”Comment”删除(如果没有,不关注它),并在Ref Des的Silkscreen_Top层添加”REF”,在Device Type的Silkscreen_Top层添加”DEV”;

重点说明:位号REF必须是手动添加,软件转换的时候,这个属性丢失。

i) File>Save as按照元器件命名规则生成*.dra文件并保存至allegro元件库目录下;

j) File>Create Symbol生成*.psm文件并保存至*.dra的同一目录下。

至此AD6元器件导入PCB Editor的过程全部结束,在PCB Editor里面可以对新生成的库文件进行调用。在PCB Editor中通过*.pad文件组织*.dra文件,通过*.dra文件生成*.psm 等文件后才能对元器件进行调用,所以在元件的使用过程中要注意各个部分的对应关系避免出现*.pad的错误调用等不匹配现象的发生。

注意:库转换过程中,器件的原点不要去修改,如果修改,后面导入位置信息的时候,器件就会不在原来的位置。

4、AD6的PCB设计文件到PCB Editor中的转换

有了前面两步转换原理图和PCB封装库,我们可以进行AD6到PCB Editor的PCB转换了。这个转化过程更确切的说是一个设计重现过程,我们将在PCB Editor中重现AD6的PCB的布局和布线。

当然前面说过了可以从AD6另存为Protel PCB 2.8 ASCII的格式的PCB,然后从ORCAD Layout中Import这个PCB,save成一个*.max文件,再从PCB Editor中Import生成的*.max,存成一个*.brd文件。但这种方法转换的PCB不能和原理图(CIS原理图)同步,所以意义不是很大。

1传网表

把转换好的原理图(添加了封装信息之后的原理图),生成PCB Editor格式的网表传递到*.brd文件中。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

这个过程主要是把我们的封装信息和网络信息以网表的形式传递给PCB软件。生成一个brd文件。

Protel原理图PCB到Cadence的数据转换

2重现布局

第一种方式

在AD6中输出Place & Pick文件,这个文件中包含了完整的器件位置,旋转角度和放置层的信息。输出格式用text格式,单位用imperial;

Protel原理图PCB到Cadence的数据转换

输出生成的Pick Place for xxx.txt文件,把有用的信息提取,生成一个cadence的PCB Editor软件认识的位置信息文件(如:place_txt.txt);

Protel原理图PCB到Cadence的数据转换

其中位号、X轴、Y轴、旋转角度、器件放置是top层还是bottom层,都可以从AD6输出的文件Pick Place for xxx.txt中提取,器件放在top不需要添加信息,放botoom层需要添加“m”。这些操作都可以通过UltraEdit来进行。封装名称由于AD6和PCB Editor中命名不同,我们可以通过批量替换的方式去替换,这个需要我们建立一张封装对应表格。

在这里,我用一个批量替换的软件,可以来做这个批量替换的工作。节省我们修改封装名称的时间。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

我们通过修改,生成为PCB Editor能读入的Place_txt.txt文件(位置信息文件)。刚才从CIS导入网表后,生成的brd文件中,导入这个Place_txt.txt文件,我们就可以得到布局了。这步导入的时候,必须保证库是正确。

注意:这里需要保证我们的AD6中和PCB Editor中的库坐标原点是一致的。

在PCB Editor中导入位置信息文件Place_txt.txt。会把器件摆放到相对应的位置。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

导入后,器件会自动摆放到相应的和AD6对应的位置。至于板卡的外框,可以通过AD6输出DXF格式,在PCB Editor中导入DXF,来直接引用,也可以重新画。保存为一个brd 文件,如:max.brd。

第二种方式

这种方式要建立在你能够顺利把PCB文件转换到PCB Editor中。

1.在ad6.8里打开一个PCB图后点文件- 另存为-protel pcb

2.8 ASCII 文件

2.点开始--所有程序---cadence spb16.0----Layout plus 启动ORCAD16.0

3.在orcad16.0点File---Import---protel pcb打开的对话框里的Input protel pcb后面点Browse 找到刚才在Protel里输出的文件点确定

就会在你输出protel pcb 2.8 ascll 的文件目录下生成一个相应MAX文件

4.启动SPB16.0 PCB Editor

点File---Import----orcad layout---找到刚才MAX文件

5.输出坐标文件,上面这些步骤,主要是得到我们的布局位置信息,也就是器件的坐标文件Place_txt.txt,得到这个文件之后,还是要象第一种方式一样,要去替换相应封装。

第三种方式

看重现布线章节。从AD6中输出DSN,PCB Router导入板卡。

在PCB Router中的Report->Specify->Placement:

Protel原理图PCB到Cadence的数据转换

得到:

Protel原理图PCB到Cadence的数据转换

把这个文件修改成符合Place_txt.txt文件格式的文本文件,然后在PCB Editor导入Place_txt.txt,完成PCB的布局。

Protel原理图PCB到Cadence的数据转换

注意:这里需要保证我们的AD6中和PCB Editor中的库坐标原点是一致的。

在PCB Editor中导入位置信息文件Place_txt.txt。会把器件摆放到相对应的位置。

导入AD6板卡的外框--通过DXF文件

在AD6软件中,我们打开PCB,save as我们的PCB文件

Protel原理图PCB到Cadence的数据转换

保存为DXF文件。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

注意:存成DXF格式,然后单位一定要是Imperial,如果是存成米为单位,在PCB Editor 中,没有对应的尺寸,到时候不好转换。

在PCB Editor中,我们导入DXF文件之前,我们需要设计参数。

新建一个brd文件,这个时候设置参数:主要是与AD6输出的时候单位一致。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

在PCB Editor中,file->import->dxf:

注意尺寸是INCH,导入AD6输出的DXF文件,编辑层对应。

Protel原理图PCB到Cadence的数据转换

选择我们需要的外框对应的层,与PCB Editor中的层去对应。对应到board geometry的outline。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

导入后,接着输出sub-drawing。在file->export->sub-drawing,然后,用鼠标框选我们需要的外框,输入原点坐标,比如输入:x 0 0。也可以直接点击板卡的左下角,确定原点坐标,弹出一个对话框,存好sub-drawing文件。

Protel原理图PCB到Cadence的数据转换

重新打开开始我们存好的max.brd文件。

导入有外框的sub-drawing文件。

File->import->sub-drawing,导入刚才存的standard.clp文件。

这时候,外框就导入到我们的brd文件中,把外框放置与AD6文件一致的位置。

3重现布线

布线信息的恢复,要使用PCB Router(CCT)作为桥梁。首先,从AD6中输出包含布线信息的PCB Router(CCT) DSN文件。

AD6中File->Save as 存成一个Specctra Design File(*.dsn)文件。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

对于这个DSN文件我们要注意以下2点:

a)AD6中的层命名与Allegro中有所区别,要注意使用文本编辑器(UltraEdit)作适当的批量替换,例如AD6中顶层底层分别为Toplayer和Bottomlayer,而在Allegro中这两层曾称为TOP和BOTTOM;当然其他布线层也要和brd中的层名称对应。

b)注意在*.dsn文件中查看过孔的定义,并添加到Allegro的规则中。

Protel原理图PCB到Cadence的数据转换

这里的Via0_TB_RoutingVias需要替换为PCB Editor中对应的过孔名称,如下面例子:VIA。

Protel原理图PCB到Cadence的数据转换

Editor中设置过孔类型:

PCB

manager,在Physical项中;

Setup->Constraints->Constraint

Protel原理图PCB到Cadence的数据转换

这两点关系到后面的brd文件是否能导入布线文件,很关键。

打开Cadence的PCB Router软件,导入*.dsn文件;

Protel原理图PCB到Cadence的数据转换

打开DSN文件,我们看到布线好的pcb,输出布线文件,如:max.rte。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

打开PCB Editor软件,打开刚才前面布局好的max.brd文件。从PCB Editor中,进入PCB Router(cct)软件。

Protel原理图PCB到Cadence的数据转换

在CCT中,导入布线文件。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

导入完成,退出PCB Router(CCT),会询问是否保存布线文件。

Protel原理图PCB到Cadence的数据转换

这时,退回到PCB Editor界面,如果布线显示,则OK了。如果没有走线信息,需要我们导入刚才保存的max.ses文件。

File->Import->Router;选择max.ses文件,导入PCB文件,生成max.brd文件。

Protel原理图PCB到Cadence的数据转换

Protel原理图PCB到Cadence的数据转换

至此,我们完成了从AD6导入Cadence平台的转换。

Protel原理图PCB到Cadence的数据转换

如果您有好的设计小技巧,或者有疑问,请编写文档发给我。周曙光 zhoushg@http://www.wendangku.net/doc/cb050721aaea998fcc220ed9.html 我有好的文档,会及时给您发过来。