mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	If a trap occurs concurrent with a I/DTLB miss the interlock fsm incorrectly goes into the states to handle the TLB miss.
This commit fixes this bug by keeping the interlock fsm in the T0_READY state on TrapM.
This commit is contained in:
		
							parent
							
								
									c7c8b128b3
								
							
						
					
					
						commit
						8fb5500be8
					
				| @ -64,7 +64,8 @@ module interlockfsm | ||||
| 
 | ||||
| 	  always_comb begin | ||||
| 		case(InterlockCurrState) | ||||
| 		  STATE_T0_READY:        if(~ITLBMissF & DTLBMissM & AnyCPUReqM)          InterlockNextState = STATE_T3_DTLB_MISS; | ||||
| 		  STATE_T0_READY: if (TrapM)                       InterlockNextState = STATE_T0_READY; | ||||
| 		  else if(~ITLBMissF & DTLBMissM & AnyCPUReqM)     InterlockNextState = STATE_T3_DTLB_MISS; | ||||
| 	      else if(ITLBMissF & ~DTLBMissM & ~AnyCPUReqM)    InterlockNextState = STATE_T4_ITLB_MISS; | ||||
|           else if(ITLBMissF & ~DTLBMissM & AnyCPUReqM)     InterlockNextState = STATE_T5_ITLB_MISS; | ||||
| 		  else if(ITLBMissF & DTLBMissM & AnyCPUReqM)      InterlockNextState = STATE_T7_DITLB_MISS; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user