Сохранение значений для последующего использования в VHDL - PullRequest
0 голосов
/ 24 марта 2019

Я хочу сделать что-то подобное в 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 переменных для их хранения.Как правильно это сделать?

...