[an error occurred while processing this directive]
Тогда вам нужно не значение знакового бита, а признак переполнения.
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено DPavlov 30 марта 2004 г. 12:17
В ответ на: а что вы тогда получите (+) отправлено ?????? 30 марта 2004 г. 11:20

Попробуй увеличить разрядность данных, так чтобы переполнения не было.
Либо можно попробовать так:

signal a : std_logic_vector(7 downto 0);
signal b : std_logic_vector(7 downto 0);
signal c : std_logic_vector(7 downto 0);
......
process (....)
variable var_a : std_logic_vector(8 downto 0);
variable var_b : std_logic_vector(8 downto 0);
variable var_sum : std_logic_vector(8 downto 0);
....
begin
....
var_a := a(7) & a;
var_b := b(7) & b;
var_sum := SIGNED(var_a) + SIGNED(var_b);
c <= var_sum(7 downto 0);
if (var_sum(8) /= var_sum(7)) then
---- OVERFLOW
.....

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru