mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Begin commenting divsqrt
This commit is contained in:
parent
aca6f0d4e6
commit
3115df9380
@ -56,6 +56,8 @@ module fdivsqrt(
|
|||||||
// output logic [`XLEN-1:0] RemM,
|
// output logic [`XLEN-1:0] RemM,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Floating-point division and square root module, with optional integer division and remainder
|
||||||
|
|
||||||
logic [`DIVb+3:0] WS, WC;
|
logic [`DIVb+3:0] WS, WC;
|
||||||
logic [`DIVb+3:0] X;
|
logic [`DIVb+3:0] X;
|
||||||
logic [`DIVb-1:0] D;
|
logic [`DIVb-1:0] D;
|
||||||
@ -63,29 +65,43 @@ module fdivsqrt(
|
|||||||
logic [`DIVb:0] FirstU, FirstUM;
|
logic [`DIVb:0] FirstU, FirstUM;
|
||||||
logic [`DIVb+1:0] FirstC;
|
logic [`DIVb+1:0] FirstC;
|
||||||
logic Firstun;
|
logic Firstun;
|
||||||
logic WZeroE, AZeroM, BZeroM, AZeroE, BZeroE;
|
logic WZeroE;
|
||||||
logic SpecialCaseM, MDUM;
|
logic SpecialCaseM;
|
||||||
|
logic DivStartE;
|
||||||
|
|
||||||
|
// Integer div/rem signals
|
||||||
|
logic AZeroM, BZeroM, AZeroE, BZeroE, MDUM;
|
||||||
logic [`DIVBLEN:0] nE, nM, mM;
|
logic [`DIVBLEN:0] nE, nM, mM;
|
||||||
logic NegQuotM, ALTBM, AsM, W64M;
|
logic NegQuotM, ALTBM, AsM, W64M;
|
||||||
logic DivStartE;
|
|
||||||
logic [`XLEN-1:0] AM;
|
logic [`XLEN-1:0] AM;
|
||||||
|
|
||||||
fdivsqrtpreproc fdivsqrtpreproc(
|
fdivsqrtpreproc fdivsqrtpreproc( // Preprocessor
|
||||||
.clk, .IFDivStartE, .Xm(XmE), .QeM, .Xe(XeE), .Fmt(FmtE), .Ye(YeE),
|
// Inputs
|
||||||
.Sqrt(SqrtE), .Ym(YmE), .XZeroE, .X, .DPreproc, .AM, .MDUM, .W64M,
|
.clk, .IFDivStartE, .Xm(XmE), .Ym(YmE), .Xe(XeE), .Ye(YeE),
|
||||||
.nE, .nM, .mM, .NegQuotM, .ALTBM, .AZeroM, .BZeroM, .AZeroE, .BZeroE, .AsM,
|
.Fmt(FmtE), .Sqrt(SqrtE), .XZeroE, .Funct3E,
|
||||||
.ForwardedSrcAE, .ForwardedSrcBE, .Funct3E, .MDUE, .W64E);
|
// Int-specific Inputs
|
||||||
fdivsqrtfsm fdivsqrtfsm(
|
.ForwardedSrcAE, .ForwardedSrcBE, .MDUE, .W64E,
|
||||||
.clk, .reset, .FmtE, .XsE, .SqrtE, .nE,
|
// Outputs
|
||||||
.FDivBusyE, .FDivStartE, .IDivStartE, .IFDivStartE, .FDivDoneE, .StallM, .FlushE,
|
.QeM, .X, .DPreproc,
|
||||||
.XZeroE, .YZeroE, .AZeroE, .BZeroE,
|
// Int-specific Outputs
|
||||||
.XNaNE, .YNaNE, .MDUE,
|
.AZeroE, .BZeroE, .nE,
|
||||||
.XInfE, .YInfE, .WZeroE, .SpecialCaseM);
|
.AZeroM, .BZeroM, .nM, .mM, .AM,
|
||||||
fdivsqrtiter fdivsqrtiter(
|
.MDUM, .W64M, .NegQuotM, .ALTBM, .AsM);
|
||||||
|
fdivsqrtfsm fdivsqrtfsm( // FSM
|
||||||
|
// Inputs
|
||||||
|
.clk, .reset, .FmtE, .XInfE, .YInfE,
|
||||||
|
.XZeroE, .YZeroE, .XNaNE, .YNaNE,
|
||||||
|
.FDivStartE, .XsE, .SqrtE, .WZeroE,
|
||||||
|
.FlushE, .StallM,
|
||||||
|
// Int-specific Inputs
|
||||||
|
.IDivStartE, .AZeroE, .BZeroE, .nE, .MDUE,
|
||||||
|
// Outputs
|
||||||
|
.FDivBusyE, .IFDivStartE, .FDivDoneE, .SpecialCaseM);
|
||||||
|
fdivsqrtiter fdivsqrtiter( // CSA Iterator
|
||||||
.clk, .Firstun, .D, .FirstU, .FirstUM, .FirstC, .SqrtE,
|
.clk, .Firstun, .D, .FirstU, .FirstUM, .FirstC, .SqrtE,
|
||||||
.X,.DPreproc, .FirstWS(WS), .FirstWC(WC),
|
.X,.DPreproc, .FirstWS(WS), .FirstWC(WC),
|
||||||
.IFDivStartE, .FDivBusyE);
|
.IFDivStartE, .FDivBusyE);
|
||||||
fdivsqrtpostproc fdivsqrtpostproc(
|
fdivsqrtpostproc fdivsqrtpostproc( // Postprocessor
|
||||||
.clk, .reset, .StallM,
|
.clk, .reset, .StallM,
|
||||||
.WS, .WC, .D, .FirstU, .FirstUM, .FirstC, .SqrtE, .Firstun,
|
.WS, .WC, .D, .FirstU, .FirstUM, .FirstC, .SqrtE, .Firstun,
|
||||||
.SqrtM, .SpecialCaseM, .RemOpM(Funct3M[1]), .AM,
|
.SqrtM, .SpecialCaseM, .RemOpM(Funct3M[1]), .AM,
|
||||||
|
Loading…
Reference in New Issue
Block a user