Linear mode and Geiger mode Avalanche Photodiodes are widely used to detect weak optical signals, with the latter able to detect a single photon at a time. Practical simulators for these devices should accurately produce relevant device characteristics and not be overly computationally intensive. The Simple Monte Carlo Simulator, written in C++, offers such a combination and can simulate avalanche photodiodes made with Silicon, Gallium Arsenide and Indium Gallium Phosphide, with the potential to include other semiconductor materials. The software is available on The University of Sheffield Research Data Catalogue and Repository at

Linear mode and Geiger mode Avalanche Photodiodes (APDs) are the detectors of choice for the detection of very weak optical signals. Since Geiger mode APDs are capable of detecting signals at the single photon level, they are also called Single Photon Avalanche Diodes (SPADs). APDs are used in numerous applications, e.g. high-speed optical fibre communication systems and quantum key distribution systems.

To obtain new designs for APDs and SPADs, an experimental, iterative process is usually undertaken, adding significant lead times and expense. This is largely because simulation models for APDs & SPADs generally fall into one of the two following categories: (i) highly accurate but too computationally demanding for device simulation purposes, and (ii) computationally undemanding but too simplistic to produce sufficiently accurate results. Full Band Monte Carlo (FBMC) models [

Simple Monte Carlo (SMC) modelling [

The Simple Monte Carlo Simulator was developed to simulate silicon SPADs in [

The aim of this software is to provide an accessible tool for the Simple Monte Carlo modelling of APDs and SPADs made from Silicon, Gallium Arsenide and Indium Gallium Phosphide. The software can be used for other materials in the future should new parameter sets become available.

The Simple Monte Carlo Simulator has been written in C++ and uses five classes. Three modes exist within the Simulator: the diode properties mode, the drift velocity mode, and the impact ionization coefficient mode.

The three modes within the Simple Monte Carlo Simulator are implemented as separate functions. The class dependencies of each function are illustrated schematically in Figure

Schematic of how the different modes and classes interact in the Simple Monte Carlo Simulator.

The SMC Class contains the SMC parameter sets for all the materials that have been implemented. The Tools Class calculates and stores the interaction probabilities and scattering rates needed for the simulations. The Device Class uses the supplied device doping profile to calculate the electric field profile of the device for any given voltage. The Carrier Class stores all the tracked variables for each electron and hole in the simulations. It is also used to update the carriers’ momentum on a random direction scatter. The Histogram Class calculates the mean and standard deviation of a data set and uses these to perform a 1D Gaussian fitting to the data set. The histogram class has a separate GitHub repository,

The diode properties mode of the Simple Monte Carlo Simulator is described in detail here. Its process flow is shown schematically in Figure _{th}_{th}

Flow Chat of Simple Monte Carlo Process.

After the probability arrays are calculated, the electric field profile of the APD/SPAD design is calculated using a 1D Poisson field solver. Simulation for a given set of conditions consists of a large number of trials. To begin each trial, a carrier (electron or hole) is injected into the device’s active region, i.e. where electric field exists. The choice of either an electron or a hole is determined by the user’s specification of pure electron or pure hole injection.

For each carrier, the total scattering rate combined with a random number determines the carrier’s drift time and hence the drift distance. Ramo’s theorem [

The cycle of determining the new drift time, drift distance and scattering mechanism continues until the carrier has exited the device’s active region. Any additional electrons and holes produced by impact ionization are treated in the same way as the injected carrier. For linear mode APD simulations, the trial ends when all carriers have exited the active region. For Geiger mode APD simulations, the trial is terminated when the current reaches 0.1 mA or at the end of a user specified time limit. At the end of each trial, the avalanche current, whether avalanche breakdown was reached, and the time to breakdown (if applicable) is recorded.

As the simulator progresses from one trial to the other, important statistics are being collected. These include avalanche gain, probability of avalanche breakdown, and the time to breakdown. At the end of the simulation, the simulator outputs these statistics. In addition, the simulator calculates many commonly used device characteristics from the statistics.

For linear mode APDs, the relevant outputs are: the avalanche gain of each trial, mean avalanche gain, mean avalanche current, as well as excess noise factor. For Geiger mode APDs the relevant outputs are, the breakdown probability, a histogram of time to breakdown, as well as the mean time to breakdown.

Having presented the diode properties mode of the Simulator above, the other two modes (the drift velocity mode and the impact ionization coefficient mode) for producing material characteristics are described here. Both material characteristic modes use only two of the five classes from the diode properties mode. Their outputs, the drift velocity and impact ionization coefficients, form part of the validation process for the SMC parameter sets. Hence, these modes are useful for future efforts in obtaining new parameter sets.

In the drift velocity mode, the Simulator calculates the drift velocities for electrons and holes. This simulation involves tracking a single electron travelling in a constant electric field and determines the distance of travel for each drift event. A mean velocity value is obtained from a million drift events. The same simulation is repeated for holes.

In the impact ionization coefficient mode, the distances between successive impact ionization events for carriers travelling in a constant electric field are recorded. For both electrons and holes the mean distance travelled between impact ionization events is derived using 20,000 events. The electron and hole ionization coefficients are given by the inverse of the mean distance between impact ionization events.

The results generated from the code have been compared to experimental results for Silicon [

Windows

C++ >= C++98

Zhou, Xinxin: Developed a previous version of the software. Was at Department of Electronic and Electrical Engineering, University of Sheffield, Sheffield, S3 7HQ, UK. Now at Oclaro, Caswell, Towchester, Northamptonshire, NN12 8EQ, UK.

Tan, Chee Hing: Developed an earlier version of the software. Department of Electronic and Electrical Engineering, University of Sheffield, Sheffield, S3 7HQ, UK.

English

This software will be of use to electronic engineers in the semiconductor device field looking to improve devices based on Si, InGaP or GaAs. The software also offers a good platform for the development of new parameter sets for additional semiconductor materials where modes of the software can generate data which can be compared against the material parameters, drift velocity, and impact ionization coefficients.

We hope to develop additional parameter sets in the future for other semiconductor materials used in APDs and SPADs.

Bug support is available through the GitHub issues page (

The authors have no competing interests to declare.

_{0.48}Ga

_{0.52}P p

^{+}in

^{+}diodes

_{0.52}Al

_{0.48}As avalanche photodiodes using a simple Monte Carlo model