Jump to content

ADMS

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Citation bot (talk | contribs) at 09:17, 24 August 2022 (Alter: title. | Use this bot. Report bugs. | Suggested by BrownHairedGirl | #UCB_webform 3012/3726). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Automatic Device Model Synthesizer (ADMS) is a 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.[1] ADMS can be used to turn Verilog-A compact models[2] into C code. ADMS interpreter parses a Verilog-AMS file to build a data tree.[3] 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.[4]

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

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

Limitations

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).

References

  1. ^ http://www.mos-ak.org/boeblingen/slides/P3_Sukharev_MOS-AK_Boeblingen.pdf [bare URL PDF]
  2. ^ Transistor model#Models for circuit design .28compact models.29
  3. ^ "Tutorial". Archived from the original on 2013-09-28. Retrieved 2014-01-09.
  4. ^ "Archived copy" (PDF). Archived from the original (PDF) on 2016-03-04. Retrieved 2015-04-27.{{cite web}}: CS1 maint: archived copy as title (link)
  5. ^ "Ngspice circuit simulator - adms".
  6. ^ "Ngspice circuit simulator - adms and ngspice HOWTO".

See also