mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Clean up of cachefsm.
This commit is contained in:
		
							parent
							
								
									1c96b22b8f
								
							
						
					
					
						commit
						e1db967417
					
				
							
								
								
									
										9
									
								
								pipelined/src/cache/cache.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								pipelined/src/cache/cache.sv
									
									
									
									
										vendored
									
									
								
							@ -243,15 +243,8 @@ module cache #(parameter integer LINELEN,
 | 
				
			|||||||
  assign FlushAdrFlag = FlushAdr == FlushAdrThreshold[INDEXLEN-1:0];
 | 
					  assign FlushAdrFlag = FlushAdr == FlushAdrThreshold[INDEXLEN-1:0];
 | 
				
			||||||
  assign FlushWayFlag = FlushWay[NUMWAYS-1];
 | 
					  assign FlushWayFlag = FlushWay[NUMWAYS-1];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // controller
 | 
					 | 
				
			||||||
  // *** fixme
 | 
					 | 
				
			||||||
  logic CacheableM;
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  assign CacheableM = 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  cachefsm cachefsm(.clk, .reset, .CacheFetchLine, .CacheWriteLine, .CacheBusAck, 
 | 
					  cachefsm cachefsm(.clk, .reset, .CacheFetchLine, .CacheWriteLine, .CacheBusAck, 
 | 
				
			||||||
					.RW, .Atomic, .CPUBusy, .CacheableM, .IgnoreRequest,
 | 
										.RW, .Atomic, .CPUBusy, .IgnoreRequest,
 | 
				
			||||||
 					.CacheHit, .VictimDirty, .CacheStall, .CacheCommitted, 
 | 
					 					.CacheHit, .VictimDirty, .CacheStall, .CacheCommitted, 
 | 
				
			||||||
					.CacheMiss, .CacheAccess, .SelAdr, .SetValid, 
 | 
										.CacheMiss, .CacheAccess, .SelAdr, .SetValid, 
 | 
				
			||||||
					.ClearValid, .SetDirty, .ClearDirty, .SRAMWordWriteEnable,
 | 
										.ClearValid, .SetDirty, .ClearDirty, .SRAMWordWriteEnable,
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										13
									
								
								pipelined/src/cache/cachefsm.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								pipelined/src/cache/cachefsm.sv
									
									
									
									
										vendored
									
									
								
							@ -34,7 +34,6 @@ module cachefsm
 | 
				
			|||||||
   input logic 		  FlushCache,
 | 
					   input logic 		  FlushCache,
 | 
				
			||||||
   // hazard inputs
 | 
					   // hazard inputs
 | 
				
			||||||
   input logic 		  CPUBusy,
 | 
					   input logic 		  CPUBusy,
 | 
				
			||||||
   input logic 		  CacheableM,
 | 
					 | 
				
			||||||
   // interlock fsm
 | 
					   // interlock fsm
 | 
				
			||||||
   input logic 		  IgnoreRequest,
 | 
					   input logic 		  IgnoreRequest,
 | 
				
			||||||
   // Bus inputs
 | 
					   // Bus inputs
 | 
				
			||||||
@ -100,8 +99,8 @@ module cachefsm
 | 
				
			|||||||
  assign AnyCPUReqM = |RW | (|Atomic);
 | 
					  assign AnyCPUReqM = |RW | (|Atomic);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // outputs for the performance counters.
 | 
					  // outputs for the performance counters.
 | 
				
			||||||
  assign CacheAccess = AnyCPUReqM & CacheableM & CurrState == STATE_READY;
 | 
					  assign CacheAccess = AnyCPUReqM & CurrState == STATE_READY;
 | 
				
			||||||
  assign CacheMiss = CacheAccess & CacheableM & ~CacheHit;
 | 
					  assign CacheMiss = CacheAccess &  ~CacheHit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  always_ff @(posedge clk)
 | 
					  always_ff @(posedge clk)
 | 
				
			||||||
    if (reset)    CurrState <= #1 STATE_READY;
 | 
					    if (reset)    CurrState <= #1 STATE_READY;
 | 
				
			||||||
@ -159,7 +158,7 @@ module cachefsm
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		// amo hit
 | 
							// amo hit
 | 
				
			||||||
		else if(Atomic[1] & (&RW) & CacheableM & CacheHit) begin
 | 
							else if(Atomic[1] & (&RW) & CacheHit) begin
 | 
				
			||||||
		  SelAdr = 2'b01;
 | 
							  SelAdr = 2'b01;
 | 
				
			||||||
		  CacheStall = 1'b0;
 | 
							  CacheStall = 1'b0;
 | 
				
			||||||
		  
 | 
							  
 | 
				
			||||||
@ -175,7 +174,7 @@ module cachefsm
 | 
				
			|||||||
		  end
 | 
							  end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		// read hit valid cached
 | 
							// read hit valid cached
 | 
				
			||||||
		else if(RW[1] & CacheableM & CacheHit) begin
 | 
							else if(RW[1] & CacheHit) begin
 | 
				
			||||||
		  CacheStall = 1'b0;
 | 
							  CacheStall = 1'b0;
 | 
				
			||||||
		  LRUWriteEn = 1'b1;
 | 
							  LRUWriteEn = 1'b1;
 | 
				
			||||||
		  
 | 
							  
 | 
				
			||||||
@ -188,7 +187,7 @@ module cachefsm
 | 
				
			|||||||
	      end
 | 
						      end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		// write hit valid cached
 | 
							// write hit valid cached
 | 
				
			||||||
		else if (RW[0] & CacheableM & CacheHit) begin
 | 
							else if (RW[0] & CacheHit) begin
 | 
				
			||||||
		  SelAdr = 2'b01;
 | 
							  SelAdr = 2'b01;
 | 
				
			||||||
		  CacheStall = 1'b0;
 | 
							  CacheStall = 1'b0;
 | 
				
			||||||
		  SRAMWordWriteEnable = 1'b1;
 | 
							  SRAMWordWriteEnable = 1'b1;
 | 
				
			||||||
@ -204,7 +203,7 @@ module cachefsm
 | 
				
			|||||||
		  end
 | 
							  end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		// read or write miss valid cached
 | 
							// read or write miss valid cached
 | 
				
			||||||
		else if((|RW) & CacheableM & ~CacheHit) begin
 | 
							else if((|RW) & ~CacheHit) begin
 | 
				
			||||||
		  NextState = STATE_MISS_FETCH_WDV;
 | 
							  NextState = STATE_MISS_FETCH_WDV;
 | 
				
			||||||
		  CacheStall = 1'b1;
 | 
							  CacheStall = 1'b1;
 | 
				
			||||||
		  CacheFetchLine = 1'b1;
 | 
							  CacheFetchLine = 1'b1;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user