Verilog-A is an industry standard
modeling language
A modeling language is any artificial language that can be used to express data, information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in ...
for
analog circuit
Analogue electronics () are electronic systems with a continuously variable signal, in contrast to digital electronics where signals usually take only two levels. The term ''analogue'' describes the proportional relationship between a signal ...
s. It is the continuous-time subset of
Verilog-AMS
Verilog-AMS is a derivative of the Verilog hardware description language that includes Analog and Mixed-Signal extensions (AMS) in order to define the behavior of analog and mixed-signal systems. It extends the event-based simulator loops of Veril ...
. A few commercial applications may export
MEMS
MEMS (micro-electromechanical systems) is the technology of microscopic devices incorporating both electronic and moving parts. MEMS are made up of components between 1 and 100 micrometres in size (i.e., 0.001 to 0.1 mm), and MEMS devices ...
designs in Verilog-A format.
History
Verilog-A was created to standardize the
Spectre behavioral language in the face of competition from
VHDL
VHDL (Very High Speed Integrated Circuit Program, VHSIC Hardware Description Language) is a hardware description language that can model the behavior and structure of Digital electronics, digital systems at multiple levels of abstraction, ran ...
(an IEEE standard), which was absorbing analog capability from other languages (e.g. MAST). Open Verilog International (OVI, the body that originally standardized Verilog) agreed to support the standardization, provided that it was part of a plan to create Verilog-AMS — a single language covering both analog and digital design. Verilog-A was an all-analog subset of Verilog-AMS that was the project's first phase.
There was considerable delay between the first Verilog-A
language reference manual and the full
Verilog-AMS
Verilog-AMS is a derivative of the Verilog hardware description language that includes Analog and Mixed-Signal extensions (AMS) in order to define the behavior of analog and mixed-signal systems. It extends the event-based simulator loops of Veril ...
, and in that time Verilog moved to the IEEE, leaving Verilog-AMS behind at
Accellera
Accellera Systems Initiative (Accellera) is a standards organization that supports a mix of user and vendor standards and open interfaces development in the area of electronic design automation (EDA) and integrated circuit (IC) design and manufactu ...
.
Standard availability
Verilog-A standard does not exist stand-alone - it is part of the complete Verilog-AMS standard. Its LRM is available at the
Accellera
Accellera Systems Initiative (Accellera) is a standards organization that supports a mix of user and vendor standards and open interfaces development in the area of electronic design automation (EDA) and integrated circuit (IC) design and manufactu ...
website. Future work will likely leverage the new net-type capabilities in
SystemVerilog
SystemVerilog, standardized as IEEE 1800 by the Institute of Electrical and Electronics Engineers (IEEE), is a hardware description and hardware verification language commonly used to model, design, simulate, test and implement electronic sy ...
. Built-in types like "wreal" in Verilog-AMS will become user-defined types in
SystemVerilog
SystemVerilog, standardized as IEEE 1800 by the Institute of Electrical and Electronics Engineers (IEEE), is a hardware description and hardware verification language commonly used to model, design, simulate, test and implement electronic sy ...
more in line with the
VHDL
VHDL (Very High Speed Integrated Circuit Program, VHSIC Hardware Description Language) is a hardware description language that can model the behavior and structure of Digital electronics, digital systems at multiple levels of abstraction, ran ...
methodology.
Compatibility with the C programming language
A subset of Verilog-A can be translated automatically to the
C programming language
C (''pronounced'' '' – like the letter c'') is a general-purpose programming language. It was created in the 1970s by Dennis Ritchie and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of ...
using the
Automatic Device Model Synthesizer (ADMS). This feature is used for example to translate the
BSIM
BSIM (Berkeley Short-channel IGFET Model) refers to a family of MOSFET transistor models for integrated circuit design. It also refers to the BSIM group located in the Department of Electrical Engineering and Computer Sciences (EECS) at the Unive ...
Verilog-A transistor models, which are no longer released in C, for use in simulators like
ngspice
''Ngspice'' is an open-source mixed-level/ mixed-signal electronic circuit simulator. It is a successor of the latest stable release of Berkeley SPICE, version 3f.5, which was released in 1993. A small group of maintainers and the user community ...
.
Code example
This first example gives a first demonstration of modeling in Verilog-A:
`include "constants.vams"
`include "disciplines.vams"
module example(a,b,c,d,e,f);
parameter real R = 1m;
parameter real C = 1u;
parameter real L = 1u;
parameter integer gain = 2;
input a;
output b;
inout c,d,e,f;
electrical a,b,c,d,e,f;
analog begin
// Modelling lumped elements
//Resistor
V(c,d) <+ R*I(c,d);
//Inductor
// Multiple current or voltage assignments are accumulated
V(c,d) <+ L * ddt(I(c,d));
//Capacitor
I(e,f) <+ C * ddt(V(e,f));
// Simple amplifier
// Voltages are referenced to ground if no second node is given
V(b) <+ gain * V(a);
end
endmodule
This Verilog-AMS example implements an ideal diode, by defining the current through the branch (a,c) depending on voltage at branch terminals (a), (c), and the ambient temperature of the simulated circuit:
// Ideal Diode
module diode (a, c);
inout a, c;
electrical a, c;
parameter real IS = 1.0e-14; // User-configurable saturation current
real idio;
/*
* Calculate nonlinear current through diode depending on
* - thermal voltage $vt (at ambient temperature of simulated circuit) and
* - voltage between terminals
*/
analog begin
idio = IS * (limexp(V(a,c)/$vt) - 1);
I(a,c) <+ idio;
end
endmodule
For a simple DC voltage source, the branch voltage is set to the constant (DC) value:
// DC Source
module vsrc (p,n);
parameter real dc = 1.0;
inout p, n;
electrical p, n;
analog begin
// Assign constant DC voltage at each time step:
V(p,n) <+ dc;
end
endmodule
A sine voltage generator can use the built-in ''sin()'' function:
// A Sinusoidal Voltage Source
`include "constants.vams"
module vsin (p,n);
parameter real amplitude = 1.0;
parameter real freq = 50.0;
parameter real phase = 0.0;
inout p, n;
electrical p, n;
analog begin
V(p,n) <+ amplitude * sin(`M_TWO_PI * freq * $abstime + phase);
$bound_step(0.1/freq); // demand at least 10 points per cycle to avoid aliasing issues
end
endmodule
See also
*
Verilog-AMS
Verilog-AMS is a derivative of the Verilog hardware description language that includes Analog and Mixed-Signal extensions (AMS) in order to define the behavior of analog and mixed-signal systems. It extends the event-based simulator loops of Veril ...
*
Verilog
Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits, with the highest level of abstraction being at the re ...
References
External links
Language design objectives (circa 1994)Accellera Verilog Analog Mixed-Signal Groupverilogams.com— User's manual for Verilog-AMS and Verilog-A
Designer's Guide Community— Examples of models written in Verilog-A
The OpenVAF compiler
{{Programmable Logic
Hardware description languages