我有一个加法器,它在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;
)的语法错误,我不够熟悉,无法知道需要什么。
答案 0 :(得分:0)
要为变量分配值,您必须使用:=
,因此代码变为SUMMER := SUMMER + 1;
。