A decision block is incorporated into a circuit design to provide
hardening against single event upset and to store data. The decision
block includes a storage element that stores data as long as inputs to
the decision block remain constant. The decision block receives a first
data input and second data input from redundant logic blocks or from
logic blocks designed to provide complementary outputs. The decision
block provides an output that is at a same logic level as the first data
input if the two data inputs are at expected logic levels during normal
operating conditions (i.e., no disturbances). The decision block provides
an output that is at a same logic level as a previous output of the
decision block if the two data inputs are not at expected logic levels
during normal operating conditions.