Switching mechanism

Parameter (Default)
Dimension Material Ms0 P0 Alpha RA SHA

Spin transfer torque (STT)
In-plane MTJ 32nm x 96nm x 2.44nm CoFeB 1210 0.69 0.0062 5 -
Crystalline perpendicular MTJ 45nm x 45nm x 0.45nm FePt 1210 0.62 0.03 5 -
Interface perpendicular MTJ 65nm x 65nm x 1.48nm CoFeB 1210 0.69 0.006 5 -
Spin hall effect (SHE) Crystalline perpendicular MTJ 45nm x 45nm x 0.7nm FePdX 1145 0.73 0.02 5 -
Spin hall metal 60nm x 45nm x 5nm beta-W - - - - 0.4
Voltage controlled
magnetic anisotropy (VCMA)
Interface perpendicular MTJ 70nm x 70nm x 1.49nm CoFeB 950 0.54 0.025 130 -
By using our MTJ compact model, you agree to acknowledge the "UMN MTJ SPICE model, online:" in your publications or presentations.

Getting started

Step1.  Download MTJ spice model. 
Step2.  Extract .zip file. STT model contains three separate zip files for in-plane, crystalline perpendicular and interface perpendicular MTJ. 
Step3.  Open MTJ_write.sp file (MTJ write example)
Step4.  Set MTJ dimensions and material parameters: Ms0, P0, alpha, RA and initial temparature. 
		For SHE model, additional parameters, such as, SHM dimensions, and materials parameters. 
		You can also add the field-like torque as a fraction of damping like torque by changing the parameter  x_ad .
		For VCMA model, set VCMA parameter. 
		Additionally, you can add thermal fluctuation (see Step7) in SHE and VCMA model. 
                (Ms0: saturation magnetization, P0: polarization, both at zero Kelvin temperature.) 
Step5.  Select anisotropy type using parameter 'MA':
	          ex) In-plane magnetic anisotropy: MA='0' 
                         Perpendicular magnetic anisotropy: MA='1' 
Step6.  Select the initial state of free layer using parameter 'ini', and apply voltage with correct polarity. 
	       Magnetization of the fixed layer will be set automatically according to the 'ini' value. 
	           ex) Antiparallel to parallel switching : ini='1' with positive voltage 
	                  Parallel to antiparallel switching: ini='0' with negative voltage
Step7. Setting thermal fluctuation: A default thermal fluctuation SPICE file is already given. 
	   Use the MATLAB code, "NoiseGen_MATLAB.m" to create thermal fluctuation SPICE file for a different parameter.
	   By setting the parameter x_thermal = 0, in the file, the thermal fluctuation can be omitted. 
Step8.  Run SPICE simulation

Simulation examples

1. Input parameters for in-plane MTJ (antiparallel to parallel switching)
2. Input parameters for crystal perpendicular MTJ (antiparallel to parallel switching)
3. Input parameters for interface perpendicular MTJ (antiparallel to parallel switching)
4. STT-MRAM read and write waveforms using MTJ SPICE model