电子说
按照仿真对象划分,电路仿真工具通常分为三大类:晶体管级的模拟电路仿真工具、门级和RTL级的数字电路仿真工具、模数混合电路仿真工具。
1.模拟电路仿真工具
模拟电路仿真的基本流程如图5-107所示。
模拟电路的方程为
式中,t为时间;Vt为节点电压;It为节点独立电流源;Qt为节点电荷;f(Vt)为节点非线性电流;E(Vt)为节点受控电流。采用Newton-Raphson迭代法可以求解该方程组,得到解的迭代形式(i=1,2,3,......,为迭代次数):
式中,Yt为f(Vt)+E(Vt)的雅克比矩阵,即
Yt通常是一个稀疏矩阵,可以采用LU分解算法降低其计算复杂度。在LU分解之前对Yt的行列进行预排列,可以减少计算量并提高迭代计算的稳定性。结构较为特殊的电路其Yt矩阵为稠密矩阵,用PCG、GMRES等算法可以获得更快的求解速度。电荷Qt对时间t的微分计算有Forward Euler法、Backward Euler法等单步算法与TRAP、GEAR等多步算法,其精度与稳定性受电路类型影响。
求解方程组的计算量随着电路节点的增加而急剧增加,因此商业模拟电路仿真工具中通常会加入多种加速技术以提高性能。
(1)并行计算:将电流与雅克比矩阵的计算分配到多个CPU上同时进行。
(2)旁路(Bypass)技术:当节点电压变化不大时无须重新计算非线性电流与雅克比矩阵,仅对电流做线性修正。
(3)节点合并(Node Folding)技术:采用线性修正的算法消除非线性器件的内部节点,减少方程数。
对于更大规模的电路,仿真工具还会引入一些降低精度但可以极大提高仿真速度与容量的技术,即快速仿真技术。这些技术主要有如下几种。
(1)查表模型(Table Model):采用查表插值的办法计算非线性器件的电流电荷。
(2)事件驱动(Event Driven):将电路划分为若干模块独立求解,仅在端口节点的电压变化时才重新计算相邻模块。
(3)同态技术(Isomorphism):结构相同、电压相近的多个模块共享雅克比矩阵,只求解一次方程组,不同模块之间微小的差异依靠线性插值修正。
此外,寄生效应会影响集成电路的性能甚至功能,而考虑了寄生效应的模拟电路仿真则称为模拟电路后仿真。在后仿真中,寄生器件导致矩阵规模急剧增大,耦合效应导致矩阵填充更为稠密,为此需要引入加速技术在精度影响很小的前提下提高仿真速度与容量,常用的技术如下。
(1)RC约减:通过物理或数学等效方法将寄生RC网络简化为规模较小的等效电路,其常用算法为TICER降价算法。
(2)电路划分:将电路分割为多个耦合较少的模块分别计算,结果回代到顶层矩阵得到电路的解。常用方法有超图划分、BBD和SuperLU等。
(3)多重速率:根据工作频率将电路划分成多个模块,信号频率较高的模块设置较小的时间步长以保证计算精度,信号频率较低的模块设置较大时间步长以提升计算速度。
2.数字电路仿真工具
数字电路仿真的基本流程如图5-108所示。
数字电路一般采用VHDL、Verilog HDL或者System Verilog等语言来描述。这些语言支持对逻辑信号的时序关系进行量化及检测。数字电路仿真采用事件驱动算法进行信号逻辑仿真,即逻辑单元的输入/输出信号为有限数量的逻辑态,其输出仅在输入信号状态发生变化的情况下重新计算。事件驱动算法框图如图5-109所示。
在数字电路仿真中可以附加SDF(Standard Delay Format)文件进行后仿真以得到更准确的时序结果。该文件通过提取电路版图获得元器件与连线精确延时而产生。数字电路仿真的速度远高于模拟电路仿真,但精度远低于模拟电路仿真。
3.模数混合电路仿真工具
模数混合电路仿真结合模拟与数字信号电路仿真工具,对不同模块分别采用晶体管级或门级/RTL级电路进行仿真。模数混合电路仿真的核心是识别模拟信号与数字信号相连的节点,并通过信号转换算法将其中连续的模拟信号与离散的数字信号互相转换。模数混合电路仿真的基本流程如图5-110所示。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !