Gate delays

As an example of the level of sophistication of Logisim's algorithm, consider the following circuit.

This ``obviously'' always outputs 0. But NOT gates don't react instantaneously to their inputs in reality, and neither do they in Logisim. As a result, when this circuit's input changes from 0 to 1, the AND gate will briefly see two 1 inputs, and it will emit a 1 briefly. You won't see it on the screen. But the effect is observable when we use the AND gate's output as an input into the clock of a D flip-flop.
Poking the 0 input to become 1 leads to an instantaneous 1 going into the D flip-flop, and thus the flip-flop's value will toggle every time the circuit input goes from 0 to 1.

Every component has a delay associated with it. More sophisticated components built into Logisim tend to have larger delays, but these delays are somewhat arbitrary and may not reflect reality.

From a technical point of view, it is relatively easy to deal with this level of sophistication in a single circuit. Dealing with gate delays across subcircuits, though, is quite a bit more complex; but Logisim deals with this correctly, though few others do (including Logisim prior to version 2.0).

Note that I'm stopping short of saying that Logisim always addresses gate delays well. But at least it tries.

Next: Oscillation errors.