Protel原理图PCB到Cadence的数据转换Date:2008/04/25Author:周曙光Version:v16.xKeywords:数据转换AD6(AltiumDesigner6)Note:任何两个EDA工具之间的数据转换都不是百分百的正确,都需要做一定修改。随着PCB设计的复杂程度和高速PCB设计需求的不断增加,越来越多的PCB设计者、设计团队选择Cadence的设计平台和工具。但是,由于没有AD6数据到Cadence数据直接转换工具,长期以来如何将现有的基于AD6平台的设计数据转化到Cadence平台上来一直是处于平台转化期的设计者所面临的难题。下面结合Cadence和Altium的PCB设计工具,提供一条比较合理的转换途径。1、环境:转换中使用到的工具a)AltiumDesigner6b)CadenceCaptureCISc)CadenceOrcadLayoutd)CadencePCBEditore)CadencePCBRouter(CCT)2、Altium-AD6原理图到Cadence-CaptureCIS在AltiumDesigner6原理图的转化上我们可以利用AltiumDesigner6的SavePrejectAs来实现。通过这一功能我们可以直接将AD6的原理图转化到CaptureCIS中。然后直接保存为*.dsn文件。注意事项:这里,我们仅提出几点通过实践总结出来的注意事项。a)封装信息AD6在输出CaptureDSN文件的时候,没有输出封装信息,在Capture中我们会看到所以元件的PCBFootprint属性都是空的。这就需要我们手工为元件添加封装信息,这也是整个转化过程中昀耗时的工作。在添加封装信息时要注意保持与AD6PCB设计中的封装一致性,以及Cadence在封装命名上的限制。例如一个电阻,在AD6中的封装为AXIAL0.4,在后面介绍的封装库的转化中,将被修改为AXIAL04,这是由于Cadence不允许封装名中出现“.”;再比如DB9接插件的封装在AD6中为DB9RA/F,将会被改为DB9RAF。因此我们在Capture中给元件添加封装信息时,要考虑到这些命名的改变。当然,如果自己有一些标准的Cadence的PCB封装库,也可以直接输入对应的封装库名称。只是需要注意的就是在后面要导入器件的位置信息的时候,需要把AD6中的PCB封装名称修改为Cadence的PCB封装名称。当然两个软件中封装库的原点应该是一致的,否则后面导入PCBEditor时候,器件不在原来的位置。b)原始设计要规范AD6的原理图应该要规范,保证导出之后的错误尽可能的少,譬如,网络的连线昀好不要直接连接到pin管脚,应该来出来一段线之后再去连接其他管脚。还有电源地符号,昀好在AD6中引出一段线再接。c)管脚信息一些器件的隐藏管脚或管脚号在转化过程中会丢失,需要在Capture中使用库编辑的方法添加上来。通常易丢失管脚号的器件时电阻电容等离散器件。d)层次化设计中的问题在层次化设计中,模块之间连接的总线需要在Capture中命名。即使在AD6中已经在父设计中对这样的总线命名了,还是要在Capture中重新来过,以确保连接。e)一个封装对应几个部分的器件对于一个封装中有多个部分的器件,要注意修改其位号。例如一个74ls00,在AD6中使用其中的两个门,位号为U8A,U8B。这样的信息在转化中会丢失,需要重新添加。基本上注意到上述几点,借助AD6,我们就可以将AD6的原理图转化到Capture中。进一步推广,这也为现有的AD6原理图符号库转化到Capture提供了一个途径。导入CaptureCIS之后的效果:总之,我们在转换完成之后还需要检查一下,尽可能满足CIS的原理图设计要求。3、Altium-AD6的PCB封装库到Cadence–PCBEditor的转换长期使用Protel作PCB设计,我们总会积累一个庞大的经过实践检验的Protel封装库,当设计平台转换时,如何保留这个封装库总是令人头痛。这里,我们将使用OrcadLayout,和PCBEeitor来完成这项工作。在这里,我推荐大家使用一个免费的库制作工具:Allegro封装生成器0.08(FPM),这个软件在www.pcbbbs.com上可以去下载。这个免费软件可以生成几千个Allegro的封装库,满足我们大部分的需要,而且这个软件还有一个优点,它的封装库命名,都是按照国际标准-IPC7531标准命名,我们任何一个PCB设计软件,都可以参考这个命名标准。所以,我们需要转换的库只是少部分了,只有那些形状异样的,需要我们从AD6转换到PCBEditor。注意点:Allegro的建库,还需要建焊盘,所以工作量稍大。但有一点,繁琐的工作,是为我们的设计更严谨,不那么随意。下图的虚线框中是Allegro封装库的一些内容:Flash是用在负片时候,过孔(当然包括通孔焊盘)与平面连接的形状,后缀名:*.fsm和*.dra。Shape是做异型焊盘用的,后缀名:*.ssm和*.dra。上面两项是为了做一个焊盘。通过Cadence的CadenceSPB16.0-PCBEditorUtilities-paddesigner来设计一个*.pad。有了pad文件,我们才可以去创建我们的封装。*.psm和*.dra这是器件封装的后缀名。*.bsm和*.dra这是Mechanical封装的后缀名。*.osm和*.dra这是图框符号的后缀名。在这里,把Cadence的封装介绍的详细点,主要是因为做设计,我们的库一定要标准,这样才能完成一个好的PCB。AD6toPCBEditor的封装转换步骤:a)在AD6中将PCB封装放置(可以一次将所有需要转换的全部放置上来)到一张空的PCB中,并将这个PCB文件用ProtelPCB2.8ASCII的格式导出,File-SaveAs;b)使用Cadence的OrcadLayout软件,导入(import)这个ProtelPCB2.8ASCII文件并保存(.max);Import-ProtelPCB,选择我们刚才导出的PCB文件:c)使用Cadence的PCBEditor将生成的Layout.max文件import为Allegro的.brd文件;d)在PCBEditor里,把新生成的.brd文件打开,选择顶层菜单的ToolsPadstackModifyDesignPadstack,此时会在Options标签页里面看见当前pad的名称和数量(从24.pad开始逐一增加)。逐一选择一种,点选”Edit”,激活PadstackDesigner对选中的.pad进行编辑。e)对于表贴pad,首先查看Layers标签页,检查此Pad是否已经存在库中或可以用库中已经存在的.pad替换,用Tools-Padstack-Replace命令去替换焊盘。如果没有,那么就需要修改:①Parameters标签页中Type选项由”Blind/Buried”改为”Single项”;②Unit部份:Units选择Mils,Decimalplaces输入0,表示使用单位为mil,小数点后没有小数,即为整数;③Layers标签页中,删除Top~Bottom之间除DefaultInternal层之外其他的所有层;调整顶层的RegularPad、ThermalRelief(比RegularPad大6Mil)、AntiPad(比RegularPad大6Mil);Soldermask_Top层的RegularPad(比Top层RegularPad大6Mil);Pastemask_Top层的RegularPad(同Top层RegularPad),确认其他不用层的数据为”Null”;(对于表贴pad,只需要设置Top、Soldermask_Top和Pastermask_Top三层即可)④按照.pad文件的命名格式对新建立的这个pad进行保存,保存在环境变量里设置的allegro识别的路径内。Setup-UserPreferences;⑤选择顶层菜单的ToolsPadstackReplace,点选刚刚修改的Pad,此时在Options标签页的Old选项里面里会出现未改之前的Pad名称;再点击New选项后面的按钮,选择新建立的Pad,昀后点击下方的Replace按钮,完成对此Pad的更新。对于过孔的pad,首先查看Layers标签页,检查此Pad是否已经存在库中或可以用库中已经存在的.pad替换,用Tools-Padstack-Replace命令去替换焊盘。如果没有,那么就需要修改:①确认Parameters标签页中Type选项为”Through”(或者定义为”Blind/Buried”视设计需要而定);②Unit部份:Units选择Mils,Decimalplaces输入0,表示使用单位为mil,小数点后没有小数,即为整数;③Layers标签页中,删除Top~Bottom之间除DefaultInternal层之外其他的所有层;调整顶层的RegularPad、ThermalRelief(比RegularPad大10Mil)、AntiPad(比RegularPad大10Mil);复制Top层信息并且Copytoall,即可设定Top、DefaultInternal和Bottom这3层;调整Soldermask_Top层的RegularPad(比Top层RegularPad大6Mil)并复制到Soldermask_Bottom层;(对于过孔pad,不需要设置Pastermask_Top层)④按照.pad文件的命名格式对新建立的这个pad进行保存,保存在环境变量里面设置的allegro识别的路径内;⑤选择顶层菜单的ToolsPadstackReplace,点选刚刚修改的Pad,此时在Options标签页的Old选项里面里会出现未改之前的Pad名称;再点击New选项后面的按钮,选择新建立的Pad,昀后点击下方的Replace按钮,完成对此Pad的更新。f)按照上面(e)项的方式将所有pad替换完成;注:由于PCBEditor每生成一次库文件的时候,其.pad文件的名称都是从24.pad开始依次增加直至所有的pad输出完毕。如果进行2次或多次库文件生成操作,后面的操作产生的.pad文件(从24.pad开始的)会覆盖前面的.pad文件从而导致在调用前面生成的库文件.dra时出现焊盘被更换的情况,所以在导出之后需要从.dra文件中重新建立.pad文件并将.dra中的pad用新生成的.pad文件replace才能保证库的正确使用!在这里我建议大家还是安装IPC标准为我们的焊盘命名,保证各个EDA工具统一,也保证我们设计团队的统一。g)接下来,我们使用PCBEditor的Export-libraries功能将封装库*.dra、*.psm等,焊盘库*.pad输出出来,再经过h)操作,将ref等加上就完成了AD6封装库到PCBEditor转化;h)AD6中的”Designator”转换为PCBEditor里Components下RefDes的Silkscreen_Top和Display_Top这2层;”Comment”转换为Geometry下PartGeometry的Silkscreen_Top和Display_Top这2层。此时将2个”Designator”与2个”Comment”删除(如果没有,不关注它),并在RefDes的Silkscreen_Top层添加”REF”,在DeviceType的Silkscreen_Top层添加”DEV”;重点说明:位号REF必须是手动添加,软件转换的时候,这个属性丢失。i)FileSaveas按照元器件命名规则生成*.dra文件并保存至allegro元件库目录下;j)FileCreateSymbol生成*.psm文件并保存至*.dra的同一目录下。至此AD6元器件导入PCBEditor的过程全部结束,在PCBEditor里面可以对新生成的库文件进