1. 项目整体设计为什么选中PSpice以及第一个仿真项目该怎么做这几年我带过不少刚入门的硬件工程师发现一个普遍现象很多人在Multisim里画了个电路拖进去几个元件点一下运行看到波形动了就觉得仿真成了。等真到了工作岗位上发现同事用的都是Cadence PSpice自己连项目文件都打不开更别提用什么VPULSE、VPWL了。如果你准备长期走硬件这条路建议尽早把PSpice用起来别绕远路。这不是说Multisim不好而是工业界和学术界在模拟电路、电源电路这个领域PSpice的占有率确实太高了你早晚得接触它。开头前100字过不过过了。Cadence PSpice这个关键词已经在里面了。先说清楚PSpice到底能干什么。它是一款基于SPICE内核的模拟与混合信号仿真工具集成在Cadence的Capture原理图设计流程里。你在原理图上画好了电路它能帮你算静态工作点、看瞬态波形、扫频域响应、分析噪声和失真甚至可以做温度扫描和参数扫描。简单说就是“画完原理图之后不用急着焊板子先在电脑上把电路行为摸一遍”。这件事在项目前期特别值钱因为改原理图成本低改PCB甚至改样机成本就高了。这篇内容适合谁看三类人。第一类是刚接触Cadence的学生课程设计要求交仿真结果但你连仿真配置文件在哪儿建都不知道。第二类是刚入职的硬件助理工程师公司流程里要求在原理图阶段做PSpice验证你被分到第一个任务却无从下手。第三类是从Multisim或其他工具转过来的工程师你需要快速把PSpice的信号源、仿真类型、报错习惯摸清楚。这篇就把从零搭项目到信号源配置整个过程走一遍尽量少讲空泛理论多讲能直接照抄的操作。关于工具版本我用的环境是Cadence 16.6和17.2下文的操作在这两个版本上通用。新版本的界面会略有变化但核心逻辑完全一样不用慌。2. 从新建工程到画出第一张原理图2.1 建立PSpice仿真项目的完整步骤在很多教程里建工程这一步经常会被人忽略很多人直接打开OrCAD Capture就画图去了画完才发现自己建的是一个普通原理图工程根本跑不了仿真。所以第一步必须是“新建一个能够产生PSpice网表的工程”。打开Cadence Capture CIS选择File - New - Project。弹出来的窗口里先填工程名字这里有一个极其重要的点工程名和存放路径都别用中文也别带空格和特殊字符。这是老工程师血的教训PSpice的网表工具对中文路径支持很差一旦路径里有中文运行仿真时大概率报错找一个下午也找不出原因。接下来Project Type选择“Analog or Mixed A/D”这就是PSpice工程。创建时向导会问你“Create a blank project”还是“Create based on an existing project”新手就直接选Blank Project。到这里一个能跑仿真的空工程就算建好了。很多人会卡在库文件这里。新建工程完成后原理图页面是空的左边右侧都没有元件库列表。你需要打开菜单Place - Part或者直接按快捷键P弹出Place Part对话框。在对话框里点击“Add Library”按钮添加PSpice自带库。最常用的是这几个analog库包含电阻R、电容C、电感L等无源元件source库包含各种信号源比如VDC、VSIN、VPULSE、VACsource.olb和PSpice库包含更多复杂源和特殊器件eval库Cadence自带的评估版元器件模型比如一些运放、二极管、三极管在添加库文件时我建议把analog.olb、source.olb、eval.olb全部加上因为不同版本Cadence对库文件的默认加载情况不一样有些版本默认不加载source库结果你找VPULSE找半天找不到。元件库列表加载出来之后你会发现库里的元件非常多。别慌新手只需要认识几个基础的就行。电阻在analog库里叫R电容叫C电感叫L直流电压源在source库里叫VDC正弦源叫VSIN脉冲源叫VPULSE。这里稍微提醒一下PSpice的库文件区分两种一种是符号库.olb一种是模型库.lib。你在原理图上看到的是符号库真正仿真时调用的是模型库。Cadence已经帮你把常用元件的符号和模型关联好了大多情况不需要你手动管这块但这在后面遇到“器件未定义”报错时会是排查重点后文会讲。2.2 元件放置、连线和接地最容易踩坑的环节从Place Part对话框里选中元件双击或按Enter就能放置到原理图上。放置时按R键可以旋转按H键水平翻转按V键垂直翻转。新手画电路图最容易犯的错误是放完元件直接密密麻麻地全部摆在一起连线拉来拉去像蜘蛛网后面检查起来非常痛苦。建议从左到右按信号流向摆放电源在左上角信号输入在左边输出在右边地在下边。虽然不影响仿真结果但你自己检查的时候会省很多事。连接线的方式很简单用Place - Wire菜单或者直接按W键在元件引脚上点一下再在另一个引脚上点一下线路就拉通了。除了连线还有一种更推荐的方式是加网络标号。按N键放置Net Alias给网络起名字相同名字的网络在电气上是连通的。特别是电源和地几乎不建议直接拉线而是直接放电源符号和地的符号。这里有一个常见的报警告问题我相信用过Capture的人多少都见过原理图上引脚类型是Power的元件引脚你给它接普通导线软件会弹警告。比如你给一个运放的VCC引脚直接连了一条线它就会提示Pin type is Power。这个警告本身不影响仿真运行但会在DRC检查时反馈一堆问题。正确的做法是不接线给网络起个标号比如VCC、VDD、GND所有相同名字的网络自动相连。养成用网络标号而不是拉线的习惯对后续画PCB也有好处。接地也很重要——这不是废话PSpice里对地的要求比Multisim严格。你需要从Place Part里放置一个名为“0”的符号也就是模拟地。注意不是AGND不是GND就是数字“0”。很多新手放了GND符号进去仿真直接报错提示“0 node is not defined”就是这个原因。在PSpice里节点0是特殊的参考点所有电压都是相对它计算的模拟地符号一定得是那个数字“0”。放完元件连好线之后别忘了给所有元件设置参数值。双击电阻的Value属性把1k改成你需要的阻值双击电容把Value改成需要的容值。千万别漏漏掉任何一个元件的Value属性仿真时会报“Value was not defined”或者产生奇怪的结果。3. 核心环节仿真类型与常见信号源配置详解3.1 三种基础分析类型怎么选原理图画完之后下一步就是创建仿真配置文件。操作路径是PSpice - New Simulation Profile或者直接在工具栏点那个带有波形图标的按钮。弹出的对话框里Analysis Type下拉菜单有很多选项新手先搞清楚三个就够用了。Bias Point偏置点分析只计算静态工作点不产生波形通常用于检查三极管放大电路的工作点是否合适或者配合直流扫描看输入输出关系。Time Domain (Transient)瞬态分析最常用的分析类型看电压电流随时间的变化波形信号源用脉冲、正弦、阶跃都可以。AC Sweep/Noise交流扫描在频域里扫对数频率范围看电路的幅频特性和相频特性信号源必须用VAC否则扫不出有效结果。还有个选项叫DC Sweep用来做直流扫描比如改变输入电压从0到5V步进0.1V看输出电压的变化轨迹。这个在分析比较器阈值、稳压管稳压区间的时候很好用建议也了解一下。选择分析类型时下面还有一个“Options”区里面有General Settings对于瞬态分析还需要设置Run To Time仿真时长。这个值怎么设简单粗暴的方法是先预估你的电路时间常数。RC电路的时间常数约等于R乘以C仿真时长起吗要覆盖3到5个时间常数才能看到稳定的波形。比如R是1kC是10nF时间常数10微秒仿真时长至少设50微秒再配合源周期来看有没有输出完整波形。3.2 信号源配置详解VDC、VSIN、VPULSE信号源配置是本篇的重头戏。我把PSpice里最常见的几个信号源全部拆开讲一遍。先说VDC就是直流电压源。它的属性只有一个DC值。比如你要给电路供5V电压双击VDC在DC属性里填5即可。需要注意的是不填任何值得话默认是0V很多人仿真出来结果不对检查半天结果发现源的值没填。再说VSIN正弦波电压源。这个源看起来简单但属性特别容易填错。VSIN有六个常用参数OFFSET直流偏置也就是正弦波的中心值。如果填0波形就在0V上下摆动VAMPL峰值幅度注意这是峰值不是有效值。比如你要1V有效值的正弦波VAMPL应该填1.414FREQ频率单位赫兹TD延时源开始输出前的等待时间DF阻尼因子一般填0PHASE相位延迟单位是度新手最容易犯的错误是把VAMPL填成了有效值或者把OFFSET和VAMPL混在一起。记住这个原则VAMPL决定峰峰值的一半OFFSET决定波形中心轴的偏移量。假设你做一个峰值5V、偏置0V、频率1kHz的正弦源那就这么填OFFSET0VAMPL5FREQ1kTD0DF0PHASE0。然后是VPULSE脉冲电压源。这是做数字电路、开关电源、逻辑信号仿真时最常用的源。它的参数有七个V1低电平电压V2高电平电压TD延迟时间从仿真开始到脉冲出现的等待时间TR上升时间从V1上升到V2所用的时间TF下降时间从V2下降到V1所用的时间PW脉宽脉冲保持在高电平的时间PER脉冲周期相邻两个脉冲起点的时间间隔这些参数之间有一个约束关系PER必须大于TD加TR加PW加TF的和。如果不满足PSpice会报错。很多人设置方波的时候TR和TF填0仿真结果是一点都不理想的方波。我建议如果不是极端情况TR和TF至少填一个微秒级或者纳秒级的小值比如TR1uTF1u。如果仿真时间单位是纳秒级TR填1n也合理。这里的核心是理解上升沿和下降沿的时间值不是越小越好太小的边沿时间会导致仿真步长需要很细仿真速度变慢甚至可能引起收敛问题。举个例子你要产生一个5V、1kHz、占空比50%的方波周期就是1毫秒脉宽就是0.5毫秒。参数设置V10V25TD0TR1uTF1uPW0.5mPER1m。这个配置在Buck电路、数字门电路仿真里几乎每天都在用。3.3 交流扫描的源设置和进阶信号源如果是做AC Sweep交流扫描信号源要用VAC。设置方法是在VAC的DC属性里填电路的直流工作点电压AC属性里填1这个1很重要——在AC扫描里PSpice默认输入信号的幅度是1这样你就会得到单位增益的频响曲线方便直接看增益大小。比如你在做RC低通滤波器的频率响应测试输入源设为VACDC0AC1仿真出来输出节点的频响曲线如果显示-3dB对应的频率就是截止频率不用再额外换算。VAC源使用注意事项如果你在AC扫描的同时还想看时域的瞬态结果VAC源在瞬态分析里不会产生波形因为它是纯频域小信号源。同样的电路如果你想既看瞬态又看频响在原理图上放两个源或用VSIN做瞬态VAC做AC扫描手动切换仿真配置即可。除了上面三种还有几个源在特定场景下非常有用。VEXP是指数源可以产生指数上升或下降的波形常用于模拟电容充放电的阶跃响应。VPWL是分段线性源你可以通过一组时间电压坐标点定义任意波形比如模拟一个复杂的启动时序信号。VPWL_FILE是从外部文本文件读取波形数据在做芯片时序验证时特别好用。还有受控源E电压控制电压源、G电压控制电流源、H电流控制电压源、F电流控制电流源这些在做小信号等效模型分析时会遇到前四个基础源用熟了再看受控源会轻松很多。3.4 信号源设置中容易踩的坑信号源配置的坑非常隐蔽我在这里集中列几个。第一单位问题。PSpice对单位输入是支持后缀的比如5V、1k、10u、2m都会正确识别。但是如果你什么都不写它就按默认单位处理。电阻默认是欧姆电容默认是法这个和直觉不一样。比如你要10纳法填10n是正确理解直接填10就以为是10纳法但仿真器当成10法拉用结果肯定离谱。所以所有参数务必带单位后缀这是PSpice使用的铁律。第二仿真步长和源的边沿时间不匹配。前面提过TR和TF太小时仿真器为了捕捉边沿需要减小时间步长。如果Run To Time设置成几十毫秒源边沿1纳秒仿真可能需要几十万步数跑起来极其漫长甚至卡死。解决办法是在瞬态分析的设置页里勾选“Skip the initial transient bias point calculation”或者在Options里设置最大步长Maximum Step Size把步长限制在源边沿时间的十倍以内平衡速度和精度。第三波形看起来对不上你的预期先检查源的值别看后面电路。我见过不少人调了半天电路参数结果发现是源偏置没设置对。仿真分析的第一原则先确认输入对不对再怀疑电路本身。4. 实操记录一次RC振荡电路仿真的完整过程4.1 电路搭建与计算这一节结合一个相对小而完整的电路来讲目标容易实现又能把前面的知识串起来。考虑到刚入门的朋友我选了RC电路作为第一个实验项目——R和C各一个一个脉冲源一个地加上输出节点。虽然叫振荡电路严格来说有些分歧但对于新手来说看RC充放电波形理解电容的时间响应是用仿真学习电路非常好的间接方式。电路具体是这样的电源用VPULSE输出0到5V的方波频率1kHz周期1毫秒脉宽0.5毫秒上升沿和下降沿1微秒。R接在脉冲源正极和输出节点之间阻值1k欧姆C并联在输出节点和地之间容值10纳法。输出节点作为测量点。基尔霍夫定律就不用多说了直接算时间常数RC等于1k乘10n也就是10微秒。如果你在这个网络后面带一个场效应管栅极或者ADC采样端口它的充放电行为就会影响信号建立时间。仿真时设置Run To Time为5毫秒足够覆盖5个周期来观察波形稳定情况。为什么选这个参数组合因为1kHz的方波周期是1毫秒而RC时间常数只有10微秒这个比值是100:1电容能在一个脉冲内基本完成充电稳态。如果你把R改成100k时间常数变成1毫秒输出电压还没充满就进入下一段放电了波形明显会是三角波而不是方波——这正是观察RC频率响应最简单直接的方法。4.2 创建仿真配置文件与运行在原理图页面点击PSpice菜单选择New Simulation Profile弹框里给配置起个名字比如TRAN。注意这里名字也别用中文。然后在Analysis Type里选Time Domain (Transient)Run To Time填5mMaximum Step Size可以不填先让它自动跑。配置文件做好后点PSpice - Run或者直接按F11。PSpice会先检查原理图有没有错误然后生成网表并启动仿真。如果元件放置有问题或者电接触不良会直接报错并提示你查看Session Log。关于报错处理下一节会专门讲。仿真跑完后会自动弹出PSpice波形窗口。如果波形窗口没弹出来你可以在PSpice菜单里选View Simulation Results手动打开。在波形窗口里先选中你关心的节点然后右键或通过菜单加Trace。加完Trace就能看到规律跳变的方波充电曲线了。如果只看到一条直线十有八九是信号源没设置对或者节点名字没选对。用标尺工具测一个很实用的量电容电压从10%升到90%的上升时间。实测值大约是2.2倍时间常数左右。你算一下2.2乘10微秒等于22微秒再看波形窗口的标尺读数会有个大概结果。如果不符合倒回去检查是电阻还是电容的值填错了。4.3 从瞬态走向交流扫描这个RC电路除了做瞬态还能顺便做AC扫描。新建一个仿真配置选AC Sweep/Noise把VAC源的DC属性设为0AC属性设为1扫描类型选Logarithmic对数起始频率10Hz终止频率100kHz每十倍频程扫100个点。运行仿真看输出节点的频响曲线理论截止频率等于1除以2πRC约等于15.9kHz。在频响曲线上找到-3dB点位置应该在这个频率附近。AC扫描的结果对新手来说可能不如瞬态波形直观但它是理解滤波器、放大器带宽和电源环路稳定性最基本的工具早点学会比晚学会好。同样的RC网络在瞬态里看充放电波形在AC里看频率响应两个角度互相验证你对电路的理解就会立体很多。5. 常见报错与排查方法实录做仿真一定会遇到报错这个躲不开。我把新手最容易撞上的几个问题集中整理做成一个排查速查表每个问题都配上我的解决思路。你会发现PSpice的报错绝大多数翻来覆去就那么几个原因。错误现象常见原因解决办法ERROR -- Node X is floating某个引脚没有连接任何通路或者画线未真正连接检查原理图是否所有引脚都有通路地线符号是否是0符号Value was not defined元件参数没填或者被删除了双击元件重新填入Value值和对应单位Model not defined元件缺少PSpice模型或者选的库不是PSpice库确认元件来自PSpice库检查元件属性里的PSpice Model名Transient convergence problem仿真步长太大或电路存在奇异状态缩小最大步长给电路加初始条件调整迭代选项ERROR -- Less than two connections at node X某个节点只有一个元件连接悬空或者只有一个引脚检查独点节点往往还是有没接上的地或电源WARNING -- Pin type is Power电源引脚接了普通导线改用网络标号连接电源引脚而不是直接连线表格里最后一项是警告不是错误但工程中特别常见。很多人不知道它影响的其实是后续DRC直接连线跑仿真大概率还是能跑但到了版图阶段问题就大了。建议从一开始就规范处理。5.1 瞬态仿真不收敛问题详解这是所有报错里最让新手头疼的。所谓不收敛简单说就是仿真器在某个时间点上迭代算不出满足精度的结果。最常见的原因是过小的边沿时间配合大动态范围电路。比如你在一个高增益放大电路里用了1纳秒上升时间的源仿真器为了捕捉这个跳变把步长缩到飞秒级别计算量爆炸最后在某一步跑不动了直接报错。解决思路有三个优先级。第一改仿真器选项。打开仿真配置文件的Options在General Settings里把RELTOL从默认的0.001放宽到0.01或者把ABSTOL和VNTOL调大。这不是作弊很多情况下电路本身没问题只是数值精度要求过高导致计算不收敛放宽一点精度就能过去。第二限制最大步长。在瞬态设置页勾选Maximum Step Size设为信号周期的百分之一到千分之一。比如1kHz的脉冲源最大步长可以设50微秒既能完整捕捉到波形形状又不会让仿真器在一个点上死磕。第三设置初始条件。在电容的IC属性或源的初始条件属性里填上预估的起始电压值可以帮仿真器快速进入稳态。如果这三种方法都试了还是不收敛就要回头怀疑电路本身了。高增益正反馈、没有直流通路的电容节点、浮空引脚这些都会导致不收敛。大多数时候不是仿真器的问题是电路本身在现实中也不会有稳定工作点。5.2 “器件未定义”和模型库问题“仿真器件未定义”这个报错在从别处拷贝原理图时特别常发生。比如你从某个模板工程里复制了一个运放符号到自己的原理图但那个运放符号关联的模型库并没有被你当前工程引用仿真网表生成时就会提示找不到模型。排查步骤也很简单。第一步点击报错信息里的器件看它的PSpice Model属性确认模型名。第二步检查工程中的仿真配置文件里有没有引用包含该模型的库文件。路径是PSpice - Edit Simulation Profile在Configuration Files选项卡下可以看到所有加载了的库。如果确实缺库点击Browse把对应模型库添加进来。第三步如果库文件存在但模型就是找不到可能是模型名拼写不一致复制粘贴的时候注意别多空格。还有一个容易踩的坑原理图里的元件符号用的是“非PSpice库”中的元件。以VDC为例在Capture里其实有几个版本有些版本偏原理图符号不带PSpice模型。如果仿真报“Model not defined”换用标准analog库或source库中的元件重新放一个问题就能解决。5.3 波形结果奇怪的排查顺序最后分享一个排查结果异常的方法论。很多新手一看波形和自己想的不一样马上怀疑仿真器有问题其实基本不可能。仿真是确定性计算只要网表没错、模型没错结果就是电路真实行为的数值解。所以波形不对的时候按顺序排查检查信号源的参数设置检查元件值有没有填反检查节点的网络标号是不是连错了检查地有没有接好最后再回头看电路拓扑和理论算出来的预期值是不是一致。我个人经验是至少有一半的“仿真结果不对”问题最后都出在信号源参数上。尤其是VAMPL填成了有效值、VDC没填值、VPULSE的PER时间算错这三种情况。所以这篇花了大量篇幅讲信号源配置这部分真的是整个仿真流程里的高频故障点。说句实在话我第一次独立跑PSpice仿真的时候光是在VPULSE参数上就折腾了一整个下午。后来养成了习惯不管画什么电路先给信号源建一张参数表每个参数列出来填完再核对一遍这个习惯到现在还在用。仿真工具是个好帮手但它只负责算电路合不合理、参数对不对最终还是要人来把关。把信号源搞清楚你的仿真之路就顺畅了一半。