У меня есть сумматор с входами a и b в std_logic_vector(data_width-1) downto 0
и выходом суммы std_logic_vector(data_width) downto 0
. Я пытаюсь использовать оператор if, чтобы обойти бит переноса и добавить его к сумме
Мне просто нужна помощь с синтаксисом, идея в том, что если MSB переноса равен 1, он добавляет 1 к ответу (sum
)
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;
) Я недостаточно знаком, чтобы знать, что нужно.
Чтобы присвоить значение переменной, вы должны использовать :=
, поэтому код становится SUMMER := SUMMER + 1;
.
Лето переменчиво. Используйте
:=
. Я не проверял остальную часть вашего кода...