原理图设计这活儿,最怕的不是画图本身,而是文件在不同EDA工具之间来回倒腾。尤其是从Altium Designer或者Orcad Capture迁移到PADS Logic的时候,那叫一个折腾——元件符号对不上、网络标号丢了、网表导出去PCB那边又报错。我这些年帮团队处理过不下几十次这类迁移,踩过的坑能写满一个笔记本。这篇内容就是把这些经验整理出来,围绕PADS Logic这个平台,把AD和Orcad文件导入的完整流程、网表导出的关键设置、以及那些文档里不会写的避坑细节,一次性讲透。不管你是刚接触PADS的新手,还是被文件转换搞得头大的老手,都能从这里找到可以直接抄作业的操作步骤和排查思路。
1. 先搞清楚PADS Logic到底吃什么样的文件
很多人一上来就急着点导入,结果文件是打开了,但元件全变成一堆散乱的线段,或者网络标号全部消失。根本原因在于没弄明白PADS Logic对不同来源文件的解析逻辑。它跟AD和Orcad的底层数据模型不一样,导入过程本质上是一次“翻译”,翻译得好不好,取决于你给它的源文件格式对不对。
1.1 PADS Logic原生支持与间接支持的格式差异
PADS Logic原生能直接读的格式其实不多,主要是它自己的.sch文件,以及通过PADS自带转换器处理的.dsn(Orcad Capture)和.PrjPcb(AD的工程文件)。但这里有个关键点:它读Orcad的.dsn时,走的是PADS内部的Orcad转换引擎,这个引擎对Orcad版本的敏感度很高。我实测下来,Orcad Capture 16.6和17.4的.dsn文件导入成功率最高,而更老的15.x版本或者更新的23.x版本,经常会出现引脚映射错位的问题。
AD这边就更绕一些。PADS Logic不能直接打开.SchDoc文件,你得先在AD里把原理图导出成PADS能认的格式。常见做法有两种:一是导出为.dsn格式(AD支持另存为Orcad的DSN),二是通过EDIF格式中转。我个人的经验是,如果原理图里用了大量AD特有的元件属性(比如自定义的Parameters),走EDIF中转会丢更多信息,不如直接另存为DSN来得干净。
注意:不管你用哪种方式,导入前一定要在源工具里把原理图编译一遍,确保没有ERC错误。带着错误导入,PADS Logic会直接卡死或者生成一堆幽灵网络。
1.2 导入前必须做的三项源文件清理工作
这一步很多人会跳过,但它是决定导入成败的关键。我在多次迁移中总结出一个规律:源文件越“干净”,导入后需要手动修复的工作量就越小。
第一项清理是删除所有非必要的图形元素。AD和Orcad里经常会有一些注释性的线条、文本框、图片,这些东西PADS Logic要么不认,要么会把它转换成莫名其妙的元件。你可以在源工具里把这些东西全选删掉,或者放到一个单独的图层里再隐藏。
第二项清理是统一元件位号命名规则。AD里允许位号带下划线或者特殊字符,比如R_1、C-2,但PADS Logic对位号的命名有严格限制,只认字母加数字的组合。导入前最好用AD的“Annotate”功能重新编号,把所有位号规范成R1、C2这种格式。
第三项清理是检查网络标号的作用域。Orcad里网络标号有全局和局部之分,AD里也有类似的分层设计概念。如果源文件里用了全局网络标号,导入PADS Logic后可能会变成普通标签,导致网络连接关系丢失。稳妥的做法是在源工具里把所有网络标号都改成全局的,或者干脆用导线直接连。
1.3 版本兼容性对照表与选择建议
不同版本的AD和Orcad,导入PADS Logic的成功率差别很大。下面这张表是我在实际项目中反复验证过的结果,供你参考:
| 源工具版本 | 导出格式 | PADS Logic导入成功率 | 常见问题 |
|---|---|---|---|
| AD 09-17 | DSN | 高 | 少量元件属性丢失 |
| AD 18-21 | DSN | 中 | 引脚映射偶发错位 |
| AD 22以上 | EDIF | 低 | 网络标号大量丢失 |
| Orcad 16.6 | DSN | 高 | 基本无问题 |
| Orcad 17.4 | DSN | 高 | 需注意封装库路径 |
| Orcad 23.x | DSN | 中 | 部分新元件类型不识别 |
从表里能看出来,Orcad 16.6和17.4是迁移的“黄金版本”,如果你有选择权,尽量用这两个版本做中转。AD的话,17以前的版本导出DSN比较稳,新版本建议先降级保存再导出。
2. AD原理图导入PADS Logic的完整操作链路
AD转PADS Logic是我处理过最多的场景,因为很多中小团队早期用AD画图,后来因为PCB设计需要换到PADS。这个转换过程有几个关键节点,每个节点都有容易翻车的地方。下面我按实际操作顺序,把每一步拆开讲。
2.1 在AD中导出DSN文件的正确姿势
打开你的AD工程,在Projects面板里选中要导出的原理图文件。注意,这里不要选整个工程,而是选单个.SchDoc文件。然后点File菜单,找“Save As”,在保存类型里选“Orcad DSN File (*.dsn)”。弹出来的对话框里有一个“Options”按钮,点进去,把“Export Parameters”和“Export Net Labels”都勾上,这两个选项决定了元件参数和网络标号能不能带过去。
保存的时候有个细节:文件名不要用中文,路径也不要有中文。PADS Logic的转换引擎对中文路径的支持很差,经常会出现文件读一半报错的情况。我一般会在D盘根目录建一个纯英文的临时文件夹,专门用来放转换文件。
导出完成后,别急着关AD。用文本编辑器打开那个DSN文件,搜一下“NET”关键字,看看网络标号是不是都在。如果发现网络标号数量明显不对,说明导出时丢了,得回AD里检查是不是有网络标号被放在了非电气图层上。
2.2 PADS Logic导入向导里那些容易忽略的选项
打开PADS Logic,新建一个空白设计,然后点File > Import。在文件类型里选“Orcad Capture Design (*.dsn)”,找到你刚才导出的文件。点打开之后,会弹出一个导入向导,这个向导里有三页设置,每一页都有坑。
第一页是“General”设置,里面有个“Convert Net Names”选项,默认是勾上的。这个选项的作用是把Orcad的网络命名规则转成PADS的规则,比如把VCC_3V3转成VCC3V3。如果你希望保留原始网络名,就把这个勾去掉。我一般会去掉,因为保留原始名字方便后续跟原理图对照。
第二页是“Libraries”设置,这里要指定元件库的映射关系。PADS Logic会问你,导入的元件符号是从现有库中匹配,还是新建一个库。如果你之前已经在PADS里建好了对应的元件库,就选“Use Existing Library”,然后指定库文件路径。如果没有,就选“Create New Library”,让它自动生成。这里有个经验:自动生成的库往往很乱,元件名和AD里的对不上,后期维护很麻烦。所以只要时间允许,我建议先在PADS里把常用元件库建好,导入时直接映射。
第三页是“Options”设置,里面有个“Preserve Pin Numbers”选项,一定要勾上。不勾的话,PADS Logic会按照自己的规则重新给引脚编号,导致跟PCB封装对不上。还有一个“Import Graphics”选项,如果你源文件里有公司Logo之类的图形,可以勾上,但要注意这些图形导入后会变成不可编辑的块,后期想改很麻烦。
2.3 导入后元件符号错乱的修复流程
导入完成后,第一件事不是急着画线,而是检查元件符号。按Ctrl+A全选,然后看状态栏显示的元件数量跟源文件是否一致。如果数量不对,说明有元件在导入过程中被合并或者丢失了。
常见的元件符号错乱有三种表现:一是引脚位置偏移,比如本来在左边的引脚跑到右边去了;二是引脚名称变成乱码;三是元件外形完全变成矩形框。第一种情况通常是源文件里用了自定义的引脚排列,PADS Logic解析不了。修复方法是右键点击该元件,选“Edit Component”,在符号编辑器里手动调整引脚位置。第二种情况一般是字符编码问题,把源文件里的引脚名称改成纯英文就能解决。第三种情况最麻烦,说明PADS Logic完全没识别出元件符号,只保留了引脚定义。这时候你得在PADS的元件库里重新建一个符号,然后把引脚映射过去。
我处理过一个最极端的案例:一个AD原理图里有200多个元件,导入后有一半变成了矩形框。后来发现原因是AD里用了“Alternate”元件视图,PADS Logic不认这种多视图元件。解决办法是在AD里把Alternate视图全部删掉,只保留默认视图,重新导出后就正常了。
2.4 网络标号与总线连接的恢复技巧
网络标号丢失是AD转PADS Logic最常见的问题,没有之一。表现就是导入后原理图上光秃秃的,原来密密麻麻的网络标号全没了。这时候别慌,先检查源文件里网络标号的属性。在AD里双击一个网络标号,看它的“Net”属性是不是空的。如果是空的,说明这个标号只是个图形文本,不是真正的电气网络标号,PADS Logic自然不会认。
如果源文件里网络标号是正常的,但导入后还是丢了,那大概率是导出DSN时的问题。回到AD,在导出DSN的对话框里,把“Export Net Labels”选项确认勾上。还有一个隐藏设置:在AD的Preferences里,找到“Schematic > General”,把“Convert Cross-Junctions”和“Convert Net Labels”都勾上。这两个选项默认可能是关的,打开后能显著提高网络标号的保留率。
总线连接的恢复稍微复杂一点。PADS Logic对总线的支持跟AD不太一样,AD里的总线入口(Bus Entry)导入后可能会变成普通导线。修复方法是手动在PADS Logic里重新画总线,然后用“Bus Entry”工具把分支线连上去。如果总线数量多,可以考虑用PADS的“Netlist”功能,直接从网表文件里恢复连接关系,跳过图形界面的修复。
3. Orcad文件迁移到PADS Logic的差异化处理
Orcad转PADS Logic比AD转要顺一些,毕竟PADS Logic的导入引擎就是冲着Orcad设计的。但顺不代表没问题,Orcad的一些特有设计习惯,在PADS Logic里会水土不服。这一章重点讲那些Orcad独有的坑。
3.1 Orcad的DSN版本选择与另存技巧
Orcad Capture保存DSN文件时,默认用的是当前版本的格式。比如你用17.4打开一个16.6的工程,保存时它会问你要不要升级到17.4格式。这时候一定要选“否”,保持16.6格式。因为PADS Logic的导入引擎对16.6格式的支持最完善,升级到17.4后反而可能出现兼容问题。
如果你手头只有高版本的Orcad,比如23.x,那就在保存时选“Save As”,在文件类型里选“Orcad Capture 16.6 Design (*.dsn)”。这样保存出来的文件就是16.6格式,导入PADS Logic的成功率会高很多。
还有一个细节:Orcad的DSN文件里包含了原理图和元件库两部分信息。导出时最好把“Design Cache”清空,让DSN文件只包含原理图本身。清空的方法是点Design > Cleanup Cache,然后保存。这样导入PADS Logic时,它会强制你指定元件库,避免用DSN里自带的缓存库,那些缓存库往往不完整。
3.2 元件库路径映射与封装关联的坑
Orcad的元件库管理跟PADS Logic完全不同。Orcad里一个元件可以关联多个封装,比如一个电阻可以关联0805、0603、0402三种封装,画图时再选。但PADS Logic里,一个元件符号只能对应一个PCB封装,没有多封装的概念。
这就导致一个问题:从Orcad导入的元件,PADS Logic不知道它该用哪个封装。导入向导里会让你指定“PCB Decal”的映射关系,如果你不指定,导入后的元件就没有封装信息,导网表时PCB那边会报“Missing Footprint”错误。
我的做法是提前在PADS Layout里建好所有用到的PCB封装,然后在PADS Logic的元件库管理器里,把每个元件符号跟对应的封装关联起来。导入Orcad文件时,在向导的“Libraries”页面选“Use Existing Library”,指定你建好的库。这样导入后元件就自动带上了封装信息。
如果元件数量太多,手动关联太慢,可以用PADS Logic的“Library Import”功能,从Orcad的OLB文件里批量导入元件符号,然后再批量关联封装。OLB文件是Orcad的元件库文件,PADS Logic可以直接读。
3.3 导入后DRC检查与常见报错处理
Orcad文件导入PADS Logic后,第一件事是跑DRC。PADS Logic的DRC跟Orcad的DRC规则不一样,Orcad里通过的设计,在PADS Logic里可能报一堆错。常见的报错有三类:
第一类是“Duplicate Net Name”,意思是同一个网络名出现了多次。这通常是Orcad里的全局网络标号在PADS Logic里被当成了局部标号,导致同一个网络被分割成了多个。解决办法是在PADS Logic里把这些网络标号改成全局的,或者用“Net Alias”功能重新定义。
第二类是“Unconnected Pin”,意思是引脚没连上。这往往是导入时引脚映射错位导致的。你得逐个检查报错的引脚,看它在原理图上的实际连接关系,然后手动补线。
第三类是“Invalid Reference Designator”,意思是位号不合法。前面提过,PADS Logic对位号命名有严格限制,Orcad里允许的位号格式在PADS Logic里可能不认。解决办法是用PADS Logic的“Renumber”功能重新编号。
提示:DRC报错不要一次性全改,先按错误类型分类,批量处理同一类型的错误,效率会高很多。
4. 网表导出的关键设置与PCB端衔接
原理图画完只是第一步,网表导出才是决定能不能顺利进PCB设计的关键。PADS Logic的网表导出设置比AD和Orcad都要细,很多选项直接影响到PCB那边的导入结果。
4.1 PADS Logic网表格式选择与参数配置
PADS Logic支持导出多种网表格式,最常用的是.asc格式(PADS自己的网表格式)和.net格式(通用网表格式)。如果你后续用PADS Layout做PCB设计,那必须导出.asc格式,因为PADS Layout只认这个格式。如果你要把网表给其他工具用,比如Cadence Allegro,那就导出.net格式。
导出.asc网表时,点File > Export,文件类型选“PADS Netlist (*.asc)”。弹出来的对话框里有几个关键选项:
- Output Format:选“PADS Layout”还是“PADS Router”,一般选PADS Layout。
- Netlist Format:选“PADS 2005”还是“PADS 9.x”,这个要跟你用的PADS Layout版本匹配。版本不匹配的话,PCB那边导入会报错。
- Include Design Rules:这个选项决定要不要把原理图里设置的DRC规则一起导出。我一般会勾上,这样PCB那边能继承原理图的规则设置。
- Include Component Attributes:勾上后,元件的参数(比如阻值、容值)会一起导出,PCB那边可以看到。
还有一个隐藏选项在“Setup > Preferences > Netlist”里,有个“Generate Flat Netlist”和“Generate Hierarchical Netlist”的选择。如果你的设计是分层的,选Hierarchical;如果是单页的,选Flat。选错了会导致网络连接关系混乱。
4.2 网表导出前的连通性自查清单
导出网表之前,一定要做一次完整的连通性自查。我总结了一个清单,每次导出前都过一遍:
- 检查所有元件的位号是否唯一。用PADS Logic的“Verify Design”功能,它会列出重复的位号。
- 检查所有网络是否有名称。匿名网络在PCB那边会变成随机编号,后期调试很麻烦。用“Add Net Alias”给所有匿名网络命名。
- 检查电源和地网络是否连通。电源和地网络通常用全局标号连接,导入后容易断开。用“Connectivity”检查工具跑一遍。
- 检查元件封装是否全部指定。在元件属性里看“PCB Decal”字段是否为空。
- 检查是否有单端网络。单端网络在PCB那边会变成孤立的焊盘,用“Verify Design”能查出来。
这个清单看起来简单,但每一条都能帮你省下大量PCB调试时间。我见过太多人原理图看着没问题,导网表后PCB那边一堆错误,回头查半天,发现就是某个元件的封装没指定。
4.3 PCB端导入网表报错的排查思路
网表导出后,在PADS Layout里导入,如果报错,别急着改原理图。先看报错信息,PADS Layout的报错通常很具体,会告诉你哪个元件、哪个网络出了问题。
常见的报错和对应解决办法:
| 报错信息 | 原因 | 解决办法 |
|---|---|---|
| Missing Footprint | 元件没指定封装 | 回原理图指定封装,重新导网表 |
| Duplicate Pin Number | 引脚编号重复 | 检查元件符号的引脚定义 |
| Net Not Found | 网络名不匹配 | 检查原理图和PCB的网络命名规则 |
| Component Not Found | 元件在PCB库里不存在 | 在PADS Layout里建好对应封装 |
| Invalid Layer | 元件封装用了不存在的层 | 检查PCB封装的层设置 |
排查的时候,我习惯用“二分法”:先把报错涉及的元件和网络单独导出一个子网表,测试能不能导入。如果能,说明问题在别的部分;如果不能,就集中排查这几个元件。这样比全量导入再逐个排查快得多。
4.4 网表更新与原理图变更的同步策略
原理图改完后,网表需要重新导出,PCB那边也要同步更新。PADS Logic和PADS Layout之间有一个“ECO”功能(Engineering Change Order),可以自动同步变更。但ECO不是万能的,有些变更它处理不了,比如元件位号变了、网络名改了,ECO会当成删除旧元件、添加新元件来处理,导致PCB上原来的布局丢失。
我的做法是:小改动(比如改个阻值、加根线)用ECO同步;大改动(比如换元件、改网络名)就重新导网表,然后在PCB里用“Compare/ECO”功能对比新旧网表,手动确认每个变更。这样虽然麻烦一点,但能避免ECO自动处理带来的意外。
还有一个技巧:在PADS Logic里改原理图之前,先备份一份PCB文件。这样万一ECO同步出了问题,还能回退到之前的状态。
5. 那些文档里不会写的实操心得
这一章不讲步骤,讲的是我这些年踩坑踩出来的经验。有些东西你在官方文档里永远看不到,但实际项目中遇到了,能帮你省下好几个小时。
5.1 元件库的长期维护比一次性导入更重要
很多人把文件导入当成一次性任务,导入完就不管了。结果下次再导入同类文件时,又得重新折腾一遍。我的建议是:每次导入后,把用到的元件符号整理到一个专门的库里,命名规则统一,引脚定义标准化。这个库就是你的“迁移库”,以后再有AD或Orcad文件要导入,直接从这个库里匹配,效率能提高好几倍。
整理库的时候,注意把元件的“PCB Decal”字段填好,把“Logic Family”设对(比如TTL、CMOS),把“Pin Type”设准(比如Input、Output、Power)。这些属性在后续导网表和PCB设计时都会用到。
5.2 导入失败时的降级处理方案
有时候不管你怎么调整,文件就是导不进去。这时候别死磕,试试降级处理。所谓降级,就是把源文件拆成更小的部分,分批导入。
具体做法是:在AD或Orcad里,把原理图按功能模块拆成多个文件,每个文件只包含一个模块的电路。然后逐个导入PADS Logic,导入成功后再用“Copy/Paste”把各个模块合并到一个原理图里。合并的时候注意网络标号的作用域,别让不同模块的网络标号冲突。
这个方法听起来笨,但成功率极高。我遇到过一个AD工程,整页导入怎么都失败,拆成电源、MCU、接口三个模块后,每个模块都一次导入成功。
5.3 团队协作中的文件规范建议
如果你是团队协作,文件导入这件事最好定个规范。我们团队的做法是:所有原理图文件在提交到版本管理之前,必须先在AD或Orcad里做一次“Export for PADS”的预处理,把该删的图形删掉,该改的位号改掉,该统一的网络标号统一掉。预处理后的文件单独放在一个文件夹里,命名规则是“项目名_PADS_日期”。
这样做的目的是让导入PADS Logic这件事变得标准化,不管谁来做,流程都一样,结果都可预期。新同事入职时,直接照着规范操作就行,不用从头摸索。
5.4 从PADS Logic反向导出到AD或Orcad的注意事项
有时候需要反向操作,把PADS Logic的原理图导回AD或Orcad。这个方向比正向导入更难,因为PADS Logic的导出功能比较弱。我的经验是:PADS Logic可以导出.dsn格式,但导出的文件在Orcad里打开后,元件符号往往会变形。解决办法是在Orcad里重新建库,把PADS Logic导出的元件符号作为参考,手动重画一遍。
如果只是想把原理图给别人看,不要求可编辑,那可以导出PDF。PADS Logic支持直接打印成PDF,在打印设置里选“Microsoft Print to PDF”就行。导出PDF时注意把“Print Colors”设成黑白,不然彩色打印出来看不清。
6. 常见问题快查手册
最后整理一份快查手册,把前面提到的问题和解决办法浓缩成表格,方便你遇到问题时快速定位。
| 问题现象 | 可能原因 | 快速解决办法 |
|---|---|---|
| 导入后元件全变矩形框 | 源文件用了Alternate视图 | 在源工具里删除Alternate视图 |
| 网络标号全部丢失 | 导出时未勾选Net Labels | 重新导出,勾选Export Net Labels |
| 引脚编号错位 | 未勾选Preserve Pin Numbers | 导入向导里勾选该选项 |
| 导网表报Missing Footprint | 元件未指定PCB封装 | 在元件属性里指定PCB Decal |
| DRC报Duplicate Net Name | 全局标号变局部标号 | 用Net Alias重新定义 |
| PCB导入网表报版本不匹配 | 网表格式与PCB版本不符 | 导出时选匹配的Netlist Format |
| 中文路径导致导入失败 | PADS不支持中文路径 | 改用纯英文路径 |
| ECO同步后布局丢失 | 位号或网络名变更 | 改用Compare/ECO手动确认 |
这份手册里的每一条都是实际项目中验证过的,你可以直接对照使用。当然,具体情况可能更复杂,但排查思路是一样的:先定位问题类型,再找对应的解决办法,最后验证修复效果。
原理图设计这活儿,工具只是手段,真正重要的是对电路逻辑的理解和对设计流程的把控。文件导入导出这些操作,看起来是杂活,但做得好能省下大量时间,让你把精力放在真正重要的设计工作上。我在实际项目中最大的体会是:与其花时间修复导入后的错误,不如花时间在导入前把源文件整理干净。前者是救火,后者是防火,哪个更划算,你心里应该有数。