memoryremapper.vhd

来自「ARM7核在FPGA中的VHDL代码实现」· VHDL 代码 · 共 50 行

VHD
50
字号
--****************************************************************************************************
-- Memory remapper for ARM core simualtion
-- Designed by Ruslan Lepetenok
-- Modified 26.12.2002
--****************************************************************************************************
library	IEEE;
use IEEE.std_logic_1164.all;

entity MemoryRemapper is generic (RemapperAddress : std_logic_vector(31 downto 0));
	                    port (
						   -- Global control signals
	                       nRESET     : in  std_logic;
						   CLK        : in  std_logic;
						   CLKEN      : in  std_logic;
						   -- Address and data
                           Address    : in  std_logic_vector(31 downto 0);
					       ByteWE	  : in  std_logic_vector(3 downto 0);
		                   DataIn     : in  std_logic_vector(31 downto 0);
						   -- Memory select signals for remapping
						   SelDevAIn  : in  std_logic;
						   SelDevBIn  : in  std_logic;
						   SelDevAOut : out std_logic;
						   SelDevBOut : out std_logic
						   );
end MemoryRemapper;

architecture RTL of MemoryRemapper is

signal RemapReg : std_logic := '0';

begin

RemapperRegister:process(nRESET,CLK)
begin
if nRESET='0' then                          -- Reset
  RemapReg <= '0';
  elsif CLK='1' and CLK'event then           -- Clock
   if Address=RemapperAddress and ByteWE(ByteWE'low)='1' and CLKEN='1' then -- Clock enable
	RemapReg <= DataIn(DataIn'low) or RemapReg;
   end if;	
end if;
end process;			

SelDevAOut <= SelDevAIn when RemapReg='1' else SelDevBIn;
SelDevBOut <= SelDevBIn when RemapReg='1' else SelDevAIn;

end RTL;


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?