[an error occurred while processing this directive]
Fir 64 tap на VHDL - проблема на выходе? :(
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

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

Отправлено Home_Inc 21 мая 2003 г. 04:17

Что казалось бы "просче":
entity fir64 is
port (
inp: in std_logic_vector(9 downto 0);
outp: out std_logic_vector(25 downto 0);
reset: in std_logic;
cl: in std_logic
);
end fir64;

architecture behavior of fir64 is
constant h0 : std_logic_vector(15 downto 0) := "0000000000000000";
constant h1 : std_logic_vector(15 downto 0) := "1111111111100111";
и так далее до 63 констант
Ввожу переменные для развязки:
signal x0, x1,.... до 63 : std_logic_vector(9 downto 0);
signal out_s : std_logic_vector(25 downto 0);
begin
out_s <= ((signed(x00)*signed(h00))+ (signed(x01)*signed(h01))+.. до 63
process(cl,reset)
begin
if reset='1' then
x0 <= (others => '0');
.. до 63 все ресетится
elsif (rising_edge(c)) then
x0(9 downto 0) <= inp(9 downto 0) ;
.. до 63 сдвигаем
yout<=out_s;
end if;
end process;
end behavior;

Вроде должен быть КИХ (делал из прочтенного примера Стешенко)
но вот на выходе верхние 10 бит чаще всего '1' - что вместо 0 дает -65536 (хотя отрицательные цыфры выводит) помогите плз. чайнику разобраться

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru