AR# 4300: 4.2i Foundation Simulator - During functional simulation, "Possible System Oscillations; please wait or press Stop button" is reported
4.2i Foundation Simulator - During functional simulation, "Possible System Oscillations; please wait or press Stop button" is reported
Keywords: Foundation, 1.4, simulation, unit delay, oscillations
General Description: When I run a Foundation functional simulation, the simulation terminates with a window that reports:
"Possible System Oscillations: Please wait or press Stop button".
The oscillations may be created because of the design -- this can happen when not all possible transitions are defined, or when multiple valid transitions exist for a single state.
For example, a state machine might have multiple true conditions, each leading to a different action in one state; as a result, there is no clear path for the state.
The oscillations can also be falsely reported by the simulator -- this occurs when a piece of logic has combinatorial feedback. During functional simulation, all gates have zero delay; therefore, the combinatorial feedback can cause oscillations.
For example, suppose a two-input AND gate is feeding an inverter. The output of the inverter feeds back to one of the inputs of the AND gate. The other input of the AND gate is a data line.
If the circuit starts with feedback = 1 and Data = 1, the feedback would be 0. As the gate delay is zero, the circuit immediately begins oscillating until the data line goes to 0, forcing a constant feedback value of 1.
To resolve this problem, the mode of the simulator must be changed from "Functional" to "Unit". Unit Delay mode is used for functional verification of designs that have oscillating feedback and cannot be simulated in the functional mode.
To select the Unit Delay mode, select the "Unit" option from the last box in the Simulator toolbar. The Unit Delay simulation mode is based on unit propagation delays, which means that all components have the same delays from input to output. The value of this standard delay is factory-set to be equal to the current simulation precision. The simulation precision can be accessed through Options --> Preferences (in the "Simulation" tab).
For additional information, please review the Foundation on-line documentation. Also, be sure to verify your design through Timing Simulation, as accurate delays are simulated and oscillation should not be a problem.
This message can also appear when you attempt to perform timing simulation by opening the simulator via the "Functional Simulation" phase button and switch the simulation mode to "Timing". For timing simulation, be sure to open the simulator via the "Timing Simulation" phase button.