📄 83_multiplexer.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 + -