summaryrefslogtreecommitdiff
path: root/verilog/fpu/fpu_bench.v
diff options
context:
space:
mode:
authorjoshuayun <joshua@joshuayun.com>2022-01-10 09:40:59 -0500
committerjoshuayun <joshua@joshuayun.com>2022-01-10 09:40:59 -0500
commit2f1be3c7aabb42ac3ad4347595d5d7be0e2ad6a0 (patch)
tree74dc2391aad79a8e0d0dd1d5ebbb0f1b664c0a9c /verilog/fpu/fpu_bench.v
parent9dc6d7180438031d25daf6a68a3959c3cfa9312d (diff)
downloadriscv-processor-inorder-2f1be3c7aabb42ac3ad4347595d5d7be0e2ad6a0.tar.gz
fpu added
Diffstat (limited to 'verilog/fpu/fpu_bench.v')
-rw-r--r--verilog/fpu/fpu_bench.v69
1 files changed, 47 insertions, 22 deletions
diff --git a/verilog/fpu/fpu_bench.v b/verilog/fpu/fpu_bench.v
index ecbd659..2c54c8c 100644
--- a/verilog/fpu/fpu_bench.v
+++ b/verilog/fpu/fpu_bench.v
@@ -4,6 +4,7 @@
module fpu_bench;
+reg[63:0] float1, float2, float_out;
reg[31:0] input1, input2;
reg add = 1'b0;
wire[31:0] fpu_output;
@@ -12,47 +13,71 @@ fpu_2 fpu0 (add,input1, input2, fpu_output);
initial begin
- input1=32'b01000000000111001100110011001101; // 2.45
- input2=32'b00111111001001100110011001100110; //.65
+ input1=32'b01000011000111001100110011001101; // 2.45
+ input2=32'b00111001001001100110011001100110; //.65
#5;
- $display("\nSum: %16b + %16b = %16b",input1,input2,fpu_output);
+ float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}};
+ float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}};
+ float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}};
+ $display("\nSum: %f + %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out));
- input1=32'b01000000000111001100110011001101; // 2.45
- input2=32'b10111111001001100110011001100110; //.65
+ input1=32'b01000100000111001110111011001101; // 2.45
+ input2=32'b10111111001000100110011001100110; //.65
#5;
- $display("\nSum: %16b + %16b = %16b",input1,input2,fpu_output);
+ float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}};
+ float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}};
+ float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}};
+ $display("\nSum: %f + %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out));
- input1=32'b11000000000111001100110011001101; // 2.45
+ input1=32'b11000110000111001100110110001101; // 2.45
input2=32'b00111111001001100110011001100110; //.65
#5;
- $display("\nSum: %16b + %16b = %16b",input1,input2,fpu_output);
+ float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}};
+ float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}};
+ float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}};
+ $display("\nSum: %f + %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out));
- input1=32'b11000000000111001100110011001101; // 2.45
- input2=32'b10111111001001100110011001100110; //.65
+ input1=32'b10111111000111001100110011001101; // 2.45
+ input2=32'b11000011001001100110001001100110; //.65
#5;
- $display("\nSum: %16b + %16b = %16b",input1,input2,fpu_output);
+ float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}};
+ float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}};
+ float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}};
+ $display("\nSum: %f + %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out));
add = 1'b1;
- input1=32'b01000000000111001100110011001101; // 2.45
- input2=32'b00111111001001100110011001100110; //.65
+ input1=32'b01000011000111001100110011001101; // 2.45
+ input2=32'b00111001001001100110011001100110; //.65
#5;
- $display("\nSum: %16b - %16b = %16b",input1,input2,fpu_output);
+ float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}};
+ float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}};
+ float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}};
+ $display("\nSum: %f - %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out));
- input1=32'b01000000000111001100110011001101; // 2.45
- input2=32'b10111111001001100110011001100110; //.65
+ input1=32'b01000100000111001110111011001101; // 2.45
+ input2=32'b10111111001000100110011001100110; //.65
#5;
- $display("\nSum: %16b - %16b = %16b",input1,input2,fpu_output);
+ float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}};
+ float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}};
+ float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}};
+ $display("\nSum: %f - %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out));
- input1=32'b11000000000111001100110011001101; // 2.45
+ input1=32'b11000110000111001100110110001101; // 2.45
input2=32'b00111111001001100110011001100110; //.65
#5;
- $display("\nSum: %16b - %16b = %16b",input1,input2,fpu_output);
+ float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}};
+ float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}};
+ float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}};
+ $display("\nSum: %f - %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out));
- input1=32'b11000000000111001100110011001101; // 2.45
- input2=32'b10111111001001100110011001100110; //.65
+ input1=32'b10111111000111001100110011001101; // 2.45
+ input2=32'b11000011001001100110001001100110; //.65
#5;
- $display("\nSum: %16b - %16b = %16b",input1,input2,fpu_output);
+ float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}};
+ float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}};
+ float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}};
+ $display("\nSum: %f - %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out));
$finish;
end
endmodule