1. 从AD19到AD20:一次让老用户既兴奋又纠结的版本跨越
如果你跟我一样,是从Protel 99SE那个年代一路用过来的PCB设计老兵,那你一定经历过Altium Designer每一次大版本更新时那种复杂的心情。AD19的功能其实已经相当完整了,高速布线、刚柔结合板、多板设计这些高级特性都做得有模有样,很多人刚把AD19的快捷键和操作习惯养熟,AD20就带着一堆新东西砸过来了。我身边不少同行的第一反应都是:“AD19我还没用明白呢,AD20又来了,到底值不值得升?”
这个问题其实没有标准答案,因为它取决于你日常做的板子类型、团队协作方式,以及你对新工作流的接受程度。但有一点是确定的:AD20不是一次小修小补的版本迭代,它在底层数据模型和交互逻辑上做了几处相当有分量的改动,尤其是那个被官方称为“统一设计模型”的东西,直接改变了我们操作原理图和PCB的方式。这篇文章我就结合自己从AD19迁移到AD20的实际过程,把新功能里真正影响日常工作的部分拆开来讲清楚,顺便聊聊哪些功能是“用了就回不去”的,哪些是“看起来很美但实际用不上”的。
先给不太熟悉背景的朋友补一句:Altium Designer是电子设计自动化领域里用得最广的PCB设计工具之一,从原理图绘制、元器件库管理、PCB布局布线到生产文件输出,整条链路都能在一个软件里完成。AD19是2018年底发布的版本,AD20则是2019年底到2020年初逐步推开的版本。两个版本之间隔了大约一年,但功能差异比往年同间隔的版本要大得多。下面我按实际使用频率从高到低,把AD20的核心变化一个一个说透。
2. 统一设计模型:AD20最根本的那次底层重构
2.1 为什么AD19里改个参数要来回切换界面
在AD19以及更早的版本里,原理图编辑器和PCB编辑器本质上是两套相对独立的环境。你在原理图里双击一个电阻,弹出来的是原理图符号的属性对话框;你想改它的PCB封装或者更新它的参数,很多时候得切到PCB界面去操作,或者通过“Update PCB Document”来同步。这种割裂感在简单项目里不明显,但一旦板子上有几百个器件、需要频繁调整参数的时候,来回切换和同步就成了效率杀手。
更麻烦的是,AD19里原理图符号和PCB封装之间的关联是通过库来维系的,如果你改了库里的某个封装,已经放到原理图上的器件不会自动感知,必须手动更新或者重新放置。这个机制在团队协作里特别容易出问题——A同事改了库,B同事不知道,结果两个人画出来的板子封装不一致,到了制板阶段才发现,返工成本极高。
2.2 统一设计模型到底统一了什么
AD20引入的“统一设计模型”(Unified Design Model)就是冲着这个痛点来的。它的核心思路是:原理图符号、PCB封装、仿真模型、信号完整性模型、3D模型这些原本分散在不同地方的数据,现在全部挂载在同一个元器件对象上。你在任何一个界面修改这个元器件的某个属性,其他界面会实时同步,不需要手动更新。
我举个实际例子你就明白了。以前我在AD19里给一个STM32F103C8T6改引脚映射,得先在原理图库里改符号,再在PCB库里改封装,然后回到原理图里更新器件,最后同步到PCB。整个过程快的话也要五六分钟,慢的话十几分钟,还容易漏步骤。到了AD20,我直接在原理图里双击这个器件,属性面板里就能看到它的符号、封装、3D模型、仿真模型全部列在一起,改哪个都行,改完立刻生效。这个体验上的提升,用过的人才知道有多爽。
2.3 对元器件库管理方式的连带影响
统一设计模型带来的另一个变化是库的管理逻辑。AD19时代我们习惯把原理图库和PCB库分开维护,两个库文件通过器件名称来对应。AD20虽然还兼容这种老方式,但它更推荐的做法是使用“元器件库”的概念,一个器件条目下同时包含符号和封装。这意味着你在建库的时候就要把器件的完整信息一次性定义好,而不是像以前那样先画符号再画封装最后手动关联。
这个变化对个人开发者来说可能只是习惯问题,但对团队来说影响很大。我们团队在迁移到AD20之后,专门花了两周时间把常用库重新整理了一遍,把符号和封装按统一模型的方式重新组织。前期投入确实不小,但后面画新板子的时候,器件放置、参数修改、BOM导出这些环节的效率提升非常明显。尤其是BOM导出,以前经常出现封装字段缺失或者型号对不上的情况,现在因为数据源统一了,导出来的BOM准确率高了很多。
注意:如果你手上有大量AD19时代的老库,迁移到AD20时不要直接覆盖,建议先备份再逐步转换。老库里的器件如果符号和封装关联不完整,在统一模型下可能会出现属性丢失的情况。
3. 原理图与PCB交互方式的改变:从“同步”到“实时”
3.1 AD19的同步机制为什么让人又爱又恨
AD19里原理图和PCB之间的同步是通过“工程变更订单”(ECO)来完成的。你在原理图里改了什么,得手动执行“Update PCB Document”,软件会生成一个变更列表,你确认之后才会应用到PCB上。这个机制的好处是有明确的确认步骤,不容易误操作;坏处是频繁修改的时候特别繁琐,改一个器件的参数就要走一遍同步流程,一天下来光点鼠标就点得手酸。
而且AD19的同步是单向的,原理图改动能同步到PCB,但PCB上的改动(比如你在PCB里调整了某个器件的位置或者换了封装)不会自动反映到原理图里。这就导致两边容易不一致,时间长了谁也说不清哪个是最新的。
3.2 AD20的实时交互到底怎么运作
AD20把同步机制改成了实时交互。你在原理图里选中一个器件,PCB界面会立刻高亮对应的器件;反过来在PCB里选中一个网络,原理图里对应的连线也会高亮。这个功能在AD19里其实也有,叫“Cross Select Mode”,但AD20把它做得更彻底了——不仅选中状态同步,器件的属性修改、网络标签的变更、甚至器件的增删,都可以做到近乎实时地双向同步。
我实际用下来的感受是,这个改变在调试阶段特别有用。比如我在PCB里发现某个电源网络的走线有问题,想确认原理图里这个网络连接了哪些器件,以前得切到原理图里手动搜索网络标签,现在直接在PCB里点一下这个网络,原理图那边就自动定位过去了。反过来也一样,在原理图里改一个电阻的阻值,PCB里对应的器件属性立刻更新,不需要再走ECO流程。
3.3 实时交互带来的新注意事项
不过实时交互也不是没有代价的。最大的问题是误操作的风险增加了——以前有ECO确认步骤挡着,改错了还能取消;现在实时同步,手一抖改错了参数,PCB那边立刻就变了,如果没注意到,可能到出Gerber的时候才发现问题。
我的应对方法是养成两个习惯:第一,重大修改之前先手动保存一个版本,AD20的版本控制功能比AD19好用,可以快速回滚;第二,对于批量修改操作,尽量在PCB界面用“Find Similar Objects”来做,而不是在原理图里一个个改,这样修改范围更可控。另外团队协作的时候,实时同步意味着别人对你的原理图做的修改会立刻反映到你的PCB上,如果两个人同时操作同一个工程,冲突的概率比AD19高不少。我们的做法是尽量划分清楚谁负责原理图谁负责PCB,避免同时编辑。
4. 布线体验的升级:差分对、等长和高速规则的细化
4.1 差分对布线在AD20里的操作变化
差分对布线是高速PCB设计里绕不开的话题,AD19已经支持差分对,但操作起来步骤比较多:先要在原理图或PCB里定义差分对,然后设置差分对规则,最后用差分对布线工具来走线。AD20把这个流程简化了不少,现在你可以在原理图里直接给两个网络添加差分对标识,PCB那边会自动识别并生成对应的差分对规则。
更实用的是AD20的差分对布线工具增加了“实时阻抗显示”。你在走差分对的时候,软件会根据你设置的叠层和线宽间距,实时算出当前走线的差分阻抗,并显示在状态栏里。这个功能在AD19里是没有的,以前要算阻抗得用外部工具或者手动查表,现在边走线边看阻抗,调整线宽间距的时候心里有数多了。
我拿一块四层板做过对比测试,同样的DDR4差分对,AD19里走完一组需要反复调整线宽和间距来匹配阻抗,AD20里因为实时显示阻抗,基本上一次就能走到位,返工次数少了很多。当然前提是你的叠层设置要准确,如果叠层参数填错了,实时阻抗显示也是错的。
4.2 等长布线的精度和效率提升
等长布线是另一个AD20有明显改进的地方。AD19的等长布线工具已经能用,但调整蛇形线的时候精度控制比较粗糙,经常需要手动微调。AD20的等长布线增加了“动态等长调谐”功能,你在走蛇形线的时候,软件会实时显示当前长度与目标长度的差值,并且可以设置容差范围,超出范围会变色提示。
这个功能在走DDR或者PCIe这类对时序要求严格的接口时特别有用。我以前在AD19里走DDR4的地址线,等长调整基本靠目测和反复测量,一组线走下来要花大半天。AD20里因为实时显示长度差,走线的时候就能控制好,效率至少提升了一倍。而且AD20的蛇形线拐角处理得更平滑,对信号完整性的影响比AD19小一些。
4.3 高速规则体系的细化程度
AD20在设计规则方面也做了不少细化。AD19的规则体系已经很强大了,但有些高速设计的特殊需求还是得靠自定义规则或者脚本来实现。AD20新增了几类针对高速设计的规则,比如“返回路径过孔”规则,可以自动检查信号过孔附近是否有足够的地过孔提供返回路径。这个在AD19里得手动检查,很容易漏。
还有“差分对相位匹配”规则,可以检查差分对内部两条线的长度差是否在允许范围内。AD19里这个检查得靠等长布线工具来间接实现,AD20把它做成了独立的规则检查项,DRC的时候会自动报出来。我实测下来,这些新增的规则检查确实能抓到一些以前容易忽略的问题,尤其是板子密度高、过孔多的时候。
| 功能项 | AD19表现 | AD20改进 |
|---|---|---|
| 差分对阻抗显示 | 需外部工具计算 | 布线时实时显示 |
| 等长调谐 | 手动测量调整 | 动态显示长度差 |
| 返回路径检查 | 手动或脚本 | 内置规则自动检查 |
| 差分对相位匹配 | 间接检查 | 独立规则项 |
| 蛇形线拐角 | 较生硬 | 平滑处理 |
5. 层叠管理与3D视图的实用化改进
5.1 层叠管理器在AD20里的操作逻辑
层叠管理是PCB设计里最基础也最容易出错的部分。AD19的层叠管理器功能已经比较完整,但界面组织上有点乱,设置叠层、修改材料、调整厚度这些操作分散在不同的标签页里。AD20重新组织了层叠管理器的界面,把叠层结构、材料参数、阻抗计算、过孔类型这些信息整合到了一个视图里。
我比较喜欢的一个改进是AD20的层叠管理器支持“叠层模板”。你可以把常用的叠层结构(比如四层板、六层板、八层板)保存成模板,新工程直接套用,不需要每次从头设置。这个功能在AD19里没有,以前每开一个新工程都要重新填一遍叠层参数,烦得很。现在建好一套常用模板,新项目直接调用,省了不少时间。
5.2 3D视图在装配检查中的实际价值
AD20的3D视图比AD19流畅了不少,尤其是大板子的渲染速度提升明显。AD19打开一个几百个器件的板子3D视图,转起来会卡顿,AD20里基本能流畅旋转和缩放。这个改进看起来只是性能优化,但实际用起来差别很大——以前因为卡顿,我不太愿意用3D视图做装配检查,现在流畅了,养成了在出板前用3D视图过一遍的习惯。
3D视图最大的价值是检查器件干涉。尤其是板子上有连接器、电解电容、散热器这些高度比较高的器件时,2D视图里看不出它们会不会打架,3D视图里一目了然。AD20还增加了“碰撞检测”功能,可以自动检查器件之间是否有物理干涉,这个在AD19里得手动看。我最近做的一块板子上有个USB连接器和几个电解电容靠得很近,2D视图里看着没问题,3D碰撞检测报出来说电容顶部和连接器外壳有干涉,调整之后才避免了一次装配事故。
5.3 3D模型导入和导出的兼容性
AD20在3D模型的支持上也比AD19好。AD19支持STEP格式的3D模型导入,但有时候会遇到模型比例不对或者坐标系偏移的问题。AD20改进了模型导入的解析算法,我试过导入几个从不同渠道下载的STEP模型,AD20的识别成功率明显比AD19高。导出方面,AD20支持把整个PCB连同器件模型一起导出成STEP文件,方便在机械设计软件里做整机装配检查。AD19虽然也能导出,但经常丢模型或者坐标系错位,AD20里这个问题基本没有了。
6. 从AD19迁移到AD20的实操建议与踩坑记录
6.1 迁移前必须做的三件准备工作
如果你决定从AD19升级到AD20,不要直接打开老工程就开始干活。我踩过的坑告诉我,迁移前有三件事必须做。
第一,备份所有工程和库文件。AD20打开AD19工程时会自动升级文件格式,升级之后AD19就打不开了。虽然AD20提供了“另存为AD19格式”的选项,但有些新功能的数据会丢失。所以原始文件一定要备份,万一升级后发现问题还能退回去。
第二,检查库文件的完整性。前面说过,AD20的统一设计模型对库的完整性要求更高。迁移之前先把常用库过一遍,确保每个器件的符号和封装关联正确,没有缺失字段。我们团队迁移的时候发现有几个老库里的器件封装字段是空的,AD19里不影响使用,AD20里就会报错。
第三,确认工程里的设计规则是否兼容。AD20新增了一些规则类型,同时也调整了部分老规则的参数范围。迁移之后建议把DRC完整跑一遍,看看有没有因为规则变化导致的误报。
6.2 迁移过程中最容易卡住的几个环节
实际迁移的时候,我遇到的最大问题是老工程里的“基于文件的库”和“基于数据库的库”在AD20里的行为差异。AD19时代很多人用的是基于文件的库(.SchLib和.PcbLib),AD20虽然还支持,但推荐用集成库或者数据库库。如果你继续用文件库,统一设计模型的很多优势就享受不到。
另一个卡住的环节是“工程变体”的处理。AD19的工程变体功能在AD20里做了调整,变体中的器件参数覆盖逻辑有变化。我们有个工程用了变体来管理不同配置的板子,迁移到AD20之后发现变体里的参数没有正确应用,排查了半天才找到原因——AD20里变体的参数覆盖需要在统一模型的框架下重新设置。
6.3 迁移后需要重新适应的操作习惯
从AD19到AD20,有几个操作习惯需要重新适应。最明显的是属性面板的位置和布局变了,AD19里属性面板通常在左侧或者底部,AD20改到了右侧,而且面板里的字段组织方式也不一样。刚开始用的时候经常找不到想改的参数在哪里,用了一两周才适应。
还有就是快捷键的变化。AD20保留大部分AD19的快捷键,但新增功能的快捷键需要重新记。比如统一设计模型的属性编辑快捷键、实时交互的切换快捷键,这些在AD19里没有对应操作,得从头学。我的建议是迁移后的第一周不要追求效率,先把新功能的操作路径摸熟,后面自然就快了。
提示:AD20支持导入AD19的界面配置和快捷键设置,在“Preferences”里的“Customization”页面可以导入老版本的配置文件。这样至少常用的快捷键不用重新设置。
7. 哪些新功能值得用,哪些可以暂时放一放
7.1 高频使用的功能优先级排序
用了AD20大半年之后,我总结了一份功能使用频率的排序。排在最前面的是统一设计模型和实时交互,这两个功能几乎每天都会用到,对效率的提升也最明显。其次是差分对布线的实时阻抗显示和等长布线的动态调谐,做高速板子的时候离不开。再往后是层叠模板和3D碰撞检测,属于“用了更好,不用也能凑合”的级别。
排在最后面的是那些看起来炫酷但实际工作中很少用到的功能,比如某些高级仿真集成、多板设计的一些新特性。这些功能在特定场景下有价值,但对大多数做常规板子的开发者来说,AD19的功能已经够用了。
7.2 小团队和个人开发者的升级决策参考
如果你是一个人做板子,或者团队规模很小,升级到AD20的决策可以这样考虑:如果你做的板子主要是简单的双层板或者四层板,器件数量不多,AD19完全够用,升级的紧迫性不高。但如果你经常做高速板、密度高的板子,或者需要和机械工程师协作做3D装配检查,AD20的新功能能省不少事。
我们团队是三个人,主要做工业控制类的板子,四层和六层居多,偶尔有八层的高速板。升级到AD20之后,整体设计周期大概缩短了15%到20%,主要省在原理图和PCB的同步、差分对布线、以及3D检查这几个环节。前期迁移花了两周左右,算下来大概两三个月就回本了。
7.3 关于版本选择的一个务实建议
最后说一个比较务实的观点:不要为了升级而升级。AD20的新功能确实好,但如果你当前的项目进度很紧,或者团队里有人对AD19非常熟练而对新工具接受度不高,强行升级可能会适得其反。我的建议是先用AD20做一个新项目,不要拿正在进行的项目做试验。新项目里把AD20的核心功能用一遍,感受一下工作流的差异,再决定要不要全面迁移。
另外,AD20的后续小版本更新也比较频繁,建议保持在一个相对稳定的版本上,不要每次出补丁就升。我们团队目前固定在AD20的某个稳定版本上,用了半年多没出过大问题。等AD21或者更新的版本出来之后,再看有没有值得升级的新特性。
我在实际使用中体会最深的一点是,工具版本的变化永远只是手段,最终还是要服务于设计质量和效率。AD20的统一设计模型和实时交互确实改变了我的工作方式,但核心的设计思路、布局布线的经验、对信号完整性的理解,这些是不会因为版本变化而改变的。把新工具用熟,把老经验用好,两者结合才是正道。