CS/COE 447: Spring 2010 Homework 3

YOUR NAME: SOLUTION

It's fine to discuss the questions in general with other people, but
your solutions should be your own individual work.

Please show your work.

1. Represent the following decimal numbers in the IEEE 754 single-precision
format. Please show your work. Give your answer in binary AND in hex.

   -4.75  = 1 10000001 00110000000000000000000 = 0xC0980000           [3 pts]

   43.375 = 0 10000100 01011011000000000000000 = 0x422D8000           [3 pts]

2. Convert the following unsigned binary numbers into decimal numbers

   110010110.11011 = 256 + 128 + 16 + 4 + 2 + 1/2 + 1/4 + 1/16 + 1/32
                   = 406.84375                                        [3 pts]

         101.10001 = 4 + 1 + 1/2 + 1/32 = 5.53125                     [3 pts]

3. Construct a truth table for a four-input odd-parity
function. (see page C-65-66 for a description of parity).

Here is some more information about parity.

Parity is used when characters are transmitted over communication
lines.  The sender and the receiver take different actions. Suppose
we are transmitting an ascii 'E' over a serial communication port, and
that we are using odd parity.

ascii E = _1000101.

The sender will count the number of 1s and add a parity bit such that
the total number of 1s in the 8 bits is odd. So, for 'E', the parity
bit would be 0: 01000101 --- odd total number of 1s.

The receiver, on the other hand, will read the received character, and
check whether the received 8-bit value has an odd number of 1s.  

This is a simple error detection scheme.  If the values of an odd
number of bits were changed during transmission (due to error), then
the parity of the received value will be even, and the receiver will
know that an error occurred.  (If an even number of bits were changed,
however, the parity would still be odd, and the error would not be
detected.)

Write a truth table for the sender and write one for the receiver.

Receiver's truth table: [8 pts]

We assume that the most significant bit IS a parity bit, and check if the
number of 1's in the 4-bit value is odd, For odd-parity, the output is 1 if
there is an odd number of 1s:

0000 0
0001 1
0010 1
0011 0
0100 1
0101 0
0110 0
0111 1
1000 1
1001 0
1010 0
1011 1
1100 0
1101 1
1110 1
1111 0

Sender's truth table: [8 pts]

We assume we are sending a 4-bit character, and want to add a 5th bit, the
parity bit to the value, such that the number of 1s in the 5-bit value is odd:

0000 1
0001 0
0010 0
0011 1
0100 0
0101 1
0110 1
0111 0
1000 0
1001 1
1010 1
1011 0
1100 1
1101 0
1110 0
1111 1


4. Prove a multiplexor is universal by showing how to build the AND,
OR and NOT gates using a multiplexor.  (Hint: input and control lines
can be connected to power or ground where power = 1 and ground = 0.)

Specifically, build AND, OR and NOT gates using MUX'es with two
control lines and 4 inputs.

Consider the following figure as a MUX with two control lines and 4 inputs:

       | |
       | |
       | |
     ------
---> | 00 | 
     |    |
---> | 01 | 
     |    |--->
---> | 10 | 
     |    |
---> | 11 | 
     ------


** NOT A: [6 pts]

         0 A
         | |
         | |
         | |
       ------
1 ---> | 00 | 
       |    |
0 ---> | 01 |
       |    |--->
0 ---> | 10 |
       |    |
0 ---> | 11 |
       ------

If A is 1, line 1 (01) will be selected. Line 1 is 0, so the output is 0.

If A is 0, line 0 (00) will be selected. Line 0 is 1, so the output is 1.


** A OR B: [6 pts]

         B A
         | |
         | |
         | |
       ------
0 ---> | 00 |
       |    |
1 ---> | 01 |
       |    |--->
1 ---> | 10 |
       |    |
1 ---> | 11 |
       ------

If A and B are both 0, then line 00 is selected, and the ouput is 0.
Otherwise, another line is selected, and the output is 1.

** A AND B: [6 pts]

         B A
         | |
         | |
         | |
       ------
0 ---> | 00 |
       |    |
0 ---> | 01 |
       |    |--->
0 ---> | 10 |
       |    |
1 ---> | 11 |
       ------

If A and B are both 1, then line 11 is selected, and the output is 1.
Otherwise, another line is selected, and the output is 0

5. Assume X consists of 3 bits: x2 x1 x0. Write logic functions which
are true if and only if:

   A. X contains only a single zero

      x2 x1 x0' + x2 x1' x0 + x2' x1 x0                               [3 pts]

   B. X when interpreted as an unsigned binary number is less than 4

      x2'                                                             [3 pts]

   C. X when interpreted as a two's complement number is negative.

      x2                                                              [3 pts]

6. Implement the three functions from question 5 using a PLA:

   A. X contains only a single zero                                 

   B. X when interpreted as an unsigned binary number is less than 4

   C. X when interpreted as a two's complement number is negative.


x2 ----X----X--------------------------------------X----------

x2'--------------X-------------------X------------------------

x1 ----X---------X--------------------------------------------

x1'---------X-------------------------------------------------

x0 ---------X----X--------------------------------------------

x0'----X------------------------------------------------------


   ----X----X----X-------------------------------------------- A      [3 pts]

   ----------------------------------X------------------------ B      [3 pts]

   ------------------------------------------------X---------- C      [3 pts]


7. Assume X consists of 3 bits: x2, x1, x0, and Y consists 
of 3 bits: y2, y1, y0. Write logic functions which are true if and only if:

   A. X < Y, where X and Y are interpreted as unsigned binary numbers

        x2'y2
      + x2'y2'x1'y1
      + x2 y2 x1'y1
      + x2'y2'x1'y1'x0'y0
      + x2'y2'x1 y1 x0'y0
      + x2 y2 x1'y1'x0'y0
      + x2 y2 x1 y1 x0'y0                                             [8 pts]

   B. X < Y, where X and Y are interpreted as two's complement numbers

        x2 y2'
      + x2'y2'x1'y1
      + x2 y2 x1'y1
      + x2'y2'x1'y1'x0'y0
      + x2'y2'x1 y1 x0'y0
      + x2 y2 x1'y1'x0'y0
      + x2 y2 x1 y1 x0'y0                                             [8 pts]

8. Implement a switching network which has two data inputs (A and B),
two data outputs (C and D), and a control input (S). If S = 1, the
network is in pass-through mode and C = A, and D = B. If S = 0, the
network is in crossing mode and C = B, and D = A.
                                                                     [20 pts]
C = S A + S'B
D = S B + S'A

              S
              |
              | 
              x------
              |     | 
            -----   |
B --x-----> | 0 |   |
    |       |   | --|--> C
A --|--x--> | 1 |   |
    |  |    -----   |
    |  |            |
    |  |            |
    |  |            |
    |  |      -------
    |  |      |
    |  |      |
    |  |    -----
    |  ---> | 0 |
    |       |   | -----> D
    ------> | 1 |
            -----