Digital modeling has three huge advantages that enable designs to be simulated orders of magnitude faster than with analog modeling. These advantages also help with modeling, synthesis, and everything else that makes automation possible in the digital world.
- Discrete voltage
- Discrete time
- lack of feedback
The last one is very important, because it enables discrete time. If you assume that everything takes time to affect something else, then you do not have to solve simultaneous equations, which are the major inhibitor to simulation performance for analog.
What happens if you can remove this from analog, as well? Of course, every analog designer is hugely offended by that statement and will quickly point out that no analog component can be modeled without considering feedback. But if we move up in abstraction and consider the end-to-end operation of many analog components, feedback can be essentially eliminated. Most systems employ local feedback but not global feedback.
This is the premise behind real number modeling (RNM), sometimes called real value modeling. Voltages or currents are represented as a time-varying sequence of real numbers. The equations and the slow solvers needed for them are gone. Instead, functions are defined such that the outputs are directly computed from the inputs (usually voltages) and state information retained in the block, ignoring currents, feedback, and impedance effects in general.
If this can be held true, then almost all the advantages of digital simulation can be attained. Note an important exception — floating point arithmetic is a little more expensive than using integers, which in digital can often hold 32 or 64 bits of logical information.
EDA vendors have been putting a lot of time and effort into this modeling style. RNM extensions are now available in VHDL and Verilog-AMS, and support is going into SystemVerilog. However, issues remain, because many functions that you may wish to use are not built in yet. Some examples include integration, differentiation, slewing, and filtering. This means that companies wanting to use RNM should probably build up their own library of functions for designers to use.
Consider the integration function. The output can be computed based on the previous values and the current input using a trapezoidal integration formula:
Out = Out(t-1) + (T-T(t-1) ) (In + In(t-1) )/2
This will work fine so long as the time interval is kept small. It has a square relationship between the time interval and the accuracy. If you cut the the time period in half, the accuracy will increase by a factor of four.
Bringing analog functionality into the discrete world brings many advantages, as well. For example, analog functions can be used in assertions and full system verification using constrained random test pattern generation. They can be made self-checking. It all seems to be so good, except…
I would be interested to hear from people who have attempted to use RNM and their experiences with it. The EDA vendors seem to have a lot to say about it, but I do not hear much buzz from the industry. Is RNM useful as a behavioral modeling methodology, or is it just giving up too much of what makes analog so special?