开发自己的编程语言(五)—— CIL中间代码的生成
网上pspice的教程不少,可是数量多也真心让我头疼,总结了今天一下午弄的成果,希望后人不要再走弯路。
*****本实验原始HSPICE代码取自Yide Zhang(张以德),本实验代码为张先生代码修改所得,特此致谢张先生,转载请保留此行。*****
本实验使用PSPICE 10.5.0。
通过定义子电路memristor.subckt,并调用子电路进行忆阻器仿真。
最终实现了忆阻器的滞回效应。
首先需要定义忆阻器子电路memristor.subckt
*Single Memristor Property
.SUBCKT memristor plus minus
.PARAM
+Ron=1MEG Roff=50MEG Rinit=44MEG
+D=10N uv=1e-14 p=1
.FUNC f(x) {1-pwr(2*x-1,2*p)}
Emem plus aux value={-I(Emem)*V(x)*(Roff-Ron)}
Gx 0 x value={I(Emem)*uv*Ron/pwr(D,2)*f(V(x))}
Cx x 0 1 IC={(Roff-Rinit)/(Roff-Ron)}
Raux x 0 1T
Roff aux minus {Roff}
.ENDS memristor
以上语句的具体说明此处不再赘述,可以查看PSPICE官方的语法书。
需要注意的是hspice和pspice的幂函数不一样,pspice是pwr,hspice是pow;
另外pspice使用{}而hspice使用‘‘来限定表达式,特别注意的是param里的常量表达式也必须加{};
随后定义仿真文件sim.cir。
*Memristor simulation
.INC memristor.subckt
XMEM 2 0 memristor
Vtemp 1 2 0
Vapp 1 0 SIN(0 3.5 1 0 0 180)
.TRAN 0.1M 10 uic
.Probe
.END
Vtemp可以看做是一段导线。
最后点击Simulation->Run。
可以得到如下结果
这与忆阻器的滞回效应基本一致。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。