1. 为什么电路设计需要双引擎仿真刚入行模拟电路设计时我最困惑的就是为什么同一个电路要反复做不同仿真。直到有次项目返工才明白就像医生既需要X光片静态检查又需要动态心电图行为观察电路验证也需要DC仿真和Tran仿真这对黄金组合。DC仿真相当于电路的体检报告。去年我设计的一个运算放大器仿真时所有参数都完美实际测试却发热严重。后来用DC仿真扫描工作点才发现某个MOS管在工艺角变化时进入了线性区。这种问题只有通过DC仿真才能暴露各节点直流电压/电流值MOS管静态工作区域饱和区/线性区/截止区功耗分布热点而Tran仿真则是电路的行为录像。曾有个时钟电路在DC仿真中完全正常但Tran仿真显示上升沿会出现振铃。这就像体检正常的人跑步时心率异常只有动态测试才能发现信号传输延迟瞬态响应特性时序违规风险2. 搭建你的第一个仿真环境2.1 创建专用仿真CellView新手最容易犯的错误就是直接在原理图上加激励源仿真。我建议采用仿真专用视图方案假设我们要仿真一个反相器inv新建CellView命名为inv_sim后缀sim是个人习惯调用原始原理图符号inv的symbol添加仿真外围电路# Virtuoso命令行创建示例 ciCreateCellView(lib_name inv symbol inv_sim schematic)实用技巧选中symbol按空格键自动生成引脚线标这个功能我用了三年才发现之前都是手动打label...2.2 激励源配置秘籍AnalogLib库里有几个关键元件vdc直流电源设置VDD/VSSvpluse方波信号瞬态仿真用gnd地线有个坑我踩过三次CMOS电路的输入端绝对不能悬空建议DC仿真时接固定电平Tran仿真时接信号源实在不用就接noconn元件3. DC仿真实战给电路做全面体检3.1 基础工作点分析以1.8V供电的反相器为例设置VDD1.8VVSS0V输入端接0V初始状态输出端可悬空实际产品不行在ADE L中analyses - dc - save DC operating points重点观察输出电压是否达到预期全高/全低所有MOS管是否在饱和区Vgs-Vth Vds静态电流是否异常3.2 变量扫描技巧更强大的功能是参数扫描。比如扫描输入电压设置变量Vin0-1.8V 步长0.01V添加输出表达式VT(/out)得到电压传输曲线我曾用这个方法发现某工艺角下输出电平不达标及时调整了晶体管尺寸。4. Tran仿真实战捕捉电路动态行为4.1 信号源配置要点配置vpluse时要注意上升/下降时间建议设为周期1/10脉冲宽度占空比控制初始延迟避免0时刻突变parameters list( v1 0 v2 1.8 td 1n tr 100p tf 100p pw 5n per 10n )4.2 关键参数设置在ADE L中设置仿真时长一般取3-5个信号周期最大步长影响精度建议周期1/100初始条件用DC解作为初始值避坑指南遇到过仿真不收敛的情况可以尝试调大reltol默认1e-3改为1e-2启用gminstepping添加初始节点电压5. 双引擎联合调试案例去年设计的一个比较器电路单独DC/Tran仿真都正常但实际工作异常。后来采用联合仿真策略先用DC仿真确定工作点在Tran仿真中设置ic使用DC结果添加瞬态噪声源这样发现了电源扰动导致的误触发问题。现在我的仿真流程固定包含三个步骤DC工作点验证DC参数扫描Tran动态验证仿真结果解读时建议把两个窗口并排显示。有次我发现Tran仿真中电流突增回头查DC工作点才发现某个管子在瞬态过程中进入了线性区。这种问题单看任何一种仿真都可能漏掉。