Oscillation

Consider the following circuit built in the real life:
Oscillator1.PNG
Here is NAND gate receives constant “1” and its own output as an inputs.
So when the output is 0 it will switch to 1 and immediately after this back to 0. So it will oscillate until one turn off the power. The frequency of the oscillation will depend on parameters of transistors and resistors the gate is built from.
In order to control the frequency of the oscillation one need to add some sort of electrical reactance http://en.wikipedia.org/wiki/Reactance_(electronics) to the circuit. This will allow changing the frequency of oscillation by altering impedance of the reactance. But again in the real life the generated frequency want be stable enough and hence usually a special clock circuit are used instead. Such clock gate is available for you in the Logic Circuit program:
Clock1.png
Now taking in consideration that there no easy way to control frequency of oscillation and the fact that the program has clock gate I can think of couple of ways to deal with self oscillating circuits like the one above. One way is to detect the oscillation and stop simulating because otherwise there is no way to control how many oscillations happened during one tick of the clock. The second way is to add some more realistic reactance elements. Apparently adding more realism want ends with just a reactance. Next you will need to match impedances, set some realistic delays on gates, and many other restrictions and complications that usually real hardware engineers facing. And this of course will shift the program from simple and free to professional and very expensive category.
That is why oscillations are not allowed in Logic Circuit and if you try to power up the above circuit the execution will be aborted, power will be turned off, and a message box “Oscillation” will pop up.

Last edited May 6, 2009 at 4:48 AM by EugeneLepekhin, version 3