尝试完成加法器需要if语句来更改进位

时间:2019-07-14 13:49:34

标签: if-statement vhdl

我有一个加法器,它在std_logic_vector(data_width-1) downto 0中有输入a和b,而输出是和std_logic_vector(data_width) downto 0。我正在尝试使用if语句绕过进位并将其添加到总和中

我只是需要语法上的帮助,这个想法是,如果进位的最高有效位为1,那么它会在应答({sum)上加1

architecture v1 of adding is
begin
adding : process (A, B) is
    variable CI :  std_logic_vector((DATA_WIDTH) downto 0);
    variable SUMMER :  std_logic_vector((DATA_WIDTH) downto 0);
begin   
            SUMMER := A xor B;
            CI := A and B;
            CI_msb <= CI(CI'left);
            if CI_msb =  '1' then
                SUMMER = SUMMER + 1;
            end if;

我收到有关({summer = summer + 1;)的语法错误,我不够熟悉,无法知道需要什么。

1 个答案:

答案 0 :(得分:0)

要为变量分配值,您必须使用:=,因此代码变为SUMMER := SUMMER + 1;