1. 混合信号协同仿真的工程定位

在现代芯片与系统设计中,模拟电路与数字电路早已不是彼此隔离的两个世界。一颗典型的SoC往往同时包含PLL、LDO、ADC/DAC、SerDes等模拟或混合信号模块,以及CPU核、总线、存储控制器、状态机等数字逻辑。模拟部分关心连续电压、电流、噪声、建立时间与偏置点,数字部分关心离散逻辑电平、时钟沿、时序收敛与功能正确性。当这两类电路通过接口耦合在同一衬底、同一电源网络甚至同一封装中时,仿真就必须回答一个核心问题:模拟的连续行为与数字的离散行为,如何在同一时间轴上被一致地求解与验证?这正是混合信号协同仿真(Mixed-Signal Co-Simulation)要解决的工程问题。

为什么不能各仿各的

如果模拟工程师用SPICE仿真ADC的模拟前端,数字工程师用Verilog仿真后级数字滤波器,两边各自跑通,是否就代表系统正确?答案通常是否定的。原因在于接口处的行为无法被单侧仿真完整覆盖。举一个教学示例:一个12位SAR ADC,采样时钟由数字PLL分频产生,模拟输入为0.2V~1.2V,参考电压1.2V。若数字侧仿真时把ADC输出简单建模为理想12位量化值,就会忽略比较器失调、采样开关电荷注入、参考电压跌落等效应;而这些效应恰恰会让实际转换曲线出现偏移或非线性。反过来,若模拟侧仿真时把数字控制信号当作理想方波,就会忽略数字驱动能力、上升沿斜率、时钟抖动对采样时刻的影响。协同仿真的价值,就是让接口两侧的“非理想”在同一仿真中互相可见。

协同仿真的目标可以概括为三句话:接口行为一致(模拟与数字在边界上交换正确的物理量与逻辑量)、时间推进一致(两侧在同一时间轴上同步演进)、验证结果可判(能观察到跨域的信号、参数与失效模式)。

典型应用场景

混合信号协同仿真并非所有项目都需要。它最适合以下几类场景:第一,数据转换器接口验证,如ADC/DAC与数字滤波、抽取、校准逻辑的联合验证;第二,时钟与电源域交互,如PLL锁定过程对数字复位释放的影响、LDO上电时序与数字状态机的配合;第三,高速串行链路,如SerDes的模拟均衡器与数字CDR、编码解码逻辑的联合仿真;第四,传感器接口与闭环控制,如MEMS传感器模拟前端与数字PID控制器的闭环行为;第五,电源管理状态机,如多路电源切换时模拟软启动与数字使能信号的时序竞争。这些场景的共同点是:接口处的模拟非理想会直接改变数字逻辑的判决结果,或数字控制会直接改变模拟模块的工作点。

整体流程与关键角色

从工程实施角度看,一次完整的混合信号协同仿真通常包含五个环节。第一,接口定义:明确哪些信号跨域、以什么物理量表示、逻辑阈值与驱动/负载模型是什么。第二,模型准备:模拟侧提供SPICE/Verilog-A模型,数字侧提供Verilog/VHDL或SystemC模型,必要时为接口建立行为级等效模型。第三,仿真器耦合:通过协同仿真接口(如Verilog-AMS、SystemVerilog-AMS、或工具间的PLI/VPI、TCP/IP socket)把两个求解器连接起来。第四,时间同步与事件调度:确定模拟时间步长、数字事件时刻、以及跨域事件的传递与回读机制。第五,结果判读:观察跨域波形、接口时序、量化误差、锁定时间、误码率等指标,判断系统是否满足设计目标。

混合信号协同仿真:跨域接口与时间同步关系 模拟连续域与数字离散域在同一时间轴上交换物理量与逻辑量 模拟连续域 SPICE / Verilog-A 求解器 模拟前端 / 传感器 连续电压、电流、偏置点 ADC / DAC 核心 采样、量化、建立时间 PLL / LDO / 偏置 锁定、上电、噪声 模拟输出驱动 驱动能力、负载效应 数字离散域 Verilog / VHDL / SystemC 求解器 数字控制 / 状态机 使能、复位、模式选择 数字信号处理 滤波、抽取、校准 时钟与复位逻辑 分频、同步、时序 数字输出接口 逻辑电平、驱动强度 跨域接口层 协同仿真耦合与时间同步 接口模型:Verilog-AMS / 行为级等效 物理量 ↔ 逻辑量 映射 时间同步:模拟步长 / 数字事件 事件调度与回读机制 求解器耦合:PLI / VPI / Socket 双向数据交换通道 数字控制回读 → 模拟工作点调整 协同仿真核心:接口行为一致 · 时间推进一致 · 验证结果可判 典型场景:ADC/DAC接口 · 时钟电源交互 · SerDes链路 · 传感器闭环 · 电源管理状态机

时间同步:协同仿真的技术核心

协同仿真最容易被低估的难点是时间同步。模拟求解器通常采用变步长积分,步长由电路动态决定,可能从皮秒到微秒不等;数字求解器则按事件驱动,只在信号跳变或时钟沿时推进。两者若各自独立推进,接口处就会出现“模拟已经走到10.3ns,数字还停在10ns”的错位。工程上常见的处理方式有三种:固定同步点(在预设时间点强制两侧对齐,适合时钟周期明确的接口)、事件驱动同步(数字事件触发模拟求解器推进到该时刻,适合异步接口)、松弛迭代(两侧交替推进并交换边界值,直到收敛,适合强耦合闭环)。选择哪种方式,取决于接口的耦合强度与实时性要求。

以ADC接口为例,若采样时钟为10MHz,周期100ns,数字侧在每个时钟沿读取ADC输出。采用固定同步点时,模拟求解器需要在每个100ns边界处暂停并输出当前量化值,数字侧读取后再继续。若模拟侧在两次同步点之间发生了比较器翻转,而数字侧没有及时看到,就会产生采样误差。因此,同步点的设置必须覆盖接口的关键事件,必要时在时钟沿附近加密同步点。

结果判读与工程判断

协同仿真的输出不是单一波形,而是跨域信号集合。判读时应重点关注四类指标:接口时序(建立/保持时间、采样时刻偏差)、量化与转换精度(INL/DNL、有效位数)、锁定与建立过程(PLL锁定时间、LDO上电斜率)、误码与失效(SerDes误码率、状态机死锁)。判断依据应来自设计规格,而非仿真波形“看起来正常”。例如,若ADC的DNL在某个码字处超过±1LSB,即使波形整体趋势正确,也应判定为不满足规格,需要回到接口模型或模拟前端查找原因。

协同仿真不是“把两个仿真器接起来”这么简单。接口模型精度、同步点密度、求解器收敛容差都会影响结果可信度。建议在正式仿真前,先用已知解析解的简单接口(如理想采样保持)验证耦合通道的正确性,再逐步替换为真实模型。

工程定位小结