中缀运算符“+”没有可行条目

时间:2015-06-13 09:12:59

标签: vhdl

我正在设计一个2s补码,但它显示错误可以帮助我。

library ieee;
use ieee.std_logic_1164.all;
use IEEE.std_logic_arith.all;

entity comp is
port(a : in std_logic_vector(7 downto 0);
    y : out std_logic_vector(7 downto 0));
end comp;

architecture dataflow of comp is
signal temp: std_logic;
begin
    y<=  not(a) + "00000001";
end dataflow;
  

错误:D:/modelsim_projects/2scmpliment.vhd(13):没有可行的条目   对于中缀运算符“+”。

1 个答案:

答案 0 :(得分:1)

使用Synopsys软件包时,您需要在std_logic_unsigned之后添加std_logic_1164软件包,例如:

use IEEE.std_logic_unsigned.all;

有了这个,您甚至可以使用整数表示法来添加:

y <= not(a) + 1;

替代方案是使用IEEE VHDL标准numeric_std包,其变化如下:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
...
  y <= std_logic_vector(unsigned(not(a)) + 1);