【发布时间】:2016-11-09 09:02:07
【问题描述】:
我想在 VHDL 中设计一个 8 位 alu,但我得到了这个错误,我认为这与我的输入被声明为 bit_vectors 的事实有关。这是真的吗?
** Error: C:/Programs/Modeltech_pe_edu_10.4a/examples/alu.vhdl(19): No feasible entries for infix operator "+".
** Error: C:/Programs/Modeltech_pe_edu_10.4a/examples/alu.vhdl(19): Type error resolving infix expression "+" as type std.STANDARD.BIT_VECTOR.
** Error: C:/Programs/Modeltech_pe_edu_10.4a/examples/alu.vhdl(21): No feasible entries for infix operator "-".
** Error: C:/Programs/Modeltech_pe_edu_10.4a/examples/alu.vhdl(21): Type error resolving infix expression "-" as type std.STANDARD.BIT_VECTOR.
** Error: C:/Programs/Modeltech_pe_edu_10.4a/examples/alu.vhdl(23): No feasible entries for infix operator "-".
** Error: C:/Programs/Modeltech_pe_edu_10.4a/examples/alu.vhdl(23): Type error resolving infix expression "-" as type std.STANDARD.BIT_VECTOR.
** Error: C:/Programs/Modeltech_pe_edu_10.4a/examples/alu.vhdl(25): No feasible entries for infix operator "+".
** Error: C:/Programs/Modeltech_pe_edu_10.4a/examples/alu.vhdl(25): Type error resolving infix expression "+" as type std.STANDARD.BIT_VECTOR.
** Error: C:/Programs/Modeltech_pe_edu_10.4a/examples/alu.vhdl(40): VHDL Compiler exiting
这是我的模块:
entity alu is
port ( bus_a : in bit_vector(7 downto 0);
bus_b : in bit_vector(7 downto 0);
state : in bit_vector (2 downto 0);
out_c : out bit_vector(7 downto 0));
end alu;
architecture behave of alu is
begin
process(bus_a, bus_b, state)
begin
case state is
when "000" =>
out_c<= bus_a + bus_b; --addition
when "001" =>
out_c<= bus_a - bus_b; --subtraction
when "010" =>
out_c<= bus_a - 1; --sub 1
when "011" =>
out_c<= bus_a + 1; --add 1
when "100" =>
out_c<= bus_a and bus_b; --AND gate
when "101" =>
out_c<= bus_a or bus_b; --OR gate
when "110" =>
out_c<= not bus_a ; --NOT gate
when "111" =>
out_c<= bus_a xor bus_b; --XOR gate
when others =>
NULL;
end case;
end process;
end architecture behave;
您有什么想法吗?也许您对这个问题有任何其他建议?提前致谢!
【问题讨论】: