Diode modeling in verilog a
Ignoring reverse bias breakdown methods, most simulators just use

$$I_D = I_s\left( e^{\frac{V_d}{\eta U_T}} - 1\right)$$


\$U_T = \frac{kT}{q}\$ is the thermal voltage, and depends on temperature
\$\eta\$ is the emission coefficient or the ideality factor
\$k\$ is Boltzmann's constant
\$q\$ is the elementary charge
\$I_s\$ is the saturation current and depends on temperature


Spice-based simulators use the following formula's for the saturation current:

$$I_s(T) = I_{s,T_0} \left( \frac{T}{T_0} \right) ^\frac{XTI}{\eta} e^{ \frac{q\cdot EG\cdot T_0 T}{\eta k (T - T_0)}}$$

\$T_0\$ is the temperature where the parameters were measured. \$XTI\$ is usually 2. \$EG\$ is called the activation energy, and is by default \$1.11\$ in most Spice simulators.