From 48bec40902ccb77e3a81e4caed05d4791750164b Mon Sep 17 00:00:00 2001 From: "James E. Stine" Date: Thu, 29 Jun 2023 08:46:11 -0500 Subject: [PATCH 1/2] Modification (temporary) to testbench-fp.sv to allow testing of anything FMA. This might need to be changed with OpCtrl to make more robust for future expansion. --- testbench/testbench-fp.sv | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/testbench/testbench-fp.sv b/testbench/testbench-fp.sv index 91deec4dd..08d674f1d 100644 --- a/testbench/testbench-fp.sv +++ b/testbench/testbench-fp.sv @@ -121,7 +121,8 @@ module testbenchfp; logic ResMatch; // Check if result match logic FlagMatch; // Check if IEEE flags match logic CheckNow; // Final check - + logic FMAop; // Is this a FMA operation? + /////////////////////////////////////////////////////////////////////////////////////////////// // ||||||||| |||||||| ||||||| ||||||||| ||||||| |||||||| ||| @@ -944,13 +945,15 @@ module testbenchfp; assign ResMatch = ((Res === Ans) | NaNGood | (NaNGood === 1'bx)); assign FlagMatch = ((ResFlg === AnsFlg) | (AnsFlg === 5'bx)); assign divsqrtop = (OpCtrlVal == `SQRT_OPCTRL) | (OpCtrlVal == `DIV_OPCTRL); + assign FMAop = (OpCtrlVal == `FMAUNIT); assign DivDone = OldFDivBusyE & ~FDivBusyE; - assign CheckNow = (DivDone | ~divsqrtop) & (UnitVal !== `CVTINTUNIT) & (UnitVal !== `CMPUNIT); + // Maybe change OpCtrl but for now just look at TEST for fma test + assign CheckNow = ((DivDone | ~divsqrtop) | (TEST == "add" | TEST == "fma" | TEST == "sub")) & (UnitVal !== `CVTINTUNIT) & (UnitVal !== `CMPUNIT); if (~(ResMatch & FlagMatch) & CheckNow) begin errors += 1; - $display("TestNum %d OpCtrl %d", TestNum, OpCtrl[TestNum]); - $display("Error in %s", Tests[TestNum]); + $display("\nError in %s", Tests[TestNum]); + $display("TestNum %d OpCtrl %d", TestNum, OpCtrl[TestNum]); $display("inputs: %h %h %h\nSrcA: %h\n Res: %h %h\n Expected: %h %h", X, Y, Z, SrcA, Res, ResFlg, Ans, AnsFlg); $stop; end From 67fdeae9c95cc5e5c5264299ee2f19528369dab7 Mon Sep 17 00:00:00 2001 From: "James E. Stine" Date: Thu, 29 Jun 2023 08:47:16 -0500 Subject: [PATCH 2/2] Add reset to wave window --- sim/wave-fpu.do | 1 + 1 file changed, 1 insertion(+) diff --git a/sim/wave-fpu.do b/sim/wave-fpu.do index a1cfa8731..08b6b3378 100644 --- a/sim/wave-fpu.do +++ b/sim/wave-fpu.do @@ -7,6 +7,7 @@ add wave -noupdate /testbenchfp/Y add wave -noupdate /testbenchfp/Z add wave -noupdate /testbenchfp/Res add wave -noupdate /testbenchfp/Ans +add wave -noupdate /testbenchfp/reset add wave -noupdate /testbenchfp/DivStart add wave -noupdate /testbenchfp/FDivBusyE add wave -noupdate /testbenchfp/CheckNow