| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -29,6 +29,7 @@ use work.wishbone_types.all;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					entity icache is
 | 
					 | 
					 | 
					 | 
					entity icache is
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    generic (
 | 
					 | 
					 | 
					 | 
					    generic (
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        SIM : boolean := false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        -- Line size in bytes
 | 
					 | 
					 | 
					 | 
					        -- Line size in bytes
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        LINE_SIZE : positive := 64;
 | 
					 | 
					 | 
					 | 
					        LINE_SIZE : positive := 64;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        -- Number of lines in a set
 | 
					 | 
					 | 
					 | 
					        -- Number of lines in a set
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -264,6 +265,7 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    assert (64 = TAG_BITS + ROW_BITS + ROW_OFF_BITS)
 | 
					 | 
					 | 
					 | 
					    assert (64 = TAG_BITS + ROW_BITS + ROW_OFF_BITS)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						report "geometry bits don't add up" severity FAILURE;
 | 
					 | 
					 | 
					 | 
						report "geometry bits don't add up" severity FAILURE;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    sim_debug: if SIM generate
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    debug: process
 | 
					 | 
					 | 
					 | 
					    debug: process
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    begin
 | 
					 | 
					 | 
					 | 
					    begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						report "ROW_SIZE      = " & natural'image(ROW_SIZE);
 | 
					 | 
					 | 
					 | 
						report "ROW_SIZE      = " & natural'image(ROW_SIZE);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -280,6 +282,7 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						report "WAY_BITS      = " & natural'image(WAY_BITS);
 | 
					 | 
					 | 
					 | 
						report "WAY_BITS      = " & natural'image(WAY_BITS);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						wait;
 | 
					 | 
					 | 
					 | 
						wait;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    end process;
 | 
					 | 
					 | 
					 | 
					    end process;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    end generate;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    -- Generate a cache RAM for each way
 | 
					 | 
					 | 
					 | 
					    -- Generate a cache RAM for each way
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    rams: for i in 0 to NUM_WAYS-1 generate
 | 
					 | 
					 | 
					 | 
					    rams: for i in 0 to NUM_WAYS-1 generate
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |