Question: I am supposed to be using these modules to create a multiplier. I am getting an X for my product. Could you please spot my
I am supposed to be using these modules to create a multiplier. I am getting an X for my product. Could you please spot my mistake?
Problem
module partialMultiplier #parameter sizeinput clk reset, input size: A B
output logic size: Product;
logic size: ASum, PSum, sumout, shiftedA;
logicsize: index;
logic Bi Cout;
assign BiBindex;
Shiftreg #size shiftclk reset, A index shiftedA;
Index #size indexclk reset, index;
Mux #size muxshiftedAd Bi PSum;
RippleCarryAdder #size adderASum PSum, b sumout, Cout;
Accumulator #size accumclk reset, sumout, ASum;
assign Product ASum;
endmodule
module Shiftreg #parameter sizeinput clk reset, input size: A input Loadn,
output logic size: Yshift;
localparam zerosizeb;
logic size: Y;
register
alwaysff @ posedge clk or posedge reset
if reset
Y size b;
else
Y Yshift;
combinatorial, do shift
alwayscomb begin
Yshift sizeb;
case Loadn
b : Yshift zeroA;
b : Yshift Y ;
default : Yshift sizeb;
endcase
end
endmodule
module Mux #parameter size input size: A C input B
output logic size: PSum;
alwayscomb begin
PSum sizeb;
caseB
b : PSum C;
b : PSum A;
default : PSum sizeb;
endcase
end
endmodule
module HalfAdder input A B output logic Sum, Cout;
assign Sum A B;
assign Cout A & B;
endmodule
module FullAdder input A B Cin, output logic Sum, Cout;
logic Sum Cout Cout;
HalfAdder HA B Sum Cout;
HalfAdder HSum Cin, Sum, Cout;
assign Cout Cout Cout;
endmodule
module RippleCarryAdder #parameter sizeinput size: A B input Cin,
output logic size: Sum, output logic Cout;
genvar i;
logic size: Carry;
assign Carry Cin;
generate
for i; i
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
