std_logic_vector的两个补码

时间:2016-09-23 23:59:09

标签: vhdl logical-operators twos-complement

我正在尝试将std_logic_vector转换为其二进制补码。我试图在向量上执行-2乘法。

library ieee;
use ieee.std_logic_1164.all;

entity twoscomplement is 
port ( x : in std_logic_vector(15 downto 0);
       y : out std_logic_vector(15 downto 0)
      );
end entity;

architecture model of twoscomplement is 
signal x_c : std_logic_vector (15 downto 0);

x_c <= (not(x) +'1')*2 ; -- x_c = -2*x

end model;

2 个答案:

答案 0 :(得分:0)

添加库

use IEEE.numeric_std.all;

......内部架构

x_c <= signed(x);

答案 1 :(得分:0)

尝试转换为整数并使用它们。

在转化时查看此网页。 访问http://www.bitweenie.com/listings/vhdl-type-conversion/