Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Digital Logic and Computer Systems

EEL 3701C

Final Exam

Friday, April 17th, 2020

04:00 PM 06:00 PM

Problem I (Multiplication, 8 pts)

1.   Use the Shift-and-Add algorithm to multiply the following numbers, given in two’s complement: -45 and - 18 (4 pts)

2.   Compute the minimum cost (in term of number of additions/subtractions) of multiplying the two positive numbers 11101110 and 101010100 using the following algorithms:

a.   Shift-and-Add Algorithm (2 pts)

b.   Booth’s Multiplication Algorithm (2 pts)

Problem II (Memory, 10 pts)

Assume that we have only 4x4 ROM memory modules available in our RTL component library. Using the available memory components, sketch the internal design of an 8x6 ROM that stores the following values:

Address

2

6

0

7

Value

30

15

0

22

Unspecified addresses are dont cares.

Problem III (Adder Components, 8 pts):

We want to implement a 64-bit adder using a library that contains 4-bit, 8-bit and 16-bit carry lookahead adder components.

Your design must be uniform, i.e., you can only use all 4-bit adders, all 8-bit adders, OR all 16-bit adders.

Provide the architecture of the adder with:

a.  The minimum cost (in number of gates) (3 pts)

b.  The minimum delay, assuming all gates have the same propagation delays pd

(3 pts)

c.   Can your design achieve minimal cost and delay simultaneously? (2 pts)

Problem IV (Control Path and Data Path Design, 22 pts)

Provide the architecture of a processor, specifically tailored to compute the following pseudocode algorithm: Assume that the 4-bit data inputs (A and B) and outputs (C) are directly connected to the data path through  three different buses, IN_BUS_A, IN_BUS_B and OUT_BUS.

if (a < b) then

c = a – b;

else

c = a + b;

end if

A computation starts with A and B placed on IN_BUS_A and IN_BUS_B and a start signal s set 1. The    controller will then process and set a done signal to 1 upon completion. Additionally, the controller will not move back to the initial state until s = 0. Because the values on the input bus may change during the       computation, they need to be loaded into registers before starting.

a.   Identify the data path components and their interconnections (5 pts)

Do not worry about the interior construction of the components themselves. State any assumptions you make about your components.

b.   Show the block diagram (control path + data path), showing all control and status signals between the two, as well as any inputs and outputs to the system as a whole. (2 pts)

c. Design your controller as Moore automaton and show the implementation as microprogrammed unit. (15 pts)

Problem V (MIPS Processor, 18 pts)

Given the single-cycle MIPS processor below, show the data value at the following annotated points A-F after the execution of the block of code in order

The contents of register file, the data memory, and the instruction memory is as follows:

Addr.

Instruction

100

sw $t1, 8($t0)

104

add $t1, $t1, $t1

108

beq $t1, $t1, EXIT

200

EXIT:

not relevant

Initial state of the program. All values are in decimal.

Please provide all values in decimal in the tables below

Remember: Do each part here as if all previous instructions have been run up to that point. For example, for the add instruction, show the state of the processor assuming that sw was already executed, and that add is about to run.

Use an X’ to signify if a signal is undefined.

sw $t1, 8($t0)

A

B

C

D

E

F

(6 pts)

add $t1, $t1, $t1

A

B

C

D

E

F

(6 pts)

beq $t1, 4t1, EXIT

A

B

C

D

E

F

(6 pts)