第一次在Cadence里把原理图画通、把网表导进Allegro PCB Editor再看着自己布的线变成一块真正的绿色板子时那种感觉真的非常奇妙。Cadence是目前硬件工程师使用率最高的PCB设计工具之一从原理图输入、PSpice仿真、PCB Layout到信号完整性分析整条链路都能在一套环境里完成尤其是OrCAD Capture CIS加Allegro PCB Editor这套组合几乎成为通信、汽车电子、电源类公司的标配。这篇文章写给两类人一类是刚开始接触Cadence、准备画自己第一块板子的新手另一类是被Cadence那套Class/Subclass逻辑劝退过的转岗朋友。我会按照一套完整的流程带你走一遍安装与建库、原理图设计、网表导入、板框绘制、布局布线、铺铜、DRC检查、Gerber输出过程中把关键的菜单路径、参数设置和报错原因都讲清楚也会把我在实际项目里踩过的坑一并列出来。内容尽量说人话步骤可以直接照做。1. 工具链选型为什么是Cadence而不是AD或PADS1.1 Cadence和Allegro到底是什么关系很多人第一次接触会困惑我电脑上装的是OrCAD Capture CIS同事嘴里说的却是Allegro这俩到底是不是同一个软件其实Cadence是公司名OrCAD Capture CIS是原理图入口Allegro PCB Editor是布局布线主战场PSpice负责电路仿真。完整的项目流程是Capture画原理图 → PSpice仿真验证 → 生成网表 → Allegro导入网表 → 布局布线 → 铺铜DRC → 输出制造文件。你手机里常见的那些板卡不少就是在这条链路里走完的。选型这件事硬件工程师之间一直有争论。AD上手快但对复杂板卡和高频仿真支持偏弱PADS在低成本和简单板卡上很普及Cadence则在通信、服务器、汽车电子这类高密度、高速、多层板场景里占据主导。不是说Cadence一定最好而是当你需要处理DDR走线等长、差分对控制、大电流电源平面分割这些需求时Allegro的约束管理器和铜皮处理机制会更顺手。如果你打算做高速数字电路或者复杂电源系统尽早切换到Cadence比等板子出了问题再迁移划算得多。版本选择上我建议新手直接装Cadence 17.4。16.6虽然非常稳定、教程也多但界面和约束管理器偏老旧17.2是过渡版本现在很多插件和第三方Skill工具都针对17.4做了适配。最新的Allegro X 22.1界面变化很大但网上教程数量还跟不上学习成本略高。选定一个大版本后就坚持用下去不要随便混装多个版本否则环境变量和License配置会非常容易出问题。1.2 安装环节最容易踩的坑Cadence的安装是劝退很多新手的第一个坎。很多人卡在LicenseManager配置上安装包自带的路径里有一个C:\Cadence\LicenseManager\LicenseServerConfiguration.exe这是用来指定License文件的服务配置工具。配置时注意三点License路径不要带中文Windows防火墙要放行LicenseManager进程安装完后检查Windows服务里有没有Cadence License Manager在运行如果服务没起来Allegro打开就会报无法获取License。另一个高频报错我贴在这里Microsoft.VC80.MFCprocessorArchitecturex86publicKeyToken1fc8b3b9a1e18e3btypewin32version8.0.50608.0。这不是Cadence本身坏了而是系统里缺少早期版本的VC运行库。Cadence很多模块是多年前用Visual Studio 2005/2008编译的新系统往往只装了最新的VC Redistributable老组件反而没有。解决办法很简单手动安装Visual C 2005和2008运行库然后重启电脑这个报错基本就消失了。安装路径方面尽量避免默认的Program Files目录或者中文路径。我见过有同事把工程放在“D:\项目\第一块板”下面结果Capture保存文件正常Allegro导入网表时各种诡异报错最后发现是中文路径在编码转换时出了问题。我的习惯是Cadence软件装在C:\Cadence所有工程统一放在D:\Workspace目录只用英文和下划线工程名的板型号加版本号比如ESP32_BOARD_V10这样后面生成文件管理起来会很舒服。1.3 网络资料怎么找新手搜教程时可以直接搜“吴川斌的博客 cadence安装”这位博主整理了不少实用教程和资源链接尤其是安装步骤这块写得比较详细。不过要注意博客上的版本信息可能滞后如果你装的是17.4尽量找对应的步骤不要拿16.6的截图硬套。另外EDA365论坛、CSDN上的Cadence专栏也有大量实战贴搜索时我习惯加“实战”或“教程”两个字能过滤掉很多没营养的开篇介绍。2. 原理图设计Capture CIS实操与准备2.1 先建元件库还是直接画图我之前带过几个实习生他们喜欢直接打开原理图页从自带的库拖元件出来画。对于简单板子这没什么问题但一旦涉及公司统一的物料编码和封装管理你会发现Capture自带库里的元件封装经常和你手里的实物对不上。所以我的建议是第一块板子就直接开始建自己的库哪怕只是几个电阻电容也要走一遍建库流程。具体操作打开OrCAD Capture CISFile → New → Project选择Schematic类型工程名不要带空格。然后在工程目录下新建一个.olb库文件右键库名选择New Part。以运算放大器为例Place引脚时把引脚属性改正确输入脚是Input、输出脚是Output、电源脚是Power、悬空保护或者NC脚选Passive。引脚编号和名称一定要和实际芯片的引脚一一对应这直接关系到后面PCB封装的映射。给元件指定封装格式也有讲究。Capture里的元件属性中PCB Footprint这一栏要填写Allegro封装名比如电阻写R0603芯片写SOIC-8这个名字必须和Allegro封装库里的文件名完全一致多一个空格或者大小写不对导入网表时都会报“footprint not found”。2.2 Power引脚报警告原因其实很简单很多人在画完原理图跑DRC时会看到一条警告引脚类型是Power网络连接有冲突。这个问题在热词里反复出现多数情况是因为在Capture中Power类型的引脚在电气上是默认“强连接”的它要求该引脚所在的网络名字和引脚名称一致或者至少不能出现同名网络里混着多个不同电源的情况。比如VCC这个网络里你放了一个叫VCC的电源符号又放了另一个叫5V的电源符号Capture就会认为这里有歧义于是报ORCAP-1608这类警告。解决办法有两个方向一是统一网络名所有接VCC的引脚都通过同一个电源符号连接二是如果你不想让电源引脚参与这种自动命名判断可以直接双击引脚在属性里把Pin Type从Power改成Passive。这样做之后原理图的电气连接关系不会变但DRC就不会再把它当成强连接电源引脚来检查了。我个人的习惯是画芯片库时为了后续仿真方便会保留Power类型如果只是纯数字逻辑板不跑PSpice仿真统一改成Passive反而省事。2.3 位号重排、DRC和网表导出画完原理图后先做Annotate位号重排。菜单Tools → Annotate选择重命名全部器件Capture会按读取顺序把元件编号成R1、R2、C1、C2这种规则形式。这一步非常关键如果你中途新增了几个器件再不做位号重排网表里就会出现R?这种带问号的位号Allegro导入时直接报错。接下来是电气规则检查Place → DRC或者Tools → Design Rules Check。建议勾选所有检查项特别留意Unconnected Pin。DRC通过后执行Tools → Create Netlist输出格式选择Allegro生成一个包含所有连接关系和封装信息的网表文件。这里提醒一句网表生成前务必确认原理图库中每个元件都有正确的PCB Footprint属性否则生成的网表导入PCB时缺失封装的器件会被跳过你在PCB里左等右等等不到它。3. PCB布局板框、层叠与元器件摆放3.1 画板框的三种常用办法进入Allegro PCB Editor后第一步不是摆元件而是画板框。我见过不少新手直接拿Route Keepin当板框用后面出Gerber时板厂要求提供Board Geometry层才返工一遍。规范的做法是板框画在Board Geometry → Outline子类上然后通过Z-Copy命令把板框拷贝到Route Keepin和Route Keepout等约束层。如果板子是标准方形或矩形直接用Setup → Design Parameters → Board Wizard向导就能生成如果是不规则形状我建议在DXF里把外形画好再File → Import → DXF导入导入时注意单位选公制还是英制原点位置和Allegro保持一致否则板框会偏到千里之外。手工绘制也是可选的用到Add → Line或Add → Rectangle命令配合坐标输入工具适合快速原型验证精度要求不高时完全够用。板框画完并确认闭合后执行Z-Copy在Options面板里选择目标层为Route Keepin这样约束区域就自动生成了。有了Route Keepin后续摆放和布线就会受限在有效区域内不会出现元件飘到板外的尴尬情况。3.2 活动类和子类Cadence分层的核心新手最容易被Cadence劝退的就是Class/Subclass这个概念。你可以把Class理解成一个大分类Subclass是这个分类下的具体图层。比如Board Geometry是板级几何里面包含Outline、Silkscreen_Top、Silkscreen_BottomPackage Geometry是元件封装几何里面有Place_Bound_Top、Silkscreen_TopManufacturing是制造辅助层像NoProbe、NoPin这些。\为什么Cadence要搞得这么复杂因为板子上的信息太多了你不可能把板框、丝印、元件占位、布线都堆在同一个层里否则后期没法单独控制颜色和显示。在Allegro里显示控制用Display → Color/Visibility打开在这里可以逐个层打开或关闭。我习惯把Board Geometry的Outline显示为黄色Package Geometry的Place_Bound显示为灰色半透明Route Keepin显示为淡紫色这样一眼就能看清板子的边界和摆放范围。3.3 布局实战以大功率电源板为例布局是整个PCB设计中最能体现经验的环节。以大功率电源板为例网上搜索热词里“大功率电源板pcb设计”频率很高这类板子的核心矛盾是散热和电流路径。输入输出端子放板边功率开关管靠着散热器区域变压器或电感靠近开关管反馈采样电路远离功率走线。优先布置大电流回路让输入电容、开关管、输出二极管形成面积最小的回路这能显著降低板级EMI。器件间距方面功率电阻和二极管这类发热器件与电解电容之间至少要留3mm以上否则电解电容长期受热会加速老化。功率器件下面可以打散热过孔阵列孔径0.3mm、间距0.8mm左右配合大面积铜皮把热量导到背面。从布局开始就把电源地和信号地物理分开最后在单点汇合能避免不少干扰问题。摆放完成后用Display → Highlight把各网络高亮重点检查输入输出回路是否存在交叉、有没有形成大的环流面积。4. 布线实战线宽、过孔与铺铜4.1 线宽规则设置不是猜出来的布线参数设置要用到Constraint Manager入口在Setup → Constraints → Constraint Manager。这里可以分别设置Physical物理规则和Spacing间距规则。默认的情况是所有网络共用一套规则如果你有电源网络建议右键创建一个新的物理规则类比如PWR间距比普通信号大线宽也大得多。在Allegro里PCB设置线宽的地方就是Physical规则里的Wiring分支Minimum、Recommended、Maximum三个值分别代表最小、推荐、最大线宽。对于普通信号线10mil的推荐线宽在常规工艺下已经很稳电源网络则要看电流大小来推。一条粗略的经验算法外层1oz铜厚下1mm线宽大约能过1A电流。如果过3A电流我至少用2mm甚至直接铺铜处理。如果走线太长还要考虑电压跌落不能只看载流能力。过孔设置类似在Physical规则里设置Via列表。普通信号用10/20mil孔径10mil、外径20mil电源过孔可以放大到20/40mil。过孔径和板厚有关常规1.6mm板厚最小可用0.3mm机械钻孔再小就要激光微孔成本就上去了。如果你做的是高速板换层时还要加回流地孔这个后面有机会再细聊。4.2 交互式布线从手生到熟练Allegro的布线主命令是Route → Connect快捷键是P。点选网络后鼠标移动就能看到布线预拉线。布线过程中按字母L可以切换布线层按P键可以设置过孔按某个固定键位可以切换布线模式比如推挤模式可以有效整理拥挤区域。刚开始布线时建议把Options面板里的Snap to segment打开这样走线容易沿着焊盘和已有走线对齐。布线顺序上我习惯先布电源和敏感信号再布普通信号。原理图里电源网络往往需要单独归类所以我在Constraint Manager里创建了PWR类和GND类。高亮的网络用Display → Highlight实时显示比如把3.3V高亮成青色GND高亮成白色USB差分对高亮成橙色这样布线时视觉上很清楚不会在密密麻麻的飞线里迷路。4.3 铺铜、禁止铺铜区和铜皮优先级铺铜用的是Shape → Add Shape命令。Allegro里的铜皮分动态铜皮和静态铜皮动态铜皮会随周围走线和过孔自动避让修改走线后会更新适合大范围电源平面静态铜皮更像手工画的固定形状不会自动避让适合修补小区域。第一次用建议全部用动态铜皮能省掉大量手工修铜的时间。在电源板里多路电源共地时经常需要在一块大的GND铜皮上给某个芯片单独切出一小块模拟地。做法是放一个Shape → Manual Void或者先放置Route Keepout区域再铺铜这样铜皮就会自动避让开。这里就是热词里说的“cadence禁止铺铜区”的应用场景。注意禁止铺铜区应该是Route Keepout → All层不止是Top层否则你只在Top层加了禁止区域到了Bottom层铺铜又铺回来了等于白做。关于铜皮优先级Dynamic Shape之间按叠放顺序自动避让通常后创建的优先。如果两片铜皮有重叠区域我们需要在Options面板的Shape优先级列表里调整顺序或者直接选中铜皮右键修改属性。我的经验是最少用静态铜皮因为静态铜皮不会自动更新布线改了之后经常需要手动重铺报错还不好排查。所有大面积铺铜都选Dynamic Copper最后统一走Verification再检查死铜。4.4 高效操作技巧和快捷键Allegro的操作效率很大程度来自快捷键配置。我建议在env文件里自定义常用命令比如用F2走线、F3铺铜、F4删除、CtrlD完成、ShiftF5高亮。显示方面Ratsnest的显示隐藏可以用快捷键控制避免飞线盖住走线。还有“Move”命令配合坐标输入可以精确摆放连接器位置。这里还提一个“cadence的pcb中选项的活动类和子类介绍”经常被问到的问题Options面板的作用是在你执行命令时指定要把对象放到哪个Class/Subclass。比如要画丝印线先执行Add → Line然后在Options面板的Active Class选Board GeometryActive Subclass选Silkscreen_Top。很多新手忘了改Options面板里的层结果画出来发现东西跑到Outline层了。养成先看Options面板再执行命令的习惯能避免很多返工。5. 封装、DRC与制造文件输出5.1 封装导入PCB和库路径配置封装是PCB里绕不开的一环。在Allegro里封装涉及两类文件焊盘文件.pad和符号文件.psm/.dra。焊盘文件定义引脚焊盘的尺寸和形状符号文件定义器件本体和丝印。当你在原理图里给元件填好PCB Footprint后网表导入时Allegro会根据封装名到库路径里找对应文件。库路径设置在Setup → User Preferences → Paths → Library把psmpath和padpath分别指向你的封装库目录。我第一次导入网表时提示找不到封装检查了半天发现是封装名的大小写不一致原理图里写的是R_0603库文件名是r_0603Allegro严格区分大小写最后统一命名规则才解决。建议从一开始就规定好命名规范比如电阻R0603、电容C0603、电感L0805、芯片SOIC8不要中途换规则。如果项目需要特殊封装比如大功率电源板里的大尺寸MOSFET可以自己在Allegro Package Editor里创建先建焊盘再新建封装symbol放置焊盘、画丝印、放放置范围Place_Bound最后保存。这个过程虽然麻烦但做过一次之后你对封装的构成会有更深刻的理解后面再遇到非标器件就不会发怵。5.2 DRC检查把问题留在出文件之前Layout完成后不要急着出Gerber先跑DRC。Allegro的DRC入口是Display → Reports可以选择检查哪些项目。常见报错有Unconnected Pin、未连接的引脚网络Shape Spacing铜皮和走线/焊盘间距不足Soldermask Error阻焊开窗重叠还有元件重叠或间距过小。每个报错双击可以跳到Allegro在Options面板里看到具体DRC marker类型。我常用的排查顺序是先看短路类错误如Line to Line、Shape to Shape Spacing再看未连接飞线最后看丝印和阻焊。DRC模式可以在Setup → Constraints → Modes里调整比如某些板厂工艺做不到非常极限的间距可以适当放宽对应规则但前提是确认你的方案真的能接受不要为了消红叉而放宽规则。还有一个小坑值得专门提醒铺铜之后如果不更新旧的铺铜信息可能还是上一次布线前的状态DRC结果不可信。所以每轮修改完先让动态铜皮重新避让更新再跑DRC顺序不要反。5.3 Gerber和钻孔文件输出出制造文件最稳妥的方式是用Allegro自带的Artwork工具入口是Manufacture → Artwork或者直接打开Artwork Control Form。你需要依次添加各层FilmTOP顶层走线铜箔、BOTTOM底层走线铜箔、SILKSCREEN_TOP/BOTTOM丝印、SOLDERMASK_TOP/BOTTOM阻焊开窗、PASTEMASK_TOP/BOTTOM钢网以及钻孔层NC Drill和板框层Board Outline。每层Film里的元素选择很关键比如丝印层不能包含板框线和禁布区的信息阻焊层不能包含过孔开窗以外的Shape。检查时可以用Artwork选项的Preview按钮看看每个Film实际包含了哪些内容。最后生成文件后再把Gerber导入到CAM350里做一次目检重点看钻孔符号是否对齐、板框是否在正确层、阻焊开窗有没有缺失。这一步虽然耗时但能帮你把板厂那边的沟通成本降到最低。5.4 Cadence的PCB格式怎么转成AD很多人会遇到上下游协作方的工具不统一客户用AD你用的是Cadence。这时候把Allegro的.brd文件直接转成AD的.PcbDoc文件就很重要。最方便的方式是让AD直接导入Allegro的.brd文件但版本兼容性要留意AD的高版本对Allegro 16.x、17.x的支持比较成熟。如果直接打开失败可以走中间格式先在Allegro里File → Export → ODB再把ODB导入到AD。转换之后必须检查网络是否完整、走线是否有丢失、铺铜是否重新灌过。经验是ODB转过来后铜皮经常只剩空壳需要删除后重新铺别直接在转换结果上做DRC。另外转格式只是救急长远的做法还是让团队统一工具或者用中间格式做单次交付而不是每次都做双向转换。6. 仿真验证PSpice不收敛和器件模型问题6.1 瞬态仿真不收敛问题常出在这些地方Cadence的仿真链路里PSpice是主角但新手经常遇到“瞬态仿真不收敛”的报错。遇到这种情况先别慌不是电路坏了多数是数值计算层面的问题。我把常见原因和对应方案整理在下面。原因表现处理方式初始条件设置不当波形一开始就飞掉给关键节点加.IC初始电压或设置偏置点理想电压源直接驱动电感/电容电流瞬间无穷大给电源串联一个小电阻或设置电源爬升时间模型中存在异常小阻抗波形高频振荡检查电路中是否有极低阻值电阻或理想开关模型仿真步长过大波形毛刺多将.tran的最大步长改小比如1us步长改为100ns环路振荡输出一直波动检查反馈极性适当增加相位补偿最常用的一招是缩短仿真步长、增加迭代次数。在仿真配置文件的Options里设置ITL1迭代上限或者RELTOL相对误差把RELTOL从0.001放宽到0.01往往能绕过不收敛问题。但注意这只是数值手段如果电路本身存在原理级振荡还是要回原理图找原因。6.2 仿真器件未定义库和模型名不匹配在PSpice里做仿真时报“model not defined”或“device not loaded”是很常见的。原因一般是你的元件符号对应的仿真模型没有找齐。以运放为例在PSpice模型库里找到对应的.lib文件在仿真配置文件的Simulation Settings → Configuration Files → Library里添加进去。注意Capture元件库里的Part Name要和模型库里的模型名完全一致很多运放的模型名末尾带后缀要仔细核对。还有一种情况是元件符号封装名对但模型属性里没有设置PSpice模型。双击元件在属性列表里看到PSpice Template和PSpice Model这一栏如果是空的说明元件不是标准仿真库里的需要手动指定模型。新手建议先直接用Cadence自带的仿真库比如ANALOG_P库里的OPAMP、Breakout库里的基础器件等熟悉建模规则后再扩展外部模型。6.3 罗氏线圈设计里仿真能帮什么忙最近“罗氏线圈设计”这个搜索词热度不低。罗氏线圈本质上是一种空心电流互感器输出信号微弱、频率范围宽经常需要设计积分器和信号调理电路。用Cadence的PSpice做仿真时你可以给线圈建模成一个受控源加电感的等效模型然后验证积分器的频率响应和相位补偿效果。这种仿真对收敛性的要求很高因为积分器本身存在直流漂移如果仿真时间太长输出很容易漂到数万伏。我一般会在积分器反馈电容两端并联一个大电阻用来稳定直流偏置点效果立竿见影。这类仿真的重点不是还原实际波形而是验证电路架构在频率范围内的稳定性。7. 常见问题速查与避坑经验最后把我在项目里遇到过、并且大概率你也会遇到的问题做张速查表问题常见原因解决方法Capture引脚类型是Power报警告ORCAP-1608Power引脚强连接同名网络网络名冲突统一电源符号网络名或把引脚Type改为Passive原理图新增器件后Allegro里看不到没有重新Annotate位号Tools → Annotate重新编号重新导出网表并导入铜皮没有避开某个区域禁止铺铜区放错了层用Route Keepout → All而不是只放Top层后铺的铜皮把先铺的盖住了铜皮优先级或动态/静态设置不对检查Options面板Shape优先级尽量用动态铜皮转AD后铜皮全是空心转换格式对Shape支持不完整转换后删除旧铜皮重新铺铜启动软件报VC80.MFC错误缺少VC 2005/2008运行库安装老版本VC运行库找不到封装文件封装名不一致或库路径没设置核对PCB Footprint名检查psmpath/padpath仿真提示器件未定义模型库没加载或模型名不匹配在Simulation Settings中添加.lib核对模型名我自己在实际项目中最大的体会是Cadence这套工具不像AD那样“什么都替你决定好”它把更多控制权交给你同时也要求你对层、类、约束规则有清晰的理解。一开始可能会觉得繁琐但等你熟悉了这套分层逻辑再做复杂板子时会明显发现它的优势和自由度。画第一块板子时不用追求一次到位把流程走通、把规则搞清楚比追求漂亮更重要。后面再扩展射频、高速数字、多层板设计时这套流程就是你的地基地基稳了楼才能盖高。
阅读完成 · 觉得有帮助?