1.忆阻器模型
1.1 非易失性忆阻器
采用的忆阻器模型是Zhang Y.T等提出的AIST忆阻器模型,spice语言描述如下:
.SUBCKT memristorZY Plus Minus
.params Ron=5k Roff=100k Rinit=50k D=3N uv=5E-15 p=10 Vt1=0.1V Vt2=-0.1V Ioff=2e-10 I0=1e-6
Gx 0 x value={(Ioff/(I(Emem)-I0)*uv*(u(V(plus,minus)-Vt1))*Ron/pow(D,2)+I(Emem)*uv*u(Vt2-V(plus,minus))*Ron/pow(D,2))*f(V(x),p)}
Cx x 0 1 IC={(Roff-Rinit)/(Roff-Ron)}
Raux x 0 1T
Emem plus aux value={-I(Emem)*V(x)*(Roff-Ron)}
Roff aux minus {Roff}
*Eflux flux 0 value={SDT(V(plus,minus))}
*Echarge charge 0 value={SDT(I(Emem))}
.func f(x,p)={1-pow((2*x-1),(2*p))}
*proposed window function
.ENDS memristorZY
相关忆阻器参数如下:
1.2 易失性忆阻器
使用的易失性忆阻器的spice描述如下:其中τ又称为遗忘速率(forgetting rate),ε是保留率(retention)
* PSpice Model Editor - Version 17.2.0
*$
.SUBCKT memristor 1 2 x y PARAMS:
+ alpha=1.0e-4 beta=0.2 gamma=1.0e-3 deltam=1 wmax=1 wmin=0
.param lambda=0.045 eta1=4 eta2=2 tau=2.5 sigma=0.0001 theta=0.00015
.func sign2(var)={(sgn(var)+1)/4.5}
.func trunc(var1,var2)={sign2(var1)*sign2(wmax-var2)+sign2(-var1)*sign2(var2-wmin)}
*.func mys(var3,var4,var5,var6)={(stp(var3-1))*(var4-var5)/var6+(stp(1-var3))*var4/tau}*
*.func mys(var3,var4,var5,var6)={(stp(var3-1))*(var4-var5)/var6+(stp(1-var3))*var4/tau}*
*.func sign3(var3)={sgn(var3)+1}*
*.func mys(var4,var5,var6,var7)={(sign3(var4-theta1))*(var5-var6)/var7+(0.5*sign3(theta1-var4))*2*var5/tau}*
Cx x 0 1 IC=0.03
Raux x 0 1T
Cy y 0 1 IC=0.01
Rauy y 0 1T
Cz z 0 1 IC=0.01
Rauz z 0 1T
*Gx 0 x value={(trunc(V(1,2),V(x)))*(lambda*(exp(eta1*V(1,2))-exp(-eta2*(V(1,2))^5)))-(mys(V(1,2),V(x),V(y),V(z)))}*
Gx 0 x value={(trunc(V(1,2),V(x)))*(lambda*(exp(eta1*V(1,2))-exp(-eta2*(V(1,2))^5))-(V(x)-V(y))/V(z))}
*+ (stp(0.25*wmax-V(1,2)))*(trunc(V(1,2),V(x)))*(lambda*(exp(eta1*V(1,2))-exp(-eta2*V(1,2)))-V(x)/tau)}*
Gy 0 y value={(stp(V(1,2)-0.9*wmax))*0.3*(trunc(V(1,2),V(y)))*sigma*(exp(eta1*V(1,2))-exp(-eta2*V(1,2)))+
+ (stp(0.5*wmax-V(1,2)))*(trunc(V(1,2),V(y)))*(sigma^3)*(exp(eta1*V(1,2))-exp(-eta2*V(1,2)))}
Gz 0 z value={theta*(exp(eta1*V(1,2))-exp(-eta2*V(1,2)))}
Gw 1 2 value={(1-V(x))*alpha*(1-exp(-beta*V(1,2)))+V(x)*gamma*sinh(deltam*V(1,2))}
.ENDS memristor
*$
忆阻器参数如下:
在LTSpice中仿真如下所示,12端口为输入输出端口:
2.神经元模块
神经元单元是整个电路的基础。其中使用到易失性忆阻器VM,T1和T2分别为M2SK530和M2SJ136,导通电压分别为2.1 V和-2.0 V。
对杨超师兄神经元模块进行仿真,设置VL=-1,VH=1.6,mos管采用2N7002(NMOS,vgs=1.6)和AOD4185(PMOS,vgs=-2.07),整个神经元的阈值电压为VL+Vgs=0.6V
仿真结果如下,可以看到只有当VM超过阈值电压VL+Vgs=0.6V时神经元电路才会有输出