forked from Github_Repos/cvw
		
	Rename FP and FPU to F in signal names
This commit is contained in:
		
							parent
							
								
									15026f61f7
								
							
						
					
					
						commit
						d1bfdddd8c
					
				@ -47,7 +47,7 @@ module fdivsqrt(
 | 
				
			|||||||
  output logic FDivBusyE, IFDivStartE, FDivDoneE,
 | 
					  output logic FDivBusyE, IFDivStartE, FDivDoneE,
 | 
				
			||||||
  output logic [`NE+1:0] QeM,
 | 
					  output logic [`NE+1:0] QeM,
 | 
				
			||||||
  output logic [`DIVb:0] QmM,
 | 
					  output logic [`DIVb:0] QmM,
 | 
				
			||||||
  output logic [`XLEN-1:0] FPIntDivResultM
 | 
					  output logic [`XLEN-1:0] FIntDivResultM
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Floating-point division and square root module, with optional integer division and remainder
 | 
					  // Floating-point division and square root module, with optional integer division and remainder
 | 
				
			||||||
@ -97,5 +97,5 @@ module fdivsqrt(
 | 
				
			|||||||
    .QmM, .WZeroE, .DivStickyM, 
 | 
					    .QmM, .WZeroE, .DivStickyM, 
 | 
				
			||||||
    // Int-specific 
 | 
					    // Int-specific 
 | 
				
			||||||
    .nM, .mM, .ALTBM, .AsM, .BZeroM, .NegQuotM, .W64M, .RemOpM(Funct3M[1]), .AM, 
 | 
					    .nM, .mM, .ALTBM, .AsM, .BZeroM, .NegQuotM, .W64M, .RemOpM(Funct3M[1]), .AM, 
 | 
				
			||||||
    .FPIntDivResultM);
 | 
					    .FIntDivResultM);
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
@ -41,7 +41,7 @@ module fdivsqrtpostproc(
 | 
				
			|||||||
  output logic [`DIVb:0]    QmM, 
 | 
					  output logic [`DIVb:0]    QmM, 
 | 
				
			||||||
  output logic              WZeroE,
 | 
					  output logic              WZeroE,
 | 
				
			||||||
  output logic              DivStickyM,
 | 
					  output logic              DivStickyM,
 | 
				
			||||||
  output logic [`XLEN-1:0]  FPIntDivResultM
 | 
					  output logic [`XLEN-1:0]  FIntDivResultM
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  logic [`DIVb+3:0] W, Sum, DM;
 | 
					  logic [`DIVb+3:0] W, Sum, DM;
 | 
				
			||||||
@ -129,8 +129,8 @@ module fdivsqrtpostproc(
 | 
				
			|||||||
    if (`XLEN==64) begin
 | 
					    if (`XLEN==64) begin
 | 
				
			||||||
      mux2 #(64) resmux(IntDivResultM[`XLEN-1:0], 
 | 
					      mux2 #(64) resmux(IntDivResultM[`XLEN-1:0], 
 | 
				
			||||||
        {{(`XLEN-32){IntDivResultM[31]}}, IntDivResultM[31:0]}, // Sign extending in case of W64
 | 
					        {{(`XLEN-32){IntDivResultM[31]}}, IntDivResultM[31:0]}, // Sign extending in case of W64
 | 
				
			||||||
        W64M, FPIntDivResultM);
 | 
					        W64M, FIntDivResultM);
 | 
				
			||||||
    end else 
 | 
					    end else 
 | 
				
			||||||
      assign FPIntDivResultM = IntDivResultM[`XLEN-1:0];
 | 
					      assign FIntDivResultM = IntDivResultM[`XLEN-1:0];
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
@ -54,7 +54,7 @@ module fhazard(
 | 
				
			|||||||
      // if the result will be FResM (can be taken from the memory stage)
 | 
					      // if the result will be FResM (can be taken from the memory stage)
 | 
				
			||||||
      if(FResSelM == 2'b00) ForwardXE = 2'b10; // choose FResM
 | 
					      if(FResSelM == 2'b00) ForwardXE = 2'b10; // choose FResM
 | 
				
			||||||
      // if the needed value is in the writeback stage
 | 
					      // if the needed value is in the writeback stage
 | 
				
			||||||
    end else if ((Adr1E == RdW) & FRegWriteW) ForwardXE = 2'b01; // choose FPUResult64W
 | 
					    end else if ((Adr1E == RdW) & FRegWriteW) ForwardXE = 2'b01; // choose FResult64W
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // if the needed value is in the memory stage - input 2
 | 
					    // if the needed value is in the memory stage - input 2
 | 
				
			||||||
@ -62,7 +62,7 @@ module fhazard(
 | 
				
			|||||||
      // if the result will be FResM (can be taken from the memory stage)
 | 
					      // if the result will be FResM (can be taken from the memory stage)
 | 
				
			||||||
      if(FResSelM == 2'b00) ForwardYE = 2'b10; // choose FResM
 | 
					      if(FResSelM == 2'b00) ForwardYE = 2'b10; // choose FResM
 | 
				
			||||||
      // if the needed value is in the writeback stage
 | 
					      // if the needed value is in the writeback stage
 | 
				
			||||||
    end else if ((Adr2E == RdW) & FRegWriteW) ForwardYE = 2'b01; // choose FPUResult64W
 | 
					    end else if ((Adr2E == RdW) & FRegWriteW) ForwardYE = 2'b01; // choose FResult64W
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // if the needed value is in the memory stage - input 3
 | 
					    // if the needed value is in the memory stage - input 3
 | 
				
			||||||
@ -70,7 +70,7 @@ module fhazard(
 | 
				
			|||||||
      // if the result will be FResM (can be taken from the memory stage)
 | 
					      // if the result will be FResM (can be taken from the memory stage)
 | 
				
			||||||
      if(FResSelM == 2'b00) ForwardZE = 2'b10; // choose FResM
 | 
					      if(FResSelM == 2'b00) ForwardZE = 2'b10; // choose FResM
 | 
				
			||||||
      // if the needed value is in the writeback stage
 | 
					      // if the needed value is in the writeback stage
 | 
				
			||||||
    end else if ((Adr3E == RdW) & FRegWriteW) ForwardZE = 2'b01; // choose FPUResult64W
 | 
					    end else if ((Adr3E == RdW) & FRegWriteW) ForwardZE = 2'b01; // choose FResult64W
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  end 
 | 
					  end 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -60,7 +60,7 @@ module fpu (
 | 
				
			|||||||
   input  logic [`FLEN-1:0]  ReadDataW,     // Read data (from LSU)
 | 
					   input  logic [`FLEN-1:0]  ReadDataW,     // Read data (from LSU)
 | 
				
			||||||
   output logic [`XLEN-1:0]  FCvtIntResW,   // convert result to to be written to integer register (to IEU)
 | 
					   output logic [`XLEN-1:0]  FCvtIntResW,   // convert result to to be written to integer register (to IEU)
 | 
				
			||||||
   output logic              FCvtIntW,      // select FCvtIntRes (to IEU)
 | 
					   output logic              FCvtIntW,      // select FCvtIntRes (to IEU)
 | 
				
			||||||
   output logic [`XLEN-1:0]  FPIntDivResultW // Result from integer division (to IEU)
 | 
					   output logic [`XLEN-1:0]  FIntDivResultW // Result from integer division (to IEU)
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   // RISC-V FPU specifics:
 | 
					   // RISC-V FPU specifics:
 | 
				
			||||||
@ -133,7 +133,7 @@ module fpu (
 | 
				
			|||||||
   logic [`NE+1:0]      QeM;                               // fdivsqrt exponent
 | 
					   logic [`NE+1:0]      QeM;                               // fdivsqrt exponent
 | 
				
			||||||
   logic                DivStickyM;                        // fdivsqrt sticky bit
 | 
					   logic                DivStickyM;                        // fdivsqrt sticky bit
 | 
				
			||||||
   logic                FDivDoneE, IFDivStartE;            // fdivsqrt control signals
 | 
					   logic                FDivDoneE, IFDivStartE;            // fdivsqrt control signals
 | 
				
			||||||
   logic [`XLEN-1:0]    FPIntDivResultM;                   // fdivsqrt integer division result (for IEU)
 | 
					   logic [`XLEN-1:0]    FIntDivResultM;                   // fdivsqrt integer division result (for IEU)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   // result and flag signals
 | 
					   // result and flag signals
 | 
				
			||||||
   logic [`XLEN-1:0] ClassResE;                            // classify result
 | 
					   logic [`XLEN-1:0] ClassResE;                            // classify result
 | 
				
			||||||
@ -147,7 +147,7 @@ module fpu (
 | 
				
			|||||||
   logic [`FLEN-1:0] SgnResE;                   // sign injection result
 | 
					   logic [`FLEN-1:0] SgnResE;                   // sign injection result
 | 
				
			||||||
   logic [`FLEN-1:0] PreFpResE, PreFpResM;                // selected result that is ready in the memory stage
 | 
					   logic [`FLEN-1:0] PreFpResE, PreFpResM;                // selected result that is ready in the memory stage
 | 
				
			||||||
   logic  	         PreNVE, PreNVM;                       // selected flag that is ready in the memory stage     
 | 
					   logic  	         PreNVE, PreNVM;                       // selected flag that is ready in the memory stage     
 | 
				
			||||||
   logic [`FLEN-1:0] FPUResultW;                         // final FP result being written to the FP register     
 | 
					   logic [`FLEN-1:0] FResultW;                         // final FP result being written to the FP register     
 | 
				
			||||||
   // other signals
 | 
					   // other signals
 | 
				
			||||||
   logic [`FLEN-1:0] 	 AlignedSrcAE;                       // align SrcA to the floating point format
 | 
					   logic [`FLEN-1:0] 	 AlignedSrcAE;                       // align SrcA to the floating point format
 | 
				
			||||||
   logic [`FLEN-1:0]     BoxedZeroE;                         // Zero value for Z for multiplication, with NaN boxing if needed
 | 
					   logic [`FLEN-1:0]     BoxedZeroE;                         // Zero value for Z for multiplication, with NaN boxing if needed
 | 
				
			||||||
@ -177,7 +177,7 @@ module fpu (
 | 
				
			|||||||
   // FP register file
 | 
					   // FP register file
 | 
				
			||||||
   fregfile fregfile (.clk, .reset, .we4(FRegWriteW),
 | 
					   fregfile fregfile (.clk, .reset, .we4(FRegWriteW),
 | 
				
			||||||
      .a1(InstrD[19:15]), .a2(InstrD[24:20]), .a3(InstrD[31:27]), 
 | 
					      .a1(InstrD[19:15]), .a2(InstrD[24:20]), .a3(InstrD[31:27]), 
 | 
				
			||||||
      .a4(RdW), .wd4(FPUResultW),
 | 
					      .a4(RdW), .wd4(FResultW),
 | 
				
			||||||
      .rd1(FRD1D), .rd2(FRD2D), .rd3(FRD3D));	
 | 
					      .rd1(FRD1D), .rd2(FRD2D), .rd3(FRD3D));	
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   // D/E pipeline registers  
 | 
					   // D/E pipeline registers  
 | 
				
			||||||
@ -203,9 +203,9 @@ module fpu (
 | 
				
			|||||||
                   .XEnD, .YEnD, .ZEnD, .FPUStallD, .ForwardXE, .ForwardYE, .ForwardZE);
 | 
					                   .XEnD, .YEnD, .ZEnD, .FPUStallD, .ForwardXE, .ForwardYE, .ForwardZE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   // forwarding muxs
 | 
					   // forwarding muxs
 | 
				
			||||||
   mux3  #(`FLEN)  fxemux (FRD1E, FPUResultW, PreFpResM, ForwardXE, XE);
 | 
					   mux3  #(`FLEN)  fxemux (FRD1E, FResultW, PreFpResM, ForwardXE, XE);
 | 
				
			||||||
   mux3  #(`FLEN)  fyemux (FRD2E, FPUResultW, PreFpResM, ForwardYE, PreYE);
 | 
					   mux3  #(`FLEN)  fyemux (FRD2E, FResultW, PreFpResM, ForwardYE, PreYE);
 | 
				
			||||||
   mux3  #(`FLEN)  fzemux (FRD3E, FPUResultW, PreFpResM, ForwardZE, PreZE);
 | 
					   mux3  #(`FLEN)  fzemux (FRD3E, FResultW, PreFpResM, ForwardZE, PreZE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   generate
 | 
					   generate
 | 
				
			||||||
@ -268,7 +268,7 @@ module fpu (
 | 
				
			|||||||
                  .XInfE, .YInfE, .XZeroE, .YZeroE, .XNaNE, .YNaNE, .FDivStartE, .IDivStartE, .XsE,
 | 
					                  .XInfE, .YInfE, .XZeroE, .YZeroE, .XNaNE, .YNaNE, .FDivStartE, .IDivStartE, .XsE,
 | 
				
			||||||
                  .ForwardedSrcAE, .ForwardedSrcBE, .Funct3E, .Funct3M, .IntDivE, .W64E,
 | 
					                  .ForwardedSrcAE, .ForwardedSrcBE, .Funct3E, .Funct3M, .IntDivE, .W64E,
 | 
				
			||||||
                  .StallM, .FlushE, .DivStickyM, .FDivBusyE, .IFDivStartE, .FDivDoneE, .QeM, 
 | 
					                  .StallM, .FlushE, .DivStickyM, .FDivBusyE, .IFDivStartE, .FDivDoneE, .QeM, 
 | 
				
			||||||
                  .QmM, .FPIntDivResultM /*, .DivDone(DivDoneM) */);
 | 
					                  .QmM, .FIntDivResultM /*, .DivDone(DivDoneM) */);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                  //
 | 
					                  //
 | 
				
			||||||
   // compare
 | 
					   // compare
 | 
				
			||||||
@ -388,7 +388,7 @@ module fpu (
 | 
				
			|||||||
   // M/W pipe registers
 | 
					   // M/W pipe registers
 | 
				
			||||||
   flopenrc #(`FLEN) MWRegFp(clk, reset, FlushW, ~StallW, FpResM, FpResW); 
 | 
					   flopenrc #(`FLEN) MWRegFp(clk, reset, FlushW, ~StallW, FpResM, FpResW); 
 | 
				
			||||||
   flopenrc #(`XLEN) MWRegIntCvtRes(clk, reset, FlushW, ~StallW, FCvtIntResM, FCvtIntResW); 
 | 
					   flopenrc #(`XLEN) MWRegIntCvtRes(clk, reset, FlushW, ~StallW, FCvtIntResM, FCvtIntResW); 
 | 
				
			||||||
   flopenrc #(`XLEN) MWRegIntDivRes(clk, reset, FlushW, ~StallW, FPIntDivResultM, FPIntDivResultW); 
 | 
					   flopenrc #(`XLEN) MWRegIntDivRes(clk, reset, FlushW, ~StallW, FIntDivResultM, FIntDivResultW); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   // BEGIN WRITEBACK STAGE
 | 
					   // BEGIN WRITEBACK STAGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -403,6 +403,6 @@ module fpu (
 | 
				
			|||||||
   //////////////////////////////////////////////////////////////////////////////////////////
 | 
					   //////////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   // select the result to be written to the FP register
 | 
					   // select the result to be written to the FP register
 | 
				
			||||||
   mux2  #(`FLEN)  FPUResultMux (FpResW, ReadDataW, FResSelW[1], FPUResultW);
 | 
					   mux2  #(`FLEN)  FResultMux (FpResW, ReadDataW, FResSelW[1], FResultW);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
endmodule // fpu
 | 
					endmodule // fpu
 | 
				
			||||||
 | 
				
			|||||||
@ -59,7 +59,7 @@ module datapath (
 | 
				
			|||||||
  input logic [`XLEN-1:0]  FCvtIntResW,
 | 
					  input logic [`XLEN-1:0]  FCvtIntResW,
 | 
				
			||||||
  input logic [`XLEN-1:0] ReadDataW,
 | 
					  input logic [`XLEN-1:0] ReadDataW,
 | 
				
			||||||
  input  logic [`XLEN-1:0] CSRReadValW, MDUResultW, 
 | 
					  input  logic [`XLEN-1:0] CSRReadValW, MDUResultW, 
 | 
				
			||||||
  input logic [`XLEN-1:0] FPIntDivResultW,
 | 
					  input logic [`XLEN-1:0] FIntDivResultW,
 | 
				
			||||||
   // Hazard Unit signals 
 | 
					   // Hazard Unit signals 
 | 
				
			||||||
  output logic [4:0]       Rs1D, Rs2D, Rs1E, Rs2E,
 | 
					  output logic [4:0]       Rs1D, Rs2D, Rs1E, Rs2E,
 | 
				
			||||||
  output logic [4:0]       RdE, RdM, RdW 
 | 
					  output logic [4:0]       RdE, RdM, RdW 
 | 
				
			||||||
@ -122,7 +122,7 @@ module datapath (
 | 
				
			|||||||
    mux2  #(`XLEN)  resultmuxM(IEUResultM, FIntResM, FWriteIntM, IFResultM);
 | 
					    mux2  #(`XLEN)  resultmuxM(IEUResultM, FIntResM, FWriteIntM, IFResultM);
 | 
				
			||||||
    mux2  #(`XLEN)  cvtresultmuxW(IFResultW, FCvtIntResW, FCvtIntW, IFCvtResultW);
 | 
					    mux2  #(`XLEN)  cvtresultmuxW(IFResultW, FCvtIntResW, FCvtIntW, IFCvtResultW);
 | 
				
			||||||
    if (`IDIV_ON_FPU) begin
 | 
					    if (`IDIV_ON_FPU) begin
 | 
				
			||||||
      mux2  #(`XLEN)  divresultmuxW(MDUResultW, FPIntDivResultW, IntDivW, MulDivResultW);
 | 
					      mux2  #(`XLEN)  divresultmuxW(MDUResultW, FIntDivResultW, IntDivW, MulDivResultW);
 | 
				
			||||||
    end else begin 
 | 
					    end else begin 
 | 
				
			||||||
      assign MulDivResultW = MDUResultW;
 | 
					      assign MulDivResultW = MDUResultW;
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
				
			|||||||
@ -54,7 +54,7 @@ module ieu (
 | 
				
			|||||||
  output logic       InvalidateICacheM, FlushDCacheM,
 | 
					  output logic       InvalidateICacheM, FlushDCacheM,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Writeback stage
 | 
					  // Writeback stage
 | 
				
			||||||
  input logic [`XLEN-1:0] FPIntDivResultW,
 | 
					  input logic [`XLEN-1:0] FIntDivResultW,
 | 
				
			||||||
  input logic [`XLEN-1:0]  CSRReadValW, MDUResultW,
 | 
					  input logic [`XLEN-1:0]  CSRReadValW, MDUResultW,
 | 
				
			||||||
  input logic [`XLEN-1:0]  FCvtIntResW,
 | 
					  input logic [`XLEN-1:0]  FCvtIntResW,
 | 
				
			||||||
  output logic [4:0]       RdW,
 | 
					  output logic [4:0]       RdW,
 | 
				
			||||||
@ -104,7 +104,7 @@ module ieu (
 | 
				
			|||||||
    .PCE, .PCLinkE, .FlagsE, .IEUAdrE, .ForwardedSrcAE, .ForwardedSrcBE, 
 | 
					    .PCE, .PCLinkE, .FlagsE, .IEUAdrE, .ForwardedSrcAE, .ForwardedSrcBE, 
 | 
				
			||||||
    .StallM, .FlushM, .FWriteIntM, .FIntResM, .SrcAM, .WriteDataM, .FCvtIntW,
 | 
					    .StallM, .FlushM, .FWriteIntM, .FIntResM, .SrcAM, .WriteDataM, .FCvtIntW,
 | 
				
			||||||
    .StallW, .FlushW, .RegWriteW, .IntDivW, .SquashSCW, .ResultSrcW, .ReadDataW, .FCvtIntResW,
 | 
					    .StallW, .FlushW, .RegWriteW, .IntDivW, .SquashSCW, .ResultSrcW, .ReadDataW, .FCvtIntResW,
 | 
				
			||||||
    .CSRReadValW, .MDUResultW, .FPIntDivResultW, .Rs1D, .Rs2D, .Rs1E, .Rs2E, .RdE, .RdM, .RdW);             
 | 
					    .CSRReadValW, .MDUResultW, .FIntDivResultW, .Rs1D, .Rs2D, .Rs1E, .Rs2E, .RdE, .RdM, .RdW);             
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  forward    fw(
 | 
					  forward    fw(
 | 
				
			||||||
    .Rs1D, .Rs2D, .Rs1E, .Rs2E, .RdE, .RdM, .RdW,
 | 
					    .Rs1D, .Rs2D, .Rs1E, .Rs2E, .RdE, .RdM, .RdW,
 | 
				
			||||||
 | 
				
			|||||||
@ -93,7 +93,7 @@ module wallypipelinedcore (
 | 
				
			|||||||
  logic             FCvtIntStallD;
 | 
					  logic             FCvtIntStallD;
 | 
				
			||||||
  logic             FpLoadStoreM;
 | 
					  logic             FpLoadStoreM;
 | 
				
			||||||
  logic [4:0]             SetFflagsM;
 | 
					  logic [4:0]             SetFflagsM;
 | 
				
			||||||
  logic [`XLEN-1:0] FPIntDivResultW;
 | 
					  logic [`XLEN-1:0] FIntDivResultW;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // memory management unit signals
 | 
					  // memory management unit signals
 | 
				
			||||||
  logic             ITLBWriteF;
 | 
					  logic             ITLBWriteF;
 | 
				
			||||||
@ -223,7 +223,7 @@ module wallypipelinedcore (
 | 
				
			|||||||
     .RdE, .RdM, .FIntResM, .InvalidateICacheM, .FlushDCacheM,
 | 
					     .RdE, .RdM, .FIntResM, .InvalidateICacheM, .FlushDCacheM,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     // Writeback stage
 | 
					     // Writeback stage
 | 
				
			||||||
     .CSRReadValW, .MDUResultW, .FPIntDivResultW,
 | 
					     .CSRReadValW, .MDUResultW, .FIntDivResultW,
 | 
				
			||||||
     .RdW, .ReadDataW(ReadDataW[`XLEN-1:0]),
 | 
					     .RdW, .ReadDataW(ReadDataW[`XLEN-1:0]),
 | 
				
			||||||
     .InstrValidM, 
 | 
					     .InstrValidM, 
 | 
				
			||||||
     .FCvtIntResW,
 | 
					     .FCvtIntResW,
 | 
				
			||||||
@ -401,7 +401,7 @@ module wallypipelinedcore (
 | 
				
			|||||||
         .FDivBusyE, // Is the divide/sqrt unit busy (stall execute stage)
 | 
					         .FDivBusyE, // Is the divide/sqrt unit busy (stall execute stage)
 | 
				
			||||||
         .IllegalFPUInstrM, // Is the instruction an illegal fpu instruction
 | 
					         .IllegalFPUInstrM, // Is the instruction an illegal fpu instruction
 | 
				
			||||||
         .SetFflagsM,        // FPU flags (to privileged unit)
 | 
					         .SetFflagsM,        // FPU flags (to privileged unit)
 | 
				
			||||||
         .FPIntDivResultW
 | 
					         .FIntDivResultW
 | 
				
			||||||
      ); // floating point unit
 | 
					      ); // floating point unit
 | 
				
			||||||
   end else begin // no F_SUPPORTED or D_SUPPORTED; tie outputs low
 | 
					   end else begin // no F_SUPPORTED or D_SUPPORTED; tie outputs low
 | 
				
			||||||
      assign FPUStallD = 0;
 | 
					      assign FPUStallD = 0;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user