1. 为什么 Cadence 17.4 值得折腾一遍
搞硬件的朋友大概都有这种体会:画个两层板,用啥工具都行,甚至拿支笔在纸上画完再拍照发给板厂也能凑合。可一旦板子上了四层、六层,信号跑到几百兆甚至上吉赫兹,事情就完全不一样了。这时候你需要的不是“能画线”的软件,而是一整套从原理图到约束管理再到版图实现的完整链路。Cadence 的 SPB 17.4 就是干这个的,它把 OrCAD Capture 和 Allegro PCB Editor 这两把利器绑在一起,前者负责把电路逻辑说清楚,后者负责把物理实现做到位。
我最早接触 Cadence 是在一个六层工控主板的项目上,之前一直用别的工具,切过来那叫一个不适应。但熬过前两周之后,回头再看那些简单的板子,感觉就像从手动挡换到了自动挡——约束驱动布线、实时 DRC、铜皮优先级管理这些东西,一旦用顺手就回不去了。这篇文章就是写给那些准备入坑或者刚装完软件一脸懵的朋友,我会把安装过程中最容易卡住的环节、OrCAD Capture 到 Allegro 的完整数据流、以及几个新手必踩的坑,按我自己的实操顺序捋一遍。
你不需要有 Cadence 的使用经验,但最好对 PCB 设计的基本概念有点了解,比如什么是网络表、什么是封装、什么是设计规则。如果这些词你听着耳熟但说不清楚,也没关系,我会在涉及的地方顺带解释。整篇内容基于 17.4-2019 这个版本,这是目前存量最大、资料最全的一个版本,网上流传的“吴川斌的博客”那套安装方案也是围绕它展开的。17.4 之后的版本在界面和授权机制上有变化,但核心逻辑是通的。
2. 安装前的准备工作与版本选择逻辑
2.1 为什么是 17.4 而不是更新的版本
Cadence 每年都在更新,现在已经有 23.x 甚至 24.x 的版本了。但我依然建议新手从 17.4 入手,原因有三。第一,17.4 的安装包和补丁在各类技术社区里流传最广,遇到问题一搜就能找到答案,而新版本很多报错信息你搜遍全网也找不到第二个人遇到过。第二,17.4 的授权管理机制相对成熟,安装流程已经被无数人验证过,踩坑的概率最低。第三,绝大多数中小企业的实际生产环境还停留在 16.6 和 17.4 这两个版本上,你学会了 17.4,去面试或者接项目都能直接上手。
有人可能会问,那 16.6 呢?16.6 确实更经典,但它的界面太老了,而且对 Windows 10 和 Windows 11 的兼容性不如 17.4。17.4 在保留经典操作逻辑的同时,对高分辨率屏幕和现代操作系统的支持好了很多。所以我的建议很明确:新手直接上 17.4,别在 16.6 上浪费时间。
2.2 安装包获取与文件结构说明
安装包通常是一个几十 GB 的镜像文件或者分卷压缩包,里面包含 Base 安装程序和后续的 Hotfix 补丁。Base 版本装完之后,一定要打上最新的 Hotfix,否则你会遇到一些莫名其妙的崩溃和功能缺失。我见过有人装完 Base 就开始画图,结果铺铜的时候软件直接闪退,查了半天才发现是没打补丁。
安装包解压之后,你会看到类似这样的目录结构:SPB_17.4_Base是主安装程序,Hotfix_SPB17.40.xxx是补丁包,另外还有一个LicenseManager目录用来装授权服务。这三个东西的安装顺序不能乱:先装 License Manager,再装 Base,最后打 Hotfix。顺序错了的话,授权服务可能识别不到主程序,后面激活会非常麻烦。
注意:解压路径和安装路径都不要带中文和空格。我试过把安装包放在“D:\软件\Cadence”下面,结果安装到一半报错说找不到某个文件。后来改成“D:\Cadence”就一路顺畅。这个坑很隐蔽,因为报错信息不会直接告诉你是因为中文路径。
2.3 系统环境与依赖组件检查
Cadence 17.4 对系统有一些硬性要求。操作系统建议用 Windows 10 专业版或者企业版,家庭版也能装但偶尔会有权限问题。内存至少 16GB,如果你要跑仿真或者处理大板子,32GB 会更从容。硬盘空间方面,完整安装下来大概需要 30 到 40GB,记得给 C 盘留够空间,因为部分组件默认会往系统盘里塞。
另外有一个容易被忽略的点:.NET Framework 的版本。Cadence 17.4 依赖 .NET Framework 4.6.2 或更高版本,如果你的系统比较老,可能需要手动装一下。还有一个叫Microsoft Visual C++ Redistributable的东西,安装程序一般会自带,但如果你的系统缺了某些运行库,安装过程中会弹窗报错。最稳妥的做法是提前把常见的运行库合集装一遍,省得中途被打断。
3. 授权服务与主程序的安装实操
3.1 License Manager 的安装与配置
License Manager 是整个 Cadence 体系的门卫,它负责管理你电脑上所有 Cadence 软件的授权。安装过程本身不复杂,一路 Next 就行,但装完之后需要做一些配置。安装完成后,在开始菜单里找到License Server Configuration这个工具,打开它。
这里有一个关键步骤:你需要指定一个 license 文件。这个文件通常是一个.dat或者.lic格式的文本文件,里面包含了授权信息。如果你是从正规渠道获得的授权,直接指向那个文件就行。配置完成之后,服务会自动启动。你可以在 Windows 服务列表里看到Cadence License Manager这个服务,确保它的状态是“正在运行”。
提示:如果服务启动失败,先检查端口是否被占用。Cadence 默认使用 5280 端口,有时候其他软件会占用这个端口。你可以在配置文件里改成别的端口,但改完之后主程序那边也要同步修改,比较麻烦。最简单的办法是找到占用端口的程序,把它关掉或者改端口。
3.2 主程序安装过程中的关键选项
Base 安装程序启动后,会让你选择安装路径和组件。安装路径前面说过了,不要有中文和空格。组件选择这里,默认是全选的,但如果你硬盘空间紧张,可以只勾选OrCAD Capture、Allegro PCB Editor、Padstack Editor和PCB Editor这几个核心组件。不过我的建议是第一次装就全选,因为你不知道后面会用到哪个功能。比如Sigrity系列的工具,平时可能用不上,但哪天你要做电源完整性分析,没有它就得重新装一遍。
安装过程中会有一个步骤让你选择“是否安装为网络版”还是“单机版”。个人学习用的话选单机版就行。还有一个选项是“是否安装 Cadence 的示例库”,这个建议勾上,后面学习的时候可以参考官方示例。
整个安装过程大概需要 20 到 40 分钟,取决于你的硬盘速度。安装完成后不要急着打开软件,先把 Hotfix 打上。Hotfix 的安装更简单,基本上就是一路 Next,它会自动找到你之前装的 Base 路径。打完补丁之后,建议重启一次电脑,让所有环境变量生效。
3.3 安装后的环境验证与常见报错处理
重启之后,打开 OrCAD Capture。如果一切正常,你会看到启动画面然后进入主界面。如果弹窗报错说找不到授权或者授权无效,先别慌,按这个顺序排查:第一,确认 License Manager 服务是否在运行;第二,确认 license 文件路径是否正确;第三,检查系统环境变量里有没有CDS_LIC_FILE这个变量,它的值应该指向你的 license 文件。
还有一个常见的报错是Microsoft.VC80.MFC相关的,提示缺少某个 DLL。这是因为系统缺少 Visual C++ 2005 的运行库。解决办法很简单,去微软官网下载vcredist_x86.exe和vcredist_x64.exe各装一遍。这个问题在 Windows 11 上特别常见,因为系统默认不带这些老版本的运行库。
我自己的经验是,安装过程中遇到报错,先把报错信息完整地复制下来,然后去掉里面的具体路径和用户名,再去搜索。很多时候别人已经遇到过一模一样的问题,答案就在某个技术论坛的角落里。
4. OrCAD Capture 原理图设计入门
4.1 新建工程与原理图页面设置
打开 OrCAD Capture 之后,第一件事是新建一个工程。菜单栏File > New > Project,弹出的对话框里会让你选择工程类型。对于大多数 PCB 设计来说,选Schematic就行。下面有一个Location选项,指定工程保存的路径。这里同样建议路径不要有中文。
工程建好之后,你会看到一个空白的原理图页面。在画图之前,先设置页面尺寸。菜单栏Options > Schematic Page Properties,在Page Size里选择A4或者A3,取决于你的图纸复杂度。我一般用 A3,因为空间大一些,画起来不用频繁翻页。另外在Grid Display里把网格设成 100mil,这是原理图设计的标准网格,所有元件的引脚都对齐在这个网格上,后面连线才不会出现“连上了但实际没连上”的尴尬情况。
4.2 放置元件与库管理
OrCAD Capture 自带了一些库,但说实话,自带的库远远不够用。你需要的电阻、电容、芯片,大部分都要自己建库或者从别的地方导入。菜单栏Place > Part,在弹出的对话框里可以浏览已有的库。如果你要用的元件不在库里,有两个办法:一是自己新建一个库文件,然后手动创建元件符号;二是从其他工程里导出库,再导入到当前工程。
这里有一个新手经常问的问题:orcad capture怎么添加原理图到库。其实反过来更常见——从原理图导出库。如果你打开了一个别人的原理图,想把里面的元件存到自己的库里,可以选中元件,右键Edit Part,然后在打开的符号编辑器里File > Save As,把它存到你的库文件里。这个操作在复用别人的设计时特别有用。
注意:OrCAD Capture 的库文件后缀是
.olb,一个库文件里可以包含多个元件符号。建议按类别建库,比如Resistors.olb、Capacitors.olb、ICs.olb,这样找起来方便。不要把所有元件都塞进一个库文件里,时间长了根本找不到。
4.3 连线、网络标号与电气规则检查
放置好元件之后,用Place > Wire来连线。连线的时候注意,OrCAD Capture 会自动捕捉元件的引脚端点,只要你的网格设置正确,线就会准确地连到引脚上。如果连不上,检查一下网格设置是不是被改过了。
对于复杂的电路,光靠连线是不够的,你需要用网络标号(Net Alias)来给网络命名。比如电源网络可以命名为VCC_3V3,地网络命名为GND。命名之后,同一个网络标号的地方在电气上就是连通的,不需要真的画一根线连过去。这个技巧在画大板子的时候能省很多事。
画完之后,一定要做电气规则检查(ERC)。菜单栏Tools > Design Rules Check,勾选Electrical Rules,然后运行。ERC 会检查出一些常见问题,比如输出引脚直接连到一起、电源引脚没有驱动等等。我遇到过cadence capture原理图上引脚类型是power,报警告的情况,这通常是因为电源引脚被设置成了 Power 类型,但实际电路中它是由别的电源网络驱动的。解决办法是把引脚类型改成 Passive,或者在 ERC 设置里忽略这类警告。
4.4 从原理图生成网表并更新到 PCB
原理图画完、ERC 通过之后,下一步是生成网表。菜单栏Tools > Create Netlist,选择Allegro格式,然后指定输出路径。生成的网表文件后缀是.net,里面包含了所有元件信息和连接关系。
接下来打开 Allegro PCB Editor,新建一个.brd文件,然后File > Import > Logic,选择刚才生成的网表文件。导入成功之后,元件就会出现在 PCB 画布上。这个过程就是orcad capture原理图更新后,如何更新至pcb的标准流程。如果后续原理图有改动,重复这个步骤就行,Allegro 会自动更新元件和网络,已经布好的线不会丢。
提示:导入网表之前,确保你的 PCB 文件里已经指定了封装库的路径。菜单栏
Setup > User Preferences,在Paths > Library里添加你的封装库目录。如果某个元件找不到对应的封装,导入网表时会报错,告诉你哪个元件缺少封装。
5. Allegro PCB Editor 核心操作与布局布线
5.1 画板框与层叠设置
进入 Allegro 之后,第一件事是画板框。在Board Geometry > Outline层上用Add > Line命令画出板子的外形。画的时候注意单位,Allegro 默认单位是 mil,如果你习惯毫米,可以在Setup > Design Parameters里改成 Millimeter。板框画完之后,用Setup > Outlines > Board Outline来确认板框已经正确闭合。
接下来是层叠设置。菜单栏Setup > Cross-section,在这里定义你的板子有几层、每层的厚度和材料。对于四层板,典型的层叠是:Top 信号层、GND 平面、Power 平面、Bottom 信号层。每层的铜厚一般是 1oz(约 35um),介质厚度根据阻抗要求来定。如果你要做阻抗控制,比如 USB 差分线要 90 欧姆,就需要在这里设置好介质厚度和铜厚,然后 Allegro 会自动计算出合适的线宽。
5.2 封装的制作与 Padstack Editor 的使用
封装是 PCB 设计里最基础也最容易出错的一环。Allegro 自带的封装库有限,大部分封装需要你自己做。做封装的核心工具是Padstack Editor,它用来定义焊盘。打开 Padstack Editor,你需要设置焊盘的形状(圆形、方形、椭圆形)、尺寸、以及各层的参数。
以一个 0603 封装的电阻为例。焊盘的尺寸一般是 0.9mm x 0.95mm 左右,具体数值要看元件的规格书。在 Padstack Editor 里,Begin Layer设置成矩形,尺寸填 0.9 x 0.95;Soldermask层比焊盘大 0.1mm 左右,用来开窗;Pastemask层和焊盘一样大,用来做钢网。设置好之后保存为一个.pad文件。
然后在 Allegro 里新建一个封装文件,File > New > Package Symbol。放置焊盘、画丝印、画装配层,最后保存为.dra文件。这里有一个细节:丝印不能压在焊盘上,否则焊接的时候会出问题。Allegro 有 DRC 检查会帮你发现这个问题,但最好在画的时候就注意。
注意:
allegro 16.6 pcb封装制作流程和 17.4 大同小异,但 17.4 的 Padstack Editor 界面有一些变化。如果你看的是 16.6 的教程,操作逻辑可以参考,但具体菜单的位置需要自己找一下。
5.3 布局思路与关键元件摆放
布局是 PCB 设计里最考验经验的部分。我的习惯是先把关键元件摆好,比如主控芯片、电源芯片、连接器、晶振。这些元件的位置基本决定了布线的走向。主控芯片一般放在板子中间,连接器放在板边,电源芯片靠近它的负载。
晶振要尽量靠近芯片的时钟引脚,走线越短越好,而且晶振下面不要走其他信号线。去耦电容要靠近芯片的电源引脚,每个电源引脚配一个 0.1uF 的电容,大容量的电容可以放在稍远一点的地方。这些规则听起来简单,但实际布局的时候很容易因为空间紧张而妥协,最后导致电源噪声或者时钟抖动。
pcb布局布线思路这个东西,说到底就是权衡。面积、层数、成本、性能,这四个因素互相制约。你不可能在一个两层的板子上做出六层的性能,也不可能在一个硬币大小的板子上塞下一台电脑的全部电路。布局阶段多花一个小时,布线阶段可能就能省三个小时。
5.4 布线规则设置与铜皮优先级管理
布线之前,先在Constraint Manager里设置好规则。菜单栏Setup > Constraints > Constraint Manager,这里可以设置线宽、间距、过孔类型、差分对规则等等。对于普通的信号线,线宽一般设 6mil,间距设 6mil。电源线要加粗,根据电流大小来定,1A 的电流大概需要 20mil 的线宽。
cadence 铜皮 优先级是一个经常被问到的问题。在 Allegro 里,铜皮(Shape)是有优先级的。当你铺了多块铜皮,它们重叠的地方由优先级决定谁覆盖谁。在Shape > Global Shape Parameters里可以设置动态铜皮的参数,在Shape > Manual Void里可以手动挖空。优先级高的铜皮会覆盖优先级低的。我一般把 GND 铜皮的优先级设得比较低,电源铜皮设得高一些,这样电源铜皮不会被 GND 铜皮切断。
还有一个概念叫cadence禁止铺铜区,也就是 Route Keepout。在Setup > Areas > Route Keepout里可以画出禁止铺铜的区域。这个在射频电路或者天线附近特别有用,因为铜皮会影响射频性能。
5.5 布线实操与常见DRC错误处理
布线的时候,Allegro 的Interactive Router很好用。快捷键F3可以切换布线模式,F4可以切换过孔类型。走线的时候注意不要走直角,尽量用 45 度角或者圆弧。差分对要走等长,Allegro 有专门的差分对布线命令,可以自动帮你匹配长度。
DRC 错误是布线阶段的家常便饭。常见的 DRC 错误有:间距不足、线宽不够、过孔太小、丝印压焊盘。在Tools > Quick Reports > Design Rules Check里可以查看所有 DRC 错误。双击错误可以定位到具体位置。有些 DRC 是误报,比如某些测试点不需要开窗,可以在规则里忽略。但大部分 DRC 都是真实的问题,不要轻易忽略。
我踩过的一个坑是:铺完铜之后没有做Shape > Fill操作,结果铜皮是空心的,DRC 检查的时候没报错,但生成 Gerber 之后发现铜皮是断开的。后来养成了习惯,每次铺完铜都手动 Fill 一下,然后再跑 DRC。
6. 常见问题速查与避坑经验
6.1 安装与授权类问题
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| 打开软件提示找不到授权 | License Manager 服务未启动 | 在 Windows 服务里手动启动 Cadence License Manager |
| 安装过程中报错缺少 DLL | 系统缺少 VC++ 运行库 | 安装 vcredist_x86 和 vcredist_x64 |
| 安装完成后软件闪退 | 未打 Hotfix 补丁 | 安装最新的 Hotfix 后重启 |
| 中文路径导致安装失败 | 安装路径包含中文 | 重新安装到纯英文路径 |
6.2 原理图与网表类问题
cadence怎么从原理图中导出库这个问题,操作路径是:打开原理图,选中要导出的元件,右键Edit Part,在符号编辑器里File > Save As,选择你的库文件。如果想批量导出,可以用Tools > Export > Library,但要注意这个功能会把整个工程里用到的所有元件都导出来,包括你不需要的。
cadence仿真器件未定义这个报错通常出现在你做仿真的时候。原因是仿真模型没有正确关联到原理图符号上。解决办法是在原理图里选中元件,右键Properties,在PSpice Template里指定模型文件。如果你不做仿真,这个报错可以忽略。
6.3 PCB设计类问题
cadence 封装导入pcb的流程是:先在 Allegro 里打开你的 PCB 文件,然后Place > Manually,在弹出的对话框里选择Package Symbols,找到你的封装库路径,选中需要的封装,放到板子上。如果封装列表是空的,检查一下Setup > User Preferences > Paths > Library里的路径是否正确。
allegro pcb快捷键设置是提高效率的关键。Allegro 支持自定义快捷键,在Tools > Utilities > Keyboard Commands里可以查看和修改。我常用的几个快捷键:F2是 Add Connect,F3是切换布线模式,F5是 Delete,F6是 Move。你也可以把常用的命令绑定到字母键上,比如把Shape > Fill绑定到Ctrl+F。
6.4 我的独家避坑心得
第一个心得:每次开始画板之前,先建一个模板文件。把层叠、颜色、栅格、快捷键这些设置都配好,存成.brd模板。下次新建 PCB 的时候直接从这个模板复制,能省很多重复劳动。
第二个心得:原理图阶段就要把封装确定好。我见过太多人在原理图里随便选了个封装,到 PCB 阶段才发现封装不对,然后回去改原理图、重新导网表,折腾半天。正确的做法是在画原理图的时候,就在元件的PCB Footprint属性里填好封装名称,并且确保这个封装在你的封装库里存在。
第三个心得:定期备份。Cadence 的自动保存功能不太靠谱,我遇到过画了一下午的板子因为软件崩溃全没了的情况。后来养成了习惯,每完成一个阶段就手动File > Save As存一个副本,用日期命名。虽然占点硬盘空间,但关键时刻能救命。
第四个心得:多看官方文档。Cadence 的 Help 文档写得非常详细,很多问题在里面都能找到答案。按F1就能打开当前界面的帮助文档。虽然都是英文的,但技术文档的英文并不难懂,看多了就习惯了。
7. 从原理图到 PCB 的完整数据流复盘
整个流程走下来,其实就一条主线:OrCAD Capture 里画原理图,生成网表,Allegro 里导入网表,布局布线,最后输出 Gerber 给板厂。听起来简单,但每一步都有细节。
原理图阶段最重要的是元件符号和封装的对应关系。符号是逻辑上的,封装是物理上的,两者通过PCB Footprint属性关联。这个属性填错了,后面全错。我建议在原理图阶段就建一个封装对照表,把每个元件的封装名称、焊盘尺寸、来源都记下来,方便后面核对。
网表是连接原理图和 PCB 的桥梁。网表里包含了元件清单和网络连接关系,但不包含任何物理信息。Allegro 导入网表之后,会根据封装名称去封装库里找对应的.dra文件。如果找不到,就会报错。所以导入网表之前,一定要确保封装库路径设置正确,并且所有封装都已经做好。
布局布线阶段,约束管理是核心。Constraint Manager 里设置的规则会实时指导你的布线,违反规则的地方会立刻标红。这个机制能帮你避免很多低级错误。铜皮优先级和禁止铺铜区是 Allegro 比较有特色的功能,用好了能解决很多实际问题。
最后输出 Gerber 的时候,在Manufacture > Artwork里配置好各层的输出参数,然后Film Control里选择要输出的层,点击Create Artwork就行。生成的 Gerber 文件用 CAM350 或者免费的 Gerber 查看器检查一遍,确认没有遗漏和错误,再打包发给板厂。
这个流程我走过很多遍,每次都能发现新的细节。Cadence 这套工具的学习曲线确实陡,但一旦跨过去,你会发现它能做的事情比那些轻量级工具多得多。尤其是当你需要处理高速信号、阻抗控制、电源完整性这些复杂问题的时候,Cadence 的优势就体现出来了。
最后分享一个小技巧:如果你在 Allegro 里觉得操作太慢,可以试试Script功能。把一系列常用操作录制成脚本,绑定到快捷键上,一键执行。比如我录了一个“铺铜并填充”的脚本,每次铺完铜按一下快捷键就自动完成填充和 DRC 检查,省了不少时间。这个功能在Tools > Script里,有兴趣的可以研究一下。