Mario Krattenmacher1,2, Markus Müller1,2, Pascal Kuthe1,2, and Michael Schröter1,2
DMT-core: A Python Toolkit for Semiconductor Device Engineers
Journal of Open Source Software, 7(75), 4298
DOI: 10.21105/joss.04298
1 CEDIC, TU Dresden, Dresden (D)2 SemiMod GmbH, Dresden (D)
Abstract: Semiconductor device engineers are faced by a number of non-trivial tasks that can be solved efficiently using software. These tasks include, amongst others, data analysis, visualization and processing, as well as interfacing various circuit and Technology-Computer-Aided-Design (TCAD) simulators. In practice, custom ‘home-made’ scripts of varying quality are employed to solve these tasks. It is often found that fundamental software engineering concepts, such as Test-Driven-Development (Shull et al., 2010), or the use of state-of-the-art version control tools (e.g. Git) and practices (e.g. continuous integration, CI), are not utilized by these scripts. The issues inflicted by this practice include:
- The analysis/visualization/generation of data becomes difficult to reproduce.
- Device engineers work far from their maximum work-efficiency, as they are hindered, instead of empowered, by the software infrastructure.
- Knowledge built-up, possibly over decades, may be lost when developers leave a company or institution.
The Device Modeling Toolkit (DMT) presented here aims to solve these issues. DMT provides a Python library that offers:
- classes and methods relevant to commonly used device engineering tasks
- several abstract base classes for implementing new interfaces to various types of simulators
- concrete implementations of the abstract base classes for open-source simulators such as Ngspice (Vogt, 2022), Xyce (Keiter et al., 2014) or Hdev (Müller et al., 2022).
DMT-based simulations allow data generation, workflow implementation and visualization to be implemented in a single file, enabling more efficient cooperation and more reproducible research (Stodden et al., 2016). Basic principles in software engineering, such as unit testing,v ersion control, and documentation, are adhered to so that others can use and contribute to the software.
FIG: DMT interfacing a circuit simulator and corresponding data flow.
Related Publications: DMT is used internally by CEDIC staff in research and by SemiMod for commercial purposes. It has also been used by cooperating institutions and companies. The project has been used inthe following contexts:
- for circuit simulations (Weimer et al., 2022),
- for TCAD simulations and plotting (Markus Muller et al., 2021),
- for circuit and TCAD simulations (M. Muller et al., 2022),
- for model parameter extraction (Müller & Schröter, 2019) and
- for model parameter extraction and TCAD simulation (Phillips et al., 2022).
In addition, DMT has been cited in (Grabinski, 2019; Kuthe et al., 2020; Müller et al., 2019,
2021).
Related Projects: DMT directly uses the VerilogAE (Kuthe et al., 2020) for accessing all information in Verilog-AMS files. The TCAD simulator Hdev (Müller et al., 2022) uses the class DutHdev as its Python interface.
Acknowledgements: This project would not have been possible without our colleagues Dipl.-Ing. Christoph Weimer and Dr.-Ing. Yves Zimmermann. We particularly acknowledge Wladek Grabinski for his efforts to promote the use of open source software in the semiconductor community.
REF:
Shull, F., Melnik, G., Turhan, B., Layman, L., Diep, M., & Erdogmus, H. (2010). What do
we know about test-driven development? IEEE Softw., 27(6), 16–19. https://doi.org/10.1109/MS.2010.152
Vogt, H. (2022). Ngspice, the open source Spice circuit simulator - Intro. http://ngspice. sourceforge.net/
Keiter, E. R., Mei, T., Russo, T. V., Schiek, R. L., Sholander, P. E., Thornquist, H. K., Verley, J. C., & Baur, D. G. (2014). Xyce Parallel Electronic Simulator Reference Guide , Version 6 . 2 (September). Sandia National Laboratories (SNL). https://doi.org/10.2172/1826862
Müller, M., Mothes, S., Claus, M., & Schröter, M. (2022). Hdev: A 1D and 2D Hydrodynamic/Drift-Diffusion solver for SiGe and III-V HBTs. J. Open Source Software
Stodden, V., McNutt, M., Bailey, D. H., Deelman, E., Gil, Y., Hanson, B., Heroux, M. A.,
Ioannidis, J. P. A., & Taufer, M. (2016). Enhancing reproducibility for computational
methods. Science, 354(6317), 1240–1241. https://doi.org/10.1126/science.aah6168
Grabinski, W. (2019). FOSS TCAD/EDA tools for compact modeling. Arbeitskreis Bipolar.
https://www.iee.et.tu-dresden.de/iee/eb/forsch/AK-Bipo/2019/7-MOS-AK-Association_wgr_BipAK19.pdf