diff --git a/setup.sh b/setup.sh index 95026beb1..a92cc84a2 100755 --- a/setup.sh +++ b/setup.sh @@ -16,7 +16,8 @@ echo \$WALLY set to ${WALLY} # Must edit these based on your local environment. Ask your sysadmin. export MGLS_LICENSE_FILE=27002@zircon.eng.hmc.edu # Change this to your Siemens license server export SNPSLMD_LICENSE_FILE=27020@zircon.eng.hmc.edu # Change this to your Synopsys license server -export QUESTA_HOME=/cad/mentor/questa_sim-2022.4_2/questasim # Change this for your path to Questa, excluding bin +#export QUESTA_HOME=/cad/mentor/questa_sim-2022.4_2/questasim # Change this for your path to Questa, excluding bin +export QUESTA_HOME=/cad/mentor/questa_sim-2021.4_4/questasim # Change this for your path to Questa, excluding bin #export QUESTA_HOME=/cad/mentor/questa_sim-2022.4_3/questasim # Change this for your path to Questa, excluding bin export SNPS_HOME=/cad/synopsys/SYN # Change this for your path to Design Compiler, excluding bin diff --git a/testbench/testbench-fp.sv b/testbench/testbench-fp.sv index a485a9f5d..416b7239a 100644 --- a/testbench/testbench-fp.sv +++ b/testbench/testbench-fp.sv @@ -659,7 +659,14 @@ module testbenchfp; end end if (TEST === "customdiv") begin // if unified div sqrt is being tested - Tests = {Tests, custom}; + Tests = {Tests, customdiv}; + OpCtrl = {OpCtrl, `DIV_OPCTRL}; + WriteInt = {WriteInt, 1'b0}; + Unit = {Unit, `DIVUNIT}; + Fmt = {Fmt, 2'b10}; + end + if (TEST === "customdivcorrect") begin // if unified div sqrt is being tested + Tests = {Tests, customdivcorrect}; OpCtrl = {OpCtrl, `DIV_OPCTRL}; WriteInt = {WriteInt, 1'b0}; Unit = {Unit, `DIVUNIT}; @@ -770,7 +777,7 @@ module testbenchfp; .XNaN, .YNaN, .XSNaN, .YSNaN, .X, .Y, .CmpNV(CmpFlg[4]), .CmpFpRes(FpCmpRes)); end - if (TEST === "div" | TEST === "sqrt" | TEST === "all"| TEST === "custom") begin: fdivsqrt + if (TEST === "div" | TEST === "sqrt" | TEST === "all"| TEST === "custom" | TEST ==="customdivcorrect") begin: fdivsqrt fdivsqrt #(P) fdivsqrt(.clk, .reset, .XsE(Xs), .FmtE(ModFmt), .XmE(Xm), .YmE(Ym), .XeE(Xe), .YeE(Ye), .SqrtE(OpCtrlVal[0]), .SqrtM(OpCtrlVal[0]), .XInfE(XInf), .YInfE(YInf), .XZeroE(XZero), .YZeroE(YZero), @@ -1018,6 +1025,10 @@ module testbenchfp; assign CheckNow = (DivDone | ~divsqrtop) & (UnitVal !== `CVTINTUNIT) & (UnitVal !== `CMPUNIT); if (~(ResMatch & FlagMatch) & CheckNow) begin + integer fd; + fd = $fopen("fperr.out","a"); + $fwrite(fd, "%h_%h_%h_%2h\n",X[15:0],Y[15:0],Ans[15:0],AnsFlg); + $fclose(fd); errors += 1; $display("TestNum %d OpCtrl %d", TestNum, OpCtrl[TestNum]); $display("Error in %s", Tests[TestNum]); diff --git a/testbench/tests-fp.vh b/testbench/tests-fp.vh index 3c7e0cbf9..500a65d4b 100644 --- a/testbench/tests-fp.vh +++ b/testbench/tests-fp.vh @@ -581,8 +581,12 @@ string f128fma[] = '{ "f128_mulAdd_rnm.tv" }; -string custom[] = '{ - "f16_div_rne.tv" +string customdiv[] = '{ + "f16_custom.tv" +}; + +string customdivcorrect[] = '{ + "f16_custom.tv" };