forked from Github_Repos/cvw
		
	cacheway cleanup
This commit is contained in:
		
							parent
							
								
									7f237220dd
								
							
						
					
					
						commit
						4d09510af9
					
				
							
								
								
									
										18
									
								
								pipelined/src/cache/cacheway.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								pipelined/src/cache/cacheway.sv
									
									
									
									
										vendored
									
									
								
							@ -117,14 +117,6 @@ module cacheway #(parameter NUMLINES=512, parameter LINELEN = 256, TAGLEN = 26,
 | 
			
		||||
    else if (SetValidD   & (WriteEnableD | VDWriteEnableD)) ValidBits[RAdrD] <= #1 1'b1;
 | 
			
		||||
    else if (ClearValidD & (WriteEnableD | VDWriteEnableD)) ValidBits[RAdrD] <= #1 1'b0;
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
/*  always_ff @(posedge clk) begin // pipeline register; helps timing ***Ross consider further
 | 
			
		||||
    RAdrD          <= #1 RAdr;
 | 
			
		||||
    SetValidD      <= #1 SetValid;
 | 
			
		||||
    ClearValidD    <= #1 ClearValid;    
 | 
			
		||||
    WriteEnableD   <= #1 WriteEnable;
 | 
			
		||||
    VDWriteEnableD <= #1 VDWriteEnable;
 | 
			
		||||
  end */
 | 
			
		||||
  flop #($clog2(NUMLINES)) RAdrDelayReg(clk, RAdr, RAdrD);
 | 
			
		||||
  flop #(4) ValidCtrlDelayReg(clk, {SetValid, ClearValid, WriteEnable, VDWriteEnable},
 | 
			
		||||
    {SetValidD, ClearValidD, WriteEnableD, VDWriteEnableD});
 | 
			
		||||
@ -142,16 +134,8 @@ module cacheway #(parameter NUMLINES=512, parameter LINELEN = 256, TAGLEN = 26,
 | 
			
		||||
      else if (ClearDirtyD & (WriteEnableD | VDWriteEnableD)) DirtyBits[RAdrD] <= #1 1'b0;
 | 
			
		||||
    end
 | 
			
		||||
    flop #(2) DirtyCtlDelayReg(clk, {SetDirty, ClearDirty}, {SetDirtyD, ClearDirtyD});
 | 
			
		||||
/*    always_ff @(posedge clk) begin
 | 
			
		||||
      SetDirtyD <= SetDirty;
 | 
			
		||||
      ClearDirtyD <= ClearDirty;
 | 
			
		||||
    end */
 | 
			
		||||
    assign Dirty = DirtyBits[RAdrD];
 | 
			
		||||
  end else begin:dirty
 | 
			
		||||
    assign Dirty = 1'b0;
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  end else assign Dirty = 1'b0;
 | 
			
		||||
endmodule // DCacheCacheWays
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -125,7 +125,7 @@ module datapath (
 | 
			
		||||
  // Writeback stage pipeline register and logic
 | 
			
		||||
  flopenrc #(`XLEN) ResultWReg(clk, reset, FlushW, ~StallW, ResultM, ResultW);
 | 
			
		||||
  flopenrc #(5)     RdWReg(clk, reset, FlushW, ~StallW, RdM, RdW);
 | 
			
		||||
  flopen #(`XLEN)   ReadDataWReg(.clk, .en(~StallW), .d(ReadDataM), .q(ReadDataW));
 | 
			
		||||
  flopen #(`XLEN)   ReadDataWReg(clk, ~StallW, ReadDataM, ReadDataW);
 | 
			
		||||
  mux5  #(`XLEN)    resultmuxW(ResultW, ReadDataW, CSRReadValW, MDUResultW, SCResultW, ResultSrcW, WriteDataW);	 
 | 
			
		||||
 | 
			
		||||
  // floating point interactions: fcvt, fp stores
 | 
			
		||||
@ -133,8 +133,7 @@ module datapath (
 | 
			
		||||
    mux2  #(`XLEN)  resultmuxM(IEUResultM, FIntResM, FWriteIntM, ResultM);
 | 
			
		||||
    mux2  #(`XLEN)  writedatamux(ForwardedSrcBE, FWriteDataE, ~IllegalFPUInstrE, WriteDataE);
 | 
			
		||||
  end else begin:fpmux
 | 
			
		||||
    assign ResultM = IEUResultM;
 | 
			
		||||
    assign WriteDataE = ForwardedSrcBE;
 | 
			
		||||
    assign ResultM = IEUResultM; assign WriteDataE = ForwardedSrcBE;
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  // handle Store Conditional result if atomic extension supported
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user