A re-programmable finite state machine comprising a content-addressable
memory ("CAM") and a read/write memory output array ("OA"). In operation,
the CAM receives and periodically latches a status vector, and generates
a match vector as a function of the status vector and a set of stored
compare vectors. In response, the OA selects for output one of a set of a
control vector as a function of the match vector. A state vector portion
of the selected control vector is forwarded to the CAM as a portion of
the status vector. An output vector portion of the selected control
vector controls the operation of external components. Both the set of
stored compare vectors and the set of control vectors are fully
re-programmable.