From 59f79722ab5a39e84288e76a64ec40e6108eceb6 Mon Sep 17 00:00:00 2001
From: Katherine Parry <kparry4@gmail.com>
Date: Wed, 21 Jul 2021 14:08:14 -0400
Subject: [PATCH] FDIV and FSQRT work

---
 wally-pipelined/src/fpu/fpu.sv                 |  2 +-
 wally-pipelined/src/fpu/fsm.sv                 |  2 +-
 wally-pipelined/testbench/testbench-imperas.sv | 12 ++++++------
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/wally-pipelined/src/fpu/fpu.sv b/wally-pipelined/src/fpu/fpu.sv
index f283f5e4f..344500d4a 100755
--- a/wally-pipelined/src/fpu/fpu.sv
+++ b/wally-pipelined/src/fpu/fpu.sv
@@ -204,7 +204,7 @@ module fpu (
 	fpdiv fdivsqrt (.op1(DivInput1E), .op2(DivInput2E), .done(FDivSqrtDoneE), .rm(FrmE[1:0]), .op_type(FOpCtrlE[0]), 
 			.P(~FmtE), .FDivBusyE, .HoldInputs, 
 			.OvEn(1'b1), .UnEn(1'b1),
-			.start(FDivStartE), .reset, .clk(~clk), .AS_Result(FDivResultM), .Flags(FDivSqrtFlgM));
+			.start(FDivStartE), .reset, .clk(fpdivClk), .AS_Result(FDivResultM), .Flags(FDivSqrtFlgM));
 	
         // .DivOpType(FOpCtrlE[0]), .clk(fpdivClk), .FmtE(~FmtE), .DivInput1E, .DivInput2E, 
         //                 .FrmE, .DivOvEn(1'b1), .DivUnEn(1'b1), .FDivStartE, .FDivResultM, .FDivSqrtFlgM, 
diff --git a/wally-pipelined/src/fpu/fsm.sv b/wally-pipelined/src/fpu/fsm.sv
index 8991fb71d..434f56e39 100755
--- a/wally-pipelined/src/fpu/fsm.sv
+++ b/wally-pipelined/src/fpu/fsm.sv
@@ -476,7 +476,7 @@ module fsm (done, load_rega, load_regb, load_regc,
 	       sel_muxa = 3'b011;
 	       sel_muxb = 3'b110;
 	       sel_muxr = 1'b1;
-	       NEXT_STATE = S27;
+	       NEXT_STATE = S26;
 	    end 
 	  S26:  // done
 	    begin
diff --git a/wally-pipelined/testbench/testbench-imperas.sv b/wally-pipelined/testbench/testbench-imperas.sv
index 9020459da..20df6e238 100644
--- a/wally-pipelined/testbench/testbench-imperas.sv
+++ b/wally-pipelined/testbench/testbench-imperas.sv
@@ -61,7 +61,7 @@ string tests32f[] = '{
     "rv32f/I-FCVT-S-WU-01", "2000",
     "rv32f/I-FCVT-W-S-01", "2000",
     "rv32f/I-FCVT-WU-S-01", "2000",
-    // "rv32f/I-FDIV-S-01", "2000",
+    "rv32f/I-FDIV-S-01", "2000",
     "rv32f/I-FEQ-S-01", "2000",
     "rv32f/I-FLE-S-01", "2000",
     "rv32f/I-FLT-S-01", "2000",
@@ -77,7 +77,7 @@ string tests32f[] = '{
     "rv32f/I-FSGNJ-S-01", "2000",
     "rv32f/I-FSGNJN-S-01", "2000",
     "rv32f/I-FSGNJX-S-01", "2000",
-    // "rv32f/I-FSQRT-S-01", "2000",
+    "rv32f/I-FSQRT-S-01", "2000",
     "rv32f/I-FSW-01", "2000",
     "rv32f/I-FLW-01", "2110",
     "rv32f/I-FSUB-S-01", "2000"
@@ -98,7 +98,7 @@ string tests32f[] = '{
     "rv64f/I-FCVT-LU-S-01", "2000",
     "rv64f/I-FCVT-W-S-01", "2000",
     "rv64f/I-FCVT-WU-S-01", "2000",
-    // "rv64f/I-FDIV-S-01", "2000",
+    "rv64f/I-FDIV-S-01", "2000",
     "rv64f/I-FEQ-S-01", "2000",
     "rv64f/I-FLE-S-01", "2000",
     "rv64f/I-FLT-S-01", "2000",
@@ -112,7 +112,7 @@ string tests32f[] = '{
     "rv64f/I-FSGNJ-S-01", "2000",
     "rv64f/I-FSGNJN-S-01", "2000",
     "rv64f/I-FSGNJX-S-01", "2000",
-    // "rv64f/I-FSQRT-S-01", "2000",
+    "rv64f/I-FSQRT-S-01", "2000",
     "rv64f/I-FSUB-S-01", "2000"
   };
 
@@ -121,7 +121,7 @@ string tests32f[] = '{
     "rv64d/I-FLD-01", "2420",
     "rv64d/I-FMV-X-D-01", "2000",
     "rv64d/I-FMV-D-X-01", "2000",
-    // "rv64d/I-FDIV-D-01", "2000",
+    "rv64d/I-FDIV-D-01", "2000",
     "rv64d/I-FCVT-D-L-01", "2000",
     "rv64d/I-FCVT-D-LU-01", "2000",
     "rv64d/I-FCVT-D-S-01", "2000", 
@@ -147,7 +147,7 @@ string tests32f[] = '{
     "rv64d/I-FSGNJ-D-01", "2000",
     "rv64d/I-FSGNJN-D-01", "2000",
     "rv64d/I-FSGNJX-D-01", "2000",
-    // "rv64d/I-FSQRT-D-01", "2000",
+    "rv64d/I-FSQRT-D-01", "2000",
     "rv64d/I-FSUB-D-01", "2000"
   };