mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Removed unused FPU signals
This commit is contained in:
		
							parent
							
								
									2b1e9f8bed
								
							
						
					
					
						commit
						820e1ab510
					
				| @ -37,9 +37,7 @@ module fma( | ||||
|     input logic                 XZero, YZero, ZZero, // is the input zero
 | ||||
|     input logic  [2:0]          OpCtrl,   // 000 = fmadd (X*Y)+Z,  001 = fmsub (X*Y)-Z,  010 = fnmsub -(X*Y)+Z,  011 = fnmadd -(X*Y)-Z,  100 = fmul (X*Y)
 | ||||
|     input logic  [`FMTBITS-1:0] Fmt,       // format of the result single double half or quad
 | ||||
|     output logic [`NE+1:0]      Pe,       // the product's exponent B(NE+2.0) format; adds 2 bits to allow for size of number and negative sign
 | ||||
|     output logic                ZmSticky,  // sticky bit that is calculated during alignment
 | ||||
|     output logic                KillProd,  // set the product to zero before addition if the product is too small to matter
 | ||||
|     output logic [3*`NF+5:0]    Sm,           // the positive sum's significand
 | ||||
|     output logic                InvA,          // Was A inverted for effective subtraction (P-A or -P+A)
 | ||||
|     output logic                As,       // the aligned addend's sign (modified Z sign for other opperations)
 | ||||
| @ -47,12 +45,15 @@ module fma( | ||||
|     output logic                Ss,          // the sum's sign
 | ||||
|     output logic [`NE+1:0]      Se, | ||||
|     output logic [$clog2(3*`NF+7)-1:0]          SCnt        // normalization shift count
 | ||||
|     ); | ||||
| ); | ||||
| 
 | ||||
|     logic [2*`NF+1:0]   Pm;           // the product's significand in U(2.2Nf) format
 | ||||
|     logic [3*`NF+5:0]   Am;     // addend aligned's mantissa for addition in U(NF+5.2NF+1)
 | ||||
|     logic [3*`NF+5:0]   AmInv;   // aligned addend's mantissa possibly inverted
 | ||||
|     logic [2*`NF+1:0]   PmKilled;      // the product's mantissa possibly killed
 | ||||
|     logic               KillProd;  // set the product to zero before addition if the product is too small to matter
 | ||||
|     logic [`NE+1:0]     Pe;       // the product's exponent B(NE+2.0) format; adds 2 bits to allow for size of number and negative sign
 | ||||
| 
 | ||||
|     ///////////////////////////////////////////////////////////////////////////////
 | ||||
|     // Calculate the product
 | ||||
|     //      - When multipliying two fp numbers, add the exponents
 | ||||
|  | ||||
| @ -108,10 +108,8 @@ module fpu ( | ||||
| 
 | ||||
|    // Fma Signals
 | ||||
|    logic [3*`NF+5:0] SmE, SmM;                        | ||||
|    logic [`NE+1:0]	PeE, PeM; | ||||
|    logic 			   ZmStickyE, ZmStickyM; | ||||
|    logic [`NE+1:0]   SeE,SeM; | ||||
|    logic 			   KillProdE, KillProdM; | ||||
|    logic 			   InvAE, InvAM; | ||||
|    logic 			   AsE, AsM; | ||||
|    logic 			   PsE, PsM; | ||||
| @ -256,9 +254,9 @@ module fpu ( | ||||
|             .XZero(XZeroE), .YZero(YZeroE), .ZZero(ZZeroE),  | ||||
|             .OpCtrl(OpCtrlE), .Fmt(FmtE),  | ||||
|             .As(AsE), .Ps(PsE), .Ss(SsE), .Se(SeE), | ||||
|             .Sm(SmE), .Pe(PeE),  | ||||
|             .Sm(SmE),  | ||||
|             .InvA(InvAE), .SCnt(SCntE),  | ||||
|             .ZmSticky(ZmStickyE), .KillProd(KillProdE));  | ||||
|             .ZmSticky(ZmStickyE));  | ||||
| 
 | ||||
|    // divide and squareroot
 | ||||
|    //    - fdiv
 | ||||
| @ -353,10 +351,9 @@ module fpu ( | ||||
|             {XsM, YsM, XZeroM, YZeroM, ZZeroM, XInfM, YInfM, ZInfM, XNaNM, YNaNM, ZNaNM, XSNaNM, YSNaNM, ZSNaNM, ZDenormM});      | ||||
|    flopenrc #(1)  EMRegCmpFlg (clk, reset, FlushM, ~StallM, PreNVE, PreNVM);       | ||||
|    flopenrc #(3*`NF+6) EMRegFma2(clk, reset, FlushM, ~StallM, SmE, SmM);  | ||||
|    flopenrc #(`NE+2) EMRegFma3(clk, reset, FlushM, ~StallM, PeE, PeM);   | ||||
|    flopenrc #($clog2(3*`NF+7)+8+`NE) EMRegFma4(clk, reset, FlushM, ~StallM,  | ||||
|                            {ZmStickyE, KillProdE, InvAE, SCntE, AsE, PsE, SsE, SeE}, | ||||
|                            {ZmStickyM, KillProdM, InvAM, SCntM, AsM, PsM, SsM, SeM}); | ||||
|   flopenrc #($clog2(3*`NF+7)+7+`NE) EMRegFma4(clk, reset, FlushM, ~StallM,  | ||||
|                            {ZmStickyE, InvAE, SCntE, AsE, PsE, SsE, SeE}, | ||||
|                            {ZmStickyM, InvAM, SCntM, AsM, PsM, SsM, SeM}); | ||||
|    flopenrc #(`NE+`LOGCVTLEN+`CVTLEN+4) EMRegCvt(clk, reset, FlushM, ~StallM,  | ||||
|                            {CeE, CvtShiftAmtE, CvtResDenormUfE, CsE, IntZeroE, CvtLzcInE}, | ||||
|                            {CeM, CvtShiftAmtM, CvtResDenormUfM, CsM, IntZeroM, CvtLzcInM}); | ||||
| @ -375,8 +372,8 @@ module fpu ( | ||||
| 
 | ||||
|    assign FpLoadStoreM = FResSelM[1]; | ||||
| 
 | ||||
|    postprocess postprocess(.Xs(XsM), .Ys(YsM), .Ze(ZeM), .Xm(XmM), .Ym(YmM), .Zm(ZmM), .Frm(FrmM), .Fmt(FmtM), .FmaPe(PeM),  | ||||
|                            .FmaZmS(ZmStickyM), .FmaKillProd(KillProdM), .XZero(XZeroM), .YZero(YZeroM), .ZZero(ZZeroM), .XInf(XInfM), .YInf(YInfM), .DivQm(QmM), .FmaSs(SsM), | ||||
|    postprocess postprocess(.Xs(XsM), .Ys(YsM), .Ze(ZeM), .Xm(XmM), .Ym(YmM), .Zm(ZmM), .Frm(FrmM), .Fmt(FmtM),  | ||||
|                            .FmaZmS(ZmStickyM), .XZero(XZeroM), .YZero(YZeroM), .ZZero(ZZeroM), .XInf(XInfM), .YInf(YInfM), .DivQm(QmM), .FmaSs(SsM), | ||||
|                            .ZInf(ZInfM), .XNaN(XNaNM), .YNaN(YNaNM), .ZNaN(ZNaNM), .XSNaN(XSNaNM), .YSNaN(YSNaNM), .ZSNaN(ZSNaNM), .FmaSm(SmM), .DivQe(QeM), /*.DivDone(DivDoneM), */ | ||||
|                            .ZDenorm(ZDenormM), .FmaAs(AsM), .FmaPs(PsM), .OpCtrl(OpCtrlM), .FmaSCnt(SCntM), .FmaSe(SeM), | ||||
|                            .CvtCe(CeM), .CvtResDenormUf(CvtResDenormUfM),.CvtShiftAmt(CvtShiftAmtM), .CvtCs(CsM), .ToInt(FWriteIntM), .DivS(DivSM), | ||||
|  | ||||
| @ -32,10 +32,8 @@ | ||||
| module fmashiftcalc( | ||||
|     input logic  [3*`NF+5:0]            FmaSm,       // the positive sum
 | ||||
|     input logic  [`NE-1:0]              Ze,      // exponent of Z
 | ||||
|     input logic  [`NE+1:0]              FmaPe,   // X exponent + Y exponent - bias
 | ||||
|     input logic  [$clog2(3*`NF+7)-1:0]  FmaSCnt,   // normalization shift count
 | ||||
|     input logic  [`FMTBITS-1:0]         Fmt,       // precision 1 = double 0 = single
 | ||||
|     input logic                         FmaKillProd,  // is the product set to zero
 | ||||
|     input logic [`NE+1:0] FmaSe, | ||||
|     output logic [`NE+1:0]              NormSumExp,          // exponent of the normalized sum not taking into account denormal or zero results
 | ||||
|     output logic                        FmaSZero,    // is the result denormalized - calculated before LZA corection
 | ||||
|  | ||||
| @ -48,10 +48,8 @@ module postprocess ( | ||||
|     input logic                             FmaAs,   // the modified Z sign - depends on instruction
 | ||||
|     input logic                             FmaPs,      // the product's sign
 | ||||
|     input logic  [`NE+1:0]                  FmaSe, | ||||
|     input logic  [`NE+1:0]                  FmaPe,       // Product exponent
 | ||||
|     input logic  [3*`NF+5:0]                FmaSm,       // the positive sum
 | ||||
|     input logic                             FmaZmS,  // sticky bit that is calculated during alignment
 | ||||
|     input logic                             FmaKillProd,      // set the product to zero before addition if the product is too small to matter
 | ||||
|     input logic                             FmaSs, | ||||
|     input logic  [$clog2(3*`NF+7)-1:0]      FmaSCnt,   // the normalization shift count
 | ||||
|     //divide signals
 | ||||
| @ -148,7 +146,7 @@ module postprocess ( | ||||
| 
 | ||||
|     cvtshiftcalc cvtshiftcalc(.ToInt, .CvtCe, .CvtResDenormUf, .Xm, .CvtLzcIn,   | ||||
|                               .XZero, .IntToFp, .OutFmt, .CvtResUf, .CvtShiftIn); | ||||
|     fmashiftcalc fmashiftcalc(.FmaSm, .Ze, .FmaPe, .FmaSCnt, .Fmt, .FmaKillProd, .NormSumExp, .FmaSe, | ||||
|     fmashiftcalc fmashiftcalc(.FmaSm, .Ze, .FmaSCnt, .Fmt, .NormSumExp, .FmaSe, | ||||
|                           .FmaSZero, .FmaPreResultDenorm, .FmaShiftAmt, .FmaShiftIn); | ||||
|     divshiftcalc divshiftcalc(.Fmt, .Sqrt, .DivQe, .DivQm, .DivResDenorm, .DivDenormShiftPos, .DivShiftAmt, .DivShiftIn); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user