Я хочу сделать что-то подобное в VHDL.Yout = Xin(n) + 2Xin(n-1)
, где n является меткой времени.
как мне сохранить значение Xin для следующего вызова этой функции / формулы?
В данный момент я изучаю vhdl.Я прихожу из "обычного" программирования и с трудом оборачиваю голову vhdl.Мой первый снимок был похож на следующий, но пока я читаю больше, я думаю, что это не тот путь, потому что все происходит одновременно, и новое значение Xtemp переопределяет то, что мне нужно.
теперь я 'Я не знаю, как поступить, поэтому мы будем благодарны за любую помощь.
architecture Behavioral of randomFilter is
signal Xin : STD_LOGIC_VECTOR (7 downto 0);
signal Yout : STD_LOGIC_VECTOR (7 downto 0);
variable Xtemp : STD_LOGIC_VECTOR (7 downto 0) := "00000000";
begin
process(clk,rstn)
if(rstn = '0') then
Yout <= (others => '0');
elsif(rising_edge(clk)) then
Yout <= Xin + 2 * Xtemp;
Xtemp := Xin;
end if;
end process;
end Behavioral;
edit: если это несколько правильно.Как бы я это сделал, если бы мне пришлось хранить более одного значения?если формула будет длиннее (давайте сделаем 20 шагов в прошлом), я не могу использовать 20 переменных для их хранения.Как правильно это сделать?