phase along the simulation time. However, a solution to keep the phase information between adjacent simulation time steps has not been found. In one common Verilog-A phase noise generation method [@VCOmodel], the step-specific perturbed frequency $f_{VCO}$+$\Delta f_{VCO}$ is integrated all the way from $t$ = 0 up to $t$, resulting in a discontinuous phase jump whenever $\Delta f_{VCO}$ is updated. The method used in the existing Verilog-A STO model [@MTJSTO_model3] instead implements a phase noise $\varphi_{STO}(t)$ that is discontinuously updated every couple of nanoseconds. In both methods, the comparatively large and discontinuous phase changes result in significant signal discontinuities for sinusoidal signals. This type of discontinuity is not a characteristic of MTJ STOs and, moreover, may cause convergence issues during simulations.

The solution for achieving an accurate and reliable MTJ STO model is to instead implement a $\varphi(t)$, which bears a continuous, linear phase change in between the fixed points of randomized phase fluctuation. The flow chart of the divergence-free implementation of $\varphi(t)$ is illustrated in Fig. 1. The first step is to create a vector $\Delta f [~]$, which gives the random frequency fluctuation as a function of the linewidth (assumed that the frequency noise is white, i.e. that 