基于VHDL的多路复用器
我尝试创建多路复用器:基于VHDL的多路复用器,vhdl,fpga,hdl,intel-fpga,quartus,Vhdl,Fpga,Hdl,Intel Fpga,Quartus,我尝试创建多路复用器: LIBRARY ieee; USE ieee.std_logic_1164.all; -- Entity Declaration ENTITY multiplekser IS -- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE! PORT ( U : IN STD_LOGIC_VECTOR(2 downto 0); V : IN STD_LOGIC_VECTOR(2 downto 0); W : IN STD_LOGIC_
LIBRARY ieee;
USE ieee.std_logic_1164.all;
-- Entity Declaration
ENTITY multiplekser IS
-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!
PORT
(
U : IN STD_LOGIC_VECTOR(2 downto 0);
V : IN STD_LOGIC_VECTOR(2 downto 0);
W : IN STD_LOGIC_VECTOR(2 downto 0);
X : IN STD_LOGIC_VECTOR(2 downto 0);
Y : IN STD_LOGIC_VECTOR(2 downto 0);
S : IN STD_LOGIC_VECTOR(2 downto 0);
CS : IN STD_LOGIC;
M : OUT STD_LOGIC_VECTOR(2 downto 0)
);
-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!
END multiplekser;
-- Architecture Body
ARCHITECTURE multiplekser_architecture OF multiplekser IS
BEGIN
PROCESS(CS)
BEGIN
if (CS = '1') then
with S select
M<=U when "000",
V when "001",
W when "010",
X when "011",
Y when others;
else
M<="ZZZ";
end if;
END PROCESS;
END multiplekser_architecture;
ieee库;
使用ieee.std_logic_1164.all;
--实体声明
实体多路复用器是
--{{ALTERA\u IO\u BEGIN}请勿删除此行!
港口
(
U:标准逻辑向量(2到0);
V:标准逻辑向量(2到0);
W:标准逻辑向量(2到0);
X:标准逻辑向量(2到0);
Y:标准逻辑向量(2到0);
S:标准逻辑向量(2到0);
CS:标准逻辑;
M:输出标准逻辑向量(2到0)
);
--{{ALTERA_IO__END}请勿删除此行!
终端多路复用器;
--建筑主体
架构multiplekser\u multiplekser的架构是
开始
过程(CS)
开始
如果(CS='1'),则
用S选择
M您使用的是并发语句,其中需要顺序语句
您应该使用case语句或一组if
语句。例如:
architecture multiplekser_architecture of multiplekser is
begin
process(cs, s, u, v, w, x, y)
begin
if cs = '1' then
case S is
when "000" => m <= u;
when "001" => m <= v;
when "010" => m <= w;
when "011" => m <= x;
when others => m <= y;
end case;
else
m <= "ZZZ";
end if;
end process;
end architecture;
architecture multiplekser\u multiplekser的体系结构是
开始
过程(cs、s、u、v、w、x、y)
开始
如果cs='1',则
案例S是
当“000”=>m时,您的“选择S”看起来有问题。(编辑:看到有人已经发布了更正)。如果语言设置为VHDL-2008(ModelSim编译得很好),那么OP的代码应该得到支持,但我用13.0(最新版本,但公认不是最新版本)尝试过,而且Altera的2008合规性似乎落后了。@fru1tbat:Ah。我的回答基于VHDL 2002。谢谢你收集了额外的信息。@Kulis:你试过把语言设置为2008吗?发生什么事了?我只有13.1版。