oscillate.html 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <html>
  2. <head>
  3. <title>Oscillation errors</title>
  4. </head>
  5. <body bgcolor="FFFFFF">
  6. <h1>Oscillation errors</h1>
  7. <p>The propagation algorithm, which normally works silently without any
  8. problems, will become very visible
  9. when you create a circuit that oscillates.</p>
  10. <center><img src="../../../../en/img-guide/prop-oscillate-before.png" width="335" height="223"></center>
  11. <p>This circuit is currently in a stable condition. But if you change the
  12. input to 1, the circuit will effectively enter an infinite loop. After
  13. a while, Logisim will simply give up and show an "Oscillation apparent" message
  14. telling you that it believes that the circuit is oscillating.</p>
  15. <center><img src="../../../../en/img-guide/prop-oscillate-error.png" width="335" height="223"></center>
  16. <p>It will display the values it has at the time it gives up. These values
  17. will look wrong - in this screen shot, the AND gate is emitting 1
  18. although one of its inputs is 0, but it could be that the NOT gate
  19. has a 1 input and a 1 output.</p>
  20. <p>Logisim helpfully circles in red each location that seems to be
  21. involved in the oscillation. If an involved point lies within a
  22. subcircuit, Logisim will draw that subcircuit's outline in red.</p>
  23. <p>When Logisim detects oscillation, it shuts down all
  24. further simulation. You can re-enable simulation using the
  25. Simulate menu's Simulation Enabled option.</p>
  26. <p>Logisim detects oscillation using a fairly simple technique: If the
  27. circuit simulation seems to many iterations, then it will simply give up
  28. and report oscillation. (The points it identifies as being involved are
  29. those that were touched in the last 25% of the iterations.)
  30. Thus, it could erroneously report oscillation,
  31. particularly if you are working with an exceptionally large circuit; but
  32. it would be one that is larger than any I have built using Logisim.
  33. In any case, if you are confident that the reporting is in error, you
  34. can configure the number of iterations
  35. completed before oscillation occurs via the
  36. <a href="../opts/index.html">Project Options</a> window's
  37. <a href="../opts/simulate.html">Simulation tab</a>.</p>
  38. <p><strong>Next:</strong> <a href="shortcome.html">Shortcomings</a>.</p>
  39. </body>
  40. </html>