保存值以供以后在vhdl

时间:2019-03-24 18:52:17

标签: vhdl

我想在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;

编辑:如果正确的话。如果我必须存储一个以上的值,该怎么办?如果公式会更长(让我们过去过去20个步骤),则我不能使用20个变量来存储这些变量。这样做的正确方法是什么?

0 个答案:

没有答案