Computer Science 2500
Computer Organization

Rensselaer Polytechnic Institute
Spring 2009


Lab 5: Sequential Logic
Due: 5:00 PM, Friday, March 6, 2009


Please complete the following four problems on paper and submit them in my mailbox in Lally 207 before the start of Spring Break. Neatness is essential for us to be able to decipher and grade your circuits. You are to work individually on these problems.

  1. As you saw in the lecture assignment from Lecture 11, it is sometimes necessary to add 1 to a number, for example, a program counter. You constructed, for the lecture assignment, a device that is less expensive than a ripple-carry adder, that adds one to a value that is provided (D0..D3) and provides the result on the output (Q0..Q3). Now, construct a similar device for adding 1 to a gray-code value. (Hint: you may find the circuit from the lecture assignment to be a useful building block.)
  2. In class we learned about clocked D-type flip-flops. Such a device has inputs D and CLK, and output Q. Occasionally, it is useful to explicitly set (S) or reset (R) Q without regard to D. For example, it might be useful to clear (reset) all of memory without explicitly providing data to each bit.
  3. Suppose you have several T-type clocked flip-flops with Q and Qbar and asynchronous set and reset.
  4. Using any of the flip-flops, latches, and counters that we have discussed in class as building blocks, construct a circuit that takes input from a single switch and produces a single output and exhibits the following behavior. After the first, second, and third times that the switch goes from 0 to 1, the output is 0. The fourth time that the switch goes from 0 to 1, the output becomes 1. The fifth, sixth, and seventh times the switch goes from 0 to 1, the output should be 0. The eighth time, the output is 1, and so on. In other words, the output is 1 exactly when the switch has been moved from 0 to 1 a number of times that is divisible by 4.