mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Replacement policy cleanup.
This commit is contained in:
		
							parent
							
								
									f716cce832
								
							
						
					
					
						commit
						5fd22caed4
					
				
							
								
								
									
										15
									
								
								pipelined/src/cache/cachereplacementpolicy.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								pipelined/src/cache/cachereplacementpolicy.sv
									
									
									
									
										vendored
									
									
								
							@ -30,12 +30,12 @@
 | 
			
		||||
`include "wally-config.vh"
 | 
			
		||||
 | 
			
		||||
module cachereplacementpolicy
 | 
			
		||||
  #(parameter NUMWAYS = 4, INDEXLEN = 9, OFFSETLEN = 5, NUMLINES = 128)(
 | 
			
		||||
  #(parameter NUMWAYS = 4, SETLEN = 9, OFFSETLEN = 5, NUMLINES = 128)(
 | 
			
		||||
   input logic                clk, reset,
 | 
			
		||||
   input logic [NUMWAYS-1:0]  WayHit,
 | 
			
		||||
   output logic [NUMWAYS-1:0] VictimWay,
 | 
			
		||||
   input logic [`PA_BITS-1:0] PAdr,
 | 
			
		||||
   input logic [INDEXLEN-1:0] RAdr,
 | 
			
		||||
   input logic [SETLEN-1:0]   RAdr,
 | 
			
		||||
   input logic                LRUWriteEn);
 | 
			
		||||
 | 
			
		||||
  logic [NUMWAYS-2:0]                  LRUEn, LRUMask;
 | 
			
		||||
@ -43,9 +43,8 @@ module cachereplacementpolicy
 | 
			
		||||
  logic [NUMWAYS-2:0]                  LineReplacementBits;
 | 
			
		||||
  logic [NUMWAYS-2:0]                  NewReplacement;
 | 
			
		||||
  logic [NUMWAYS-2:0]                  NewReplacementD;  
 | 
			
		||||
 | 
			
		||||
  logic [INDEXLEN+OFFSETLEN-1:OFFSETLEN] 	PAdrD;
 | 
			
		||||
  logic [INDEXLEN-1:0] 				RAdrD;
 | 
			
		||||
  logic [SETLEN+OFFSETLEN-1:OFFSETLEN] PAdrD;
 | 
			
		||||
  logic [SETLEN-1:0]                   RAdrD;
 | 
			
		||||
  logic                                LRUWriteEnD;
 | 
			
		||||
 | 
			
		||||
  initial begin
 | 
			
		||||
@ -53,8 +52,8 @@ module cachereplacementpolicy
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  // Pipeline Delay Registers
 | 
			
		||||
  flopr #(INDEXLEN) RAdrDelayReg(clk, reset, RAdr, RAdrD);
 | 
			
		||||
  flopr #(INDEXLEN) PAdrDelayReg(clk, reset, PAdr[INDEXLEN+OFFSETLEN-1:OFFSETLEN], PAdrD);
 | 
			
		||||
  flopr #(SETLEN) RAdrDelayReg(clk, reset, RAdr, RAdrD);
 | 
			
		||||
  flopr #(SETLEN) PAdrDelayReg(clk, reset, PAdr[SETLEN+OFFSETLEN-1:OFFSETLEN], PAdrD);
 | 
			
		||||
  flopr #(1) LRUWriteEnDelayReg(clk, reset, LRUWriteEn, LRUWriteEnD);
 | 
			
		||||
  flopr #(NUMWAYS-1) NewReplacementDelayReg(clk, reset, NewReplacement, NewReplacementD);
 | 
			
		||||
 | 
			
		||||
@ -62,7 +61,7 @@ module cachereplacementpolicy
 | 
			
		||||
  // Needs to be resettable for simulation, but could omit reset for synthesis ***
 | 
			
		||||
  always_ff @(posedge clk) 
 | 
			
		||||
    if (reset) for (int set = 0; set < NUMLINES; set++) ReplacementBits[set] = '0;
 | 
			
		||||
    else if (LRUWriteEnD) ReplacementBits[PAdrD[INDEXLEN+OFFSETLEN-1:OFFSETLEN]] = NewReplacementD;
 | 
			
		||||
    else if (LRUWriteEnD) ReplacementBits[PAdrD[SETLEN+OFFSETLEN-1:OFFSETLEN]] = NewReplacementD;
 | 
			
		||||
  assign LineReplacementBits = ReplacementBits[RAdrD];
 | 
			
		||||
 | 
			
		||||
  genvar 		      index;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user