Question: Question: A ROM can be used to multiply two binary numbers by splitting the address lines to accommodate the two numbers. Implement using Verilog such

Question: A ROM can be used to multiply two binary numbers by splitting the address lines to accommodate the two numbers. Implement using Verilog such as a multiplier for multiplying two signed numbers, each of size 4 bits.

(a) Part of the Verilog code has been provided below. Complete the Verilog code and write a test bench for the code in verilog.

(b) Will this be an efficient implementation if used for two 8-bit, unsigned numbers? Discuss your reason.

// This ROM stores the product of two numbers n1 and n2.

Both the numbers and "result" are in twos complement.

module rom (n1, n2, result);

input [3:0] n1 ; // Signed first number.

input [3:0] n2 ; // Signed second number.

output [7:0] result ; // Result = n1 x n2.

wire [7:0] result ; wire [3:0] n1_mag ;

wire [3:0] n2_mag ; reg [7:0] product ;

assign n1_mag = __________________ ; // get magnitude of n1

assign n2_mag = __________________ ; // get magnitude of n2

always @ (n1_mag or n2_mag)

begin

case ({n1_mag, n2_mag})

17 : product = ____ ;

18 : product = ____ ;

19 : product = ____ ;

20 : product = ____ ;

21 : product = ____ ;

22 : product = ____ ;

23 : product = ____ ;

24 : product = ____ ;

33: product = ____ ;

___: product = ____ ;

___: product = ____ ;

___: product = ____ ;

___: product = ____ ;

___: product = ____ ;

___: product = ____ ;

___: product = ____ ;

49 : product = ____ ;

___: product = ___ ;

___: product = ____;

___: product = ___ ;

___: product = ___ ;

___: product = ___ ;

___: product = ___ ;

___: product = ___ ;

65 : product = ___ ;

___ : product = ___ ;

___ : product = ___ ;

___ : product = ___ ;

____: product = ___ ;

___ : product = ___ ;

___ : product = ___ ;

____: product = ___ ;

81 : product = _____;

___: product = ____ ;

___: product = ____ ;

___: product = ____ ;

___: product = ____ ;

___: product = ____ ;

___: product = ____ ;

___: product = ____ ;

97 : product = ___ ;

___: product = ___ ;

___: product = ____;

___: product = ___ ;

___: product = ___ ;

___: product = ___ ;

___: product = ___ ;

___: product = ___ ;

113: product = ___ ;

___ : product = ___ ;

___ : product = ___ ;

___ : product = ___ ;

____: product = ___ ;

___ : product = ___ ;

___ : product = ___ ;

____: product = ___ ;

129: product = ___ ;

___ : product = ___ ;

___ : product = ___ ;

___ : product = ___ ;

____: product = ___ ;

___ : product = ___ ;

___ : product = ___ ;

____: product = ___ ;

default : product = 0 ; // Clear the result.

endcase

end

assign result = ____________________________________;

endmodule

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!