mirror of
				https://github.com/Klagarge/Cursor.git
				synced 2025-10-31 14:09:17 +00:00 
			
		
		
		
	Initial commit
This commit is contained in:
		
							
								
								
									
										36
									
								
								Libs/Memory/hdl/sdramControllerBuildAddress_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								Libs/Memory/hdl/sdramControllerBuildAddress_RTL.vhd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| ARCHITECTURE RTL OF sdramControllerBuildAddress IS | ||||
|  | ||||
|   constant addressPrecharge: std_ulogic_vector(memAddress'range) | ||||
|                            := (10=> '1', others => '-'); | ||||
|   constant addressModeRegU : unsigned(memAddress'range) | ||||
|                            := resize("0" & "00" & "010" & "0" & "000", memAddress'length); | ||||
|     -- ll,10 = reserved, | ||||
|     -- 9 = '0' programmed burst length => burst length applicable for both rd and wr | ||||
|     -- 8,7 = Op mode = 00 => standard operation (all other states are reserved) | ||||
|     -- 6,5,4 = CAS latency = 010 => cas latency of 2 | ||||
|     -- 3 = Burst Type = '0' => Sequential (not interleaved) | ||||
|     -- 2,1,0 = Brust Length = 000 => brust length is 1 | ||||
|   constant addressModeReg  : std_ulogic_vector(memAddress'range) | ||||
|                            := std_ulogic_vector(addressModeRegU); | ||||
|  | ||||
| BEGIN | ||||
|  | ||||
|   buildAddresses: process(ramAddr, addrSelPrecharge, addrSelModeReg, addrSelRow, addrSelCol) | ||||
|   begin | ||||
|     memBankAddress <= std_ulogic_vector(ramAddr(ramAddr'high downto ramAddr'high-memBankAddress'length+1)); | ||||
|     if addrSelPrecharge = '1' then | ||||
|       memAddress <= addressPrecharge; | ||||
|     elsif addrSelModeReg = '1' then | ||||
|       memAddress <= addressModeReg; | ||||
|     elsif addrSelRow = '1' then | ||||
|       memAddress <= std_ulogic_vector(ramAddr(rowAddressBitNb+colAddressBitNb-1 downto colAddressBitNb)); | ||||
|     elsif addrSelCol = '1' then | ||||
|       memAddress(memAddress'high downto colAddressBitNb) <= (others => '0'); | ||||
|       memAddress(10) <= '1'; | ||||
|       memAddress(colAddressBitNb-1 downto 0) <= std_ulogic_vector(ramAddr(colAddressBitNb-1 downto 0)); | ||||
|     else | ||||
|       memAddress <= (others => '-'); | ||||
|     end if; | ||||
|   end process buildAddresses; | ||||
|  | ||||
| END ARCHITECTURE RTL; | ||||
		Reference in New Issue
	
	Block a user