mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Corrected the LSU's fsm for stalling CPU. Removed state from hptw fsm.
This commit is contained in:
		
							parent
							
								
									a445bedcd2
								
							
						
					
					
						commit
						f4d778c2f6
					
				| @ -222,8 +222,8 @@ module lsu | ||||
| 
 | ||||
|   // signal to CPU it needs to wait on HPTW.
 | ||||
|   assign InterlockStall = (CurrState == STATE_T0_READY & (DTLBMissM | ITLBMissF)) |  | ||||
| 						  (CurrState == STATE_T3_DTLB_MISS) | (CurrState == STATE_T4_ITLB_MISS) | | ||||
| 						  (CurrState == STATE_T5_ITLB_MISS) | (CurrState == STATE_T7_DITLB_MISS); | ||||
| 						  (CurrState == STATE_T3_DTLB_MISS & ~WalkerPageFaultM) | (CurrState == STATE_T4_ITLB_MISS & ~WalkerInstrPageFaultF) | | ||||
| 						  (CurrState == STATE_T5_ITLB_MISS & ~WalkerInstrPageFaultF) | (CurrState == STATE_T7_DITLB_MISS & ~WalkerPageFaultM); | ||||
|    | ||||
|   // When replaying CPU memory request after PTW select the IEUAdrM for correct address.
 | ||||
|   assign SelReplayCPURequest = NextState == STATE_T0_READY; | ||||
|  | ||||
| @ -199,7 +199,7 @@ module hptw | ||||
| //	    LEVEL0: if (ValidLeafPTE) 	NextWalkerState = LEAF;
 | ||||
| //				else 				NextWalkerState = FAULT;
 | ||||
| 	    LEAF: 	if (DTLBWalk)		NextWalkerState = IDLE; // updates TLB
 | ||||
| 		        else                NextWalkerState = LEAF_DELAY; | ||||
| 		        else                NextWalkerState = IDLE; | ||||
| 	    LEAF_DELAY: 				NextWalkerState = IDLE;		 // give time to allow address translation
 | ||||
| 	    FAULT: if (ITLBMissF & AnyCPUReqM & ~MemAfterIWalkDone) NextWalkerState = FAULT; | ||||
|  	                        else NextWalkerState = IDLE; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user