⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 armalutesttop.vhd

📁 ARM7核在FPGA中的VHDL代码实现
💻 VHD
字号:
--****************************************************************************************************
-- ALU tester top entity for ARM core
-- Designed by Ruslan Lepetenok
-- Modified 09.11.2002
--****************************************************************************************************
library	IEEE;
use IEEE.std_logic_1164.all;

entity ARMALUTestTop is
end ARMALUTestTop;
 
architecture STRUCT of ARMALUTestTop is

component ClockAndResetGenerator is port (
	                                      nRESET  : out std_logic;
						                  CLK     : out std_logic
						                  );
end component;							

component ALUTesterSim is port (
	                    nRESET  : in std_logic;
						CLK    : in std_logic;
						
						ADataOut   : out  std_logic_vector(31 downto 0); 
						BDataOut   : out  std_logic_vector(31 downto 0); 
						InvA	   : out  std_logic;
						InvB	   : out  std_logic;
						PassA	   : out  std_logic;
						PassB	   : out  std_logic;	-- MOV/MVN operations
						-- Logic operations
						AND_Op	   : out  std_logic;
						ORR_Op	   : out  std_logic;
						EOR_Op	   : out  std_logic;
						-- Tester flag outputs						
						CFlagOut   : out  std_logic;
						CFlagUse   : out  std_logic  -- ADC/SBC/RSC instructions
						     );
end component;

component ALU is port (
	                    ADataIn    : in  std_logic_vector(31 downto 0); 
						BDataIn    : in  std_logic_vector(31 downto 0); 
						DataOut    : out std_logic_vector(31 downto 0); 
						InvA	   : in  std_logic;
						InvB	   : in  std_logic;
						PassA	   : in  std_logic;
						PassB	   : in  std_logic;	-- MOV/MVN operations
						-- Logic operations
						AND_Op	   : in  std_logic;
						ORR_Op	   : in  std_logic;
						EOR_Op	   : in  std_logic;
						-- Flag inputs						
						CFlagIn	   : in  std_logic;
						CFlagUse   : in  std_logic; -- ADC/SBC/RSC instructions
						-- Flag outputs
						CFlagOut    : out  std_logic;
						VFlagOut    : out  std_logic;
						NFlagOut    : out  std_logic;
						ZFlagOut    : out  std_logic
				    );
end component;		 


-- Signal declarations
signal nRESET    : std_logic := '0';
signal CLK      : std_logic := '0';

signal ADataBus : std_logic_vector(31 downto 0) := (others => '0'); 
signal BDataBus : std_logic_vector(31 downto 0) := (others => '0'); 
signal InvA	    : std_logic := '0';
signal InvB	    : std_logic := '0';
signal PassA	: std_logic := '0';
signal PassB	: std_logic := '0';

signal AND_Op	: std_logic := '0';
signal ORR_Op	: std_logic := '0';
signal EOR_Op   : std_logic := '0';

signal CFlag	: std_logic := '0';
signal CFlagUse : std_logic := '0'; 


begin

CLK_And_nRESET:component ClockAndResetGenerator port map (
	                                      nRESET  => nRESET,
						                  CLK    => CLK
						                  );


Tester:component ALUTesterSim  port map (
	                    nRESET   => nRESET,
						CLK     => CLK,
						
						ADataOut => ADataBus,
						BDataOut => BDataBus,
						InvA	 => InvA,
						InvB	 => InvB,
						PassA	 => PassA,
						PassB	 => PassB,
						-- Logic operations
						AND_Op	 => AND_Op,
						ORR_Op	 => ORR_Op,
						EOR_Op	 => EOR_Op,
						-- Flag inputs						
						CFlagOut => CFlag,
						CFlagUse => CFlagUse
						     );


ALUUnderTest:component ALU port map(
	                    ADataIn => ADataBus,
						BDataIn => BDataBus,
						DataOut => open,
						InvA	=> InvA,
						InvB	=> InvB,
						PassA	 => PassA,
						PassB	=> PassB,
						-- Logic operations
						AND_Op	=> AND_Op,
						ORR_Op	=> ORR_Op,
						EOR_Op	=> EOR_Op,
						-- Flag inputs						
						CFlagIn	=> CFlag,
						CFlagUse => CFlagUse,
						-- Flag outputs
						CFlagOut => open,
						VFlagOut => open,
						NFlagOut => open,
						ZFlagOut => open
				    );

end STRUCT;

⌨️ 快捷键说明

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