CS270 Recitation 12: Series/Parallel Transistor Circuits and Word-Level Circuits

Goals

  1. To learn about series-parallel transistor circuits.
  2. To design a word-level combinational circuit.

Assignment

Start from the following skeleton file: R12.circ

Exercise 1: Series-Parallel Circuits of Transistors

  1. Start with the skeleton in the E1 sub-circuit.
  2. Design a series-parallel circuit of transistors to implement the following truth table (do not use gates!):
    ABCX
    0001
    0011
    0100
    0110
    1000
    1010
    1101
    1110

Exercise 2: Series-Parallel Circuits of Transistors (More Practice)

  1. Start with the skeleton in the E2 sub-circuit.
  2. Design a series-parallel circuit of transistors to implement the following truth table (do not use gates!):
    ABCX
    0001
    0011
    0101
    0110
    1000
    1011
    1100
    1111

Exercise 3: 8-bit Decrementer

You will design a circuit that takes an 8-bit 2's complement number A as input, and produces A - 1. You need to do a stepwise design.

  1. First decide on and understand the algorithm that your circuit is to implement. There are at least two options for a decrementer:

    Option 1: to decrement 1 from any (2's complement or unsigned) binary integer, we use the grade school algorithm: work our way from the least significant bit (LSB) to the left towards the most significant bit (MSB). Work out three examples on paper.

    Option 2: we can add the 2's complement of 1 (i.e., -1) to the number. Work out three examples on paper.

  2. Decompose the algorithm into a set of functions for each bit and write their truth tables. This is the most challenging part.

    In both options, the logic for each bit needs two inputs (A and Xin) and two outputs (S and Xout). A is the value of the bit. S is the result of the decrement for that bit position. Xin and Xout have different meanings depending on the option you chose:

    Option 1: Xin is the borrow-in bit. If it is 1, it means that the bit position to the right needs to borrow. Xout is the borrow-out bit. If it is 1, it means that this bit position needs to borrow from the left. This is exactly how we would subtract numbers by hand.

    Option 2: Xin is the carry-in bit. If it is 1, it means that the bit position to the right generated a carry bit. Xout is the carry-out bit. If it is 1, it means that this bit position needs to carry a bit to the left.

    Build the truth table for a bit position according to the option you chose and have your TA check it before you proceed:

    XinASXout
     
     
     
     
  3. Now implement and test it in Logisim: