20 lines
		
	
	
		
			486 B
		
	
	
	
		
			VHDL
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			486 B
		
	
	
	
		
			VHDL
		
	
	
	
	
	
| LIBRARY AhbLite;
 | |
|   USE AhbLite.ahbLite.all;
 | |
| 
 | |
| ARCHITECTURE RTL OF ahbDecoder IS
 | |
| BEGIN
 | |
| 
 | |
|   decodeAddress: process(hAddr)
 | |
|     variable mask: unsigned(hAddr'range);
 | |
|   begin
 | |
|     hSel <= (others => '0');
 | |
|     for index in hSel'range loop
 | |
|       mask := to_unsigned(ahbMemoryLocation(index).addressMask, mask'length);
 | |
|       if (hAddr and mask) = ahbMemoryLocation(index).baseAddress then
 | |
|         hSel(index) <= '1';
 | |
|       end if;
 | |
|     end loop;
 | |
|   end process decodeAddress;
 | |
| 
 | |
| END ARCHITECTURE RTL;
 |