mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
more lints
This commit is contained in:
parent
1b33913e38
commit
24576f5b0c
@ -73,7 +73,7 @@
|
|||||||
logic [P.XLEN-1:0] AM; // Original Numerator for postprocessor
|
logic [P.XLEN-1:0] AM; // Original Numerator for postprocessor
|
||||||
logic ISpecialCaseE; // Integer div/remainder special cases
|
logic ISpecialCaseE; // Integer div/remainder special cases
|
||||||
|
|
||||||
fdivsqrtpreproc fdivsqrtpreproc( // Preprocessor
|
fdivsqrtpreproc #(P) fdivsqrtpreproc( // Preprocessor
|
||||||
.clk, .IFDivStartE, .Xm(XmE), .Ym(YmE), .Xe(XeE), .Ye(YeE),
|
.clk, .IFDivStartE, .Xm(XmE), .Ym(YmE), .Xe(XeE), .Ye(YeE),
|
||||||
.FmtE, .SqrtE, .XZeroE, .Funct3E, .QeM, .X, .D, .CyclesE,
|
.FmtE, .SqrtE, .XZeroE, .Funct3E, .QeM, .X, .D, .CyclesE,
|
||||||
// Int-specific
|
// Int-specific
|
||||||
@ -81,18 +81,18 @@
|
|||||||
.BZeroM, .nM, .mM, .AM,
|
.BZeroM, .nM, .mM, .AM,
|
||||||
.IntDivM, .W64M, .NegQuotM, .ALTBM, .AsM);
|
.IntDivM, .W64M, .NegQuotM, .ALTBM, .AsM);
|
||||||
|
|
||||||
fdivsqrtfsm fdivsqrtfsm( // FSM
|
fdivsqrtfsm #(P) fdivsqrtfsm( // FSM
|
||||||
.clk, .reset, .XInfE, .YInfE, .XZeroE, .YZeroE, .XNaNE, .YNaNE,
|
.clk, .reset, .XInfE, .YInfE, .XZeroE, .YZeroE, .XNaNE, .YNaNE,
|
||||||
.FDivStartE, .XsE, .SqrtE, .WZeroE, .FlushE, .StallM,
|
.FDivStartE, .XsE, .SqrtE, .WZeroE, .FlushE, .StallM,
|
||||||
.FDivBusyE, .IFDivStartE, .FDivDoneE, .SpecialCaseM, .CyclesE,
|
.FDivBusyE, .IFDivStartE, .FDivDoneE, .SpecialCaseM, .CyclesE,
|
||||||
// Int-specific
|
// Int-specific
|
||||||
.IDivStartE, .ISpecialCaseE, .IntDivE);
|
.IDivStartE, .ISpecialCaseE, .IntDivE);
|
||||||
|
|
||||||
fdivsqrtiter fdivsqrtiter( // CSA Iterator
|
fdivsqrtiter #(P) fdivsqrtiter( // CSA Iterator
|
||||||
.clk, .IFDivStartE, .FDivBusyE, .SqrtE, .X, .D,
|
.clk, .IFDivStartE, .FDivBusyE, .SqrtE, .X, .D,
|
||||||
.FirstU, .FirstUM, .FirstC, .Firstun, .FirstWS(WS), .FirstWC(WC));
|
.FirstU, .FirstUM, .FirstC, .Firstun, .FirstWS(WS), .FirstWC(WC));
|
||||||
|
|
||||||
fdivsqrtpostproc fdivsqrtpostproc( // Postprocessor
|
fdivsqrtpostproc #(P) fdivsqrtpostproc( // Postprocessor
|
||||||
.clk, .reset, .StallM, .WS, .WC, .D, .FirstU, .FirstUM, .FirstC,
|
.clk, .reset, .StallM, .WS, .WC, .D, .FirstU, .FirstUM, .FirstC,
|
||||||
.SqrtE, .Firstun, .SqrtM, .SpecialCaseM,
|
.SqrtE, .Firstun, .SqrtM, .SpecialCaseM,
|
||||||
.QmM, .WZeroE, .DivStickyM,
|
.QmM, .WZeroE, .DivStickyM,
|
||||||
|
@ -122,16 +122,16 @@ module divremsqrtpostprocess import cvw::*; #(parameter cvw_t P) (
|
|||||||
/*cvtshiftcalc cvtshiftcalc(.ToInt, .CvtCe, .CvtResSubnormUf, .Xm, .CvtLzcIn,
|
/*cvtshiftcalc cvtshiftcalc(.ToInt, .CvtCe, .CvtResSubnormUf, .Xm, .CvtLzcIn,
|
||||||
.XZero, .IntToFp, .OutFmt, .CvtResUf, .CvtShiftIn);*/
|
.XZero, .IntToFp, .OutFmt, .CvtResUf, .CvtShiftIn);*/
|
||||||
|
|
||||||
divshiftcalc divshiftcalc(.DivQe, .DivQm, .DivResSubnorm, .DivSubnormShiftPos, .DivShiftAmt, .DivShiftIn);
|
divshiftcalc #(P) divshiftcalc(.DivQe, .DivQm, .DivResSubnorm, .DivSubnormShiftPos, .DivShiftAmt, .DivShiftIn);
|
||||||
|
|
||||||
assign ShiftAmt = DivShiftAmt;
|
assign ShiftAmt = DivShiftAmt;
|
||||||
assign ShiftIn = DivShiftIn;
|
assign ShiftIn = DivShiftIn;
|
||||||
|
|
||||||
// main normalization shift
|
// main normalization shift
|
||||||
normshift normshift (.ShiftIn, .ShiftAmt, .Shifted);
|
normshift #(P) normshift (.ShiftIn, .ShiftAmt, .Shifted);
|
||||||
|
|
||||||
// correct for LZA/divsqrt error
|
// correct for LZA/divsqrt error
|
||||||
divremsqrtshiftcorrection shiftcorrection(.DivResSubnorm, .DivSubnormShiftPos, .DivOp, .DivQe, .Qe, .Shifted, .Mf);
|
divremsqrtshiftcorrection #(P) shiftcorrection(.DivResSubnorm, .DivSubnormShiftPos, .DivOp, .DivQe, .Qe, .Shifted, .Mf);
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Rounding
|
// Rounding
|
||||||
@ -144,9 +144,9 @@ module divremsqrtpostprocess import cvw::*; #(parameter cvw_t P) (
|
|||||||
// round to nearest max magnitude
|
// round to nearest max magnitude
|
||||||
|
|
||||||
// calulate result sign used in rounding unit
|
// calulate result sign used in rounding unit
|
||||||
divremsqrtroundsign roundsign( .DivOp, .Sqrt, .Xs, .Ys, .Ms);
|
divremsqrtroundsign #(P) roundsign( .DivOp, .Sqrt, .Xs, .Ys, .Ms);
|
||||||
|
|
||||||
divremsqrtround round(.OutFmt, .Frm, .Plus1, .Qe,
|
divremsqrtround #(P) round(.OutFmt, .Frm, .Plus1, .Qe,
|
||||||
.Ms, .Mf, .DivSticky, .DivOp, .UfPlus1, .FullRe, .Rf, .Re, .Sticky, .Round, .Guard, .Me);
|
.Ms, .Mf, .DivSticky, .DivOp, .UfPlus1, .FullRe, .Rf, .Re, .Sticky, .Round, .Guard, .Me);
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@ -161,7 +161,7 @@ module divremsqrtpostprocess import cvw::*; #(parameter cvw_t P) (
|
|||||||
// Flags
|
// Flags
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
divremsqrtflags flags(.XSNaN, .YSNaN, .XInf, .YInf, .InfIn, .XZero, .YZero,
|
divremsqrtflags #(P) flags(.XSNaN, .YSNaN, .XInf, .YInf, .InfIn, .XZero, .YZero,
|
||||||
.Xs, .OutFmt, .Sqrt,
|
.Xs, .OutFmt, .Sqrt,
|
||||||
.NaNIn, .Round, .DivByZero,
|
.NaNIn, .Round, .DivByZero,
|
||||||
.Guard, .Sticky, .UfPlus1,.DivOp, .FullRe, .Plus1,
|
.Guard, .Sticky, .UfPlus1,.DivOp, .FullRe, .Plus1,
|
||||||
@ -173,7 +173,7 @@ module divremsqrtpostprocess import cvw::*; #(parameter cvw_t P) (
|
|||||||
|
|
||||||
//negateintres negateintres(.Xs, .Shifted, .Signed, .Int64, .Plus1, .CvtNegResMsbs, .CvtNegRes);
|
//negateintres negateintres(.Xs, .Shifted, .Signed, .Int64, .Plus1, .CvtNegResMsbs, .CvtNegRes);
|
||||||
|
|
||||||
divremsqrtspecialcase specialcase(.Xs, .Xm, .Ym, .XZero,
|
divremsqrtspecialcase #(P) specialcase(.Xs, .Xm, .Ym, .XZero,
|
||||||
.Frm, .OutFmt, .XNaN, .YNaN,
|
.Frm, .OutFmt, .XNaN, .YNaN,
|
||||||
.NaNIn, .Plus1, .Invalid, .Overflow, .InfIn,
|
.NaNIn, .Plus1, .Invalid, .Overflow, .InfIn,
|
||||||
.XInf, .YInf, .DivOp, .DivByZero, .FullRe, .Rs, .Re, .Rf, .PostProcRes );
|
.XInf, .YInf, .DivOp, .DivByZero, .FullRe, .Rs, .Re, .Rf, .PostProcRes );
|
||||||
|
@ -79,7 +79,7 @@ module drsu import cvw::*; #(parameter cvw_t P) (
|
|||||||
logic [P.NE+1:0] QeM;
|
logic [P.NE+1:0] QeM;
|
||||||
logic DivStickyM;
|
logic DivStickyM;
|
||||||
|
|
||||||
divremsqrt divremsqrt(.clk, .reset, .XsE, .FmtE, .XmE, .YmE,
|
divremsqrt #(P) divremsqrt(.clk, .reset, .XsE, .FmtE, .XmE, .YmE,
|
||||||
.XeE, .YeE, .SqrtE, .SqrtM,
|
.XeE, .YeE, .SqrtE, .SqrtM,
|
||||||
.XInfE, .YInfE, .XZeroE, .YZeroE,
|
.XInfE, .YInfE, .XZeroE, .YZeroE,
|
||||||
.XNaNE, .YNaNE,
|
.XNaNE, .YNaNE,
|
||||||
@ -89,7 +89,7 @@ module drsu import cvw::*; #(parameter cvw_t P) (
|
|||||||
.FlushE, .ForwardedSrcAE, .ForwardedSrcBE, .Funct3M,
|
.FlushE, .ForwardedSrcAE, .ForwardedSrcBE, .Funct3M,
|
||||||
.Funct3E, .IntDivE, .FIntDivResultM,
|
.Funct3E, .IntDivE, .FIntDivResultM,
|
||||||
.FDivDoneE, .IFDivStartE);
|
.FDivDoneE, .IFDivStartE);
|
||||||
divremsqrtpostprocess divremsqrtpostprocess(.Xs(XsE), .Ys(YsE), .Xm(XmE), .Ym(YmE), .Frm(Frm), .Fmt(FmtE), .OpCtrl,
|
divremsqrtpostprocess #(P) divremsqrtpostprocess(.Xs(XsE), .Ys(YsE), .Xm(XmE), .Ym(YmE), .Frm(Frm), .Fmt(FmtE), .OpCtrl,
|
||||||
.XZero(XZeroE), .YZero(YZeroE), .XInf(XInfE), .YInf(YInfE), .XNaN(XNaNE), .YNaN(YNaNE), .XSNaN(XSNaNE),
|
.XZero(XZeroE), .YZero(YZeroE), .XInf(XInfE), .YInf(YInfE), .XNaN(XNaNE), .YNaN(YNaNE), .XSNaN(XSNaNE),
|
||||||
.YSNaN(YSNaNE), .PostProcSel,.DivSticky(DivStickyM), .DivQe(QeM), .DivQm(QmM), .PostProcRes(FResM), .PostProcFlg(FlgM));
|
.YSNaN(YSNaNE), .PostProcSel,.DivSticky(DivStickyM), .DivQe(QeM), .DivQm(QmM), .PostProcRes(FResM), .PostProcFlg(FlgM));
|
||||||
endmodule
|
endmodule
|
||||||
|
Loading…
Reference in New Issue
Block a user