4. 电路仿真基础回顾
在高速互连与电路联合仿真中,SPICE 类引擎仍然是时域波形、频域响应和直流偏置计算的共同底座。无论前端是 IBIS-AMI、S 参数通道还是晶体管级驱动器,最终都要落到“建立方程—离散化—迭代求解—输出结果”这条链路上。理解这条链路,才能在波形异常、扫描曲线畸变或仿真不收敛时快速定位问题,而不是盲目调小步长或反复换引擎。
SPICE 引擎在算什么
SPICE 的核心是改进节点分析(Modified Nodal Analysis, MNA)。它把电路中的电阻、电容、电感、独立源、受控源以及非线性器件统一写成一组代数—微分方程:
G·x(t) + C·dx(t)/dt = b(t)
其中 x 是节点电压与支路电流组成的未知量向量,G 是电导矩阵,C 是动态元件矩阵,b 是激励向量。瞬态分析时,引擎用数值积分把微分项离散成代数项,再在每个时间点用牛顿—拉夫逊迭代求解非线性方程;AC 扫描时,引擎在直流工作点附近做小信号线性化,把非线性器件替换为跨导、输出电导和电容,再在复频域求解;直流工作点则是令所有动态项为零,只解非线性代数方程。三种分析共享同一套器件模型和矩阵结构,差别在于离散方式、激励形式和求解目标。
瞬态分析:时间步长不是越小越好
瞬态分析把时间轴切成离散点,每个点用积分公式从上一时刻推进。以梯形法为例,电容电流近似为:
i_C(t_n) ≈ C·[v(t_n) - v(t_{n-1})] / Δt - i_C(t_{n-1})
步长 Δt 越小,截断误差越低,但矩阵求解次数成倍增加。SPICE 通常采用自适应步长:先按 TMAX 或 TRTOL 给出候选步长,再估算局部截断误差(LTE),若超过 RELTOL 与 ABSTOL 组合的容限就回退并缩小步长。实际调试中,如果眼图在边沿处出现非物理的振铃或台阶,往往不是电路本身的问题,而是步长过大导致边沿被“跨过”。此时可把 TMAX 设为信号最小上升时间的 1/20~1/50,例如 28 Gbps NRZ 的 20%~80% 上升时间约 18 ps,TMAX 可先取 1 ps 量级观察,再逐步放宽以平衡速度。
另一个常见现象是“伪振荡”:梯形法对刚性系统可能产生数值振铃,而 Gear 法更稳定但会引入数值阻尼。判断方法是把积分方法从 trap 换成 gear,若振铃消失且波形整体趋势不变,则原振铃大概率来自数值积分而非真实寄生。
AC 扫描与直流工作点
AC 扫描不是独立于直流的分析。引擎先求直流工作点,把 MOS 管在偏置点处线性化为 gm、gds 和 Cgs/Cgd,把二极管线性化为 rd 和 Cd,再在复频域解线性方程组。因此,如果直流工作点本身不收敛或落在错误区域(例如 MOS 管被偏置到亚阈值区而非饱和区),AC 曲线会出现增益异常、相位翻转或 S21 明显偏离预期。做通道 AC 扫描时,建议先单独跑一次 .op,确认关键节点的直流电压和静态电流在合理范围,再执行 .ac dec 100 1Meg 50G 这类扫描。
直流工作点求解失败通常表现为“no convergence in DC analysis”。常见原因包括:正反馈环路、浮空节点、理想电流源驱动电感、模型参数超出定义域。处理顺序可以是:先加 .nodeset 给出合理初值,再用 .options gmin=1e-10 或 gmin stepping 逐步放松,最后考虑 .ic 强制初始条件。注意 .ic 只影响瞬态初始状态,对 DC 工作点无效,两者不要混用。
收敛问题的系统排查
收敛失败不是单一原因,建议按“模型—拓扑—选项—初值”的顺序排查。先检查器件模型是否在有效区,例如二极管反向击穿电压是否被越过、MOS 的 Vds 是否超过模型上限;再检查是否存在无直流通路的节点或理想源冲突;然后调整 RELTOL(默认 1e-3,可放宽到 1e-2 先看能否收敛)、ITL1(DC 迭代上限,默认 100,可提到 500)和 ITL4(瞬态迭代上限);最后用 .nodeset 或 .ic 给关键节点合理初值。若仍不收敛,可临时把非线性器件替换为线性等效件,确认是模型问题还是拓扑问题。
仿真精度控制的实际参数示例
以下是一组用于高速通道瞬态仿真的合理起始参数,属于教学示例,实际值需根据工艺和信号速率调整:
| 参数 | 示例值 | 作用 |
|---|---|---|
| RELTOL | 1e-3 | 相对误差容限,收紧可提高精度 |
| ABSTOL | 1e-12 A | 电流绝对误差容限 |
| VNTOL | 1e-6 V | 电压绝对误差容限 |
| TRTOL | 7 | LTE 估算系数,减小可缩小步长 |
| TMAX | 1 ps | 最大步长,建议小于最小上升时间/20 |
| ITL4 | 100 | 瞬态每点迭代上限 |
| METHOD | gear | 刚性电路优先,抑制数值振铃 |
判断精度是否足够,不能只看波形“像不像”,而应看关键指标是否稳定:把 TMAX 减半、RELTOL 收紧一个数量级,若眼高、眼宽、过冲和抖动变化小于 2%,说明当前精度已足够;若变化明显,则继续收紧。对于 AC 扫描,检查相邻频点之间增益变化是否平滑,若出现锯齿或跳变,通常是频点太稀或工作点线性化异常。掌握这些判断依据,才能在联合仿真中把 SPICE 引擎用稳、用准。