Explorar el Código

FPA_module F32 TB

Min hace 4 años
padre
commit
370f61d137
Se han modificado 1 ficheros con 47 adiciones y 2 borrados
  1. 47 2
      src/FPA_module_test.sv

+ 47 - 2
src/FPA_module_test.sv

@@ -150,7 +150,7 @@ endmodule : floating_product
 
 
 
-module pipe #(parameter N=16)pipe(clk, reset, Q, D);
+module pipe #(parameter N=16)(clk, reset, Q, D);
 	input logic clk, reset;
 	input logic [N-1:0] D;
 	output reg [N-1:0] Q;
@@ -211,4 +211,49 @@ module floating_tb;
         $display("Passed %d of %d tests", num_tests-num_err, num_tests);
         $finish();
 	end
-endmodule : floating_tb
+endmodule : floating_tb
+
+
+
+module floating32_tb;
+	reg reset, clk;
+	logic [31:0] input_a, input_b, result_add, result_mult;
+
+	floating_add#(.N(32), .M(8)) add0(
+		.input_1(input_a), .input_2(input_b), .sum(result_add), .diff()
+	);
+	floating_product#(.N(32), .M(8)) mult0(
+		.input_1(input_a), .input_2(input_b), .product(result_mult)
+	);
+
+	reg [31:0] test_mem [29:0][3:0];
+
+	initial $readmemh("scripts/fp32_test.hex", test_mem);
+
+
+	initial begin
+		static int num_err = 0;
+		static int num_tests = $size(test_mem) * 2;
+
+		for (int i=0; i < $size(test_mem); i++) begin
+			input_a = test_mem[i][0];
+			input_b = test_mem[i][1];
+
+			#10;
+			if(result_add != test_mem[i][2]) begin
+				if(num_err < 20)
+					$display("FAIL ADD: %H + %H = %H, expected %H", input_a, input_b, result_add, test_mem[i][2]);
+				num_err = num_err + 1;
+			end
+
+			if(result_mult != test_mem[i][3]) begin
+				if(num_err < 20)
+					$display("FAIL MULTIPLY: %H + %H = %H, expected %H", input_a, input_b, result_mult, test_mem[i][3]);
+				num_err = num_err + 1;
+			end
+
+		end
+		$display("Passed %d of %d tests", num_tests-num_err, num_tests);
+		$finish();
+	end
+endmodule : floating32_tb