0

如果我将两个 std_logic_vector 分别转换为值 1 和 0

signal mlx, mtx : std_logic_vector(15 downto 0) 

通过成整数

variable WLX : integer;
variable WTX : integer;

WLX := TO_INTEGER(signed(mlx));
WTX := TO_INTEGER(signed(mtx));

然后将这些减法与 -1 文字进行比较:

if WTX-WLX = -1 

结果会是真的吗?

谢谢

4

1 回答 1

2

如果 mlx=X"0001" 和 mtx=X"0000",那么是的,从 mtx 中减去 mlx 作为整数得到 -1,所以给出问题的答案是肯定的。

但是:将值转换为整数以便对其进行操作或比较它们通常是代码编写不佳的标志。

为什么不只对 mlx 和 mtx 使用有符号,并避免使用整数?

architecture arch of ent is
    signal mlx, mtx : signed(15 downto 0);
begin
    process(clk) begin
        if(rising_edge(clk)) then
            if(mtx - mlx = -1) then
                -- Do what needs to be done.
            end if;
        end if;
    end process;
end architecture;
于 2013-06-05T15:09:18.803 回答