General and Junction Primitives for Verilog-A Compact Models 1.0.0

By Colin McAndrew1, Geoffrey Coram2

1. Freescale Semiconductor 2. Analog Devices, Inc.

Useful macros and analog function building blocks for compact models.

Listed in Compact Models | publication by group NEEDS: New Era Electronic Devices and Systems

Additional materials available

Version 1.0.0 - published on 30 Apr 2015 doi:10.4231/D3G15TC2J - cite this

Licensed under NEEDS Modified CMC License according to these terms


Many aspects of compact models for different semiconductor devices are the same: pn-junctions form a part of most components, either as intrinsic to the device or as parasitics; declaration of parameters, limiting and clamping of parameters, and interaction with simulator variables like gmin and scale is required in Verilog-A. To help converge to a common coding style, avoid duplication of effort if every model developer has to redevelop and code the same aspects of a model, and help adoption of known best practices, two collections of Verilog-A primitives (macros and analog functions) are provided. 

The first of these,, comprises macros for: clamping, smooth limiting, parameter specification, simulator variable handling, controlled limited exponential evaluation, numerically stable modeling of resistors including node collapse if the resistance is zero, and other miscellaneous items. The second is, which contains analog functions for pn-junction charge (including area and perimeter components), junction breakdown, junction current (including area and perimeter components), junction built-in potential mapping as a function of temperature (that is physically correct and does not become negative for high temperatures), and a macro for junction shot noise that is more accurate than 2qI for biases around zero. 

This document details the contents of both of these collections of Verilog-A primitives. The names of the files are, where VS, and R are the version, subversion, and release numbers. Explicit numbering is included as part of the file name so that any updates will not affect the behavior of a model that uses any of the provided primitives.

Model Release Components ( Show bundle contents ) Bundle

Cite this work

Researchers should cite this work as follows:



Initial version, derived from macros used in R3 converted to analog functions and cleaned up.

NEEDS: New Era Electronic Devices and Systems

NEEDS: New Era Electronic Devices and Systems group image