使用网络型网络实现模拟电路仿真器

时间:2017-03-31 11:26:03

标签: system-verilog simulator circuit

对于SV中的电网仿真,我希望使用用于电容器和电感器的配套模型来实现梯形积分方法。 [http://circsimproj.blogspot.nl/2009/07/companion-models.html]

一些仿真工具供应商提供SV封装,可以解决电阻网络的电压问题。请参阅Simetkosky的混合信号验证:模型开发以获取已发布的解析功能。

为了实现梯形方法,我需要同步改变等效电阻和电流:

  • 在模拟开始时,选择一个小的时间步长,每个动态元素都被一个电阻替换。
  • 封装解析功能计算新的节点电压。
  • 每个动态元素根据公差标准计算最大时间步长。
  • 下一步计算为所请求时间步长的最小值,并发出(延迟)更新信号。
  • 一旦更新信号触发,每个动态元素计算一个新的等效电阻和电流..

该软件包使用具有以下结构的网络类型:

package SVA_pkg;
typedef struct {
    real V;
    real I;
    real R;
}  SVAstruct;
function automatic SVAstruct res_SVA (input SVAstruct driver[]);
   // resolution function
endfunction
nettype SVAstruct SVAnet with res_SVA;
endpackage

// in module
inout SVAnet P;
assign P = '{1 , 0 , 0}; // defines a voltage source

为了找到最小公共时间步长,延迟然后执行等效电阻和电流的更新,我必须传递信息。

归结为与具有以下要求的SVAnet变量相关联:

  • 可以独立于{V,I,R}
  • 进行设置
  • {V,I,R}的分辨率函数不应对它们作出反应
  • 不需要他们的解析功能

显然,直接扩展SVAstruct不会满足前两个要求。

想法?

  • 全局变量是可能的,但我希望看到一种更自动的方式在连接的SVAnet之间进行通信。
  • 创建一个类或使用解析器工作的子结构让我想到但是超出了我的编程技能。

0 个答案:

没有答案