module array_multiplier(a, b, p);
input [3:0] a, b;
output reg [7:0] p;
always @(*) begin
p = a * b;
end
endmodule
module tb_array_multiplier();
reg [3:0] a, b;
wire [7:0] p;
array_multiplier dut(a, b, p);
initial begin
a = 4'd0; b = 4'd12;
#10 a = 4'd1; b = 4'd9;
#10 a = 4'd2; b = 4'd15;
#10 a = 4'd3; b = 4'd11;
#10 a = 4'd4; b = 4'd10;
#10 a = 4'd5; b = 4'd9;
#10 a = 4'd6; b = 4'd7;
#10 a = 4'd7; b = 4'd8;
#10 a = 4'd8; b = 4'd13;
#10 a = 4'd9; b = 4'd6;
#10 a = 4'd10; b = 4'd15;
#10 a = 4'd11; b = 4'd3;
#10 a = 4'd12; b = 4'd2;
#10 a = 4'd13; b = 4'd8;
#10 a = 4'd14; b = 4'd1;
#10 a = 4'd15; b = 4'd5;
#20 $finish;
end
endmodule
RTL SCHEMATIC:
TIMING REPORT:
POWER
UTILIZATION REPORT: