**Computer Organization and Structure**

Homework #1

Due: 2006/10/3

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, using “little *m*” notation?

c.
What are the functions in product of sums
forms, using “big *M*” notation?

d.
Use the Karnaugh
map method to simplify the functions in sum of products forms.

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

2.
Simplify the following functions using
the theorems of Boolean algebra. Write the particular law or theorem you are
using in each step. For each simplified function you derive, how many literals
does it have?

a.
_{}

b.
_{}

c.
_{}

d.
_{}

e.
_{}