Self-checking circuits detect (at least some of) their own faults. We
describe self-timed circuits, including combinational logic and sequen
tial machines, which either halt or generate illegal output if they in
clude any single stuck-at faults. The self-timed circuits employ dual
rail data encoding to implement ternary logic of 0, 1, and undefined s
tates; the fourth state is used to signal illegal output and is shown
to result only from certain circuit faults. The self-timed circuits al
so employ four-phase signaling according to a well-defined protocol of
communications between the circuit and its environment; failures due
to certain faults prevent the circuit from communicating properly, thu
s causing the circuit to halt. We show that any single stuck-at fault
falls in either the first or the second category, thus providing compl
ete fault coverage through self checking. No hardware needs to be adde
d to our circuits to achieve the complete self-checking property; furt
her, the circuit is guaranteed to never generate a legal but erroneous
output if it contains a fault. Minimal hardware is needed to detect t
hat a circuit has either halted or has generated an illegal output.