Asynchronous circuit Inputs and race conditions
For an asynchronous circuit to be of use it must have more than one external input (otherwise all the circuit has to respond to is a signal alternately changing its value from 0 to 1 to and so on). If two of these multiple inputs are meant to change simultaneously we know that for a real circuit this can never be guaranteed and one of them will always change slightly before the other. The effect of this uncertainty, in which signal (and not always the same one) arrives first, is that the circuit may not operate as expected and actually end up in the 'wrong’ state. This will make the circuit's operation unpredictable and hence render it useless.
This problem can be overcome by making sure that only one input to the circuit changes at a time and that there is sufficient time between changes in the inputs although providing a solution does inhibit the way that the circuit can be used; for the circuit to stabilise. This is called fundamental mode operation, which although providing a solution does inhibit the way that the circuit can be used.