[an error occurred while processing this directive]
Переписал в этом ключе и(+)
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

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

Отправлено переходящий от AHDL к VHDL 03 ноября 2004 г. 13:50
В ответ на: Ответ: отправлено V61 03 ноября 2004 г. 13:13

и схема стала занимать в 2 раза меньше места. Но в принципе не понятно
отличие от первоначального варианта. Какой общий смысл чтобы похожие места в следующий раз правильно описывать? Только опыт? Спасибо.

use work.pack.all;

entity add is
generic
(
width : INTEGER := 16
);
port
(
add_sub : in STD_LOGIC;
dataa : in STD_LOGIC_VECTOR (width-1 downto 0);
datab : in STD_LOGIC_VECTOR (width-1 downto 0);
result : out STD_LOGIC_VECTOR (width downto 0)
);
end add;

architecture first of add is
begin
process (add_sub, dataa, datab)

variable temp_a, temp_b : SIGNED(width-1 downto 0);
variable temp_r : SIGNED(width downto 0);

begin

temp_a := SIGNED(dataa);
temp_b := SIGNED(datab);

if (add_sub = '1') then
temp_r := (temp_a(width-1) & temp_a) + (temp_b(width-1) & temp_b);
else
temp_r := (temp_a(width-1) & temp_a) - (temp_b(width-1) & temp_b);
end if;


result <= STD_LOGIC_VECTOR(temp_r);



end process;
end first;

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru