forked from Github_Repos/cvw
		
	Moved all bus logic outside the dcache. Still needs cleanup.
This commit is contained in:
		
							parent
							
								
									74d636cb53
								
							
						
					
					
						commit
						243728d089
					
				@ -470,6 +470,9 @@ module lsu
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	case(BusCurrState)
 | 
						case(BusCurrState)
 | 
				
			||||||
	  STATE_BUS_READY: begin
 | 
						  STATE_BUS_READY: begin
 | 
				
			||||||
 | 
							if(IgnoreRequest) begin
 | 
				
			||||||
 | 
							  BusNextState = STATE_BUS_READY;
 | 
				
			||||||
 | 
							end else
 | 
				
			||||||
		// uncache write
 | 
							// uncache write
 | 
				
			||||||
		if(MemRWMtoDCache[0] & ~CacheableMtoDCache) begin
 | 
							if(MemRWMtoDCache[0] & ~CacheableMtoDCache) begin
 | 
				
			||||||
		  BusNextState = STATE_BUS_UNCACHED_WRITE;
 | 
							  BusNextState = STATE_BUS_UNCACHED_WRITE;
 | 
				
			||||||
@ -537,39 +540,25 @@ module lsu
 | 
				
			|||||||
		CommittedMfromBus = 1'b1;
 | 
							CommittedMfromBus = 1'b1;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
        if (FetchCountFlag & DCfromAHBAck) begin
 | 
					        if (FetchCountFlag & DCfromAHBAck) begin
 | 
				
			||||||
          BusNextState = STATE_BUS_FETCH_DONE;
 | 
					          BusNextState = STATE_BUS_READY;
 | 
				
			||||||
 | 
							  BUSACK = 1'b1;
 | 
				
			||||||
        end else begin
 | 
					        end else begin
 | 
				
			||||||
          BusNextState = STATE_BUS_FETCH_WDV;
 | 
					          BusNextState = STATE_BUS_FETCH_WDV;
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      STATE_BUS_FETCH_DONE: begin
 | 
					 | 
				
			||||||
		BusStall = 1'b1;
 | 
					 | 
				
			||||||
        CntReset = 1'b1;
 | 
					 | 
				
			||||||
		CommittedMfromBus = 1'b1;
 | 
					 | 
				
			||||||
		BusNextState = STATE_BUS_READY;
 | 
					 | 
				
			||||||
		BUSACK = 1'b1;
 | 
					 | 
				
			||||||
      end
 | 
					 | 
				
			||||||
	  
 | 
					 | 
				
			||||||
      STATE_BUS_EVICT_DIRTY: begin
 | 
					      STATE_BUS_EVICT_DIRTY: begin
 | 
				
			||||||
		BusStall = 1'b1;
 | 
							BusStall = 1'b1;
 | 
				
			||||||
        PreCntEn = 1'b1;
 | 
					        PreCntEn = 1'b1;
 | 
				
			||||||
		DCtoAHBWriteM = 1'b1;
 | 
							DCtoAHBWriteM = 1'b1;
 | 
				
			||||||
		CommittedMfromBus = 1'b1;
 | 
							CommittedMfromBus = 1'b1;
 | 
				
			||||||
		if(FetchCountFlag & DCfromAHBAck) begin
 | 
							if(FetchCountFlag & DCfromAHBAck) begin
 | 
				
			||||||
		  BusNextState = STATE_BUS_WRITE_CACHE_BLOCK;
 | 
							  BusNextState = STATE_BUS_READY;
 | 
				
			||||||
 | 
							  BUSACK = 1'b1;
 | 
				
			||||||
		end else begin
 | 
							end else begin
 | 
				
			||||||
		  BusNextState = STATE_BUS_EVICT_DIRTY;
 | 
							  BusNextState = STATE_BUS_EVICT_DIRTY;
 | 
				
			||||||
		end	  
 | 
							end	  
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
		
 | 
					 | 
				
			||||||
      STATE_BUS_WRITE_CACHE_BLOCK: begin
 | 
					 | 
				
			||||||
		BusStall = 1'b1;
 | 
					 | 
				
			||||||
        CntReset = 1'b1;
 | 
					 | 
				
			||||||
		CommittedMfromBus = 1'b1;
 | 
					 | 
				
			||||||
		BusNextState = STATE_BUS_READY;
 | 
					 | 
				
			||||||
		BUSACK = 1'b1;
 | 
					 | 
				
			||||||
      end
 | 
					 | 
				
			||||||
	endcase
 | 
						endcase
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user