Always, on every assignment, please write your name legibly as it appears
on your University ID and on the class list! All assignments will be due
on Fridays at the start of class, and unless there is what insurance companies
call "an act of God", the only exceptions to this rule will be by advance
arrangement.

A base 4 adder adds numbers using base 4 arithmetic. If each base 4 digit
is represented by a pair of bits, using the natural encoding where 00, 01, 10
and 11 represent 0, 1, 2 and 3. Write out the truth table for a base 4
adder. The inputs should be given in the order A, B, C, where A and B are
the two 2bit addends and C is the 1bit carry in. The outputs should be given
in the order C, S, where C is the 1bit carry out and S is the 2bit sum.

How many of each kind of logic gate would be required for a bruteforce
implementation of the truth table you arrived at above, using the mechanical
recipe for converting a truth table for a function to a system of logic
gates that was given in the notes for lecture 2.

Given a negativeedgetriggered masterslave type D flipflop and
auxiliary logic gates, you can construct a circuit that toggles between
one and zero with each clock pulse by connecting the Q
output to the D input. Consider the problem of building a circuit
that has a control input. When the input is high, the flipflop toggles
on each clock pulse. When the input is low, the circuit does not
toggle. There are two ways to build this circuit! One involves an
and gate on the clock input. The other involves an exclusiveor gate
in a modified version of the above feedback path.
a) Draw both circuits using a clear schematic notation.
b) Explain why the andgate version is dangerous to use if you have no
control over when the control input changes.

Consider the system described in the above problem as a finitestate machine.
Give state tables for this system in Moore and Mealy form!