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)把两个求解器连接起来。第四,时间同步与事件调度:确定模拟时间步长、数字事件时刻、以及跨域事件的传递与回读机制。第五,结果判读:观察跨域波形、接口时序、量化误差、锁定时间、误码率等指标,判断系统是否满足设计目标。
时间同步:协同仿真的技术核心
协同仿真最容易被低估的难点是时间同步。模拟求解器通常采用变步长积分,步长由电路动态决定,可能从皮秒到微秒不等;数字求解器则按事件驱动,只在信号跳变或时钟沿时推进。两者若各自独立推进,接口处就会出现“模拟已经走到10.3ns,数字还停在10ns”的错位。工程上常见的处理方式有三种:固定同步点(在预设时间点强制两侧对齐,适合时钟周期明确的接口)、事件驱动同步(数字事件触发模拟求解器推进到该时刻,适合异步接口)、松弛迭代(两侧交替推进并交换边界值,直到收敛,适合强耦合闭环)。选择哪种方式,取决于接口的耦合强度与实时性要求。
以ADC接口为例,若采样时钟为10MHz,周期100ns,数字侧在每个时钟沿读取ADC输出。采用固定同步点时,模拟求解器需要在每个100ns边界处暂停并输出当前量化值,数字侧读取后再继续。若模拟侧在两次同步点之间发生了比较器翻转,而数字侧没有及时看到,就会产生采样误差。因此,同步点的设置必须覆盖接口的关键事件,必要时在时钟沿附近加密同步点。
结果判读与工程判断
协同仿真的输出不是单一波形,而是跨域信号集合。判读时应重点关注四类指标:接口时序(建立/保持时间、采样时刻偏差)、量化与转换精度(INL/DNL、有效位数)、锁定与建立过程(PLL锁定时间、LDO上电斜率)、误码与失效(SerDes误码率、状态机死锁)。判断依据应来自设计规格,而非仿真波形“看起来正常”。例如,若ADC的DNL在某个码字处超过±1LSB,即使波形整体趋势正确,也应判定为不满足规格,需要回到接口模型或模拟前端查找原因。