forked from Github_Repos/cvw
		
	Fixed Bug 66.
If a load missed at the same time as a spilled instruction fetch with an ITLB miss in the second cache line, the HPTW did not wait for the load miss to finish.
This commit is contained in:
		
							parent
							
								
									a33c579e4b
								
							
						
					
					
						commit
						54a128491e
					
				@ -245,7 +245,7 @@ module hptw (
 | 
				
			|||||||
	flopenl #(.TYPE(statetype)) WalkerStateReg(clk, reset | FlushW, 1'b1, NextWalkerState, IDLE, WalkerState); 
 | 
						flopenl #(.TYPE(statetype)) WalkerStateReg(clk, reset | FlushW, 1'b1, NextWalkerState, IDLE, WalkerState); 
 | 
				
			||||||
	always_comb 
 | 
						always_comb 
 | 
				
			||||||
		case (WalkerState)
 | 
							case (WalkerState)
 | 
				
			||||||
			IDLE: if (TLBMiss)	 																				NextWalkerState = InitialWalkerState;
 | 
								IDLE: if (TLBMiss & ~DCacheStallM)	    																		NextWalkerState = InitialWalkerState;
 | 
				
			||||||
				  	else 																									NextWalkerState = IDLE;
 | 
									  	else 																									NextWalkerState = IDLE;
 | 
				
			||||||
			L3_ADR:                     																NextWalkerState = L3_RD; // first access in SV48
 | 
								L3_ADR:                     																NextWalkerState = L3_RD; // first access in SV48
 | 
				
			||||||
			L3_RD: if (DCacheStallM)    																NextWalkerState = L3_RD;
 | 
								L3_RD: if (DCacheStallM)    																NextWalkerState = L3_RD;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user