乐趣区

关于仿真: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 命令保留到文件中。
退出移动版