forked from Github_Repos/cvw
		
	Added flush controls to cachway.
This commit is contained in:
		
							parent
							
								
									cae350abb7
								
							
						
					
					
						commit
						d901f60a6d
					
				
							
								
								
									
										5
									
								
								wally-pipelined/src/cache/cacheway.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								wally-pipelined/src/cache/cacheway.sv
									
									
									
									
										vendored
									
									
								
							@ -43,6 +43,8 @@ module cacheway #(parameter NUMLINES=512, parameter BLOCKLEN = 256, TAGLEN = 26,
 | 
			
		||||
   input logic 			      SelEvict,
 | 
			
		||||
   input logic 			      VictimWay,
 | 
			
		||||
   input logic 			      InvalidateAll,
 | 
			
		||||
   input logic 			      SelFlush,
 | 
			
		||||
   input logic 			      FlushWay,
 | 
			
		||||
 | 
			
		||||
   output logic [BLOCKLEN-1:0] 	      ReadDataBlockWayMasked,
 | 
			
		||||
   output logic 		      WayHit,
 | 
			
		||||
@ -80,7 +82,8 @@ module cacheway #(parameter NUMLINES=512, parameter BLOCKLEN = 256, TAGLEN = 26,
 | 
			
		||||
	      .WriteEnable(TagWriteEnable));
 | 
			
		||||
 | 
			
		||||
  assign WayHit = Valid & (ReadTag == PAdr[`PA_BITS-1:OFFSETLEN+INDEXLEN]);
 | 
			
		||||
  assign SelectedWay = SelEvict ? VictimWay : WayHit;  
 | 
			
		||||
  assign SelectedWay = SelFlush ? FlushWay : 
 | 
			
		||||
		       SelEvict ? VictimWay : WayHit;  
 | 
			
		||||
  assign ReadDataBlockWayMasked = SelectedWay ? ReadDataBlockWay : '0;  // first part of AO mux.
 | 
			
		||||
 | 
			
		||||
  assign VictimDirtyWay = VictimWay & Dirty & Valid;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								wally-pipelined/src/cache/dcache.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								wally-pipelined/src/cache/dcache.sv
									
									
									
									
										vendored
									
									
								
							@ -125,6 +125,9 @@ module dcache
 | 
			
		||||
  logic [TAGLEN-1:0] 	       VictimTagWay [NUMWAYS-1:0];
 | 
			
		||||
  logic [TAGLEN-1:0] 	       VictimTag;
 | 
			
		||||
 | 
			
		||||
  logic [INDEXLEN-1:0] 	       FlushAdr;
 | 
			
		||||
  logic [NUMWAYS-1:0] 	       FlushWay;
 | 
			
		||||
  logic 		       SelFlush;
 | 
			
		||||
  
 | 
			
		||||
  logic AnyCPUReqM;
 | 
			
		||||
  logic FetchCountFlag;
 | 
			
		||||
@ -137,10 +140,11 @@ module dcache
 | 
			
		||||
  
 | 
			
		||||
  // Read Path CPU (IEU) side
 | 
			
		||||
 | 
			
		||||
  mux3 #(INDEXLEN)
 | 
			
		||||
  mux4 #(INDEXLEN)
 | 
			
		||||
  AdrSelMux(.d0(MemAdrE[INDEXLEN+OFFSETLEN-1:OFFSETLEN]),
 | 
			
		||||
	    .d1(VAdr[INDEXLEN+OFFSETLEN-1:OFFSETLEN]),
 | 
			
		||||
	    .d2(MemPAdrM[INDEXLEN+OFFSETLEN-1:OFFSETLEN]),
 | 
			
		||||
	    .d3(FlushAdr),
 | 
			
		||||
	    .s(SelAdrM),
 | 
			
		||||
	    .y(RAdr));
 | 
			
		||||
 | 
			
		||||
@ -160,6 +164,8 @@ module dcache
 | 
			
		||||
		      .ClearDirty,
 | 
			
		||||
		      .SelEvict,
 | 
			
		||||
		      .VictimWay,
 | 
			
		||||
		      .FlushWay,
 | 
			
		||||
		      .SelFlush,
 | 
			
		||||
		      .ReadDataBlockWayMasked(ReadDataBlockWayMaskedM),
 | 
			
		||||
		      .WayHit,
 | 
			
		||||
		      .VictimDirtyWay,
 | 
			
		||||
@ -334,6 +340,7 @@ module dcache
 | 
			
		||||
		      .CntReset,
 | 
			
		||||
		      .SelUncached,
 | 
			
		||||
		      .SelEvict,
 | 
			
		||||
		      .SelFlush,
 | 
			
		||||
		      .LRUWriteEn);
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								wally-pipelined/src/cache/dcachefsm.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								wally-pipelined/src/cache/dcachefsm.sv
									
									
									
									
										vendored
									
									
								
							@ -77,7 +77,8 @@ module dcachefsm
 | 
			
		||||
   output logic      CntReset,
 | 
			
		||||
   output logic      SelUncached,
 | 
			
		||||
   output logic      SelEvict,
 | 
			
		||||
   output logic      LRUWriteEn
 | 
			
		||||
   output logic      LRUWriteEn,
 | 
			
		||||
   output logic      SelFlush
 | 
			
		||||
   );
 | 
			
		||||
  
 | 
			
		||||
  logic 	     PreCntEn;
 | 
			
		||||
@ -168,6 +169,7 @@ module dcachefsm
 | 
			
		||||
    DCacheMiss = 1'b0;
 | 
			
		||||
    LRUWriteEn = 1'b0;
 | 
			
		||||
    MemAfterIWalkDone = 1'b0;
 | 
			
		||||
    SelFlush = 1'b0;
 | 
			
		||||
    NextState = STATE_READY;
 | 
			
		||||
 | 
			
		||||
    case (CurrState)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								wally-pipelined/src/cache/icache.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								wally-pipelined/src/cache/icache.sv
									
									
									
									
										vendored
									
									
								
							@ -152,6 +152,8 @@ module icache
 | 
			
		||||
		      .ClearDirty(1'b0),
 | 
			
		||||
		      .SelEvict(1'b0),
 | 
			
		||||
		      .VictimWay,
 | 
			
		||||
		      .FlushWay(1'b0),
 | 
			
		||||
		      .SelFlush(1'b0),
 | 
			
		||||
		      .ReadDataBlockWayMasked,
 | 
			
		||||
		      .WayHit,
 | 
			
		||||
		      .VictimDirtyWay(),
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user