简介:面向电子硬件工程师与PCB设计初学者的EDA工具互转实操文档,聚焦PADS、Altium Designer与Cadence三大平台之间设计文件的跨工具迁移难题。内容覆盖PADS转AD、AD转Cadence、AD转PADS、Cadence转PADS四大方向,并细分原理图与PCB两条路径,如PADS logic导出TXT、layout导出asc、AD另存DSN、PADS Layout Translator转换、Allegro借助skill脚本导入等,同时提示泪滴选项、版本降级、环境变量配置等易错细节。资源包共1个docx文件,约1.11MB,以图文步骤形式组织,便于按转换方向快速检索对照。已有4871人学习下载,适合需要接手异构设计文件、做项目迁移或跨团队协作的读者参考,可帮助减少格式不兼容导致的返工,快速打通不同EDA平台间的数据流转。
1. 三套 EDA 工具互转,卡住人的往往不是转换本身
上周帮一个做硬件的朋友收拾一台工作站,他要把一份 PADS 的 PCB 交给合作方,对方只用 AD,结果导出的 asc 文件在 AD6.9 里导入到一半就卡死,进度条挂了四十分钟没动。这种场景在硬件圈太常见了:原理图在 PADS Logic 里画完,PCB 在 Allegro 里布线,最后交付方要的是 Altium 工程,三套 EDA 工具之间的格式互转就成了绕不过去的一道坎。PADS、AD、Cadence 之间的相互转换,说难不难,说简单也处处是坑——版本选错、导出选项勾错、环境变量少配一个,轻则转换后网络标号全丢,重则软件直接无响应。这篇笔记按我实际装过、配过、翻过车的顺序,把 PADS 转 AD、AD 转 Cadence、AD 转 PADS、Cadence 转 PADS 四条链路的环境准备、操作步骤和排错方法一次讲清,适合正在做跨工具交付的硬件工程师和刚接手别人工程的开发者照着走。
2. 转换前的环境准备:版本、路径与工具链对齐
2.1 三套软件装什么版本,为什么这么选
这套转换链路对版本相当敏感,不是随便装个最新版就能通。PADS 这边,我一般用 9.5 版本,因为它的translators目录里自带 Allegro 转换用的 skill 脚本,路径固定在C:\MentorGraphics\9.5PADS\SDD_HOME\translators下,后面 Cadence 转 PADS 那一步全靠它。AD 这边,原文明确用的是 AD6.9,这个版本虽然老,但它的导入向导对 PADS ASCII 格式的兼容性反而比新版本稳,新版本 AD 在导入 PADS 的 asc 文件时偶尔会丢层信息。Cadence 这边,OrCAD 和 Allegro 建议装 16.2 及以上,因为 OrCAD 转 PADS Logic 时需要把 dsn 降级到 16.2 格式,版本太低反而没有这个另存选项。
装的时候有个顺序讲究:先装 PADS,再装 Cadence,最后装 AD。原因是 PADS 的 translators 目录路径会被后面 Cadence 转 PADS 的环境变量引用,先装 PADS 能保证这个路径存在;而 AD 放最后装,是为了避免它的文件关联把 PADS 的 asc 和 Cadence 的 dsn 抢过去,导致双击文件打开错软件。这个顺序不是官方要求,是我踩过一次文件关联混乱之后固定下来的习惯。
2.2 目录规划与环境变量预埋
在正式转换之前,先把几个关键目录理清楚,后面每一步都要用到。我习惯在工作盘建一个转换专用目录,把中间文件全部收进去,避免和原始工程混在一起:
# 转换工作目录结构(Windows 下用资源管理器建即可,这里用命令示意) D:\EDA_Convert\ ├── 01_PADS_to_AD\ # PADS 导出的 txt / asc 放这里 ├── 02_AD_to_Cadence\ # AD 另存的 dsn 放这里 ├── 03_AD_to_PADS\ # PADS Layout Translator 的输出放这里 └── 04_Cadence_to_PADS\ # Allegro 转换的中间文件放这里这样分目录的好处是,转换失败时能快速定位是哪一段链路出的问题,不用在一堆同名文件里翻。中间文件命名也建议带上源工具和日期,比如mainboard_pads_2005.asc,后面排查时一眼能看出这个文件是从哪导出的、用的哪个版本。
环境变量这一步,只有 Cadence 转 PADS 的 Allegro 链路需要,但建议在装完软件后就提前配好,省得转换到一半再回来补。需要配三个用户变量,具体值按自己机器的实际安装路径改:
| 变量名 | 作用 | 示例值 |
|---|---|---|
| AEX_BIN_ROOT | 指向 PADS translators 的 bin 目录 | C:\MentorGraphics\9.5PADS\SDD_HOME\translators\win32\bin |
| AEX_ENABLE_JOBPREFS_LAYER_FIX | 开启层映射修复,值固定为 1 | 1 |
| Home | 指向 Cadence 的 pcbenv 所在目录 | C:\Cadence |
配完记得重启一次 Allegro,环境变量才会被读进去。这一步漏配的典型表现是后面在 Allegro 命令行里敲skill load "dfl_main.il"返回 nil 而不是 T,很多人以为是脚本文件坏了,其实是 AEX_BIN_ROOT 没指对。
2.3 转换链路总览:四条路径怎么走
在动手之前,先把四条链路的走向理清楚,避免走到一半发现方向错了。PADS 转 AD 是双向里最顺的,原理图走 txt、PCB 走 asc,AD 的导入向导直接认。AD 转 Cadence 分两半:原理图可以直接另存为 dsn,PCB 没有直通路径,常用做法是 AD→PADS→Allegro 绕一圈。AD 转 PADS 同理,原理图走 AD→OrCAD→PADS Logic,PCB 用 PADS 自带的 Layout Translator 直接转。Cadence 转 PADS 是反向里最麻烦的,OrCAD 转 PADS Logic 靠降级 dsn,Allegro 转 PADS Layout 则要配环境变量、拷 skill 脚本、在命令行里跑转换命令。
这四条链路里,只有 PADS 转 AD 和 AD 转 PADS 的 PCB 部分有官方直通工具,其余都要借道中间格式。理解这一点很关键:转换不是无损的,每绕一道就多一次信息丢失的风险,所以能直通就别绕路,必须绕的时候把中间文件留好,出问题可以回退到上一步重来。
3. PADS 转 AD:原理图走 txt,PCB 走 asc
3.1 PADS Logic 转 AD 原理图:导出 txt 的版本选择
PADS Logic 转 AD 原理图,核心是把 PADS 的原理图导出成 ASCII 格式的 txt 文档,再让 AD 的导入向导去读。第一步在 PADS Logic 里打开要转换的原理图,选择文件导出,格式选 ASCII,版本这里必须选 2005.2,不能选更高的。选高了 AD6.9 的导入向导认不出来,会提示格式不支持;选低了又可能丢引脚定义。2005.2 是 AD6.9 导入向导明确支持的版本,这个数字记牢。
导出时还有几个选项要注意:勾选包含库信息,否则转换后 AD 里元件的封装可能对不上;网络标号那一项保持默认全选,不要为了减小文件体积去裁剪。导出完成后得到一个 txt 文件,大小通常在几百 KB 到几 MB 之间,如果只有几 KB,多半是导出时没选全内容,回去重新导一次。
3.2 AD6.9 导入向导:PADS ASCII 的正确入口
打开 AD6.9,走文件菜单里的导入向导,在文件类型列表里找到PADS ASCII Design And Library Files这一项,选中刚才导出的 txt。接下来的向导页面一路点下一步就行,中间会问要不要导入库文件,建议选是,这样元件封装能一起带过来。转换完成后 AD 会自动打开转换后的工程,这时候先别急着保存,花两分钟检查三件事:元件数量对不对、网络标号有没有丢、电源和地网络是否连上。
AD6.9 导入向导关键选项: - 文件类型:PADS ASCII Design And Library Files - 源文件:01_PADS_to_AD\xxx_2005.txt - 导入库:是 - 其余页面:默认,一路下一步如果转换后发现元件全挤在一起,那是 PADS 和 AD 的坐标原点定义不同导致的,不是转换失败,在 AD 里全选后重新布局即可。如果发现网络标号大面积丢失,回去检查导出时是不是漏勾了网络信息,这是最常见的翻车点。
3.3 PADS Layout 转 AD PCB:asc 导出与泪滴选项的取舍
PCB 转换比原理图多一个关键决策:导出 asc 时的选项勾选。在 PADS Layout 里打开检查无误的 PCB,先铺铜,然后导出 asc 格式,版本同样选 2005。选项面板里有一项 Teardrops(泪滴),原文特别提醒最好不要勾。原因很实在:勾了泪滴之后,asc 文件里会多出大量泪滴的几何描述,AD 导入时解析这些描述非常慢,我遇到过一份六层板勾了泪滴,导入进度条走了快一个小时还没完,取消勾选后同样的板子三分钟就导完了。
导出完成后,在 AD6.9 里同样走导入向导,这次文件类型选 PADS 的 PCB 格式,选中 asc 文件,一路下一步。转换完成后重点检查层叠结构、过孔数量和铜皮是否完整。层叠如果对不上,在 AD 的层叠管理器里手动补一下,这个转换工具没法百分百还原 PADS 的层定义。
提示:asc 导出前务必确认 PCB 已经通过 DRC 检查,带错误的板子转换后错误会被放大,排查起来更费劲。
4. AD 与 Cadence 互转:dsn 另存与绕道路径
4.1 AD 原理图转 OrCAD:另存为 dsn 的处理所有组件选项
AD 原理图转 Cadence 的 OrCAD,是四条链路里最省事的一段,因为 AD 原生支持另存为 dsn 格式。打开要转换的 AD 工程,走文件菜单的 Save Project As,在保存类型里选 DSN,弹出的对话框里有一个「处理所有组件」的选项,这个必须勾上。不勾的话,AD 只会转换当前打开的那一页原理图,多页工程会丢页,这个坑我替朋友排查过一次,他转完发现只剩第一页,还以为是 Cadence 的问题,其实是这个勾没打。
另存完成后,打开 Cadence 的 OrCAD Capture,直接打开这个 dsn 文件,转换就完成了。打开后检查一下层次化设计的页间连接符,AD 和 OrCAD 对层次端口的命名规则略有差异,偶尔会出现端口名对不上的情况,手动改一下即可。
4.2 AD PCB 转 Allegro:为什么常用 AD→PADS→Allegro
AD 的 PCB 没有直接转 Allegro 的官方通道,网上流传的各种插件稳定性参差不齐。这个场景下合格运维最可能用的做法是绕道:先把 AD 的 PCB 转成 PADS 格式,再从 PADS 转 Allegro。虽然多一步,但每一步都有成熟工具兜底,比赌一个来路不明的插件靠谱。
具体走法是:AD 的 PCB 先用 PADS Layout Translator 转成 PADS 格式(下一章会详细讲这个工具),然后在 PADS 里打开确认无误,再用 PADS 自带的 Allegro 转换功能导出。绕路带来的信息损失主要在铜皮和规则约束上,转换后要在 Allegro 里重新检查一遍约束管理器里的规则,别直接拿去布线。
4.3 AD 转 PADS 原理图:AD→OrCAD→PADS Logic 的降级思路
AD 原理图转 PADS Logic 同样没有直通路径,常用做法是先转 OrCAD 再转 PADS。第一步按 4.1 的方法把 AD 原理图另存为 dsn,第二步在 OrCAD 里打开确认无误,然后另存时把版本降级到 16.2,第三步在 PADS Logic 里用文件导入功能读这个降级后的 dsn。降级这一步不能省,PADS Logic 的导入器只认 16.2 及以下的 dsn 格式,高版本直接导入会报格式错误。
这条链路走下来,元件符号的引脚编号偶尔会错位,尤其是多单元器件。转换完成后建议对照原 AD 原理图抽查几个关键器件,确认引脚对应关系没乱。
5. AD 与 Cadence 转 PADS:Translator 与 skill 脚本实战
5.1 AD PCB 转 PADS Layout:Layout Translator 三步操作
AD 的 PCB 转 PADS 是四条链路里工具化程度最高的一段,PADS 自带的 Layout Translator 就是干这个的。打开这个工具,操作分三步:第一步添加文件,选中 AD 的 PCB 文件;第二步选择保存位置,指到前面建的03_AD_to_PADS目录;第三步在转换选项里把源格式选成 Protel/Altium,然后点转换。
PADS Layout Translator 操作顺序: 1. Add File -> 选择 AD 的 .PcbDoc 文件 2. Output Path -> D:\EDA_Convert\03_AD_to_PADS 3. Format -> Protel/Altium 4. Translate -> 等待完成转换完成后得到一个 PADS 格式的 PCB 文件,在 PADS Layout 里用文件导入打开。如果打开后看不到任何内容,别慌,按 Ctrl+B 刷新视图,这是 PADS 视图没自动缩放到对象范围导致的,不是转换失败。导入后执行一次「修复所有」,把转换过程中产生的悬空网络和重复过孔清理掉。
5.2 OrCAD 转 PADS Logic:dsn 降级到 16.2 再导入
OrCAD 的原理图转 PADS Logic,关键动作是降级。在 OrCAD Capture 里打开 dsn,走文件另存为,版本选 16.2,保存出一个降级副本。然后打开 PADS Logic,用文件导入功能选中这个降级后的 dsn,导入完成后检查网络连接和元件属性。这一步的坑在于,如果原 dsn 里用了高版本才有的器件属性,降级时这些属性会被截断,导入 PADS 后表现为元件参数缺失,需要手动补。
5.3 Allegro 转 PADS Layout:环境变量、skill 脚本与命令行转换
这是整篇笔记里最复杂的一段,也是最多人卡住的地方。Allegro 转 PADS Layout 依赖 PADS 自带的 skill 脚本,而脚本要跑起来,前提是 2.2 节那三个环境变量配对了。环境变量配好后,把 PADS 的 skill 脚本目录下的所有文件复制到 Allegro 的 pcbenv 目录下。原文给的路径是C:\MentorGraphics\9.5PADS\SDD_HOME\translators\skill_scripts,目标目录是 Allegro 的pcbenv\pcbenv,注意是最后一个 pcbenv 子目录,别拷到外层去了。
源目录:C:\MentorGraphics\9.5PADS\SDD_HOME\translators\skill_scripts 目标目录:D:\Cadence\SPB_Data\pcbenv\pcbenv 操作:源目录下所有文件全选复制到目标目录拷完脚本,用 Allegro 打开要转换的 PCB 文件,在 Command 命令行里输入加载命令:
skill load "dfl_main.il"回车后如果返回 T,说明脚本加载成功,可以继续;如果返回 nil,回去检查 AEX_BIN_ROOT 是否指对了 bin 目录、脚本文件是否拷全了。加载成功后继续在命令行输入:
main out回车后会弹出一个对话框,点「StarOneWay Translation」,等待运行结束。运行过程中命令行不能有报错,有报错就说明某一步没配好,常见的是层映射失败,这时候检查 AEX_ENABLE_JOBPREFS_LAYER_FIX 是不是设成了 1。运行成功后命令行提示 DONE,然后打开 PADS Layout,用文件导入读转换出来的文件,等待转换结束即可。
注意:这套环境变量和脚本拷贝只需要配一次,之后再做 Allegro 转 PADS 就不用重复设置了,直接跑命令行那两步就行。
6. 转换避坑与验证:装完怎么确认真的跑通了
6.1 五条血泪踩坑记录
现象一:AD 导入 PADS 的 asc 文件进度条卡死。原因基本是导出 asc 时勾了 Teardrops,泪滴几何数据让 AD 解析器过载。解决办法是回 PADS 重新导出,取消泪滴选项,版本仍选 2005。
现象二:Allegro 命令行敲skill load "dfl_main.il"返回 nil。原因通常是 AEX_BIN_ROOT 环境变量没配或路径指错,也可能是 skill 脚本没拷到正确的 pcbenv 子目录。解决办法是逐项核对三个环境变量,确认脚本文件在pcbenv\pcbenv下,改完重启 Allegro。
现象三:AD 原理图另存 dsn 后只剩一页。原因是 Save Project As 时没勾「处理所有组件」。解决办法是重新另存,勾上该选项,多页工程必须勾。
现象四:PADS Layout 导入 AD 转来的 PCB 后一片空白。不是转换失败,是视图没刷新。按 Ctrl+B 让 PADS 缩放到对象范围即可,然后执行修复所有清理悬空元素。
现象五:OrCAD 转 PADS Logic 后元件参数缺失。原因是 dsn 降级到 16.2 时高版本属性被截断。解决办法是转换后在 PADS Logic 里对照原图手动补关键参数,或者转换前先在 OrCAD 里把自定义属性精简掉。
6.2 转换后的验证清单
每完成一条链路,别急着把文件交出去,按下面这张表逐项过一遍。验证的核心思路是对比源文件和目标文件的元件数、网络数、层数这三个硬指标,任何一个对不上就说明转换有信息丢失,要回退到上一步重来。
| 检查项 | 原理图链路 | PCB 链路 |
|---|---|---|
| 元件数量 | 与源文件一致 | 与源文件一致 |
| 网络标号 | 抽查电源、地、关键信号 | 检查网络连通性 |
| 层叠结构 | 不涉及 | 层数、层名、介质厚度 |
| 铜皮与过孔 | 不涉及 | 铜皮完整、过孔数量对得上 |
| 规则约束 | 不涉及 | 约束管理器里的规则需重建 |
原理图链路重点看元件和网络,PCB 链路重点看层叠和铜皮。规则约束这一项要特别说明:无论哪条链路,转换工具都没法完整迁移设计规则,转换后必须在目标工具里重新建一遍约束,别指望自动带过来。
6.3 我固定会走的一遍验证流程
从那以后我每次做完跨工具转换,都强制走一遍「三数对比 + 一次 DRC」:先数元件、数网络、数层,三个数字和源文件对上,再在目标工具里跑一次 DRC,确认没有新增的短路和悬空网络。这套流程花不了十分钟,但能挡住绝大多数转换引入的隐性错误。转换这件事,工具能帮你搬数据,但搬得对不对,还得自己验。希望帮到你。
本文还有配套的精品资源,点击获取