ngspice源码阅读笔记--仿真的步骤

Posted o_ra

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ngspice源码阅读笔记--仿真的步骤相关的知识,希望对你有一定的参考价值。

接上篇,运行control命令时候运行到run时候开始仿真

  1. 仿真运行模型的创建
    仿真采用的节点分析法,会创建一个电路的导纳矩阵,例如在INPpas2中识别出来是电阻会调用INP2R,通过IFC newInstance 调用CKTcrtElt 创建并将电阻挂在到ckt->DEVnameHash上,再通过IFC bindNode在电阻中记录两端的网络号,在后续setup时候会将该电阻在导纳矩阵中的指针保存到实例电阻中,每次迭代将当前具体值更新上去。
  2. 运行run命令初始化仿真环境
    调用到run时候会调用到dosim函数,最终通过ft_sim一个用户调用和仿真之间的中间层的doAnalyses接口调用到CKTdoJob,这这里初始化仿真的环境,并通过CKTsetup CKTtemp 根据温度 设备的参数实例化设备
  3. 一次瞬态分析仿真过程
    通过an_func接口调用到DCtran函数,在仿真开始前通过OUTpBeginPlot创建一个绘图,然后通过CKTop初始化电路的初始状态,如果没有设置初始状态会通过NIiter迭代来确定每个网络的初始状态,然后再通过NIiter迭代进行每一步仿真,每一步的仿真结果会通过CKTdump放到申请好的绘图中,仿真结束通过接口OUTendPlot调用OUTendPlot将此次记录的数据放到全局的ft_curckt中,后续调用write命令保存到文件中。

以上是关于ngspice源码阅读笔记--仿真的步骤的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu下安装运行电路仿真软件ngspice,打通KiCAD上手指南

wasm编译ngspice的xspice

Linux 0.11源码阅读笔记-总览

MATLAB实现网络相关的仿真(附上完整仿真源码)

源码阅读笔记 - 1 MSVC2015中的std::sort

Yii源码阅读笔记(三十五)