The System Designer's Guide to VHDL-AMS: Analog, Mixed-Signal, and Mixed-Technology Modeling

When modeling continuously valued systems, at times we find it necessary to introduce discontinuous behaviors. This happens particularly in mixed-signal systems where a process representing a digital part of the system changes the operating conditions of an analog part. We can indicate a discontinuity by using a break statement. Each time a break statement executes, it signals to the analog solver that a discontinuity has occurred at the current simulation time. The analog solver in a VHDL-AMS simulator can solve model equations for quantities that are piecewise continuous, provided we indicate the occurrence of discontinuities with break statements and, if necessary, provide new initial conditions at discontinuities. Usually, discontinuities occur when one or more digital signals change value. However, the converse is not true. There may be events on digital signals that do not cause discontinuities in analog quantities, particularly in mixed-signal systems that are predominantly digital. If the simulator were to assume that all digital events produced discontinuities, simulation would be very inefficient and slow. Hence, VHDL-AMS requires us to use break statements to explicitly indicate the occurrence of discontinuities. This is a relatively small price to pay for significant improvements in simulation efficiency.
There are two forms of break statement: a sequential break statement that we can include in a process, and a concurrent break statement. We examine the sequential form first. The syntax rule is
break_statement <span class="unicode">?</span> [ label : ] <b class="bold">break</b> [ break_element {,<span class="unicode"> </span>}][...