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

📄 83_multiplexer.vhd

📁 北京里工大学ASIC设计研究所的100个 VHDL程序设计例子
💻 VHD
字号:
--------------------------------------------------------------------------------
--
--   AMD 2910 Benchmark (Functional blocks) (Algorithmic Behaviour of Funct blocks)
--
-- Source:  AMD data book
--
--------------------------------------------------------------------------------

library l2901_lib;
use l2901_lib.types.all;
use l2901_lib.MVL7_functions.all;
use l2901_lib.synthesis_types.all;

entity multiplexer is
port (
	R_sel : in MVL7;
	D_sel : in MVL7;
      uPC_sel : in MVL7;
    stack_sel : in MVL7;
       OEBAR : in MVL7;
	   sp : in INTEGER range 0 to 5;
            D : in MVL7_VECTOR(11 downto 0);
           RE : in MVL7_VECTOR(11 downto 0);
          uPC : in MVL7_VECTOR(11 downto 0);
            Y : out MVL7_VECTOR(11 downto 0)
      );
end multiplexer;

architecture multiplexer of multiplexer is

begin

-------------------------------------------------------------------------------

muxr : block

signal Y_temp : MVL7_VECTOR(11 downto 0);
signal reg_file : MEMORY_12_BIT(5 downto 0) := (
						 ("000000000000"),
						 ("111111111111"),
						 ("000000000000"),
						 ("111111111111"),
						 ("000000000000"),
						 ("111111111111")
						);

begin

Y_temp <= RE WHEN R_sel = '1' ELSE
     D WHEN D_sel = '1' ELSE
     uPC WHEN uPC_sel = '1' ELSE
     reg_file(sp) WHEN stack_sel = '1' ELSE
     "000000000000";

Y <= Y_temp when OEbar = '0' else
     "ZZZZZZZZZZZZ";

end block muxr;

-------------------------------------------------------------------------------

end multiplexer;







⌨️ 快捷键说明

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