For the following control signals, C_2C_1 and C_5C_4 are used to select source r
ID: 2080479 • Letter: F
Question
For the following control signals, C_2C_1 and C_5C_4 are used to select source register R[0]-R[7], and C_3 and C_6 is used for D_ in selection. If C_3 = 1, MUX1 output is D_ in, same for MUX 2. C_8C_7 are used for 2 bit binary decoder to select destination register, are used for ALU selection, and the details are listed in the following table. If C_11C_10C_9C_8C_7C_6C_5C_4C_3C_2C_1 = 11011010001, describe the corresponding register transfer and ALU operation. If C_11C_10C_9C_8C_7C_6C_5C_4C_2C_2C_1 = 00100000000, describe the corresponding register transfer and ALU operation. If we want R[0] leftarrow R[2], what control signals should be used? If we want R[3] leftarrow D_ in, what control signals should be used? If we want R[0] leftarrow R[1]^2 + R[3], how many steps do we need? What are the control signals for each step?Explanation / Answer
5. First we will square the contents of R[1], store them in R[1]. Second operation will be to add the new contents of R[1] with the contents of R[3] and store the final result in R[0].
We need to select the contents of R[1]. Hence, the first source register should be R[1], MUX1 should not output Din, which means C2C1 = 01 and C3 = 0. In order to square the contents of R[1], the second source register should be R[1], MUX2 should not output Din, which means C5C4 = 01 and C6 = 0. We need to store the result in R[1] itself. Hence, destination register is R[1], which means C8C7 = 01. Finally, we need to multiply contents of R[1] with the contents of R[1]. Hence, ALU operation should be C11C10C9 = 110. So the first operation is C11C10C9C8C7C6C5C4C3C2C1 = 11001001001.
We need to select the new contents of R[1]. Hence, the first source register should be R[1], MUX1 should not output Din, which means C2C1 = 01 and C3 = 0. Further, the second source register should be R[3], MUX2 should not output Din, which means C5C4 = 11 and C6 = 0. We need to store the result in R[0]. Hence, destination register is R[0], which means C8C7 = 00. Finally, we need to add contents of R[1] with the contents of R[3]. Hence, ALU operation should be C11C10C9 = 001. So the second operation is C11C10C9C8C7C6C5C4C3C2C1 = 00100011001.
Thus, the operation is performed in two steps