**Computer Organization and Structure**

Homework
#1

Due:
2007/10/16

1. Given
the following three functions:

a.
A 2-bit-wide *shifter* takes two input signals, _{} and _{}, and shifts them to two outputs, _{} and _{}, under the control of a shift signal. If this signal SHIFT
is false, then the inputs are connected straight through to the outputs. If
SHIFT is true, then _{} is routed to _{} and _{} should be set to
a _{}.

b.
A 1-bit *demultiplexer* takes an input signal IN and shifts it to one of two
outputs, _{} and _{}, under the control of a single SELECT signal. If SELECT is _{}, then IN is connected through to _{} and _{} is connected to a
_{}. If SELECT is _{}, then IN is connected through to _{} and _{} is connected to a
_{}.

c.
A 2-bit *multiplexer* takes two input signals, _{} and _{}, and shifts one of them to the single output OUT under the
control of a 1-bit select signal. If the SELECT signal is false, then _{} is passed to OUT.
If SELECT is true, then _{} is passed to OUT.

Complete
the following five items:

a.
Construct their truth tables.

b.
What are the functions in sum of
products forms.

c.
Draw logic schematics using AND, OR, and
INVERT gates.

2. Consider
a Boolean function that takes two input signals, A and B, and shifts one of
them to the single output OUT under the control of a 1-bit SELECT signal. If
the SELECT signal is true, then A is passed to OUT. If SELECT is false, then B is
**inverted** and passed to OUT.

a.
Write the truth table for this Boolean
function.

b.
Write the function in sum of products
form.

c.
Draw the logic schematic by using AND,
OR, and INVERT gates.