One of the most important things I’ve learned during my 20+ years working with simulation tools is simply this: my simulation results will only be as good as my models. While not a revolutionary concept, it’s none the less a fact of system simulation that anyone using a simulator in their design process knows. But there is an equally important companion principle: my model will only give me the information I tell it to. And the information I can tell my model to teach me depends largely on the modeling language I use.
VHDL-AMS is an IEEE standard language for modeling analog and mixed-signal behavior. I’ve written about VHDL-AMS capabilities on several occasions. But one feature I haven’t mentioned much is the VHDL-AMS “quantity”, which is an analog value calculated during simulation. There are a few flavors of quantities, two of the most popular and powerful being “branch” quantities and “free” quantities.
Branch quantities let me define driving and driven values in a model. A perfect example is voltage and current in an electrical model. In this case, voltage is the driving value and current the driven value. Another way to view branch quantities is as across and through values. Across values, as you might expect, are the driving values applied across a model, like voltage across a resistor. Through values represent driven values flowing through a model, like current through a resistor. “Across” and “through” are standard VHDL-AMS terminology. Because VHDL-AMS is a multi-physics language, it supports analogous across and through values for other technologies.
Unlike branch quantities, free quantities are not directly associated with the across and through values of a model — hence the “free” distinction. And they are generally “free” with regard to CPU loading. Free quantities are both useful and powerful for what they can teach you about your model and system. Need to know the instantaneous power in a component? Simply create a free quantity in the model to make the calculation. Interested in knowing how stressed a component is during a simulation? Add a free quantity to tell you. Need a model that measures several analog characteristics of your system? Free quantities will be key in making the measurement calculations.
Like most other objects in VHDL-AMS, quantities are categorized according to assigned types (resistance, frequency, pressure, etc.). Types are particularly important when simulation results are plotted in a waveform viewer since the type determines what units are used to display the quantity’s value.
Free quantities add unlimited flexibility to your modeling toolbox, and are the real analog workhorses in VHDL-AMS modeling. Use them to help your models teach you about your systems.