/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % IPCS Electro-Thermal Model % 2/16/2020 % Nicolas Wainstein, Shahar Kvatinsky, and Eilam Yalon % Faculty of Electrical Engineering % Technion - Israel Institute of Technology %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ // VerilogA for PCM, RC_test, veriloga `include "constants.vams" `include "disciplines.vams" module IPCS_model(DC_p, DC_n, RF_p, RF_n, T_GeTe, T_heater); inout DC_p, DC_n, RF_p, RF_n; inout T_GeTe, T_heater; electrical DC_n, DC_p, RF_p, RF_n; electrical T_in, T_heater, T_TB, T_GeTe, T_capping, T_SiOx, T_air, T_ref,gnd; /* Physical Dimensions of IPCS */ parameter real WH = 2u; // Width of heater parameter real LH = 20u; // Length of the heater parameter real WRF = 20u; // Width of RF contact parameter real LRF = 2u; // // Length of the RF gap parameter real t_W = 100n; // Thickness of the heater parameter real t_GeTe = 120n; // Thickness of GeTe parameter real t_TB = 50n; // Thickness of SiNx (dielectric 2) parameter real t_capping = 30n; // Thickness of capping/passivation layer parameter real t_SiOx = 100n; // Thickness of SiOx (dielectric 1) parameter real t_Si = 500u; // Thickness of Si substrate parameter real t_contacts=150n; //Thickness of the contacts /* Thermal Properties */ real k_W = 20.3; //Thermal conductivity of Tungsten real cv_W = 2.58M; // Heat capacity of Tungsten real k_SiOx = ln(293**0.52)-1.5737; // Thermal conductivity of SiOx (dielectric 2) real cv_SiOx = 2.27M; // Heat capacity of SiOx(dielectric 2) real k_Si = 4e4/293; // Thermal conductivity of Si real cv_Si = 1.657M; // Heat capacity of Si real k_SiNx = 2.2; // 3// Thermal conductivity of SiNx (dielectric 2) real cv_SiNx = 2.28M; //2.28 Heat capacity of SiNx (dielectric 2) real k_GeTe = 2.2; // 2.2 // Thermal conductivity of GeTe real cv_GeTe = 3.07M; // 3.07// Heat capacity of GeTe real TCR = 0.0013; // Thermal coeficient of resistance of Tungsten real TBR = 1.3; // Thermal boundary resistance of SiOx-W interface /* Electrical Parameters */ parameter real Rsh_heater0 = 3.6; // Heater resistance at RT parameter real Rc_heater= 13e-6; // Contact resistance of the heater parameter real Rc_GeTe=10e-6; // Contact resistance of GeTe parameter real Rsh=33; // Crystalline phase sheet resistance parameter real Roff=100e3; // Amorphous phase resistance parameter real Ta=998; // Amorphization temperature parameter real Tc=773; // Crystallization temperature (~400 C) /* Auxiliary parameters */ parameter real init_state=0; // Sets the initial state of the IPCS (0= amporphous / 1=crystalline) parameter real dt=1e-9; // step dt // Local variables real tcryst=1e-6; //crystalization time real first_iteration=0; real R; // Dynamic resistance real q_c_off; real Cx=0; real t=0; real tamorp=0; // Auxiliary vairable to calculate quenching time real amorp=0; // Amorph flag real cryst=0; // Cryst flag real Ron=2*Rc_GeTe/WRF+Rsh*LRF/WRF; // RON calculation; real R_heater=2*Rc_heater/WH + Rsh_heater0*LH/WH; // R heater calculation real C_RF=8.82e-12*3.9*WRF*t_contacts/LRF; // Parallel plate capacitance between contacts real C_H_coupling= 8.82e-12*7*WRF*(0.77+1.06*(LRF/t_TB).^0.25+1.06*(tW/t_TB)^0.5); // Coupling capacitance between heater and contacts real CF=6e-15; // Fringe capacitance real C_OFF=C_RF+C_H_coupling/2+CF; // Total capacitance analog begin if (first_iteration==0) begin Cx=init_state; end // Crystallization if ((V(T_GeTe)> Tc) && (V(T_GeTe)=tcryst)) begin Cx=1; t=0; end // Amorphization if (V(T_GeTe)>=Ta) begin amorp=1; t=0; tamorp=0; end if ((amorp==1) && (V(T_GeTe)