CMSC313, Computer Organization & Assembly Language Programming, Spring 2013

Homework 3

Due: Tuesday April 30, 2013

Paper submissions are due in class. Logisim circuits can be submitted online up to 11:59pm of the due date using the submit command on GL. Make a copy of your paper submission, if you need it to construct your Logisim circuit.


Problem #1 (30 points)

Using the Basic Identities of Boolean Algebra in Table 3.5 (p. 125), simplify the following formulas. Show all of your work and justify each step.

  1. ( A + (C + B) ) ⋅ ( ~( ~B ⋅ ~C ) )

  2. ~( ~A ⋅ B ) ⋅ ~( ~A ⋅ ~B ) + A ⋅ C

Note: here + means OR, ⋅ means AND, and ~ means NOT.


Problem #2 (30 points)

For the CMOS circuit shown below,

  1. (10 points) Provide a truth table for the circuit's function. You may use the Logisim circuit, hw3-2.circ, to determine the truth table. (You must download the circuit on your machine and run Logisim.)

  2. (5 points) Write down the Sum-of-Products (SOP) Boolean formula for the truth table.

  3. (5 points) Write down the Product-of-Sums (POS) Boolean formula for the truth table.

  4. (10 points) Draw the logic diagram of the POS formula using AND, OR and NOT gates (do not simplify).


Problem #3 (40 points)

For this problem, you will build a 4-bit Arithmetic Logic Unit (ALU) that adds, subtracts, decrements and increments in Logisim. The design is based on the Combined Adder/Subtractor shown in class:

We can think of this circuit as having 1 control line that determines whether the circuit adds or subtracts. Our 4-bit ALU will have two control lines (d1 d0) that determines whether the ALU will add, subtract, decrement or increment:

This functionality can be built using just the 4-bit ripple-carry adder. Your problem is to figure out how to connect x3 x2 x1 x0 to d1 d0 and b3 b2 b1 b0. Follow these steps:

First, we write down what we want to accomplish:

From the description above, we can produce a truth table for the values of x_i and c_in, given the inputs d1, d0 and b_i:

d1d0bixic_in
0 0 0 0 0
0 0 1 1 0
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 1 0
1 1 0 0 1
1 1 1 0 1

What to do:

Implementation notes:




Last Modified: 23 Apr 2013 07:17:24 EDT by Richard Chang
to Spring 2013 CMSC 313 Homepage