[an error occurred while processing this directive]
|
Что казалось бы "просче":
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: info@telesys.ru