Assignment title: Information


Combinatorial logic design is all about producing circuits to implement boolean functions - that is, functions of the form f : {0, 1} k → {0, 1}. The following exercises will help make sure you are well practiced in reasoning about boolean functions and their implementations. 1. (10 points) Consider the "NOR" operation: x NOR y ≡ x OR y. Demonstrate that the set {NOR} is universal. 2. (20 points) Recall from lecture the decoder, a logic block which takes n input values, representing an n-bit number i and produces 2 n output values, the ith of which is 1 and the rest of which are 0. Draw the circuit diagram for a 3-to-8 decoder. 3. (20 points) Draw a diagram of a circuit implementing the four-input odd parity function. This is the function that is true if, and only if, the number of 1s in the input is odd. 4. (20 points) Implement a switching network that 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, meaning that C should equal A and D equal B. If S = 0, then C should equal B and D equal A. 5. (30 points) In this exercise we examine in detail how an instruction is executed in a single-cycle data path. Problem in this exercise refer to a clock cycle in which the processor fetches the following instruction word: 10101100011000100000000000010100 Assume that data memory is all zeros and that the processor's registers have the following values at the beginning of the cycle in which the above instruction word is fetched: $0 $1 $2 $3 $4 $5 $6 $8 $12 $31 0 -1 2 -3 -4 10 6 8 2 -16 (Hint: The opcode of this instruction is 101011 which is 43, so this is a store word instruction.) 1. What are the outputs of the sign-extend and the jump "Shift left 2" unit (near the top of Figure 1) for this instruction word? 2. What are the values of the ALU control unit's inputs for this instruction? 3. What is the new PC address after this instruction is executed? 4. For each Mux, show the values of its data output during the execution of this instruction and these register values. 1 5. For the ALU and the two add units, what are their data input values? 6. What are the values of all inputs for the "Registers" unit?