Misplaced Pages

ADMS

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
For the Australian research centre ADM+S, see ARC Centre of Excellence for Automated Decision-Making and Society.
This article needs to be updated. Please help update this article to reflect recent events or newly available information. (June 2024)

Automatic Device Model Synthesizer (ADMS) is public domain software used in the semiconductor industry to translate Verilog-A models into C-models which can be directly read by a number of SPICE simulators, including Spectre Circuit Simulator, Ngspice, and HSpice.

Overview

ADMS stands for Automatic Device Model Synthesizer. ADMS can be used to turn Verilog-A compact models into C code. ADMS interpreter parses a Verilog-AMS file to build a data tree. XML filters are applied on the tree to generate the output files.

ADMS aims to reduce the effort of circuit simulator developers to integrate device models - at the same time, it provides the option to compact model developers to use the vendor-neutral language Verilog-A for model definition, improving robustness and maintainability.

ADMS is used by the open source SPICE simulator NGSPICE to support a number of compact models. Following models are supported by NGSPICE using ADMS:

  • MOS EKV (LEVEL=44)
  • MOS PSP102 (LEVEL=45)
  • BJT Mextram 504 (LEVEL=6)
  • BJT Hicum0 (LEVEL=7)
  • BJT Hicum2 (LEVEL=8)

Limitations

This section does not cite any sources. Please help improve this section by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "ADMS" – news · newspapers · books · scholar · JSTOR (June 2024) (Learn how and when to remove this message)

ADMS only parses a subset of Verilog-A, and not all statements are supported by all XML filters. Specifically, current controlled voltage sources are not supported in most filters targeting SPICE simulators:

  • V(..) <+ I(..) // does not work with NGSPICE

Instead, this needs to be represented as a conductance expression (and not impedance).
i.e. I(..) <+ V(..)

  • I (..) probes do not work with NGSPICE

Some other language constructions need to be supported in the filter as well

  • for loop,
  • case statement.

Many language features are hard to support with ADMS filters

  • laplace_transform,
  • idt,
  • switching branches.

Important aspects of code generation are close to impossible with ADMS

  • dataflow analysis
  • code optimisation,

and

  • ADMS is extremely slow (which can be seen on slightly larger models).

See also

References

  1. Sergey Sukharev (24 March 2006). "New enhancements in ADMS and Spectre CMI XML scripts" (PDF). mos-ak.org. Retrieved 9 April 2023.
  2. Transistor model#Models for circuit design .28compact models.29
  3. "Tutorial". Archived from the original on 28 September 2013. Retrieved 9 January 2014.
  4. "Compact device modeling using Verilog-AMS and ADMS" (PDF). Archived from the original (PDF) on 4 March 2016. Retrieved 27 April 2015.
  5. "Ngspice circuit simulator - adms".
  6. "Ngspice circuit simulator - adms and ngspice HOWTO". ngspice.sourceforge.io. Retrieved 9 April 2023.

External links

Categories: