D
design_engineer
Guest
Здравствуйте,
У мене є шматок VHDL код, який підписали доповнення в беззнаковое число і підписаний номер.Однак результатом завжди є сумою двох величин, незалежно від знаку другого операндів (я сподіваюся, різниця, якщо знак 1)
Не могли б ви сказати мені, що я роблю неправильно.Ось мій код:
включити IEEE.numeric_std.all;
op1: беззнаковое (7 downto 0);
OP2: підписано (7 downto 0);
OP3: підписано (6 downto 0);
Результат: підписана (41 downto 0);
Сума: підписано (7 downto 0);
результат <= mult3 mult2 T1 (результат негативного числа представляються у вигляді доповнення 2 в)
OP2 <= розмір (результат, "8") - повинен принести негативне число (ігнорувати лапки, я повинен був покласти, що для перемоги над Smiley показ)
OP3 <= shift_right (OP2, 1); - повинні принести негативне число
Сума <= op1 (7)
І (підпис (op1 (6 downto 0)) OP3);
Якщо op1 = 'h0C і OP3 =' h62, я отримую сума = 'h6E який не правильно, оскільки OP3 є негативним.
Спасибо большое за вашу допомогу.
У мене є шматок VHDL код, який підписали доповнення в беззнаковое число і підписаний номер.Однак результатом завжди є сумою двох величин, незалежно від знаку другого операндів (я сподіваюся, різниця, якщо знак 1)
Не могли б ви сказати мені, що я роблю неправильно.Ось мій код:
включити IEEE.numeric_std.all;
op1: беззнаковое (7 downto 0);
OP2: підписано (7 downto 0);
OP3: підписано (6 downto 0);
Результат: підписана (41 downto 0);
Сума: підписано (7 downto 0);
результат <= mult3 mult2 T1 (результат негативного числа представляються у вигляді доповнення 2 в)
OP2 <= розмір (результат, "8") - повинен принести негативне число (ігнорувати лапки, я повинен був покласти, що для перемоги над Smiley показ)
OP3 <= shift_right (OP2, 1); - повинні принести негативне число
Сума <= op1 (7)
І (підпис (op1 (6 downto 0)) OP3);
Якщо op1 = 'h0C і OP3 =' h62, я отримую сума = 'h6E який не правильно, оскільки OP3 є негативним.
Спасибо большое за вашу допомогу.